Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
[La detección de funciones está disponible para su uso en los sistemas operativos especificados en la sección Requisitos. Puede modificarse o no estar disponible en versiones posteriores.
Indica que se ha agregado, quitado o cambiado una instancia de función. El programa cliente implementa este método y lo llama La detección de funciones.
Sintaxis
HRESULT OnUpdate(
[in] QueryUpdateAction enumQueryUpdateAction,
[in] FDQUERYCONTEXT fdqcQueryContext,
[in] IFunctionInstance *pIFunctionInstance
);
Parámetros
[in] enumQueryUpdateAction
Valor QueryUpdateAction que especifica el tipo de acción Detección de funciones se realiza en la instancia de función especificada.
[in] fdqcQueryContext
Contexto registrado para la notificación de cambios. El tipo FDQUERYCONTEXT se define como DWORDLONG. Este parámetro puede ser NULL.
[in] pIFunctionInstance
Puntero de interfaz IFunctionInstance que representa la instancia de función afectada por la actualización.
Valor devuelto
La implementación del programa cliente del método OnUpdate debe devolver uno de los siguientes valores HRESULT al autor de la llamada.
| Código devuelto | Descripción |
|---|---|
|
El método se completó correctamente. |
|
El valor de uno de los parámetros de entrada no es válido. |
Comentarios
No llame a Release en el objeto de consulta desde este método. Si lo hace, podría provocar un interbloqueo. Si se llama a Release en un objeto de consulta de otro subproceso mientras una devolución de llamada está en proceso, el objeto no se liberará hasta que finalice la devolución de llamada.
Todas las notificaciones que se pasan a la detección de funciones por parte de los proveedores se ponen en cola y se devuelven al cliente una por una. Las devoluciones de llamada se sincronizan para que un cliente solo reciba una notificación cada vez.
Dado que se pueden realizar otras llamadas al método IFunctionDiscoveryNotification en otros subprocesos, los cambios realizados en el estado del subproceso durante la llamada deben restaurarse antes de salir del método.
Ejemplos
El código siguiente muestra una implementación del controlador OnUpdate. La clase CMyNotificationListener se define en el tema IFunctionDiscoveryNotification .
#include <windows.h>
HRESULT STDMETHODCALLTYPE CMyNotificationListener::OnUpdate(
IN QueryUpdateAction Action,
IN FDQUERYCONTEXT fdqcQueryContext,
IN IFunctionInstance *pInstance)
{
HRESULT hr = S_OK;
switch (Action) {
case QUA_ADD:
SetEvent( m_hAddEvent );
break;
case QUA_REMOVE:
SetEvent( m_hRemoveEvent );
break;
case QUA_CHANGE:
SetEvent( m_hChangeEvent );
break;
}
return S_OK;
}
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 | functiondiscoveryapi.h |