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 |
---|---|
|
El método se ha llevado a cabo de forma correcta. |
|
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. |
|
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. |
|
El método no se admite. |
|
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) |