Freigeben über


IPrintCoreHelperUni::SetOptions-Methode (prcomoem.h)

Die IPrintCoreHelperUni::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, sollte IPrintCoreHelperUni::SetOptions- die DEVMODEW-Struktur verwenden, auf die pDevmode- anstelle der Standard- oder der aktuellen DEVMODEW-Struktur verweist. Wenn diese Methode vom Plug-In-Anbieter oder von IPrintOemPS::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 in Byte, auf die der pDevmode-Parameter verweist.

[in] bResolveConflicts

Ein boolescher Wert, der angibt, ob IPrintCoreHelperUni::SetOptions Konflikte lösen sollten, die sich aus einer oder mehreren Einschränkungen in der GPD-Ansicht der Konfigurationsdatei ergeben, sowie Einschränkungen für funktionen, die von Unidrv 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 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 IPrintCoreHelperUni::SetOptions zurückgegeben oder fehlgeschlagen wurde. Wenn diese Methode erfolgreich zurückgegeben wird, hat pcPairsWritten denselben Wert wie cPairs. Wenn die Methode fehlschlägt, kann pcPairsWritten- einen beliebigen Wert von 0 bis zum Wert cPairsaufweisen. 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-Ansicht der Konfigurationsdatei angegeben wurde, relativ zur neuen Einstellung.
SETOPTIONS_RESULT_CONFLICT_RESOLVED Mindestens eine Einschränkung, die in der GPD-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-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

IPrintCoreHelperUni::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

IPrintCoreHelperUni::SetOptions können verwendet werden, um mehrere Einstellungsänderungen gleichzeitig vorzunehmen und Einschränkungen zu beheben, 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 nur übernommen, wenn der bResolveConflicts Parameter TRUEist.

In den meisten Szenarien sollte der bResolveConflicts Parameter auf TRUEfestgelegt 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)

Siehe auch

IPrintCoreHelperUni

IPrintCoreHelperUni::GetOption