Ehrlich gesagt sieht die Funktion bei mir auch etwas anders aus^^
Delphi-Quellcode:
function GetPDC(Host: WideString = '
'; Domain: WideString = '
'): TAPIResult;
var
pPDC: Pointer;
begin
// Standard zuweisen
pPDC:=
nil;
try
// PDC durch API-Aufruf zuweisen
result.Err:= NetGetDCName(PWideChar(Host), PWideChar(Domain), pPDC);
// PDC auslesen und als Result festlegen
if (result.Err = 0)
and (pPDC <>
nil)
then
result.Text:= PWideChar(pPDC);
finally
// Speicher des Pointer freigeben
NetApiBufferFree(pPDC);
end;
end;
TAPIResult ist wie folgt deklariert:
Delphi-Quellcode:
type
TAPIResult = record
Text: String;
TextArray: TStringArray;
Err: HResult;
end;
Als Programmierer muss ich dann die Eigenschaft Err auswerten und Text oder ggf TextArray auswerten. Da ich hier aber die Funktion vereinfachen wollte (TAPIResult benutzte ich für mich um auf die selbe Weise verwenden zu können; mittlerweile benutze ich diese Vorgehensweise nicht mehr und es ist schon ne weile her seit dem ich den
DC ermitteln musste) und ich der Meinung bin, dass ein String von sich aus leer ist, habe ich das ganze nen bissl umgeschrieben.
PS: "leer" im Sinne von
:= '';