Freigeben über


IDiaPropertyStorage

Ermöglicht es Ihnen, die beibehaltenen Eigenschaften eines Durchmesser-Eigenschaftensatzes zu lesen.

IDiaPropertyStorage : IUnknown

Methoden in die Vtable-Reihenfolge

In der folgenden Tabelle werden die Methoden von IDiaPropertyStoragean.

Methode

Beschreibung

IDiaPropertyStorage::Enum

Ruft einen Zeiger auf einen Enumerator für Eigenschaften innerhalb dieses Satzes.

IDiaPropertyStorage::ReadBOOL

Liest BOOL-Werte in einem Eigenschaft.

IDiaPropertyStorage::ReadBSTR

Liest BSTR-Werte in einem Eigenschaft.

IDiaPropertyStorage::ReadDWORD

Liest DWORD-Werte in einem Eigenschaft.

IDiaPropertyStorage::ReadLONG

Liest LONG-Werte in einem Eigenschaft.

IDiaPropertyStorage::ReadMultiple

Liest Eigenschaftswerte in einem Eigenschaft.

IDiaPropertyStorage::ReadPropertyNames

Ruft entsprechende Zeichenfolgennamens für den angegebenen Eigenschaftenbezeichner ab.

IDiaPropertyStorage::ReadULONGLONG

Liest ULONGLONG-Werte in einem Eigenschaft.

Hinweise

Jede Eigenschaft innerhalb des Eigenschaftensatzes wird durch einen Eigenschaftenbezeichner (ID), ein Wert BYTEs Vier ULONG identifiziert, der zum eindeutig ist, festlegen.Die Eigenschaften, die von der IDiaPropertyStorage-Schnittstelle verfügbar gemacht werden, entsprechen den Eigenschaften, die in der übergeordneten Schnittstelle zur Verfügung stehen.Zum Beispiel können die Eigenschaften der IDiaSymbol-Schnittstelle durch die IDiaPropertyStorage-Schnittstelle über den Namen zugegriffen werden. (Beachten Sie jedoch, dass, obwohl die Eigenschaft zugegriffen werden kann, möglicherweise nicht die Eigenschaft impliziert, ist für ein bestimmtes IDiaSymbol-Objekt gültig.)

Hinweise für Aufrufer

Rufen Sie diese Schnittstelle, indem sie die QueryInterface-Methode auf einer anderen Schnittstelle aufruft.Die folgenden Schnittstellen können für die IDiaPropertyStorage-Schnittstelle abgefragt werden:

Beispiel

In diesem Beispiel wird eine Funktion veranschaulicht, die alle Eigenschaften anzeigt, die vom IDiaPropertyStorage-Objekt verfügbar gemacht werden.Zeigen Sie die IDiaEnumInjectedSources-Schnittstelle als ein Beispiel dafür, wie die IDiaPropertyStorage-Schnittstelle aus der IDiaInjectedSource-Schnittstelle ermittelt wird.

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

Anforderungen

Header: Dia2.h

Bibliothek: diaguids.lib

DLLs: msdia80.dll

Siehe auch

Referenz

IDiaSession::getEnumTables

IDiaSectionContrib

IDiaSegment

IDiaInjectedSource

IDiaFrameData

IDiaSymbol

IDiaSourceFile

IDiaLineNumber

IDiaEnumInjectedSources

Weitere Ressourcen

Schnittstellen (Debug Interface Access SDK)