Функция CoRevokeClassObject (combaseapi.h)

Сообщает OLE, что объект класса, ранее зарегистрированный с помощью функции CoRegisterClassObject , больше недоступен для использования.

Синтаксис

HRESULT CoRevokeClassObject(
  [in] DWORD dwRegister
);

Параметры

[in] dwRegister

Токен, ранее возвращенный функцией CoRegisterClassObject .

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

Эта функция может возвращать стандартные возвращаемые значения E_INVALIDARG, E_OUTOFMEMORY и E_UNEXPECTED, а также следующие значения.

Код возврата Описание
S_OK
Объект класса был успешно отозван.

Комментарии

Успешный вызов 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

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

CoGetClassObject

CoRegisterClassObject