C# 如何从调用应用程序获取实例
我有一个用于调用C#.NET方法的第三方应用程序的插件,我需要从调用应用程序获取实例C# 如何从调用应用程序获取实例,c#,mapinfo,C#,Mapinfo,我有一个用于调用C#.NET方法的第三方应用程序的插件,我需要从调用应用程序获取实例 _MapInfoApplication = (MapInfo.MapInfoApplication) System.Runtime.InteropServices.Marshal.GetActiveObject("Mapinfo.application"); 从应用程序中给我一个活动实例,但如果有两个打开的应用程序实例,我不知道是否找到了正确的实例,是否有方法确定调用者?使用System.Runtime.In
_MapInfoApplication = (MapInfo.MapInfoApplication) System.Runtime.InteropServices.Marshal.GetActiveObject("Mapinfo.application");
从应用程序中给我一个活动实例,但如果有两个打开的应用程序实例,我不知道是否找到了正确的实例,是否有方法确定调用者?使用
System.Runtime.InteropServices.Marshal.GetObjectForIUnknown
方法,使用MapInfo
中的IDispatchID
作为参数传递对象指针:
public static void MINote(int MIWindowID, string Message)
{
System.IntPtr MIDispatchPtr = new IntPtr(MIWindowID);
DMapInfo MIConnection = (DMapInfo)Marshal.GetObjectForIUnknown(MIDispatchPtr);
MIConnection.Do(String.Format("Note \"Note from CSharp: {0}\"",Message));
DMBApplications Applications = (DMBApplications) MIConnection.MBApplications;
foreach (DMapBasicApplication mbApp in Applications)
{
MIConnection.Do(String.Format("Note \"MB App. running in this MapInfo instance: {0}\"", mbApp.Name));
}
}
谢谢正是我需要的。