c++ 建立虚拟站点 (转)

本文介绍如何使用C++编程语言通过IIS API来创建一个IIS虚拟站点,并设置了虚拟站点的基本属性,如站点名、端口、默认文档等。
c++ 建立虚拟站点 (转)[@more@]

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;
}


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752043/viewspace-991801/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10752043/viewspace-991801/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值