Функция CoRevokeClassObject (combaseapi.h)
Сообщает OLE, что объект класса, ранее зарегистрированный с помощью функции CoRegisterClassObject , больше недоступен для использования.
Синтаксис
HRESULT CoRevokeClassObject(
[in] DWORD dwRegister
);
Параметры
[in] dwRegister
Токен, ранее возвращенный функцией CoRegisterClassObject .
Возвращаемое значение
Эта функция может возвращать стандартные возвращаемые значения E_INVALIDARG, E_OUTOFMEMORY и E_UNEXPECTED, а также следующие значения.
Код возврата | Описание |
---|---|
|
Объект класса был успешно отозван. |
Комментарии
Успешный вызов CoRevokeClassObject означает, что объект класса был удален из глобальной таблицы объектов классов (хотя объект класса не освобождается). Если другие клиенты по-прежнему имеют указатели на объект класса и привели к тому, что число ссылок увеличивается вызовами IUnknown::AddRef, счетчик ссылок не будет равен нулю. В этом случае приложения могут воспользоваться преимуществами, если последующие вызовы (с очевидными исключениями AddRef и IUnknown::Release) к объекту класса завершаются сбоем. Обратите внимание, что CoRegisterClassObject вызывает AddRef , а CoRevokeClassObject вызывает Release, поэтому две функции образуют пару AddRef/Release .
Приложение объекта должно вызывать CoRevokeClassObject , чтобы отозвать зарегистрированные объекты класса перед выходом из программы. Реализующие объекты класса должны вызывать CoRevokeClassObject в рамках последовательности выпуска. Необходимо специально отозвать объект класса, даже если вы указали значение флагов REGCLS_SINGLEUSE в вызове CoRegisterClassObject, указывая, что только одно приложение может подключиться к объекту класса.
Требования
Минимальная версия клиента | Windows 2000 Профессиональная [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows 2000 Server [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | combaseapi.h (включая Objbase.h) |
Библиотека | Ole32.lib |
DLL | Ole32.dll |