我想以编程方式在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.
}
}
}
}
}
答案 0 :(得分:1)
在视图变量上调用QueryInterface以查询CalendarView接口,然后使用CalendarView :: SelectedStartTime / SelectedEndTime属性。