Exemplo n.º 1
0
 /// <summary>
 /// 新規メッセージが到着したら、メッセージリストに追加します。
 /// </summary>
 /// <param name="skype"></param>
 void AddNewMessageToList(AxSkype skype)
 {
     skype.MessageStatus += new AxSKYPE4COMLib._ISkypeEvents_MessageStatusEventHandler((a, b) =>
     {
         ChatMessageClass chat = b.pMessage as ChatMessageClass;
         //既に存在するメッセージは無視
         if (AlreadyReceivedMessage.Where(i => i == chat.Id).Count() >= 1)
         {
             return;
         }
         AlreadyReceivedMessage.Add(chat.Id);
         var list = GetChatListWindow(chat.Chat.Blob, chat.Chat.FriendlyName);
         list.Items.Add(GetChatFormattedMessage(chat));
         //スクロールバーを一番下にする
         if (autoScrollCheckBox.CheckState == CheckState.Checked)
         {
             list.SelectedIndex = list.Items.Count - 1;
         }
         //メッセージを保存しておきます
         if (!Messages.ContainsKey(chat.Chat.Blob))
         {
             Messages.Add(chat.Chat.Blob, new List<IChatMessage>());
         }
         Messages[chat.Chat.Blob].Add(chat);
     });
 }
Exemplo n.º 2
0
 /// <summary>
 /// チャットをバルーンとして表示させるようにします。
 /// </summary>
 /// <param name="skype"></param>
 void AddMessageStatusHandler(AxSkype skype)
 {
     skype.MessageStatus += new AxSKYPE4COMLib._ISkypeEvents_MessageStatusEventHandler((a, b) =>
     {
         ChatMessageClass chat = b.pMessage as ChatMessageClass;
         if (chat.Status == TChatMessageStatus.cmsReceived)
         {
             notifyIcon.BalloonTipTitle = chat.Sender.Handle + "(" + chat.Chat.FriendlyName + ")";
             notifyIcon.BalloonTipText = chat.Body;
             notifyIcon.ShowBalloonTip(1000);
             // 最近受信したチャットのブロブ
             RecentReceivedChatBlob = chat.Chat.Blob;
         }
     });
 }