STRUCTURE OPTITEM (compstui.h)
La structure OPTITEM est utilisée par les applications CPSUI (y compris les DLL d’interface d’imprimante) pour décrire une option de feuille de propriétés sur une page de feuille de propriétés, si la page est décrite par une structure COMPROPSHEETUI.
Syntaxe
typedef struct _OPTITEM {
WORD cbSize;
BYTE Level;
BYTE DlgPageIdx;
DWORD Flags;
ULONG_PTR UserData;
LPTSTR pName;
union {
LONG Sel;
LPTSTR pSel;
} DUMMYUNIONNAME;
union {
PEXTCHKBOX pExtChkBox;
PEXTPUSH pExtPush;
} DUMMYUNIONNAME2;
POPTTYPE pOptType;
DWORD HelpIndex;
BYTE DMPubID;
BYTE UserItemID;
WORD wReserved;
POIEXT pOIExt;
ULONG_PTR dwReserved[3];
} OPTITEM, *POPTITEM;
Membres
cbSize
Taille, en octets, de la structure OPTITEM.
Level
Spécifie le niveau de cette option dans l’arborescence. Pour plus d’informations, consultez la section Remarques ci-dessous.
DlgPageIdx
Identifie la boîte de dialogue à laquelle appartient l’option. Spécifie un index de tableau dans le tableau DLGPAGE pointé par le membre pDlgPage de la structure COMPROPSHEETUI.
Si pDlgPage pointe vers une structure DLGPAGE fournie par cpSUI, le CPSUI fournit cet index.
Flags
Indicateurs de bits facultatifs qui modifient les caractéristiques de l’option. L’indicateur OPTIF_CHANGEONCE est défini par CPSUI ; tous les autres indicateurs sont définis par l’appelant. Toute combinaison des indicateurs suivants peut être définie.
OPTIF_CALLBACK
Lorsqu’un utilisateur modifie l’option, CPSUI doit appeler la fonction de rappel _CPSUICALLBACK-typée spécifiée dans la structure COMPROPSHEETUI.
OPTIF_CHANGED
La fonction de rappel _CPSUICALLBACK-typée doit définir cet indicateur s’il a modifié l’option, de sorte que CPSUI la réaffiche.
OPTIF_CHANGEONCE
CPSUI définit ce bit si un utilisateur a modifié l’option.
OPTIF_COLLAPSE
Réduisez cette option et ses enfants afin qu’elle ne soit pas développée dans l’arborescence.
OPTIF_DISABLED
Désactive l’option afin qu’elle ne soit pas modifiable par l’utilisateur.
OPTIF_ECB_CHECKED
La case à cocher étendue associée est dans l’état activé.
OPTIF_EXT_IS_EXTPUSH
Si la valeur est définie, le membre pExtPush est valide (sauf si NULL).
S’il n’est pas défini, le membre pExtChkBox est valide (sauf si NULL).
OPTIF_EXT_DISABLED
La case à cocher étendue ou le bouton Push étendu n’est pas sélectionnable.
OPTIF_EXT_HIDE
CPSUI n’affiche pas la case à cocher étendue ou le bouton Push étendu.
OPTIF_HAS_POIEXT
Si elle est définie, le membre pOIExt est valide.
OPTIF_HIDE
CPSUI n’affiche pas cette option dans l’arborescence. CPSUI examine cet indicateur uniquement lors de la création initiale de l’arborescence. Par conséquent, la modification de l’indicateur de sa valeur initiale n’a aucun effet.
OPTIF_INITIAL_TVITEM
Si elle est définie, CPSUI définit le focus de la fenêtre initiale sur cette option lorsqu’elle affiche l’arborescence. CPSUI développe les nœuds d’arborescence et fait défiler l’option en mode affichage si nécessaire. Si l’option est masquée ou si cet indicateur n’est pas défini pour une structure OPTITEM, CPSUI choisit le focus initial.
OPTIF_NO_GROUPBOX_NAME
S’il n’est pas défini et pOptype n’est pas égal à zéro, CPSUI utilise la chaîne pName comme titre de la zone de groupe.
Si elle est définie, CPSUI fournit un titre de zone de groupe.
OPTIF_OVERLAY_NO_ICON
Si la définition de CPSUI superpose son icône de IDI_CPSUI_NO sur l’icône associée à l’option. (Consultez le membre Sel/pSel.)
OPTIF_OVERLAY_STOP_ICON
Si cette option est définie, CPSUI superpose son icône de IDI_CPSUI_STOP sur l’icône associée à l’option. (Consultez le membre Sel/pSel.)
OPTIF_OVERLAY_WARNING_ICON
Si cette option est définie, CPSUI superpose son icône de IDI_CPSUI_WARNING sur l’icône associée à l’option. (Consultez le membre Sel/pSel.)
OPTIF_SEL_AS_HICON
Si elle est définie, le membre Sel contient un handle d’icône.
Si ce n’est pas le cas, le membre Sel contient un identificateur de ressource d’icône.
Cet indicateur ne peut être utilisé que lorsque pOptType contient NULL.
UserData
Valeur 32 bits facultative qui peut être définie et utilisée par l’appelant.
(DLL de l’interface d’imprimante pour unidrv et Pscript utiliser ce membre pour fournir un pointeur vers une structure USERDATA. plug-ins d’interface utilisateur pouvez référencer cette structure.)
pName
Identificateur de chaîne représentant un nom d’option localisé et affichable. Il peut s’agir d’un pointeur 32 bits vers une chaîne terminée par NULL, ou il peut s’agir d’un identificateur de ressource de chaîne 16 bits, avec HIWORD défini sur zéro. (Consultez également la description de DMPubID, ci-dessous.)
DUMMYUNIONNAME
DUMMYUNIONNAME.Sel
Cette union indique la valeur de paramètre actuellement sélectionnée de l’option. Son utilisation dépend du type d’option CPSUI.
Si pOptType est NULL, l’option n’a aucun paramètre. Cette union identifie donc une icône à associer au nœud treeview de l’option. L’identificateur d’icône peut être un handle d’icône ou un identificateur de ressource d’icône, comme indiqué par OPTIF_SEL_AS_HICON dans indicateurs.
DUMMYUNIONNAME.pSel
Cette union indique la valeur de paramètre actuellement sélectionnée de l’option. Son utilisation dépend du type d’option CPSUI.
Si pOptType est NULL, l’option n’a aucun paramètre. Cette union identifie donc une icône à associer au nœud treeview de l’option. L’identificateur d’icône peut être un handle d’icône ou un identificateur de ressource d’icône, comme indiqué par OPTIF_SEL_AS_HICON dans indicateurs.
DUMMYUNIONNAME2
Définit l’union DUMMYUNIONNAME2.
DUMMYUNIONNAME2.pExtChkBox
Pointeur vers la structure EXTCHKBOX
DUMMYUNIONNAME2.pExtPush
Cette union peut être un pointeur vers une structureEXTCHKBOX, un pointeur vers une structureEXTPUSHou NULL.
Une structure OPTITEM peut éventuellement avoir une structure EXTCHKBOX, une structure EXTPUSH, ou aucune, associée à celle-ci. Si cette union n’est pas NULL et si OPTIF_EXT_IS_EXTPUSH est défini dans Indicateurs, pExtPush est valide. Si l’indicateur n’est pas défini, pExtChkBox est valide.
pOptType
Pointeur vers une structure OPTTYPE qui décrit le type d’affichage de l’option. Si NULL, l’option n’a aucun paramètre et est utilisée comme parent pour les options avec une valeur de niveau supérieure. Les options enfants doivent suivre immédiatement le parent dans le tableau OPTITEM. (Consultez la section Remarques suivantes.)
HelpIndex
Index du fichier d’aide, qui identifie le texte d’aide à associer à l’option. Si zéro, le texte du fichier d’aide n’existe pas pour cette option. Notez que le pOIExt membre de cette structure doit être défini avec l’adresse d’une structure OIEXT afin que la fonctionnalité de texte d’aide existe.
DMPubID
Ce membre est destiné à être utilisé par les DLL d’interface d’imprimante lors de la création d’une feuille de propriétés document (voir DrvDocumentPropertySheets). Il s’agit d’une valeur constante spécifiant qui, le cas échéant, membre public de la structure DEVMODEW est associée à cette option. Le tableau suivant répertorie les constantes disponibles, le membre de structure DEVMODE associé et la valeur requise pour pName pour chaque constante.
Valeur constante | Valeur pName requise | Membre de structure |
---|---|---|
DMPUB_COLOR | dmColor | IDS_CPSUI_COLOR_APPERANCE |
DMPUB_COPIES_COLLATE | dmCopies et dmCollate | IDS_CPSUI_COPIES |
DMPUB_DEFSOURCE | dmDefSource | IDS_CPSUI_SOURCE |
DMPUB_DITHERTYPE | dmDitherType | IDS_CPSUI_DITHERING |
DMPUB_DUPLEX | dmDuplex | IDS_CPSUI_DUPLEX |
DMPUB_FORMNAME | dmFormName | IDS_CPSUI_FORMNAME |
DMPUB_ICMINTENT | dmICMIntent | IDS_CPSUI_ICMINTENT |
DMPUB_ICMMETHOD | dmICMMethod | IDS_CPSUI_ICMMETHOD |
DMPUB_MEDIATYPE | dmMediaType | IDS_CPSUI_MEDIA |
DMPUB_NUP | Non contenu dans la section publique de DEVMODE. | IDS_CPSUI_NUP |
DMPUB_ORIENTATION | dmOrientation | IDS_CPSUI_ORIENTATION |
DMPUB_OUTPUTBIN | Non contenu dans la section publique de DEVMODE. | IDS_CPSUI_OUTPUTBIN |
DMPUB_PAGEORDER | Non contenu dans la section publique de DEVMODE. | IDS_CPSUI_PAGEORDER |
DMPUB_PRINTQUALITY | dmPrintQuality | IDS_CPSUI_PRINTQUALITY ou IDS_CPSUI_RESOLUTION. Si ce n’est pas spécifié, le nom par défaut est IDS_CPSUI_RESOLUTION. |
DMPUB_QUALITY | Non contenu dans la section publique de DEVMODE. | IDS_CPSUI_QUALITY_SETTINGS |
DMPUB_SCALE | dmScale | IDS_CPSUI_SCALE |
DMPUB_TTOPTION | dmTTOption | IDS_CPSUI_TTOPTION |
DMPUB_NONE | Non contenu dans la section publique de DEVMODE. | |
Supérieur ou égal à DMPUB_USER | Ignoré par CPSUI, il peut s’agir d’une valeur définie par l’appelant. |
CPSUI ne gère pas de structure DEVMODE. L’application est chargée de copier les paramètres d’option sélectionnés par l’utilisateur dans une structure DEVMODE. CPSUI utilise contenu DMPubID pour déterminer le positionnement d’arborescence des options standard et déterminer le contenu du de disposition et des onglets Papier/Qualité (voir le membre pDlgPage de la structure COMPROPSHEETUI).
Pour plus d’informations sur l’utilisation du membre DMPubID, consultez la section Remarques suivante.
UserItemID
Valeur facultative fournie par l’application qui peut être utilisée à des fins d’identification d’option. Non référencé par CPSUI.
wReserved
Réservé, doit être initialisé à zéro.
pOIExt
Pointeur vers une structureOIEXT facultative. L’appelant est responsable de l’allocation de stockage pour cette structure.
dwReserved[3]
Réservé, doit être initialisé à zéro.
Remarques
Les structures OPTITEM doivent être placées dans un tableau et l’adresse du tableau doit être placée dans le membre pOptItem d’une structure COMPROPSHEETUI.
Le membre Level vous permet de créer des nœuds enfants dans l’arborescence. Par exemple, pour créer un ensemble de nœuds d’option sous un nœud parent de niveau 1, spécifiez le niveau 2 pour chaque nœud enfant et incluez leurs structures OPTITEM dans le tableau OPTITEM, immédiatement après la structure OPTITEM du parent. Dans la structure OPTITEM du parent, pOptType doit être NULL .
Le nœud racine treeview est de niveau 0. Les options affichées lorsqu’un utilisateur développe le nœud racine sont de niveau 1. Le nombre maximal de niveaux est de 256.
Pour les valeurs d’option stockées dans la structure DEVMODE d’une imprimante, le DMPubID membre doit identifier l’option. Pour chaque valeur DMPubID utilisée, une DLL d’interface d’imprimante doit spécifier le type d’option CPSUI répertorié dans le tableau suivant.
Valeur DMPubID | Type d’option CPSUI requis |
---|---|
DMPUB_COLOR | TVOT_2STATES |
DMPUB_COPIES_COLLATE | TVOT_UDARROW plus EXTCHKBOX (consultez les commentaires suivants ce tableau.) |
DMPUB_DEFSOURCE | TVOT_LISTBOX |
DMPUB_DITHERTYPE | TVOT_LISTBOX |
DMPUB_DUPLEX | TVOT_2STATES ou TVOT_3STATES |
DMPUB_FORMNAME | TVOT_LISTBOX |
DMPUB_ICMINTENT | TVOT_2STATES ou TVOT_3STATES |
DMPUB_ICMMETHOD | TVOT_2STATES ou TVOT_3STATES |
DMPUB_MEDIATYPE | TVOT_LISTBOX |
DMPUB_NUP | TVOT_LISTBOX |
DMPUB_ORIENTATION | TVOT_2STATES ou TVOT_3STATES |
DMPUB_OUTPUTBIN | TVOT_LISTBOX |
DMPUB_PAGEORDER | TVOT_2STATES ou TVOT_3STATES |
DMPUB_PRINTQUALITY | TVOT_LISTBOX |
DMPUB_QUALITY | TVOT_2STATES ou TVOT_3STATES |
DMPUB_SCALE | TVOT_UDARROW |
DMPUB_TTOPTION | TVOT_LISTBOX |
Si DMPubID est DMPUB_COPIES_COLLATE et que l’imprimante peut assembler des copies, une case à cocher étendue (structure EXTCHKBOX) doit être fournie. Les membres EXTCHCKBOX structure doivent être définis comme suit :
pExtCheckbox->cbSize = sizeof(EXTCHKBOX);
pExtCheckbox->pTitle = (PWSTR) IDS_CPSUI_COLLATE;
pExtCheckbox->pCheckedName = (PWSTR) IDS_CPSUI_COLLATED;
pExtCheckbox->IconID = IDI_CPSUI_COLLATE;
pExtCheckbox->Flags = ECBF_CHECKNAME_ONLY_ENABLED;
pExtCheckbox->pSeparator = (PWSTR)IDS_CPSUI_SLASH_SEP;
Si OPTIF_EXT_HIDE n’est pas défini dans indicateurs, CPSUI active la case à cocher si un utilisateur demande plusieurs copies et le désactive si une seule copie est demandée.
En outre, CPSUI définit le texte d’affichage de l’option sur copier pour une copie et copie pour plusieurs copies.
Si DMPubID est DMPUB_COLOR, sa première structure OPTPARAM (Sel=0) doit représenter l’échelle grise et pData dans la structure OPTPARAM doit être IDS_CPSUI_GRAYSCALE. Sa deuxième structure OPTPARAM (Sel=1) doit représenter Color et pData dans la structure OPTPARAM doit être IDS_CPSUI_COLOR. Si DMPubID d’une autre option est DMPUB_ICMINTENT et si la couleur n’est pas sélectionnée, CPSUI désactive l’option pour laquelle DMPUB_ICMINTENT est spécifiée.
CPSUI désactive la correspondance des couleurs lorsque la couleur n’est pas sélectionnée.
Exigences
Exigence | Valeur |
---|---|
d’en-tête | compstui.h (include Compstui.h) |