Tenemos un montón de formularios escritos en C# como ArcMap comandos que se ejecutan felizmente en la forma normal de los botones de comando. Las formas de interactuar con el mapa mediante la creación de capas y simbologías, y por la escucha de las selecciones en las capas de actualizar su propia pantalla.
Para un número de molestos razones, ahora tenemos que convertir estos a correr a partir de un ejecutable externo, pero todavía interactuar con ArcMap. Estoy tratando de utilizar el enfoque de ArcMap "automatización" de manera que las formas son creadas por el archivo ejecutable, que también crea un ArcMap instancia y se lo pasa a las formas que les permitan interactuar.
Tengo pasado el proceso, por problemas de espacio de no ser capaz de utilizar la "nueva" creación de instancias en el código del formulario de ArcObjects (capas, etc) que ArcMap tiene para interactuar con, y el uso de IObjectFactory para obtener ArcMap para crear por mí en su lugar.
Pero estoy luchando con los eventos. El formulario debe escuchar a eventos como SelectionChanged en el mapa y actualización de sí mismo. Si puedo crear un controlador de eventos en el modo normal como
dSelChangedE = new IActiveViewEvents_SelectionChangedEventHandler(OnSelectionChanged);
m_pMap.SelectionChanged += dSelChangedE;
Entonces mi OnSelectionChanged método de evento en el formulario se inicia correctamente, pero ArcMap parece perder el evento en sí (incluso cuando estaba en ArcMap que la ha creado, por ejemplo, por interactivas de selección de función): la selección no se muestra en pantalla! Supongo que esto es un proceso-problemas de espacio de nuevo, pero no sé cómo conseguir alrededor de ellos. Yo no puedo ver ninguna manera de hacer IObjectFactory hacer que el controlador de eventos, por ejemplo.
Este hilo en el antiguo ESRI foros es similar el problema que estoy teniendo http://forums.esri.com/Thread.asp?c=93&f=993&t=213577 pero en mi caso es al revés: que puedo conseguir mi aplicación de control para escuchar los eventos, pero luego de Arcmap pierde la pista de ellos.