private bool GetCalendarGridInfo( ComCtl32.MCGIF dwFlags, ComCtl32.MCGIP dwPart, int calendarIndex, int row, int column, out RECT rectangle, out Kernel32.SYSTEMTIME endDate, out Kernel32.SYSTEMTIME startDate) { Debug.Assert( (dwFlags & ~(ComCtl32.MCGIF.DATE | ComCtl32.MCGIF.RECT)) == 0, "GetCalendarGridInfo() should be used only to obtain Date and Rect," + "dwFlags has flag bits other that MCGIF_DATE and MCGIF_RECT"); ComCtl32.MCGRIDINFO gridInfo = new ComCtl32.MCGRIDINFO(); gridInfo.dwFlags = dwFlags; gridInfo.cbSize = (uint)Marshal.SizeOf(gridInfo); gridInfo.dwPart = dwPart; gridInfo.iCalendar = calendarIndex; gridInfo.iCol = column; gridInfo.iRow = row; bool result; try { result = GetCalendarGridInfo(ref gridInfo); rectangle = gridInfo.rc; endDate = gridInfo.stEnd; startDate = gridInfo.stStart; } catch { rectangle = new RECT(); endDate = new Kernel32.SYSTEMTIME(); startDate = new Kernel32.SYSTEMTIME(); result = false; } return(result); }
private unsafe bool GetCalendarGridInfo( MCGIF dwFlags, MCGIP dwPart, int calendarIndex, int row, int column, out RECT rectangle, out Kernel32.SYSTEMTIME endDate, out Kernel32.SYSTEMTIME startDate) { Debug.Assert( (dwFlags & ~(MCGIF.DATE | MCGIF.RECT)) == 0, "GetCalendarGridInfo() should be used only to obtain Date and Rect," + "dwFlags has flag bits other that MCGIF_DATE and MCGIF_RECT"); var gridInfo = new MCGRIDINFO { cbSize = (uint)sizeof(MCGRIDINFO), dwFlags = dwFlags, dwPart = dwPart, iCalendar = calendarIndex, iCol = column, iRow = row }; try { bool result = GetCalendarGridInfo(ref gridInfo); rectangle = gridInfo.rc; endDate = gridInfo.stEnd; startDate = gridInfo.stStart; return(result); } catch { rectangle = new RECT(); endDate = new Kernel32.SYSTEMTIME(); startDate = new Kernel32.SYSTEMTIME(); return(false); } }