IDiaPropertyStorage
DIA 속성 집합의 영구 속성을 읽을 수 있습니다.
구문
IDiaPropertyStorage : IUnknown
Vtable 순서의 메서드
다음 표에서는 IDiaPropertyStorage
메서드를 보여 줍니다.
메서드 | 설명 |
---|---|
IDiaPropertyStorage::Enum | 이 집합 내의 속성의 열거자에 대한 포인터를 가져옵니다. |
IDiaPropertyStorage::ReadBOOL | 속성 집합에서 BOOL 값을 읽습니다. |
IDiaPropertyStorage::ReadBSTR | 속성 집합에서 BSTR 값을 읽습니다. |
IDiaPropertyStorage::ReadDWORD | 속성 집합에서 DWORD 값을 읽습니다. |
IDiaPropertyStorage::ReadLONG | 속성 집합에서 LONG 값을 읽습니다. |
IDiaPropertyStorage::ReadMultiple | 속성 집합의 속성 값을 읽습니다. |
IDiaPropertyStorage::ReadPropertyNames | 지정된 속성 식별자에 대한 해당 문자열 이름을 가져옵니다. |
IDiaPropertyStorage::ReadULONGLONG | 속성 집합에서 ULONGLONG 값을 읽습니다. |
설명
속성 집합 내의 각 속성은 해당 집합에 고유한 4의 바이트 ULONG
값인 속성 식별자(ID)로 식별됩니다. IDiaPropertyStorage
인터페이스를 통해 노출되는 속성은 부모 인터페이스에서 사용할 수 있는 속성에 해당합니다. 예를 들어 IDiaSymbol 인터페이스의 속성은 IDiaPropertyStorage
인터페이스를 통해 이름으로 액세스할 수 있습니다. 그러나 속성에 액세스할 수 있더라도 속성이 특정 IDiaSymbol
개체에 유효하다는 의미는 아닙니다.
호출자 참고 사항
다른 인터페이스에서 QueryInterface
메서드를 호출하여 이 인터페이스를 얻습니다. IDiaPropertyStorage
인터페이스에 대해 다음 인터페이스를 쿼리할 수 있습니다.
예시
이 예제에서는 IDiaPropertyStorage
개체에 의해 노출되는 모든 속성을 표시하는 함수를 보여 줍니다. IDiaInjectedSource 인터페이스에서 IDiaPropertyStorage
인터페이스를 가져오는 방법의 예는 IDiaEnumInjectedSources 인터페이스를 참조하세요.
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
참고 항목
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기