Compartir a través de


IAppHostElementCollection::Count (Propiedad)

Devuelve el número de elementos de la colección actual.

Sintaxis

HRESULT Count(  
   [out,  
   retval] DWORD* pcElementCount  
);  

Parámetros

pcElementCount
Puntero a un DWORD objeto que contiene el número de elementos.

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.

Ejemplo

El siguiente ejemplo de código recorre en bucle todos los elementos secundarios y las propiedades de la system.applicationHost/sites sección de configuración de la ruta de acceso de confirmación MACHINE/WEBROOT/APPHOST.


#pragma once

#include <stdio.h>
#include <string.h>
#include <ahadmin.h>

int main()
{
    IAppHostAdminManager        * pMgr        = NULL;
    IAppHostElement             * pParentElem = NULL;
    IAppHostElementCollection   * pElemColl   = NULL;
    IAppHostElement             * pElem       = NULL;
    IAppHostPropertyCollection  * pElemProps  = NULL;
    IAppHostProperty            * pElemProp   = NULL;

    HRESULT hr                   = S_OK;
    BSTR    bstrConfigCommitPath = SysAllocString( L"MACHINE/WEBROOT/APPHOST" );
    BSTR    bstrSectionName      = SysAllocString( L"system.applicationHost/sites" );
    BSTR    bstrPropertyName     = SysAllocString( L"name" );
    DWORD   dwElementCount       = 0;
    VARIANT vtValue;
    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( 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
    hr = pMgr->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 asp configuration section.\n" );
        }
        goto exit;
    }


    // Get the site collection
    hr = pParentElem->get_Collection( &pElemColl );
    if ( FAILED ( hr ) || ( &pElemColl == NULL ) )
    {
        wprintf_s ( L"ERROR: Unable to access element collection of %s\n", bstrSectionName );
        goto exit;
    }

    // Get the elements
    wprintf_s( L"Seaching for elements in %s\n", bstrSectionName );

    hr = pElemColl->get_Count( &dwElementCount );
    for ( USHORT i = 0; i < dwElementCount; i++ )
    {
        VARIANT vtItemIndex;
        vtItemIndex.vt = VT_I2;
        vtItemIndex.iVal = i;

        // Add a new section group
        hr = pElemColl->get_Item( vtItemIndex, &pElem );
        if ( FAILED( hr ) || ( &pElem == NULL ) )
        {
            wprintf_s( L"ERROR: Unable to find element: %d\n", i );
            goto loop_cleanup;
        }

        // Get the child elements
        hr = pElem->get_Properties( &pElemProps );
        if ( FAILED( hr ) || ( &pElemProps == NULL ) )
        {
            printf_s( "ERROR: Unable to access attributes\n" );
            goto exit;
        }

        hr = pElemProps->get_Item( vtPropertyName, &pElemProp );
        if ( FAILED( hr ) || ( pElemProp == NULL ) )
        {
            printf_s( "ERROR: Unable to access attribute\n" );
            goto exit;
        }

        hr = pElemProp->get_Value( &vtValue );
        if ( FAILED( hr ) )
        {    
            wprintf_s( L"ERROR: Unable to access attribute value: %s\n", bstrPropertyName );
            goto exit;
        }

        wprintf_s( L"Site name is: %s\n", vtValue.bstrVal );

loop_cleanup:
        if ( pElem != NULL )
        {
            printf_s("\treleasing collection element\n");
            pElem->Release(); 
            pElem = NULL;
        }
    }

exit:
    // Exiting / Unwinding    
    if ( pElemProp != NULL )
    {
        pElemProp->Release();
        pElemProp = NULL;
    }
    if ( pElemProps != NULL )
    {
        pElemProps->Release(); 
        pElemProps = NULL;
    }
    if ( pElem != NULL )
    {
        pElem->Release();
        pElem = NULL;
    }
    if ( pElemColl != NULL )
    {
        pElemColl->Release(); 
        pElemColl = NULL;
    }
    if ( pParentElem != NULL )
    {
        pParentElem->Release(); 
        pParentElem = NULL;
    }
    if ( pMgr != NULL )
    {
        pMgr->Release(); 
        pMgr = NULL;
    }

    SysFreeString( bstrConfigCommitPath );
    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

IAppHostElementCollection (Interfaz)