IDiaPropertyStorage

Consente di leggere le proprietà permanente di un set di proprietà di diametro.

IDiaPropertyStorage : IUnknown

Metodi nell'ordine di Vtable

Nella tabella seguente sono elencati i metodi di IDiaPropertyStorage.

Metodo

Descrizione

IDiaPropertyStorage::Enum

Ottiene un puntatore a un enumeratore per le proprietà all'interno di questo set.

IDiaPropertyStorage::ReadBOOL

legge BOOL valori in una raccolta di proprietà.

IDiaPropertyStorage::ReadBSTR

legge BSTR valori in una raccolta di proprietà.

IDiaPropertyStorage::ReadDWORD

legge DWORD valori in una raccolta di proprietà.

IDiaPropertyStorage::ReadLONG

legge LONG valori in una raccolta di proprietà.

IDiaPropertyStorage::ReadMultiple

Legge i valori delle proprietà in un insieme di proprietà.

IDiaPropertyStorage::ReadPropertyNames

Ottiene i nomi delle stringhe corrispondenti per gli identificatori di proprietà specificati.

IDiaPropertyStorage::ReadULONGLONG

legge ULONGLONG valori in una raccolta di proprietà.

Note

Ogni proprietà all'interno di una proprietà è contrassegnata da un identificatore di (ID) proprietà, a quattro byte ULONG il valore univoco a quello riportato di seguito.Le proprietà esposte tramite IDiaPropertyStorage l'interfaccia corrisponde alle proprietà disponibili nell'interfaccia padre.Ad esempio, le proprietà di IDiaSymbol l'interfaccia è possibile accedere per nome a IDiaPropertyStorage interfaccia (si noti, tuttavia, che anche se la proprietà è possibile accedere a, non significa la proprietà è valida per un determinato IDiaSymbol oggetto).

Note per i chiamanti

Leggi questa interfaccia chiamando QueryInterface metodo in un'altra interfaccia.Le interfacce seguenti è possibile eseguire una query per IDiaPropertyStorage interfaccia:

Esempio

In questo esempio viene illustrata una funzione che visualizza tutte le proprietà esposte da IDiaPropertyStorage oggetto.vedere IDiaEnumInjectedSources interfaccia per un esempio di come IDiaPropertyStorage l'interfaccia viene ottenuta da IDiaInjectedSource interfaccia.

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

Requisiti

intestazione: Dia2.h

raccolta: diaguids.lib

DLL: msdia80.dll

Vedere anche

Riferimenti

IDiaSession::getEnumTables

IDiaSectionContrib

IDiaSegment

IDiaInjectedSource

IDiaFrameData

IDiaSymbol

IDiaSourceFile

IDiaLineNumber

IDiaEnumInjectedSources

Altre risorse

Interfacce (Debug Interface Access SDK)