IDiaPropertyStorage
可讓您讀取 DIA 屬性集的永續性的內容。
IDiaPropertyStorage : IUnknown
方法 Vtable 順序
下表顯示的方法IDiaPropertyStorage。
方法 |
描述 |
---|---|
取得列舉值的指標,此集合中的屬性。 |
|
讀取BOOL屬性集合中的值。 |
|
讀取BSTR屬性集合中的值。 |
|
讀取DWORD屬性集合中的值。 |
|
讀取LONG屬性集合中的值。 |
|
讀取屬性集合中的屬性值。 |
|
取得對應的字串名稱指定的屬性識別項。 |
|
讀取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