建議使用 Visual Studio 2017

IDiaPropertyStorage

 

如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件

可讓您讀取 DIA 屬性集的永續性的內容。

IDiaPropertyStorage : IUnknown  

下表顯示的方法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

介面 (偵錯介面存取 SDK)
IDiaSession::getEnumTables
IDiaSectionContrib
IDiaSegment
IDiaInjectedSource
IDiaFrameData
IDiaSymbol
IDiaSourceFile
IDiaLineNumber
IDiaEnumInjectedSources

顯示: