Oharra
Baimena behar duzu orria atzitzeko. Direktorioetan saioa has dezakezu edo haiek alda ditzakezu.
Baimena behar duzu orria atzitzeko. Direktorioak alda ditzakezu.
Representa una colección de elementos secundarios anidados en la interfaz IAppHostElement actual.
Sintaxis
HRESULT get_ChildElements(
[out,
retval] IAppHostChildElementCollection** ppElements
);
Parámetros
ppElements
Puntero a un puntero para una interfaz IAppHostChildElementCollection .
Valor devuelto
Una clase HRESULT. Entre los valores posibles se incluyen los que se indican en la tabla siguiente, entre otros.
| Value | Descripción |
|---|---|
| S_OK | Indica que la operación se realizó correctamente. |
Comentarios
Una colección de elementos secundarios representada en la IAppHostElement::ChildElements propiedad difiere de una colección de elementos anidada representada en la propiedad IAppHostElement::Collection . Ambas colecciones contienen punteros a IAppHostElement interfaces. Sin embargo, debe usar la IAppHostElement::ChildElements propiedad al consultar la configuración de elementos secundarios únicos, como la system.webServer/asp sección de configuración. En el ejemplo de configuración siguiente, el <cache/> elemento es un elemento secundario de la system.webServer/asp sección de configuración.
<system.webServer>
<asp>
<cache diskTemplateCacheDirectory="%SystemDrive%\inetpub\temp\ASP Compiled Templates" />
</asp>
</system.webServer>
Debe usar la IAppHostElement::Collection propiedad al consultar la configuración de los elementos secundarios que contienen una clave única o una clave de varios atributos, como la system.webServer/sites sección de configuración. En el ejemplo de configuración siguiente, los <site/> elementos son elementos de colección y el <applicationDefaults/> elemento es un elemento secundario de la system.applicationHost/sites sección de configuración.
<system.applicationHost>
<sites>
<site name="Default Web Site" id="1">
<application path="/">
<virtualDirectory path="/"
physicalPath="%SystemDrive%\inetpub\wwwroot" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:80:" />
</bindings>
</site>
<site name="Microsoft.com" id="35">
<bindings>
<binding protocol="http"
bindingInformation="*:80:microsoft.com" />
</bindings>
</site>
<siteDefaults>
<logFile customLogPluginClsid="{FF160663-DE82-11CF-BC0A-00AA006111E0}"
directory="%SystemDrive%\inetpub\logs\LogFiles" />
<traceFailedRequestsLogging
directory="%SystemDrive%\inetpub\logs\FailedReqLogFiles" />
</siteDefaults>
<applicationDefaults applicationPool="DefaultAppPool" />
<virtualDirectoryDefaults allowSubDirConfig="true" />
</sites>
</system.applicationHost>
Ejemplo
En el ejemplo de código siguiente se muestran todos los elementos secundarios de la system.webServer/asp sección de configuración para la ruta de configuración MACHINE/WEBROOT/APPHOST.
#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;
};
Requisitos
| Tipo | Descripción |
|---|---|
| Remoto | - IIS 7.0 en Windows Vista - IIS 7.5 en Windows 7 - IIS 8.0 en Windows 8 - IIS 10.0 en Windows 10 |
| Servidor | - IIS 7.0 en Windows Server 2008 - IIS 7.5 en Windows Server 2008 R2 - IIS 8.0 en Windows Server 2012 - IIS 8.5 en Windows Server 2012 R2 - IIS 10.0 en Windows Server 2016 |
| Producto | - 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 |
| Encabezado | Ahadmin.h |
Consulte también
IAppHostElement (interfaz)
IAppHostElement::Collection (propiedad)