vc 获取站点下的虚拟目录

//获取WebServer 
CComPtr<IADsContainer> cpWebServer;
HRESULT hr = ADsGetObject(L"IIS://localhost/w3svc",
IID_IADsContainer, (void**)&cpWebServer);
if (FAILED(hr))
{
return FALSE;
}

//获取网站
CComPtr<IEnumVARIANT> cpEnum;
hr = ADsBuildEnumerator(cpWebServer,&cpEnum);
if (FAILED(hr))
{
return FALSE;
}

CComVariant cvTemp;
CComPtr<IADs> cpSite;
CComBSTR cbClass;

ULONG ulCount = 0;
while (SUCCEEDED(ADsEnumerateNext(cpEnum, 1, &cvTemp, &ulCount))
&& cvTemp.vt != VT_EMPTY
&& cvTemp.vt != VT_NULL)
{
hr = V_DISPATCH(&cvTemp)->QueryInterface(&cpSite);
if (FAILED(hr))
{
continue;
}
cpSite->get_Class(&cbClass);
if (cbClass == _T("IIsWebServer"))
{
// 取站点主目录
CComPtr<IADsContainer> cpContWeb;
cpSite->QueryInterface(&cpContWeb);
CComPtr<IADs> cpWebRoot;
cpContWeb->GetObject(CComBSTR("IIsWebVirtualDir"),
CComBSTR("Root"), (IDispatch**)&cpWebRoot);
CComVariant pPath;
cpWebRoot->Get(_T("Path"),&pPath);

//获取一级的虚拟目录
CComPtr<IADsContainer> cpContWebVirtualDir;
cpWebRoot->QueryInterface(IID_IADsContainer,(void**)&cpContWebVirtualDir);
IEnumVARIANT *pDirEnum = NULL;
HRESULT hrDir = ADsBuildEnumerator(cpContWebVirtualDir, &pDirEnum);
if(SUCCEEDED(hrDir))
{
VARIANT varDir;
ULONG ulDirFetched = 0L;

// Get the next contained object.
while(S_OK == (hrDir = ADsEnumerateNext(pDirEnum, 1, &varDir,  
  &ulDirFetched)) && (ulDirFetched > 0))
{
IADs *pADsDir;
hrDir = V_DISPATCH(&varDir)->QueryInterface(IID_IADs, (void**)&pADsDir);
if(SUCCEEDED(hrDir))
{
CComBSTR sbstrClass;
CComBSTR sbstrName;
CComVariant pPath;
pADsDir->get_Class(&sbstrClass);
if(sbstrClass == _T("IIsWebVirtualDir"))
{
pADsDir->get_Name(&sbstrName);
CComVariant pVirtualDirPath;
pADsDir->Get(_T("Path"),&pVirtualDirPath);
}
}
}
ADsFreeEnumerator(pDirEnum);
}
}
cvTemp.Clear();
cpSite = NULL;
}
ADsFreeEnumerator(cpEnum.Detach());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值