Chamando comunicador.uiautomation de Silverlight 4
-
27-09-2019 - |
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)?
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