IDiaPropertyStorage

Dia özellik kümesinin kalıcı özelliklerini okumanızı sağlar.

Sözdizimi

IDiaPropertyStorage : IUnknown

Vtable Sırasına Göre Yöntemler

Aşağıdaki tabloda yönteminin yöntemleri gösterilmektedir IDiaPropertyStorage.

Metot Açıklama
IDiaPropertyStorage::Enum Bu küme içindeki özellikler için bir numaralandırıcıya işaretçi alır.
IDiaPropertyStorage::ReadBOOL BOOL Bir özellik kümesindeki değerleri okur.
IDiaPropertyStorage::ReadBSTR BSTR Bir özellik kümesindeki değerleri okur.
IDiaPropertyStorage::ReadDWORD DWORD Bir özellik kümesindeki değerleri okur.
IDiaPropertyStorage::ReadLONG LONG Bir özellik kümesindeki değerleri okur.
IDiaPropertyStorage::ReadMultiple Özellik kümesindeki özellik değerlerini okur.
IDiaPropertyStorage::ReadPropertyNames Belirli özellik tanımlayıcıları için karşılık gelen dize adlarını alır.
IDiaPropertyStorage::ReadULONGLONG ULONGLONG Bir özellik kümesindeki değerleri okur.

Açıklamalar

Özellik kümesindeki her özellik, bu kümeye özgü dört baytlık ULONG bir değer olan özellik tanımlayıcısı (ID) ile tanımlanır. Arabirim aracılığıyla kullanıma sunulan IDiaPropertyStorage özellikler, üst arabirimde kullanılabilen özelliklere karşılık gelir. Örneğin, IDiaSymbol arabiriminin özelliklerine arabirim aracılığıyla adla IDiaPropertyStorage erişilebilir (ancak, özelliğin erişilebilir olmasına rağmen, özelliğin belirli IDiaSymbol bir nesne için geçerli olduğu anlamına gelmez).

Arayanlar İçin Notlar

Yöntemini başka bir arabirimde QueryInterface çağırarak bu arabirimi alın. Arabirim için IDiaPropertyStorage aşağıdaki arabirimler sorgulanabilir:

Örnek

Bu örnekte, nesne tarafından kullanıma sunulan tüm özellikleri görüntüleyen bir işlev gösterilmektedir IDiaPropertyStorage . Arabirimin IDiaInjectedSource arabiriminden nasıl alındığına IDiaPropertyStorage ilişkin bir örnek için IDiaEnumInjectedSources arabirimine bakın.

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();
    }
}

Gereksinimler

Üst bilgi: Dia2.h

Kitaplık: diaguids.lib

DLL: msdia80.dll

Ayrıca bkz.