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;