BOOL FO_CreateVirtualSite(LPCTSTR lpszVirtualDirName,LPCTSTR lpszDiskPath,LPCTSTR lpszSitePath) { IADsContainer* iContainer; IADs* iAds; /* 获得WebSever */ if(ADsGetObject(L"IIS://localhost/",IID_IADsContainer,(void**)&iContainer)==S_OK) { // LONG g=0; // iContainer->get__NewEnum // iContainer->get_Count(&g);
//此处是可以通过枚举的方式获得。此处没有具体实现所以本例只能建立一个站点。 LONG i =20; char c[10]; ZeroMemory((PVOID)c,10); itoa(i,c,10); //建立虚拟站点 if(iContainer->Create(L"IIsWebServer", _bstr_t(c),(IDispatch**)&iAds)==S_OK) { //设置虚拟站点的属性 VARIANT var; VariantInit(&var); V_BSTR(&var) = SysAllocString(_bstr_t(lpszDiskPath)); V_VT(&var) = VT_BSTR; iAds->Put(L"ServerComment", var); //设置站点名 VariantClear(&var); V_BSTR(&var) = SysAllocString(L":9999:"); V_VT(&var) = VT_BSTR; iAds->Put(L"Serverbindings", var); // //设置站点端口号 VariantClear(&var); V_BSTR(&var) = SysAllocString(L"default.asp,index.asp,default.htm,index.htm"); V_VT(&var) = VT_BSTR; iAds->Put(L"DefaultDoc", var);//设置默认启动文件 VariantClear(&var); V_BSTR(&var) = SysAllocString(L"True"); V_VT(&var) = VT_BOOL; iAds->Put(L"AccessScript", var); // 设置读取权限 iAds->Put(L"AccessRead",var); iAds->Put(L"AccessWrite",var); VariantClear(&var); V_UI4(&var) = 1; //DWORD类型 V_VT(&var) = VT_UI4; iAds->Put(L"ServerAutoStart", var);// VariantClear(&var); iAds->SetInfo(); if(ADsGetObject(L"IIS://localhost/w3svc",IID_IADsContainer,(void**)&iContainer)==S_OK) { if (iContainer->GetObject(L"IIsWebServer", _bstr_t(c),(IDispatch**)&iAds)==S_OK) { if(iAds->QueryInterface(IID_IADsContainer,(void**)&iContainer)==S_OK) { ////创建新站点root目录 if(iContainer->Create(L"IIsWebVirtualDir", L"Root",(IDispatch**)&iAds) == S_OK) { //设置新站点的根目录 V_BSTR(&var) = SysAllocString(_bstr_t(lpszSitePath)); V_VT(&var) = VT_BSTR; iAds->Put(L"AppCreate", var); iAds->Put(L"Path",var); } } } } iAds->SetInfo(); //打扫卫生 iAds->Release(); iContainer->Release(); iContainer->Release(); return TRUE; } else { //同上,不过没利索 iContainer->Release(); return FALSE; } //同同上 iContainer->Release(); } return FALSE; } 
|