Share via


Méthode IPrintCorePS2 ::GetOptionAttribute (prcomoem.h)

La IPrintCorePS2::GetOptionAttribute méthode récupère la liste d’attributs d’option ou la valeur d’un attribut d’option spécifique.

Syntaxe

HRESULT GetOptionAttribute(
  [in]  PDEVOBJ pdevobj,
  [in]  DWORD   dwFlags,
  [in]  PCSTR   pszFeatureKeyword,
  [in]  PCSTR   pszOptionKeyword,
  [in]  PCSTR   pszAttribute,
  [out] PDWORD  pdwDataType,
  [out] PBYTE   pbData,
  [in]  DWORD   cbSize,
  [out] PDWORD  pcbNeeded
);

Paramètres

[in] pdevobj

Pointeur vers une structure DEVOBJ .

[in] dwFlags

Est réservé et doit être défini sur zéro.

[in] pszFeatureKeyword

Pointeur vers une mémoire tampon fournie par l’appelant contenant une chaîne ASCII spécifiant la fonctionnalité unique mot clé à interroger.

[in] pszOptionKeyword

Pointeur vers une mémoire tampon fournie par l’appelant contenant une chaîne ASCII spécifiant l’option unique mot clé à rechercher. Cette valeur peut être obtenue à partir d’un appel antérieur à IPrintCorePS2 ::EnumOptions.

[in] pszAttribute

Pointeur vers une mémoire tampon fournie par l’appelant contenant une chaîne ASCII spécifiant l’attribut unique demandé. Si ce paramètre a la valeur NULL, l’appelant demande une liste de tous les noms d’attribut pris en charge pour l’option, au lieu de spécifier un nom d’attribut spécifique pour l’option.

[out] pdwDataType

Pointeur vers un emplacement de mémoire qui reçoit une valeur spécifiant le type de données de l’attribut demandé. Cette valeur est un énumérateur de l’énumération EATTRIBUTE_DATATYPE , définie dans printoem.h.

[out] pbData

Pointeur vers une mémoire tampon fournie par l’appelant qui reçoit les données demandées. Pour simplement interroger le nombre d’octets nécessaires pour répondre à une demande, définissez ce paramètre sur NULL.

[in] cbSize

Spécifie la taille, en octets de la mémoire tampon pointée vers pbData.

[out] pcbNeeded

Pointeur vers un emplacement de mémoire qui reçoit la taille réelle, en octets, des données demandées.

Valeur retournée

Cette méthode doit retourner l’une des valeurs suivantes.

Code de retour Description
S_OK
S_OK
E_OUTOFMEMORY
La valeur dans cbSize était inférieure au nombre d’octets à écrire dans la mémoire tampon de sortie (la mémoire tampon pointée par pbData).

La méthode a été appelée avec pbData défini sur NULL.

E_INVALIDARG
La méthode a tenté d’interroger un attribut inexistant.

Le nom mot clé fonctionnalité ou l’option mot clé nom n’ont pas été reconnus.

Le paramètre pdevobj a pointé vers un objet de contexte de pilote non valide.

E_FAIL
La méthode a échoué.

Remarques

Si cette méthode est appelée avec ses paramètres pszAttribute et pbData définis sur NULL, la méthode retourne avec *pcbNeeded défini sur le nombre d’octets nécessaires pour la liste de tous les noms d’attribut pris en charge pour l’option. Si la méthode est appelée une deuxième fois, avec pszAttribute défini sur NULL et pbData pointant vers une mémoire tampon de la taille spécifiée dans *pcbNeededed dans l’appel précédent, la méthode retourne avec *pdwDataType défini sur kADT_ASCII (énumérateur de l’EATTRIBUTE_DATATYPE type énuméré) et pbData pointant vers une liste délimitée par null de tous les noms d’attribut pris en charge pour l’option. Cette liste se termine par deux caractères null.

Pour réduire la nécessité d’effectuer deux appels par accès aux données, transmettez à la méthode une mémoire tampon de sortie d’une taille fixe (1 Ko, par exemple), puis case activée la valeur de retour de la fonction. Si la méthode retourne S_OK, la mémoire tampon contient déjà les données intéressantes. Si la méthode retourne E_OUTOFMEMORY, la valeur dans *pcbNeeded est la taille de mémoire tampon nécessaire pour contenir les données intéressantes. L’appelant doit ensuite allouer une mémoire tampon de cette plus grande taille et procéder à un deuxième appel à la méthode.

Cette méthode est prise en charge pour tout plug-in de rendu Pscript5.

Pour plus d’informations, consultez Utilisation de GetOptionAttribute.

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête prcomoem.h (inclure Prcomoem.h)

Voir aussi

DEVOBJ

IPrintCorePS2

IPrintCorePS2 ::EnumOptions

IPrintCorePS2 ::GetFeatureAttribute

IPrintCorePS2 ::GetGlobalAttribute