Udostępnij za pośrednictwem


IDiaPropertyStorage

Umożliwia trwałe właściwości DIA zestaw właściwości do odczytu.

IDiaPropertyStorage : IUnknown

Metody w kolejności Vtable

W poniższej tabeli przedstawiono metody IDiaPropertyStorage.

Metoda

Opis

IDiaPropertyStorage::Enum

Pobiera wskaźnik do moduł wyliczający dla właściwości w ramach tego zestawu.

IDiaPropertyStorage::ReadBOOL

Odczytuje BOOL wartości w zestawie właściwości.

IDiaPropertyStorage::ReadBSTR

Odczytuje BSTR wartości w zestawie właściwości.

IDiaPropertyStorage::ReadDWORD

Odczytuje DWORD wartości w zestawie właściwości.

IDiaPropertyStorage::ReadLONG

Odczytuje LONG wartości w zestawie właściwości.

IDiaPropertyStorage::ReadMultiple

Odczytuje wartości właściwości w zestawie właściwości.

IDiaPropertyStorage::ReadPropertyNames

Pobiera ciąg nazwy odpowiadające podane identyfikatory właściwości.

IDiaPropertyStorage::ReadULONGLONG

Odczytuje ULONGLONG wartości w zestawie właściwości.

Uwagi

Każda właściwość w obrębie zestawu właściwości jest identyfikowany przez właściwość identyfikator (ID), 4 bajtowy ULONG wartości unikatowe dla tego zestawu.Właściwości dostępne za pośrednictwem IDiaPropertyStorage interfejsu odpowiadają właściwości dostępne w interfejsie nadrzędnej.Na przykład właściwości IDiaSymbol interfejsu jest możliwy przez nazwę poprzez IDiaPropertyStorage interfejsu (należy jednak zauważyć, że nawet jeśli właściwość może być dostępny, nie oznacza właściwość jest prawidłowa dla konkretnej IDiaSymbol obiektu).

Uwagi do wywoływania

Ten interfejs uzyskać, wywołując QueryInterface metody na innego interfejsu.Następujące interfejsy mogą być wysyłane kwerendy do IDiaPropertyStorage interfejsu:

Przykład

W przykładzie pokazano funkcję, która wyświetla wszystkie właściwości udostępniane przez IDiaPropertyStorage obiektu.Zobacz IDiaEnumInjectedSources interfejsu, na przykład sposób, w jaki IDiaPropertyStorage interfejsu są uzyskiwane z IDiaInjectedSource interfejsu.

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();
    }
}

Wymagania

Nagłówek: Dia2.h

Biblioteki: diaguids.lib

Biblioteka DLL: msdia80.dll

Zobacz też

Informacje

IDiaSession::getEnumTables

IDiaSectionContrib

IDiaSegment

IDiaInjectedSource

IDiaFrameData

IDiaSymbol

IDiaSourceFile

IDiaLineNumber

IDiaEnumInjectedSources

Inne zasoby

Interfejsy (dostęp do interfejsu SDK debugowanie)