Здравствуйте, dimok@, Вы писали:
D>А каким образом мы печатаем на нужный принтер? Он должен быть принтером по умолчанию?
Да нам этого хватало, но ты либо предоставляешь пользователю возможность выбрать либо:
bool Open ()
{
// Get Default Printer Name
BOOL founded = FALSE;
TCHAR Name[512];
DWORD cbNeeded = 0, dwReturned = 0;
EnumPrinters(PRINTER_ENUM_LOCAL, NULL, 2, NULL, 0, &cbNeeded, &dwReturned);
if (cbNeeded)
{
PRINTER_INFO_2* pPI2 = (PRINTER_INFO_2*) GlobalAllocPtr(GHND, cbNeeded);
if (pPI2)
{
if (EnumPrinters(PRINTER_ENUM_LOCAL, NULL, 2, LPBYTE(pPI2), cbNeeded, &cbNeeded, &dwReturned))
{
for (DWORD i = 0; i < dwReturned; i++)
{
if (pPI2[i].Attributes & PRINTER_ATTRIBUTE_DEFAULT == 0)
continue;
strcpy(Name, pPI2[i].pPrinterName);
founded = TRUE;
break;
}
}
}
DWORD error = GetLastError();
GlobalFreePtr(pPI2);
}
if (!founded)
return false;
TCHAR str[512];
strcpy(str, Name);
BOOL ret = OpenPrinter(str, (LPHANDLE) &pHandle, &pdef);
if (!ret)
{
DWORD error = GetLastError();
}
return true;
}
делаешь как то так но сравниваешь название.
D>И как мы узнаем свое задание? Вдруг кто-то еще печатает?
Не знаю. Начал печатать пиши куда-нибудь а потом сравнивай.
Ты сам начинаешь печатать? Или нет?
Привет, Константин.