IDiaPropertyStorage
Permet de lire les propriétés persistantes d’un jeu de propriétés DIA.
Syntax
IDiaPropertyStorage : IUnknown
Méthodes dans l'ordre Vtable
Le tableau suivant présente les méthodes de IDiaPropertyStorage
.
Méthode | Description |
---|---|
IDiaPropertyStorage::Enum | Obtient un pointeur vers un énumérateur pour les propriétés de ce jeu. |
IDiaPropertyStorage::ReadBOOL | Lit les valeurs BOOL dans un jeu de propriétés. |
IDiaPropertyStorage::ReadBSTR | Lit les valeurs BSTR dans un jeu de propriétés. |
IDiaPropertyStorage::ReadDWORD | Lit les valeurs DWORD dans un jeu de propriétés. |
IDiaPropertyStorage::ReadLONG | Lit les valeurs LONG dans un jeu de propriétés. |
IDiaPropertyStorage::ReadMultiple | Lit les valeurs de propriété dans un jeu de propriétés. |
IDiaPropertyStorage::ReadPropertyNames | Obtient les noms de chaîne correspondant à des identificateurs de propriété donnés. |
IDiaPropertyStorage::ReadULONGLONG | Lit les valeurs ULONGLONG dans un jeu de propriétés. |
Remarques
Chaque propriété d’un jeu de propriétés est identifiée par un identificateur (ID) de propriété, qui est une valeur ULONG
de quatre octets propre à ce jeu. Les propriétés exposées avec l’interface IDiaPropertyStorage
correspondent aux propriétés disponibles dans l’interface parente. Par exemple, les propriétés de l’interface IDiaSymbol sont accessibles par nom avec l’interface IDiaPropertyStorage
(notez toutefois que même si la propriété peut être accessible, cela ne signifie pas que la propriété est valide pour un objet IDiaSymbol
particulier).
Remarques pour les appelants
Obtenez cette interface en appelant la méthode QueryInterface
sur une autre interface. Vous pouvez interroger les interfaces suivantes pour obtenir l’interface IDiaPropertyStorage
:
Exemple
Cet exemple montre une fonction qui affiche toutes les propriétés exposées par l’objet IDiaPropertyStorage
. Consultez l’article sur l’interface IDiaEnumInjectedSources pour voir un exemple d’obtention de l’interface IDiaPropertyStorage
à partir de l’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();
}
}
Configuration requise
En-tête : Dia2.h
Bibliothèque : diaguids.lib
DLL : msdia80.dll