GetSubject() and so on.
In ActiveX code there are enum:
typedef [ uuid(ECEC1B12-DD2C-47ab-8F12-9A813A074FAA), helpcontext(4493) ]
enum
{
[helpcontext(4493)] xtpCalendarBeforeDraw_DayViewTimeScale = 0x00000001, // Params - (long) nTimeScale = {1 - main, 2 - additional}
[helpcontext(4493)] xtpCalendarBeforeDraw_DayViewTimeScaleCaption = 0x00000002, // Params - (long) nTimeScale = {1 - main, 2 - additional};
[helpcontext(4493)] xtpCalendarBeforeDraw_DayViewTimeScaleCell = 0x00000004, // Params - (Dispatch) CalendarThemeDayViewTimeScaleCellParams*
[helpcontext(4493)] xtpCalendarBeforeDraw_DayViewDay = 0x00000010, // Params - (Dispatch) CalendarViewDay*;
[helpcontext(4493)] xtpCalendarBeforeDraw_DayViewDayGroup = 0x00000020, // Params - (Dispatch) CalendarViewGroup*;
[helpcontext(4493)] xtpCalendarBeforeDraw_DayViewCell = 0x00000040, // Params - (Dispatch) CalendarThemeDayViewCellParams*;
[helpcontext(4493)] xtpCalendarBeforeDraw_DayViewEvent = 0x00000080, // Params - (Dispatch) CalendarViewEvent*;
[helpcontext(4493)] xtpCalendarBeforeDraw_MonthViewDay = 0x00001000, // Params - (Dispatch) CalendarViewDay*
[helpcontext(4493)] xtpCalendarBeforeDraw_MonthViewEvent = 0x00002000, // Params - (Dispatch) CalendarViewEvent*
[helpcontext(4493)] xtpCalendarBeforeDraw_MonthViewWeekDayHeader = 0x00004000, // Params - (long) WeekDay = {1-Sun, 2-Mon, ...}, -1 for common part;
[helpcontext(4493)] xtpCalendarBeforeDraw_MonthViewWeekHeader = 0x00008000, // Params - (long) WeekIndex={0...N}, -1 for common part;
[helpcontext(4493)] xtpCalendarBeforeDraw_WeekViewDay = 0x00100000, // Params - (Dispatch) CalendarViewDay*
[helpcontext(4493)] xtpCalendarBeforeDraw_WeekViewEvent = 0x00200000, // Params - (Dispatch) CalendarViewEvent*
} CalendarBeforeDrawThemeObject;
also typedef [ uuid(C9D2A6AD-CFFA-49ec-9DE4-24738B9F1E72), helpcontext(4509) ]
enum
{
[helpcontext(4509)] xtpCalendarItemText_EventSubject = 0x00000001,
[helpcontext(4509)] xtpCalendarItemText_EventLocation = 0x00000002,
[helpcontext(4509)] xtpCalendarItemText_DayViewDayHeader = 0x00000004,
[helpcontext(4509)] xtpCalendarItemText_WeekViewDayHeader = 0x00000008,
[helpcontext(4509)] xtpCalendarItemText_MonthViewDayHeader = 0x00000010,
[helpcontext(4509)] xtpCalendarItemText_MonthViewWeekDayHeader = 0x00000020,
[helpcontext(4509)] xtpCalendarItemText_EventToolTipText = 0x00000040,
[helpcontext(4509)] xtpCalendarItemText_EventStartTimeText = 0x00000100,
[helpcontext(4509)] xtpCalendarItemText_EventEndTimeText = 0x00000200,
} XTPCalendarGetItemText;
[id(25), propget, helpcontext(4507)] CalendarFlagsSet* AskItemTextFlags();
[id(26), propget, helpcontext(4522)] CalendarFlagsSet* BeforeDrawThemeObjectFlags();
and finally function void CCalendarControlCtrl::OnEvent_BeforeDrawThemeObject(XTP_NOTIFY_CODE Event, WPARAM dwParam1, LPARAM dwParam2)
{
ASSERT(XTP_NC_CALENDAR_BEFORE_DRAW_THEMEOBJECT == Event);
if (XTP_NC_CALENDAR_BEFORE_DRAW_THEMEOBJECT != Event)
{
return;
}
int nObjType = (XTPCalendarBeforeDrawThemeObject)dwParam1;
COleVariant varParams;
varParams.vt = VT_EMPTY;
CCmdTarget* pObject = NULL;
switch (nObjType)
{
case xtpCalendarBeforeDraw_DayViewTimeScale:
case xtpCalendarBeforeDraw_DayViewTimeScaleCaption:
case xtpCalendarBeforeDraw_MonthViewWeekDayHeader:
case xtpCalendarBeforeDraw_MonthViewWeekHeader:
varParams = (long)dwParam2;
break;
case xtpCalendarBeforeDraw_DayViewTimeScaleCell:
if (!m_pThemeDVTSCellParamsHolder)
{
m_pThemeDVTSCellParamsHolder = new CCalendarThemeDayViewTimeScaleCellParams_imp();
if (!m_pThemeDVTSCellParamsHolder)
return;
}
ASSERT(dwParam2);
m_pThemeDVTSCellParamsHolder->SetDataRef((XTP_CALENDAR_THEME_DAYVIEWTIMESCALECELL_PARAMS*)dwParam2);
pObject = m_pThemeDVTSCellParamsHolder;
break;
case xtpCalendarBeforeDraw_DayViewDay: // dwParam2 - [in] pDayViewDay;
ASSERT(dwParam2);
pObject = (CCmdTarget*)(CXTPCalendarDayViewDay*)dwParam2;
break;
case xtpCalendarBeforeDraw_DayViewDayGroup: // dwParam2 - [in] pDayViewGroup;
ASSERT(dwParam2);
pObject = (CCmdTarget*)(CXTPCalendarDayViewGroup*)dwParam2;
break;
case xtpCalendarBeforeDraw_DayViewCell: // dwParam2 - [in] XTP_CALENDAR_THEME_DAYVIEWCELL_PARAMS *;
if (!m_pThemeDVCellParamsHolder)
{
m_pThemeDVCellParamsHolder = new CCalendarThemeDayViewCellParams_imp();
if (!m_pThemeDVCellParamsHolder)
return;
}
ASSERT(dwParam2);
m_pThemeDVCellParamsHolder->SetDataRef((XTP_CALENDAR_THEME_DAYVIEWCELL_PARAMS*)dwParam2);
pObject = m_pThemeDVCellParamsHolder;
break;
case xtpCalendarBeforeDraw_DayViewEvent: // dwParam2 - [in] pDayViewEvent;
ASSERT(dwParam2);
pObject = (CCmdTarget*)(CXTPCalendarDayViewEvent*)dwParam2;
break;
//=======================================================================
case xtpCalendarBeforeDraw_MonthViewDay: // dwParam2 - [in] pMonthViewDay;
ASSERT(dwParam2);
pObject = (CCmdTarget*)(CXTPCalendarMonthViewDay*)dwParam2;
break;
case xtpCalendarBeforeDraw_MonthViewEvent: // dwParam2 - [in] pMonthViewEvent;
ASSERT(dwParam2);
pObject = (CCmdTarget*)(CXTPCalendarMonthViewEvent*)dwParam2;
break;
//=======================================================================
case xtpCalendarBeforeDraw_WeekViewDay: // dwParam2 - [in] pWeekViewDay;
ASSERT(dwParam2);
pObject = (CCmdTarget*)(CXTPCalendarWeekViewDay*)dwParam2;
break;
case xtpCalendarBeforeDraw_WeekViewEvent: // dwParam2 - [in] pWeekViewEvent;
ASSERT(dwParam2);
pObject = (CCmdTarget*)(CXTPCalendarWeekViewEvent*)dwParam2;
break;
default:
ASSERT(FALSE);
return;
}
//------------------------------------------------
if (pObject)
{
varParams.vt = VT_DISPATCH;
varParams.pdispVal = pObject->GetIDispatch(TRUE);
}
//================================================
FireBeforeDrawThemeObject(nObjType, &varParams);
//================================================
if (m_pThemeDVTSCellParamsHolder)
m_pThemeDVTSCellParamsHolder->SetDataRef(NULL);
if (m_pThemeDVCellParamsHolder)
m_pThemeDVCellParamsHolder->SetDataRef(NULL);
}
It should help you to analyze passed params