IPrintCoreHelper::SetOptions-Methode (prcomoem.h)
Die IPrintCoreHelper::SetOptions-Methode legt mehrere Feature-Options-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 IPrintCoreHelper::SetOptions anstelle der standardmäßigen oder aktuellen DEVMODEW-Struktur die DEVMODEW-Struktur verwenden, auf die von pDevmodemode verwiesen wird. Wenn diese Methode vom Plug-In-Anbieter oder von IPrintOemPS::D evMode oder IPrintOemUni::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 dem vollständigen Austausch der Benutzeroberfläche erforderlich, bei denen 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 Bytes, auf die der pDevmode-Parameter verweist.
[in] bResolveConflicts
Ein boolescher Wert, der angibt, ob IPrintCoreHelper::SetOptions Konflikte auflösen soll, die aus einer oder mehreren Einschränkungen entstehen, 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 beheben. Wenn FALSE, sollte diese Methode nicht versuchen, Konflikte zu lösen. Weitere Informationen finden Sie im Abschnitt mit Hinweisen.
[in] pFOPairs
Ein Array von PRINT_FEATURE_OPTION Elementen, wobei jedes Element ein Feature-Options-Paar 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 IPrintCoreHelper::SetOptions zurückgegeben wurde oder fehlgeschlagen ist. Wenn diese Methode erfolgreich zurückgegeben wird, hat *pcPairsWritten den gleichen Wert wie cPairs. Wenn die Methode fehlschlägt,*pcPairsWritten kann einen beliebigen Wert von 0 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 Verhältnis zur neuen Einstellung wurde keine Einschränkung verletzt, die in der GPD- oder PPD-Ansicht der Konfigurationsdatei 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 forderte die Methode auf, Konflikte zu lösen. Dieser Wert führt zu geänderten Einstellungen mit gelö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 forderte, dass die Methode Konflikte nicht auflö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 wurde erfolgreich ausgeführt. |
E_INVALIDARG | Mindestens eines der Argumente ist ungültig, oder das Feature wurde nicht unterstützt. |
E_OUTOFMEMORY | Arbeitsspeicher für das Ergebnisarray konnte nicht zugewiesen werden. |
Bei anderen Fehlern sollte die Methode einen standardmäßigen COM-Fehlercode zurückgeben.
Hinweise
IPrintCoreHelper::SetOptions kann 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 mit dem Anfang des pFOPairs-Arrays . Wenn also dasselbe Feature zweimal in diesem Array angezeigt wird, wird nur die letzte Option für das Feature ausgewählt. Änderungen an Optionen werden nicht committet (d. h. in der Registrierung gespeichert), 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 zum Auflösen von Konflikten auffordern möchten.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Desktop |
Kopfzeile | prcomoem.h (einschließlich Prcomoem.h) |