Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Отключает все подключения к удаленному процессу, поддерживаемые от имени всех указателей интерфейса, указывающих на указанный объект.
Только процесс, который фактически управляет объектом, должен вызывать CoDisconnectObject.
Синтаксис
HRESULT CoDisconnectObject(
[in] LPUNKNOWN pUnk,
[in] DWORD dwReserved
);
Параметры
[in] pUnk
Указатель на любой интерфейс, производный от IUnknown для объекта, который необходимо отключить.
[in] dwReserved
Этот параметр зарезервирован и должен иметь значение 0.
Возвращаемое значение
Эта функция возвращает S_OK, чтобы указать, что все подключения к удаленным процессам были успешно удалены.
Комментарии
Функция CoDisconnectObject позволяет серверу правильно отключить все внешние клиенты от объекта, указанного pUnk.
Он выполняет следующие задачи:
- Проверяет, реализует ли отключенный объект интерфейс IMarshal . Если да, он получает указатель на этот интерфейс; В противном случае он получает указатель на реализацию IMarshal стандартного маршалера (т. е. COM).
- Используя полученный указатель интерфейса IMarshal , функция вызывает IMarshal::D isconnectObject для отключения всех клиентов вне процесса.
Аналогичным образом контейнер OLE, поддерживающий внешние ссылки на внедренные объекты, может вызывать CoDisconnectObject для уничтожения этих связей. Опять же, этот вызов обычно выполняется в ответ на закрытие приложения пользователем. Контейнер должен сначала вызвать IOleObject::Close для всех своих объектов OLE, каждый из которых должен отправлять уведомления IAdviseSink::OnClose различным клиентам. Затем контейнер может вызвать CoDisconnectObject , чтобы закрыть все существующие подключения.
CoDisconnectObject не обязательно немедленно отключает внепроцессные клиенты. Если какие-либо маршалированные вызовы находятся в состоянии ожидания в объекте сервера, CoDisconnectObject отключает объект только после возврата этих вызовов. В то же время CoDisconnectObject устанавливает флаг, который приводит к возврату всех новых маршалированных вызовов CO_E_OBJNOTCONNECTED.
Требования
| Требование | Значение |
|---|---|
| Минимальная версия клиента | Windows 2000 Профессиональная [классические приложения | Приложения UWP] |
| Минимальная версия сервера | Windows 2000 Server [классические приложения | Приложения UWP] |
| Целевая платформа | Windows |
| Header | combaseapi.h (включая Objbase.h) |
| Библиотека | Ole32.lib |
| DLL | Ole32.dll |