Метод IPart::UnregisterControlChangeCallback (devicetopology.h)
Метод UnregisterControlChangeCallback удаляет регистрацию интерфейса IControlChangeNotify , который клиент ранее зарегистрировал путем вызова метода IPart::RegisterControlChangeCallback .
Синтаксис
HRESULT UnregisterControlChangeCallback(
[in] IControlChangeNotify *pNotify
);
Параметры
[in] pNotify
Указатель на интерфейс IControlChangeNotify , регистрация которого требуется удалить. Клиент передал этот же указатель интерфейса на объект part в предыдущем вызове метода IPart::RegisterControlChangeCallback . Если метод UnregisterControlChangeCallback завершается успешно, он вызывает метод Release в интерфейсе IControlChangeNotify клиента.
Возвращаемое значение
Если метод завершается успешно, возвращает значение S_OK. В случае сбоя возможные коды возврата включают, помимо прочего, значения, показанные в следующей таблице.
Код возврата | Описание |
---|---|
|
Указатель pNotify имеет значение NULL. |
|
Экземпляр интерфейса *pNotify в настоящее время не зарегистрирован. |
Комментарии
Прежде чем клиент выпускает окончательную ссылку на интерфейс IControlChangeNotify , он должен вызвать UnregisterControlChangeCallback , чтобы отменить регистрацию интерфейса. В противном случае приложение будет утекать ресурсы, хранящиеся в объектах IControlChangeNotify и IPart . Обратите внимание, что метод IPart::RegisterControlChangeCallback вызывает метод IControlChangeNotify::AddRef клиента, а UnregisterControlChangeCallback вызывает метод IControlChangeNotify::Release . Если клиент вызывает ошибку, освобождая ссылку на интерфейс IControlChangeNotify перед вызовом UnregisterControlChangeCallback, объект IPart никогда не освобождает ссылку на интерфейс IControlChangeNotify . Например, плохо спроектированная реализация IControlChangeNotify может вызвать UnregisterControlChangeCallback из деструктора для объекта IControlChangeNotify . В этом случае клиент не будет вызывать UnregisterControlChangeCallback , пока объект IPart не освободит свою ссылку на интерфейс IControlChangeNotify , а объект IPart не будет выпускать ссылку на интерфейс IControlChangeNotify , пока клиент не вызовет UnregisterControlChangeCallback. Дополнительные сведения о методах AddRef и Release см. в обсуждении интерфейса IUnknown в документации по Windows SDK.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Целевая платформа | Windows |
Header | devicetopology.h |