Share via


Méthode IPrintCoreUI2 ::GetOptions (prcomoem.h)

La IPrintCoreUI2::GetOptions méthode récupère les paramètres de fonctionnalité actuels du pilote au format d’une liste de paires fonctionnalité/option mot clé.

Syntaxe

HRESULT GetOptions(
  [in]  POEMUIOBJ poemuiobj,
  [in]  DWORD     dwFlags,
  [in]  PCZZSTR   pmszFeaturesRequested,
  [in]  DWORD     cbIn,
  [out] PZZSTR    pmszFeatureOptionBuf,
  [in]  DWORD     cbSize,
  [out] PDWORD    pcbNeeded
);

Paramètres

[in] poemuiobj

Pointeur vers le contexte actuel, une structure OEMUIOBJ .

[in] dwFlags

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

[in] pmszFeaturesRequested

Pointeur vers la mémoire tampon fournie par l’appelant contenant une liste de mots clés de fonctionnalité (au format MULTI_SZ) dont les paramètres sont demandés. Définissez ce paramètre sur NULL pour obtenir les paramètres de toutes les fonctionnalités.

[in] cbIn

Spécifie la taille, en octets, de la mémoire tampon pointée vers pmszFeaturesRequested. La taille inclut le dernier caractère null MULTI_SZ.

[out] pmszFeatureOptionBuf

Pointeur vers une mémoire tampon fournie par l’appelant qui reçoit une liste de paires fonctionnalité/option mot clé (au format MULTI_SZ) obtenues à partir des paramètres du pilote. Chaque paire fonctionnalité/option mot clé contient le nom de la fonctionnalité mot clé, un caractère null, l’option mot clé nom et un autre caractère Null. La liste se termine par deux caractères Null.

[in] cbSize

Spécifie la taille, en octets, de la mémoire tampon pointée par pmszFeatureOptionBuf.

[out] pcbNeeded

Pointeur vers un emplacement de mémoire qui reçoit la taille réelle, en octets, de la fonctionnalité/option mot clé paires.

Valeur retournée

La 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 pmszFeatureOptionBuf).

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

E_INVALIDARG
La mémoire tampon d’entrée (la mémoire tampon pointée par pmszFeaturesRequested) a été fournie, mais son contenu n’était pas au format MULTI_SZ.

Le paramètre poemuiobj pointe vers un objet de contexte non valide.

E_NOTIMPL
La méthode n'est pas prise en charge.
E_FAIL
Échec de la méthode

Remarques

Cette méthode est prise en charge uniquement pour les plug-ins d’interface utilisateur Windows XP Pscript5 qui remplacent entièrement les pages d’interface utilisateur standard du pilote principal, et elle est prise en charge uniquement pendant les fonctions IPrintOemUI ::D ocumentPropertySheets et IPrintOemUI ::D evicePropertySheets du plug-in d’interface utilisateur, ainsi que leurs routines de rappel de feuille de propriétés. Pour plus d’informations, consultez Remplacement Driver-Supplied pages de feuille de propriétés.

Si une fonctionnalité demandée mot clé n’est pas reconnue, ou si elle n’est pas reconnue, mais qu’elle n’est pas prise en charge dans le mode sticky actuel (document-sticky ou printer-sticky - voir Remplacement de Driver-Supplied pages de feuille de propriétés), ou si la fonctionnalité mot clé est reconnue, mais qu’il n’y a actuellement aucune sélection d’option, la fonctionnalité est simplement ignorée et la paire fonctionnalité/option mot clé n’est pas placée dans la mémoire tampon de sortie.

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 .

Pour plus d’informations, consultez Utilisation de GetOptions et SetOptions.

Configuration requise

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

Voir aussi

IPrintCoreUI2

IPrintCoreUI2 ::SetOptions

IPrintOemUI ::D evicePropertySheets

IPrintOemUI ::D ocumentPropertySheets

OEMUIOBJ