Class TListServerForm (unit ListSerFm) |
TForm
Constructors |
Functions |
Properties |
Events |
Variables |
Constructors |
Functions |
function TListServerForm.EnumNet( Node: TTreeNode ): Boolean; var NewNode: TTreeNode; info, iinfo : PSERVER_INFO_100; s : String; i, j : Integer; info1 : PWKSTA_INFO_100; Server, Domain : LPWSTR; ent, tot, ResumeHandle : DWORD; ent1, tot1, Resume1 : DWORD; ServerType : integer; begin if SQLServersOnly then ServerType := 4 else ServerType := 1; GetMem( Server, 50 ); GetMem( Domain, 50 ); NetWkstaGetInfo( nil, 100, PBYTE(info1) ); s := WideCharToString( info1^.wksi100_computername ); StringToWideChar( '\\'+s, Server, 50 ); ResumeHandle := 0; s := WideCharToString( info1^.wksi100_langroup ); StringToWideChar( s, Domain, 50 ); NetServerEnum( Server, 100, PBYTE(info), sizeof(info), ent, tot, $80000000, Domain, ResumeHandle ); for i:=0 to ent-1 do begin NewNode := Tree.Items.Add( Node, WideCharToString(info^.sv101_name) ); NetServerEnum( Server, 100, PBYTE(iinfo), sizeof(iinfo), ent1, tot1, ServerType, info^.sv101_name, Resume1 ); for j:=0 to ent1-1 do begin Tree.Items.AddChild( NewNode, WideCharToString(iinfo^.sv101_name) ); Inc( iinfo ); end; while ent1 <> tot1 do begin NetServerEnum( Server, 100, PBYTE(iinfo), sizeof(iinfo), ent1, tot1, ServerType, info^.sv101_name, Resume1 ); for j:=0 to ent1-1 do begin Tree.Items.AddChild( NewNode, WideCharToString(iinfo^.sv101_name) ); Inc( iinfo ); end; end; Inc(info); end; FreeMem( Server, 50 ); FreeMem( Domain, 50 ); Result := True; end;
Properties |
Events |
Variables |