Gestione delle stampanti
L'API Shell fornisce funzioni che è possibile usare per gestire le stampanti di rete. Se un file ha il verbo di stampa associato a esso, è possibile usare il comando ShellExecuteEx per stamparlo.
È possibile gestire le stampanti in un sistema con la funzione SHInvokePrinterCommand . Questa funzione consente di:
- Installare le stampanti.
- Aprire le stampanti.
- Ottenere le proprietà della stampante.
- Creare collegamenti alla stampante.
- Stampare una pagina di prova.
Se un tipo di file ha un comando di stampa associato a esso, è possibile stampare il file chiamando ShellExecuteEx con stampa come verbo. Questo comando è spesso uguale a quello usato per il verbo aperto , con l'aggiunta di un flag per indicare all'applicazione di stampare il file. Ad esempio, i file .txt possono essere stampati da Microsoft WordPad. Il verbo aperto per un file .txt corrisponde quindi a un comando simile al seguente:
"C:\Program Files\Windows NT\Accessories\Wordpad.exe" /p "%1"
Quando si usa ShellExecuteEx per stampare un file .txt, WordPad apre il file, lo stampa e quindi chiude, restituisce il controllo all'applicazione. La funzione di esempio seguente accetta un percorso completo e usa ShellExecuteEx per stamparla usando il comando di stampa associato all'estensione del nome file.
#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;
}