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

Weitere Informationen