IDiaPropertyStorage

Permite leer las propiedades persistentes de un conjunto de propiedades de DIA.

Syntax

IDiaPropertyStorage : IUnknown

Métodos en orden de Vtable

En la tabla siguiente se muestran los métodos de IDiaPropertyStorage.

Método Descripción
IDiaPropertyStorage::Enum Obtiene un ountero a un enumerador para las propiedades de este conjunto.
IDiaPropertyStorage::ReadBOOL Lee valores BOOL de un conjunto de propiedades.
IDiaPropertyStorage::ReadBSTR Lee valores BSTR de un conjunto de propiedades.
IDiaPropertyStorage::ReadDWORD Lee valores DWORD de un conjunto de propiedades.
IDiaPropertyStorage::ReadLONG Lee valores LONG de un conjunto de propiedades.
IDiaPropertyStorage::ReadMultiple Lee valores de propiedad de un conjunto de propiedades.
IDiaPropertyStorage::ReadPropertyNames Obtiene los nombres de cadena correspondientes para los identificadores de propiedad especificados.
IDiaPropertyStorage::ReadULONGLONG Lee valores ULONGLONG de un conjunto de propiedades.

Comentarios

Cada propiedad de un conjunto se identifica mediante un identificador de propiedad (ID), un valor ULONG de cuatro bytes único para ese conjunto. Las propiedades que se exponen a través de la interfaz IDiaPropertyStorage corresponden a las propiedades disponibles en la interfaz primaria. Por ejemplo, se puede acceder a las propiedades de la interfaz IDiaSymbol por su nombre a través de la interfaz IDiaPropertyStorage (sin embargo, tenga en cuenta que el mero hecho de poder acceder a la propiedad, no significa que esta sea válida para un objeto IDiaSymbol determinado).

Notas para autores de la llamada

Para obtener esta interfaz es preciso llamar al método QueryInterface en otra interfaz. Se pueden consultar las siguientes interfaces para la interfaz IDiaPropertyStorage:

Ejemplo

En este ejemplo se puede ver una función que muestra todas las propiedades expuestas por el objeto IDiaPropertyStorage. IDiaEnumInjectedSources es un ejemplo de cómo se obtiene la interfaz IDiaPropertyStorage a partir de la interfaz IDiaInjectedSource.

void PrintPropertyStorage(IDiaPropertyStorage* pPropertyStorage)
{
    IEnumSTATPROPSTG* pEnumProps;
    STATPROPSTG       prop;
    DWORD             celt = 1;

    if (pPropertyStorage->Enum(&pEnumProps) == S_OK)
    {
        while (pEnumProps->Next(celt, &prop, &celt) == S_OK)
        {
            PROPSPEC pspec = { PRSPEC_PROPID, prop.propid };
            PROPVARIANT vt = { VT_EMPTY };

            if (pPropertyStorage->ReadMultiple( 1, &pspec, &vt) == S_OK)
            {
                switch( vt.vt ){
                    case VT_BOOL:
                        wprintf( L"%32s:\t %s\n", prop.lpwstrName, vt.bVal ? L"true" : L"false" );
                        break;
                    case VT_I2:
                        wprintf( L"%32s:\t %d\n", prop.lpwstrName, vt.iVal );
                        break;
                    case VT_UI2:
                        wprintf( L"%32s:\t %d\n", prop.lpwstrName, vt.uiVal );
                        break;
                    case VT_I4:
                        wprintf( L"%32s:\t %d\n", prop.lpwstrName, vt.intVal );
                        break;
                    case VT_UI4:
                        wprintf( L"%32s:\t 0x%0x\n", prop.lpwstrName, vt.uintVal );
                        break;
                    case VT_UI8:
                        wprintf( L"%32s:\t 0x%x\n", prop.lpwstrName, vt.uhVal.QuadPart );
                        break;
                    case VT_BSTR:
                        wprintf( L"%32s:\t %s\n", prop.lpwstrName, vt.bstrVal );
                        break;
                    case VT_UNKNOWN:
                        wprintf( L"%32s:\t %p\n", prop.lpwstrName, vt.punkVal );
                        break;
                    case VT_SAFEARRAY:
                        break;
                    default:
                       break;
                }
                VariantClear((VARIANTARG*) &vt);
            }
        }
        pEnumProps->Release();
    }
}

Requisitos

Encabezado: Dia2.h

Biblioteca: diaguids.lib

DLL: msdia80.dll

Vea también