IRawElementProviderSimple::GetPropertyValue 메서드(uiautomationcore.h)
Microsoft UI 자동화 공급자가 지원하는 속성의 값을 검색합니다.
구문
HRESULT GetPropertyValue(
[in] PROPERTYID propertyId,
[out, retval] VARIANT *pRetVal
);
매개 변수
[in] propertyId
형식: PROPERTYID
속성 식별자입니다. 속성 ID 목록은 속성 식별자를 참조하세요.
[out, retval] pRetVal
형식: VARIANT*
속성 값을 받거나 이 공급자가 속성을 지원하지 않는 경우 VT_EMPTY . 이 매개 변수는 초기화되지 않은 상태로 전달됩니다. 설명 부분을 참조하세요.
반환 값
형식: HRESULT
메서드가 성공하면 S_OK를 반환하고, 성공하지 않으면 HRESULT 오류 코드를 반환합니다.
공급자가 propertyId 속성을 지원하지 않는 경우 공급자는 pRetVal-vt>를 VT_EMPTY 설정하고 S_OK 반환해야 합니다.
설명
공급자가 속성 값을 명시적으로 숨기는 경우(즉, 공급자가 속성을 제공하지 않고 요청을 다른 공급자에게 전달하지 않을 경우) UiaGetReservedNotSupportedValue 함수를 사용하여 가져온 포인터를 반환해야 합니다. 예를 들면 다음과 같습니다.
pRetVal->vt = VT_UNKNOWN;
UiaGetReservedNotSupportedValue(&pRetVal->punkVal);
double 형식의 UI 자동화 속성은 NaN(Not a Number) 값을 지원합니다. NaN 값을 반환할 때 공급자는 부동 소수점 예외가 켜져 있는 경우 예외가 발생하지 않도록 조용한(신호가 아닌) NaN을 반환해야 합니다. 다음 예제에서는 조용한 NaN을 만드는 방법을 보여줍니다.
ULONGLONG ulNaN = 0xFFFFFFFFFFFFFFFF;
*pRetVal = *reinterpret_cast<double*>(&ulNaN);
또는 표준 C++ 라이브러리에서 다음 함수를 사용할 수 있습니다.
numeric_limits<double>::quiet_NaN( )
예제
다음 예제에서는 다양한 속성 값을 반환합니다. UiaIds 구조체에는 속성 식별자가 포함됩니다. 초기화 방법을 보려면 UiaLookupId를 참조하세요.
HRESULT STDMETHODCALLTYPE Provider::GetPropertyValue(PROPERTYID propertyId,
VARIANT* pRetVal)
{
if (propertyId == UiaIds.ControlTypeProperty)
{
pRetVal->vt = VT_I4;
pRetVal->lVal = UiaIds.ButtonControlType;
}
// The Name property normally comes from the Caption property of the
// control window, if it has one. The Name is overridden here for the
// sake of illustration.
else if (propertyId == UiaIds.NameProperty)
{
pRetVal->vt = VT_BSTR;
pRetVal->bstrVal = SysAllocString(L"ColorButton");
}
else
{
pRetVal->vt = VT_EMPTY;
// UI Automation will attempt to get the property from the host
//window provider.
}
return S_OK;
}
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | uiautomationcore.h(UIAutomation.h 포함) |