IDiaPropertyStorage

允许您读取设置的 DIA 属性的持久性的属性。

IDiaPropertyStorage : IUnknown

方法按 Vtable 顺序

下表显示 IDiaPropertyStorage方法。

方法

说明

IDiaPropertyStorage::Enum

对象的属性的枚举器中设置。

IDiaPropertyStorage::ReadBOOL

阅读设置的属性的 BOOL 值。

IDiaPropertyStorage::ReadBSTR

阅读设置的属性的 BSTR 值。

IDiaPropertyStorage::ReadDWORD

阅读设置的属性的 DWORD 值。

IDiaPropertyStorage::ReadLONG

阅读设置的属性的 LONG 值。

IDiaPropertyStorage::ReadMultiple

阅读属性设置的属性值。

IDiaPropertyStorage::ReadPropertyNames

gets 对应的字符串名称特定属性标识符。

IDiaPropertyStorage::ReadULONGLONG

阅读设置的属性的 ULONGLONG 值。

备注

在设置的属性中的每个属性都由属性标识符 (ID),一个四个字节的 ULONG 值标识特有该设置。通过 IDiaPropertyStorage 接口公开的属性对应于可用的属性在父接口。例如, IDiaSymbol 接口的属性可以通过 IDiaPropertyStorage 接口按名称访问 (请注意,但是,在中,即使属性可以访问的,但它并不意味着属性为某个特定 IDiaSymbol 对象是有效的)。

调用方的说明

通过调用另一个接口的 QueryInterface 方法获取此接口。下列接口可用于 IDiaPropertyStorage 接口中查询:

示例

此示例演示 IDiaPropertyStorage 对象公开的所有属性的函数。有关示例的 IDiaPropertyStorage 接口如何参见 IDiaEnumInjectedSources 接口从 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)