Как моя надстройка Outlook может получить объект вложения, который пользователь щелкает правой кнопкой мыши в моем пользовательском меню?

Я хочу получить текущий выбранный встроенный объект вложения, щелкнув его правой кнопкой мыши в контекстном меню и нажав пользовательскую кнопку.

Вот шаги, которые я сделал до сих пор:

  • Добавлена ​​пользовательская кнопка для контекстного меню ленты ContextMenuInlinePicture.

    <customUI ...>
        <contextMenus>
        <contextMenu idMso="ContextMenuInlinePicture">
            <button id="SendInlinePictureToHbbButton"
                    label="Send to HBB"
                    onAction="OnSendInlinePictureToHbbButtonClick" />
        </contextMenu>
        </contextMenus>
    </customUI>
    
  • Щелкнув по нему правой кнопкой мыши, я вызываю свою функцию OnSendInlinePictureToHbbButtonClick:

        public void OnSendInlinePictureToHbbButtonClick(IRibbonControl control)
    {
        var msg = "OnSendMailToHbbButtonClick \n\n";
        if (control.Context is Explorer)
        {
            msg = "Context=Explorer \n";
            var explorer = control.Context as Explorer;
            if (explorer.AttachmentSelection.Count >= 1)
            {
                msg += "AttachmentSelection \n";
                msg = explorer.AttachmentSelection
                    .Cast<Attachment>()
                    .Aggregate(msg, (current, attach) => current + attach.DisplayName + "\n");
            }
            else
            {
                var selection = explorer.Selection;
                msg += "MailItemSelection \n";
                if (selection.Count == 1)
                {
                    var olItem = new OutlookItem(selection[1]);
                    msg = msg + olItem.Subject + "\n" + olItem.LastModificationTime;
                }
                else
                {
                    msg = msg + "Multiple Selection Count=" + selection.Count;
                }
            }
        }
        MessageBox.Show(msg);
    }
    
  • При запуске надстройки я вижу элемент пользовательского контекстного меню, щелкнув правой кнопкой мыши встроенное изображение/вложение.

введите здесь описание изображения

  • После нажатия на эту кнопку запускается вышеуказанный метод, но я не могу получить «AttachmentSelection». Вместо этого я получаю "MailItemSelection".

введите здесь описание изображения

  • Как я могу заставить пользователя объекта вложения щелкнуть правой кнопкой мыши, чтобы я мог работать с ним?

person nihique    schedule 14.11.2012    source источник


Ответы (1)


Я связался с Microsoft через решение инцидента с подпиской MSDN, и они сказали мне, что это невозможно сделать.

Прикрепляю ответ MS:

Привет, Мартин! Я из группы поддержки разработчиков сообщений и взял на себя ответственность за это дело. Приношу извинения за задержку, но у моей команды в настоящее время очень большая рабочая нагрузка, и это влияет на время ответа. Я рассмотрел вопрос, как описано в Как моя надстройка Outlook может получить объект вложения, который пользователь щелкает правой кнопкой мыши в моем пользовательском меню? , и простой ответ заключается в том, что невозможно сделать то, что вы хотите, используя Объектная модель Outlook. Ваш код делает то, что ожидается, поскольку вы запрашиваете у объекта Explorer его выбранные элементы — и вам возвращается MailItem. Это выбранный элемент в объекте Explorer. В области предварительного просмотра нет событий/свойств, поэтому невозможно определить, какой объект там выбран. Можно было бы найти все встроенные вложения текущего выбранного элемента, если бы это было полезно, но функциональность, которая вам нужна, недоступна. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.

person nihique    schedule 19.11.2012