Si, cambiaron los tipos de datos de los parámetros! Pues, de esta manera compila pero...
Código Delphi
[-]
procedure TPrinter.GetPrinter(ADevice, ADriver, APort: PChar; var ADeviceMode: THandle);
function DeviceCapabilitiesA(pDriverName, pDeviceName, pPort: PAnsiChar;
iIndex: Integer; pOutput: PAnsiChar; DevMode: PDeviceModeA): Integer; stdcall;
Function funcSetDuplex(Duplex: Boolean): Boolean;
var
Device, DeviceName, Driver, Port: PWideChar;
hDMode: THandle;
pMode, PDMode: PDevMode;
begin
Result := False;
printer.GetPrinter(Device, Driver, Port, hDMode);
if hDMode <> 0 then
begin
PDMode := GlobalLock(hDMode);
if PDMode <> nil then
begin
if DeviceCapabilitiesA(PAnsiChar(Device), PAnsiChar(DeviceName),
PAnsiChar(Port), DC_DUPLEX, nil, nil) = 1 then
begin
Result := True;
PDMode^.dmFields := PDMode^.dmFields or dm_Duplex;
if Duplex then
PDMode^.dmDuplex := dmDup_VERTICAL
else
PDMode^.dmDuplex := dmDup_SIMPLEX;
end
else
Result := False;
GlobalUnlock(hDMode);
end;
end;
end;