MMCFreeNotifyHandle 函数 (mmc.h)

管理单元调用 MMCFreeNotifyHandle 函数,以释放 MMC 发送到管理单元的 MMCN_PROPERTY_CHANGE 通知消息的句柄,以响应属性表发出的 MMCPropertyChangeNotify 调用。

语法

HRESULT MMCFreeNotifyHandle(
  [in] LONG_PTR lNotifyHandle
);

参数

[in] lNotifyHandle

一个 值,该值指定 在 IExtendPropertySheet2::CreatePropertyPages 调用期间控制台提供的句柄。

返回值

此回调函数可以返回其中一个值。

注解

通知的句柄通过调用 IExtendPropertySheet2::CreatePropertyPages 方法传递给管理单元。 如果管理单元返回成功代码 (S_OK,S_FALSE) 此方法,则管理单元必须调用 MMCFreeNotifyHandle。 如果管理单元返回错误代码,MMC 会立即释放句柄。

管理单元可以随时释放句柄,因为 MMC 在提供给管理单元后不使用句柄。 管理单元只能调用 MMCFreeNotifyHandle 一次,并且释放后不得在 MMCPropertyChangeNotify 调用中使用句柄。

请注意,如果调用其 IExtendPropertySheet2::CreatePropertyPages 方法,则仅管理单元必须调用 MMCFreeNotifyHandle。 如果管理单元使用 IPropertySheetCallback 添加属性页,然后使用 NULL 第一个参数调用 IPropertySheetProvider::AddPrimaryPages,MMC 将不会调用 IExtendPropertySheet2::CreatePropertyPages 以这种方式调用 AddPrimaryPages 会通知 MMC 已添加页面,因此不需要调用管理单元的 IExtendPropertySheet2::CreatePropertyPages 方法。 有关详细信息,请参阅 添加向导页:实现详细信息

以下列表包含的方案说明了管理单元可以调用 MMCFreeNotifyHandle 的情况:

  • IExtendPropertySheet2::CreatePropertyPages 中,管理单元不添加任何属性页。 如果 CreatePropertyPages 未返回错误结果,则管理单元可以在返回之前调用 MMCFreeNotifyHandle。 否则,MMC 将释放句柄。
  • IExtendPropertySheet2::CreatePropertyPages 中,管理单元添加属性页,但不将句柄传递给页面。 同样,如果 CreatePropertyPages 未返回错误结果,则管理单元可以在返回之前调用 MMCFreeNotifyHandle。
  • IExtendPropertySheet2::CreatePropertyPages 中,管理单元添加属性页并将句柄传递给页面。 但是,属性页不调用 MMCPropertyChangeNotify。 在这种情况下,管理单元可以在属性页的析构函数中或在返回 (之前调用 MMCFreeNotifyHandle ,而不会从 CreatePropertyPages) 错误结果。
  • IExtendPropertySheet2::CreatePropertyPages 中,管理单元添加属性页并将句柄传递给页面。 属性页调用 MMCPropertyChangeNotify。 在这种情况下,管理单元应在属性页的析构函数中调用 MMCFreeNotifyHandle 。 请注意,不建议在管理单元的MMCN_PROPERTY_CHANGE通知处理程序中调用 MMCFreeNotifyHandle,因为多个页面可能会发送通知,或者当用户每次单击“应用”按钮) 时,同一页面可能会发送多个通知 (一个通知。

要求

要求
最低受支持的客户端 Windows Vista
最低受支持的服务器 Windows Server 2008
目标平台 Windows
标头 mmc.h

另请参阅

IComponent

IExtendPropertySheet2::CreatePropertyPages

MMCPropertyChangeNotify