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 |