Ich habe den Code von Duffy schon öffters gesehen, und meine das er wohl eine Pascal Translation eines schlechten C/C++ Sources sein muß. Mit Delphi kann man diese Funktion viel eleganter programieren:
Delphi-Quellcode:
function NetMsgSend(const ServerName, MsgName, FromName, Msg: WideString): Integer;
function WC(const Name: WideString): PWideChar;
begin
if Name = '' then Result := nil
else Result := PWideChar(Name);
end;
var
NetLib: THandle;
NetMessageBufferSend: function(ServerName, MsgName, FromName: PWideChar;
Buffer: PWideChar; BufferLen: DWord): Integer; stdcall = nil;
begin
Result := -1;
NetLib := LoadLibrary('NETAPI32.DLL');
if NetLib <> 0 then
try
@NetMessageBufferSend := GetProcAddress(NetLib, 'NetMessageBufferSend');
if Assigned(NetMessageBufferSend) then
Result := NetMessageBufferSend(WC(ServerName), WC(MsgName), WC(FromName),
Pointer(Msg), Length(Msg) * 2);
finally
FreeLibrary(NetLib);
end;
end;
Gruß hagen