Win32 API 日本語リファレンス
ホーム › UI.Controls › PFNPROPSHEETCALLBACK

PFNPROPSHEETCALLBACK

コールバック

シグネチャ

INT PFNPROPSHEETCALLBACK(
    HWND param0,
    DWORD param1,
    LPARAM param2
);

パラメーター

フィールド型説明
param0HWNDプロパティシートのハンドルです。このパラメーターは通常 hWnd と呼ばれます。
param1DWORD

受信したメッセージです。このパラメーターは通常 uMsg と呼ばれます。

このパラメーターは次のいずれかの値です。

値 意味
PSCB_INITIALIZED (1)
プロパティシートが初期化されようとしていることを示します。このメッセージでは lParam(unnamedParam3)の値は 0 です。
PSCB_PRECREATE (2)
プロパティシートが作成されようとしていることを示します。hWnd(unnamedParam1)パラメーターは NULL で、lParam(unnamedParam3)パラメーターはメモリ内のダイアログテンプレートのアドレスです。このテンプレートは、DLGTEMPLATE または DLGTEMPLATEEX 構造体に続いて 1 つ以上の DLGITEMTEMPLATE 構造体が並ぶ形式です。Aero ウィザードスタイル(PSH_AEROWIZARD)を使用している場合、このメッセージは適用されません。
PSCB_BUTTONPRESSED (3)

バージョン 6.0 以降。ユーザーがプロパティシートのダイアログボックス内のボタンを押したことを示します。これを有効にするには、PROPSHEETHEADER.dwFlags に PSH_USECALLBACK を指定し、PROPSHEETHEADER.pfnCallback にこのコールバック関数の名前を指定します。lParam(Arg3)の値は次のいずれかです。Aero ウィザードスタイル(PSH_AEROWIZARD)を使用している場合、有効なのは PSBTN_CANCEL のみである点に注意してください。

押されたボタン lParam の値
OK PSBTN_OK
キャンセル PSBTN_CANCEL
適用 PSBTN_APPLYNOW
閉じる PSBTN_FINISH

Comctl32.dll のバージョン 6 以降は再頒布できない点に注意してください。これらのバージョンの Comctl32.dll を使用するには、マニフェストで対象のバージョンを指定します。マニフェストの詳細については、ビジュアルスタイルの有効化を参照してください。

param2LPARAM

メッセージに関する追加情報です。このパラメーターは通常 lParam と呼ばれます。

この値の意味は uMsg(unnamedParam2)パラメーターによって異なります。

  • uMsg が PSCB_INITIALIZED または PSCB_BUTTONPRESSED の場合、このパラメーターの値は 0 です。

  • uMsg が PSCB_PRECREATE の場合、このパラメーターはプロパティシートのダイアログボックスを記述する DLGTEMPLATE または DLGTEMPLATEEX 構造体へのポインターになります。どちらの型かを判別するには、構造体の signature を調べます。signature が 0xFFFF であれば拡張ダイアログテンプレート、そうでなければ標準のダイアログテンプレートです。次の例はその判別方法を示しています。

    if (uMsg == PSCB_PRECREATE) 
    {
         if (lParam)
         {
              DLGTEMPLATE *pDlgTemplate;
              DLGTEMPLATEEX *pDlgTemplateEx;
              
              pDlgTemplateEx = (DLGTEMPLATEEX *)lParam;  
              if (pDlgTemplateEx->signature == 0xFFFF)
              {
                   // pDlgTemplateEx points to an extended  
                   // dialog template structure.
              }
              else
              {
                   // This is a standard dialog template
                   //  structure.
                   pDlgTemplate = (DLGTEMPLATE *)lParam;
              }
         }    
    }
    

公式ドキュメント

プロパティシートが作成および初期化されるときにシステムが呼び出す、アプリケーション定義のコールバック関数です。

戻り値

型: int

0 を返します。

解説(Remarks)

PropSheetProc コールバック関数を有効にするには、プロパティシートを作成するために PropertySheet 関数を呼び出すときに PROPSHEETHEADER 構造体を使用します。pfnCallback メンバーにコールバック関数のアドレスを指定し、dwFlags メンバーに PSP_USECALLBACK フラグを設定します。

PropSheetProc は、アプリケーション定義の関数名のプレースホルダーです。PFNPROPSHEETCALLBACK 型は、PropSheetProc コールバック関数のアドレスです。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)