Partager via


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
E_INVALIDARG
Le pointeur pNotify a la valeur NULL.
E_NOTFOUND
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

Voir aussi

IControlChangeNotify, interface

IPart, interface

IPart ::RegisterControlChangeCallback