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);
}
Пока на собственное сообщение не было ответов, его можно удалить.
Удалить