C++Builder使用ADSI创建web站点

原创 2001年12月28日 11:37:00

C++Builder使用ADSI创建web站点

以下是我学习MSDN中的文章。总结出适合在C++Builder下创建WebServer的例子:
其中使用ADSI的一些接口,注意要将Activeds.Lib添加入工程,
还要包含以下几个头文件。
比较简单,希望能抛砖引玉。

file://---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"

file://---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
#include "iads.h"
#include "adssts.h"
#include "Adshlp.h"


TForm1 *Form1;

__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}


file://几个参数:ip:ip地址字符串,domain:域名(www.youname.com),DiskPath:虚拟目录路径(C:/wwwroot)
BOOL CreateWebServer(String ip,String domain,String DiskPath)
{
IADsContainer *pCont=NULL;
IADs* pAds=NULL;
IADs* pVrAds=NULL;
IADsServiceOperations *pSrvOp;
IDispatch *pDisp = NULL;
IDispatch *pVrDisp = NULL;
AnsiString WNumer=IntToStr(random(1000)); //取一个随机数建立站点
String newBindings=ip+":80:"+domain;
 
/* 获得WebServer */
if(ADsGetObject(L"IIS://localhost/w3svc",IID_IADsContainer,(void**)&pCont)==S_OK)
{   //创建站点
  if(pCont->Create(L"IIsWebServer",(wchar_t*)WideString(WNumer),&pDisp)==S_OK)
    {
       pDisp->QueryInterface(IID_IADs, (void**)&pAds);
       pDisp->QueryInterface(IID_IADsServiceOperations, (void**)&pSrvOp);
       pAds->Put(L"ServerSize",Variant(int(1)));
       pAds->Put(L"ServerComment",Variant(String("xiwei")));//服务器注释,没太多用处,xiwei我的名字
       pAds->Put(L"ServerBindings",Variant(String(newBindings)));
       pAds->SetInfo();

    file://创建主目录
   
   pCont->GetObject(L"IIsWebServer",(wchar_t*)WideString(WNumer),&pDisp);//得到刚才创建地网站
   if(pDisp->QueryInterface(IID_IADsContainer,(void**)&pCont)==S_OK)
   {
     if(pCont->Create(L"IIsWebVirtualDir",L"Root",&pVrDisp)==S_OK)
       {
         pVrDisp->QueryInterface(IID_IADs, (void**)&pVrAds);
         pVrAds->Put(L"AccessRead",Variant(BOOL("True")));
         pVrAds->Put(L"AccessWrite",Variant(BOOL("True")));
         pVrAds->Put(L"AccessScript",Variant(BOOL("True")));
         pVrAds->Put(L"EnableDirBrowsing",Variant(BOOL("True")));
         pVrAds->Put(L"Path",Variant(String(DiskPath)));
         pVrAds->Put(L"AppRoot",Variant(String(DiskPath)));
         pVrAds->SetInfo();
         pVrAds->Release();
         pAds->Release();
         pCont->Release();
       }
     file://启动新建的WebServer
    pSrvOp->Start();
    pSrvOp->Release();
    }
   }
}

}
void __fastcall TForm1::Button2Click(TObject *Sender)
{
CreateWebServer(Edit1->Text,"www.cccaaa.com",Edit2->Text);
}
file://---------------------------------------------------------------------------

以上内容缺少错误处理,诸如ip地址已被占用等,我认为技术这东西用不着保守,没等生利息呢,已经贬值了。
哈哈,希望各位给以指正!我的Email:proton@yeah.net

在使用vs2013创建第一个ASP.NET 4.5 Web站点时,vs提示项目创建失败?

我是一个初学ASP.NET的新手,在看《asp.net 4.5 入门经典》时,使用vs2013安装书上的教材创建的时候,创建失败。很是困惑。各位同学看在我是初学者的份上帮办我吧。 以下是我的操作步骤...
  • jiansui8241
  • jiansui8241
  • 2017年03月25日 19:59
  • 177

web到底是什么意思,web站点的创建方法

web到底是什么意思。先来看看两个名词:   一、超文本(hypertext)   一种全局性的信息结构,它将文档中的不同部分通过关键字建立链接,使信息得以用交互方式搜索。它是超级文本的简称。 ...
  • zyj66666
  • zyj66666
  • 2017年06月19日 09:39
  • 650

asp.net--构建网站第一步(站点结构分析—>建立站点地图)

由上图
  • yayun0516
  • yayun0516
  • 2014年11月23日 18:06
  • 1177

在vs中建立web项目和web网站的区别

在给同学调试牛腩的例子的时候偶然间发现了这个问题,值得去探讨一下。 一、建立B/S项目的方式         首先我们来看B/S建立项目的方式,建立网站和建立项目如图: ...
  • tr1912
  • tr1912
  • 2016年06月23日 21:04
  • 2240

创建并发布一个JSP网站

一、实验目的 1、掌握tomcat配置及使用方法; 2、熟悉Eclipse; 3、掌握在Eclipse中创建JSP网站,并发布的基本过程。 二、实验内容 在Eclipse中创建并发布一个JS...
  • Coder__CS
  • Coder__CS
  • 2017年04月18日 16:14
  • 663

win7上ftp服务器搭建

首先在本地机器上创建一个用户!这些用户是用来登录到FTP的!我的电脑右键->管理->本地用户和组->用户->“右键”新建用户->输入用户名和密码再点创建就行了! ...
  • yancao952
  • yancao952
  • 2015年12月29日 17:10
  • 362

C#操作IIS程序池及站点的创建配置实现代码

最近在做一个WEB程序的安装包;对一些操作IIS进行一个简单的总结;主要包括对IIS进行站点的新建以及新建站点的NET版本的选择,还有针对IIS7程序池的托管模式以及版本的操作...
  • li_xiao_ming
  • li_xiao_ming
  • 2014年07月28日 19:48
  • 1990

window7下用IIS建站点及配置

首先我很想吐槽的是,自从用了win7,好多东西找起来真费劲!唉,还是linux好用,好直接! 一.安装IIS 1.打开控制面板--->程序--->程序和功能 进入此页面   2...
  • liuchunhui93
  • liuchunhui93
  • 2014年05月19日 21:00
  • 1719

IIS7.5 批量开设站点

为实现负载平衡,我们可能会使用多个WEB服务器,也就会需要给多个IIS配置同样的站点和应用程序池.那么我们需要一个一个的重新建吗?当然不用,我们只需要一些简单的命令就可以在IIS7(Windows S...
  • RollingFeel
  • RollingFeel
  • 2015年01月28日 11:18
  • 1088

sharepoint 2016 学习系列篇(5)-创建一个应用程序网站

前面已经完成了整个sharepoint server 2016的安装和配置,接下来,我们当然是要创建一个应用程序网站。 打开sharepoint管理中心,点击Application Managemen...
  • cxx2325938
  • cxx2325938
  • 2015年09月05日 15:56
  • 2231
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++Builder使用ADSI创建web站点
举报原因:
原因补充:

(最多只允许输入30个字)