Freigeben über


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;

Angehörige

cbSize

Größe der OPTITEM- Struktur in Byte.

Level

Gibt die Ebene dieser Option in der Strukturansicht an. Weitere Informationen finden Sie im Abschnitt "Hinweise" weiter unten.

DlgPageIdx

Identifiziert das Dialogfeld, 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 einen von CPSUI bereitgestellten, vordefinierten DLGPAGE--Struktur verweist, stellt CPSUI diesen Index bereit.

Flags

Optionale Bitkennzeichnungen, die die Merkmale der Option ändern. Das OPTIF_CHANGEONCE Flag wird von CPSUI festgelegt; alle anderen Flags werden vom Aufrufer festgelegt. Eine beliebige Kombination der folgenden Flags kann festgelegt werden.

OPTIF_CALLBACK

Wenn ein Benutzer die Option ändert, sollte CPSUI die in der COMPROPSHEETUI Struktur angegebene _CPSUICALLBACK-typed callback-Funktion aufrufen.

OPTIF_CHANGED

Die _CPSUICALLBACK-typed callback function should set this flag if it modified the option, so that CPSUI will redisplay it.

OPTIF_CHANGEONCE

CPSUI legt dieses Bit fest, wenn ein Benutzer die Option geändert hat.

OPTIF_COLLAPSE

Reduzieren Sie diese Option und die untergeordneten Elemente, damit 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 zugeordnete erweiterte Kontrollkästchen befindet sich im aktivierten Zustand.

OPTIF_EXT_IS_EXTPUSH

Wenn festgelegt, ist das pExtPush Member gültig (es sei denn, NULL-).

Wenn nicht festgelegt, ist das pExtChkBox Member gültig (es sei denn, NULL-).

OPTIF_EXT_DISABLED

Das erweiterte Kontrollkästchen oder die erweiterte Knopfdrucktaste kann nicht aktiviert werden.

OPTIF_EXT_HIDE

CPSUI zeigt das erweiterte Kontrollkästchen oder die erweiterte Knopfdrucktaste nicht an.

OPTIF_HAS_POIEXT

Wenn dieser Wert festgelegt ist, ist das 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 von seinem Anfangswert keine Auswirkung hat.

OPTIF_INITIAL_TVITEM

Wenn dieser Wert festgelegt ist, legt CPSUI den anfänglichen Fensterfokus auf diese Option fest, wenn die Strukturansicht angezeigt wird. CPSUI erweitert Strukturknoten und scrollt bei Bedarf in die Ansicht. Wenn die Option ausgeblendet ist oder diese Kennzeichnung für keine OPTITEM-Struktur festgelegt ist, wählt CPSUI den anfänglichen Fokus aus.

OPTIF_NO_GROUPBOX_NAME

Wenn nicht festgelegt und pOptype- nicht null ist, verwendet CPSUI die pName- Zeichenfolge als Groupbox-Titel.

Wenn festgelegt, stellt CPSUI einen Groupbox-Titel bereit.

OPTIF_OVERLAY_NO_ICON

Wenn "CPSUI" das IDI_CPSUI_NO-Symbol auf das symbol überlagert, das der Option zugeordnet ist. (Siehe Sel/pSel Mitglied.)

OPTIF_OVERLAY_STOP_ICON

Wenn festgelegt, überlagert CPSUI das IDI_CPSUI_STOP-Symbol auf das Symbol, das der Option zugeordnet ist. (Siehe Sel/pSel Mitglied.)

OPTIF_OVERLAY_WARNING_ICON

Wenn festgelegt, überlagert CPSUI das IDI_CPSUI_WARNING-Symbol auf das Symbol, das der Option zugeordnet ist. (Siehe Sel/pSel Mitglied.)

OPTIF_SEL_AS_HICON

Wenn festgelegt, enthält das Sel Mitglied einen Symbolpunkt.

Wenn nicht festgelegt, enthält das Sel Member einen Symbolressourcenbezeichner.

Dieses Flag kann nur verwendet werden, wenn pOptType-NULL-enthält.

UserData

Optionaler 32-Bit-Wert, der vom Aufrufer festgelegt und verwendet werden kann.

(Druckerschnittstellen-DLLs für Unidrv und Pscript- verwenden dieses Element, um einen Zeiger auf eine USERDATA- Struktur zu liefern. Plug-Ins der Benutzeroberfläche können auf diese Struktur verweisen.)

pName

Zeichenfolgenbezeichner, der einen lokalisierten, anzeigefähigen Optionsnamen darstellt. Dies kann ein 32-Bit-Zeiger auf eine NULL-beendete Zeichenfolge sein, oder es kann sich um einen 16-Bit-Zeichenfolgenressourcenbezeichner handeln, wobei HIWORD auf Null festgelegt ist. (Siehe auch die Beschreibung der DMPubID-unten.)

DUMMYUNIONNAME

DUMMYUNIONNAME.Sel

Diese Union gibt den aktuell ausgewählten Parameterwert der Option an. Die Verwendung hängt vom CPSUI-Optionstypab.

Wenn pOptType-NULL-ist, weist die Option keine Parameter auf, sodass diese Union ein Symbol identifiziert, das dem Strukturansichtsknoten für die Option zugeordnet werden soll. Der Symbolbezeichner kann entweder ein Symbolhandle oder ein Symbolressourcenbezeichner sein, wie durch OPTIF_SEL_AS_HICON in Flagsangegeben.

DUMMYUNIONNAME.pSel

Diese Union gibt den aktuell ausgewählten Parameterwert der Option an. Die Verwendung hängt vom CPSUI-Optionstypab.

