Estructura EXTPUSH (compstui.h)
Las aplicaciones CPSUI usan la estructura EXTPUSH (incluidos los archivos DLL de interfaz de impresora) para especificar un botón de inserción extendido, que se puede agregar a una opción de página de hoja de propiedades. Cuando se inserta el botón, se puede mostrar un cuadro de diálogo nuevo.
Sintaxis
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;
Miembros
cbSize
Tamaño, en bytes, de la estructura EXTPUSH .
Flags
Marcas de bits, que pueden ser una de las siguientes:
Marca | Descripción |
---|---|
EPF_ICONID_AS_HICON | Si se establece, el miembro IconID contiene un identificador de icono. Si no se establece, el miembro IconID contiene un identificador de recurso de icono. |
EPF_INCLUDE_SETUP_TITLE | Si se establece, CPSUI anexa "Setup" a la cadena a la que apunta pTitle. |
EPF_NO_DOT_DOT_DOT | Si se establece, CPSUI no anexa "..." a la cadena a la que apunta pTitle. |
EPF_OVERLAY_NO_ICON | Si se establece, CPSUI superpone su icono de IDI_CPSUI_NO en el icono identificado por el miembro IconID . |
EPF_OVERLAY_STOP_ICON | Si se establece, CPSUI superpone el icono de IDI_CPSUI_STOP en el icono identificado por el miembro IconID . |
EPF_OVERLAY_WARNING_ICON | Si se establece, CPSUI superpone su icono de IDI_CPSUI_WARNING en el icono identificado por el miembro IconID . |
EPF_PUSH_TYPE_DLGPROC | Si se establece, los miembros DlgProc y DlgTemplateID/hDlgTemplate son válidos. Si no se establece, el miembro pfnCallBack es válido. |
EPF_USE_HDLGTEMPLATE | Si se establece, hDlgTemplate contiene un identificador de plantilla. Si no se establece, DlgTemplateID contiene un identificador de recurso de plantilla. |
pTitle
Identificador de cadena, que representa el título del botón de inserción. Puede ser un puntero de 32 bits a una cadena terminada en NULL o puede ser un identificador de recurso de cadena de 16 bits con HIWORD establecido en cero.
DUMMYUNIONNAME
Define la unión DUMMYUNIONNAME .
DUMMYUNIONNAME.DlgProc
Puntero con tipo DLGPROC a un procedimiento de cuadro de diálogo para procesar mensajes para el cuadro de diálogo del botón de inserción. Para obtener más información sobre el uso de DialogProc, vea la sección Comentarios a continuación.
Si se proporciona este puntero, EPF_PUSH_TYPE_DLGPROC debe establecerse en Marcas.
DUMMYUNIONNAME.pfnCallBack
Puntero a una función de devolución de llamada con tipo _CPSUICALLBACK para controlar el motivo del CPSUICB_REASON_PUSHBUTTON. Para obtener más información, vea la sección Comentarios que se muestra más adelante.
Si se proporciona este puntero, EPF_PUSH_TYPE_DLGPROC debe borrarse en Marcas.
IconID
Uno de los siguientes identificadores de icono:
Un identificador de recurso de icono. Esto puede ser definido por la aplicación o puede ser uno de los identificadores de recursos de recursos de icono con prefijos de CPSUI IDI_CPSUI proporcionados por CPSUI.
Identificador de icono. Si se especifica un identificador, EPF_ICONID_AS_HICON debe establecerse en el miembro Flags .
CPSUI muestra el icono junto al botón de inserción. Si este valor es cero, no se muestra un icono.
DUMMYUNIONNAME2
Define la unión DUMMYUNIONNAME2 .
DUMMYUNIONNAME2.DlgTemplateID
Especifica el identificador de recurso para el cuadro de diálogo.
Si DlgTemplateID = 0, la interfaz de usuario común llamará a DlgProc con el parámetro siguiente:
DlgProc(hDlg, WM_USER, NULL, (LPARAM)pCPSUICBParam);
DUMMYUNIONNAME2.hDlgTemplate
Identificador de DLGTEMPLATE que se usará para un cuadro de diálogo emergente.
dwReserved[3]
Reservado, debe inicializarse en cero.
Comentarios
Un botón de inserción extendido es un tipo definido por CPSUI de botón de inserción que se puede asociar a una estructura OPTITEM . Una estructura OPTITEM puede tener un botón de inserción extendido o una casilla extendida asociada.
Al usar la estructura EXTPUSH para crear un botón de inserción, puede crear opcionalmente un cuadro de diálogo adicional que se abra cuando el usuario haga clic en el botón. Para crear este cuadro de diálogo, debe especificar un puntero a un procedimiento de cuadro de diálogo en el miembro DlgProc e incluir una especificación de plantilla de diálogo en dlgTemplateID o el miembro hDlgTemplate .
Si EPF_USE_HDLGTEMPLATE se establece en Marcas, CPSUI crea el cuadro de diálogo llamando a DialogBoxIndirectParam, pasando el contenido de los miembros DlgProc y hDlgTemplate .
Si EPF_USE_HDLGTEMPLATE no se establece en Marcas, CPSUI crea el cuadro de diálogo llamando a DialogBoxParam, pasando el contenido de los miembros DlgProc y DlgTemplateID .
Cuando se llama al procedimiento del cuadro de diálogo con un valor uMsg de WM_INITDIALOG, el valor lParam es la dirección de una estructura CPSUICBPARAM , con el miembro Reason establecido en CPSUICB_REASON_EXTPUSH. Para obtener más información sobre los parámetros uMsg y lParam , vea DialogProc.
Si no necesita CPSUI para mostrar un cuadro de diálogo cuando el usuario hace clic en el botón, puede especificar la dirección de una función de devolución de llamada con tipo _CPSUICALLBACK en el miembro pfnCallBack . Cuando un usuario hace clic en el botón, CPSUI llama a la función de devolución de llamada. El miembro Reason de la estructura CPSUICBPARAM correspondiente se establecerá en CPSUICB_REASON_EXTPUSH.
Requisitos
Requisito | Valor |
---|---|
Header | compstui.h (incluya Compstui.h) |