关于adsi取信息的问题

wxlzm 2003-08-21 03:50:36
用adsi取本机web站点的端口号怎么取!!(用Vc)
取虚拟路径我会取,可是不知道怎么取端口号。
...全文
26 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
masterz 2003-08-24
  • 打赏
  • 举报
回复
#include <Iads.h>
#include <Adshlp.h>
#include <activeds.h>
#pragma comment(lib,"ActiveDS.lib")
#pragma comment(lib,"adsiid.lib")
#include "comdef.h"
#include <comutil.h>

void CGetIisportView::OnGetport()
{
IADsContainer* iContainer;
IADs* iAds;
VARIANT SC;
char s[5];
int i=0;
char dirName[MAX_PATH];
VARIANT path , state, sPort;
if(ADsGetObject(L"IIS://localhost/w3svc",IID_IADsContainer,(void**)&iContainer)==S_OK) {
//得到默认站点
iContainer->GetObject(_bstr_t("IIsWebServer"), _bstr_t("1"),(IDispatch**)&iAds);
if(iAds==NULL) return ;
VariantInit(&sPort);
HRESULT hr=iAds->Get(_bstr_t("Serverbindings"),&sPort);
if(SUCCEEDED(hr))
{
if(sPort.vt ==VT_ARRAY|VT_VARIANT)
{
SAFEARRAY* psa = sPort.parray;
VARIANT* varArray=NULL;
SafeArrayAccessData(psa,(VOID**)&varArray);
UINT uDim = SafeArrayGetDim(psa);
if(1==uDim)
{
long lLbound,lRbound;
SafeArrayGetLBound(psa,1,&lLbound);
SafeArrayGetUBound(psa,1,&lRbound);
for(long i=lLbound;i<=lRbound;i++)
{
if(varArray[i].vt==VT_BSTR)
{
_bstr_t bstmp(varArray[i].bstrVal,true);
AfxMessageBox((LPCTSTR)bstmp);
}
}
SafeArrayUnaccessData(psa);
}
}
}
iAds->Release();
}
}
wxlzm 2003-08-21
  • 打赏
  • 举报
回复
那位仁兄帮帮忙,就几句取的代码就可以了!

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