Структура EXTPUSH (compstui.h)

Структура EXTPUSH используется приложениями CPSUI (включая библиотеки DLL интерфейса принтера) для указания расширенной кнопки push, которую можно добавить в параметр страницы страницы свойств. При нажатии кнопки можно отобразить новое диалоговое окно.

Синтаксис

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

Битовые флаги, которые могут быть одним из следующих:

Flag Описание
EPF_ICONID_AS_HICON Если этот параметр задан, элемент IconID содержит дескриптор значка. Если значение не задано, элемент IconID содержит идентификатор ресурса значка.
EPF_INCLUDE_SETUP_TITLE Если параметр задан, CPSUI добавляет "Setup" к строке, на которую указывает pTitle.
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

Строковый идентификатор, представляющий заголовок кнопки нажатия. Это может быть 32-разрядный указатель на строку, завершаемую значением NULL, или идентификатор ресурса 16-разрядной строки с параметром HIWORD, равным нулю.

DUMMYUNIONNAME

Определяет объединение DUMMYUNIONNAME .

DUMMYUNIONNAME.DlgProc

Указатель на процедуру диалогового окна с типом DLGPROC для обработки сообщений для диалогового окна кнопки. Дополнительные сведения об использовании DialogProc см. в разделе Примечания ниже.

Если указан этот указатель, EPF_PUSH_TYPE_DLGPROC необходимо задать в разделе Флаги.

DUMMYUNIONNAME.pfnCallBack

Указатель на функцию обратного вызова с _CPSUICALLBACK типом для обработки причины CPSUICB_REASON_PUSHBUTTON. Дополнительные сведения см. в разделе "Примечания".

Если указан этот указатель, EPF_PUSH_TYPE_DLGPROC должны быть очищены в разделе Флаги.

IconID

Один из следующих идентификаторов значков:

  • Идентификатор ресурса значка. Это может быть определяемый приложением или один из предоставленных CPSUI идентификаторов ресурсов значка IDI_CPSUI с префиксом.

  • Дескриптор значка. Если указан дескриптор, EPF_ICONID_AS_HICON необходимо задать в элементе Flags .

  • CPSUI отображает значок рядом с кнопкой нажатия. Если это значение равно нулю, значок не отображается.

DUMMYUNIONNAME2

Определяет DUMMYUNIONNAME2 объединение.

DUMMYUNIONNAME2.DlgTemplateID

Указывает идентификатор ресурса для диалогового окна.

Если DlgTemplateID = 0, общий пользовательский интерфейс вызывает DlgProc со следующим параметром:

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

DUMMYUNIONNAME2.hDlgTemplate

Дескриптор DLGTEMPLATE , который будет использоваться для всплывающего диалогового окна.

dwReserved[3]

Зарезервировано, должно быть инициализировано нулевым значением.

Комментарии

Расширенная кнопка — это определяемый CPSUI тип кнопки push-уведомлений, который может быть связан со структурой OPTITEM . Структура OPTITEM может иметь одну расширенную кнопку или одно расширенное поле проверка, связанное с ней.

При использовании структуры EXTPUSH для создания кнопки при необходимости можно создать дополнительное диалоговое окно, которое открывается при нажатии кнопки пользователем. Чтобы создать это диалоговое окно, необходимо указать указатель на процедуру диалогового окна в элементе DlgProc и включить спецификацию шаблона диалога в элемент DlgTemplateID или hDlgTemplate .

Если EPF_USE_HDLGTEMPLATE задано в разделе Флаги, CPSUI создает диалоговое окно путем вызова DialogBoxIndirectParam и передачи содержимого элементов DlgProc и hDlgTemplate .

Если EPF_USE_HDLGTEMPLATE не задано в разделе Флаги, CPSUI создает диалоговое окно, вызывая DialogBoxParam, передав содержимое элементов DlgProc и DlgTemplateID .

При вызове процедуры диалогового окна со значением uMsg WM_INITDIALOG значением lParam является адрес структуры CPSUICBPARAM с элементом Reason , равным CPSUICB_REASON_EXTPUSH. Дополнительные сведения о параметрах uMsg и lParam см. в разделе DialogProc.

Если при нажатии кнопки пользователь не должен отображать диалоговое окно CPSUI, можно указать адрес _CPSUICALLBACK типизированной функции обратного вызова в элементе pfnCallBack . Когда пользователь нажимает кнопку, CPSUI вызывает функцию обратного вызова. Для сопровождающего элемента Reason структуры CPSUICBPARAM будет задано значение CPSUICB_REASON_EXTPUSH.

Требования

Требование Значение
Заголовок compstui.h (включая Compstui.h)

См. также раздел

EXTCHKBOX