C++Builder使用ADSI建立web站點 (轉)
C++Builder使用ADSI建立站點
以下是我學習MSDN中的文章。總結出適合在C++Builder下建立WebServer的例子:
其中使用ADSI的一些介面,注意要將Activeds.Lib新增入工程,
還要包含以下幾個頭。
比較簡單,希望能拋磚引玉。
#include
#pragma hdrstop
#include "Unit1.h"
#pragma package(smart_init)
#pragma re "*.dfm"
#include "iads.h"
#include "adssts.h"
#include "Adshlp.h"
TForm1 *Form1;
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
個引數:ip:字串,ain:域名(),DiskPath:虛擬目錄路徑(C:www)
BOOL CreateWebServer(String ip,String domain,String DiskPath)
{
IADntainer *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(ADsGet(L"IIS://localhost/w3svc",IID_IADsContainer,(void**)&pCont)==S_OK)
{ /建站點
if(pCont->Create(L"IIsWebServer",(wchar_t*)WString(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();
建主目錄
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();
}
動新建的WebServer
pSrvOp->Start();
pSrvOp->Release();
}
}
}
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{
CreateWebServer(Edit1->Text,"",Edit2->Text);
}
以上內容缺少錯誤處理,諸如ip地址已被佔用等,我認為技術這東西用不著保守,沒等生利息呢,已經貶值了。
哈哈,希望各位給以指正!我的E:">proton@yeah.net
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-991332/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何使用 Apache Web 伺服器配置多個站點ApacheWeb伺服器
- 使用springboot建立web專案,並使用外部TomcatSpring BootWebTomcat
- Socket程式設計,從TCP分析到建立web網站程式設計TCPWeb網站
- Kubernetes建立資料中心級apt映象站點APT
- 將WordPress站點轉換為JoomlaOOM
- centos 監控web站點是否500 指令碼CentOSWeb指令碼
- Abp框架Web站點的安全性提升框架Web
- 阿里雲的ecs伺服器,建立ftp站點阿里伺服器FTP
- 使用 ASP.NET Core 和 MongoDB 建立 Web APIASP.NETMongoDBWebAPI
- 如何使用FastReport.Service.dll建立Web服務ASTWeb
- idea使用maven-archetype-webapp方式建立web工程IdeaMavenWebAPP
- 如何使用gohugo/hugo建立一個靜態網站?Go網站
- 利用麥咖啡(McAfee)打造超安全的Web站點目錄Web
- 免費ftp站點,使用三款ftp工具連線免費ftp站點FTP
- astro中建立web componentsASTWeb
- idea建立web專案IdeaWeb
- IDEA建立Java WEB工程IdeaJavaWeb
- Flutter2 for Web,寫了個部落格站點,已上線FlutterWeb
- 【轉載】使用 BAPI_BUPA_CREATE_FROM_DATA 建立BPAPI
- 在一臺Apache伺服器上建立多個站點(不同域名)Apache伺服器
- WEB站點效能優化實踐(載入速度提升2s)Web優化
- python如何建立web服務PythonWeb
- nodejs web伺服器建立NodeJSWeb伺服器
- 建立Dynamic Web Project沒有web.xml問題WebProjectXML
- Docker 中使用 Nginx 代理多個應用站點DockerNginx
- 如何使用 JavaScript 程式碼建立虛擬滑鼠點選事件JavaScript事件
- echarts使用dataset資料集建立單軸散點圖Echarts
- Web網站服務(二)Web網站
- B站劉斌新:品牌如何在B站與年輕使用者建立長期信任?
- idea社群版建立web專案IdeaWeb
- IDEA建立動態Web專案IdeaWeb
- Web Components系列(三) —— 建立 Custom ElementsWeb
- spring boot 建立web專案(IDEA)Spring BootWebIdea
- Python全棧Web(Ajax概述建立)Python全棧Web
- web workers簡介(三)建立subworkerWeb
- 使用HANA Web-based Development Workbench建立最簡單的Server Side JavaScriptWebdevServerIDEJavaScript
- Activity建立與跳轉
- 5月全球Web伺服器報告 微軟減少1.12億站點Web伺服器微軟
- React Native轉web方案:react-native-webReact NativeWeb