Compartilhar via


FtgRegisterIdleRoutine

Aplica-se a: Outlook 2013 | Outlook 2016

Adiciona uma rotina ociosa baseada em função FNIDLE ao sistema MAPI.

Propriedade Valor
Arquivo de cabeçalho:
Mapiutil.h
Implementado por:
MAPI
Chamado por:
Aplicativos cliente e provedores de serviços
FTG FtgRegisterIdleRoutine(
  PFNIDLE pfnIdle,
  LPVOID pvIdleParam,
  short priIdle,
  ULONG csecIdle,
  USHORT iroIdle
);

Parâmetros

pfnIdle

[in] Um ponteiro para a rotina ociosa.

pvIdleParam

[in] Um ponteiro para um bloco de memória que o mecanismo ocioso deve passar como um parâmetro para a rotina ociosa quando ele o chama.

priIdle

[in] A prioridade inicial para a rotina ociosa. As possíveis prioridades para rotinas definidas pela implementação são maiores ou inferiores a zero, mas não zero. A prioridade zero é reservada para um evento de usuário, como um clique de mouse ou uma mensagem de WM_PAINT. Prioridades maiores que zero representam tarefas em segundo plano que têm uma prioridade maior do que os eventos do usuário e são enviadas como parte do loop padrão da bomba de mensagens do Windows. Prioridades inferiores a zero representam tarefas ociosas que só são executadas durante o tempo ocioso da bomba de mensagem. Exemplos de prioridades são os seguintes: 1 para envio em primeiro plano, 2 para inserção de caracteres de edição de energia e 3 para baixar novas mensagens.

csecIdle

[in] O valor de tempo inicial, em centésimos de segundo, a ser usado na especificação de parâmetros de rotina ociosa. O significado do valor de tempo inicial varia, dependendo do que é passado no parâmetro iroIdle . O significado pode ser um dos seguintes:

  • O período mínimo de inação do usuário que deve passar antes que o mecanismo ocioso MAPI chame a rotina ociosa pela primeira vez, se o sinalizador FIROWAIT for definido em iroIdle. Depois que esse tempo passar, o mecanismo ocioso pode chamar a rotina ociosa sempre que necessário.

  • O intervalo mínimo entre chamadas para a rotina ociosa, se o sinalizador FIROINTERVAL for definido em iroIdle.

iroIdle

[in] A máscara de bits de sinalizadores usada para definir opções iniciais para a rotina ociosa. Os seguintes sinalizadores podem ser definidos:

FIRONOADJUSTMENT

Use esse sinalizador para especificar que o temporizador de rotina ocioso não deve ser ajustado para dormir ou retomar. O comportamento padrão sem esse sinalizador é que o tempo de sono é excluído ao calcular o tempo decorrido. Se FIRONOADJUSTMENT for passado, o tempo de sono será incluído ao calcular o tempo decorrido.

FIRODISABLED

A rotina ociosa deve ser desabilitada quando registrada. A ação padrão é habilitar a rotina ociosa quando FtgRegisterIdleRoutine a registra.

FIROINTERVAL

O tempo especificado pelo parâmetro csecIdle é o intervalo mínimo entre chamadas sucessivas para a rotina ociosa.

FIROONCEONLY

Obsoleto. Não usar.

FIROPERBLOCK

Obsoleto. Não usar.

FIROWAIT

O tempo especificado pelo parâmetro csecIdle é o período mínimo de inação do usuário que deve passar antes que o mecanismo ocioso MAPI chame a rotina ociosa pela primeira vez. Depois que esse tempo passar, o mecanismo ocioso pode chamar a rotina ociosa sempre que necessário.

Valor de retorno

A função FtgRegisterIdleRoutine retorna uma marca de função identificando a rotina ociosa que foi adicionada ao sistema MAPI. Se FtgRegisterIdleRoutine não puder registrar a rotina ociosa para o aplicativo cliente ou provedor de serviços, por exemplo, devido a problemas de memória, ele retornará NULL.

Comentários

As funções a seguir lidam com o mecanismo ocioso MAPI e com rotinas ociosas com base no protótipo da função FNIDLE .

Função de rotina ociosa Uso
ChangeIdleRoutine
Altera as características de uma rotina ociosa registrada.
DeregisterIdleRoutine
Remove uma rotina ociosa registrada do sistema MAPI.
EnableIdleRoutine
Desabilita ou habilita novamente uma rotina ociosa registrada sem removê-la do sistema MAPI.
FtgRegisterIdleRoutine
Adiciona uma rotina ociosa ao sistema MAPI, com ou sem habilitá-la.
MAPIDeInitIdle
Desliga o mecanismo ocioso MAPI para o aplicativo de chamada.
MAPIInitIdle
Inicializa o mecanismo ocioso MAPI para o aplicativo de chamada.

ChangeIdleRoutine, DeregisterIdleRoutine e EnableIdleRoutine tomam como parâmetro de entrada a marca de função retornada por FtgRegisterIdleRoutine.

Quando todas as tarefas em primeiro plano para a plataforma ficam ociosas, o mecanismo ocioso MAPI chama a rotina ociosa de maior prioridade que está pronta para ser executada. Não há garantia de chamada de ordem entre rotinas ociosas da mesma prioridade.

Veja a seguir um exemplo de como usar o sinalizador FIRONOADJUSTMENT no parâmetro iroIdle .

  1. Registre uma rotina ociosa com um atraso de 5 minutos.

  2. Hibernar/Dormir o computador após 1 minuto (4 minutos restantes no temporizador).

  3. Retome o computador 10 minutos depois.

O comportamento padrão, sem FIRONOADJUSTMENT, é que você ainda precisa esperar mais quatro minutos para que sua rotina seja executada. Ou seja, seu temporizador foi ajustado para permitir quanto tempo o computador estava dormindo. No entanto, se você passar FIRONOADJUSTMENT, sua rotina ociosa será executada imediatamente porque mais de 5 minutos de tempo real se passaram.