UI 자동화 공급자에서 속성을 반환하는 방법
이 항목에는 Microsoft UI 자동화 공급자가 클라이언트 애플리케이션에 UI 요소의 속성을 반환하는 방법을 보여 주는 예제 코드가 포함되어 있습니다.
공급자에서 속성 값을 검색하려면 UI 자동화 공급자의 IRawElementProviderSimple::GetPropertyValue 메서드 구현을 호출하고 검색할 속성의 ID와 VARIANT 구조체에 대한 포인터를 전달합니다. 공급자가 지정된 속성을 지원하는 경우 속성의 데이터 형식과 값을 VARIANT 구조로 복사합니다. 속성이 지원되지 않는 경우 공급자는 VARIANT 구조체의 vt 멤버를 VT_EMPTY 설정합니다.
IFACEMETHODIMP Provider::GetPropertyValue(PROPERTYID propertyId, VARIANT* pRetVal)
{
// The Name property is typically the same as the Caption property of the
// control window, if it has one. Here, the Name is overridden for the
// sake of illustration.
if (propertyId == UIA_NamePropertyId)
{
pRetVal->vt = VT_BSTR;
pRetVal->bstrVal = SysAllocString(L"Custom button");
}
else if (propertyId == UIA_ControlTypePropertyId)
{
pRetVal->vt = VT_I4;
pRetVal->lVal = UIA_ButtonControlTypeId;
}
else if (propertyId == UIA_IsContentElementPropertyId)
{
pRetVal->vt = VT_BOOL;
pRetVal->lVal = TRUE;
}
else if (propertyId == UIA_IsControlElementPropertyId)
{
pRetVal->vt = VT_BOOL;
pRetVal->lVal = TRUE;
}
//
// Return other properties as appropriate for the control type.
//
else
{
pRetVal->vt = VT_EMPTY;
// UI Automation will attempt to get the property from the
// provider for window that hosts the control.
}
return S_OK;
}
관련 항목