Я пытаюсь отправить ответ на входящее мгновенное сообщение от lync.
Чтобы отправить сообщение, вы должны проверить текущий статус модальности, в моем случае:
((InstantMessageModality)_conversation.Modalities[ModalityTypes.InstantMessage]).CanInvoke(
ModalityAction.SendInstantMessage)
Дело в том, что что бы я ни пытался, оно всегда возвращает ложь, несмотря ни на что. В обычном клиенте lync я могу ответить на мгновенное сообщение, поэтому проблем не должно быть.
Я зарегистрировал всех необходимых слушателей, и я делаю то же самое, что показано на странице MSDN. Возможно, мне нужно что-то сделать, прежде чем я смогу ответить на сообщение чата, но я еще не понял.
Я читал кое-что об автоматизации (client.GetAutomation()
), но я не уверен, что это правильный путь.
public void InstantMessageReceived(object sender, MessageSentEventArgs e)
{
var text = e.Text.Replace(Environment.NewLine, string.Empty);
_trayIcon.BalloonTipText = text;
_trayIcon.ShowBalloonTip(2000);
SendMessage("test");
}
private void SendMessage(string messageToSend)
{
try
{
IDictionary<InstantMessageContentType, string> textMessage =
new Dictionary<InstantMessageContentType, string>();
textMessage.Add(InstantMessageContentType.PlainText, messageToSend);
if (((InstantMessageModality)_conversation.Modalities[ModalityTypes.InstantMessage]).CanInvoke(
ModalityAction.SendInstantMessage))
{
((InstantMessageModality)_conversation.Modalities[ModalityTypes.InstantMessage]).BeginSendMessage(
textMessage,
SendMessageCallback,
textMessage);
}
}
catch (Exception e)
{
MessageBox.Show("Client Platform Exception: " + e.Message, "Send Message");
}
}