Compartir a través de


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
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 pmszReasonList).

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

E_NOTIMPL
El método no se admite.
E_INVALIDARG
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.

E_FAIL
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

IPrintCoreUI2::EnumConstrainedOptions

IPrintOemUI::D evicePropertySheets

IPrintOemUI::D ocumentPropertySheets

OEMUIOBJ