Partager via


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)

Voir aussi

EXTCHKBOX