Функция UiaDisconnectProvider (uiautomationcoreapi.h)

Освобождает все ссылки, которые конкретный поставщик хранит на объекты Microsoft модель автоматизации пользовательского интерфейса.

Синтаксис

HRESULT UiaDisconnectProvider(
  [in] IRawElementProviderSimple *pProvider
);

Параметры

[in] pProvider

Тип: IRawElementProviderSimple*

Поставщик, который должен быть отключен.

Возвращаемое значение

Тип: HRESULT

Если эта функция завершается успешно, она возвращает S_OK. В противном случае возвращается код ошибки HRESULT .

Комментарии

Поставщик должен вызывать эту функцию для очистки модель автоматизации пользовательского интерфейса ресурсов, связанных с элементом пользовательского интерфейса, который был уничтожен. Библиотеку DLL, связанную с элементом пользовательского интерфейса, можно безопасно выгрузить после возврата функции.

После возврата этой функции все клиентские запросы, связанные с отключенным поставщиком, получают код ошибки UIA_E_ELEMENTNOTAVAILABLE .

Эту функцию нельзя вызвать в ответ на вызов функции SendMessage . Приложение не может выполнять исходящие вызовы модели COM в ответ на вызов SendMessage, а освобождение поставщика обычно является исходящим вызовом COM. Функция UiaDisconnectProvider возвращает RPC_E_CANTCALLOUT_ININPUTSYNCCALL, если функция вызывается в ответ на вызов SendMessage . Функцию InSendMessageEx можно использовать, чтобы определить, обрабатывается ли определенное сообщение в ответ на вызов SendMessage .

Приложение, вызывающее UiaDisconnectProvider , не должно отвечать на сообщение WM_GETOBJECT повторного входа, возвращая указатель на поставщика, который пытается отключить. Если приложение пытается отключить поставщик, но затем вызывает функцию UiaReturnRawElementProvider с тем же поставщиком во время попытки отключения, поставщик может быть отключен не полностью.

Требования

Требование Значение
Минимальная версия клиента Windows 8 [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2012 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header uiautomationcoreapi.h
Библиотека Uiautomationcore.lib
DLL Uiautomationcore.dll

См. также раздел

Функции для поставщиков

UiaDisconnectAllProviders