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 |
|
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. |
|
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. |
|
La méthode n'est pas prise en charge. |
|
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) |