次の方法で共有


FtgRegisterIdleRoutine

適用対象: Outlook 2013 | Outlook 2016

MAPI システムに FNIDLE 関数ベースのアイドル ルーチンを追加します。

プロパティ
ヘッダー ファイル:
Mapiutil.h
実装元:
MAPI
呼び出し元:
クライアント アプリケーションとサービス プロバイダー
FTG FtgRegisterIdleRoutine(
  PFNIDLE pfnIdle,
  LPVOID pvIdleParam,
  short priIdle,
  ULONG csecIdle,
  USHORT iroIdle
);

パラメーター

pfnIdle

[in]アイドル ルーチンへのポインター。

pvIdleParam

[in]アイドル エンジンが呼び出すときにアイドル 状態のルーチンにパラメーターとして渡すメモリ ブロックへのポインター。

priIdle

[in]アイドル ルーチンの初期優先度。 実装定義ルーチンで考えられる優先順位は、0 より大きいか、0 より小さいですが、0 ではありません。 優先度 0 は、マウス クリックやWM_PAINT メッセージなどのユーザー イベント用に予約されています。 優先度が 0 より大きい場合は、ユーザー イベントよりも優先度が高く、標準の Windows メッセージ ポンプ ループの一部としてディスパッチされるバックグラウンド タスクを表します。 優先度が 0 未満は、メッセージ ポンプのアイドル時間中にのみ実行されるアイドル タスクを表します。 優先順位の例は、フォアグラウンド送信の場合は 1、power-edit 文字の挿入では 2、新しいメッセージをダウンロードする場合は 3 です。

csecIdle

[in]アイドル 状態のルーチン パラメーターを指定する際に使用される、100 分の 1 秒の初期時間値。 初期時間値の意味は、 iroIdle パラメーターで渡される内容によって異なります。 意味は、次のいずれかになります。

  • iroIdle で FIROWAIT フラグが設定されている場合、MAPI アイドル エンジンがアイドル ルーチンを初めて呼び出す前に経過する必要があるユーザーの操作の最小期間。 この時間が経過すると、アイドル エンジンは必要な頻度でアイドル ルーチンを呼び出すことができます。

  • iroIdle で FIROINTERVAL フラグが設定されている場合、アイドル ルーチンへの呼び出しの最小間隔。

iroIdle

[in]アイドル ルーチンの初期オプションを設定するために使用されるフラグのビットマスク。 次のフラグを設定できます。

FIRONOADJUSTMENT

このフラグを使用して、アイドル 状態のルーチン タイマーをスリープまたは再開用に調整しないように指定します。 このフラグのない既定の動作では、経過時間を計算するときにスリープ時間が除外されます。 FIRONOADJUSTMENT が渡された場合、経過時間の計算時にスリープ時間が含まれます。

FIRODISABLED

登録時にアイドル ルーチンを無効にする必要があります。 既定のアクションは、 FtgRegisterIdleRoutine によって登録されたときにアイドル ルーチンを有効にすることです。

FIROINTERVAL

csecIdle パラメーターで指定された時間は、アイドル ルーチンに対する連続する呼び出し間の最小間隔です。

FIROONCEONLY

使用されていません。 使用しないでください。

FIROPERBLOCK

使用されていません。 使用しないでください。

FIROWAIT

csecIdle パラメーターで指定された時間は、MAPI アイドル エンジンが初めてアイドル ルーチンを呼び出す前に経過する必要があるユーザーの操作の最小期間です。 この時間が経過すると、アイドル エンジンは必要な頻度でアイドル ルーチンを呼び出すことができます。

戻り値

FtgRegisterIdleRoutine 関数は、MAPI システムに追加されたアイドル ルーチンを識別する関数タグを返します。 FtgRegisterIdleRoutine は、メモリの問題などのために、クライアント アプリケーションまたはサービス プロバイダーのアイドル ルーチンを登録できない場合は、NULL を返します。

注釈

次の関数は、MAPI アイドル エンジンと FNIDLE 関数プロトタイプに基づくアイドル ルーチンを扱います。

アイドル ルーチン関数 使用状況
ChangeIdleRoutine
登録済みアイドル ルーチンの特性を変更します。
DeregisterIdleRoutine
MAPI システムから登録済みのアイドル ルーチンを削除します。
EnableIdleRoutine
MAPI システムから削除せずに、登録済みのアイドル ルーチンを無効または再び有効にします。
FtgRegisterIdleRoutine
MAPI システムにアイドル ルーチンを追加します。有効にするかどうかは関係ありません。
MAPIDeInitIdle
呼び出し元のアプリケーションの MAPI アイドル エンジンをシャットダウンします。
MAPIInitIdle
呼び出し元のアプリケーションの MAPI アイドル エンジンを初期化します。

ChangeIdleRoutineDeregisterIdleRoutineEnableIdleRoutine は、 FtgRegisterIdleRoutine によって返される関数タグを入力パラメーターとして受け取ります。

プラットフォームのすべてのフォアグラウンド タスクがアイドル状態になると、MAPI アイドル エンジンは、実行する準備ができている最も優先度の高いアイドル ルーチンを呼び出します。 同じ優先順位のアイドル ルーチン間で、呼び出し順序が保証されません。

iroIdle パラメーターで FIRONOADJUSTMENT フラグを使用する例を次に示します。

  1. アイドル ルーチンを 5 分の遅延で登録します。

  2. 休止状態/1 分後にコンピューターをスリープします (タイマーの残り 4 分)。

  3. 10 分後にコンピューターを再開します。

FIRONOADJUSTMENT を使用しない既定の動作は、ルーチンが実行されるまでさらに 4 分待つ必要があるということです。 つまり、タイマーは、コンピューターがスリープ状態になっていた時間を許可するように調整されました。 ただし、FIRONOADJUSTMENT を渡すと、5 分を超えるリアルタイムが経過したため、アイドル ルーチンがすぐに実行されます。