Gestion des imprimantes
L’API Shell fournit des fonctions que vous pouvez utiliser pour gérer les imprimantes réseau. Si le verbe d’impression est associé à un fichier, vous pouvez utiliser la commande ShellExecuteEx pour l’imprimer.
Vous pouvez gérer les imprimantes sur un système avec la fonction SHInvokePrinterCommand . Cette fonction vous permet de :
- Installez des imprimantes.
- Ouvrez les imprimantes.
- Obtenir les propriétés de l’imprimante.
- Créer des liens d’imprimante.
- Imprimez une page de test.
Si une commande print est associée à un type de fichier, vous pouvez imprimer le fichier en appelant ShellExecuteEx avec print comme verbe. Cette commande est souvent la même que celle utilisée pour le verbe ouvert , avec l’ajout d’un indicateur pour indiquer à l’application d’imprimer le fichier. Par instance, .txt fichiers peuvent être imprimés par Microsoft WordPad. Le verbe ouvert d’un fichier .txt correspondrait donc à quelque chose comme la commande suivante :
"C:\Program Files\Windows NT\Accessories\Wordpad.exe" /p "%1"
Lorsque vous utilisez ShellExecuteEx pour imprimer un fichier .txt, WordPad ouvre le fichier, l’imprime, puis se ferme, ce qui renvoie le contrôle à l’application. L’exemple de fonction suivant prend un chemin complet et utilise ShellExecuteEx pour l’imprimer à l’aide de la commande print associée à son extension de nom de fichier.
#include <shlobj.h>
HINSTANCE PrintFile(LPCTSTR pszFileName)
{
SHELLEXECUTEINFO ShExecInfo;
HINSTANCE hInst;
// Fill the SHELLEXECUTEINFO array.
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = NULL;
ShExecInfo.hwnd = NULL;
ShExecInfo.lpVerb = "print";
ShExecInfo.lpFile = pszFileName; // a fully qualified path
ShExecInfo.lpParameters = NULL;
ShExecInfo.lpDirectory = NULL;
ShExecInfo.nShow = SW_MAXIMIZE;
ShExecInfo.hInstApp = NULL;
hInst = ShellExecuteEx(&ShExecInfo);
return hInst;
}