Freigeben über


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
S_OK
Die Methode wurde erfolgreich ausgeführt.
E_OUTOFMEMORY
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.

E_NOTIMPL
Die Methode wird nicht unterstützt.
E_INVALIDARG
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.

E_FAIL
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

IPrintCoreUI2::EnumConstrainedOptions

IPrintOemUI::D evicePropertySheets

IPrintOemUI::D ocumentPropertySheets

OEMUIOBJ