【列印技術01】獲取及設定系統預設印表機
阿新 • • 發佈:2019-01-25
1 /* 2 * 函式功能 : 獲取系統中所有的印表機名稱 3 * 備 注 : 4 * 作 者 : 5 */ 6 CString CPrintDemoDlg::GetAllPrinterName() 7 { 8 DWORD dwSize; 9 DWORD dwPrinters; 10 CString strPrintersName = _T(""); 11 12 //第一次呼叫得到結構體的大小 13 ::EnumPrinters(PRINTER_ENUM_CONNECTIONS | PRINTER_ENUM_LOCAL,14 NULL, 5, NULL, 0, &dwSize, &dwPrinters); 15 16 //第二次呼叫得到印表機列表 17 BYTE *pBuffer = new BYTE[dwSize]; 18 ::EnumPrinters(PRINTER_ENUM_CONNECTIONS | PRINTER_ENUM_LOCAL, 19 NULL, 5, pBuffer, dwSize, &dwSize, &dwPrinters); 20 21 //得到所有的印表機名稱 22 if(dwPrinters != 0) 23 { 24 PRINTER_INFO_5 *pPrinterInfo = (PRINTER_INFO_5 *)pBuffer; 25 for(int i=0; i<dwPrinters; i++) 26 { 27 strPrintersName += pPrinterInfo->pPrinterName; //得到印表機名稱 28 strPrintersName += _T("\r\n"); 29 pPrinterInfo++; 30 }31 } 32 delete []pBuffer; 33 34 return strPrintersName; 35 }