Método IPrintCoreUI2::WhyConstrained (prcomoem.h)
El IPrintCoreUI2::WhyConstrained
método determina por qué la selección de características o opciones especificada está restringida.
Sintaxis
HRESULT WhyConstrained(
[in] POEMUIOBJ poemuiobj,
[in] DWORD dwFlags,
[in] PCSTR pszFeatureKeyword,
[in] PCSTR pszOptionKeyword,
[out] PZZSTR pmszReasonList,
[in] DWORD cbSize,
[out] PDWORD pcbNeeded
);
Parámetros
[in] poemuiobj
Puntero al contexto actual, una estructura OEMUIOBJ .
[in] dwFlags
Está reservado y debe establecerse en cero.
[in] pszFeatureKeyword
Puntero a un búfer proporcionado por el autor de la llamada que contiene la palabra clave de característica única de interés para el autor de la llamada.
[in] pszOptionKeyword
Puntero a un búfer proporcionado por el autor de la llamada que contiene la palabra clave option.
[out] pmszReasonList
Puntero a un búfer proporcionado por el autor de la llamada que recibe una lista de los pares de palabras clave feature/option que colocan restricciones en la característica o opción especificadas. Esta lista está en formato MULTI_SZ con cada elemento de la lista separados del siguiente por un carácter NULL. La lista finaliza con dos caracteres NULL.
Establezca este parámetro en NULL para simplemente consultar el tamaño (*pcbNeeded) de la lista de motivos sin tener la lista rellenada.
[in] cbSize
Especifica el tamaño, en bytes, del búfer al que apunta pmszReasonList.
[out] pcbNeeded
Puntero a una ubicación de memoria que recibe el tamaño real, en bytes, de la lista de motivos.
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 pmszReasonList).
Se llamó al método con pmszReasonList establecido en NULL. |
|
El método no se admite. |
|
El parámetro poemuiobj apuntaba a un objeto de contexto no válido.
La palabra clave de característica o la palabra clave option no se reconoció. La permanencia de la característica (vea Reemplazar Driver-Supplied páginas de hoja de propiedades) no coincide con la especificada en el contexto actual. |
|
Error en el método |
Comentarios
Este método solo se admite para los complementos de interfaz de usuario Pscript5 de Windows XP que reemplazan por completo las páginas de interfaz de usuario estándar del controlador principal y solo se admiten durante las rutinas de devolución de llamada de IPrintOemUI::D ocumentPropertySheets e IPrintOemUI::D evicePropertySheets y sus rutinas de devolución de llamada de hoja de propiedades. Consulte Reemplazar páginas de hoja de propiedades de Driver-Supplied para obtener más información.
Cuando un usuario de la interfaz de usuario de OEM intenta seleccionar un elemento restringido, el autor de la llamada puede usar este método para mostrar un mensaje que explique por qué el elemento está restringido. Cuando este método devuelve, pmszReasonList apunta a una lista de uno o varios pares de características o opciones que aparecen en la configuración del controlador actual, pero entran en conflicto con las palabras clave de característica o opción seleccionadas. Si no hubiera ningún conflicto, el método debe devolver S_OK, pmszReasonList debe rellenarse con una cadena ASCII vacía que contenga solo un carácter null y *pcbNeeded debe establecerse en 1.
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 .
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Escritorio |
Encabezado | prcomoem.h (include Prcomoem.h) |
Consulte también
IPrintCoreUI2::EnumConstrainedOptions
IPrintOemUI::D evicePropertySheets