Partager via


FtgRegisterIdleRoutine

S’applique à : Outlook 2013 | Outlook 2016

Ajoute une routine inactive basée sur une fonction FNIDLE au système MAPI.

Propriété Valeur
Fichier d’en-tête :
Mapiutil.h
Implémenté par :
MAPI
Appelé par :
Applications clientes et fournisseurs de services
FTG FtgRegisterIdleRoutine(
  PFNIDLE pfnIdle,
  LPVOID pvIdleParam,
  short priIdle,
  ULONG csecIdle,
  USHORT iroIdle
);

Paramètres

pfnIdle

[in] Pointeur vers la routine inactive.

pvIdleParam

[in] Pointeur vers un bloc de mémoire que le moteur inactif doit transmettre en tant que paramètre à la routine inactive lorsqu’il l’appelle.

priIdle

[in] Priorité initiale de la routine inactive. Les priorités possibles pour les routines définies par l’implémentation sont supérieures ou inférieures à zéro, mais pas zéro. La priorité zéro est réservée à un événement utilisateur tel qu’un clic de souris ou un message WM_PAINT. Les priorités supérieures à zéro représentent les tâches en arrière-plan qui ont une priorité plus élevée que les événements utilisateur et qui sont distribuées dans le cadre de la boucle de pompe de messages Windows standard. Les priorités inférieures à zéro représentent les tâches inactives qui s’exécutent uniquement pendant le temps d’inactivité de la pompe de messages. Voici quelques exemples de priorités : 1 pour la soumission au premier plan, 2 pour l’insertion de caractères de modification d’alimentation et 3 pour le téléchargement de nouveaux messages.

csecIdle

[in] Valeur de temps initiale, en centièmes de seconde, à utiliser pour spécifier des paramètres de routine inactifs. La signification de la valeur de temps initiale varie en fonction de ce qui est passé dans le paramètre iroIdle . La signification peut être l’une des suivantes :

  • Période minimale d’inaction de l’utilisateur qui doit s’écouler avant que le moteur d’inactivité MAPI appelle la routine inactive pour la première fois, si l’indicateur FIROWAIT est défini dans iroIdle. Une fois ce délai écoulé, le moteur inactif peut appeler la routine d’inactivité aussi souvent que nécessaire.

  • Intervalle minimal entre les appels à la routine inactive, si l’indicateur FIROINTERVAL est défini dans iroIdle.

iroIdle

[in] Masque de bits des indicateurs utilisés pour définir les options initiales de la routine inactive. Les indicateurs suivants peuvent être définis :

FIRONOADJUSTMENT

Utilisez cet indicateur pour spécifier que le minuteur de routine inactif ne doit pas être ajusté pour la mise en veille ou la reprise. Le comportement par défaut sans cet indicateur est que le temps de veille est exclu lors du calcul du temps écoulé. Si FIRONOADJUSTMENT est passé, le temps de veille est inclus lors du calcul du temps écoulé.

FIRODISABLED

La routine inactive doit être désactivée lors de l’inscription. L’action par défaut consiste à activer la routine inactive lorsque FtgRegisterIdleRoutine l’inscrit.

FIROINTERVAL

La durée spécifiée par le paramètre csecIdle est l’intervalle minimal entre les appels successifs à la routine inactive.

FIROONCEONLY

Obsolète. Ne pas utiliser.

FIROPERBLOCK

Obsolète. Ne pas utiliser.

FIROWAIT

Le temps spécifié par le paramètre csecIdle est la période minimale d’inaction de l’utilisateur qui doit s’écouler avant que le moteur d’inactivité MAPI appelle la routine inactive pour la première fois. Une fois ce délai écoulé, le moteur inactif peut appeler la routine d’inactivité aussi souvent que nécessaire.

Valeur renvoyée

La fonction FtgRegisterIdleRoutine retourne une balise de fonction identifiant la routine inactive qui a été ajoutée au système MAPI. Si FtgRegisterIdleRoutine ne peut pas inscrire la routine inactive pour l’application cliente ou le fournisseur de services, par exemple en raison de problèmes de mémoire, elle retourne NULL.

Remarques

Les fonctions suivantes traitent du moteur d’inactivité MAPI et des routines d’inactivité basées sur le prototype de fonction FNIDLE .

Fonction de routine inactive Utilisation
ChangeIdleRoutine
Modifie les caractéristiques d’une routine inactive inscrite.
DeregisterIdleRoutine
Supprime une routine inactive inscrite du système MAPI.
EnableIdleRoutine
Désactive ou réactive une routine inactive inscrite sans la supprimer du système MAPI.
FtgRegisterIdleRoutine
Ajoute une routine inactive au système MAPI, avec ou sans activation.
MAPIDeInitIdle
Arrête le moteur d’inactivité MAPI pour l’application appelante.
MAPIInitIdle
Initialise le moteur d’inactivité MAPI pour l’application appelante.

ChangeIdleRoutine, DeregisterIdleRoutine et EnableIdleRoutine prennent comme paramètre d’entrée la balise de fonction retournée par FtgRegisterIdleRoutine.

Lorsque toutes les tâches de premier plan de la plateforme deviennent inactives, le moteur d’inactivité MAPI appelle la routine d’inactivité de priorité la plus élevée qui est prête à s’exécuter. Il n’existe aucune garantie d’appeler l’ordre parmi les routines inactives de la même priorité.

Voici un exemple d’utilisation de l’indicateur FIRONOADJUSTMENT dans le paramètre iroIdle .

  1. Inscrivez une routine inactive avec un délai de 5 minutes.

  2. Mettre l’ordinateur en veille prolongée après 1 minute (4 minutes restantes sur le minuteur).

  3. Reprenez l’ordinateur 10 minutes plus tard.

Le comportement par défaut, sans FIRONOADJUSTMENT, est que vous devez encore attendre 4 minutes de plus pour que votre routine s’exécute. Autrement dit, votre minuterie a été ajustée pour tenir compte de la durée de sommeil de l’ordinateur. Toutefois, si vous réussissez FIRONOADJUSTMENT, votre routine inactive s’exécute immédiatement, car plus de 5 minutes de temps réel se sont écoulées.