Partager via


IDiaPropertyStorage

Permet de lire les propriétés persistantes dans un jeu de propriétés de diamètre.

IDiaPropertyStorage : IUnknown

méthodes en commande de Vtable

Le tableau suivant répertorie les méthodes d' IDiaPropertyStorage.

Méthode

Description

IDiaPropertyStorage::Enum

Obtient un pointeur vers un énumérateur pour les propriétés de cet ensemble.

IDiaPropertyStorage::ReadBOOL

Lit les valeurs d' BOOL dans un jeu de propriétés.

IDiaPropertyStorage::ReadBSTR

Lit les valeurs d' BSTR dans un jeu de propriétés.

IDiaPropertyStorage::ReadDWORD

Lit les valeurs d' DWORD dans un jeu de propriétés.

IDiaPropertyStorage::ReadLONG

Lit les valeurs d' LONG dans un jeu de propriétés.

IDiaPropertyStorage::ReadMultiple

Lit les valeurs de propriété dans un jeu de propriétés.

IDiaPropertyStorage::ReadPropertyNames

Obtient les noms de chaîne correspondants pour les identificateurs donnés de propriété.

IDiaPropertyStorage::ReadULONGLONG

Lit les valeurs d' ULONGLONG dans un jeu de propriétés.

Notes

chaque propriété dans un jeu de propriétés est identifiée par un identificateur de propriété (ID), une valeur de quatre octets d' ULONG unique à celle définit. Les propriétés exposées via l'interface d' IDiaPropertyStorage correspondent aux propriétés disponibles dans l'interface parente. Par exemple, les propriétés de l'interface d' IDiaSymbol sont accessibles par nom via l'interface d' IDiaPropertyStorage (notez, cependant, qui bien que la propriété puisse être accessible, il ne signifie pas la propriété est valide pour un objet particulier d' IDiaSymbol ).

Remarques pour les appelants

obtenez cette interface en appelant la méthode d' QueryInterface sur une autre interface. les interfaces suivantes peuvent être interrogées pour l'interface d' IDiaPropertyStorage :

Exemple

Cet exemple illustre une fonction qui affiche toutes les propriétés exposées par l'objet d' IDiaPropertyStorage . Consultez l'interface d' IDiaEnumInjectedSources pour obtenir un exemple de la façon dont l'interface d' IDiaPropertyStorage est fournie par l'interface d' 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();
    }
}

Configuration requise

en-tête : Dia2.h

bibliothèque : diaguids.lib

DLL : msdia80.dll

Voir aussi

Référence

IDiaSession::getEnumTables

IDiaSectionContrib

IDiaSegment

IDiaInjectedSource

IDiaFrameData

IDiaSymbol

IDiaSourceFile

IDiaLineNumber

IDiaEnumInjectedSources

Autres ressources

Interfaces (Kit de développement logiciel de Debug Interface Access)