U tom ces slucaju (ako sam dobro razumeo sta hoces) morati da koristis PRINTER_INFO_5 (za Win98) i/ili PRINTER_INFO_4 (za WinNT) strukture sa funkcijom EnumPrinters.
Onda kada napravis printer DC, isti 'uglavnom' koristis kao da je u pitanju obican (display) dc.
Na primer, ova funkcija vraca handle na printer dc:
Code:
HDC GetPrinterDC(void)
{
DWORD dwNeeded, dwReturned;
HDC hdc;
PRINTER_INFO_4 * pinfo4;
PRINTER_INFO_5 * pinfo5;
if (GetVersion() & 0x80000000) // Za Win98
{
EnumPrinters(PRINTER_ENUM_DEFAULT, NULL, 5, NULL, 0,
&dwNeeded, &dwReturned);
pinfo5 = malloc(dwNeeded);
EnumPrinters(PRINTER_ENUM_DEFAULT, NULL, 5, (PBYTE) pinfo5,
dwNeeded, &dwNeeded, &dwReturned);
hdc = CreateDC(NULL, pinfo5->pPrinterName, NULL, NULL);
free(pinfo5);
}
else // Za WinNT
{
EnumPrinters(PRINTER_ENUM_LOCAL, NULL, 4, NULL,
0, &dwNeeded, &dwReturned);
pinfo4 = malloc(dwNeeded);
EnumPrinters(PRINTER_ENUM_LOCAL, NULL, 4, (PBYTE) pinfo4,
dwNeeded, &dwNeeded, &dwReturned);
hdc = CreateDC(NULL, pinfo4->pPrinterName, NULL, NULL);
free(pinfo4);
}
return hdc;
}
Nadam se da je ovo pomoglo ;o)