允许您读取设置的 DIA 属性的持久性的属性。
IDiaPropertyStorage : IUnknown
方法按 Vtable 顺序
下表显示 IDiaPropertyStorage方法。
方法 |
说明 |
---|---|
对象的属性的枚举器中设置。 |
|
阅读设置的属性的 BOOL 值。 |
|
阅读设置的属性的 BSTR 值。 |
|
阅读设置的属性的 DWORD 值。 |
|
阅读设置的属性的 LONG 值。 |
|
阅读属性设置的属性值。 |
|
gets 对应的字符串名称特定属性标识符。 |
|
阅读设置的属性的 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