Share via


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

La IPrintCorePS2::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]  PDEVOBJ pdevobj,
  [in]  DWORD   dwFlags,
  [in]  PCZZSTR pmszFeaturesRequested,
  [in]  DWORD   cbIn,
  [out] PZZSTR  pmszFeatureOptionBuf,
  [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] 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 est terminée par deux caractères NULL.

[in] cbSize

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

[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

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 pdevobj a pointé vers un objet de contexte de pilote non valide.

E_NOTIMPL
La méthode n'est pas prise en charge.
E_FAIL
La méthode a échoué.

Remarques

Cette méthode prend en charge à la fois les fonctionnalités de collage de document et d’impression . Il n’est pris en charge qu’une fois que le pilote principal a terminé son traitement DrvEnablePDEV , ce qui configure tous les paramètres d’option. Un appel à IPrintCorePS2::GetOptions lorsqu’il n’est pas pris en charge doit l’amener à retourner E_NOTIMPL. Par exemple, lorsque le pilote principal appelle la méthode IPrintOemPS ::EnablePDEV d’un plug-in de rendu, le pilote est toujours occupé par son traitement DrvEnablePDEV . Par conséquent, si le plug-in appelle IPrintCorePS2::GetOptions la méthode IPrintOemPS ::D evMode du plug-in, le plug-in reçoit la valeur de retour E_NOTIMPL. Toutefois, étant donné que la méthode IPrintOemPS ::EnablePDEV du plug-in est appelée une fois que le pilote principal a terminé son traitement DrvEnablePDEV , le plug-in est en mesure d’appeler IPrintCorePS2::GetOptions correctement au sein de sa méthode IPrintOemPS ::EnablePDEV .

Si une fonctionnalité demandée mot clé n’est pas reconnue, ou si la fonctionnalité est reconnue, mais qu’il n’y a actuellement aucune sélection d’option pour elle, la fonctionnalité est 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.

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

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 (inclure Prcomoem.h)

Voir aussi

DEVOBJ

DrvEnablePDEV

IPrintCorePS2

IPrintOemPS ::D evMode

IPrintOemPS ::EnablePDEV