IDiaPropertyStorage

Umożliwia odczytywanie trwałych właściwości zestawu właściwości DIA.

Składnia

IDiaPropertyStorage : IUnknown

Metody w tabeli Vtable Order

W poniższej tabeli przedstawiono metody .IDiaPropertyStorage

Metoda opis
IDiaPropertyStorage::Enum Pobiera wskaźnik do modułu wyliczającego dla właściwości w tym zestawie.
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 odpowiednie nazwy ciągów dla podanych identyfikatorów właściwości.
IDiaPropertyStorage::ReadULONGLONG Odczytuje ULONGLONG wartości w zestawie właściwości.

Uwagi

Każda właściwość w zestawie właściwości jest identyfikowana przez identyfikator właściwości (ID), cztero bajtową ULONG wartość unikatową dla tego zestawu. Właściwości uwidocznione za pośrednictwem interfejsu IDiaPropertyStorage odpowiadają właściwościom dostępnym w interfejsie nadrzędnym. Na przykład właściwości interfejsu IDiaSymbol mogą być dostępne za pośrednictwem interfejsu IDiaPropertyStorage (należy jednak pamiętać, że mimo że właściwość może być dostępna, nie oznacza to, że właściwość jest prawidłowa dla określonego IDiaSymbol obiektu).

Uwagi dotyczące wywoływania

Uzyskaj ten interfejs, wywołując metodę QueryInterface w innym interfejsie. Dla interfejsu IDiaPropertyStorage można wykonywać zapytania dotyczące następujących interfejsów:

Przykład

W tym przykładzie przedstawiono funkcję, która wyświetla wszystkie właściwości uwidocznione przez IDiaPropertyStorage obiekt. Zobacz interfejs IDiaEnumInjectedSources, aby zapoznać się z przykładem IDiaPropertyStorage sposobu uzyskiwania interfejsu z interfejsu 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();
    }
}

Wymagania

Nagłówek: Dia2.h

Biblioteka: diaguids.lib

BIBLIOTEKA DLL: msdia80.dll

Zobacz też