Método IViewObject::SetAdvise (oleidl.h)

Establece una conexión entre el objeto de vista y un receptor de aviso para que el receptor de aviso pueda recibir notificaciones sobre los cambios en la vista del objeto.

Sintaxis

HRESULT SetAdvise(
  [in] DWORD       aspects,
  [in] DWORD       advf,
  [in] IAdviseSink *pAdvSink
);

Parámetros

[in] aspects

Vea la configuración de la conexión de asesoramiento. Los valores válidos se toman de la enumeración DVASPECT. Consulte la enumeración DVASPECT para obtener más información.

[in] advf

Contiene un grupo de marcadores para controlar la conexión de consulta. Los valores válidos proceden de la enumeración ADVF. Sin embargo, solo algunos de los posibles valores de ADVF son relevantes para este método. En la tabla siguiente se describen brevemente los valores pertinentes. Consulte la enumeración ADVF para obtener una descripción más detallada.

Valor Significado
ADVF_ONLYONCE
Hace que la conexión de asesoramiento se destruya después de enviar la primera notificación.
ADVF_PRIMEFIRST
Hace que se envíe una notificación inicial independientemente de si los datos han cambiado de su estado actual.
 
Nota El ADVF_ONLYONCE y la ADVF_PRIMEFIRST se pueden combinar para proporcionar una llamada asincrónica a IDataObject::GetData.
 

[in] pAdvSink

Puntero a la interfaz IAdviseSink en el receptor de asesoramiento que se va a informar de los cambios. Un valor NULL elimina cualquier conexión de asesoramiento existente.

Valor devuelto

Este método devuelve S_OK cuando funciona correctamente. Otros posibles valores devueltos son los siguientes.

Código devuelto Descripción
OLE_E_ADVISENOTSUPPORTED
No se admiten las notificaciones de aviso.
DV_E_DVASPECT
Valor no válido para dwAspect.
E_INVALIDARG
Uno o varios de los valores proporcionados no son válidos.
E_OUTOFMEMORY
Memoria insuficiente disponible para esta operación.

Comentarios

Una aplicación contenedora que solicita una operación de dibujo en un objeto de vista también puede registrarse con el método IViewObject::SetAdvise para recibir una notificación cuando cambia la presentación del objeto de vista. Para averiguar cuándo cambian los datos subyacentes de un objeto, debe llamar a IDataObject::D Advise por separado.

Para quitar una conexión de asesoramiento existente, llame al método IViewObject::SetAdvise con pAdvSink establecido en NULL.

Si el objeto de vista cambia, se realiza una llamada al receptor de asesoramiento adecuado a través de su método IAdviseSink::OnViewChange .

En cualquier momento, un objeto de vista determinado solo puede admitir una conexión de asesoramiento. Por lo tanto, cuando se llama a IViewObject::SetAdvise y el objeto de vista ya se mantiene en un puntero receptor de aviso, OLE libera el puntero existente antes de que se registre el nuevo.

Requisitos

   
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado oleidl.h

Consulte también

ADVF

IAdviseSink

IViewObject

IViewObject::GetAdvise