UiaDisconnectProvider 関数 (uiautomationcoreapi.h)
特定のプロバイダーが Microsoft UI オートメーション オブジェクトに保持しているすべての参照を解放します。
構文
HRESULT UiaDisconnectProvider(
[in] IRawElementProviderSimple *pProvider
);
パラメーター
[in] pProvider
種類: IRawElementProviderSimple*
切断するプロバイダー。
戻り値
型: HRESULT
この関数が成功すると、 S_OKが返されます。 そうでない場合は、HRESULT エラー コードを返します。
注釈
破棄された UI 要素に関連付けられているUI オートメーションリソースをクリーンするには、プロバイダーがこの関数を呼び出す必要があります。 UI 要素に関連付けられている DLL は、関数が戻った後に安全にアンロードできます。
この関数が戻った後、切断されたプロバイダーに関連付けられているすべてのクライアント要求は 、UIA_E_ELEMENTNOTAVAILABLE エラー コードを受け取ります。
SendMessage 関数の呼び出しに応答して、この関数を呼び出すことはできません。 アプリケーションは SendMessage の呼び出しに応答して送信コンポーネント オブジェクト モデル (COM) 呼び出しを行うことはできません。通常、プロバイダーの解放は送信 COM 呼び出しです。 関数が SendMessage 呼び出しに応答して呼び出された場合、UiaDisconnectProvider 関数はRPC_E_CANTCALLOUT_ININPUTSYNCCALLを返します。 InSendMessageEx 関数を使用して、SendMessage 呼び出しに応答して特定のメッセージが処理されているかどうかを判断できます。
UiaDisconnectProvider を呼び出すアプリケーションは、切断しようとしているプロバイダーへのポインターを返すことによって、再入WM_GETOBJECTメッセージに応答しないようにする必要があります。 アプリケーションがプロバイダーの切断を試みたが、切断試行中に同じプロバイダーで UiaReturnRawElementProvider 関数を呼び出す場合、プロバイダーが完全に切断されていない可能性があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8 [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2012 [デスクトップ アプリ |UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | uiautomationcoreapi.h |
Library | Uiautomationcore.lib |
[DLL] | Uiautomationcore.dll |