1. 程式人生 > >【列印技術01】獲取及設定系統預設印表機

【列印技術01】獲取及設定系統預設印表機

複製程式碼
 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 }
複製程式碼