Hallo Leute,
ich habe versucht eine Lösung zu finden, komme aber nicht dahinter. Folgendes Problem:
Ich habe eine Bibliotheksdatei (Datei.h) von einem Druckertreiber. In dieser Datei sind die möglichen Funktionen deklariert:
Delphi-Quellcode:
#define ESC_ICENCODE 11013
typedef struct
{
DWORD hwnd;
WORD nID;
} MY_ICENCODE;
typedef MY_ICENCODE FAR * LPMY_ICENCODE;
Das habe ich in Delphi übersetzt und folgendes ist bei rum gekommen:
Delphi-Quellcode:
type
TMY_ICENCODE = record
hwnd : DWORD;
nID : Word;
end;
const
ESC_ICENCODE = 11013;
Um eine Escape-Sequenz an den Drucker zu schicken habe ich dann folgende Routine geschrieben:
Delphi-Quellcode:
function EncodeData(hc: HDC): Boolean;
var _MYEncode : TMY_ICENCODE;
Res : Integer;
begin
Result := false;
if InitPrinterDriver = 0 then Exit;
_MYEncode.hwnd := hc;
_MYEncode.nID := PrntID;
Res := ExtEscape(hc, ESC_ICENCODE, SizeOf(TMY_ICENCODE), @_MYEncode, SizeOf(TMY_ICENCODE), @_MYEncode);
if Res < 0 then
begin
ShowMessage('Error!');
Result := false;
end
else if Res = 0 then
begin
ShowMessage('Function is not implemented!');
Result := false;
end
else if Res > 0 then Result := true;
end;
Das HDC, das übergeben wird, ist das
Handle der Treiber-
DLL. Die Funktion kommt immer mit 0 zurück. Was mache ich falsch? Ich hoffe es weiß jemand eine Lösung.
Thx im Voraus.
Gruß, Moony