//
        // Lines managments functions
        //

        private void DrawLine(Util.line lineToDraw, System.Drawing.Graphics PG)
        {
            PG.DrawLine(BlackPen,
                        lineToDraw.XFrom,
                        lineToDraw.YFrom,
                        lineToDraw.XTo,
                        lineToDraw.YTo);
        }
        //
        // Message receiving handler
        //
        private void qMe_ReceiveCompleted(object sender, System.Messaging.ReceiveCompletedEventArgs e)
        {
            Util.line    lineToDraw = new Util.line();
            MessageQueue mq         = (MessageQueue)sender;

            System.Messaging.Message m = mq.EndReceive(e.AsyncResult);
            if (m.Body.ToString().Length == 1)
            {             // Draw a char
                DrawChar(m.Body.ToString());
            }
            else
            {             // Draw a line
                HP.StringToLine(m.Body.ToString(), ref lineToDraw);
                AddLine(lineToDraw, picture1Graphics);
            }
            mq.BeginReceive();
        }
        private void picture1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            if ((e.Button != MouseButtons.Left) || (e.X <= 0) || (e.Y <= 0))
            {
                return;
            }

            Util.line lineToDraw = new Util.line();
            lineToDraw.XFrom = iLastX;
            lineToDraw.YFrom = iLastY;
            lineToDraw.XTo   = e.X;
            lineToDraw.YTo   = e.Y;
            AddLine(lineToDraw, picture1Graphics);
            iLastX = e.X;
            iLastY = e.Y;

            if (qFriend == null)
            {
                return;
            }

            System.Messaging.Message SendMsg;
            SendMsg           = new System.Messaging.Message();
            SendMsg.Formatter = new ActiveXMessageFormatter();
            SendMsg.Priority  = MessagePriority.Normal;
            SendMsg.Body      = HP.LineToString(lineToDraw.XFrom,
                                                lineToDraw.YFrom,
                                                lineToDraw.XTo,
                                                lineToDraw.YTo);
            SendMsg.Label = lineToDraw.XFrom.ToString() + "," +
                            lineToDraw.YFrom.ToString() + " To " +
                            lineToDraw.XTo.ToString() + "," +
                            lineToDraw.YTo.ToString();
            SendMsg.Recoverable = radioSendRec.Checked;
            qFriend.Send(SendMsg);
        }
 //
 // Message receiving handler
 //
 private void qMe_ReceiveCompleted(object sender, System.Messaging.ReceiveCompletedEventArgs e)
 {
     Util.line lineToDraw = new Util.line();
     MessageQueue mq = (MessageQueue)sender;
     System.Messaging.Message m = mq.EndReceive(e.AsyncResult);
     if (m.Body.ToString().Length==1)
     { // Draw a char
         DrawChar(m.Body.ToString());
     }
     else
     { // Draw a line
         HP.StringToLine(m.Body.ToString(),ref lineToDraw);
         AddLine(lineToDraw,picture1Graphics);
     }
     mq.BeginReceive();
 }
        private void picture1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            if ((e.Button!=MouseButtons.Left) || (e.X <= 0) || (e.Y <= 0)) return;

            Util.line lineToDraw = new Util.line();
            lineToDraw.XFrom=iLastX;
            lineToDraw.YFrom=iLastY;
            lineToDraw.XTo=e.X;
            lineToDraw.YTo=e.Y;
            AddLine(lineToDraw,picture1Graphics);
            iLastX=e.X;
            iLastY=e.Y;

            if (qFriend == null) return;

            System.Messaging.Message SendMsg;
            SendMsg = new System.Messaging.Message();
            SendMsg.Formatter = new ActiveXMessageFormatter();
            SendMsg.Priority=MessagePriority.Normal;
            SendMsg.Body=HP.LineToString(lineToDraw.XFrom,
                                         lineToDraw.YFrom,
                                         lineToDraw.XTo,
                                         lineToDraw.YTo);
            SendMsg.Label=lineToDraw.XFrom.ToString()+","+
                          lineToDraw.YFrom.ToString()+" To "+
                          lineToDraw.XTo.ToString()+","+
                          lineToDraw.YTo.ToString();
            SendMsg.Recoverable = radioSendRec.Checked;
            qFriend.Send(SendMsg);
        }
 private void AddLine(Util.line lineToDraw, System.Drawing.Graphics PG)
 {
     DrawLine(lineToDraw, PG);
     lines.Add(lineToDraw);
 }