IDiaPropertyStorage
Ermöglicht Ihnen das Lesen der persistenten Eigenschaften eines DIA-Eigenschaftensatzes.
Syntax
IDiaPropertyStorage : IUnknown
Methoden in Vtable-Reihenfolge
In der folgenden Tabelle sind die Methoden von IDiaPropertyStorage
aufgeführt.
Methode | BESCHREIBUNG |
---|---|
IDiaPropertyStorage::Enum | Ruft einen Zeiger auf einen Enumerator für Eigenschaften innerhalb dieses Satzes ab. |
IDiaPropertyStorage::ReadBOOL | Liest BOOL -Werte in einem Eigenschaftensatz. |
IDiaPropertyStorage::ReadBSTR | Liest BSTR -Werte in einem Eigenschaftensatz. |
IDiaPropertyStorage::ReadDWORD | Liest DWORD -Werte in einem Eigenschaftensatz. |
IDiaPropertyStorage::ReadLONG | Liest LONG -Werte in einem Eigenschaftensatz. |
IDiaPropertyStorage::ReadMultiple | Liest Eigenschaftswerte in einem Eigenschaftensatz. |
IDiaPropertyStorage::ReadPropertyNames | Ruft die entsprechenden Zeichenfolgennamen für bestimmte Eigenschaftenbezeichner ab. |
IDiaPropertyStorage::ReadULONGLONG | Liest ULONGLONG -Werte in einem Eigenschaftensatz. |
Bemerkungen
Jede Eigenschaft in einem Eigenschaftensatz wird durch einen Eigenschaftenbezeichner (ID) identifiziert (ein aus vier Bytes bestehender ULONG
-Wert, der für diesen Satz eindeutig ist). Die über die IDiaPropertyStorage
-Schnittstelle verfügbar gemachten Eigenschaften entsprechen den Eigenschaften, die in der übergeordneten Schnittstelle verfügbar sind. Auf die Eigenschaften der IDiaSymbol-Schnittstelle kann beispielsweise anhand des Namens über die IDiaPropertyStorage
-Schnittstelle zugegriffen werden (allerdings ist die Eigenschaft nicht zwangsläufig für ein bestimmtes IDiaSymbol
-Objekt gültig, wenn auf sie zugegriffen werden kann).
Hinweise für Aufrufer
Rufen Sie diese Schnittstelle ab, indem Sie die QueryInterface
-Methode für eine andere Schnittstelle aufrufen. Die folgenden Schnittstellen können für die IDiaPropertyStorage
-Schnittstelle abgefragt werden:
Beispiel
Dieses Beispiel zeigt eine Funktion, die alle vom IDiaPropertyStorage
-Objekt verfügbar gemachten Eigenschaften anzeigt. Ein Beispiel dafür, wie die IDiaPropertyStorage
-Schnittstelle über die IDiaInjectedSource-Schnittstelle abgerufen wird, finden Sie in der Beschreibung der IDiaEnumInjectedSources-Schnittstelle.
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();
}
}
Requirements (Anforderungen)
Header: Dia2.h
Bibliothek: diaguids.lib
DLL: msdia80.dll