AddPrinterConnection2, fonction

Ajoute une connexion à l’imprimante spécifiée pour l’utilisateur actuel et spécifie les détails de connexion.

Syntaxe

BOOL AddPrinterConnection2(
  _In_ HWND    hWnd,
  _In_ LPCTSTR pszName,
       DWORD   dwLevel,
  _In_ PVOID   pConnectionInfo
);

Paramètres

hWnd [in]

Handle de la fenêtre parente dans laquelle la boîte de dialogue s’affiche si le système d’impression doit télécharger un pilote d’imprimante à partir du serveur d’impression pour cette connexion.

pszName [in]

Pointeur vers une chaîne constante terminée par un caractère Null spécifiant le nom de l’imprimante à laquelle l’utilisateur actuel souhaite se connecter.

dwLevel

Version de la structure pointée vers pConnectionInfo. Actuellement, seul le niveau 1 étant défini, la valeur de dwLevel doit être 1.

pConnectionInfo [in]

Pointeur vers une structure PRINTER_CONNECTION_INFO_1 . Pour plus d’informations sur ce paramètre, consultez la section Remarques.

Valeur retournée

Si la fonction réussit, la valeur de retour est une valeur différente de zéro.

Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations d’erreur étendues, appelez GetLastError.

Notes

Notes

Il s’agit d’une fonction bloquante ou synchrone qui peut ne pas être retournée immédiatement. La rapidité avec laquelle cette fonction retourne dépend de facteurs d’exécution tels que l’status réseau, la configuration du serveur d’impression et les facteurs d’implémentation du pilote d’imprimante qui sont difficiles à prédire lors de l’écriture d’une application. L’appel de cette fonction à partir d’un thread qui gère l’interaction avec l’interface utilisateur peut donner l’impression que l’application ne répond pas.

Lorsque Windows Vista établit une connexion à une imprimante, il peut être nécessaire de copier les fichiers du pilote d’imprimante à partir du serveur auquel l’imprimante est attachée. Si l’utilisateur n’est pas autorisé à copier des fichiers à l’emplacement approprié, la fonction AddPrinterConnection2 échoue et GetLastError retourne ERROR_ACCESS_DENIED.

Si les fichiers du pilote d’imprimante doivent être copiés à partir du serveur d’impression, mais ne peuvent pas être copiés en mode silencieux en raison des stratégies de groupe qui sont en vigueur et PRINTER_CONNECTION_NO_UI est défini dans pConnectionInfo-dwFlags>, aucune boîte de dialogue ne s’affiche et l’appel échoue.

Si le pilote d’imprimante local peut être utilisé pour afficher les travaux d’impression de cette imprimante et que la version du pilote local ne doit pas correspondre à la version du pilote d’imprimante sur le serveur, définissez PRINTER_CONNECTION_MISMATCH dans pConnectionInfo-dwFlags> et affectez le pointeur à une variable de chaîne qui contient le chemin d’accès du pilote d’imprimante local à pConnectionInfo-pszDriverName>.

Une connexion d’imprimante établie en appelant AddPrinterConnection2 est énumérée lorsque EnumPrinters est appelé avec dwType défini sur PRINTER_ENUM_CONNECTION.

La version ANSI de cette fonction, AddPrinterConnection2A, n’est pas prise en charge et retourne ERROR_NOT_SUPPORTED.

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge
Windows Server 2008 [applications de bureau uniquement]
En-tête
Winspool.h (inclure Windows.h)
Bibliothèque
Winspool.lib
DLL
Winspool.drv
Noms Unicode et ANSI
AddPrinterConnection2W (Unicode)

Voir aussi

Impression

Fonctions API du spouleur d’impression

ConnectToPrinterDlg

EnumPrinters

DeletePrinterConnection