IPrintCoreUI2::WhyConstrained-Methode (prcomoem.h)
Die IPrintCoreUI2::WhyConstrained
-Methode bestimmt, warum die angegebene Feature-/Optionsauswahl eingeschränkt ist.
Syntax
HRESULT WhyConstrained(
[in] POEMUIOBJ poemuiobj,
[in] DWORD dwFlags,
[in] PCSTR pszFeatureKeyword,
[in] PCSTR pszOptionKeyword,
[out] PZZSTR pmszReasonList,
[in] DWORD cbSize,
[out] PDWORD pcbNeeded
);
Parameter
[in] poemuiobj
Zeiger auf den aktuellen Kontext, eine OEMUIOBJ-Struktur .
[in] dwFlags
Ist reserviert und muss auf 0 (null) festgelegt werden.
[in] pszFeatureKeyword
Zeiger auf einen vom Aufrufer bereitgestellten Puffer, der das einzelne Feature enthält, Schlüsselwort (keyword) für den Aufrufer von Interesse ist.
[in] pszOptionKeyword
Zeiger auf einen vom Aufrufer bereitgestellten Puffer, der die Option Schlüsselwort (keyword).
[out] pmszReasonList
Zeiger auf einen vom Aufrufer bereitgestellten Puffer, der eine Liste der Feature-/Options-Schlüsselwort (keyword) Paare empfängt, die Einschränkungen für das angegebene Feature/die angegebene Option festlegen. Diese Liste hat MULTI_SZ Format, wobei jedes Element in der Liste vom nächsten durch ein NULL-Zeichen getrennt ist. Die Liste wird mit zwei NULL-Zeichen beendet.
Legen Sie diesen Parameter auf NULL fest, um einfach die Größe (*pcbNeeded) der Ursachenliste abzufragen, ohne dass die Liste ausgefüllt wird.
[in] cbSize
Gibt die Größe des Puffers in Bytes an, auf den pmszReasonList verweist.
[out] pcbNeeded
Zeiger auf einen Speicherort im Arbeitsspeicher, der die tatsächliche Größe der Ursachenliste in Bytes empfängt.
Rückgabewert
Die -Methode muss einen der folgenden Werte zurückgeben.
Rückgabecode | BESCHREIBUNG |
---|---|
|
Die Methode wurde erfolgreich ausgeführt. |
|
Der Wert in cbSize war kleiner als die Anzahl der Bytes, die in den Ausgabepuffer geschrieben werden sollen (der Puffer, auf den pmszReasonList verweist).
Die -Methode wurde aufgerufen, wobei pmszReasonList auf NULL festgelegt ist. |
|
Die Methode wird nicht unterstützt. |
|
Der poemuiobj-Parameter verweist auf ein ungültiges Kontextobjekt.
Das Feature Schlüsselwort (keyword) oder die Option Schlüsselwort (keyword) wurde nicht erkannt. Die Feature-Stickiness (siehe Ersetzen Driver-Supplied Eigenschaftenblattseiten) stimmte nicht mit der im aktuellen Kontext angegebenen überein. |
|
Fehler bei der Methode |
Hinweise
Diese Methode wird nur für Windows XP Pscript5 UI-Plug-Ins unterstützt, die die Standard-UI-Seiten des Haupttreibers vollständig ersetzen, und wird nur während der Funktionen IPrintOemUI::D ocumentPropertySheets und IPrintOemUI::D evicePropertySheets des UI-Plug-Ins und deren Eigenschaftenblatt-Rückrufroutinen unterstützt. Weitere Informationen finden Sie unter Ersetzen Driver-Supplied Eigenschaftenblattseiten .
Wenn ein Benutzer der OEM-Benutzeroberfläche versucht, ein element auszuwählen, das eingeschränkt ist, kann der Aufrufer diese Methode verwenden, um eine Meldung anzuzeigen, in der erläutert wird, warum das Element eingeschränkt ist. Wenn diese Methode zurückgibt, verweist pmszReasonList auf eine Liste von mindestens einem Feature-/Optionspaar, die in den aktuellen Treibereinstellungen angezeigt werden, aber mit den ausgewählten Feature-/Optionsschlüsselwörtern in Konflikt stehen. Wenn keine Konflikte aufgetreten sind, sollte die Methode S_OK zurückgeben, pmszReasonList sollte mit einer leeren ASCII-Zeichenfolge ausgefüllt werden, die nur ein NULL-Zeichen enthält, und *pcbNeeded sollte auf 1 festgelegt werden.
Um die Notwendigkeit von zwei Aufrufen pro Datenzugriff zu reduzieren, übergeben Sie der Methode einen Ausgabepuffer einer festen Größe (z. B. 1 KB), und überprüfen Sie dann den Funktionsrückgabewert. Wenn die Methode S_OK zurückgibt, enthält der Puffer bereits die relevanten Daten. Wenn die Methode E_OUTOFMEMORY zurückgibt, ist der Wert in *pcbNeeded die Puffergröße, die zum Speichern der relevanten Daten erforderlich ist. Der Aufrufer sollte dann einen Puffer dieser größeren Größe zuordnen und mit einem zweiten Aufruf der -Methode fortfahren.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Desktop |
Kopfzeile | prcomoem.h (include Prcomoem.h) |
Weitere Informationen
IPrintCoreUI2::EnumConstrainedOptions
IPrintOemUI::D evicePropertySheets