Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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