大约1年前由于工作需要操作IIS, 网上可以找到的现成比较详细的C++示例不多, 花了不少时间去做的... 分享出来, 希望有用得到的朋友.
#define
IIS_VIRTUALDIR_ACCESSREAD 0x00000001
#define
IIS_VIRTUALDIR_ACCESSWRITE 0x00000002
#define
IIS_VIRTUALDIR_ACCESSSCRIPT 0x00000004
#define
IIS_VIRTUALDIR_ACCESSEXECUTE 0x00000008
#define
IIS_VIRTUALDIR_ENABLEDIRBROWSING 0x00000010
#define
IIS_VIRTUALDIR_ENABLEDEFAULTDOC 0x00000020
#define
IIS_VIRTUALDIR_CREATEAPP 0x00000040
#define
IIS_VIRTUALDIR_ENABLEASPENABLEPARENTPATHS 0x00000080


#define
ERRORCODE_SUCCESS 0
#define
ERRORCODE_CHECKSERVICEERROR -1
#define
ERRORCODE_CANNTSTARTSERVICE -2
#define
ERRORCODE_ERROROPENSERVICE -3
#define
ERRORCODE_ENUMSERVICEERROR -4
#define
ERRORCODE_NOSERVICE -5



//
---------------------------------------------------------------------------
//
为IIS的默认站点创建虚拟目录
//
参数: 虚拟目录名, 实际目录, 目录属性
BOOL CreateVirtualDirectory( LPCTSTR lpszVirtualDirName, LPCTSTR lpszDiskPath, DWORD dwAttr, LPCTSTR pSrvName )

...
{
IADsContainer* iContainer;
IADs* iAds;

/**//* 获得WebSever */
if ( ADsGetObject( L"IIS://localhost/w3svc", IID_IADsContainer, (void**)&iContainer ) == S_OK )

...{
//等到默认站点
if ( iContainer->GetObject( _bstr_t( "IIsWebServer" ), _bstr_t( pSrvName ), ( IDispatch** )&iAds ) == S_OK )

...{
if ( iAds->QueryInterface( IID_IADsContainer, ( void** )&iContainer ) == S_OK )

...{
//得到默认站点的根目录
if ( S_OK == iContainer->GetObject( _bstr_t( "IIsWebVirtualDir" ), _bstr_t( "Root" ), ( IDispatch** )&iAds ) )

...{
//获得访问虚拟目录
if ( iAds->QueryInterface( IID_IADsContainer, ( void** )&iContainer) == S_OK )

...{
//先删除了虚拟目录
iContainer->Delete( _bstr_t("IIsWebVirtualDir"), _bstr_t( lpszVirtualDirName ) );
//建立虚拟目录
if ( iContainer->Create( _bstr_t( "IIsWebVirtualDir" ), _bstr_t( lpszVirtualDirName ), ( IDispatch** )&iAds ) == S_OK )

...{
//设置虚拟目录的属性
if ( dwAttr & IIS_VIRTUALDIR_ACCESSREAD )

...{
iAds->Put( _bstr_t( "AccessRead" ), _variant_t( true ) );
}

if ( dwAttr & IIS_VIRTUALDIR_ACCESSWRITE )

...{
iAds->Put( _bstr_t( "AccessWrite" ), _variant_t( true ) );
}

if ( dwAttr & IIS_VIRTUALDIR_ACCESSSCRIPT )

...{
iAds->Put( _bstr_t( "AccessScript" ), _variant_t( true ) );
}

if ( dwAttr & IIS_VIRTUALDIR_ACCESSEXECUTE )

...{