Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Метод 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 |