IAppHostSectionGroup::AddSectionGroup, méthode
Ajoute un nouveau groupe de sections de configuration imbriqué sous le groupe de sections de configuration actuel.
Syntaxe
HRESULT AddSectionGroup(
[in,
string] BSTR bstrSectionGroupName,
[out,
retval] IAppHostSectionGroup** ppSectionGroup
);
Paramètres
bstrSectionGroupName
BSTR
qui contient le nom du nouveau groupe de sections à ajouter.
ppSectionGroup
Pointeur vers un pointeur pour l’interface IAppHostSectionGroup nouvellement créée.
Valeur renvoyée
Élément HRESULT
. Les valeurs possibles sont notamment celles figurant dans le tableau suivant.
Valeur | Description |
---|---|
S_OK | Indique que l’opération a réussi. |
Exemple
L’exemple de code suivant crée un groupe de sections et une nouvelle section, puis définit les valeurs de propriété de la section nouvellement générée.
#pragma once
#include <stdio.h>
#include <string.h>
#include <ahadmin.h>
int main()
{
IAppHostWritableAdminManager * pWMgr = NULL;
IAppHostElement * pParentElem = NULL;
IAppHostPropertyCollection * pElemProps = NULL;
IAppHostProperty * pElemProp = NULL;
HRESULT hr = S_OK;
BSTR bstrConfigCommitPath = SysAllocString( L"MACHINE/WEBROOT/APPHOST" );
BSTR bstrSectionName = SysAllocString( L"system.webServer/defaultDocument" );
BSTR bstrPropertyName = SysAllocString( L"enabled" );
VARIANT vtValue;
vtValue.vt = VT_BOOL;
vtValue.boolVal = VARIANT_FALSE;
VARIANT vtPropertyName;
vtPropertyName.vt = VT_BSTR;
vtPropertyName.bstrVal = bstrPropertyName;
// Initialize
hr = CoInitializeEx( NULL, COINIT_MULTITHREADED );
if ( FAILED( hr ) )
{
printf_s( "ERROR: Unable to initialize\n" );
goto exit;
}
// Create
hr = CoCreateInstance( __uuidof( AppHostWritableAdminManager ), NULL,
CLSCTX_INPROC_SERVER,
__uuidof( IAppHostWritableAdminManager ), (void**) &pWMgr );
if( FAILED( hr ) )
{
printf_s( "ERROR: Unable to create an IAppHostWritableAdminManager\n" );
goto exit;
}
wprintf_s( L"Setting CommitPath: %s\n", bstrConfigCommitPath );
pWMgr->put_CommitPath( bstrConfigCommitPath );
if( FAILED( hr ) )
{
printf_s( "ERROR: Unable to set the commit path" );
goto exit;
}
// Get the admin section
wprintf_s( L"Getting section: %s\n", bstrSectionName );
hr = pWMgr->GetAdminSection( bstrSectionName, bstrConfigCommitPath, &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 configuration section.\n" );
}
goto exit;
}
// Get the property collection
printf_s( "Getting property collection\n" );
hr = pParentElem->get_Properties( &pElemProps );
if ( FAILED ( hr ) || ( &pElemProps == NULL ) )
{
wprintf_s( L"ERROR: Unable to access attributes %s\n", bstrSectionName );
goto exit;
}
// Get the property instance
wprintf_s ( L"Getting property: %s\n", bstrPropertyName );
hr = pElemProps->get_Item( vtPropertyName, &pElemProp );
if ( FAILED( hr ) || ( pElemProp == NULL ) )
{
wprintf_s( L"ERROR: Unable to access attribute: %s\n", bstrPropertyName );
goto exit;
}
// Set the property value
wprintf_s( L"Setting property: %s to %s\n", bstrPropertyName,
( vtValue.boolVal == VARIANT_TRUE ? L"true" : L"false" ) );
hr = pElemProp->put_Value( vtValue );
if ( FAILED( hr ) )
{
wprintf_s( L"ERROR: Unable to set attribute value: %s\n", bstrPropertyName );
goto exit;
}
// Commit the changes to the configuration system
hr = pWMgr->CommitChanges();
if( FAILED( hr ) )
{
printf_s( "ERROR: Unable to commit the changes to the configuration system" );
}
exit:
// Exiting / Unwinding
if ( pElemProp != NULL )
{
pElemProp->Release();
pElemProp = NULL;
}
if ( pElemProps != NULL )
{
pElemProps->Release();
pElemProps = NULL;
}
if ( pParentElem != NULL )
{
pParentElem->Release();
pParentElem = NULL;
}
if ( pWMgr != NULL )
{
pWMgr->Release();
pWMgr = NULL;
}
SysFreeString( bstrPropertyName );
SysFreeString( bstrConfigCommitPath );
SysFreeString( bstrSectionName );
// Uninitialize
CoUninitialize();
return 0;
};
Spécifications
Type | Description |
---|---|
Client | - IIS 7.0 sur Windows Vista - IIS 7.5 sur Windows 7 - IIS 8.0 sur Windows 8 - IIS 10.0 sur Windows 10 |
Serveur | - IIS 7.0 sur Windows Server 2008 - IIS 7.5 sur Windows Server 2008 R2 - IIS 8.0 sur Windows Server 2012 - IIS 8.5 sur Windows Server 2012 R2 - IIS 10.0 sur Windows Server 2016 |
Produit | - 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 |
En-tête | Ahadmin.h |