internal static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, ref COPYDATASTRUCT lParam);
            // ReSharper restore InconsistentNaming
            public MpcMessage(COPYDATASTRUCT data)
            {
                try
                {
                    dwData = (MPCAPI_COMMAND) data.dwData.ToUInt32();
                    lpData = Marshal.PtrToStringUni(data.lpData);
                }
                catch (OverflowException oe)
                {
                    throw new ArgumentException("Error decoding message", oe);
                }
                catch (InvalidCastException ice)
                {
                    throw new ArgumentException("Error decoding message", ice);
                }

                Debug.Print(dwData.ToString());
                Debug.Print(lpData ?? "NULL");
            }