IMAPIStatus::FlushQueues
Aplica-se a: Outlook 2013 | Outlook 2016
Força todas as mensagens à espera de serem enviadas ou recebidas a serem carregadas ou baixadas imediatamente. O spooler MAPI status objeto e status objetos que os provedores de transporte implementam dão suporte a esse método.
HRESULT FlushQueues(
ULONG_PTR ulUIParam,
ULONG cbTargetTransport,
LPENTRYID lpTargetTransport,
ULONG ulFlags
);
Parâmetros
ulUIParam
[in] Um identificador para a janela pai de qualquer caixa de diálogo ou janelas que este método exibe.
cbTargetTransport
[in] A contagem de bytes no identificador de entrada apontada pelo parâmetro lpTargetTransport . O parâmetro cbTargetTransport é definido apenas em chamadas para o objeto status do spooler MAPI. Para chamadas para um provedor de transporte, o parâmetro cbTargetTransport é definido como 0.
lpTargetTransport
[in] Um ponteiro para o identificador de entrada do provedor de transporte que é para liberar suas filas de mensagens. O parâmetro lpTargetTransport é definido apenas em chamadas para o objeto status do carreador MAPI. Para chamadas para um provedor de transporte, o parâmetro lpTargetTransport é definido como NULL.
ulFlags
[in] Um bitmask de sinalizadores que controla a operação de descarga. Os seguintes sinalizadores podem ser definidos:
FLUSH_ASYNC_OK
A operação de liberação pode ocorrer de forma assíncrona. Esse sinalizador se aplica apenas ao objeto status do carreteiro MAPI.
FLUSH_DOWNLOAD
As filas de mensagens de entrada devem ser liberadas.
FLUSH_FORCE
A operação de liberação deve ocorrer independentemente, apesar da chance de uma redução no desempenho. Esse sinalizador deve ser definido quando um provedor de transporte assíncrono é direcionado.
FLUSH_NO_UI
O objeto status não deve exibir um indicador de progresso.
FLUSH_UPLOAD
As filas de mensagens de saída devem ser liberadas.
Valor de retorno
S_OK
A operação de liberação foi bem-sucedida.
MAPI_E_BUSY
Outra operação está em andamento; ela deve ser autorizada a ser concluída ou deve ser interrompida antes que essa operação possa ser iniciada.
MAPI_E_NO_SUPPORT
O objeto status não dá suporte a essa operação, conforme indicado pela ausência do sinalizador de STATUS_FLUSH_QUEUES na propriedade PR_RESOURCE_METHODS (PidTagResourceMethods) do objeto status.
Comentários
O método IMAPIStatus::FlushQueues solicita que o spooler MAPI ou um provedor de transporte envie imediatamente todas as mensagens na fila de saída ou receba todas as mensagens da fila de entrada. O FlushQueues é implementado apenas pelo objeto status do carreador MAPI e por objetos status que os provedores de transporte fornecem.
MAPI_E_BUSY deve ser retornado para solicitações assíncronas para que os clientes possam continuar trabalhando.
Por padrão, o FlushQueues é uma operação síncrona; o controle não retorna ao chamador até que a liberação seja concluída. Somente a operação de liberação executada pelo spooler MAPI pode ser assíncrona; os clientes solicitam esse comportamento definindo o sinalizador de FLUSH_ASYNC_OK.
Observações para implementadores
A implementação de um provedor de transporte remoto do FlushQueues define bits na propriedade PR_STATUS_CODE (PidTagStatusCode) na linha status do objeto logon para controlar como as filas são liberadas. Se um visualizador remoto passar no sinalizador FLUSH_UPLOAD, o método FlushQueues deverá definir os bits STATUS_INBOUND_ENABLED e STATUS_INBOUND_ACTIVE. Se um visualizador remoto passar no sinalizador FLUSH_DOWNLOAD, o método FlushQueues deverá definir os bits STATUS_OUTBOUND_ENABLED e STATUS_OUTBOUND_ACTIVE. Em seguida, FlushQueues deve retornar S_OK. O spooler MAPI iniciará as ações apropriadas para carregar e baixar mensagens.
Notas para chamadores
Uma chamada para o objeto status do carreador MAPI é uma diretiva para transferir todas as mensagens de ou para o provedor de transporte apropriado. Quando você chama o objeto status de um provedor de transporte individual, apenas as mensagens para esse provedor são afetadas.
Confira também
Propriedade Canônica PidTagResourceMethods