Função WsAsyncExecute (webservices.h)
Função auxiliar para implementar uma operação assíncrona .
Sintaxe
HRESULT WsAsyncExecute(
[in] WS_ASYNC_STATE *asyncState,
[in, optional] WS_ASYNC_FUNCTION operation,
[in] WS_CALLBACK_MODEL callbackModel,
[in] void *callbackState,
[in, optional] const WS_ASYNC_CONTEXT *asyncContext,
[in, optional] WS_ERROR *error
);
Parâmetros
[in] asyncState
Um ponteiro para a estrutura de WS_ASYNC_STATE usada durante a operação assíncrona. Esse é um parâmetro de manutenção de estado não destinado ao uso direto. O aplicativo deve alocar a estrutura WS_ASYNC_STATE e garantir que ela seja mantida ativa durante toda a operação assíncrona. A estrutura WS_ASYNC_STATE pode ser reutilizado após a conclusão de uma operação assíncrona.
[in, optional] operation
Representa a operação assíncrona inicial a ser executada.
[in] callbackModel
Indica se o retorno de chamada está sendo invocado longo ou curto. Para obter mais informações, consulte WS_CALLBACK_MODEL
[in] callbackState
Um ponteiro nulo para um valor definido pelo usuário que é passado para cada WS_ASYNC_FUNCTION.
[in, optional] asyncContext
Ponteiro para informações para invocar a função de forma assíncrona. Passe NULL para invocar a função de forma síncrona.
[in, optional] error
Ponteiro para uma estrutura WS_ERROR que recebe informações de erro adicionais se a função falhar.
Valor retornado
Se a função for bem-sucedida, ela retornará NO_ERROR; caso contrário, ele retornará um código de erro HRESULT.
Comentários
Para entender como o WWSAPI lida com operações assíncronas, consulte o tópico Modelo Assíncrono .
Em muitos casos, uma operação assíncrona é composta por outras operações assíncronas. Cada operação assíncrona pode retornar WS_S_ASYNC indicando que o retorno de chamada será invocado ou qualquer outro código de êxito ou falha; nesse caso, o retorno de chamada não será invocado. A operação deve estar preparada para aceitar uma WS_ASYNC_CONTEXT NULL indicando que o chamador está solicitando que a operação seja executada de forma síncrona. Ele também deve garantir que o retorno de chamada seja invocado adequadamente. Em operações assíncronas complexas, WsAsyncExecute simplifica esses detalhes.
O WsAsyncExecute opera invocando um retorno de chamada definido pelo usuário que pode iniciar uma operação assíncrona e indicar uma função a ser invocada quando a operação assíncrona for concluída. Essa sequência continua até que o retorno de chamada não defina outra função a ser invocada. Neste ponto, o retorno de chamada especificado pelo WS_ASYNC_CONTEXT será invocado se qualquer uma das operações for concluída de forma assíncrona.
O parâmetro WS_ASYNC_STATE é usado por WsAsyncExecute para manter seu estado e não se destina a ser inicializado, inspecionado ou usado pelo chamador. No entanto, o chamador deve alocar o WS_ASYNC_STATE e garantir que ele seja mantido ativo durante toda a operação assíncrona. O WS_ASYNC_STATE pode ser reutilizado depois que a operação assíncrona for concluída.
Os exemplos AsyncAdd3ExplicitExample e AsyncAdd3ImplicitExample demonstram a implementação da mesma função assíncrona manualmente usando WsAsyncExecute.
Requisitos
Cliente mínimo com suporte | Windows 7 [aplicativos da área de trabalho | Aplicativos UWP] |
Servidor mínimo com suporte | Windows Server 2008 R2 [aplicativos da área de trabalho | Aplicativos UWP] |
Plataforma de Destino | Windows |
Cabeçalho | webservices.h |
Biblioteca | WebServices.lib |
DLL | WebServices.dll |