Я хотел бы программно получить выбранную календарную дату в плагине C ++ Outlook, который я исправляю.
Предположительно это включает использование свойств SelectedStartTime и SelectedEndTime объекта CalendarView.
Я изучил SO (и Интернет) и нашел решение в VB и C #, но у меня возникли проблемы при переносе реализации на C ++. Мне удалось получить объект просмотра — но я не знаю, как получить объект calendarView.
Это оригинальный вопрос SO в C #:
Outlook Addin — Получить текущую выбранную дату календаря
Это реализация, которую я имею (пока) в 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.
}
}
}
}
}
Вызовите QueryInterface в переменной представления, чтобы запросить интерфейс CalendarView, затем используйте свойства CalendarView :: SelectedStartTime / SelectedEndTime.