Структура 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) |