OPTITEM-Struktur (compstui.h)
Die OPTITEM-Struktur wird von CPSUI-Anwendungen (einschließlich Druckerschnittstellen-DLLs) zum Beschreiben einer Eigenschaftenblattoption auf einer Eigenschaftenblattseite verwendet, wenn die Seite durch eine COMPROPSHEETUI-Struktur beschrieben wird.
Syntax
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;
Member
cbSize
Größe der OPTITEM-Struktur in Bytes.
Level
Gibt die Ebene dieser Option in der Strukturansicht an. Weitere Informationen finden Sie weiter unten im Abschnitt Hinweise.
DlgPageIdx
Gibt das Dialogfeld an, zu dem die Option gehört. Gibt einen Arrayindex in das DLGPAGE-Array an, auf das das pDlgPage-Element der COMPROPSHEETUI-Struktur verweist.
Wenn pDlgPage auf eine von CPSUI bereitgestellte, vordefinierte DLGPAGE-Struktur verweist, stellt CPSUI diesen Index bereit.
Flags
Optionale Bitflags, die die Eigenschaften der Option ändern. Das OPTIF_CHANGEONCE-Flag wird von CPSUI festgelegt. alle anderen Flags werden vom Aufrufer festgelegt. Es kann eine beliebige Kombination der folgenden Flags festgelegt werden.
OPTIF_CALLBACK
Wenn ein Benutzer die Option ändert, sollte CPSUI die _CPSUICALLBACK-typisierte Rückruffunktion aufrufen, die in der COMPROPSHEETUI-Struktur angegeben ist.
OPTIF_CHANGED
Die _CPSUICALLBACK-typisierte Rückruffunktion sollte dieses Flag festlegen, wenn sie die Option geändert hat, damit CPSUI sie erneut anzeigt.
OPTIF_CHANGEONCE
CPSUI legt dieses Bit fest, wenn ein Benutzer die Option geändert hat.
OPTIF_COLLAPSE
Reduzieren Sie diese Option und ihre untergeordneten Elemente, sodass sie nicht in der Strukturansicht erweitert wird.
OPTIF_DISABLED
Deaktiviert die Option, sodass sie nicht vom Benutzer geändert werden kann.
OPTIF_ECB_CHECKED
Das zugehörige erweiterte Kontrollkästchen befindet sich im aktivierten Zustand.
OPTIF_EXT_IS_EXTPUSH
Wenn festgelegt, ist der pExtPush-Member gültig (außer NULL).
Wenn nicht festgelegt, ist das pExtChkBox-Element gültig (außer NULL).
OPTIF_EXT_DISABLED
Das erweiterte Kontrollkästchen oder die erweiterte Drucktaste kann nicht ausgewählt werden.
OPTIF_EXT_HIDE
CPSUI zeigt weder das erweiterte Kontrollkästchen noch die erweiterte Schaltfläche an.
OPTIF_HAS_POIEXT
Wenn festgelegt, ist der pOIExt-Member gültig.
OPTIF_HIDE
CPSUI zeigt diese Option nicht in der Strukturansicht an. CPSUI untersucht dieses Flag nur beim anfänglichen Erstellen der Strukturansicht, sodass das Ändern des Flags vom Anfangswert keine Auswirkungen hat.
OPTIF_INITIAL_TVITEM
Falls festgelegt, legt CPSUI den Anfänglichen Fensterfokus auf diese Option fest, wenn die Strukturansicht angezeigt wird. CPSUI erweitert Strukturknoten und scrollt die Option nach Bedarf in die Ansicht. Wenn die Option ausgeblendet ist oder dieses Flag für keine OPTITEM-Struktur festgelegt ist, wählt CPSUI den anfänglichen Fokus.
OPTIF_NO_GROUPBOX_NAME
Wenn nicht festgelegt ist und pOptype nicht 0 ist, verwendet CPSUI die pName-Zeichenfolge als Gruppenboxtitel.
Falls festgelegt, stellt CPSUI einen Groupbox-Titel bereit.
OPTIF_OVERLAY_NO_ICON
Wenn set CPSUI sein IDI_CPSUI_NO Symbol auf das der Option zugeordnete Symbol überlagert. (Siehe Sel/pSel-Member .)
OPTIF_OVERLAY_STOP_ICON
Falls festgelegt, überlagert CPSUI sein IDI_CPSUI_STOP-Symbol mit dem der Option zugeordneten Symbol. (Siehe Sel/pSel-Member .)
OPTIF_OVERLAY_WARNING_ICON
Falls festgelegt, überlagert CPSUI sein IDI_CPSUI_WARNING-Symbol mit dem der Option zugeordneten Symbol. (Siehe Sel/pSel-Member .)
OPTIF_SEL_AS_HICON
Wenn festgelegt, enthält das Sel-Element ein Symbolhandle.
Falls nicht festgelegt, enthält das Sel-Element einen Symbolressourcenbezeichner.
Dieses Flag kann nur verwendet werden, wenn pOptTypeNULL enthält.
UserData
Optionaler 32-Bit-Wert, der vom Aufrufer festgelegt und verwendet werden kann.
(Druckerschnittstellen-DLLs für Unidrv und Pscript verwenden diesen Member, um einen Zeiger auf eine USERDATA-Struktur anzugeben. Benutzeroberflächen-Plug-Ins können auf diese Struktur verweisen.)
pName
Zeichenfolgenbezeichner, der einen lokalisierten, anzeigebaren Optionsnamen darstellt. Dies kann ein 32-Bit-Zeiger auf eine NULL-beendete Zeichenfolge oder ein 16-Bit-Zeichenfolgenressourcenbezeichner sein, wobei HIWORD auf 0 festgelegt ist. (Siehe auch die Beschreibung von DMPubID unten.)
DUMMYUNIONNAME
DUMMYUNIONNAME.Sel
Diese Union gibt den aktuell ausgewählten Parameterwert der Option an. Die Verwendung ist vom CPSUI-Optionstyp abhängig.
Wenn pOptTypeNULL ist, enthält die Option keine Parameter, sodass diese Union ein Symbol identifiziert, das dem Treeview-Knoten für die Option zugeordnet werden soll. Der Symbolbezeichner kann entweder ein Symbolhandle oder ein Symbolressourcenbezeichner sein, wie durch OPTIF_SEL_AS_HICON in Flags angegeben.
DUMMYUNIONNAME.pSel
Diese Union gibt den aktuell ausgewählten Parameterwert der Option an. Die Verwendung ist vom CPSUI-Optionstyp abhängig.
Wenn pOptTypeNULL ist, enthält die Option keine Parameter, sodass diese Union ein Symbol identifiziert, das dem Treeview-Knoten für die Option zugeordnet werden soll. Der Symbolbezeichner kann entweder ein Symbolhandle oder ein Symbolressourcenbezeichner sein, wie durch OPTIF_SEL_AS_HICON in Flags angegeben.
DUMMYUNIONNAME2
Definiert die DUMMYUNIONNAME2 Union.
DUMMYUNIONNAME2.pExtChkBox
Zeiger auf die EXTCHKBOX-Struktur
DUMMYUNIONNAME2.pExtPush
Diese Union kann ein Zeiger auf eine EXTCHKBOX-Struktur , ein Zeiger auf eine EXTPUSH-Struktur oder NULL sein.
Einer OPTITEM-Struktur kann optional eine EXTCHKBOX-Struktur, eine EXTPUSH-Struktur oder keines zugeordnet sein. Wenn diese Union nicht NULL ist und OPTIF_EXT_IS_EXTPUSH in Flags festgelegt ist, ist pExtPush gültig. Wenn das Flag nicht festgelegt ist, ist pExtChkBox gültig.
pOptType
Zeiger auf eine OPTTYPE-Struktur , die den Anzeigetyp der Option beschreibt. Bei NULL enthält die Option keine Parameter und wird als übergeordnetes Element für Optionen mit einem höheren Level-Wert verwendet. Die untergeordneten Optionen müssen sofort dem übergeordneten Element im OPTITEM-Array folgen. (Weitere Informationen finden Sie im folgenden Abschnitt mit den Anmerkungen.)
HelpIndex
Hilfedateiindex, der den Hilfetext identifiziert, der der Option zugeordnet werden soll. Wenn null, ist der Text der Hilfedatei für diese Option nicht vorhanden. Beachten Sie, dass das pOIExt-Element dieser Struktur mit der Adresse einer OIEXT-Struktur festgelegt werden muss, damit die Hilfetextfunktionalität vorhanden ist.
DMPubID
Dieses Element ist für die Verwendung durch Druckerschnittstellen-DLLs beim Erstellen eines Dokumenteigenschafteneigenschaften-Eigenschaftenblatts vorgesehen (siehe DrvDocumentPropertySheets). Es handelt sich um einen konstanten Wert, der angibt, welches öffentliche Element der DEVMODEW-Struktur dieser Option zugeordnet ist, falls vorhanden. In der folgenden Tabelle sind verfügbare Konstanten, der zugeordnete DEVMODE-Strukturmember und der erforderliche Wert für pName für jede Konstante aufgeführt.
Konstanter Wert | Erforderlicher pName-Wert | Strukturelement |
---|---|---|
DMPUB_COLOR | dmColor | IDS_CPSUI_COLOR_APPERANCE |
DMPUB_COPIES_COLLATE | dmCopies und 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 | Nicht im öffentlichen Abschnitt von DEVMODE enthalten. | IDS_CPSUI_NUP |
DMPUB_ORIENTATION | dmOrientation | IDS_CPSUI_ORIENTATION |
DMPUB_OUTPUTBIN | Nicht im öffentlichen Abschnitt von DEVMODE enthalten. | IDS_CPSUI_OUTPUTBIN |
DMPUB_PAGEORDER | Nicht im öffentlichen Abschnitt von DEVMODE enthalten. | IDS_CPSUI_PAGEORDER |
DMPUB_PRINTQUALITY | dmPrintQuality | IDS_CPSUI_PRINTQUALITY oder IDS_CPSUI_RESOLUTION. Wenn nicht angegeben, lautet der Standardname IDS_CPSUI_RESOLUTION. |
DMPUB_QUALITY | Nicht im öffentlichen Abschnitt von DEVMODE enthalten. | IDS_CPSUI_QUALITY_SETTINGS |
DMPUB_SCALE | dmScale | IDS_CPSUI_SCALE |
DMPUB_TTOPTION | dmTTOption | IDS_CPSUI_TTOPTION |
DMPUB_NONE | Nicht im öffentlichen Abschnitt von DEVMODE enthalten. | |
Größer als oder gleich DMPUB_USER | Von CPSUI ignoriert, kann ein vom Aufrufer definierter Wert sein. |
CPSUI verwaltet keine DEVMODE-Struktur. Die Anwendung ist für das Kopieren von vom Benutzer ausgewählten Optionsparametern in eine DEVMODE-Struktur verantwortlich. CPSUI verwendet DMPubID-Inhalte , um die Treeview-Platzierung von Standardoptionen zu bestimmen und den Inhalt der Registerkarten Layout und Papier/Qualität zu bestimmen (siehe pDlgPage-Member der COMPROPSHEETUI-Struktur ).
Weitere Informationen zur Verwendung des DMPubID-Members finden Sie im folgenden Abschnitt Hinweise.
UserItemID
Optionaler Anwendungswert, der für Optionsidentifikationszwecke verwendet werden kann. Nicht von CPSUI referenziert.
wReserved
Reserviert, muss mit 0 initialisiert werden.
pOIExt
Zeiger auf eine optionale OIEXT-Struktur . Der Aufrufer ist für die Zuweisung von Speicher für diese Struktur verantwortlich.
dwReserved[3]
Reserviert, muss mit 0 initialisiert werden.
Hinweise
OPTITEM-Strukturen sollten in einem Array platziert werden, und die Adresse des Arrays sollte im pOptItem-Member einer COMPROPSHEETUI-Struktur platziert werden.
Mit dem Level-Member können Sie untergeordnete Knoten in der Strukturansicht erstellen. Wenn Sie beispielsweise einen Satz von Optionsknoten unter einem übergeordneten Knoten der Ebene 1 erstellen möchten, geben Sie ebene 2 für jeden untergeordneten Knoten an, und schließen Sie die zugehörigen OPTITEM-Strukturen direkt nach der OPTITEM-Struktur des übergeordneten Arrays ein. In der OPTITEM-Struktur des übergeordneten Elements sollte pOptTypeNULL sein.
Der Treeview-Stammknoten ist Ebene 0. Die Optionen, die angezeigt werden, wenn ein Benutzer den Stammknoten erweitert, sind Ebene 1. Die maximale Anzahl von Ebenen ist 256.
Für Optionswerte, die in der DEVMODE-Struktur eines Druckers gespeichert sind, muss das DMPubID-Element die Option identifizieren. Für jeden verwendeten DMPubID-Wert muss eine Druckerschnittstellen-DLL den in der folgenden Tabelle aufgeführten CPSUI-Optionstyp angeben.
DMPubID-Wert | Erforderlicher CPSUI-Optionstyp |
---|---|
DMPUB_COLOR | TVOT_2STATES |
DMPUB_COPIES_COLLATE | TVOT_UDARROW plus EXTCHKBOX (Siehe Kommentare nach dieser Tabelle.) |
DMPUB_DEFSOURCE | TVOT_LISTBOX |
DMPUB_DITHERTYPE | TVOT_LISTBOX |
DMPUB_DUPLEX | TVOT_2STATES oder TVOT_3STATES |
DMPUB_FORMNAME | TVOT_LISTBOX |
DMPUB_ICMINTENT | TVOT_2STATES oder TVOT_3STATES |
DMPUB_ICMMETHOD | TVOT_2STATES oder TVOT_3STATES |
DMPUB_MEDIATYPE | TVOT_LISTBOX |
DMPUB_NUP | TVOT_LISTBOX |
DMPUB_ORIENTATION | TVOT_2STATES oder TVOT_3STATES |
DMPUB_OUTPUTBIN | TVOT_LISTBOX |
DMPUB_PAGEORDER | TVOT_2STATES oder TVOT_3STATES |
DMPUB_PRINTQUALITY | TVOT_LISTBOX |
DMPUB_QUALITY | TVOT_2STATES oder TVOT_3STATES |
DMPUB_SCALE | TVOT_UDARROW |
DMPUB_TTOPTION | TVOT_LISTBOX |
Wenn DMPubID DMPUB_COPIES_COLLATE ist und der Drucker Kopien sortieren kann, muss ein erweitertes Kontrollkästchen (EXTCHKBOX-Struktur ) bereitgestellt werden. Die Member der EXTCHCKBOX-Struktur müssen wie folgt festgelegt werden:
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;
Wenn OPTIF_EXT_HIDE nicht in Flags festgelegt ist, aktiviert CPSUI das Kontrollkästchen, wenn ein Benutzer mehrere Kopien anfordert, und deaktiviert es, wenn nur eine Kopie angefordert wird.
Darüber hinaus legt CPSUI fest, dass der Anzeigetext der Option für eine Kopie undfür mehrere Kopien kopiert werden soll.
Wenn DMPubID DMPUB_COLOR ist, muss die erste OPTPARAM-Struktur (Sel=0) graue Skala darstellen, und pData in der OPTPARAM-Struktur muss IDS_CPSUI_GRAYSCALE sein. Die zweite OPTPARAM-Struktur (Sel=1) muss Color darstellen, und pData in der OPTPARAM-Struktur muss IDS_CPSUI_COLOR sein. Wenn die DMPubID einer anderen Option DMPUB_ICMINTENT ist und Farb nicht ausgewählt ist, deaktiviert CPSUI die Option, für die DMPUB_ICMINTENT angegeben ist.
CPSUI deaktiviert den Farbabgleich, wenn Farbe nicht ausgewählt ist.
Anforderungen
Anforderung | Wert |
---|---|
Header | compstui.h (einschließlich Compstui.h) |