EXTPUSH 構造体 (compstui.h)

EXTPUSH 構造体は、拡張プッシュ ボタンを指定するために CPSUI アプリケーション (プリンター インターフェイス DLL を含む) によって使用されます。これは、プロパティ シート ページ オプションに追加できます。 ボタンを押すと、新しいダイアログを表示できます。

構文

typedef struct _EXTPUSH {
  WORD      cbSize;
  WORD      Flags;
  LPTSTR    pTitle;
  union {
    DLGPROC DlgProc;
    FARPROC pfnCallBack;
  } DUMMYUNIONNAME;
  ULONG_PTR IconID;
  union {
    WORD   DlgTemplateID;
    HANDLE hDlgTemplate;
  } DUMMYUNIONNAME2;
  ULONG_PTR dwReserved[3];
} EXTPUSH, *PEXTPUSH;

メンバー

cbSize

EXTPUSH 構造体のサイズ (バイト単位)。

Flags

ビット フラグ。次のいずれかになります。

フラグ 説明
EPF_ICONID_AS_HICON 設定した場合、 IconID メンバーにはアイコン ハンドルが含まれます。 設定されていない場合、 IconID メンバーにはアイコン リソース識別子が含まれます。
EPF_INCLUDE_SETUP_TITLE 設定した場合、CPSUI は pTitle が指す文字列に "Setup" を追加します。
EPF_NO_DOT_DOT_DOT 設定した場合、CPSUI は "..." を追加しません。 を pTitle が指す文字列に指定します。
EPF_OVERLAY_NO_ICON 設定した場合、CPSUI は、そのIDI_CPSUI_NOアイコンを IconID メンバーによって識別されるアイコンにオーバーレイします。
EPF_OVERLAY_STOP_ICON 設定した場合、CPSUI は、IDI_CPSUI_STOP アイコンを IconID メンバーによって識別されるアイコンにオーバーレイします。
EPF_OVERLAY_WARNING_ICON 設定した場合、CPSUI は、そのIDI_CPSUI_WARNINGアイコンを IconID メンバーによって識別されるアイコンにオーバーレイします。
EPF_PUSH_TYPE_DLGPROC 設定すると、 DlgProc メンバーと DlgTemplateID/hDlgTemplate メンバーが有効になります。 設定されていない場合、 pfnCallBack メンバーは有効です。
EPF_USE_HDLGTEMPLATE 設定されている場合、 hDlgTemplate にはテンプレート ハンドルが含まれます。 設定されていない場合、 DlgTemplateID にはテンプレート リソース識別子が含まれます。

pTitle

プッシュ ボタンのタイトルを表す文字列識別子。 NULL で終わる文字列への 32 ビット ポインターを指定することも、HIWORD を 0 に設定した 16 ビット文字列リソース識別子を指定することもできます。

DUMMYUNIONNAME

DUMMYUNIONNAME 共用体を定義します。

DUMMYUNIONNAME.DlgProc

プッシュ ボタンのダイアログ ボックスのメッセージを処理するダイアログ ボックス プロシージャへの DLGPROC 型ポインター。 DialogProc の使用の詳細については、以下の「解説」セクションを参照してください。

このポインターを指定する場合は、 [フラグ] でEPF_PUSH_TYPE_DLGPROCを設定する必要があります。

DUMMYUNIONNAME.pfnCallBack

CPSUICB_REASON_PUSHBUTTON理由を処理するための _CPSUICALLBACK型指定コールバック関数へのポインター。 詳細については、「解説」を参照してください。

このポインターを指定する場合は、 フラグでEPF_PUSH_TYPE_DLGPROCをクリアする必要があります。

IconID

次のいずれかのアイコン識別子:

  • アイコン リソース識別子。 これは、アプリケーション定義でも、CPSUI 提供のIDI_CPSUIプレフィックス付きアイコン リソース識別子の 1 つでもかまいません。

  • アイコン ハンドル。 ハンドルを指定する場合は、 EPF_ICONID_AS_HICON Flags メンバーで設定する必要があります。

  • CPSUI は、プッシュ ボタンの横にアイコンを表示します。 この値が 0 の場合、アイコンは表示されません。

DUMMYUNIONNAME2

DUMMYUNIONNAME2共用体を定義します。

DUMMYUNIONNAME2.DlgTemplateID

ダイアログ ボックスのリソース ID を指定します。

DlgTemplateID = 0 の場合、一般的な UI は次のパラメーターを使用して DlgProc を呼び出します。

DlgProc(hDlg, WM_USER, NULL, (LPARAM)pCPSUICBParam);

DUMMYUNIONNAME2.hDlgTemplate

ポップアップ ダイアログ ボックスに使用される DLGTEMPLATE へのハンドル。

dwReserved[3]

予約済み。 は 0 に初期化する必要があります。

注釈

拡張プッシュ ボタンは、 OPTITEM 構造体に関連付けることができる CPSUI 定義型のプッシュ ボタンです。 OPTITEM 構造体には、1 つの拡張プッシュ ボタンまたは 1 つの拡張チェック ボックスを関連付けることができます。

EXTPUSH 構造体を使用してプッシュ ボタンを作成する場合は、必要に応じて、ユーザーがボタンをクリックしたときに開く追加のダイアログ ボックスを作成できます。 このダイアログ ボックスを作成するには、 DlgProc メンバーでダイアログ ボックス プロシージャへのポインターを指定し、 DlgTemplateID または hDlgTemplate メンバーにダイアログ テンプレートの指定を含める必要があります。

EPF_USE_HDLGTEMPLATEが Flags に設定されている場合、CPSUI は DialogBoxIndirectParam を呼び出してダイアログ ボックスを作成し、DlgProc メンバーと hDlgTemplate メンバーの内容を渡します。

EPF_USE_HDLGTEMPLATEが Flags に設定されていない場合、CPSUI は DialogBoxParam を呼び出してダイアログ ボックスを作成し、DlgProc メンバーと DlgTemplateID メンバーの内容を渡します。

ダイアログ ボックス プロシージャが uMsg 値WM_INITDIALOGで呼び出されると、 lParam 値は CPSUICBPARAM 構造体のアドレスであり、 Reason メンバーは CPSUICB_REASON_EXTPUSH に設定されます。 uMsg パラメーターと lParam パラメーターの詳細については、「DialogProc」を参照してください。

ユーザーがボタンをクリックしたときにダイアログ ボックスを表示するために CPSUI が必要ない場合は、pfnCallBack メンバーで_CPSUICALLBACK型指定されたコールバック関数のアドレスを指定できます。 ユーザーがボタンをクリックすると、CPSUI はコールバック関数を呼び出します。 付随する CPSUICBPARAM 構造体の Reason メンバーは、CPSUICB_REASON_EXTPUSHに設定されます。

要件

要件
Header compstui.h (Compstui.h を含む)

こちらもご覧ください

EXTCHKBOX