IPrintCoreHelper::SetOptions-Methode (prcomoem.h)
Die IPrintCoreHelper::SetOptions--Methode legt mehrere Featureoptionspaare gleichzeitig fest.
Syntax
HRESULT SetOptions(
[in, optional] IN PDEVMODE pDevmode,
[in] IN DWORD cbSize,
[in] IN BOOL bResolveConflicts,
[in] IN const PRINT_FEATURE_OPTION [] pFOPairs,
[in] IN DWORD cPairs,
[out] OUT PDWORD pcPairsWritten,
[out] OUT PDWORD pdwResult
);
Parameter
[in, optional] pDevmode
Ein Zeiger auf eine DEVMODEW--Struktur. Wenn dieser Zeiger bereitgestellt wird, sollten IPrintCoreHelper::SetOptions- die DEVMODEW-Struktur verwenden, auf die von pDevmode anstelle der Standard- oder aktuellen DEVMODEW-Struktur verwiesen wird. Wenn diese Methode vom Plug-In-Anbieter oder von IPrintOemPS::D evMode oder IPrintOemUni::D evModeaufgerufen wird, ist dieser Parameter erforderlich. In den meisten anderen Situationen sollte der Parameter NULL-sein. Wenn der Kerntreiber pDevmode auf NULL-festlegt, ändert er seinen internen Zustand und nicht die der übergebenen DEVMODEW-Struktur. Dies ist bei Vorgängen wie dem vollständigen Austausch der Benutzeroberfläche erforderlich, wobei die von einem DDI zurückgegebene DEVMODEW-Struktur, z. B. DrvDocumentPropertySheets, vom Benutzeroberflächenmodul des Kerntreibers gewartet wird.
[in] cbSize
Die Größe der DEVMODEW-Struktur, auf die durch den pDevmode-Parameter verwiesen wird.
[in] bResolveConflicts
Ein boolescher Wert, der angibt, ob IPrintCoreHelper::SetOptions Konflikte lösen sollten, die sich aus einer oder mehreren Einschränkungen ergeben, die in der GPD- oder PPD-Ansicht der Konfigurationsdatei angegeben sind, sowie Einschränkungen für funktionen, die von Unidrv oder Pscript oder dem Druckprozessor implementiert werden. Wenn TRUE, sollte diese Methode versuchen, den Konflikt zu lösen. Wenn FALSE-, sollte diese Methode nicht versuchen, Konflikte zu lösen. Weitere Informationen finden Sie im Abschnitt "Hinweise".
[in] pFOPairs
Ein Array von PRINT_FEATURE_OPTION Elementen, wobei jedes Element ein Featureoptionspaar enthält. Jedes Featureoptionspaar listet ein Feature und die Option zum Auswählen für dieses Feature auf. Alle Einstellungen werden sequenziell angewendet. Duplikate sind nicht zulässig, aber Einstellungen, die später im Array angezeigt werden (d. h. bei einem höheren Index), überschreiben diejenigen, die weiter oben im Array angezeigt werden.
[in] cPairs
Die Anzahl der Featureoptionspaare, auf die durch den pFOPairs Parameter verwiesen wird.
[out] pcPairsWritten
Ein Zeiger auf eine Variable, die die Anzahl der Featureoptionspaare empfängt, die erfolgreich gespeichert wurden, bevor IPrintCoreHelper::SetOptions zurückgegeben oder fehlgeschlagen wurde. Wenn diese Methode erfolgreich zurückgegeben wird, hat *pcPairsWritten denselben Wert wie cPairs. Wenn die Methode fehlschlägt,*pcPairsWritten- kann über den Wert cPairseinen beliebigen Wert von Null aufweisen. Dieser Parameter ist optional und kann NULL-werden.
[out] pdwResult
Ein Zeiger auf eine Variable, die den Status der Konfliktauflösung empfängt. Der Status kann einer der folgenden Werte sein:
Wert | Beschreibung |
---|---|
SETOPTIONS_RESULT_NO_CONFLICT | Es wurde keine Einschränkung verletzt, die in der GPD- oder PPD-Ansicht der Konfigurationsdatei im Verhältnis zur neuen Einstellung angegeben wurde. |
SETOPTIONS_RESULT_CONFLICT_RESOLVED | Mindestens eine Einschränkung, die in der GPD- oder PPD-Ansicht der Konfigurationsdatei angegeben wurde, wurde verletzt, und der Aufrufer hat angefordert, dass die Methode Konflikte lösen sollte. Dieser Wert führt zu geänderten Einstellungen mit aufgelösten Konflikten. |
SETOPTIONS_RESULT_CONFLICT_NOT_RESOLVED | Mindestens eine Einschränkung, die in der GPD- oder PPD-Ansicht der Konfigurationsdatei angegeben wurde, wurde verletzt, und der Aufrufer hat angefordert, dass die Methode keine Konflikte lösen sollte. Die Einstellungen werden nicht geändert, und Konflikte bleiben bestehen. |
Rückgabewert
IPrintCoreHelper::SetOptions sollte einen der folgenden Werte zurückgeben.
Rückgabecode | Beschreibung |
---|---|
S_OK | Der Vorgang war erfolgreich. |
E_INVALIDARG | Mindestens ein Argument ist ungültig, oder das Feature wurde nicht unterstützt. |
E_OUTOFMEMORY | Speicher für das Ergebnisarray konnte nicht zugeordnet werden. |
Bei anderen Fehlern sollte die Methode einen standardmäßigen COM-Fehlercode zurückgeben.
Bemerkungen
IPrintCoreHelper::SetOptions können verwendet werden, um mehrere Einstellungen gleichzeitig zu ändern und Einschränkungen aufzulösen, nachdem alle ausgewählten Optionen festgelegt wurden. Änderungen an Optionen werden sequenziell angewendet, beginnend am Anfang der pFOPairs Array. Wenn also das gleiche Feature zweimal in diesem Array angezeigt wird, wird nur die letzte Option für das Feature ausgewählt. Änderungen an Optionen werden nicht übernommen (d. h. in der Registrierung gespeichert), es sei denn, die bResolveConflicts Parameter ist TRUE.
In den meisten Szenarien sollte der bResolveConflicts Parameter auf TRUE-festgelegt werden. Legen Sie diesen Parameter auf FALSE- fest, wenn Sie den Benutzer auffordern möchten, Konflikte zu lösen.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Desktop |
Header- | prcomoem.h (einschließlich Prcomoem.h) |