Re[2]: Почему OpenPrinter странно работает при вызове из DLL
От: Hamlo  
Дата: 15.01.09 19:40
Оценка:
Здравствуйте, rus blood, Вы писали:

RB>Здравствуйте, Hamlo, Вы писали:


H>>Может кто знает в чем грабли ?


RB>Ну а права-то на принтер у пользователя есть?

Да. При установке принтера разрешаю все и всем ...

hPrinter = AddPrinter(NULL, 2, (BYTE*) pi);
HeapFree(GetProcessHeap(),NULL,pi);
if (hPrinter == NULL){
if (pi != NULL) HeapFree(GetProcessHeap(),0,pi);
return EMessageBox(GetActiveWindow());
}
GetPrinter(hPrinter,3,NULL,NULL,&dwNeeded);
PRINTER_INFO_3 * pi3 = (PRINTER_INFO_3*) HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,dwNeeded);
GetPrinter(hPrinter,3,(LPBYTE)pi3,dwNeeded,&dwNeeded);
PSECURITY_DESCRIPTOR psd = pi3->pSecurityDescriptor;
if (IsValidSecurityDescriptor(psd)){
InitializeSecurityDescriptor(psd,SECURITY_DESCRIPTOR_REVISION);
SetSecurityDescriptorDacl(psd, TRUE, NULL, FALSE);
SetSecurityDescriptorGroup(psd, NULL, FALSE);
SetSecurityDescriptorSacl(psd, FALSE, NULL, FALSE );
SetPrinter(hPrinter,3,(LPBYTE)pi3,0);
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.