Método IPart::RegisterControlChangeCallback (devicetopology.h)
O método RegisterControlChangeCallback registra a interface IControlChangeNotify, que o cliente implementa para receber notificações de status alterações nesta parte.
Sintaxe
HRESULT RegisterControlChangeCallback(
[in] REFGUID riid,
[in] IControlChangeNotify *pNotify
);
Parâmetros
[in] riid
A interface de controle específica da função que deve ser monitorada quanto a alterações de controle. Para obter mais informações, consulte Comentários.
[in] pNotify
Ponteiro para a interface IControlChangeNotify do cliente. Se o método for bem-sucedido, ele chamará o método AddRef 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 |
---|---|
|
O parâmetro riid não é um identificador de interface de controle válido. |
|
O ponteiro pNotify é NULL. |
Comentários
Defina o parâmetro riid como um dos seguintes valores de GUID:
- IID_IAudioAutoGainControl
- IID_IAudioBass
- IID_IAudioChannelConfig
- IID_IAudioInputSelector
- IID_IAudioLoudness
- IID_IAudioMidrange
- IID_IAudioMute
- IID_IAudioOutputSelector
- IID_IAudioPeakMeter
- IID_IAudioTreble
- IID_IAudioVolumeLevel
- IID_IDeviceSpecificProperty
- IID_IKsFormatSupport
- IID_IKsJackDescription
const IID IID_IAudioAutoGainControl __uuidof(IAudioAutoGainControl)
Para obter mais informações sobre o operador __uuidof , consulte a documentação do SDK do Windows.
Antes que o cliente libere sua referência final à interface IControlChangeNotify , ele deve chamar o método IPart::UnregisterControlChangeCallback para cancelar o registro da interface. Caso contrário, o aplicativo vazará os recursos mantidos pelos objetos IControlChangeNotify e IPart . Observe que RegisterControlChangeCallback chama o método IControlChangeNotify::AddRef do cliente e UnregisterControlChangeCallback chama o método IControlChangeNotify::Release . Se o cliente erra liberando sua referência à interface IControlChangeNotify antes de chamar UnregisterControlChangeCallback, o objeto IPart nunca libera 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 sobre a 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 |