c++ 建立虚拟站点

王朝vc·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

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;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航