Win32 APIÀÇ ³î¶ó¿î ±â´É ÁßÀÇ Çϳª´Â ÀåÄ¡¿¡ µ¶¸³ÀûÀ̶ó´Â °ÍÀε¥ ÀμâÇÒ ¶§µµ ¸¶Âù°¡Áö·Î ÇÁ¸°ÅÍ°¡ ¹Ù²ï´Ù°í Çؼ Ãâ·Â Äڵ尡 ¹Ù²ð ÇÊ¿ä´Â ¾ø´Ù. ±×·¡¼ Á÷Á¢ ÇÁ¸°Å͸¦ Á¦¾îÇÏ´Â °Íº¸´Ù ÈξÀ ´õ ÀÛÀº ÄÚµå·Î º¹ÀâÇÑ Ãâ·ÂÀ» ÇØ ³¾ ¼ö°¡ ÀÖ´Â °ÍÀÌ´Ù. ±×·¯³ª ÀåÄ¡ µ¶¸³ÀûÀ̶ó´Â °ÍÀº ±²ÀåÈ÷ ¸ÚÁø °³³äÀÌÁö¸¸ ½ÇÁ¦·Î´Â Áø½ÇÀÌ ¾Æ´Ò ¼öµµ ÀÖ´Ù. Èæ¹é ÇÁ¸°ÅÍ¿¡ Ä÷¯¸¦ Ãâ·ÂÇÒ ¼ö ¾ø°í Ç÷ÎÅÍ¿¡ ºñÆ®¸ÊÀ» Ãâ·ÂÇÒ ¼ö ¾ø´Â °Íó·³ ÇÁ¸°ÅÍÀÇ Æ¯¼º¿¡ µû¶ó Äڵ尡 ´Þ¶óÁ®¾ß ÇÏ´Â ¾î¿ ¼ö ¾ø´Â °æ¿ì°¡ Á¸ÀçÇÑ´Ù.
ÇÁ¸°ÅÍ´Â ±²ÀåÈ÷ º¹ÀâÇÑ ¹°°ÇÀÌ°í ±×·¯´Ù º¸´Ï ¼±ÅÃÇÒ ¼ö ÀÖ´Â ¿É¼ÇÀ̳ª ¼³Á¤ »óÅ°¡ ´Ù¾çÇÏ´Ù. ÇÁ·Î±×·¥ÀÌ ÇÁ¸°ÅÍ¿¡ µ¶¸³ÀûÀ¸·Î Àμ⹰À» Âï¾î ³»°í ¶Ç ÇÁ¸°ÅÍÀÇ Æ¯¼ºÀ» ÃæºÐÈ÷ È°¿ëÇϴ ȣȯ¼ºÀ» È®º¸Çϱâ À§Çؼ´Â ÇÁ¸°ÅÍÀÇ ¿©·¯ °¡Áö ¼³Á¤ Á¤º¸¸¦ ¾Ë¾Æ ³»°í ÀÛ¾÷¿¡ ¸Â°Ô ¿É¼ÇÀ» °Á¦·Î º¯°æÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ¿©±â¼´Â ÇÁ¸°ÅͷκÎÅÍ Á¤º¸¸¦ ±¸ÇÏ´Â ¹æ¹ý°ú º¯°æÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¾Ë¾Æ º¼ ¿¹Á¤ÀÌµÇ ÇÁ¸°ÅÍ Á¤º¸¿¡ °ü·ÃµÈ API µéÀº ¿î¿µÃ¼Á¦ ¹öÀü¿¡ µû¶ó »óÀÌÇÑ °æ¿ì°¡ ¸¹°í Ç÷¡±×ÀÇ Á¾·ùµµ ¸¹¾Æ º»¹®¿¡¼´Â ²À ÇÊ¿äÇÑ ºÎºÐ¸¸ º¸À̵µ·Ï ÇÑ´Ù. ¸ðµç ¿É¼Ç°ú Ç÷¡±×¸¦ ´Ù ¼³¸íÇÏÀÚ¸é ¿ÀÈ÷·Á ÇÙ½ÉÀÌ µÇ´Â ³»¿ëÀÌ °¡·ÁÁö°Ô µÇ¹Ç·Î ³ª¸ÓÁö »ý·«µÈ ºÎºÐÀº Ç×»ó ·¹ÆÛ·±½º¸¦ ÂüÁ¶Çϱ⠹ٶõ´Ù.
¸ÕÀú ½Ã½ºÅÛ¿¡ ¾î¶² Á¾·ùÀÇ ÇÁ¸°ÅÍ°¡ ¼³Ä¡µÇ¾î ÀÖ´ÂÁö¸¦ Á¶»çÇØ º¸µµ·Ï ÇÏÀÚ. À©µµ¿ìÁî´Â ÇѲ¨¹ø¿¡ ¿©·¯ ´ëÀÇ ÇÁ¸°Å͸¦ ¼³Ä¡ÇÒ ¼ö ÀÖÀ¸¸ç Àμ⸦ Çϱâ Àü¿¡ »ç¿ëÀÚ°¡ Ãâ·ÂÇÒ ÇÁ¸°Å͸¦ ¼±ÅÃÇÒ ¼ö ÀÖµµ·Ï ÇØ ÁØ´Ù. ±×·¡¼ Àμ⸦ ÇÏ´Â ÇÁ·Î±×·¥Àº ½Ã½ºÅÛ¿¡ ¼³Ä¡µÈ ÇÁ¸°ÅÍÀÇ ¸ñ·ÏÀ» ±¸ÇÒ ¼ö ÀÖ¾î¾ß Çϴµ¥ ´ÙÀ½ ÇÔ¼ö´Â ½Ã½ºÅÛ¿¡ ¼³Ä¡µÈ ÇÁ¸°ÅÍ¿Í ÇÁ¸°ÅÍ ¼¹ö, µµ¸ÞÀÎ µîÀÇ ¸ñ·ÏÀ» Á¶»çÇØ ÁØ´Ù.
BOOL EnumPrinters(DWORD Flags, LPTSTR Name, DWORD Level, LPBYTE pPrinterEnum, DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
Áö±Ý±îÁö EnumFonts, EnumWindows µîÀÇ ¿©·¯ °¡Áö ¿°Å ÇÔ¼öµéÀ» »ç¿ëÇØ ¿Ô´Âµ¥ ÀÌ ÇÔ¼ö´Â ´Ù¸¥ ¿°Å ÇÔ¼öµé°ú´Â ´Þ¸® Äݹé ÇÔ¼ö¸¦ »ç¿ëÇÏÁö ¾Ê°í ¹è¿¿¡ ¸ðµç Á¤º¸¸¦ Çѹø¿¡ ¸®ÅÏÇØ ÁØ´Ù. ±×·¡¼ »ç¿ëÇÏ´Â ¹æ¹ýÀÌ Á¶±Ý ƯÀÌÇÏ´Ù. ÀÌ ÇÔ¼öÀÇ Àμö´Â µÎ °³ÀÇ ±×·ìÀ¸·Î ³ª´ ¼ö Àִµ¥ ¾ÕÂÊ ¼¼ Àμö´Â Á¶»çÇÒ Á¤º¸ÀÇ Á¾·ù¸¦ ÁöÁ¤ÇÏ°í µÚÂÊ ³× °³ÀÇ Àμö´Â Á¶»çµÈ °á°ú¸¦ µ¹·Á ¹Þ±â À§ÇÑ ¹öÆÛ¸¦ Á¦°øÇÑ´Ù. ù¹ø° Àμö Flags´Â Á¶»çÇÒ ¿ÀºêÁ§Æ®ÀÇ Á¾·ù¸¦ ÁöÁ¤Çϸç ÀÌ Àμö¿¡ µû¶ó Name, Level Àμö¿¡ ÁöÁ¤ÇÒ ¼ö ÀÖ´Â °ªµéÀÌ ´Þ¶óÁø´Ù. Flags Àμö¿¡´Â ´ÙÀ½ Ç÷¹±×µéÀÇ Á¶ÇÕÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.
Ç÷¹±× |
¼³¸í |
PRINTER_ENUM_LOCAL |
·ÎÄà ÇÁ¸°ÅÍÀÇ À̸§À» Á¶»çÇÑ´Ù. ´Ü 95´Â ³×Æ®¿÷ ÇÁ¸°Å͵µ ·ÎÄðú µ¿ÀÏÇÏ°Ô Ãë±ÞÇϹǷΠ°°ÀÌ Á¶»çµÈ´Ù. |
PRINTER_ENUM_NAME |
NameÀÌ ÁöÁ¤ÇÏ´Â ÇÁ¸°Å͸¦ ¿°ÅÇϴµ¥ ¼¹ö, µµ¸ÞÀÎ, Àμâ ÇÁ·Î¹ÙÀÌ´õ µîÀ» ¿°ÅÇÒ ¼ö ÀÖ´Ù. NameÀÌ NULLÀ̸é Àμâ ÇÁ·Î¹ÙÀÌ´õ°¡ Á¶»çµÈ´Ù. |
PRINTER_ENUM_SHARED |
°øÀ¯µÈ ÇÁ¸°Å͸¸ Á¶»çµÈ´Ù. ÀÌ ¿É¼ÇÀº ´Üµ¶À¸·Î »ç¿ëµÉ ¼ö ¾øÀ¸¸ç ´Ù¸¥ Ç÷¡±×¿Í °°ÀÌ »ç¿ëÇÑ´Ù. |
PRINTER_ENUM_DEFAULT |
95 : ±âº» ÇÁ¸°Å͸¦ Á¶»çÇÑ´Ù. NT¿¡¼´Â ÀÌ Ç÷¡±×¸¦ »ç¿ëÇÒ ¼ö ¾ø´Ù. |
PRINTER_ENUM_CONNECTIONS |
NT : ÀÌÀü¿¡ ¿¬°áÇÑ ÀûÀÌ ÀÖ´Â ÇÁ¸°ÅÍÀÇ ¸ñ·ÏÀ» Á¶»çÇÑ´Ù. |
PRINTER_ENUM_NETWORK |
NT : °°Àº µµ¸ÞÀο¡ ¼ÓÇÑ ÇÁ¸°ÅÍÀÇ ¸ñ·ÏÀ» ±¸ÇÑ´Ù. LevelÀº ¹Ýµå½Ã 1À̾î¾ß ÇÑ´Ù. |
PRINTER_ENUM_REMOTE |
NT : °°Àº µµ¸ÞÀο¡ ¼ÓÇÑ ³×Æ®¿÷ ÇÁ¸°ÅÍ¿Í ¼¹öÀÇ ¸ñ·ÏÀ» ±¸ÇÑ´Ù. LevelÀº ¹Ýµå½Ã 1À̾î¾ß ÇÑ´Ù. |
NameÀμö´Â Flags¿Í Level¿¡ µû¶ó »ç¿ëÇÒ ¼ö Àִ°¡ ¾ø´Â°¡°¡ °áÁ¤µÇ´Âµ¥ Á¶»ç ´ë»ó¿¡ ´ëÇÑ Ãß°¡ Á¤º¸¶ó°í »ý°¢ÇÏ¸é µÈ´Ù. ¿¹¸¦ µé¾î ƯÁ¤ µµ¸ÞÀγ»ÀÇ ÇÁ¸°ÅÍ ¸ñ·ÏÀ» Á¶»çÇÑ´Ù¸é Name¿¡ µµ¸ÞÀθíÀ» Àü´ÞÇÑ´Ù. LevelÀº Á¶»çÇÒ Á¤º¸ÀÇ ·¹º§À» ÁöÁ¤Çϴµ¥ ÀÌ °ª¿¡ µû¶ó Á¶»çµÇ´Â Á¤º¸ÀÇ »ó¼¼ÇÔÀÌ ´Þ¶óÁö¸ç ¿ä±¸µÇ´Â ¹öÆÛµµ ´Þ¶óÁø´Ù. 95/98¿¡¼´Â 1,2,5Áß ÇϳªÀÇ °ªÀ» ÁöÁ¤ÇØ ÁÙ ¼ö ÀÖ°í NT¿¡¼´Â 4¸¦ Ãß°¡·Î ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.
³× ¹ø° ÀÌÈÄÀÇ Àμö´Â Á¶»çÇÑ Á¤º¸¸¦ ¸®ÅϹޱâ À§ÇÑ ¹öÆÛÀÌ´Ù. ³×¹ø° Àμö pPrinterEnum¿¡ ¿°ÅµÈ Á¤º¸µéÀÌ º¹»çµÇ´Âµ¥ ÇѲ¨¹ø¿¡ ¿©·¯ ¿ÀºêÁ§Æ®ÀÇ Á¤º¸°¡ ¸®ÅϵǹǷΠÀÌ Àμö´Â ¹è¿ÇüÀ̾î¾ß ÇÑ´Ù. LevelÀμö¿¡ µû¶ó ÀÌ ¹è¿Àº PRINTER_INFO_*ÇüÀÌ µÈ´Ù. ¿©±â¼ *´Â Level°ú µ¿ÀÏÇÑ Á¤¼ö°ªÀε¥ ¿¹¸¦ µé¾î LevelÀÌ 2¶ó¸é ÀÌ ¹è¿Àº PRINTER_INFO_2 ±¸Á¶Ã¼ ¹è¿À̾î¾ß ÇÑ´Ù.
ÀÌ ¹è¿Àº ¹Ýµå½Ã Á¶»çµÈ ¸ðµç Á¤º¸¸¦ ´Ù ´ãÀ» ¼ö ÀÖÀ»¸¸Å ÃæºÐÇÑ Å©±â¸¦ °¡Á®¾ß ÇÑ´Ù. cbBuf´Â ÀÌ ¹è¿ÀÇ Å©±â¸¦ ÁöÁ¤Çϴµ¥ ¸¸¾à Å©±â°¡ ÃæºÐÇÏÁö ¾ÊÀ» °æ¿ì ÀÌ ÇÔ¼ö´Â Á¤º¸¸¦ Á¶»çÇÏ´Â ´ë½Å pcbNeeded¿¡ ÇÊ¿äÇÑ ¹öÆÛÀÇ Å©±â¸¦ ¸®ÅÏÇØ ÁØ´Ù. ±×·¡¼ º¸Åë óÀ½ È£ÃâÇÒ ¶§´Â cbBuf¿¡ 0À» Àü´ÞÇÏ¿© °íÀÇ·Î ¿¡·¯¸¦ À¯¹ß½ÃÅ°¸ç À̶§ ¸®ÅϵǴ pcbNeeded·Î ÇÊ¿äÇÑ ¸Þ¸ð¸® ¾çÀ» ¾Ë¾Æ³½´Ù. ¸¶Áö¸· Àμö pcReturned´Â ¸®ÅÏµÈ ±¸Á¶Ã¼ ¹è¿ÀÇ ¹è¿ Å©±â¸¦ ¸®ÅÏÇØ Áִµ¥ ÀÌ °ªÀº °ð Á¶»çµÈ ¿ÀºêÁ§Æ®ÀÇ °³¼ö°¡ µÈ´Ù.
´ÙÀ½ ¿¹Á¦´Â ÀÌ ÇÔ¼ö·Î Á¶»çÇÒ ¼ö ÀÖ´Â ¿©·¯ °¡Áö Àμ⠿ÀºêÁ§Æ®ÀÇ ¸ñ·ÏÀ» Á¶»çÇÏ¿© ¿°ÅÇÑ °ÍÀÌ´Ù.
void EnumPrintObject()
{
PRINTER_INFO_1 *pi1;
PRINTER_INFO_2 *pi2;
PRINTER_INFO_4 *pi4;
DWORD cbNeed, cbReturn;
UINT i;
HDC hdc;
int y=1;
char Mes[256];
hdc=GetDC(hWndMain);
// ·ÎÄà ÇÁ¸°ÅÍ ¿°Å - ·¹Áö½ºÆ®¸®¿¡¼ ¾òÀ½
lstrcpy(Mes,"·ÎÄà ÇÁ¸°ÅÍ ¿°Å - ·¹Áö½ºÆ®¸®");
TextOut(hdc,10,y++*20,Mes,lstrlen(Mes));
EnumPrinters(PRINTER_ENUM_LOCAL, NULL, 4, NULL, 0, &cbNeed, &cbReturn);
pi4=(PRINTER_INFO_4 *)malloc(cbNeed);
EnumPrinters(PRINTER_ENUM_LOCAL, NULL, 4, (PBYTE)pi4, cbNeed, &cbNeed, &cbReturn);
for (i=0;i<cbReturn;i++) {
wsprintf(Mes,"ÇÁ¸°ÅÍ À̸§: %s, Á¾·ù:%s ", pi4[i].pPrinterName, pi4[i].Attributes==PRINTER_ATTRIBUTE_LOCAL ? "·ÎÄÃ":"³×Æ®¿÷");
TextOut(hdc,10,y++*20,Mes,lstrlen(Mes));
}
free(pi4);y++;
// ·ÎÄà ÇÁ¸°ÅÍ ¿°Å - ½ÇÁ¦ ÇÁ¸°ÅÍ¿¡¼ ±¸ÇÔ
lstrcpy(Mes,"·ÎÄà ÇÁ¸°ÅÍ ¿°Å - ½ÇÁ¦ ÇÁ¸°ÅÍ¿¡¼ ±¸ÇÔ");
TextOut(hdc,10,y++*20,Mes,lstrlen(Mes));
EnumPrinters(PRINTER_ENUM_LOCAL, NULL, 2, NULL, 0, &cbNeed, &cbReturn);
pi2=(PRINTER_INFO_2 *)malloc(cbNeed);
EnumPrinters(PRINTER_ENUM_LOCAL, NULL, 2, (PBYTE)pi2, cbNeed, &cbNeed, &cbReturn);
for (i=0;i<cbReturn;i++) {
wsprintf(Mes,"ÇÁ¸°ÅÍ À̸§: %s, Æ÷Æ®:%s, ¿ëÁö:%d ", pi2[i].pPrinterName, pi2[i].pPortName, pi2[i].pDevMode->dmPaperSize);
TextOut(hdc,10,y++*20,Mes,lstrlen(Mes));
}
free(pi2);y++;
// Àμâ ÇÁ·Î¹ÙÀÌ´õ ¿°Å
lstrcpy(Mes,"Àμâ ÇÁ·Î¹ÙÀÌ´õ ¿°Å");
TextOut(hdc,10,y++*20,Mes,lstrlen(Mes));
EnumPrinters(PRINTER_ENUM_NAME, NULL, 1, NULL, 0, &cbNeed, &cbReturn);
pi1=(PRINTER_INFO_1 *)malloc(cbNeed);
EnumPrinters(PRINTER_ENUM_NAME, NULL, 1, (PBYTE)pi1, cbNeed, &cbNeed, &cbReturn);
for (i=0;i<cbReturn;i++) {
wsprintf(Mes,"Àμâ ÇÁ·Î¹ÙÀÌ´õ: %s, ¼³¸í:%s ", pi1[i].pName, pi1[i].pComment);
TextOut(hdc,10,y++*20,Mes,lstrlen(Mes));
}
free(pi1);y++;
// µµ¸ÞÀγ»ÀÇ ÇÁ¸°ÅÍ ¿°Å
lstrcpy(Mes,"µµ¸ÞÀγ»ÀÇ ÇÁ¸°ÅÍ ¿°Å");
TextOut(hdc,10,y++*20,Mes,lstrlen(Mes));
EnumPrinters(PRINTER_ENUM_REMOTE, NULL, 1, NULL, 0, &cbNeed, &cbReturn);
pi1=(PRINTER_INFO_1 *)malloc(cbNeed);
EnumPrinters(PRINTER_ENUM_REMOTE, NULL, 1, (PBYTE)pi1, cbNeed, &cbNeed, &cbReturn);
for (i=0;i<cbReturn;i++) {
wsprintf(Mes,"ÇÁ¸°ÅÍ À̸§: %s ", pi1[i].pName);
TextOut(hdc,10,y++*20,Mes,lstrlen(Mes));
}
free(pi1);y++;
ReleaseDC(hWndMain,hdc);
}
LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
switch(iMessage) {
case WM_LBUTTONDOWN:
EnumPrintObject();
return 0;
case WM_PAINT:
hdc=BeginPaint(hWnd, &ps);
EndPaint(hWnd, &ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}
·ÎÄà ÇÁ¸°Å͸¦ ¿°ÅÇÏ´Â ·çƾ¸¸ º¸µµ·Ï ÇÏÀÚ. EnumPrinters ÇÔ¼ö¸¦ µÎ¹ø È£ÃâÇϴµ¥ FlagsÀμö¿¡ ENUM_PRINTER_LOCAL Ç÷¡±×¸¦ ÁÖ¾ú°í ÀÌ °æ¿ì Name Àμö´Â ÇÊ¿äÄ¡ ¾ÊÀ¸¸ç Á¶»çµÇ´Â Á¤º¸ÀÇ ·¹º§Àº 4¹øÀ¸·Î ÁöÁ¤ÇÏ¿´´Ù. À̶§ pPrinterEnum¿¡ NULL, cbBuf¿¡ 0À» Àü´ÞÇÏ¿© ¹öÆÛ¸¦ Á¦°øÇÏÁö ¾Ê¾Ò´Âµ¥ ÀÌ·¸°Ô µÇ¸é EnumPrinters ÇÔ¼ö´Â ÇÊ¿äÇÑ ¹öÆÛ¾çÀ» cbNeed¿¡ ¸®ÅÏÇØ ÁØ´Ù. ¸®ÅÏµÈ Å©±â¸¸Å ¸Þ¸ð¸®¸¦ ÇÒ´çÇÏ°í ´Ù½Ã EnumPrinters ÇÔ¼ö¸¦ È£ÃâÇÏ¿© ·ÎÄà ÇÁ¸°ÅÍÀÇ ¸ñ·ÏÀ» Á¶»çÇÏ¿´´Ù.
¹öÆÛ Å©±â¸¦ 0À¸·Î Àü´ÞÇÔÀ¸·Î½á °íÀÇ·Î ¿¡·¯¸¦ À¯¹ß½ÃÄÑ ÇÊ¿äÇÑ ¹öÆÛ Å©±â¸¦ ¾Ë¾Æ³½ ÈÄ Á¶»çµÈ Å©±â¸¸Å ¸Þ¸ð¸®¸¦ ÇÒ´çÇÑ´Ù. ¹°·Ð À̶§ ÇÊ¿äÇÑ Ä³½ºÆÃÀº ÇØ ÁÖ¾î¾ß Çϸç ÇÒ´çµÈ ¹öÆÛ¸¦ ´Ù½Ã Àü´ÞÇÔÀ¸·Î½á ¿øÇÏ´Â Á¤º¸¸¦ ȹµæÇÏ¿´´Ù. ÀÌ·± ½ÄÀ¸·Î »ç¿ë ¸Þ¸ð¸®°¡ °¡º¯ÀûÀÎ ÇÔ¼öµéÀº µÎ ¹ø È£ÃâÇÏ´Â °ÍÀÌ Á¤ÇüȵǾî Àִµ¥ ¾ÕÀ¸·Î ÀÌ·± ÇÔ¼öµéÀ» ¸î°³ ´õ º¸°Ô µÉ °ÍÀÌ¸ç º¸¾È °ü·Ã ÇÔ¼öµéµµ ÀÌ·± À¯ÇüÀÌ ¸¹À¸¹Ç·Î µ¿ÀÛ ¿ø¸®¿Í »ç¿ë ¹æ¹ýÀ» Àß ÀÍÇô µÎµµ·Ï ÇÏÀÚ.
³ª¸ÓÁö ¿°Å ·çƾµµ Flags¿Í Level¸¸ ´Þ¶óÁú »Ó °ÅÀÇ µ¿ÀÏÇÏ´Ù. ½ÇÇà °á°ú´Â ½Ã½ºÅÛ¿¡ ¼³Ä¡µÈ ÇÁ¸°ÅÍ ¸ñ·Ï¿¡ µû¶ó ´Þ¶óÁö´Âµ¥ ÇÊÀÚÀÇ ÄÄÇ»ÅÍ¿¡¼´Â ´ÙÀ½°ú °°ÀÌ Ãâ·ÂµÇ¾ú´Ù. ³×Æ®¿÷¿¡ ¹°·Á Àֱ⠶§¹®¿¡ ¼³Ä¡µÈ ÇÁ¸°ÅÍ°¡ ¸¹´Ù.
Á¶»çµÈ Á¤º¸´Â for ·çÇÁ¸¦ µ¹¸ç cbReturn, Áï Á¶»çµÈ ¿ÀºêÁ§Æ® °³¼ö¸¸Å Ãâ·ÂµÇ´Âµ¥ À̶§ Á¶»çµÈ Á¤º¸ÀÇ ¾î¶² ¸â¹ö¸¦ ÂüÁ¶ÇÒ ¼ö Àִ°¡´Â LevelÀμö¿¡ µû¶ó ´Þ¶óÁø´Ù. ¾ó¸¶³ª Á¤º¸¸¦ »ó¼¼ÇÏ°Ô Á¶»çÇÒ °ÍÀΰ¡¿¡ µû¶ó ¸®ÅϵǴ ±¸Á¶Ã¼°¡ ´Þ¶óÁö¸ç µû¶ó¼ Á¤º¸ÀÇ ¾çµµ ´Þ¶óÁö´Âµ¥ ÀÌ·¸°Ô ·¹º§À» ÁöÁ¤ÇÒ ¼ö ÀÖµµ·Ï ÇØ ³õÀº ÀÌÀ¯´Â ÇÊ¿ä¿¡ µû¶ó ¿øÇÏ´Â Á¤º¸¸¸À» Á¶»çÇÒ ¼ö ÀÖµµ·Ï Çϱâ À§ÇؼÀÌ´Ù.
ÇÁ¸°ÅÍ À̸§¸¸ ¾Ë¸é µÇ´Âµ¥ ±»ÀÌ ÇÁ¸°ÅÍ ¼³Á¤À̳ª º¸¾È ¼Ó¼º, ÇöÀç »óÅ¿¡ ´ëÇÑ Á¤º¸±îÁö °°ÀÌ Á¶»çÇÒ ÇÊ¿ä´Â ¾ø±â ¶§¹®ÀÌ´Ù. ¶ÇÇÑ ¾î¶² Á¤º¸´Â ½ÇÁ¦·Î ³×Æ®¿÷¿¡ Á¢¼ÓÇؾ߸¸ ¾Ë ¼ö ÀÖ´Â °Íµµ Àִµ¥ ÀÌ·± °æ¿ì´Â ±²ÀåÈ÷ ½Ã°£ÀÌ ¸¹ÀÌ °É¸± ¼öµµ ÀÖ´Ù. ±×·¡¼ ¿øÇÏ´Â Á¤º¸ÀÇ Á¾·ù¸¦ ·¹º§·Î ¼±ÅÃÇÔÀ¸·Î½á ºÒÇÊ¿äÇÑ ½Ã°£À» ³¶ºñÇÏÁö ¾Êµµ·Ï ÇØ ³õÀº °ÍÀÌ´Ù. ´ÙÀ½ µµÇ¥´Â Level Àμö¿¡ µû¶ó Á¶»çµÇ´Â Á¤º¸¸¦ ¿ä¾àÇÑ °ÍÀÌ´Ù.
·¹º§ |
¼³¸í |
1 |
°¡Àå ±âº»ÀûÀÎ Á¤º¸¸¦ Á¶»çÇØ ÁØ´Ù. ÇÁ¸°ÅÍÀÇ À̸§, ¼³¸í Á¤µµ°¡ ÀÖ´Ù. |
2 |
°¡Àå »ó¼¼ÇÑ Á¤º¸°¡ Á¶»çµÈ´Ù. ¼¹ö¸í, °øÀ¯¸í, Æ÷Æ®, µå¶óÀ̹ö, ¿ëÁö ¹æÇâ, ÇÁ¸°ÅÍÀÇ ¼Ó¼º, Ãâ·Â ¼Óµµ µî ¼ö½Ê°¡ÁöÀÇ Á¤º¸°¡ ÇѲ¨¹ø¿¡ Á¶»çµÈ´Ù. |
3 |
ÇÁ¸°ÅÍÀÇ º¸¾È Á¤º¸¸¦ Á¶»çÇÑ´Ù. SECURITY_DESCRIPTOR ±¸Á¶Ã¼°¡ Æ÷ÇԵǾî ÀÖ´Ù. |
4 |
ÇÁ¸°ÅÍ À̸§°ú Á¾·ù, ¼¹ö¸í µîÀÇ ÀϹÝÀûÀÎ ÇÁ¸°ÅÍ Á¤º¸¸¦ Á¶»çÇÑ´Ù. |
5 |
»ó¼¼ÇÑ ÇÁ¸°Å× Á¤º¸¸¦ Á¶»çÇÑ´Ù. À̸§, Æ÷Æ®, ¼Ó¼º, ŸÀӾƿô°ª µîÀÌ Æ÷ÇԵȴÙ. |
6 |
¿ëÁö °É¸²À̳ª Åä³Ê ºÎÁ· µî ÇÁ¸°ÅÍÀÇ ÇöÀç »óŸ¦ Á¶»çÇÑ´Ù. 6¹ø ÀÌÈÄÀÇ ·¹º§Àº 95/98¿¡¼´Â »ç¿ëÇÒ ¼ö ¾øÀ¸¸é NT/2000À̻󿡼¸¸ »ç¿ëÇÒ ¼ö ÀÖ´Ù. |
7 |
µð·ºÅ丮 ¼ºñ½º¿Í °ü·ÃµÈ ÇÁ¸°ÅÍ Á¤º¸¸¦ Á¶»çÇÑ´Ù. |
8 |
ÇÁ¸°ÅÍÀÇ Àü¿ª ¼³Á¤¿¡ °üÇÑ ÃʱâÈ Á¤º¸ |
9 |
ÇÁ¸°ÅÍÀÇ »ç¿ëÀÚº° ¼³Á¤¿¡ °üÇÑ ÃʱâÈ Á¤º¸ |
°¢°¢ÀÇ PRINTER_INFO_* ±¸Á¶Ã¼°¡ ¾î¶»°Ô ¼±¾ðµÇ¾î ÀÖ°í °¢ ¸â¹öÀÇ Àǹ̰¡ ¹«¾ùÀΰ¡´Â º»¹®¿¡¼ Á¤¸®ÇÏÁö ¾Ê±â·Î ÇÑ´Ù. ¸â¹ö°¡ ´Ü¼øÈ÷ ¸¹±â¸¸ ÇÑ Á¤µµ°¡ ¾Æ´Ï¶ó ¿î¿µÃ¼Á¦ ¹öÀü°ú »óȲ¿¡ µû¶ó Àǹ̰¡ ´Þ¶óÁö´Â °Íµéµµ Àֱ⠶§¹®¿¡ ÇÊ¿äÇÒ ¶§ ·¹ÆÛ·±½º¸¦ ã¾Æº¸±â ¹Ù¶õ´Ù. ¿©±â¼´Â ´ëÇ¥ÀûÀ¸·Î °¡Àå ÀÚÁÖ »ç¿ëµÇ´Â PRINTER_INFO_2 ±¸Á¶Ã¼¸¦ ±¸°æ¸¸ ÇØ º¸µµ·Ï ÇÏÀÚ.
typedef struct _PRINTER_INFO_2 {
LPTSTR pServerName;
LPTSTR pPrinterName;
LPTSTR pShareName;
LPTSTR pPortName;
LPTSTR pDriverName;
LPTSTR pComment;
LPTSTR pLocation;
LPDEVMODE pDevMode;
LPTSTR pSepFile;
LPTSTR pPrintProcessor;
LPTSTR pDatatype;
LPTSTR pParameters;
PSECURITY_DESCRIPTOR pSecurityDescriptor;
DWORD Attributes;
DWORD Priority;
DWORD DefaultPriority;
DWORD StartTime;
DWORD UntilTime;
DWORD Status;
DWORD cJobs;
DWORD AveragePPM;
} PRINTER_INFO_2, *PPRINTER_INFO_2;
¸â¹ö°¡ Âü ¸¹Àºµ¥ À̸§¸¸ ºÁµµ ´ëÃæ ±× Àǹ̸¦ ÁüÀÛÇÒ ¼ö ÀÖµµ·Ï µÇ¾î ÀÖ´Ù. EnumPrinters ÇÔ¼ö´Â ±×´ÙÁö ÀÚÁÖ »ç¿ëµÇ´Â ÇÔ¼ö°¡ ¾Æ´Ï¸ç ÀϹÝÀûÀÎ »ç¿ë¿¹´Â ¾Õ¿¡¼ º¸ÀÎ ¿¹Á¦ Á¤µµ¸¸ ÀÌÇØÇÏ¸é ½Ç¹«¿¡ Àû¿ëÇϱâ ÃæºÐÇÏ´Ù.