by Dmitry [dimaka] Pavlov
16. March 2010 21:30
В рамках одного из проектов я озадачился тем, как получить ссылки на открытые окна ArcMap на языке C#. Документация говорит, что это нужно делать следующим образом:
Type appRefType = Type.GetTypeFromProgID("esriFramework.AppRef");
object appRefObject = Activator.CreateInstance(appRefType);
IApplication application = appRefObject as IApplication;
но при попытке так сделать я получил следующую ошибку:
Creating an instance of the COM component with CLSID {E1740EC5-9513-11D2-A2DF-0000F8774FB5} from the IClassFactory failed due to the following error: 8000ffff.
после мучительных поисков (программирование для ГИС-продуктов ESRI для меня пока в новинку) я получил вот такой код для доступа к открытым окнам ArcMap:
AppROT appRot = new AppROT();
int appCount = appRot.Count;
for (int i = 0; i < appCount; i++)
{
AppRef appRef = appRot.get_Item(i);
IApplication application = appRef;
...
}
Надеюсь поможет сэкономить Ваше время!