共用方式為


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)