IPrintCoreHelperPS::SetOptions-Methode (prcomoem.h)

Die IPrintCoreHelperPS::SetOptions-Methode legt mehrere Feature-Option-Paare 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, sollte IPrintCoreHelperPS::SetOptions anstelle der standardmäßigen oder aktuellen DEVMODEW-Struktur die DEVMODEW-Struktur verwenden, auf die von pDevmode verwiesen wird. Wenn diese Methode vom Plug-In-Anbieter oder von IPrintOemPS::D evMode aufgerufen 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 anstelle der übergebenen DEVMODEW-Struktur. Dies ist bei Vorgängen wie der vollständigen Ersetzung der Benutzeroberfläche erforderlich, bei denen die von einem DDI zurückgegebene DEVMODEW-Struktur, z. B. DrvDocumentPropertySheets, vom Benutzeroberflächenmodul des Haupttreibers verarbeitet wird.

[in] cbSize

Die Größe der DEVMODEW-Struktur in Bytes, auf die der pDevmode-Parameter verweist.

[in] bResolveConflicts

Ein boolescher Wert, der angibt, ob IPrintCoreHelperPS::SetOptions Konflikte auflösen soll, die aus einer oder mehreren Einschränkungen in der PPD-Ansicht der Konfigurationsdatei entstehen, sowie Einschränkungen für Funktionen, die von 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.

[in] pFOPairs

Ein Array von PRINT_FEATURE_OPTION Elementen, wobei jedes Element ein Feature-Optionspaar enthält. Jedes Feature-Optionspaar listet ein Feature und die Option auf, die für dieses Feature ausgewählt werden soll. Alle Einstellungen werden sequenziell angewendet. Duplikate sind nicht zulässig, aber Einstellungen, die später im Array (d. h. bei einem höheren Index) angezeigt werden, überschreiben diejenigen, die zuvor im Array angezeigt werden.

[in] cPairs

Die Anzahl der Feature-Optionspaare, auf die der pFOPairs-Parameter verweist.

[out] pcPairsWritten

Ein Zeiger auf eine Variable, die die Anzahl der Feature-Option-Paare empfängt, die erfolgreich gespeichert wurden, bevor IPrintCoreHelperPS::SetOptions zurückgegeben wurde oder fehlgeschlagen ist. Wenn diese Methode erfolgreich zurückgibt, hat pcPairsWritten den gleichen Wert wie cPairs. Wenn die Methode fehlschlägt, kann pcPairsWritten einen beliebigen Wert von null bis zum Wert von cPairs aufweisen. Dieser Parameter ist optional und kann NULL sein.

[out] pdwResult

Ein Zeiger auf eine Variable, die die status der Konfliktlösung empfängt. Der status kann einer der folgenden Werte sein.

Wert BESCHREIBUNG
SETOPTIONS_RESULT_NO_CONFLICT Im Vergleich zur neuen Einstellung wurde keine Einschränkung verletzt, die in der PPD-Ansicht der Konfigurationsdatei angegeben wurde.
SETOPTIONS_RESULT_CONFLICT_RESOLVED Mindestens eine Einschränkung, die in der PPD-Ansicht der Konfigurationsdatei angegeben wurde, wurde verletzt, und der Aufrufer forderte, dass die Methode Konflikte lösen sollte. Dieser Wert führt zu geänderten Einstellungen mit gelösten Konflikten.
SETOPTIONS_RESULT_CONFLICT_NOT_RESOLVED Mindestens eine Einschränkung, die in der PPD-Ansicht der Konfigurationsdatei angegeben wurde, wurde verletzt, und der Aufrufer forderte, dass die Methode konflikte nicht auflösen sollte. Die Einstellungen ändern sich nicht, und Konflikte bleiben bestehen.

Rückgabewert

IPrintCoreHelperPS::SetOptions sollte einen der folgenden Werte zurückgeben.

Rückgabecode BESCHREIBUNG
S_OK Der Vorgang wurde erfolgreich ausgeführt.
E_INVALIDARG Mindestens eines der Argumente ist ungültig, oder das Feature wurde nicht unterstützt.
E_OUTOFMEMORY Der Arbeitsspeicher für das Ergebnisarray konnte nicht zugeordnet werden.

Bei anderen Fehlern sollte die -Methode einen COM-Standardfehlercode zurückgeben.

Hinweise

IPrintCoreHelperPS::SetOptions kann verwendet werden, um gleichzeitig mehrere Einstellungen zu ändern und Einschränkungen aufzulösen, nachdem alle ausgewählten Optionen festgelegt wurden. Änderungen an Optionen werden sequenziell angewendet, beginnend mit dem Anfang des pFOPairs-Arrays . 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 committet, es sei denn , der 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
Kopfzeile prcomoem.h (include Prcomoem.h)

Weitere Informationen

IPrintCoreHelperPS

IPrintCoreHelperPS::GetOptions