Método IPart::UnregisterControlChangeCallback (devicetopology.h)

El método UnregisterControlChangeCallback quita el registro de una interfaz IControlChangeNotify que el cliente registró previamente mediante una llamada al método IPart::RegisterControlChangeCallback .

Sintaxis

HRESULT UnregisterControlChangeCallback(
  [in] IControlChangeNotify *pNotify
);

Parámetros

[in] pNotify

Puntero a la interfaz IControlChangeNotify cuyo registro se va a eliminar. El cliente pasó este mismo puntero de interfaz al objeto part en una llamada anterior al método IPart::RegisterControlChangeCallback . Si el método UnregisterControlChangeCallback se realiza correctamente, llama al método Release en la interfaz IControlChangeNotify del cliente.

Valor devuelto

Si el método se realiza correctamente, devuelve S_OK. Si se produce un error, los posibles códigos de retorno incluyen, pero no están limitados a, los valores que se muestran en la tabla siguiente.

Código devuelto Descripción
E_INVALIDARG
El puntero pNotify es NULL.
E_NOTFOUND
La instancia de interfaz *pNotify no está registrada actualmente.

Comentarios

Antes de que el cliente libere su referencia final a la interfaz IControlChangeNotify , debe llamar a UnregisterControlChangeCallback para anular el registro de la interfaz. De lo contrario, la aplicación filtra los recursos mantenidos por los objetos IControlChangeNotify e IPart . Tenga en cuenta que el método IPart::RegisterControlChangeCallback llama al método IControlChangeNotify::AddRef del cliente y UnregisterControlChangeCallback llama al método IControlChangeNotify::Release . Si el cliente erra liberando su referencia a la interfaz IControlChangeNotify antes de llamar a UnregisterControlChangeCallback, el objeto IPart nunca libera su referencia a la interfaz IControlChangeNotify . Por ejemplo, una implementación de IControlChangeNotify mal diseñada podría llamar a UnregisterControlChangeCallback desde el destructor para el objeto IControlChangeNotify . En este caso, el cliente no llamará a UnregisterControlChangeCallback hasta que el objeto IPart libere su referencia a la interfaz IControlChangeNotify y el objeto IPart no liberará su referencia a la interfaz IControlChangeNotify hasta que el cliente llame a UnregisterControlChangeCallback. Para obtener más información sobre los métodos AddRef y Release , consulte la explicación de la interfaz IUnknown en la documentación de Windows SDK.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado devicetopology.h

Consulte también

IControlChangeNotify (interfaz)

IPart (interfaz)

IPart::RegisterControlChangeCallback