Функция 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 |