Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Позволяет считывать постоянные свойства набора свойств DIA.
IDiaPropertyStorage : IUnknown
В следующей таблице показаны методы IDiaPropertyStorage
.
Метод | Description |
---|---|
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
объектом. Пример получения интерфейса IDiaInjectedSources см. в интерфейсе 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