IAppHostAdminManager::GetAdminSection Method
Gets an IIS 7 configuration section that has the requested name and configuration path.
Syntax
HRESULT GetAdminSection(
[in,
string] BSTR bstrSectionName,
[in,
string] BSTR bstrPath,
[out,
retval] IAppHostElement** ppAdminSection
);
Parameters
bstrSectionName
A BSTR
that contains the path to a valid section name in the configuration system.
bstrPath
A BSTR
that contains the configuration system path.
ppAdminSection
A pointer to a pointer for an IAppHostElement interface.
Return Value
An HRESULT
. Possible values include, but are not limited to, those in the following table.
Value | Description |
---|---|
S_OK | Indicates that the operation was successful. |
ERROR_INVALID_DATA | Indicates that the data is invalid. |
ERROR_FILE_NOT_FOUND | Indicates that the requested path was not found. |
ERROR_INVALID_PARAMETER | Indicates that a parameter is incorrect. |
E_ACCESSDENIED | Indicates that the operation was not successful because of access restrictions. |
Remarks
For a specified configuration path, the return values of this method represent the corresponding values in the hierarchically merged configuration set. To set the configuration path, use the bstrPath
parameter of this method.
Example
The following code example uses the IAppHostAdminManager interface to obtain all merged child elements for the system.webServer/asp
configuration section in the MACHINE/WEBROOT/APPHOST configuration path.
#pragma once
#include <stdio.h>
#include <string.h>
#include <ahadmin.h>
int main()
{
IAppHostAdminManager * pMgr = NULL;
IAppHostElement * pParentElem = NULL;
IAppHostChildElementCollection * pChildElems = NULL;
IAppHostElement * pChildElem = NULL;
HRESULT hr = S_OK;
BSTR bstrSectionName = SysAllocString( L"system.webServer/asp" );
BSTR bstrChildElemName = NULL;
DWORD dwElementCount = 0;
// Initialize
hr = CoInitializeEx( NULL, COINIT_MULTITHREADED );
if ( FAILED( hr ) )
{
printf_s( "ERROR: Unable to initialize\n" );
goto exit;
}
// Create an admin manager
hr = CoCreateInstance( __uuidof( AppHostAdminManager ), NULL,
CLSCTX_INPROC_SERVER,
__uuidof( IAppHostAdminManager ), (void**) &pMgr );
if( FAILED( hr ) )
{
printf_s( "ERROR: Unable to create an IAppHostAdminManager\n" );
goto exit;
}
// Get the admin section
wprintf_s( L"Getting %s\n", bstrSectionName );
hr = pMgr->GetAdminSection( bstrSectionName, NULL, &pParentElem );
if ( FAILED( hr ) || ( &pParentElem == NULL ) )
{
if ( E_ACCESSDENIED == hr )
{
printf_s( "ERROR: Access to configuration denied.\n" );
printf_s( " Run sample as an administrator.\n" );
}
else
{
printf_s( "ERROR: Unable to get asp configuration section.\n" );
}
goto exit;
}
// Get the child elements
wprintf_s( L"Getting child elements\n" );
hr = pParentElem->get_ChildElements( &pChildElems );
if ( FAILED( hr ) || ( &pChildElems == NULL ) )
{
wprintf_s( L"ERROR: Unable to access child elements of %s\n", bstrSectionName );
goto exit;
}
// Loop through child elements
wprintf_s( L"Seaching for child elements of %s\n", bstrSectionName );
hr = pChildElems->get_Count( &dwElementCount );
for( USHORT i = 0; i < dwElementCount; i++ )
{
VARIANT vtItemIndex;
vtItemIndex.vt = VT_I2;
vtItemIndex.iVal = i;
// Get the section group
hr = pChildElems->get_Item( vtItemIndex, &pChildElem );
if ( FAILED( hr ) || ( &pChildElem == NULL ) )
{
wprintf_s( L"ERROR: Unable to find child element: %d\n", i );
goto loop_cleanup;
}
// Get the name
hr = pChildElem->get_Name ( &bstrChildElemName );
if ( FAILED( hr ) )
{
wprintf_s( L"ERROR: Unable to get child element name.\n" );
goto loop_cleanup;
}
wprintf_s( L"\tChild element found: %s\n", bstrChildElemName );
loop_cleanup:
if ( pChildElem != NULL )
{
pChildElem->Release();
pChildElem = NULL;
}
SysFreeString( bstrChildElemName );
}
exit:
// Exiting / Unwinding
if ( pChildElems != NULL )
{
pChildElems->Release();
pChildElems = NULL;
}
if ( pParentElem != NULL )
{
pParentElem->Release();
pParentElem = NULL;
}
if ( pMgr != NULL )
{
pMgr->Release();
pMgr = NULL;
}
SysFreeString( bstrChildElemName );
SysFreeString( bstrSectionName );
// Uninitialize
CoUninitialize();
return 0;
};
Requirements
Type | Description |
---|---|
Client | - IIS 7.0 on Windows Vista - IIS 7.5 on Windows 7 - IIS 8.0 on Windows 8 - IIS 10.0 on Windows 10 |
Server | - IIS 7.0 on Windows Server 2008 - IIS 7.5 on Windows Server 2008 R2 - IIS 8.0 on Windows Server 2012 - IIS 8.5 on Windows Server 2012 R2 - IIS 10.0 on Windows Server 2016 Technical Preview |
Product | - IIS 7.0, IIS 7.5, IIS 8.0, IIS 8.5, IIS 10.0 - IIS Express 7.5, IIS Express 8.0, IIS Express 10.0 |
Header | Ahadmin.h |
See Also
IAppHostAdminManager Interface
IAppHostConfigFile::GetAdminSection Method