Structure EXTPUSH (compstui.h)
La structure EXTPUSH est utilisée par les applications CPSUI (y compris les DLL d’interface d’imprimante) pour spécifier un bouton push étendu, qui peut être ajouté à une option de page de feuille de propriétés. Lorsque le bouton est enfoncé, une nouvelle boîte de dialogue peut s’afficher.
Syntaxe
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;
Membres
cbSize
Taille, en octets, de la structure EXTPUSH .
Flags
Indicateurs de bits, qui peuvent être l’un des suivants :
Indicateur | Description |
---|---|
EPF_ICONID_AS_HICON | S’il est défini, le membre IconID contient un handle d’icône. S’il n’est pas défini, le membre IconID contient un identificateur de ressource d’icône. |
EPF_INCLUDE_SETUP_TITLE | Si la valeur est définie, CPSUI ajoute « Setup » à la chaîne pointée par pTitle. |
EPF_NO_DOT_DOT_DOT | S’il est défini, CPSUI n’ajoute pas « ... » à la chaîne pointée par pTitle. |
EPF_OVERLAY_NO_ICON | Si la valeur est définie, CPSUI superpose son icône IDI_CPSUI_NO à l’icône identifiée par le membre IconID . |
EPF_OVERLAY_STOP_ICON | Si cette option est définie, CPSUI superpose l’icône IDI_CPSUI_STOP à l’icône identifiée par le membre IconID . |
EPF_OVERLAY_WARNING_ICON | Si cette option est définie, CPSUI superpose son icône IDI_CPSUI_WARNING sur l’icône identifiée par le membre IconID . |
EPF_PUSH_TYPE_DLGPROC | Si cette valeur est définie, les membres DlgProc et DlgTemplateID/hDlgTemplate sont valides. S’il n’est pas défini, le membre pfnCallBack est valide. |
EPF_USE_HDLGTEMPLATE | S’il est défini, hDlgTemplate contient un handle de modèle. S’il n’est pas défini, DlgTemplateID contient un identificateur de ressource de modèle. |
pTitle
Identificateur de chaîne, représentant le titre du bouton d’envoi. Il peut s’agir d’un pointeur 32 bits vers une chaîne terminée par NULL, ou d’un identificateur de ressource de chaîne 16 bits avec HIWORD défini sur zéro.
DUMMYUNIONNAME
Définit l’union DUMMYUNIONNAME .
DUMMYUNIONNAME.DlgProc
Pointeur de type DLGPROC vers une procédure de boîte de dialogue pour traiter les messages de la boîte de dialogue du bouton d’envoi. Pour plus d’informations sur l’utilisation de DialogProc, consultez la section Remarques ci-dessous.
Si ce pointeur est fourni, EPF_PUSH_TYPE_DLGPROC doit être défini dans Indicateurs.
DUMMYUNIONNAME.pfnCallBack
Pointeur vers une fonction de rappel de type _CPSUICALLBACK pour gérer la raison CPSUICB_REASON_PUSHBUTTON. Pour plus d'informations, consultez la section Notes qui suit.
Si ce pointeur est fourni, EPF_PUSH_TYPE_DLGPROC doit être effacé dans Indicateurs.
IconID
L’un des identificateurs d’icône suivants :
Identificateur de ressource d’icône. Il peut s’agir de l’un des identificateurs de ressource d’icône avec préfixe IDI_CPSUI fournis par CPSUI.
Handle d’icône. Si un handle est spécifié, EPF_ICONID_AS_HICON doit être défini dans le membre Indicateurs .
CPSUI affiche l’icône en regard du bouton poussoir. Si cette valeur est égale à zéro, aucune icône n’est affichée.
DUMMYUNIONNAME2
Définit l’union DUMMYUNIONNAME2 .
DUMMYUNIONNAME2.DlgTemplateID
Spécifie l’ID de ressource de la boîte de dialogue.
Si DlgTemplateID = 0, l’interface utilisateur commune appelle DlgProc avec le paramètre suivant :
DlgProc(hDlg, WM_USER, NULL, (LPARAM)pCPSUICBParam);
DUMMYUNIONNAME2.hDlgTemplate
Gérez le DLGTEMPLATE qui sera utilisé pour une boîte de dialogue contextuelle.
dwReserved[3]
Réservé, doit être initialisé à zéro.
Remarques
Un bouton pousseur étendu est un type de bouton pousseur défini par CPSUI qui peut être associé à une structure OPTITEM . Une structure OPTITEM peut avoir un bouton poussoir étendu ou une zone de case activée étendue associée.
Lorsque vous utilisez la structure EXTPUSH pour créer un bouton pousseur, vous pouvez éventuellement créer une boîte de dialogue supplémentaire qui s’ouvre lorsque l’utilisateur clique sur le bouton. Pour créer cette boîte de dialogue, vous devez spécifier un pointeur vers une procédure de boîte de dialogue dans le membre DlgProc et inclure une spécification de modèle de dialogue dans le DlgTemplateID ou le membre hDlgTemplate .
Si EPF_USE_HDLGTEMPLATE est défini dans Indicateurs, CPSUI crée la boîte de dialogue en appelant DialogBoxIndirectParam, en transmettant le contenu des membres DlgProc et hDlgTemplate .
Si EPF_USE_HDLGTEMPLATE n’est pas défini dans Indicateurs, CPSUI crée la boîte de dialogue en appelant DialogBoxParam, en transmettant le contenu des membres DlgProc et DlgTemplateID .
Lorsque la procédure de boîte de dialogue est appelée avec la valeur uMsg WM_INITDIALOG, la valeur lParam est l’adresse d’une structure CPSUICBPARAM , avec le membre Reason défini sur CPSUICB_REASON_EXTPUSH. Pour plus d’informations sur les paramètres uMsg et lParam , consultez DialogProc.
Si vous n’avez pas besoin de CPSUI pour afficher une boîte de dialogue lorsque l’utilisateur clique sur le bouton, vous pouvez spécifier l’adresse d’une fonction de rappel de type _CPSUICALLBACK dans le membre pfnCallBack . Lorsqu’un utilisateur clique sur le bouton, CPSUI appelle la fonction de rappel. Le membre Reason de la structure CPSUICBPARAM associé est défini sur CPSUICB_REASON_EXTPUSH.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | compstui.h (inclure Compstui.h) |