Здравствуйте Antic, Вы писали:
A>Здравствуйте Lom, Вы писали:
Lom>>Ошибка 1. Надо писать: Lom>>HLOCALC mem=LocalAlloc (LPTR, dwNeeded); Lom>>ppi2=(LPPRINTER_INFO_2) LocalLock(mem) Lom>>... вызов EnumPrinters и всего где нужно ppi2 Lom>>LocalUnlock(mem); Lom>>LocalFree(mem);
A>Ну извините, я из MSDNновских примеров брал кусок кода. :)
Lom>>Насчет разницы — не знаю. Лучше делать комбинированный вызов вариант 1, а если не удалось — то вариант 2
A>проблема в том, что при использовании одного из вариантов вызова и операционки все может вылететь, что я уже наблюдаю второй день под NT и 98 :)
Привожу кусок рабочей программы определения дефолтового принтера. Работает в WinMe и 2000. Жалоб на другие системы не поступало.
BYTE *buffer=NULL;
DWORD need;
int i;
char defPName[MAX_PATH];
DWORD pCnt;