Поделиться через


IDiaPropertyStorage

Позволяет считывать постоянные свойства набора свойств DIA.

IDiaPropertyStorage : IUnknown

Методы в том порядке Vtable

В следующей таблице показаны методы IDiaPropertyStorage.

Метод

Описание

IDiaPropertyStorage::Enum

Получает указатель на перечислитель для свойств, входящих в этот набор.

IDiaPropertyStorage::ReadBOOL

Считывает BOOL значения в наборе свойств.

IDiaPropertyStorage::ReadBSTR

Считывает BSTR значения в наборе свойств.

IDiaPropertyStorage::ReadDWORD

Считывает DWORD значения в наборе свойств.

IDiaPropertyStorage::ReadLONG

Считывает LONG значения в наборе свойств.

IDiaPropertyStorage::ReadMultiple

Считывает значения свойств в наборе свойств.

IDiaPropertyStorage::ReadPropertyNames

Имена Возвращает соответствующие строки для заданного идентификатора свойства.

IDiaPropertyStorage::ReadULONGLONG

Считывает ULONGLONG значения в наборе свойств.

Заметки

Каждое свойство в наборе свойств определяется по идентификатору (id), 4 байт ULONG значение уникально в этот набор. Свойства, предоставляемые через IDiaPropertyStorage интерфейс соответствует свойствам, доступным в родительском интерфейсе. Например, свойства IDiaSymbol интерфейс можно получить доступ по имени через IDiaPropertyStorage интерфейс (однако следует отметить, что даже если свойство может быть доступно, она не допустима в частности - свойство IDiaSymbol объект).

Замечания для вызывающих объектов

Для получения этого интерфейса нужно вызвать метод QueryInterface метод другого интерфейса. Следующие интерфейсы могут запросить IDiaPropertyStorage интерфейс:

Пример

В этом примере показана функция, которая показывает все свойства, предоставляемые IDiaPropertyStorage объект. См. IDiaEnumInjectedSources интерфейс пример IDiaPropertyStorage интерфейс получен из 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();
    }
}

Требования

Заголовок: Dia2.h

Библиотеки: diaguids.lib

Библиотеки DLL: msdia80.dll

См. также

Ссылки

IDiaSession::getEnumTables

IDiaSectionContrib

IDiaSegment

IDiaInjectedSource

IDiaFrameData

IDiaSymbol

IDiaSourceFile

IDiaLineNumber

IDiaEnumInjectedSources

Другие ресурсы

Интерфейсы (SDK для доступа к интерфейсу отладки)