Partilhar via


IDiaPropertyStorage

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

Syntax

IDiaPropertyStorage : IUnknown

Métodos na ordem 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ê valores BOOL em um conjunto de propriedades.
IDiaPropertyStorage::ReadBSTR Lê valores BSTR em um conjunto de propriedades.
IDiaPropertyStorage::ReadDWORD Lê valores DWORD em um conjunto de propriedades.
IDiaPropertyStorage::ReadLONG Lê valores LONG em um conjunto de propriedades.
IDiaPropertyStorage::ReadMultiple Lê valores da propriedade em um conjunto de propriedades.
IDiaPropertyStorage::ReadPropertyNames Obtém nomes de cadeia de caracteres correspondentes para determinados identificadores da propriedade.
IDiaPropertyStorage::ReadULONGLONG Lê valores ULONGLONG em um conjunto de propriedades.

Comentários

Cada propriedade dentro de um conjunto de propriedades é identificada por um ID (identificador) de propriedade, um valor de quatro bytes ULONG exclusivo para esse conjunto. As propriedades expostas por meio da interface IDiaPropertyStorage correspondem às propriedades disponíveis na interface pai. Por exemplo, as propriedades da interface IDiaSymbol podem ser acessadas pelo nome por meio da interface IDiaPropertyStorage (observe, no entanto, que embora a propriedade possa ser acessível, isso não significa que a propriedade seja válida para um objeto IDiaSymbol específico).

Observações para chamadores

Obtenha essa interface chamando o método QueryInterface em outra interface. As seguintes interfaces podem ser consultadas para a interface IDiaPropertyStorage:

Exemplo

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

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

Confira também