Partager via


Utilisation de GetOptionAttribute

Important

La plateforme d’impression moderne est le moyen privilégié de Windows pour communiquer avec les imprimantes. Nous vous recommandons d’utiliser le pilote de classe IPP en boîte de Microsoft, ainsi que les applications de support d’impression (PSA), pour personnaliser l’expérience d’impression dans Windows 10 et 11 pour le développement de périphériques d’impression.

Pour plus d’informations, veuillez consulter la section Plateforme d’impression moderne et le Guide de conception des applications de support d’impression.

Cette fonction est uniquement prise en charge pour les fonctionnalités PPD (PostScript Printer Driver). Si aucun attribut n’est disponible, GetOptionAttribute retourne E_INVALIDARG.

Paramètres de sortie pour les attributs d’option générale

Dans le tableau suivant, le paramètre pdwDataType prend des valeurs du type énuméré EATTRIBUTE_DATATYPE .

Attribut d’option générale Paramètres de sortie
DisplayName pdwDataType: kADT_UNICODE

pbData : chaîne Unicode terminée par null de la chaîne de traduction du nom du mot-clé de l’option

pcbNeeded: nombre d’octets de la chaîne Unicode pointée par pbData (y compris le terminateur null)

Cet attribut d’option est disponible pour toute option que EnumOptions peut retourner sur une fonctionnalité PPD.
Invocation pdwDataType : kADT_BINARY

pbData : tableau d’octets pour l’InvocationValue de l’option

pbData : nombre d’octets des données binaires pointées par pbData

Cet attribut d’option est disponible pour toute option que EnumOptions peut retourner sur une fonctionnalité PPD. Si l’InvocationValue de l’option est vide, la fonction définit pdwDataType comme ci-dessus, définit pcbNeeded = 0, puis retourne S_OK.
OrderDependencyValue pdwDataType : kADT_LONG

pbData : l’ordre relatif spécifié par le mot-clé OrderDependency ou NonUIOrderDependency du PPD pour cette option. Notez que le premier paramètre de ces mots-clés est un nombre réel qui est converti en LONG et retourné.

ccpNeeded : sizeof(LONG)

Cet attribut d’option est disponible uniquement pour une option ayant une entrée OrderDependency ou NonUIOrderDependency dans le PPD, et l’entrée n’omet pas optionKeyword.
OrderDependencySection pdwDataType : kADT_ASCII

pbData : chaîne ASCII terminée par null contenant l’un des noms de section suivants : « ExitServer » « Prolog » « DocumentSetup » « PageSetup » « JCLSetup » « AnySetup »

pcbNeeded: nombre d’octets de la chaîne ASCII pointée par pbData (y compris le terminateur null)

Cet attribut d’option est disponible uniquement pour une option ayant une entrée OrderDependency ou NonUIOrderDependency dans le PPD, et l’entrée n’omet pas optionKeyword.

Paramètres de sortie pour les attributs d’option spécifiques

En plus des attributs d’option générale décrits précédemment, les attributs d’option listés dans les tableaux suivants peuvent avoir des limitations sur leur disponibilité. Certains attributs sont disponibles pour toutes les options d’une fonctionnalité PPD spécifique, tandis que d’autres ne sont disponibles que pour des options spécifiques de leur fonctionnalité PPD. Toutes limitations sont listées pour chaque attribut d’option.

Mot clé Attribut d’option Paramètres de sortie
InputSlot
RequiresPageRegion pdwDataType : kADT_BOOL

pbData : TRUE si le code d’invocation PageRegion doit être envoyé avec le code d’invocation InputSlot, et FALSE dans le cas contraire. Ceci est basé sur le mot-clé RequiresPageRegion du PPD. Si le mot-clé est omis pour cette option de slot d’entrée, TRUE est retourné pour cet attribut.

ccpNeeded : sizeof(BOOL)

Cet attribut d’option est disponible pour toute option de la fonctionnalité « InputSlot » du PPD, à l’exception de l’option générée par le pilote « *UseFormTrayTable ».
OutputBin
OutputOrderReversed pdwDataType : kADT_BOOL

pbData : TRUE si l’ordre de sortie de l’option bin est « Reverse », et FALSE si l’ordre de sortie est « Normal ». Ceci est basé sur les mots-clés DefaultOutputOrder et OutputOrder du PPD.

ccpNeeded : sizeof(BOOL)

Cet attribut d’option est disponible pour toute option de la fonctionnalité « OutputBin » du PPD.
PageSize
ImageableArea pdwDataType : kADT_RECT

pbData : un cadre englobant de la zone imprimable de l’option PageSize, telle que spécifiée par le mot-clé ImageableArea du PPD, est retournée dans une structure RECT, dont les membres left et bottom contiennent les valeurs llx et lly, et dont les membres right et top contiennent les valeurs urx et ury. Toutes les valeurs sont en microns. Les valeurs llx et lly du PPD sont arrondies à l’entier supérieur avant d’être converties en microns. Les valeurs urx et ury du PPD sont arrondies à l’entier inférieur avant d’être converties en microns.

