Partager via


MMCFreeNotifyHandle, fonction (mmc.h)

La fonction MMCFreeNotifyHandle est appelée par un composant logiciel enfichable pour libérer le handle d’un message de notification MMCN_PROPERTY_CHANGE envoyé au composant logiciel enfichable par MMC en réponse à un appel MMCPropertyChangeNotify effectué par une feuille de propriétés.

Syntaxe

HRESULT MMCFreeNotifyHandle(
  [in] LONG_PTR lNotifyHandle
);

Paramètres

[in] lNotifyHandle

Valeur qui spécifie un handle fourni par la console lors d’un appel IExtendPropertySheet2 ::CreatePropertyPages .

Valeur retournée

Cette fonction de rappel peut retourner l’une de ces valeurs.

Remarques

Le handle de la notification est passé au composant logiciel enfichable via un appel à la méthode IExtendPropertySheet2 ::CreatePropertyPages . Si le composant logiciel enfichable retourne un code de réussite (S_OK, S_FALSE) à partir de cette méthode, le composant logiciel enfichable doit appeler MMCFreeNotifyHandle. Si le composant logiciel enfichable retourne un code d’erreur, MMC libère immédiatement le handle.

Le composant logiciel enfichable peut libérer le handle à tout moment, car MMC n’utilise pas le handle une fois qu’il a été donné au composant logiciel enfichable. Le composant logiciel enfichable ne doit appeler MMCFreeNotifyHandle qu’une seule fois et il ne doit pas utiliser le handle dans un appel MMCPropertyChangeNotify après sa libération.

N’oubliez pas que le composant logiciel enfichable doit uniquement appeler MMCFreeNotifyHandle si sa méthode IExtendPropertySheet2 ::CreatePropertyPages est appelée. MMC n’appelle pas IExtendPropertySheet2 ::CreatePropertyPages si le composant logiciel enfichable utilise IPropertySheetCallback pour ajouter des pages de propriétés, puis appelle IPropertySheetProvider ::AddPrimaryPages avec un premier paramètre NULL . L’appel de AddPrimaryPages de cette façon informe MMC que les pages ont déjà été ajoutées. Il n’est donc pas nécessaire d’appeler la méthode IExtendPropertySheet2 ::CreatePropertyPages du composant logiciel enfichable. Pour plus d’informations, consultez Ajout de pages d’Assistant : détails de l’implémentation.

La liste suivante contient des scénarios qui illustrent des situations dans lesquelles le composant logiciel enfichable peut appeler MMCFreeNotifyHandle :

  • Dans IExtendPropertySheet2 ::CreatePropertyPages, le composant logiciel enfichable n’ajoute aucune page de propriétés. Si CreatePropertyPages ne retourne pas de résultat d’erreur, le composant logiciel enfichable peut appeler MMCFreeNotifyHandle avant de revenir. Sinon, MMC libère le handle.
  • Dans IExtendPropertySheet2 ::CreatePropertyPages, le composant logiciel enfichable ajoute des pages de propriétés, mais ne passe pas le handle aux pages. Là encore, si CreatePropertyPages ne retourne pas de résultat d’erreur, le composant logiciel enfichable peut appeler MMCFreeNotifyHandle avant de revenir.
  • Dans IExtendPropertySheet2 ::CreatePropertyPages, le composant logiciel enfichable ajoute des pages de propriétés et transmet également le handle aux pages. Toutefois, les pages de propriétés n’appellent pas MMCPropertyChangeNotify. Dans ce cas, le composant logiciel enfichable peut appeler MMCFreeNotifyHandle soit dans le destructeur des pages de propriétés, soit avant de retourner (sans résultat d’erreur) à partir de CreatePropertyPages.
  • Dans IExtendPropertySheet2 ::CreatePropertyPages, le composant logiciel enfichable ajoute des pages de propriétés et transmet également le handle aux pages. Les pages de propriétés appellent MMCPropertyChangeNotify. Dans ce cas, le composant logiciel enfichable doit appeler MMCFreeNotifyHandle dans le destructeur des pages de propriétés. N’oubliez pas que l’appel de MMCFreeNotifyHandle dans le gestionnaire de notification MMCN_PROPERTY_CHANGE du composant logiciel enfichable n’est pas recommandé, car plusieurs pages peuvent envoyer des notifications, ou la même page peut envoyer plusieurs notifications (une fois que l’utilisateur clique sur le bouton Appliquer ).

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista
Serveur minimal pris en charge Windows Server 2008
Plateforme cible Windows
En-tête mmc.h

Voir aussi

IComponent

IExtendPropertySheet2 ::CreatePropertyPages

MMCPropertyChangeNotify