Esempio n. 1
0
        public static bool ProcessRequest(ref Message msg, IPCHost host)
        {
            bool flag = false;

            if (msg.Msg == IPCServer.IPCMessage)
            {
                if ((int)msg.WParam == 2)
                {
                    msg.Result = (IntPtr)10;
                    flag       = true;
                }
                else if ((int)msg.WParam == 1)
                {
                    IntPtr hFile = IPCServer.OpenFileMapping(6U, false, "RadControl.IPC.Server.Request");
                    Telerik.WinControls.CodedUI.IPCMessage serverObject = IPCServer.GetServerObject(hFile);
                    IPCServer.CloseHandle(hFile);
                    host.ProcessMessage(ref serverObject);
                    host.Context = IPCServer.CreateFileMapping(new IntPtr(-1), IntPtr.Zero, 4U, 0U, 100000U, "RadControl.IPC.Server.Response");
                    IPCServer.SetServerObject(host.Context, serverObject);
                    msg.Result = (IntPtr)10;
                    flag       = true;
                }
                else if ((int)msg.WParam == 3)
                {
                    IPCServer.CloseHandle(host.Context);
                }
            }
            return(flag);
        }
Esempio n. 2
0
        public static Telerik.WinControls.CodedUI.IPCMessage SendRequest(
            IntPtr hWnd,
            Telerik.WinControls.CodedUI.IPCMessage request)
        {
            Telerik.WinControls.CodedUI.IPCMessage ipcMessage = (Telerik.WinControls.CodedUI.IPCMessage)null;
            IPCServer ipcServer   = new IPCServer();
            IntPtr    fileMapping = IPCServer.CreateFileMapping(new IntPtr(-1), IntPtr.Zero, 4U, 0U, 100000U, "RadControl.IPC.Server.Request");

            if (fileMapping != IntPtr.Zero)
            {
                if (IPCServer.SetServerObject(fileMapping, request))
                {
                    if ((int)Telerik.WinControls.NativeMethods.SendMessage(hWnd, IPCServer.IPCMessage, (IntPtr)1, IntPtr.Zero) == 10)
                    {
                        IntPtr hFile = IPCServer.OpenFileMapping(4U, false, "RadControl.IPC.Server.Response");
                        ipcMessage = IPCServer.GetServerObject(hFile);
                        IPCServer.CloseHandle(hFile);
                    }
                    Telerik.WinControls.NativeMethods.SendMessage(hWnd, IPCServer.IPCMessage, (IntPtr)3, IntPtr.Zero);
                }
                IPCServer.CloseHandle(fileMapping);
            }
            return(ipcMessage);
        }