次の方法で共有


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

こちらもご覧ください

プロバイダーの関数

UiaDisconnectAllProviders