Compartir a través de


Método IPrintCorePS2::GetOptions (prcomoem.h)

El método IPrintCorePS2::GetOptions recupera la configuración de características actual del controlador en el formato de una lista de pares de palabras clave de característica o opción.

Sintaxis

HRESULT GetOptions(
  [in]  PDEVOBJ pdevobj,
  [in]  DWORD   dwFlags,
  [in]  PCZZSTR pmszFeaturesRequested,
  [in]  DWORD   cbIn,
  [out] PZZSTR  pmszFeatureOptionBuf,
  [in]  DWORD   cbSize,
  [out] PDWORD  pcbNeeded
);

Parámetros

[in] pdevobj

Puntero a una estructura DEVOBJ de.

[in] dwFlags

Está reservado y debe establecerse en cero.

[in] pmszFeaturesRequested

Puntero al búfer proporcionado por el autor de la llamada que contiene una lista de palabras clave de características (en formato MULTI_SZ) cuya configuración se solicita. Establezca este parámetro en NULL para obtener la configuración de todas las características.

[in] cbIn

Especifica el tamaño, en bytes, del búfer al que apunta pmszFeaturesRequested. El tamaño incluye el último carácter MULTI_SZ null.

[out] pmszFeatureOptionBuf

Puntero a un búfer proporcionado por el autor de la llamada que recibe una lista de pares de palabras clave feature/option (en formato MULTI_SZ) obtenidos de la configuración del controlador. Cada par de palabras clave feature/option contiene el nombre de palabra clave de característica, un carácter NULL, el nombre de palabra clave de opción y otro carácter NULL. La lista finaliza con dos caracteres NULL.

[in] cbSize

Especifica el tamaño, en bytes, del búfer al que apunta pmszFeatureOptionBuf.

[out] pcbNeeded

Puntero a una ubicación de memoria que recibe el tamaño real, en bytes, de los datos solicitados.

Valor devuelto

El método debe devolver uno de los valores siguientes.

Código devuelto Descripción
S_OK
El método se realizó correctamente.
E_OUTOFMEMORY
El valor de cbSize era menor que el número de bytes que se van a escribir en el búfer de salida (el búfer al que apunta pmszFeatureOptionBuf).

Se llamó al método con pmszFeatureOptionBuf establecido en NULL.

E_INVALIDARG
Se proporcionó el búfer de entrada (el búfer al que apunta pmszFeaturesRequested), pero su contenido no estaba en formato MULTI_SZ.

El parámetro pdevobj apunta a un objeto de contexto de controlador no válido.

E_NOTIMPL
No se admite el método .
E_FAIL
Error en el método.

Observaciones

Este método admite tanto pegajoso de documento como características pegajosas de impresora. Solo se admite después de que el controlador principal finalice su drvEnablePDEV procesamiento, que configura todas las opciones. Una llamada a IPrintCorePS2::GetOptions cuando no se admite debe hacer que devuelva E_NOTIMPL. Por ejemplo, cuando el controlador principal llama al método IPrintOemPS::EnablePDEV de un complemento de representación, El controlador todavía está ocupado con su procesamiento de DrvEnablePDEV, por lo que si el complemento llama IPrintCorePS2::GetOptions dentro del método IPrintOemPS::D evMode, el complemento recibe el valor devuelto E_NOTIMPL. Sin embargo, dado que se llama al método IPrintOemPS::EnablePDEV del complemento después de que el controlador principal finalice su procesamiento de DrvEnablePDEV, el complemento puede llamar a IPrintCorePS2::GetOptions correctamente dentro de su IPrintOemPS::EnablePDEV método.

Si no se reconoce una palabra clave de característica solicitada o la característica se reconoce, pero actualmente no hay ninguna selección de opciones para ella, la característica se omite y el par de palabras clave feature/option no se coloca en el búfer de salida.

Para reducir la necesidad de realizar dos llamadas por acceso a datos, pase el método un búfer de salida de un tamaño fijo (por ejemplo, 1 KB) y, a continuación, compruebe el valor devuelto de la función. Si el método devuelve S_OK, el búfer ya contiene los datos de interés. Si el método devuelve E_OUTOFMEMORY, el valor de *pcbNeededed es el tamaño del búfer necesario para contener los datos de interés. A continuación, el autor de la llamada debe asignar un búfer de ese tamaño mayor y continuar con una segunda llamada al método .

Este método es compatible con cualquier complemento de representación de Pscript5.

Para obtener más información, vea Using GetOptions and SetOptions.

Requisitos

Requisito Valor
de la plataforma de destino de Escritorio
encabezado de prcomoem.h (include Prcomoem.h)

Consulte también

DEVOBJ

DrvEnablePDEV

IPrintCorePS2

IPrintOemPS::D evMode

IPrintOemPS::EnablePDEV