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

El IPrintCorePS2::GetOptions método recupera la configuración de características actual del controlador con el formato de una lista de pares de palabras clave feature/option.

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 .

[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 option 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 ha llevado a cabo de forma correcta.
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 apuntaba a un objeto de contexto de controlador no válido.

E_NOTIMPL
El método no se admite.
E_FAIL
Error en el método.

Comentarios

Este método admite tanto características pegajosas de documento como de impresora . Solo se admite después de que el controlador principal finalice su procesamiento DrvEnablePDEV , 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 sigue ocupado con su procesamiento DrvEnablePDEV , por lo que si el complemento llama IPrintCorePS2::GetOptions a dentro del método IPrintOemPS::D evMode del complemento, 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 DrvEnablePDEV , el complemento puede llamar IPrintCorePS2::GetOptions correctamente dentro de su método IPrintOemPS::EnablePDEV .

Si no se reconoce una palabra clave de característica solicitada o se reconoce la característica, pero actualmente no hay ninguna selección de opción 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 (1 KB, por ejemplo) 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 *pcbNeeded 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, consulte Uso de GetOptions y SetOptions.

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado prcomoem.h (include Prcomoem.h)

Consulte también

DEVOBJ

DrvEnablePDEV

IPrintCorePS2

IPrintOemPS::D evMode

IPrintOemPS::EnablePDEV