1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
procedure GetPrinter(APrinter:TPrinterDevice;ADevice, ADriver, APort: PChar; var ADeviceMode: THandle);
var FPrinterHandle:Thandle;
DevMode:PDeviceMode;
begin
with APrinter do
begin
StrCopy(ADevice, PChar(Device));
StrCopy(ADriver, PChar(Driver));
StrCopy(APort, PChar(Port));
end;
OpenPrinter(ADevice, FPrinterHandle, nil);
ADeviceMode := GlobalAlloc(GHND,
DocumentProperties(0, FPrinterHandle, ADevice, nil, nil, 0));
if ADeviceMode <> 0 then
begin
DevMode := GlobalLock(ADeviceMode);
if DocumentProperties(0, FPrinterHandle, ADevice, DevMode^,
DevMode^, DM_OUT_BUFFER) < 0 then
begin
GlobalUnlock(ADeviceMode);
GlobalFree(ADeviceMode);
ADeviceMode := 0;
DevMode := nil;
end
end;
end; |
Partager