DWORD dwFlags = PRINTER_ENUM_FAVORITE | PRINTER_ENUM_LOCAL | PRINTER_ENUM_NETWORK;
DWORD cbNeeded;
DWORD cReturned;
EnumPrintersA(dwFlags, 0, 2, 0, 0, &cbNeeded, &cReturned);
BYTE* buf = new BYTE[cbNeeded];
EnumPrintersA(dwFlags, 0, 2, buf, cbNeeded, &cbNeeded, &cReturned);
LPPRINTER_INFO_2A pPrinters = (LPPRINTER_INFO_2A)buf;
for(DWORD i(0); i<cReturned; ++i)
{
Memo1->Lines->Add(pPrinters.pPrinterName);
Memo1->Lines->Add(pPrinters.pServerName);
}
Сетевой принтер (да/нет?)
И если он является таковым, то узнать IP компа к которому он подключен.
Спасибо!
EnumPrinters + PRINTER_INFO_2
А дальше - gethostbyname + inet_ntoa