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

Zeigen Sie auf den aktuellen Kontext, eine OEMUIOBJ--Struktur.

[in] dwFlags

Ist reserviert und muss auf Null festgelegt werden.

[in] pszFeatureKeyword

Zeigen Sie auf einen vom Aufrufer bereitgestellten Puffer, der das schlüsselwort des einzelnen Features enthält, das für den Aufrufer von Interesse ist.

[in] pszOptionKeyword

Zeiger auf einen vom Aufrufer bereitgestellten Puffer, der das Optionsschlüsselwort enthält.

[out] pmszReasonList

Zeiger auf einen vom Aufrufer bereitgestellten Puffer, der eine Liste der Feature-/Option-Schlüsselwortpaare empfängt, die Einschränkungen für das angegebene Feature/die angegebene Option platzieren. Diese Liste weist MULTI_SZ Format auf, wobei jedes Element in der Liste durch ein Nullzeichen getrennt ist. Die Liste wird mit zwei Nullzeichen beendet.

Legen Sie diesen Parameter auf NULL- fest, um einfach die Größe (*pcbNeed) der Grundliste abzufragen, ohne die Liste ausgefüllt zu haben.

[in] cbSize

Gibt die Größe des Puffers in Bytes an, auf den pmszReasonListverweist.

[out] pcbNeeded

Zeigen Sie auf einen Speicherspeicherort, der die tatsächliche Größe in Byte der Grundliste empfängt.

Rückgabewert

Die Methode muss einen der folgenden Werte zurückgeben.

Rückgabecode Beschreibung
S_OK
Die Methode war erfolgreich.
E_OUTOFMEMORY
Der Wert in cbSize war kleiner als die Anzahl der Bytes, die in den Ausgabepuffer geschrieben werden sollen (der Puffer, auf den pmszReasonListverweist).

Die Methode wurde mit pmszReasonList aufgerufen, auf NULL-festgelegt wurde.

E_NOTIMPL
Die Methode wird nicht unterstützt.
E_INVALIDARG
Der poemuiobj Parameter, der auf ein ungültiges Kontextobjekt verweist.

Das Schlüsselwort oder das Optionswort des Features wurde nicht erkannt.

Die Klebigkeit des Features (siehe Ersetzen Driver-Supplied Eigenschaftenblattseiten) stimmte nicht mit dem im aktuellen Kontext angegebenen überein.

E_FAIL
Fehler bei der Methode.

Bemerkungen

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 nur während der IPrintOemUI::D ocumentPropertySheets und IPrintOemUI::D evicePropertySheets Funktionen und deren Eigenschaftenblattrückrufroutinen unterstützt. Weitere Informationen finden Sie unter Ersetzen Driver-Supplied Eigenschaftenblattseiten.

Wenn ein Benutzer der OEM-Benutzeroberfläche versucht, ein eingeschränktes Element auszuwählen, kann der Aufrufer diese Methode verwenden, um eine Meldung anzuzeigen, die erklärt, warum das Element eingeschränkt ist. Wenn diese Methode zurückgegeben wird, verweist pmszReasonList auf eine Liste mit einem oder mehreren Feature-/Optionspaaren, die in den aktuellen Treibereinstellungen angezeigt werden, aber mit den ausgewählten Feature-/Optionsstichwörtern in Konflikt stehen. Wenn keine Konflikte aufgetreten sind, sollte die Methode S_OK zurückgeben, pmszReasonList- mit einer leeren ASCII-Zeichenfolge gefüllt werden soll, die nur ein Nullzeichen enthält, und *pcbNeededed sollte auf 1 festgelegt werden.

Um die Notwendigkeit zu verringern, zwei Aufrufe pro Datenzugriff vorzunehmen, übergeben Sie die Methode an einen Ausgabepuffer mit fester Größe (z. B. 1 KB), und überprüfen Sie dann den Funktionsrücklaufwert. Wenn die Methode S_OK zurückgibt, enthält der Puffer bereits die daten von Interesse. Wenn die Methode E_OUTOFMEMORY zurückgibt, ist der Wert in *pcbNeededed die Puffergröße, die für die Daten von Interesse erforderlich ist. Der Aufrufer sollte dann einen Puffer dieser größeren Größe zuweisen und mit einem zweiten Aufruf der Methode fortfahren.

Anforderungen

Anforderung Wert
Zielplattform- Desktop
Header- prcomoem.h (einschließlich Prcomoem.h)

Siehe auch

IPrintCoreUI2-

IPrintCoreUI2::EnumConstrainedOptions

IPrintOemUI::D evicePropertySheets

IPrintOemUI::D ocumentPropertySheets

OEMUIOBJ-