我想利用VC获取IIS中的一些信息,譬如:IIS含有哪些WEB站点、FTP站点;WEB站点含有哪些虚拟目录;虚拟目录的属性信息等,不知哪位高手知道,麻烦告诉小弟一下,十分着急,谢啦!
解决方案 »
- 新安装的vc++6.0在执行程序时出错,请各位大虾帮助看看应该样处理?
- 怎么查找系统中安装了哪些com口
- 类似QQ查看好友资料的对话框,ctabctrl 要有滚动条
- 很运气, 快5年了,终于入门, 最近水区很有生活韵味
- 请问如何为程序制作安装程序呢?
- 急问,晚上下班给分,关于文件操作
- vc如何用sys用户以sysdba身份登陆oracle9i数据库?急!
- 微软在COM+下犯的严重低级错误
- 如何定制这样的CFileDialog对话框,请高手指定,高分奉送!急!!!
- 用VC做的ActiveX控件,怎样打成一个CAB包?
- 如何编程创建一个iis 下web的虚拟目录?
- 急!!!如何编程实现安装配置网站,请教各位大虾?!(win2k下的IIS配置)
能不能具体一点
有没有api可以访问这些信息?
LPCTSTR lpszDomain,
LPCTSTR lpszPathName)
{
if(lpszBindAddress==NULL||NULL==lpszDomain||NULL==lpszPathName)
return false; DeleteWebServer(); IADsContainer *pCont=NULL;
IADs* pAds=NULL;
IADs* pVrAds=NULL;
IADsServiceOperations *pSrvOp=NULL;
IDispatch *pDisp = NULL;
IDispatch *pVrDisp = NULL; _bstr_t WNumer = "1";
int iNumer = 1;
char szTemp[16] = {0}; _bstr_t newBindings=_bstr_t(lpszBindAddress)+":"+lpszDomain;
HRESULT hr;
bool bRet = false; if(ADsGetObject(L"IIS://localhost/w3svc",IID_IADsContainer,(void**)&pCont)==S_OK)
{
while(pCont->GetObject(L"IIsWebServer",WNumer,&pDisp) == S_OK)
{
iNumer++;
itoa(iNumer, szTemp, 10);
WNumer = szTemp;
}
if(pCont->Create(L"IIsWebServer",WNumer,&pDisp)==S_OK)
{
hr=pDisp->QueryInterface(IID_IADs, (void**)&pAds);
hr=pDisp->QueryInterface(IID_IADsServiceOperations, (void**)&pSrvOp);
pAds->Put(L"ServerSize",_variant_t(long(1)));
pAds->Put(L"ServerComment",_variant_t(_bstr_t(SERVERCOMMENT)));
pAds->Put(L"ServerBindings",_variant_t(newBindings));
pAds->SetInfo();
hr=pCont->GetObject(L"IIsWebServer",(WNumer),&pDisp);
if(pDisp->QueryInterface(IID_IADsContainer,(void**)&pCont)==S_OK)
{
if(pCont->Create(L"IIsWebVirtualDir",L"Root",&pVrDisp)==S_OK)
{
hr=pVrDisp->QueryInterface(IID_IADs, (void**)&pVrAds);
pVrAds->Put(L"AccessRead",_variant_t(true));
pVrAds->Put(L"AccessWrite",_variant_t(false));
pVrAds->Put(L"AccessScript",_variant_t(true));
pVrAds->Put(L"EnableDirBrowsing",_variant_t(false));
pVrAds->Put(L"EnableDefaultDoc",_variant_t(true));
pVrAds->Put(L"Path",_variant_t(lpszPathName));
pVrAds->Put(L"AppRoot",_variant_t(lpszPathName));
pVrAds->SetInfo(); DISPID dispid;
LPWSTR szDispName = L"AppCreate2";
HRESULT hresult = pVrAds->GetIDsOfNames(IID_NULL,&szDispName,1,
LOCALE_SYSTEM_DEFAULT,&dispid);
if(hresult == S_OK)
{
DISPPARAMS par;
VARIANTARG vName;
VariantInit(&vName);
vName.vt = VT_BOOL;
vName.boolVal = false;
par.cArgs = 1;
par.rgvarg = &vName;
par.cNamedArgs = 0;
par.rgdispidNamedArgs = NULL;
hresult = pVrAds->Invoke(dispid,IID_NULL,LOCALE_SYSTEM_DEFAULT,
DISPATCH_METHOD,&par,NULL, NULL,NULL);
DWORD dwError = ::GetLastError();
} pVrAds->Release();
pAds->Release();
pCont->Release(); }
hr=pSrvOp->Start();
hr=pSrvOp->Release();
bRet = true;
}
}
}
return bRet;
}