Pergunta

Estou tentando instanciar uma conexão COM com o Communicator 2007 de um aplicativo fora do navegador Silverlight 4. Estou seguindo algum código de amostra - um exemplo (um pouco diferente) do qual é aqui - Mas estou recebendo um erro quando executo a seguinte linha:

dynamic communicator = AutomationFactory.CreateObject("Communicator.UIAutomation");

O erro é:

Failed to create an object instance for the specified ProgID.

Eu baixei e instalei o que acredito ser o SDK certo, mas a Oleview não está mostrando as DLLs como registradas - há algo que eu preciso fazer para registrar as DLLs no SDK? Regsvr32 não parece funcionar.

Estou fazendo isso tudo errado? Existe uma opção melhor, talvez com o SDK do Unified Communications (1.0 ou 2.0)?

Foi útil?

Solução

O comunicador está em execução na época? Ele deve estar em execução para usar a API.

O código acima funciona bem para mim, quando o comunicador está em execução, mas posso replicar seu erro, garantindo que ele não esteja em execução quando a linha acima for atingida.

Tenho certeza de que o SDK está registrado OK, pois você recebe um erro um pouco diferente se não fosse:

No object was found registered for specified ProgID.

Com relação ao SDK certo - depende do que você está tentando alcançar. A API de automação (ou seja, a que você está usando) permitirá que você automatize a instância em execução do Communicator, por isso é ótimo para obter informações sobre presença, iniciando conversas de IM, colocando chamadas telefônicas etc. despachando a interface do usuário do comunicador. Você só deve precisar olhar para a UCCA se não tiver garantia de que o Communicator estará em execução ou se você precisar fornecer sua própria interface do usuário.

Eu escrevi sobre as várias APIs aqui

Mais uma coisa a ter em mente, se a atualização para o Lync é uma opção, o SDK tem um monte de controles realmente úteis de Silverlight/WPF incorporados - algumas informações aqui

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top