Compartir a través de


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)

Consulte también

EXTCHKBOX