Méthode IPrint::P rint (docobj.h)
Imprime un objet sur l’imprimante spécifiée, en utilisant les exigences de travail spécifiées.
Syntaxe
HRESULT Print(
[in] DWORD grfFlags,
[in, out] DVTARGETDEVICE **pptd,
[in, out] PAGESET **ppPageSet,
[in, out] STGMEDIUM *pstgmOptions,
[in] IContinueCallback *pcallback,
[in] LONG nFirstPage,
[out] LONG *pcPagesPrinted,
[out] LONG *pnLastPage
);
Paramètres
[in] grfFlags
Champ de bits spécifiant les options d’impression de l’énumération PRINTFLAG .
PRINTFLAG_MAYBOTHERUSER (1)
PRINTFLAG_PROMPTUSER (2)
PRINTFLAG_USERMAYCHANGEPRINTER (4)
PRINTFLAG_RECOMPOSETODEVICE (8)
PRINTFLAG_DONTACTUALLYPRINT (16)
PRINTFLAG_FORCEPROPERTIES (32)
PRINTFLAG_PRINTTOFILE (64)
[in, out] pptd
Pointeur vers une structure DVTARGETDEVICE qui décrit l’appareil d’impression cible.
[in, out] ppPageSet
Pointeur vers une variable de pointeur PAGESET qui reçoit un pointeur vers la structure qui indique les pages à imprimer.
[in, out] pstgmOptions
Pointeur vers les options d’impression spécifiques à un objet dans un jeu de propriétés OLE sérialisée. Ce paramètre peut être NULL en entrée ou en retour.
[in] pcallback
Pointeur vers l’interface IContinueCallback sur le site d’affichage, qui doit être interrogé régulièrement à des vitesses de réponse humaine pour déterminer si l’impression doit être abandonnée. Ce paramètre peut être NULL.
[in] nFirstPage
Numéro de page de la première page à imprimer. Cette valeur remplace toute valeur précédemment passée à IPrint::SetInitialPageNum.
[out] pcPagesPrinted
Pointeur vers une variable qui reçoit le nombre réel de pages qui ont été imprimées avec succès.
[out] pnLastPage
Pointeur vers une variable qui reçoit le numéro de page de la dernière page imprimée.
Valeur retournée
Cette méthode peut retourner la valeur de retour standard E_UNEXPECTED, ainsi que les valeurs suivantes.
Code de retour | Description |
---|---|
|
La commande s'est correctement terminée. |
|
Le processus d’impression a été annulé avant l’achèvement. *pcPagesPrinted indique le nombre de pages qui ont été imprimées avec succès avant que cette erreur ne se produise. |
|
Une page spécifiée dans **ppPageSet ou nFirstPage n’existe pas. |
Notes
L’imprimante sur laquelle l’objet doit être imprimé est indiquée par la structure DVTARGETDEVICE pointée vers pptd. La structure DEVMODE dans l’appareil cible indique des options spécifiques à l’imprimante entière, telles que le nombre de copies, le format du papier et la qualité d’impression. La structure DEVMODE peut également contenir des informations d’orientation dans le membre dmOrientation (cela est indiqué dans le membre dmFields ). S’il est présent, cette orientation papier doit être utilisée; en cas d’absence, l’orientation naturelle déterminée par le contenu de l’objet doit être utilisée.
En raison de la possibilité d’une entrée utilisateur, les paramètres pptd et ppPageSet sont tous deux des structures [in,out]. En l’absence d’interaction utilisateur (autrement dit, si l’indicateur PRINTFLAG_PROMPTUSER n’est pas défini), l’appareil cible et le jeu de pages seront nécessairement les mêmes pour l’entrée et la sortie. Toutefois, si l’utilisateur est invité à entrer des options d’impression, l’objet retourne l’appareil cible et les informations de jeu de pages appropriées à ce que l’utilisateur a réellement choisi.
Le paramètre pstgmOptions est également [in,out]. À la sortie, l’objet doit écrire dans *pstgmOptions toutes les informations spécifiques à l’objet dont il aurait besoin pour reproduire cette tâche d’impression exacte. Par exemple, l’utilisateur a sélectionné « feuille, notes ou les deux » dans une application de feuille de calcul. Les données transmises sont au format d’un jeu de propriétés sérialisées. Les données sont normalement utiles uniquement lorsqu’elles sont transmises dans un appel suivant au même objet. Étant donné qu’un appel suivant peut spécifier différents indicateurs d’interaction utilisateur, l’appareil cible ou d’autres paramètres, l’appelant peut provoquer l’impression du document plusieurs fois de la même façon dans des contextes d’impression légèrement différents.
Spécifications
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | docobj.h |