ccpNeeded : sizeof(RECT)

Cet attribut d’option est disponible pour toute option de la fonctionnalité « PageSize » du PPD, à l’exception de l’option « CustomPageSize ».
PaperDimension pdwDataType : kADT_SIZE

pbData : la dimension physique de l’option PageSize, telle que spécifiée par le mot-clé PaperDimension du PPD, est retournée dans une structure SIZE, dont le membre cx contient la valeur de la largeur et dont le membre cy contient la valeur de la hauteur. Toutes les valeurs sont en microns.

ccpNeeded : sizeof(SIZE)

Cet attribut d’option est disponible pour toute option de la fonctionnalité « PageSize » du PPD, à l’exception de l’option « CustomPageSize ».
PageSize : CustomPageSize
HWMargins pdwDataType : kADT_RECT

pbData : les quatre valeurs spécifiées par le mot-clé HWMargins du PPD sont retournées dans une structure RECT. Toutes les valeurs sont en microns.

ccpNeeded : sizeof(RECT)

Cet attribut d’option est uniquement disponible pour l’option « CustomPageSize » de la fonctionnalité « PageSize » du PPD.
MaxMediaHeight pdwDataType : kADT_DWORD

pbData : la valeur spécifiée par le mot clé *MaxMediaHeight du PPD, en microns.

pcbNeeded : sizeof(DWORD)

Cet attribut d’option est uniquement disponible pour l’option « CustomPageSize » de la fonctionnalité « PageSize » du PPD.
MaxMediaWidth pdwDataType : kADT_DWORD

pbData : la valeur spécifiée par le mot-clé MaxMediaWidth du PPD, en microns.

pcbNeeded : sizeof(DWORD)

Cet attribut d’option est uniquement disponible pour l’option « CustomPageSize » de la fonctionnalité « PageSize » du PPD.
ParamCustomPageSize pdwDataType : kADT_CUSTOMSIZEPARAMS

pbData : un tableau de CUSTOMPARAM_MAX éléments, où chaque élément est une structure CUSTOMSIZEPARAM . Chaque élément de ce tableau stocke les valeurs spécifiées dans l’entrée paramOption du mot-clé ParamCustomPageSize du PPD. Pour paramOption autre que « Orientation », les valeurs lMinVal et lMaxVal sont en microns. Pour « Orientation », les valeurs lMinVal et lMaxVal se trouvent dans l’intervalle [0, 3].

ccpNeeded : sizeof(CUSTOMSIZEPARAM) * CUSTOMPARAM_MAX

Cet attribut d’option est uniquement disponible pour l’option « CustomPageSize » de la fonctionnalité « PageSize » du PPD.

Pour plus d’informations, veuillez consulter la note suivante sur ParamCustomPageSize.
InstalledMemory
VMOption pdwDataType : kADT_DWORD

pbData : la valeur spécifiée par le mot-clé VMOption du PPD, ou 0 si le PPD ne spécifie pas le mot-clé VMOption pour cette option.

pcbNeeded : sizeof(DWORD)

Cet attribut d’option est disponible pour toute option de la fonctionnalité « InstalledMemory » du PPD.
FCacheSize pdwDataType : kADT_DWORD

pbData : la valeur spécifiée par le mot-clé FCacheSize du PPD, ou 0 si le PPD ne spécifie pas le mot-clé FCacheSize pour cette option.

pcbNeeded : sizeof(DWORD)

Cet attribut d’option est disponible pour toute option de la fonctionnalité « InstalledMemory » du PPD.

Remarque concernant ParamCustomPageSize

Voici un exemple de code qui montre comment obtenir les valeurs d’ordre, min et max originales du fichier PPD pour l’entrée « ParamCustomPageSize Width ». La constante CUSTOMPARAM_WIDTH, définie dans printoem.h, indique le décalage de la structure CUSTOMSIZEPARAM qui contient les informations relatives à l’entrée Width. Cette structure est l’une des structures CUSTOMSIZEPARAM CUSTOMPARAM_MAX qui forment un tableau de ces structures. L’en-tête printoem.h définit un ensemble de constantes nommées CUSTOMPARAM_XXX répertorier les décalages des structures de ce tableau (Width, Height, WidthOffset, HeightOffset et Orientation).

PCUSTOMSIZEPARAM  pCSParam;

pCSParam = (PCUSTOMSIZEPARAM)pbData + CUSTOMPARAM_WIDTH;

order = pCSParam->dwOrder;
// Convert lMinVal and lMaxVal from microns to points.
//   To convert microns to inches, divide by 25400.
//   To convert inches to points, multiply by 72.
min = pCSParam->lMinVal / 25400.0 * 72.0;
max = pCSParam->lMaxVal / 25400.0 * 72.0;