Die
Jedi Header Files setzten auf die Svrapi.dll auf, und sind nicht geeignet.
Daher habe ich die NetSharEnum nun direkt implementiert. Der Code läst sich auch kompelieren, aber ich erhalte keine Freigaben zurück
Hast du eine Idee woran das liegen könnte? Hier der Quellcode:
Delphi-Quellcode:
const
LM20_NNLEN = 12;
SHPWLEN = 8;
SHI50F_RDONLY = 1;
SHI50F_FULL = 2;
STYPE_DISKTREE = 0;
MaxNetArrayItems=512;
type
TShareInfo50 = packed record
shi50_netname: array[0..LM20_NNLEN] of Char;
shi50_type: Byte;
shi50_flags: Short;
shi50_remark: PChar;
shi50_path: PChar;
shi50_rw_password: array[0..SHPWLEN] of Char;
shi50_ro_password: array[0..SHPWLEN] of Char;
end;
type
TShareInfo0 = packed record
shi0_netname : array[0..LM20_NNLEN] of Char;
end;
Function NetShareEnum(const pszServer: PChar; sLevel: SmallInt;
pbBuffer: Pointer; cbBuffer: Word; var pcEntriesRead: Word;
var pcTotalAvail: Word): DWORD; stdcall; external 'netapi32.dll';
Alle Freigaben sollen in einer Combobox aufgelistet werden, es kommt aber nichts an???
Delphi-Quellcode:
procedure TForm3.SpeedButton2Click(Sender: TObject);
Var
ShareInfo:Array[0..MaxNetArrayItems-1] Of TShareInfo50;
EntriesRead, TotalAvial:Word;
Res:Integer;
i:Integer;
begin
FillChar(ShareInfo,SizeOf(ShareInfo),#0);
Res:=NetShareEnum(0,50,@ShareInfo,SizeOf(ShareInfo), EntriesRead,TotalAvial);
If Res = No_Error Then
For i:=0 To EntriesRead -1 Do
If Not (String(ShareInfo[i].shi50_netname)='') Then
combobox1.Items.Add(String(ShareInfo[i].shi50_netname));
end;
Ideen was falsch ist, oder warum ich keine Freigaben zurück erhaltet?
Thanx Salomon