IDiaPropertyStorage
Permite que você leia as propriedades persistentes de um conjunto de propriedades DIA.
Syntax
IDiaPropertyStorage : IUnknown
Métodos na ordem VTable
A tabela a seguir mostra os métodos de IDiaPropertyStorage
.
Método | Descrição |
---|---|
IDiaPropertyStorage::Enum | Obtém um ponteiro para um enumerador para propriedades dentro desse conjunto. |
IDiaPropertyStorage::ReadBOOL | Lê valores BOOL em um conjunto de propriedades. |
IDiaPropertyStorage::ReadBSTR | Lê valores BSTR em um conjunto de propriedades. |
IDiaPropertyStorage::ReadDWORD | Lê valores DWORD em um conjunto de propriedades. |
IDiaPropertyStorage::ReadLONG | Lê valores LONG em um conjunto de propriedades. |
IDiaPropertyStorage::ReadMultiple | Lê valores da propriedade em um conjunto de propriedades. |
IDiaPropertyStorage::ReadPropertyNames | Obtém nomes de cadeia de caracteres correspondentes para determinados identificadores da propriedade. |
IDiaPropertyStorage::ReadULONGLONG | Lê valores ULONGLONG em um conjunto de propriedades. |
Comentários
Cada propriedade dentro de um conjunto de propriedades é identificada por um ID (identificador) de propriedade, um valor de quatro bytes ULONG
exclusivo para esse conjunto. As propriedades expostas por meio da interface IDiaPropertyStorage
correspondem às propriedades disponíveis na interface pai. Por exemplo, as propriedades da interface IDiaSymbol podem ser acessadas pelo nome por meio da interface IDiaPropertyStorage
(observe, no entanto, que embora a propriedade possa ser acessível, isso não significa que a propriedade seja válida para um objeto IDiaSymbol
específico).
Observações para chamadores
Obtenha essa interface chamando o método QueryInterface
em outra interface. As seguintes interfaces podem ser consultadas para a interface IDiaPropertyStorage
:
Exemplo
Este exemplo mostra uma função que exibe todas as propriedades expostas pelo objeto IDiaPropertyStorage
. Consulte a interface IDiaEnumInjectedSources para obter um exemplo de como a interface IDiaPropertyStorage
é obtida da interface 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();
}
}
Requisitos
Cabeçalho: Dia2.h
Biblioteca: diaguids.lib
DLL: msdia80.dll