Поделиться через


Функция MMCFreeNotifyHandle (mmc.h)

Функция MMCFreeNotifyHandle вызывается оснасткой для освобождения дескриптора MMCN_PROPERTY_CHANGE сообщения уведомления, отправленного в оснастку MMC в ответ на вызов MMCPropertyChangeNotify, сделанный листом свойств.

Синтаксис

HRESULT MMCFreeNotifyHandle(
  [in] LONG_PTR lNotifyHandle
);

Параметры

[in] lNotifyHandle

Значение типа , указывающее дескриптор, предоставляемый консолью во время вызова IExtendPropertySheet2::CreatePropertyPages .

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

Эта функция обратного вызова может возвращать одно из этих значений.

Комментарии

Дескриптор уведомления передается оснастке через вызов метода IExtendPropertySheet2::CreatePropertyPages . Если оснастка возвращает код успешного выполнения (S_OK, S_FALSE) из этого метода, оснастка должна вызывать MMCFreeNotifyHandle. Если оснастка возвращает код ошибки, MMC немедленно освобождает дескриптор.

Оснастка может освободить дескриптор в любое время, так как MMC не использует дескриптор после того, как он будет передан оснастке. Оснастка должна вызывать MMCFreeNotifyHandle только один раз и не должна использовать дескриптор в вызове MMCPropertyChangeNotify после освобождения.

Имейте в виду, что оснастка должна вызывать только MMCFreeNotifyHandle при вызове метода IExtendPropertySheet2::CreatePropertyPages . MMC не вызывает IExtendPropertySheet2::CreatePropertyPages , если оснастка использует IPropertySheetCallback для добавления страниц свойств, а затем вызывает IPropertySheetProvider::AddPrimaryPages с первым параметром NULL . Вызов AddPrimaryPages таким образом сообщает MMC, что страницы уже добавлены, поэтому не требуется вызывать метод IExtendPropertySheet2::CreatePropertyPages оснастки. Дополнительные сведения см. в разделе Добавление страниц мастера: сведения о реализации.

Следующий список содержит сценарии, иллюстрирующие ситуации, в которых оснастка может вызывать MMCFreeNotifyHandle:

  • В IExtendPropertySheet2::CreatePropertyPages оснастка не добавляет страницы свойств. Если CreatePropertyPages не возвращает результат ошибки, оснастка может вызвать MMCFreeNotifyHandle перед возвратом. В противном случае MMC освободит дескриптор.
  • В IExtendPropertySheet2::CreatePropertyPages оснастка добавляет страницы свойств, но не передает дескриптор страницам. Опять же, если CreatePropertyPages не возвращает результат ошибки, оснастка может вызвать MMCFreeNotifyHandle перед возвратом.
  • В IExtendPropertySheet2::CreatePropertyPages оснастка добавляет страницы свойств, а также передает дескриптор страницам. Однако страницы свойств не вызывают MMCPropertyChangeNotify. В этом случае оснастка может вызывать MMCFreeNotifyHandle либо в деструкторе страниц свойств, либо перед возвратом (без ошибок) из CreatePropertyPages.
  • В IExtendPropertySheet2::CreatePropertyPages оснастка добавляет страницы свойств, а также передает дескриптор страницам. Страницы свойств вызывают MMCPropertyChangeNotify. В этом случае оснастка должна вызывать MMCFreeNotifyHandle в деструкторе страниц свойств. Имейте в виду, что вызов MMCFreeNotifyHandle в обработчике уведомлений MMCN_PROPERTY_CHANGE оснастки не рекомендуется, так как несколько страниц могут отправлять уведомления, или одна и та же страница может отправлять несколько уведомлений (по одному каждый раз, когда пользователь нажимает кнопку Применить ).

Требования

Требование Значение
Минимальная версия клиента Windows Vista
Минимальная версия сервера Windows Server 2008
Целевая платформа Windows
Header mmc.h

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

Icomponent

IExtendPropertySheet2::CreatePropertyPages

MMCPropertyChangeNotify