Freigeben über


IPrintCorePS2::GetFeatureAttribute-Methode (prcomoem.h)

Die IPrintCorePS2::GetFeatureAttribute -Methode ruft die Featureattributeliste oder den Wert eines bestimmten Featureattributes ab.

Syntax

HRESULT GetFeatureAttribute(
  [in]  PDEVOBJ pdevobj,
  [in]  DWORD   dwFlags,
  [in]  PCSTR   pszFeatureKeyword,
  [in]  PCSTR   pszAttribute,
  [out] PDWORD  pdwDataType,
  [out] PBYTE   pbData,
  [in]  DWORD   cbSize,
  [out] PDWORD  pcbNeeded
);

Parameter

[in] pdevobj

Zeiger auf eine DEVOBJ-Struktur .

[in] dwFlags

Ist reserviert und muss auf null festgelegt werden.

[in] pszFeatureKeyword

Zeiger auf einen vom Aufrufer bereitgestellten Puffer, der eine ASCII-Zeichenfolge enthält, die das einzelne Feature angibt, für das Schlüsselwort (keyword) Abfrage ausgeführt werden soll. Dieser Wert kann aus einem vorherigen Aufruf von IPrintCorePS2::EnumFeatures abgerufen werden.

[in] pszAttribute

Zeiger auf einen vom Aufrufer bereitgestellten Puffer, der eine ASCII-Zeichenfolge enthält, die das angeforderte einzelne Attribut angibt. Wenn dieser Parameter NULL ist, fordert der Aufrufer eine Liste aller unterstützten Featureattributnamen an, anstatt einen bestimmten Featureattributnamen anzugeben.

[out] pdwDataType

Zeiger auf einen Speicherspeicherort, der einen Wert empfängt, der den Datentyp des angeforderten Attributs angibt. Dieser Wert ist ein Enumerator der EATTRIBUTE_DATATYPE-Enumeration , die in printoem.h definiert ist.

[out] pbData

Zeiger auf einen vom Aufrufer bereitgestellten Puffer, der die angeforderten Daten empfängt. Um einfach die Anzahl von Bytes abzufragen, die zum Erfüllen einer Anforderung erforderlich sind, legen Sie diesen Parameter auf NULL fest.

[in] cbSize

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

[out] pcbNeeded

Zeiger auf einen Speicherspeicherort, der die tatsächliche Größe der angeforderten Daten in Bytes empfängt.

Rückgabewert

Diese 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 pbData verweist).

Die -Methode wurde aufgerufen, wobei pbData auf NULL festgelegt ist.

E_INVALIDARG
Die Methode hat versucht, ein nicht vorhandenes Attribut abzufragen.

Das Feature Schlüsselwort (keyword) wurde nicht erkannt.

Der pdevobj-Parameter weist auf ein ungültiges Treiberkontextobjekt hin.

E_FAIL
Fehler bei der Methode.

Hinweise

Wenn diese Methode aufgerufen wird und die Parameter pszAttribute und pbData auf NULL festgelegt sind, gibt die Methode mit *pcbNeeded auf die Anzahl der Bytes zurück, die für die Liste aller unterstützten Attributnamen für das Feature erforderlich sind. Wenn die -Methode ein zweites Mal aufgerufen wird, wobei pszAttribute auf NULL und pbData auf einen Puffer der größe verweist, die im vorherigen Aufruf in *pcbNeed angegeben wurde, gibt die Methode mit *pdwDataType zurück, der auf kADT_ASCII (ein Enumerator des aufgezählten EATTRIBUTE_DATATYPE-Typs ) festgelegt ist, und pbData , der auf eine durch NULL getrennte Liste aller unterstützten Attributnamen für das Feature verweist. Diese Liste wird mit zwei NULL-Zeichen beendet.

Um die Notwendigkeit von zwei Aufrufen pro Datenzugriff zu verringern, ü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.

Diese Methode wird für jedes Pscript5-Render-Plug-In unterstützt.

Weitere Informationen finden Sie unter Verwenden von GetFeatureAttribute.

Anforderungen

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

Weitere Informationen

DEVOBJ

IPrintCorePS2

IPrintCorePS2::EnumFeatures

IPrintCorePS2::GetGlobalAttribute

IPrintCorePS2::GetOptionAttribute