共用方式為


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)、該集合唯一的四位元組 ULONG 值來識別。 透過 IDiaPropertyStorage 介面公開的屬性會對應至父介面中可用的屬性。 例如,IDiaSymbol 介面的屬性可以透過 IDiaPropertyStorage 介面來存取 (但請注意,即使屬性可以存取,它並不表示屬性對特定 IDiaSymbol 物件有效)。

呼叫端注意事項

在另一個介面上呼叫 QueryInterface 方法,以取得這個介面。 您可以針對 IDiaPropertyStorage 介面查詢下列介面:

範例

此範例顯示顯示 IDiaPropertyStorage 物件所公開之所有屬性的函式。 如需如何從 IDiaInjectedSource 介面取得 IDiaPropertyStorage 介面的範例,請參閱 IDiaEnumInjectedSources 介面。

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

另請參閱