Articles of com

Erro ASP 0177: 8007007e Server.CreateObject falha para COM DLL

Estamos tentando instalar uma DLL COM em um novo servidor. A interface é ASP clássico. A DLL do conector de mapa parece ser o problema, mas isso é o máximo que posso obter. Não conseguimos que as páginas servidas pelo IIS forneçam algo além de um erro 500. Ao rastrear o ASP: 127. -ASP_SCRIPT_TRACE_COM_CALL_END Caminho […]

StaTaskScheduler e STA mensagem de bombeamento de thread

TL; DR: Um deadlock dentro de uma tarefa executada pelo StaTaskScheduler . Versão longa: Eu estou usando StaTaskScheduler de ParallelExtensionsExtras pela equipe paralela, para hospedar alguns objects STA COM herdados fornecidos por terceiros. A descrição dos detalhes da implementação do StaTaskScheduler diz o seguinte: A boa notícia é que a implementação da TPL pode ser […]

Como o compilador C # detecta tipos COM?

EDIT: eu escrevi os resultados como um post no blog . O compilador C # trata os tipos de COM um pouco magicamente. Por exemplo, esta afirmação parece normal … Word.Application app = new Word.Application(); … até você perceber que o Application é uma interface. Chamando um construtor em uma interface? Yoiks! Isso realmente é […]

Gerar arquivos de manifesto para COM sem registro

Eu tenho alguns aplicativos (alguns nativos, alguns .net) que usam arquivos de manifesto para que eles possam ser implantados em isolamento completo , sem exigir qualquer registro COM global. Por exemplo, a dependência do servidor dbgrid32.ocx com é declarada da seguinte forma no arquivo myapp.exe.manifest que fica na mesma pasta que myapp.exe: O dbgrid32.ocx é […]

Como lidar com AccessViolationException

Eu estou usando um object COM (MODI) de dentro do meu aplicativo .net. O método que estou chamando lança um System.AccessViolationException, que é interceptado pelo Visual Studio. O curioso é que eu encerrei minha chamada em um try catch, que tem manipuladores para AccessViolationException, COMException e tudo mais, mas quando o Visual Studio (2010) intercepta […]

Você poderia explicar STA e MTA?

Você pode explicar STA e MTA com suas próprias palavras? Além disso, quais são os segmentos de apartamentos e eles pertencem apenas ao COM? Se sim, porque?

Como postar mensagens para um segmento STA executando uma bomba de mensagens?

Então, depois disso , decidi instanciar explicitamente um object COM em um thread STA dedicado. As experiências mostraram que o object COM precisava de uma bomba de mensagens, que eu criei chamando Application.Run() : private MyComObj _myComObj; // Called from Main(): Thread myStaThread = new Thread(() => { _myComObj = new MyComObj(); _myComObj.SomethingHappenedEvent += OnSomthingHappened; […]