HANDLE hPrinter = NULL;
DWORD dwNeeded = 0, dwReturned = 0;
FORM_INFO_1 *forminfo = NULL;
bool bFlag;
bFlag = OpenPrinter(NULL, &hPrinter, NULL);
if(bFlag == false || hPrinter == NULL)
return;
try
{
bFlag = EnumForms(hPrinter, 1, 0, 0, &dwNeeded, &dwReturned);
if((!bFlag) && (GetLastError() != ERROR_INSUFFICIENT_BUFFER) || (dwNeeded == 0))
return;
forminfo = (FORM_INFO_1 *)GlobalAlloc(GPTR, dwNeeded);
if(forminfo == NULL)
return;
bFlag = EnumForms(hPrinter, 1, (LPBYTE)forminfo, dwNeeded, &dwNeeded, &dwReturned);
if(!bFlag)
{
GlobalFree(forminfo);
return;
}
FORM_INFO_1 t;
for(unsigned int i = 0 ; i < dwReturned ; i++)
{
t = forminfo[i];
ListBox2->Items->Add(String().sprintf(L"Paper : %s, Size: %dmm x %dmm",
t.pName, t.Size.cx / 1000, t.Size.cy / 1000));
}
}
__finally
{
ClosePrinter(hPrinter);
}
뽀뽀중 님이 쓰신 글 :
: PrinterSetupDialog1 로 프린터 및 용지크기를 설정 하였습니다
:
: 그리고 설정된 프린터 이름은
:
: Label3->Caption = Printer()->Printers->Strings[Printer()->PrinterIndex];
:
: 위와 같이 하여 가져 왔는데,
:
: 용지사이즈는 어떻게 해야 알수 있나요??
:
: 미리 감사 드립니다.
|