Hola, que mala costumbre la de nosotros los latinoamericanos de dormir mientras uds están trabajando
Lo que sucede es que en el Berlín que tengo instalado (Delphi Berlín 10.1 Update 2) están así:
Código Delphi
[-]
procedure GetPrinter(ADevice, ADriver, APort: PChar; var ADeviceMode: THandle);
{$EXTERNALSYM DeviceCapabilitiesA}
function DeviceCapabilitiesA(pDriverName, pDeviceName, pPort: LPCSTR;
iIndex: Integer; pOutput: LPSTR; DevMode: PDeviceModeA): Integer; stdcall;
Pero,
LPCSTR termina siendo del tipo
PAnsiChar
Código Delphi
[-]
LPSTR = MarshaledAString;
_PAnsiChr = PAnsiChar;
MarshaledAString = _PAnsiChr;
y la duda es porque
DeviceCapabilitiesA pide un parámetro llamado
pDeviceName que en tu código original no veo.