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 オートメーションプロパティは、Not a Number (NaN) 値をサポートします。 NaN 値を返す場合、浮動小数点例外が有効になっている場合に例外が発生しないように、プロバイダーは quiet (非シグナル) 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 を含む) |