Share via


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

O método UnregisterControlChangeCallback remove o registro de uma interface IControlChangeNotify que o cliente registrou anteriormente por uma chamada para o método IPart::RegisterControlChangeCallback .

Sintaxe

HRESULT UnregisterControlChangeCallback(
  [in] IControlChangeNotify *pNotify
);

Parâmetros

[in] pNotify

Ponteiro para a interface IControlChangeNotify cujo registro deve ser excluído. O cliente passou esse mesmo ponteiro de interface para o objeto part em uma chamada anterior para o método IPart::RegisterControlChangeCallback . Se o método UnregisterControlChangeCallback for bem-sucedido, ele chamará o método Release na interface IControlChangeNotify do cliente.

Retornar valor

Se o método for bem-sucedido, retornará S_OK. Se falhar, os códigos de retorno possíveis incluem, mas não se limitam a, os valores mostrados na tabela a seguir.

Código de retorno Descrição
E_INVALIDARG
O ponteiro pNotify é NULL.
E_NOTFOUND
A instância de interface *pNotify não está registrada no momento.

Comentários

Antes que o cliente libere sua referência final à interface IControlChangeNotify , ele deve chamar UnregisterControlChangeCallback para cancelar o registro da interface. Caso contrário, o aplicativo vazará os recursos mantidos pelos objetos IControlChangeNotify e IPart . Observe que o método IPart::RegisterControlChangeCallback chama o método IControlChangeNotify::AddRef do cliente e UnregisterControlChangeCallback chama o método IControlChangeNotify::Release . Se o cliente errar lançando sua referência à interface IControlChangeNotify antes de chamar UnregisterControlChangeCallback, o objeto IPart nunca liberará sua referência à interface IControlChangeNotify . Por exemplo, uma implementação IControlChangeNotify mal projetada pode chamar UnregisterControlChangeCallback do destruidor para o objeto IControlChangeNotify . Nesse caso, o cliente não chamará UnregisterControlChangeCallback até que o objeto IPart libere sua referência à interface IControlChangeNotify , e o objeto IPart não liberará sua referência à interface IControlChangeNotify até que o cliente chame UnregisterControlChangeCallback. Para obter mais informações sobre os métodos AddRef e Release , consulte a discussão da interface IUnknown na documentação do SDK do Windows.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho devicetopology.h

Confira também

IControlChangeNotify Interface

IPart Interface

IPart::RegisterControlChangeCallback