Windows Vistaでは、管理者権限がなくてもアプリケーションを動作させることが
求められています。
管理者権限が必要だとしても、必要になった時に初めて管理者権限を
要求するような作りにしなければなりません。
また、管理者権限が必要な場合には、そのアクションを引き起こすボタン等に
シールドアイコンを付け、簡単に判別できるようにしなければなりません。
このシールドアイコンを付けるには、下記のようにするだけでOKです。
---
#define BCM_SETSHIELD (BCM_FIRST + 0x000C)
#define Button_SetElevationRequiredState(hwnd, fRequired) \
(LRESULT)SNDMSG((hwnd), BCM_SETSHIELD, 0, (LPARAM)fRequired)
// シールドアイコンを付ける
CButton btnOK = this->GetDlgItem(IDOK);
Button_SetElevationRequiredState((HWND)btnOK, TRUE);
---
通常のWin32のボタンで、テキストの横にアイコンをつけるのは、
面倒な作業なので、とてもほっとしました(笑)
でも、シールドだけじゃなくて、任意のアイコンを指定できるようにすればいいのに。。