发信人: leezy (【HIT】穆子), 信区: BorlandDev
标  题: 在Delphi中用ADSI创建IIS的虚拟目录
发信站: 哈工大紫丁香 (2002年01月19日15:51:27 星期六), 站内信件

摘 要:
关键字:ADSI IIS 虚拟目录
类 别:网络
先引入类型库(Project|Import Type Library)adsiis.dll、iisext.dll和activeds.tl
b
新建一个单元,声明
unit ActiveDs;
interface
  function ADsGetObject(const PathName: WideString; const GUID: TGUID; out I
: IUnknown): HRESULT; stdcall;
implementation
  function ADsGetObject;              external ''activeds.dll'' name ''ADsGe
tObject'';
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'', ''DelphiADSIT
est'');
  (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;

--
°★.☆° .★·°∴°★.°·∴°☆ ·°∴° ☆..·°∴°.☆°★°∴°

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.230.122]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:9.774毫秒