Sdílet prostřednictvím


IDiaPropertyStorage

Umožňuje číst trvalé vlastnosti sady vlastností DIA.

Syntaxe

IDiaPropertyStorage : IUnknown

Metody v pořadí Vtable

Následující tabulka ukazuje metody IDiaPropertyStorage.

metoda Popis
IDiaPropertyStorage::Enum Získá ukazatel na enumerátor pro vlastnosti v rámci této sady.
IDiaPropertyStorage::ReadBOOL BOOL Načte hodnoty v sadě vlastností.
IDiaPropertyStorage::ReadBSTR BSTR Načte hodnoty v sadě vlastností.
IDiaPropertyStorage::ReadDWORD DWORD Načte hodnoty v sadě vlastností.
IDiaPropertyStorage::ReadLONG LONG Načte hodnoty v sadě vlastností.
IDiaPropertyStorage::ReadMultiple Čte hodnoty vlastností v sadě vlastností.
IDiaPropertyStorage::ReadPropertyNames Získá odpovídající názvy řetězců pro dané identifikátory vlastností.
IDiaPropertyStorage::ReadULONGLONG ULONGLONG Načte hodnoty v sadě vlastností.

Poznámky

Každá vlastnost v rámci sady vlastností je identifikována identifikátorem vlastnosti (ID), čtyři bajtovou ULONG hodnotou jedinečnou pro tuto sadu. Vlastnosti vystavené prostřednictvím IDiaPropertyStorage rozhraní odpovídají vlastnostem dostupným v nadřazené rozhraní. Například vlastnosti rozhraní IDiaSymbol lze získat přístup pomocí názvu prostřednictvím IDiaPropertyStorage rozhraní (poznámka však, že i když vlastnost může být přístupná, neznamená to, že vlastnost je platná pro konkrétní IDiaSymbol objekt).

Poznámky pro volající

Získejte toto rozhraní voláním QueryInterface metody v jiném rozhraní. Na rozhraní se dají dotazovat IDiaPropertyStorage následující rozhraní:

Příklad

Tento příklad ukazuje funkci, která zobrazí všechny vlastnosti vystavené objektem IDiaPropertyStorage . Podívejte se na IDiaEnumInjectedSources rozhraní příklad, jak IDiaPropertyStorage je rozhraní získáno z IDiaInjektSource rozhraní.

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

Požadavky

Hlavička: Dia2.h

Knihovna: diaguids.lib

DLL: msdia80.dll

Viz také