比如设置一个虚拟目录的可读,可写,执行脚本等等属性。
多谢了!!

解决方案 »

  1.   

    #include "stdafx.h"
    #include <comutil.h>
    #pragma comment(lib,"comsupp.lib")
    #include <Iads.h>
    #include <Adshlp.h>
    #pragma comment(lib,"ActiveDS.lib")
    #pragma comment(lib,"Adsiid.lib")
    //refer to http://seesi.top263.net/article/adsiiis.htmBOOL CreateVirtualDirectry(LPCTSTR lpszVirtualDirName,LPCTSTR lpszDiskPath)
    {
    IADsContainer* iContainer;
    IADs* iAds;
    if(ADsGetObject(L"IIS://localhost/w3svc",IID_IADsContainer,(void**)&iContainer)==S_OK)
    {
    iContainer->GetObject(_bstr_t("IIsWebServer"), _bstr_t("1"),(IDispatch**)&iAds);
    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)
    {
    iContainer->Delete(_bstr_t("IIsWebVirtualDir"), _bstr_t(lpszVirtualDirName));
    if(iContainer->Create(_bstr_t("IIsWebVirtualDir"), _bstr_t(lpszVirtualDirName),(IDispatch**)&iAds)==S_OK)
    {
    iAds->Put(_bstr_t("AccessRead"),_variant_t("True"));
    iAds->Put(_bstr_t("AccessWrite"),_variant_t("True"));
    iAds->Put(_bstr_t("Path"),_variant_t(lpszDiskPath));
    iAds->Put(_bstr_t("AccessExecute"),_variant_t("False"));
    iAds->SetInfo();
    iAds->Release();
    iContainer->Release();
    return TRUE;
    }
    else
    {
    iAds->Release();
    iContainer->Release();
    return FALSE;
    }
    }
    else
    {
    iAds->Release();
    iContainer->Release();
    }
    }
    else
    {
    iAds->Release();
    }
    iContainer->Release();
    }
    return FALSE;
    }
    int _tmain(int argc, _TCHAR* argv[])
    {
    CoInitialize(NULL);
    CreateVirtualDirectry("testdir","c:\\tmp");
    CoUninitialize();
    return 0;
    }