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.
Hace referencia a: Outlook 2013 | Outlook 2016
Agrega una rutina de inactividad basada en funciones FNIDLE al sistema MAPI.
| Propiedad | Valor |
|---|---|
| Archivo de encabezado: |
Mapiutil.h |
| Implementado por: |
MAPI |
| Llamado por: |
Aplicaciones cliente y proveedores de servicios |
FTG FtgRegisterIdleRoutine(
PFNIDLE pfnIdle,
LPVOID pvIdleParam,
short priIdle,
ULONG csecIdle,
USHORT iroIdle
);
Parameters
pfnIdle
[in] Puntero a la rutina inactiva.
pvIdleParam
[in] Puntero a un bloque de memoria que el motor inactivo debe pasar como parámetro a la rutina inactiva cuando lo llama.
priIdle
[in] Prioridad inicial de la rutina de inactividad. Las prioridades posibles para las rutinas definidas por la implementación son mayores o menores que cero, pero no cero. La prioridad cero está reservada para un evento de usuario, como un clic del mouse o un mensaje de WM_PAINT. Las prioridades mayores que cero representan tareas en segundo plano que tienen una prioridad mayor que los eventos de usuario y se envían como parte del bucle de bomba de mensajes estándar de Windows. Las prioridades inferiores a cero representan tareas inactivas que solo se ejecutan durante el tiempo de inactividad de la bomba de mensajes. Los ejemplos de prioridades son los siguientes: 1 para el envío en primer plano, 2 para la inserción de caracteres de edición de energía y 3 para descargar nuevos mensajes.
csecIdle
[in] Valor de hora inicial, en centésimas de segundo, que se usará para especificar parámetros de rutina inactivos. El significado del valor de hora inicial varía en función de lo que se pasa en el parámetro iroIdle . El significado puede ser uno de los siguientes:
Período mínimo de inacción del usuario que debe transcurrir antes de que el motor de inactividad MAPI llame por primera vez a la rutina de inactividad, si la marca FIROWAIT está establecida en iroIdle. Una vez transcurrido este tiempo, el motor inactivo puede llamar a la rutina de inactividad tantas veces como sea necesario.
Intervalo mínimo entre las llamadas a la rutina de inactividad, si la marca FIROINTERVAL se establece en iroIdle.
iroIdle
[in] Máscara de bits de las marcas usadas para establecer las opciones iniciales de la rutina de inactividad. Se pueden establecer las siguientes marcas:
FIRONOADJUSTMENT
Use esta marca para especificar que el temporizador de rutina de inactividad no se debe ajustar para el modo de suspensión o reanudación. El comportamiento predeterminado sin esta marca es que el tiempo de suspensión se excluye al calcular el tiempo transcurrido. Si se pasa FIRONOADJUSTMENT, se incluye el tiempo de suspensión al calcular el tiempo transcurrido.
FIRODISABLED
La rutina inactiva debe deshabilitarse cuando se registra. La acción predeterminada es habilitar la rutina de inactividad cuando FtgRegisterIdleRoutine la registra.
FIROINTERVAL
El tiempo especificado por el parámetro csecIdle es el intervalo mínimo entre llamadas sucesivas a la rutina inactiva.
FIROONCEONLY
Obsoleto. No usar.
FIROPERBLOCK
Obsoleto. No usar.
FIROWAIT
El tiempo especificado por el parámetro csecIdle es el período mínimo de inacción del usuario que debe transcurrir antes de que el motor inactivo MAPI llame a la rutina de inactividad por primera vez. Una vez transcurrido este tiempo, el motor inactivo puede llamar a la rutina de inactividad tantas veces como sea necesario.
Valor devuelto
La función FtgRegisterIdleRoutine devuelve una etiqueta de función que identifica la rutina de inactividad que se agregó al sistema MAPI. Si FtgRegisterIdleRoutine no puede registrar la rutina de inactividad para la aplicación cliente o el proveedor de servicios, por ejemplo debido a problemas de memoria, devuelve NULL.
Comentarios
Las siguientes funciones tratan con el motor de inactividad MAPI y con rutinas inactivas basadas en el prototipo de función FNIDLE .
| Función rutinaria inactiva | Uso |
|---|---|
|
ChangeIdleRoutine |
Cambia las características de una rutina de inactividad registrada. |
|
DeregisterIdleRoutine |
Quita una rutina de inactividad registrada del sistema MAPI. |
|
EnableIdleRoutine |
Deshabilita o vuelve a habilitar una rutina de inactividad registrada sin quitarla del sistema MAPI. |
|
FtgRegisterIdleRoutine |
Agrega una rutina inactiva al sistema MAPI, con o sin habilitarla. |
|
MAPIDeInitIdle |
Apaga el motor de inactividad MAPI para la aplicación que realiza la llamada. |
|
MAPIInitIdle |
Inicializa el motor de inactividad MAPI para la aplicación que realiza la llamada. |
ChangeIdleRoutine, DeregisterIdleRoutine y EnableIdleRoutine toman como parámetro de entrada la etiqueta de función devuelta por FtgRegisterIdleRoutine.
Cuando todas las tareas en primer plano de la plataforma se inactivan, el motor de inactividad MAPI llama a la rutina de inactividad de prioridad más alta que está lista para ejecutarse. No hay ninguna garantía de orden de llamada entre rutinas inactivas de la misma prioridad.
A continuación se muestra un ejemplo de uso de la marca FIRONOADJUSTMENT en el parámetro iroIdle .
Registre una rutina de inactividad con un retraso de 5 minutos.
Hibernar o suspender el equipo después de 1 minuto (4 minutos restantes en el temporizador).
Reanude el equipo 10 minutos más tarde.
El comportamiento predeterminado, sin FIRONOADJUSTMENT, es que todavía tiene que esperar 4 minutos más para que se ejecute la rutina. Es decir, el temporizador se ha ajustado para permitir durante cuánto tiempo el equipo estaba inactivo. Sin embargo, si pasa FIRONOADJUSTMENT, la rutina de inactividad se ejecutará inmediatamente porque han transcurrido más de 5 minutos de tiempo real.