Freigeben über


FtgRegisterIdleRoutine

Gilt für: Outlook 2013 | Outlook 2016

Fügt dem MAPI-System eine funktionsbasierte FNIDLE-Leerlaufroutine hinzu.

Eigenschaft Wert
Headerdatei
Mapiutil.h
Implementiert von:
MAPI
Aufgerufen von:
Clientanwendungen und Dienstanbieter
FTG FtgRegisterIdleRoutine(
  PFNIDLE pfnIdle,
  LPVOID pvIdleParam,
  short priIdle,
  ULONG csecIdle,
  USHORT iroIdle
);

Parameter

pfnIdle

[in] Ein Zeiger auf die Leerlaufroutine.

pvIdleParam

[in] Ein Zeiger auf einen Speicherblock, den die Leerlauf-Engine als Parameter an die Leerlaufroutine übergeben soll, wenn sie ihn aufruft.

priIdle

[in] Die anfängliche Priorität für die Leerlaufroutine. Mögliche Prioritäten für implementierungsdefinierte Routinen sind größer oder kleiner als null, aber nicht null. Die Nullpriorität ist für ein Benutzerereignis wie einen Mausklick oder eine WM_PAINT Nachricht reserviert. Prioritäten größer als 0 (null) stellen Hintergrundaufgaben dar, die eine höhere Priorität als Benutzerereignisse haben und als Teil der standardmäßigen Windows-Nachrichtenpumpe-Schleife verteilt werden. Prioritäten kleiner als 0 (null) stellen Aufgaben im Leerlauf dar, die nur während der Leerlaufzeit der Nachrichtenpumpe ausgeführt werden. Beispiele für Prioritäten sind: 1 für die Übermittlung im Vordergrund, 2 für das Einfügen von Power-Edit-Zeichen und 3 für das Herunterladen neuer Nachrichten.

csecIdle

[in] Der anfängliche Zeitwert in hundertstel Sekunden, der zum Angeben von Routineparametern im Leerlauf verwendet werden soll. Die Bedeutung des Anfangszeitwerts variiert je nachdem, was im iroIdle-Parameter übergeben wird. Die Bedeutung kann eine der folgenden sein:

  • Der minimale Zeitraum der Benutzerinaktivität, der verstreichen muss, bevor die MAPI-Idle-Engine die Idle-Routine zum ersten Mal aufruft, wenn das FIROWAIT-Flag in iroIdle festgelegt ist. Nach Ablauf dieser Zeit kann die Leerlauf-Engine die Leerlaufroutine so oft wie nötig aufrufen.

  • Das minimale Intervall zwischen Aufrufen der Leerlaufroutine, wenn das FIROINTERVAL-Flag in iroIdle festgelegt ist.

iroIdle

[in] Die Bitmaske von Flags, die zum Festlegen der anfänglichen Optionen für die Leerlaufroutine verwendet wird. Die folgenden Flags können festgelegt werden:

FIRONOADJUSTMENT

Verwenden Sie dieses Flag, um anzugeben, dass der Leerlauf-Routinetimer nicht für den Ruhezustand oder die Fortsetzung angepasst werden soll. Das Standardverhalten ohne dieses Flag ist, dass die Ruhezeit bei der Berechnung der verstrichenen Zeit ausgeschlossen wird. Wenn FIRONOADJUSTMENT bestanden wird, wird die Ruhezeit bei der Berechnung der verstrichenen Zeit berücksichtigt.

FIRODISABLED

Die Leerlaufroutine sollte bei der Registrierung deaktiviert werden. Die Standardaktion besteht darin, die Leerlaufroutine zu aktivieren, wenn ftgRegisterIdleRoutine sie registriert.

FIROINTERVAL

Die durch den csecIdle-Parameter angegebene Zeit ist das minimale Intervall zwischen aufeinander folgenden Aufrufen der Leerlaufroutine.

FIROONCEONLY

Veraltet. Nicht verwenden.

FIROPERBLOCK

Veraltet. Nicht verwenden.

FIROWAIT

Die durch den csecIdle-Parameter angegebene Zeit ist der minimale Zeitraum der Benutzerinaktivierung, die verstreichen muss, bevor die MAPI-Idle-Engine die Leerlaufroutine zum ersten Mal aufruft. Nach Ablauf dieser Zeit kann die Leerlauf-Engine die Leerlaufroutine so oft wie nötig aufrufen.

Rückgabewert

Die FtgRegisterIdleRoutine-Funktion gibt ein Funktionstag zurück, das die Idle-Routine identifiziert, die dem MAPI-System hinzugefügt wurde. Wenn FtgRegisterIdleRoutine die Leerlaufroutine für die Clientanwendung oder den Dienstanbieter nicht registrieren kann, z. B. aufgrund von Speicherproblemen, wird NULL zurückgegeben.

Hinweise

Die folgenden Funktionen befassen sich mit der MAPI-Idle-Engine und mit Leerlaufroutinen, die auf dem FNIDLE-Funktionsprototyp basieren.

Idle Routine-Funktion Nutzung
ChangeIdleRoutine
Ändert die Merkmale einer registrierten Leerlaufroutine.
DeregisterIdleRoutine
Entfernt eine registrierte Leerlaufroutine aus dem MAPI-System.
EnableIdleRoutine
Deaktiviert oder aktiviert eine registrierte Leerlaufroutine erneut, ohne sie aus dem MAPI-System zu entfernen.
FtgRegisterIdleRoutine
Fügt dem MAPI-System eine Leerlaufroutine mit oder ohne Aktivierung hinzu.
MAPIDeInitIdle
Fährt die MAPI-Leerlauf-Engine für die aufrufende Anwendung herunter.
MAPIInitIdle
Initialisiert die MAPI-Leerlauf-Engine für die aufrufende Anwendung.

ChangeIdleRoutine, DeregisterIdleRoutine und EnableIdleRoutine verwenden als Eingabeparameter das von FtgRegisterIdleRoutine zurückgegebene Funktionstag.

Wenn alle Vordergrundaufgaben für die Plattform im Leerlauf sind, ruft die MAPI-Idle-Engine die Leerlaufroutine mit der höchsten Priorität auf, die ausgeführt werden kann. Es gibt keine Garantie für die Aufrufreihenfolge bei Leerlaufroutinen mit derselben Priorität.

Im Folgenden finden Sie ein Beispiel für die Verwendung des FIRONOADJUSTMENT-Flags im iroIdle-Parameter .

  1. Registrieren Sie eine Leerlaufroutine mit einer Verzögerung von 5 Minuten.

  2. Ruhezustand/Ruhezustand des Computers nach 1 Minute (4 Minuten verbleiben auf dem Timer).

  3. Setzen Sie den Computer 10 Minuten später fort.

Das Standardverhalten ohne FIRONOADJUSTMENT besteht darin, dass Sie noch 4 Minuten warten müssen, bis Ihre Routine ausgeführt wird. Das heißt, Ihr Timer wurde angepasst, um zu ermöglichen, wie lange der Computer im Ruhezustand war. Wenn Sie JEDOCH FIRONOADJUSTMENT bestehen, wird Ihre Leerlaufroutine sofort ausgeführt, da mehr als 5 Minuten Echtzeit verstrichen sind.