Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Уменьшает глобальное число ссылок для каждого процесса.
Синтаксис
ULONG CoReleaseServerProcess();
Возвращаемое значение
Если серверное приложение должно инициировать очистку, функция возвращает значение 0; В противном случае функция возвращает ненулевое значение.
Комментарии
Серверы могут вызывать CoReleaseServerProcess для уменьшения глобального количества ссылок на каждый процесс, увеличенного с помощью вызова CoAddRefServerProcess.
Когда это число достигает нуля, OLE автоматически вызывает CoSuspendClassObjects, что предотвращает новые запросы активации. Это позволяет серверу отменять регистрацию объектов класса из различных потоков, не беспокоясь о том, что может прийти другой запрос на активацию. Новые запросы на активацию приводят к запуску нового экземпляра локального серверного процесса.
Самый простой способ использования этих функций локальным серверным приложением — вызвать CoAddRefServerProcess в конструкторе для каждого объекта экземпляра и в каждом из методов IClassFactory::LockServer , если параметр fLock имеет значение TRUE. Серверное приложение также должно вызывать CoReleaseServerProcess в деструкторе каждого объекта экземпляра и в каждом из методов IClassFactory::LockServer , если параметр fLock имеет значение FALSE. Наконец, серверное приложение должно проверка код возврата из CoReleaseServerProcess. Если возвращается значение 0, серверное приложение должно инициировать очистку. Обычно это означает, что сервер с несколькими потоками должен сигнализировать своим потокам о выходе из циклов сообщений и вызове CoRevokeClassObject и CoUninitialize.
Если эти API используются вообще, они должны вызываться как в экземплярах объекта, так и в методе LockServer , в противном случае серверное приложение может быть преждевременно завершено. Внутрипроцессные серверы обычно не должны вызывать CoAddRefServerProcess или CoReleaseServerProcess.
Требования
| Требование | Значение |
|---|---|
| Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
| Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
| Целевая платформа | Windows |
| Header | combaseapi.h (включая Objbase.h) |
| Библиотека | Ole32.lib |
| DLL | Ole32.dll |