ChangeIdleRoutine

适用于:Outlook 2013 | Outlook 2016

更改基于 FNIDLE 的空闲例程的部分或全部特征。

说明
标头文件:
Mapiutil.h
实现者:
MAPI
调用者:
客户端应用程序和服务提供商
VOID ChangeIdleRoutine(
  FTG ftg,
  PFNIDLE pfnIdle,
  LPVOID pvIdleParam,
  short priIdle,
  ULONG csecIdle,
  USHORT iroIdle,
  USHORT ircIdle
);

参数

ftg

[in]标识空闲例程的函数标记。

pfnIdle

[in]指向空闲例程的指针。

pvIdleParam

[in]指向调用实现为空闲例程分配的新内存块的指针。

priIdle

[in]表示空闲例程的新优先级的值。 实现定义的例程的可能优先级大于或小于零,但不能为零。 为用户事件(例如鼠标单击或WM_PAINT消息)保留值为零。 大于零的值表示优先级高于用户事件的后台任务的优先级,并且作为标准 Windows 消息泵循环的一部分进行调度。 小于零的值表示仅在消息泵空闲时间运行的空闲任务的优先级。 优先级示例包括:1 个用于前台提交,1 个用于电源编辑字符插入,3 个用于下载新邮件。

csecIdle

[in]要应用于空闲例程的新时间(以百分之一秒为单位)。 初始时间值的含义因 iroIdle 参数中传递的内容而异。 它可以是:

  • 如果在 iroIdle 中设置了 FIROWAIT 标志,则 MAPI 空闲引擎首次调用空闲例程之前必须经过的最小用户不操作时间。 在此时间过后,空闲引擎可以根据需要经常调用空闲例程。

  • 如果在 iroIdle 中设置了 FIROINTERVAL 标志,则为调用空闲例程之间的最小间隔。

iroIdle

[in]标志的位掩码,指示用于调用空闲例程的新选项。 必须设置以下标志之一:

  • FIROINTERVAL: csecIdle 参数指定的时间是连续调用空闲例程之间的最小间隔。

  • FIROONCEONLY:已过时。 请勿使用。

  • FIROPERBLOCK:已过时。 请勿使用。

  • FIROWAIT: csecIdle 参数指定的时间是 MAPI 空闲引擎首次调用空闲例程之前必须经过的用户无所作为的最短时间段。 在此时间过后,空闲引擎可以根据需要经常调用空闲例程。

ircIdle

[in]用于指示要对空闲例程进行更改的标志的位掩码。 可以任意组合设置以下标志:

  • FIRCCSEC:对与空闲例程关联的时间的更改,即由 csecIdle 参数中传递的值指示的更改。

  • FIRCIRO:对空闲例程的选项的更改,即由 iroIdle 参数中传递的值指示的更改。

  • FIRCPFN:对空闲例程指针的更改,即 pfnIdle 参数中传递的值指示的更改。

  • FIRCPRI:对空闲例程的优先级的更改,即由 priIdle 参数中传递的值指示的更改。

  • FIRCPV:对空闲例程的内存块的更改,即由 pvIdleParam 参数中传递的值指示的更改。

返回值

无。

说明

以下函数处理 MAPI 空闲引擎和基于 FNIDLE 函数原型的空闲例程:

空闲例程函数 使用情况
ChangeIdleRoutine
更改已注册的空闲例程的特征。
DeregisterIdleRoutine
从 MAPI 系统中删除已注册的空闲例程。
EnableIdleRoutine
禁用或重新启用已注册的空闲例程,而无需将其从 MAPI 系统中删除。
FtgRegisterIdleRoutine
将空闲例程添加到 MAPI 系统,无论是否启用它。
MAPIDeInitIdle
关闭调用应用程序的 MAPI 空闲引擎。
MAPIInitIdle
初始化调用应用程序的 MAPI 空闲引擎。

ChangeIdleRoutineDeregisterIdleRoutineEnableIdleRoutine 采用 FtgRegisterIdleRoutine 返回的函数标记作为输入参数。

当平台的所有前台任务都处于空闲状态时,MAPI 空闲引擎会调用已准备好执行的最高优先级空闲例程。 不能保证在同一优先级的空闲例程之间调用顺序。