Wenn pOptType-NULL-ist, weist die Option keine Parameter auf, sodass diese Union ein Symbol identifiziert, das dem Strukturansichtsknoten für die Option zugeordnet werden soll. Der Symbolbezeichner kann entweder ein Symbolhandle oder ein Symbolressourcenbezeichner sein, wie durch OPTIF_SEL_AS_HICON in Flagsangegeben.

DUMMYUNIONNAME2

Definiert die DUMMYUNIONNAME2 Union.

DUMMYUNIONNAME2.pExtChkBox

Zeiger auf EXTCHKBOX-Struktur

DUMMYUNIONNAME2.pExtPush

Diese Vereinigung kann ein Zeiger auf eine EXTCHKBOX- Struktur, ein Zeiger auf eine EXTPUSH--Struktur oder NULL-sein.

Eine OPTITEM-Struktur kann optional eine EXTCHKBOX-Struktur, eine EXTPUSH-Struktur oder keines davon zugeordnet sein. Wenn diese Union nicht NULL-ist und OPTIF_EXT_IS_EXTPUSH in Flagsfestgelegt ist, ist pExtPush gültig. Wenn das Flag nicht festgelegt ist, ist pExtChkBox- gültig.

pOptType

Zeigen Sie auf eine OPTTYPE- Struktur, die den Anzeigetyp der Option beschreibt. Wenn NULL-, weist die Option keine Parameter auf und wird als übergeordnetes Element für Optionen mit einem höheren Level Wert verwendet. Die untergeordneten Optionen müssen unmittelbar dem übergeordneten Element im OPTITEM-Array folgen. (Siehe den folgenden Abschnitt "Hinweise".)

HelpIndex

Hilfedateiindex, der Hilfetext identifiziert, der der Option zugeordnet werden soll. Wenn null, ist für diese Option kein Hilfedateitext vorhanden. Beachten Sie, dass das pOIExt- Mitglied dieser Struktur mit der Adresse einer OIEXT- Struktur festgelegt werden muss, damit Hilfetextfunktionen vorhanden sind.

DMPubID

Dieses Element ist für die Verwendung durch Druckerschnittstellen-DLLs gedacht, wenn ein Dokumenteigenschaften- Eigenschaftenblatt erstellt wird (siehe DrvDocumentPropertySheets). Es handelt sich um einen konstanten Wert, der angibt, welches öffentliche Element der DEVMODEW- Struktur dieser Option zugeordnet ist. In der folgenden Tabelle sind verfügbare Konstanten, das zugeordnete DEVMODE-Strukturelement 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, wird 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 oder gleich DMPUB_USER Von CPSUI ignoriert, kann ein aufruferdefinierter Wert sein.

CPSUI verwaltet keine DEVMODE-Struktur. Die Anwendung ist dafür verantwortlich, vom Benutzer ausgewählte Optionsparameter in eine DEVMODE- Struktur zu kopieren. CPSUI verwendet DMPubID Inhalt, um die Strukturansicht 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 von der Anwendung bereitgestellter Wert, der für Optionsidentifikationszwecke verwendet werden kann. Nicht von CPSUI referenziert.

wReserved

Reserviert, muss auf Null initialisiert werden.

pOIExt

Zeiger auf eine optionale OIEXT- Struktur. Der Aufrufer ist für die Zuordnung des Speichers für diese Struktur verantwortlich.

dwReserved[3]

Reserviert, muss auf Null initialisiert werden.

Bemerkungen

OPTITEM-Strukturen sollten in einem Array platziert werden, und die Adresse des Arrays sollte im pOptItem- Mitglied einer COMPROPSHEETUI- Struktur platziert werden.

Mit dem Member Ebene können Sie untergeordnete Knoten in der Strukturansicht erstellen. Wenn Sie z. B. eine Reihe 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 ihre OPTITEM-Strukturen direkt nach der OPTITEM-Struktur des übergeordneten Elements ein. In der OPTITEM-Struktur des übergeordneten Elements sollte pOptType-NULL-sein.

Der Strukturansicht-Stammknoten ist Ebene 0. Optionen, die angezeigt werden, wenn ein Benutzer den Stammknoten erweitert, sind Ebene 1. Die maximale Anzahl von Ebenen beträgt 256.

Für Optionswerte, die in der DEVMODE-Struktur eines Druckers gespeichert sind, muss das DMPubID Mitglied die Option identifizieren. Für jeden DMPubID- Wert, der verwendet wird, muss eine DRUCKERschnittstellen-DLL den CPSUI-Optionstyp angeben, in der folgenden Tabelle aufgeführt ist.

DMPubID-Wert Erforderlicher CPSUI-Optionstyp
DMPUB_COLOR TVOT_2STATES
DMPUB_COPIES_COLLATE TVOT_UDARROW plus EXTCHKBOX- (Siehe Kommentare, die dieser Tabelle folgen.)
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 Flagsfestgelegt ist, aktiviert CPSUI das Kontrollkästchen, wenn ein Benutzer mehrere Kopien anfordert und deaktiviert, wenn nur eine Kopie angefordert wird.

Darüber hinaus legt CPSUI den Anzeigetext der Option auf Kopie für eine Kopie fest und Kopien für mehrere Kopien.

Wenn DMPubID- DMPUB_COLOR ist, muss die erste OPTPARAM- Struktur (Sel=0) graue Skalierung darstellen, und pData- in der OPTPARAM-Struktur muss IDS_CPSUI_GRAYSCALE sein. Die zweite OPTPARAM-Struktur (Sel=1) muss Farbe darstellen, und pData- in der OPTPARAM-Struktur muss IDS_CPSUI_COLOR sein. Wenn die DMPubID- einer anderen Option DMPUB_ICMINTENT ist und wenn "Farbe" 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 (include Compstui.h)