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