IDiaPropertyStorage
Permite que você leia as propriedades persistentes de um conjunto de propriedades do DIA.
IDiaPropertyStorage : IUnknown
Métodos na ordem de Vtable
A tabela a seguir mostra os métodos de IDiaPropertyStorage.
Método |
Descrição |
---|---|
Obtém um ponteiro para um enumerador para propriedades dentro desse conjunto. |
|
Lê BOOL valores em um conjunto de propriedades. |
|
Lê BSTR valores em um conjunto de propriedades. |
|
Lê DWORD valores em um conjunto de propriedades. |
|
Lê LONG valores em um conjunto de propriedades. |
|
Lê os valores de propriedade em um conjunto de propriedades. |
|
Obtém correspondente a seqüência de nomes para dada identificadores de propriedade. |
|
Lê ULONGLONG valores em um conjunto de propriedades. |
Comentários
Cada propriedade dentro de um conjunto de propriedades é identificada por um identificador de propriedade (ID), quatro bytes ULONG valor exclusivo para esse conjunto. As propriedades expostas por meio do IDiaPropertyStorage interface correspondem às propriedades disponíveis na interface do pai. Por exemplo, as propriedades do IDiaSymbol interface pode ser acessado por nome através do IDiaPropertyStorage interface (Entretanto, observe que mesmo que a propriedade pode estar acessível, isso significa que a propriedade é válida para um determinado IDiaSymbol objeto).
Observações para chamadores
Obter essa interface chamando o QueryInterface método na interface do outro. As seguintes interfaces podem ser consultadas para o IDiaPropertyStorage interface:
Exemplo
Este exemplo mostra uma função que exibe todas as propriedades expostas pelo IDiaPropertyStorage objeto. Consulte o IDiaEnumInjectedSources interface para obter um exemplo de como o IDiaPropertyStorage interface é obtida a partir do IDiaInjectedSource interface.
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