CeRapiInitEx (RAPI)
9/8/2008
Esta asyncronously função inicializa as camadas de comunicação entre o área de trabalho e o destino Windows Embedded CE-com base em remoto dispositivo. CeRapiInit Ou CeRapiInitEx deve ser chamado antes chamado qualquer um dos outros métodos Rapi.
Syntax
HRESULT CeRapiInitEx(
RAPIINIT * pRapiInit
);
Parameters
- pRapiInit
[no] Ponteiro para um RAPIINIT estrutura. O cbSize membro dessa estrutura contém o tamanho da estrutura que está sendo passada. Inicialmente, um identificador para um evento é passado voltar in a heRapiInit membro dessa estrutura. Quando a conexão é feita ou ocorrerá um erro, o evento é definido. O hrRapiInit membro dessa estrutura contém o valor S_OK se a conexão for bem-sucedido, ou E_FAIL se ocorreu um erro.
Return Value
S_OK indica sucesso. E_FAIL indica falha. E_INVALIDARG indica que um valor inválido foi encontrado.
Remarks
Uso CeRapiInitEx Para inicializar a sessão RAPI de forma assíncrona. CeRapiInit Pode ser usado para síncrono inicialização.
CeRapiInitEx retorna imediatamente e continuará assíncrono inicialização até que a conexão é feita, até que ocorra um erro ou até que há um chamar para CeRapiUninit. Quando for inicialização completo o evento especificado na heRapiInit membro das RAPIINIT estrutura é definida.
Após chamado CeRapiInitEx, verificar a valor de retorno para ver se ocorreu um erro. Se era a chamar bem-sucedido, chamar o MsgWaitForMultipleObjects função para aguardar o identificador evento a serem passados voltar in a heRapiInit membro das RAPIINIT estrutura. Quando o evento é definido, verificar o hrRapiInit membro da estrutura para determinar se a conexão foi bem-sucedido.
Para desligar para baixo ou para anular o processo conexão, chamar o CeRapiUnInit função.
Exemplo de código
O seguinte exemplo de código ilustra como usar CeRapiInitEx Para inicializar RAPI asyncronously.
HRESULT TryRapiConnect(DWORD dwTimeOut)
{
HRESULT hr = E_FAIL;
RAPIINIT riCopy;
bool fInitialized = false;
ZeroMemory(&riCopy, sizeof(riCopy));
riCopy.cbSize = sizeof(riCopy);
hr = CeRapiInitEx(&riCopy);
if (SUCCEEDED(hr))
{
DWORD dwRapiInit = 0;
fInitialized = true;
dwRapiInit = WaitForSingleObject(
riCopy.heRapiInit,
dwTimeOut);
if (WAIT_OBJECT_0 == dwRapiInit)
{
// heRapiInit signaled:
// set return error code to return value of RAPI Init function
hr = riCopy.hrRapiInit;
}
else if (WAIT_TIMEOUT == dwRapiInit)
{
// timed out: device is probably not connected
// or not responding
hr = HRESULT_FROM_WIN32(ERROR_TIMEOUT);
}
else
{
// WaitForSingleObject failed
hr = HRESULT_FROM_WIN32(GetLastError());
}
}
if (fInitialized && FAILED(hr))
{
CeRapiUninit();
}
return hr;
}
Requirements
Header | rapi.h |
Library | rapi.lib |
Windows Embedded CE | Windows CE 3.0 and later |
Windows Mobile | Pocket PC 2002 and later, Smartphone 2002 and later |