Freigeben über


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)

Siehe auch

IPrintCoreHelper-

IPrintCoreHelper::GetOption