Partilhar via


IDiaPropertyStorage

Permite que você leia as propriedades persistentes de um conjunto de propriedades do DIA.

IDiaPropertyStorage : IUnknown

Métodos na ordem de Vtable

A tabela a seguir mostra os métodos de IDiaPropertyStorage.

Método

Descrição

IDiaPropertyStorage::Enum

Obtém um ponteiro para um enumerador para propriedades dentro desse conjunto.

IDiaPropertyStorage::ReadBOOL

Lê BOOL valores em um conjunto de propriedades.

IDiaPropertyStorage::ReadBSTR

Lê BSTR valores em um conjunto de propriedades.

IDiaPropertyStorage::ReadDWORD

Lê DWORD valores em um conjunto de propriedades.

IDiaPropertyStorage::ReadLONG

Lê LONG valores em um conjunto de propriedades.

IDiaPropertyStorage::ReadMultiple

Lê os valores de propriedade em um conjunto de propriedades.

IDiaPropertyStorage::ReadPropertyNames

Obtém correspondente a seqüência de nomes para dada identificadores de propriedade.

IDiaPropertyStorage::ReadULONGLONG

Lê ULONGLONG valores em um conjunto de propriedades.

Comentários

Cada propriedade dentro de um conjunto de propriedades é identificada por um identificador de propriedade (ID), quatro bytes ULONG valor exclusivo para esse conjunto. As propriedades expostas por meio do IDiaPropertyStorage interface correspondem às propriedades disponíveis na interface do pai. Por exemplo, as propriedades do IDiaSymbol interface pode ser acessado por nome através do IDiaPropertyStorage interface (Entretanto, observe que mesmo que a propriedade pode estar acessível, isso significa que a propriedade é válida para um determinado IDiaSymbol objeto).

Observações para chamadores

Obter essa interface chamando o QueryInterface método na interface do outro. As seguintes interfaces podem ser consultadas para o IDiaPropertyStorage interface:

Exemplo

Este exemplo mostra uma função que exibe todas as propriedades expostas pelo IDiaPropertyStorage objeto. Consulte o IDiaEnumInjectedSources interface para obter um exemplo de como o IDiaPropertyStorage interface é obtida a partir do IDiaInjectedSource interface.

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

Requisitos

Cabeçalho: Dia2.h

Biblioteca: diaguids.lib

DLL: msdia80.dll

Consulte também

Referência

IDiaSession::getEnumTables

IDiaSectionContrib

IDiaSegment

IDiaInjectedSource

IDiaFrameData

IDiaSymbol

IDiaSourceFile

IDiaLineNumber

IDiaEnumInjectedSources

Outros recursos

Interfaces (SDK de Acesso à Interface de Depuração)