【delphi开源代码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。网学会员整理了delphi开源代码-Frm_novellEnum.pas的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
unit Frm_novellEnum;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, ImgList, XPMan;
type
_SERVER_INFO_100 = packed record
sv100_platform_id :DWORD;
sv100_name:LPWSTR;
end;
ServerInfo = _SERVER_INFO_100;
PServerInfo = ^ServerInfo;
const
SV_TYPE_NOVELL = $00000080;
type
TFrmNovellEnum = class(TForm)
GBxListNovell: TGroupBox;
LVEnum: TListView;
BtnEnum: TButton;
BtnClose: TButton;
ImageList1: TImageList;
XPManifest1: TXPManifest;
procedure BtnCloseClick(Sender: TObject);
procedure BtnEnumClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmNovellEnum: TFrmNovellEnum;
implementation
{$R *.dfm}
function NetServerEnum(servername:LPWSTR;level:DWORD;bufptr:pointer;
prefmaxlen:Integer;entriesread:LPDWORD; totalentries:LPDWORD;
servertype:DWORD;domain:LPWSTR;
resume_handle:PDWORD):Longint;stdcall; external 'netapi32.dll';
Function EnumNovellServer:TStrings;stdcall;
var
Mal,Po:dWord;
Wod:integer;
buffer:array of ServerInfo;
Pbuffer:Pointer;
i:integer;
EnumList:TStrings;
begin
EnumList:=TStringList.Create;
wod:=-1;
NetServerEnum(nil,100,@buffer,wod,@mal,@po,SV_TYPE_NOVELL,nil,0);
getmem(buffer,sizeof(ServerInfo)*mal);
PBuffer:=Buffer;
NetServerEnum(nil,100,@buffer,wod,@mal,@po,SV_TYPE_NOVELL,nil,0);
for i:=0 to mal-1 do
begin
EnumList.Add(buffer[i].sv100_name);
end;
FreeMem(Pbuffer);
result:=EnumList;
end;
procedure TFrmNovellEnum.BtnCloseClick(Sender: TObject);
begin
Close;
end;
procedure TFrmNovellEnum.BtnEnumClick(Sender: TObject);
var
i : integer;
list : TStrings;
LI:TListItem;
begin
list:=EnumNovellServer;
for i:=0 to List.Count -1 do
begin
Li:=LVEnum.Items.Add;
LI.Caption:=LIst.Strings[i];
end;
List.Free;
end;
end.