Método IPrintCoreUI2::GetFeatureAttribute (prcomoem.h)

El IPrintCoreUI2::GetFeatureAttribute método recupera la lista de atributos de característica o el valor de un atributo de característica específico.

Sintaxis

HRESULT GetFeatureAttribute(
  [in]  POEMUIOBJ poemuiobj,
  [in]  DWORD     dwFlags,
  [in]  PCSTR     pszFeatureKeyword,
  [in]  PCSTR     pszAttribute,
  [out] PDWORD    pdwDataType,
  [out] PBYTE     pbData,
  [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 una cadena ASCII que especifica la palabra clave de característica única para la que se va a consultar. Este valor se puede obtener de una llamada anterior a IPrintCoreUI2::EnumFeatures.

[in] pszAttribute

Puntero a un búfer proporcionado por el autor de la llamada que contiene una cadena ASCII que especifica el único atributo solicitado. Si este parámetro es NULL, el autor de la llamada solicita una lista de todos los nombres de atributo de característica admitidos, en lugar de especificar un nombre de atributo de característica específico.

[out] pdwDataType

Puntero a una ubicación de memoria que recibe un valor que especifica el tipo de datos del atributo solicitado. Este valor es un enumerador de la enumeración EATTRIBUTE_DATATYPE , que se define en printoem.h.

[out] pbData

Puntero a un búfer proporcionado por el autor de la llamada que recibe los datos solicitados. Para consultar simplemente el número de bytes necesarios para cumplir una solicitud, establezca este parámetro en NULL.

[in] cbSize

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

[out] pcbNeeded

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

Valor devuelto

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

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

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

E_INVALIDARG
El método intentó consultar un atributo inexistente.

No se reconoció la palabra clave feature.

El parámetro poemuiobj apuntaba a un objeto de contexto no válido.

E_FAIL
Error en el método

Comentarios

Este método solo se admite para complementos Pscript5 de Windows XP, no para complementos Unidrv.

Si se llama a este método con sus parámetros pszAttribute y pbData establecidos en NULL, el método devuelve con *pcbNeeded establecido en el número de bytes necesarios para la lista de todos los nombres de atributo admitidos para la característica. Si se llama al método una segunda vez, con pszAttribute establecido en NULL y pbData que apunta a un búfer del tamaño especificado en *pcbNeeded en la llamada anterior, el método devuelve con *pdwDataType establecido en kADT_ASCII (un enumerador del tipo enumerado EATTRIBUTE_DATATYPE ) y pbData que apunta a una lista delimitada por null de todos los nombres de atributo admitidos para la característica. Esta lista finaliza con dos caracteres NULL.

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 .

Para obtener más información, consulte Uso de GetFeatureAttribute.

Requisitos

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

Consulte también

IPrintCoreUI2

IPrintCoreUI2::EnumFeatures

IPrintCoreUI2::GetGlobalAttribute

IPrintCoreUI2::GetOptionAttribute

OEMUIOBJ