#include <WinSpool.h> #pragma comment(lib, "Winspool.lib") #include <shellapi.h> #pragma comment(lib, "shell32.lib") BOOL OpenDefaultPrinter() { BOOL bRet = FALSE; DWORD dwSize = 0; if(!GetDefaultPrinter(NULL, &dwSize) && GetLastError()==ERROR_INSUFFICIENT_BUFFER) { TCHAR *szPrinter = new TCHAR[dwSize+1]; if(GetDefaultPrinter(szPrinter, &dwSize)) { if(SHInvokePrinterCommand( NULL, //GetSafeHwnd(), PRINTACTION_OPEN, szPrinter, NULL, FALSE)) { bRet = TRUE; } } delete []szPrinter; } return bRet; }