vc IIS在非默认网站下创建虚拟目录

本文介绍了一个用于在IIS中创建Web虚拟目录的过程。通过COM接口与IIS交互,实现指定站点下虚拟目录的创建,并设置访问权限及路径映射。

BOOL NewSiteDlg::CreateVirtualDir(LPCTSTR lpSiteName, LPCTSTR lpszVirtualDirName, LPCTSTR lpszDiskPath)
{  
     IADsContainer *iContainer;
        IADs *iAds;
        IEnumVARIANT *pEnum;
  pEnum=GetW3SVCList();
  VARIANT var;
  ULONG lFetch;
  HRESULT hr;
  IDispatch *pDisp;
        char *sprint;
  BSTR SiteClass;
        hr=pEnum->Next(1,&var,&lFetch);
  while(hr==S_OK)
  {
       if(lFetch==1)
     {
       pDisp=V_DISPATCH(&var);
    pDisp->QueryInterface(IID_IADs,(void**)&iAds);
    iAds->get_Class(&SiteClass);
                sprint=_com_util::ConvertBSTRToString(SiteClass);
    //className=sprint;
    if((CString)sprint=="IIsWebServer")
    {
        iAds->Get(L"ServerComment",&var);
     CString tem(var.bstrVal);
     if(lpSiteName==tem)
     {
      SysFreeString(SiteClass);
                        VariantClear(&var);
                        hr=pEnum->Release();
      break;
     }
    }
   
    }
           SysFreeString(SiteClass);
           VariantClear(&var);
           hr=pEnum->Release();
           pEnum->Next(1,&var,&lFetch);
  }
        if(iAds->QueryInterface(IID_IADsContainer,(void**)&iContainer)==S_OK)
  {
            iContainer->GetObject(_bstr_t("IIsWebVirtualDir"),_bstr_t("Root"),(IDispatch**)&iAds);
      if(iAds->QueryInterface(IID_IADsContainer,(void**)&iContainer)==S_OK)
   {
    if(iContainer->Create(_bstr_t("IIsWebVirtualDir"),(_bstr_t)lpszVirtualDirName,(IDispatch**)&iAds)==S_OK)
    {
                iAds->Put(_bstr_t("AccessRead"),_variant_t(false));
       iAds->Put(_bstr_t("AccessWrite"),_variant_t(false));
       iAds->Put(_bstr_t("AccessScript"),_variant_t(false));
       iAds->Put(_bstr_t("AccessExecute"),_variant_t(false));
       iAds->Put(_bstr_t("EnableDirBrowsing"),_variant_t(false));
       iAds->Put(_bstr_t("EnableDefaultDoc"),_variant_t(false));
       iAds->Put(_bstr_t("Path"),_variant_t(lpszDiskPath));
       iAds->SetInfo();
                         iAds->Release();
       iContainer->Release();
       return true;
    }
   }
   else
   {
     iContainer->Release();
     iAds->Release();
     return false;
   }
  
  }
  iContainer->Release();     
     return false;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值