public static bool OpenExistingAppCallback(IntPtr hWnd, IntPtr lParam)
{
if (Win32.GetProp(hWnd, Game.programGuid) != IntPtr.Zero)
{
Win32.SetForegroundWindow(hWnd);
IntPtr intPtr = IntPtr.Zero;
int cbData = 0;
string mapArgument = EngineUtils.GetMapArgument();
if (mapArgument != null)
{
intPtr = Marshal.StringToCoTaskMemUni(mapArgument);
cbData = (mapArgument.Length + 1) * 2;
}
if (intPtr != IntPtr.Zero)
{
Win32.COPYDATASTRUCT cOPYDATASTRUCT = default(Win32.COPYDATASTRUCT);
cOPYDATASTRUCT.dwData = IntPtr.Zero;
cOPYDATASTRUCT.lpData = intPtr;
cOPYDATASTRUCT.cbData = cbData;
Win32.SendMessage(hWnd, 74, 0, ref cOPYDATASTRUCT);
}
Marshal.FreeCoTaskMem(intPtr);
return false;
}
return true;
}