CeRapiInitEx (RAPI)

Windows Mobile SupportedWindows Embedded CE Supported

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

See Also

Reference

RAPI Functions
CeRapiInit (RAPI)
RAPIINIT