Méthode IPart ::UnregisterControlChangeCallback (devicetopology.h)
La méthode UnregisterControlChangeCallback supprime l’inscription d’une interface IControlChangeNotify précédemment inscrite par le client par un appel à la méthode IPart ::RegisterControlChangeCallback .
Syntaxe
HRESULT UnregisterControlChangeCallback(
[in] IControlChangeNotify *pNotify
);
Paramètres
[in] pNotify
Pointeur vers l’interface IControlChangeNotify dont l’inscription doit être supprimée. Le client a passé ce même pointeur d’interface vers l’objet de composant dans un appel précédent à la méthode IPart ::RegisterControlChangeCallback . Si la méthode UnregisterControlChangeCallback réussit, elle appelle la méthode Release sur l’interface IControlChangeNotify du client.
Valeur retournée
Si la méthode réussit, retourne S_OK. En cas d’échec, les codes de retour possibles incluent, sans s’y limiter, les valeurs indiquées dans le tableau suivant.
Code de retour | Description |
---|---|
|
Le pointeur pNotify a la valeur NULL. |
|
L’interface instance *pNotify n’est pas inscrite actuellement. |
Remarques
Avant que le client publie sa référence finale à l’interface IControlChangeNotify , il doit appeler UnregisterControlChangeCallback pour annuler l’inscription de l’interface. Sinon, l’application fait fuiter les ressources détenues par les objets IControlChangeNotify et IPart . Notez que la méthode IPart ::RegisterControlChangeCallback appelle la méthode IControlChangeNotify ::AddRef du client, et UnregisterControlChangeCallback appelle la méthode IControlChangeNotify ::Release . Si le client se trompe en relâchant sa référence à l’interface IControlChangeNotify avant d’appeler UnregisterControlChangeCallback, l’objet IPart ne libère jamais sa référence à l’interface IControlChangeNotify . Par exemple, une implémentation IControlChangeNotify mal conçue peut appeler UnregisterControlChangeCallback à partir du destructeur de l’objet IControlChangeNotify . Dans ce cas, le client n’appellera pas UnregisterControlChangeCallback tant que l’objet IPart ne libère pas sa référence à l’interface IControlChangeNotify , et l’objet IPart ne libère pas sa référence à l’interface IControlChangeNotify tant que le client n’appelle pas UnregisterControlChangeCallback. Pour plus d’informations sur les méthodes AddRef et Release , consultez la discussion sur l’interface IUnknown dans la documentation du Kit de développement logiciel (SDK) Windows.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2008 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | devicetopology.h |