Поделиться через


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

[в] Тег функции, идентифицирующий неактивную подпрограмму.

pfnIdle

[в] Указатель на неактивную подпрограмму.

pvIdleParam

[в] Указатель на новый блок памяти, выделенный вызывающей реализацией для неактивной подпрограммы.

priIdle

[в] Значение, представляющее новый приоритет для неактивной подпрограммы. Возможные приоритеты для подпрограмм, определяемых реализацией, больше или меньше нуля, но не равны нулю. Нулевое значение зарезервировано для события пользователя, например щелчка мышью или сообщения WM_PAINT. Значения больше нуля представляют приоритеты для фоновых задач, которые имеют более высокий приоритет, чем события пользователя, и отправляются в рамках стандартного цикла насоса сообщений Windows. Значения меньше нуля представляют приоритеты для задач простоя, которые выполняются только во время простоя насоса сообщений. Примеры приоритетов: 1 для отправки на передний план, 1 для вставки символов power-edit и 3 для скачивания новых сообщений.

csecIdle

[в] Новый раз, в сотых секундах, для применения к неактивной подпрограмме. Значение начального значения времени зависит от того, что передается в параметре iroIdle . Это может быть:

  • Минимальный период бездействия пользователя, который должен пройти до того, как модуль простоя MAPI впервые вызовет подпрограмму простоя, если флаг FIROWAIT установлен в iroIdle. По истечении этого времени подсистема бездействия может вызывать подпрограмму бездействия так часто, как это необходимо.

  • Минимальный интервал между вызовами неактивной подпрограммы, если флаг FIROINTERVAL установлен в iroIdle.

iroIdle

[в] Битовая маска флагов, указывающих новые параметры для вызова подпрограммы простоя. Необходимо задать только один из следующих флагов:

  • FIROINTERVAL: время, заданное параметром csecIdle , — это минимальный интервал между последовательными вызовами к неактивной подпрограмме.

  • FIROONCEONLY: устарело. Не следует использовать.

  • FIROPERBLOCK: устарел. Не следует использовать.

  • FIROWAIT: время, указанное параметром csecIdle , — это минимальный период бездействия пользователя, который должен пройти, прежде чем модуль простоя MAPI впервые вызовет подпрограмму простоя. По истечении этого времени подсистема бездействия может вызывать подпрограмму бездействия так часто, как это необходимо.

ircIdle

[в] Битовая маска флагов, используемая для указания изменений, которые должны быть внесены в подпрограмму простоя. Следующие флаги можно задать в любой комбинации:

  • FIRCCSEC: изменение времени, связанного с подпрограммой простоя, то есть изменение, указываемое значением, переданным в параметре csecIdle .

  • FIRCIRO: изменение параметров для неактивной подпрограммы, то есть изменение, указанное значением, переданным в параметре iroIdle .

  • FIRCPFN: изменение указателя неактивной подпрограммы, то есть изменение, указанное значением, переданным в параметре pfnIdle .

  • FIRCPRI: изменение приоритета неактивной подпрограммы, то есть изменение, указанное значением, переданным в параметре priIdle .

  • FIRCPV: изменение блока памяти неактивной подпрограммы, то есть изменение, указанное значением, переданным в параметре pvIdleParam .

Возвращаемое значение

Нет.

Замечания

Следующие функции работают с подсистемой простоя MAPI и подпрограммами простоя на основе прототипа функции FNIDLE :

Бездействуемая функция подпрограммы Использование
ChangeIdleRoutine
Изменяет характеристики зарегистрированной процедуры простоя.
DeregisterIdleRoutine
Удаляет зарегистрированную подпрограмму простоя из системы MAPI.
EnableIdleRoutine
Отключает или повторно включает зарегистрированную неактивную подпрограмму, не удаляя ее из системы MAPI.
FtgRegisterIdleRoutine
Добавляет в систему MAPI неактивную подпрограмму с включением или без нее.
MAPIDeInitIdle
Завершает работу модуля простоя MAPI для вызывающего приложения.
MAPIInitIdle
Инициализирует механизм простоя MAPI для вызывающего приложения.

ChangeIdleRoutine, DeregisterIdleRoutine и EnableIdleRoutine принимают в качестве входного параметра тег функции, возвращаемый FtgRegisterIdleRoutine.

Когда все задачи переднего плана для платформы становятся неактивными, подсистема простоя MAPI вызывает подпрограмму простоя с наивысшим приоритетом, которая готова к выполнению. Нет гарантии вызова порядка между неактивными подпрограммами с одинаковым приоритетом.