Metode IPrintCorePS2::GetFeatureAttribute (prcomoem.h)

Metode ini IPrintCorePS2::GetFeatureAttribute mengambil daftar atribut fitur atau nilai atribut fitur tertentu.

Sintaks

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

Penunjuk ke struktur DEVOBJ .

[in] dwFlags

Dicadangkan dan harus diatur ke nol.

[in] pszFeatureKeyword

Penunjuk ke buffer yang disediakan penelepon yang berisi string ASCII yang menentukan kata kunci fitur tunggal yang akan dikueri. Nilai ini dapat diperoleh dari panggilan sebelumnya ke IPrintCorePS2::EnumFeatures.

[in] pszAttribute

Penunjuk ke buffer yang disediakan penelepon yang berisi string ASCII yang menentukan atribut tunggal yang diminta. Jika parameter ini NULL, pemanggil meminta daftar semua nama atribut fitur yang didukung, dibandingkan dengan menentukan nama atribut fitur tertentu.

[out] pdwDataType

Penunjuk ke lokasi memori yang menerima nilai yang menentukan jenis data atribut yang diminta. Nilai ini adalah enumerator enumerasi EATTRIBUTE_DATATYPE , yang didefinisikan dalam printoem.h.

[out] pbData

Penunjuk ke buffer yang disediakan penelepon yang menerima data yang diminta. Untuk hanya mengkueri jumlah byte yang diperlukan untuk memenuhi permintaan, atur parameter ini ke NULL.

[in] cbSize

Menentukan ukuran, dalam byte buffer yang diacu oleh pbData.

[out] pcbNeeded

Penunjuk ke lokasi memori yang menerima ukuran aktual, dalam byte, dari data yang diminta.

Nilai kembali

Metode ini harus mengembalikan salah satu nilai berikut.

Menampilkan kode Deskripsi
S_OK
Metode berhasil.
E_OUTOFMEMORY
Nilai dalam cbSize lebih kecil dari jumlah byte yang akan ditulis ke buffer output (buffer yang diacu oleh pbData).

Metode ini dipanggil dengan pbData diatur ke NULL.

E_INVALIDARG
Metode ini mencoba mengkueri atribut yang tidak ada.

Kata kunci fitur tidak dikenali.

Parameter pdevobj menunjuk ke objek konteks driver yang tidak valid.

E_FAIL
Metode gagal.

Keterangan

Jika metode ini dipanggil dengan parameter pszAttribute dan pbData yang diatur ke NULL, metode mengembalikan dengan *pcbNeeded diatur ke jumlah byte yang diperlukan untuk daftar semua nama atribut yang didukung untuk fitur tersebut. Jika metode dipanggil untuk kedua kalinya, dengan pszAttribute diatur ke NULL dan pbData yang menunjuk ke buffer ukuran yang ditentukan dalam *pcbNeeded pada panggilan sebelumnya, metode kembali dengan *pdwDataType diatur ke kADT_ASCII (enumerator dari jenis enumerasi EATTRIBUTE_DATATYPE ) dan pbData menunjuk ke daftar null-dibatasi dari semua nama atribut yang didukung untuk fitur tersebut. Daftar ini dihentikan dengan dua karakter null.

Untuk mengurangi kebutuhan untuk melakukan dua panggilan per akses data, berikan metode buffer output dengan ukuran tetap (1 KB, misalnya), lalu periksa nilai pengembalian fungsi. Jika metode mengembalikan S_OK, buffer sudah berisi data yang diminati. Jika metode mengembalikan E_OUTOFMEMORY, nilai dalam *pcbNeeded adalah ukuran buffer yang diperlukan untuk menyimpan data yang diminati. Penelepon kemudian harus mengalokasikan buffer dengan ukuran yang lebih besar dan melanjutkan panggilan kedua ke metode .

Metode ini didukung untuk plug-in render Pscript5 apa pun.

Untuk informasi selengkapnya, lihat Menggunakan GetFeatureAttribute.

Persyaratan

Persyaratan Nilai
Target Platform Desktop
Header prcomoem.h (termasuk Prcomoem.h)

Lihat juga

DEVOBJ

IPrintCorePS2

IPrintCorePS2::EnumFeatures

IPrintCorePS2::GetGlobalAttribute

IPrintCorePS2::GetOptionAttribute