Outlook Addin - 使用C ++获取当前选定的日历日期

时间:2014-08-24 14:38:26

标签: c++ com outlook-addin

我想以编程方式在C ++ outlook插件中获取所选的日历日期。 这可能涉及使用CalendarView对象的SelectedStartTime和SelectedEndTime属性。

我已经搜索过SO(和网络),并在VB和C#中找到了解决方案,但我无法将实现迁移到C ++。我能够获得视图对象 - 但我不知道如何获取calendarView对象。

这是C#中的原始SO问题: Outlook Addin - Get current selected calendar date

这是我在C ++中实现的(到目前为止)。请注意,它不完整:

CComPtr<Outlook::_Explorer> spExplorer;
Outlook::MAPIFolder * pFolder;
CComPtr<Outlook::View> view;



hr = m_pHostApp->ActiveExplorer(&spExplorer);   
if (SUCCEEDED(hr) && spExplorer)
{
    hr =  spExplorer->get_CurrentFolder(&pFolder);
    if ((SUCCEEDED(hr)) && pFolder)
    {
        hr = pFolder->get_CurrentView(&view);
        if (SUCCEEDED(hr))
        {
            Outlook::OlViewType viewType;
            hr = view->get_ViewType(&viewType);
            if (SUCCEEDED(hr))
            {
                if (viewType == Outlook::olCalendarView)
                {
                      //the vb/C# solutions suggest that I need a calendar 
                      //view object here and somehow get its           
                      //SelectedStartTime and SelectedEndTime. 
                      //However I suspect there's no such object.. so I must be doing
                      //something wrong.
                }
            }
        }
    }
}

1 个答案:

答案 0 :(得分:1)

在视图变量上调用QueryInterface以查询CalendarView接口,然后使用CalendarView :: SelectedStartTime / SelectedEndTime属性。