繁体中文
设为首页
加入收藏
当前位置:程序开发首页 >> Delphi >> 在Delphi中用ADSI创建IIS的虚拟目录

在Delphi中用ADSI创建IIS的虚拟目录

2008-05-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:先引入类型库(Project|Import Type Library)adsiis.dll、iisext.dll和activeds.tlb 新建一个单元,声明 unit ActiveDs; interface function ADsGetObject(const PathName: WideString; const GUID: TGUID; out I...
关键字:中用 目录 Delphi ADSI IIS

先引入类型库(Project|Import Type Library)adsiis.dll、iisext.dll和activeds.tlb

新建一个单元,声明

unit ActiveDs;

interface

function ADsGetObject(const PathName: WideString; const GUID: TGUID; out I: IUnknown): HRESULT; stdcall;

implementation

function ADsGetObject; external ´activeds.dll´ name ´ADsGetObject´;

end.

方法一(参照C++)、

var

I: IADsContainer;

ADs: IADs;

begin

if ADsGetObject(´IIS://localhost/w3svc´, IID_IADsContainer, IUnknown(I)) = S_Ok then

begin

ADs := IADs(I.GetObject(´IIsWebServer´, ´1´));

ShowMessage(ADs.ADsPath);

if ADs.QueryInterface(IID_IADsContainer, I) = S_OK then

begin

ADs := IADs(I.GetObject(´IIsWebVirtualDir´, ´Root´));

ShowMessage(ADs.ADsPath);

if ADs.QueryInterface(IID_IADsContainer, I) = S_OK then

begin

ADs := IADs(I.Create(´IIsWebVirtualDir´, ´DelphiTest´));

ADs.Put(´AccessRead´, ´True´);

ADs.Put(´Path´, ´c:\Temp´);

ADs.SetInfo;

end;

end;

end;

end;

方法二(使用接口)、

procedure TForm3.BitBtn4Click(Sender: TObject);

var

Disp: IDispatch;

begin

Disp := IISNamespace1.GetObject(´IIsWebService´, ´localhost/w3svc´);

Disp := (Disp as IADsContainer).GetObject(´IIsWebServer´, ´1´);

Disp := (Disp as IADsContainer).GetObject(´IIsWebVirtualDir´, ´Root´);

Disp := (Disp as IADsContainer).Create(´IIsWebVirtualDir´, ´DelphiADSITest´);

(Disp as IADs).Put(´AccessRead´, ´True´);

(Disp as IADs).Put(´Path´, ´c:\ADSITest´);

(Disp as IADs).SetInfo;

end;

方法三(使用Variant,就是类似VB和ASP的方法)、

procedure TForm2.BitBtn1Click(Sender: TObject);

var

WebSite, WebServer, WebRoot, VDir: Variant;

begin

WebSite := CreateOleObject(´IISNamespace´);

WebSite := WebSite.GetObject(´IIsWebService´, ´localhost/w3svc´);

WebServer := WebSite.GetObject(´IIsWebServer´, ´1´);

WebRoot := WebServer.GetObject(´IIsWebVirtualDir´, ´Root´);

VDir := WebRoot.Create(´IIsWebVirtualDir´, ´VariantTest´);

VDir.AccessRead := True;

VDir.Path := ´C:\Test´;

VDir.SetInfo;

end;

责任编辑:admin
相关文章