48#include "wine/unicode.h"
55#define MCS_NOSELCHANGEONNAV 0x0100
57#define MC_SEL_LBUTUP 1
58#define MC_SEL_LBUTDOWN 2
59#define MC_PREVPRESSED 4
60#define MC_NEXTPRESSED 8
61#define MC_PREVNEXTMONTHDELAY 350
64#define MC_TODAYUPDATEDELAY 120000
66#define MC_PREVNEXTMONTHTIMER 1
67#define MC_TODAYUPDATETIMER 2
69#define MC_CALENDAR_PADDING 6
72#define DAYSTO100NSECS(days) (((ULONGLONG)(days))*24*60*60*10000000)
114 int height_increment;
149static const WCHAR themeClass[] = {
'S',
'c',
'r',
'o',
'l',
'l',
'b',
'a',
'r',0 };
219 const int mdays[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
235 return mdays[
month - 1] + ((year%400 == 0) ? 1 : ((year%100 != 0) &&
236 (year%4 == 0)) ? 1 : 0);
239 return mdays[
month - 1];
253 if (
time->wMonth < 1 ||
time->wMonth > 12 )
319 st_first = st_second =
st_null;
331 st_first = st_second =
st_null;
448 if((
time->wHour > 24) || (
time->wMinute > 59) || (
time->wSecond > 59))
490 date->wYear +=
m > 0 ? (
m - 1) / 12 :
m / 12 - 1;
491 date->wMonth =
m > 0 ? (
m - 1) % 12 + 1 : 12 +
m % 12;
524 (infoPtr->
firstDay - firstDay) % 7 + 1;
552 (infoPtr->
firstDay - first_day) % 7 + 1;
568 int firstDay, col,
row;
581 return col + 7 *
row - firstDay;
716 WARN(
"Unknown flag value, got %d\n",
flag);
789 static const WCHAR fmtW[] = {
'%',
'd',0 };
837 static const int states[] = {
869 static const WCHAR mmmmW[] = {
'M',
'M',
'M',
'M',0};
870 static const WCHAR mmmW[] = {
'M',
'M',
'M',0};
871 static const WCHAR mmW[] = {
'M',
'M',0};
872 static const WCHAR fmtyearW[] = {
'%',
'l',
'd',0};
873 static const WCHAR fmtmmW[] = {
'%',
'0',
'2',
'd',0};
874 static const WCHAR fmtmW[] = {
'%',
'd',0};
877 WCHAR monthW[80],
strW[80], fmtW[80], yearW[6] ;
878 int yearoffset, monthoffset, shiftX;
909 while (
strW[yearoffset])
917 while (
strW[monthoffset])
953 static const WCHAR fmt_weekW[] = {
'%',
'd',0 };
954 INT mindays, weeknum, weeknum1, startofprescal;
964 startofprescal = st.
wDay;
967 prev_month =
date->wMonth - 1;
968 if(prev_month == 0) prev_month = 12;
990 WARN(
"Unknown LOCALE_IFIRSTWEEKOFYEAR value %d, defaulting to 0\n", weeknum);
994 if (
date->wMonth == 1)
999 if ((infoPtr->
firstDay - weeknum1) % 7 > mindays)
1004 for(
i = 0;
i < 11;
i++)
1007 weeknum += startofprescal + 7;
1011 if ((infoPtr->
firstDay - weeknum1) % 7 > mindays) weeknum++;
1017 for(
i = 0;
i < prev_month - 1;
i++)
1020 weeknum += startofprescal + 7;
1024 if ((infoPtr->
firstDay - weeknum1) % 7 > mindays) weeknum++;
1036 for(
i = 0;
i < 6;
i++) {
1037 if((
i == 0) && (weeknum > 50))
1042 else if((
i == 5) && (weeknum > 47))
1063 static const WCHAR fmt_todayW[] = {
'%',
's',
' ',
'%',
's',0 };
1064 WCHAR buf_todayW[30], buf_dateW[20],
buf[80];
1163 lctype = LOCALE_SSHORTESTDAYNAME1 +
day;
1176 RECT r, fill_bk_rect;
1209 for(
j = 0;
j < 7;
j++) {
1358 return infoPtr->
delta;
1369 TRACE(
"delta %d\n", delta);
1371 infoPtr->
delta = delta;
1435 FIXME(
"No bug compatibility for day=%d\n",
day);
1442 infoPtr->
firstDay = (new_day >= 0) ? (++new_day) % 7 : new_day;
1520 if (!
range)
return 0;
1532 TRACE(
"%p %d %p\n", infoPtr, months, states);
1545 TRACE(
"%p\n", curSel);
1546 if(!curSel)
return FALSE;
1549 *curSel = infoPtr->
minSel;
1561 TRACE(
"%p\n", curSel);
1562 if(!curSel)
return FALSE;
1580 if (diff > 0) diff = 0;
1674 old_range[0] = infoPtr->
minSel;
1675 old_range[1] = infoPtr->
maxSel;
1693 if (diff > 0) diff = 0;
1724 TRACE(
"%p\n", today);
1726 if(!today)
return FALSE;
1763 TRACE(
"%p\n", today);
1915 if (
day < 1 && calIdx == 0)
2012 BOOL keep_selection;
2034 if (!keep_selection)
2086 TRACE(
"(hwnd=%p, uMsg=%x, wParam=%lx, lParam=%lx)\n",
2200 for (
i = 0;
i < 12;
i++)
2205 menupoint.
x =
ht.pt.x;
2206 menupoint.
y =
ht.pt.y;
2260 st[0] = st[1] =
ht.st;
2357 ERR(
"got unknown timer %ld\n",
id);
2383 TRACE(
"hit:%x\n",hit);
2490 static const WCHAR O0W[] = {
'0',
'0',0 };
2517 infoPtr->
textHeight =
tm.tmHeight +
tm.tmExternalLeading +
tm.tmInternalLeading;
2521 for (
i = 0;
i < 7;
i++)
2528 if (sz.
cx > day_width) day_width = sz.
cx;
2532 static const WCHAR sunW[] = {
'S',
'u',
'n' };
2576 weeknumrect->
left = 0;
2588 todayrect->
left = 0;
2634 if (
title->left + c_dx < 0) c_dx = 0;
2635 if (
title->top + c_dy < 0) c_dy = 0;
2637 for (
i = 0;
i <
y;
i++)
2639 for (
j = 0;
j <
x;
j++)
2662 TRACE(
"dx=%d dy=%d client[%s] title[%s] wdays[%s] days[%s] today[%s]\n",
2691 if (!
hFont)
return 0;
2693 hOldFont = infoPtr->
hFont;
2720 TRACE(
"(styletype=%lx, styleOld=0x%08x, styleNew=0x%08x)\n",
2737 TRACE(
"(styletype=%lx, styleOld=0x%08x, styleNew=0x%08x)\n",
2746 lpss->
styleNew &= ~MCS_MULTISELECT;
2768 infoPtr = heap_alloc_zero(
sizeof(*infoPtr));
2771 if (infoPtr ==
NULL) {
2772 ERR(
"could not allocate info memory!\n");
3012 case WM_THEMECHANGED:
3022 case WM_STYLECHANGED:
3025 case WM_STYLECHANGING:
static BOOL heap_free(void *mem)
static void * heap_realloc(void *mem, size_t len)
static const char * wine_dbgstr_point(const POINT *ppt)
static const char * wine_dbgstr_rect(const RECT *prc)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
BOOL COMCTL32_IsReflectedMessage(UINT uMsg) DECLSPEC_HIDDEN
VOID COMCTL32_RefreshSysColors(void) DECLSPEC_HIDDEN
COMCTL32_SysColor comctl32_color
static int MONTHCAL_GetDayFromPos(const MONTHCAL_INFO *infoPtr, POINT pt, INT calIdx)
static LRESULT MONTHCAL_LButtonDown(MONTHCAL_INFO *infoPtr, LPARAM lParam)
static LRESULT MONTHCAL_GetSelRange(const MONTHCAL_INFO *infoPtr, SYSTEMTIME *range)
static LRESULT MONTHCAL_GetToday(const MONTHCAL_INFO *infoPtr, SYSTEMTIME *today)
static LRESULT MONTHCAL_Timer(MONTHCAL_INFO *infoPtr, WPARAM id)
static LRESULT MONTHCAL_HitTest(const MONTHCAL_INFO *infoPtr, MCHITTESTINFO *lpht)
#define MC_PREVNEXTMONTHTIMER
static LRESULT MONTHCAL_SetDayState(const MONTHCAL_INFO *infoPtr, INT months, MONTHDAYSTATE *states)
static LRESULT MONTHCAL_SetColor(MONTHCAL_INFO *infoPtr, UINT index, COLORREF color)
static LRESULT MONTHCAL_LButtonUp(MONTHCAL_INFO *infoPtr, LPARAM lParam)
static int MONTHCAL_MonthDiff(const SYSTEMTIME *left, const SYSTEMTIME *right)
static LRESULT theme_changed(const MONTHCAL_INFO *infoPtr)
static LRESULT MONTHCAL_GetMaxTodayWidth(const MONTHCAL_INFO *infoPtr)
void MONTHCAL_Unregister(void)
static const SYSTEMTIME max_allowed_date
static void MONTHCAL_EditYear(MONTHCAL_INFO *infoPtr, INT calIdx)
static INT MONTHCAL_StyleChanging(MONTHCAL_INFO *infoPtr, WPARAM wStyleType, STYLESTRUCT *lpss)
static void MONTHCAL_CircleDay(const MONTHCAL_INFO *infoPtr, HDC hdc, const SYSTEMTIME *date)
static void MONTHCAL_CopyDate(const SYSTEMTIME *from, SYSTEMTIME *to)
static void MONTHCAL_NotifyDayState(MONTHCAL_INFO *infoPtr)
static LRESULT MONTHCAL_PrintClient(MONTHCAL_INFO *infoPtr, HDC hdc, DWORD options)
static LRESULT CALLBACK EditWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
static BOOL MONTHCAL_ValidateDate(const SYSTEMTIME *time)
static BOOL MONTHCAL_ValidateTime(const SYSTEMTIME *time)
static void MONTHCAL_GetDayPos(const MONTHCAL_INFO *infoPtr, const SYSTEMTIME *date, INT *col, INT *row, INT calIdx)
static BOOL MONTHCAL_IsSelRangeValid(const MONTHCAL_INFO *infoPtr, const SYSTEMTIME *range0, const SYSTEMTIME *range1, SYSTEMTIME *adjust)
static void MONTHCAL_NotifySelectionChange(const MONTHCAL_INFO *infoPtr)
#define MC_TODAYUPDATEDELAY
#define DAYSTO100NSECS(days)
static UINT fill_hittest_info(const MCHITTESTINFO *src, MCHITTESTINFO *dest)
static int get_localized_dayname(const MONTHCAL_INFO *infoPtr, unsigned int day, WCHAR *buff, unsigned int count)
#define MC_CALENDAR_PADDING
static BOOL MONTHCAL_IsDateInValidRange(const MONTHCAL_INFO *infoPtr, SYSTEMTIME *date, BOOL fix)
static void MONTHCAL_PaintTitle(MONTHCAL_INFO *infoPtr, HDC hdc, const PAINTSTRUCT *ps, INT calIdx)
static BOOL MONTHCAL_SetDayFocus(MONTHCAL_INFO *infoPtr, const SYSTEMTIME *st)
static void MONTHCAL_PaintTodayTitle(const MONTHCAL_INFO *infoPtr, HDC hdc, const PAINTSTRUCT *ps)
static void MONTHCAL_PaintCalendar(const MONTHCAL_INFO *infoPtr, HDC hdc, const PAINTSTRUCT *ps, INT calIdx)
static void MONTHCAL_GetNextMonth(SYSTEMTIME *date)
static LRESULT MONTHCAL_Create(HWND hwnd, LPCREATESTRUCTW lpcs)
static LRESULT MONTHCAL_RButtonUp(MONTHCAL_INFO *infoPtr, LPARAM lParam)
static LRESULT MONTHCAL_GetMonthRange(const MONTHCAL_INFO *infoPtr, DWORD flag, SYSTEMTIME *st)
static void MONTHCAL_GoToMonth(MONTHCAL_INFO *infoPtr, enum nav_direction direction)
static LRESULT MONTHCAL_SetSelRange(MONTHCAL_INFO *infoPtr, SYSTEMTIME *range)
static LRESULT MONTHCAL_GetMonthDelta(const MONTHCAL_INFO *infoPtr)
#define MC_PREVNEXTMONTHDELAY
static void MONTHCAL_GetMaxDate(const MONTHCAL_INFO *infoPtr, SYSTEMTIME *date)
#define MCS_NOSELCHANGEONNAV
static LRESULT MONTHCAL_Notify(MONTHCAL_INFO *infoPtr, NMHDR *hdr)
static LRESULT WINAPI MONTHCAL_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
struct MONTHCAL_INFO * LPMONTHCAL_INFO
static void MONTHCAL_UpdateSize(MONTHCAL_INFO *infoPtr)
static LRESULT MONTHCAL_GetFont(const MONTHCAL_INFO *infoPtr)
static void MONTHCAL_PaintLeadTrailMonths(const MONTHCAL_INFO *infoPtr, HDC hdc, const PAINTSTRUCT *ps)
static LRESULT MONTHCAL_SetFont(MONTHCAL_INFO *infoPtr, HFONT hFont, BOOL redraw)
static LRESULT MONTHCAL_SetMonthDelta(MONTHCAL_INFO *infoPtr, INT delta)
int MONTHCAL_MonthLength(int month, int year)
#define MC_TODAYUPDATETIMER
static void MONTHCAL_PaintButton(MONTHCAL_INFO *infoPtr, HDC hdc, enum nav_direction button)
static LRESULT MONTHCAL_GetMaxSelCount(const MONTHCAL_INFO *infoPtr)
static COLORREF MONTHCAL_GetColor(const MONTHCAL_INFO *infoPtr, UINT index)
static LRESULT MONTHCAL_SetCurSel(MONTHCAL_INFO *infoPtr, SYSTEMTIME *curSel)
static void MONTHCAL_Refresh(MONTHCAL_INFO *infoPtr, HDC hdc, const PAINTSTRUCT *ps)
static LRESULT MONTHCAL_SetRange(MONTHCAL_INFO *infoPtr, SHORT limits, SYSTEMTIME *range)
static LRESULT MONTHCAL_GetFirstDayOfWeek(const MONTHCAL_INFO *infoPtr)
static const WCHAR themeClass[]
static BOOL MONTHCAL_GetDayRect(const MONTHCAL_INFO *infoPtr, const SYSTEMTIME *date, RECT *r, INT calIdx)
static INT MONTHCAL_GetCalCount(const MONTHCAL_INFO *infoPtr)
static LRESULT MONTHCAL_GetCurSel(const MONTHCAL_INFO *infoPtr, SYSTEMTIME *curSel)
static void MONTHCAL_PaintFocusAndCircle(const MONTHCAL_INFO *infoPtr, HDC hdc, const PAINTSTRUCT *ps)
static BOOL MONTHCAL_UpdateToday(MONTHCAL_INFO *infoPtr, const SYSTEMTIME *today)
static const SYSTEMTIME min_allowed_date
static LRESULT MONTHCAL_GetMinReqRect(const MONTHCAL_INFO *infoPtr, RECT *rect)
static void MONTHCAL_GetMinDate(const MONTHCAL_INFO *infoPtr, SYSTEMTIME *date)
static void MONTHCAL_GetDayRectI(const MONTHCAL_INFO *infoPtr, RECT *r, INT col, INT row, INT calIdx)
static void MONTHCAL_Scroll(MONTHCAL_INFO *infoPtr, INT delta, BOOL keep_selection)
void MONTHCAL_Register(void)
static void MONTHCAL_DrawDay(const MONTHCAL_INFO *infoPtr, HDC hdc, const SYSTEMTIME *st, int bold, const PAINTSTRUCT *ps)
int MONTHCAL_CalculateDayOfWeek(SYSTEMTIME *date, BOOL inplace)
static LRESULT MONTHCAL_EraseBkgnd(const MONTHCAL_INFO *infoPtr, HDC hdc)
static LRESULT MONTHCAL_MouseMove(MONTHCAL_INFO *infoPtr, LPARAM lParam)
static BOOL MONTHCAL_GetUnicodeFormat(const MONTHCAL_INFO *infoPtr)
static LRESULT MONTHCAL_SetToday(MONTHCAL_INFO *infoPtr, const SYSTEMTIME *today)
static LRESULT MONTHCAL_SetFirstDayOfWeek(MONTHCAL_INFO *infoPtr, INT day)
static BOOL MONTHCAL_IsDateEqual(const SYSTEMTIME *first, const SYSTEMTIME *second)
static LRESULT MONTHCAL_SetFocus(const MONTHCAL_INFO *infoPtr)
static LRESULT MONTHCAL_SetMaxSelCount(MONTHCAL_INFO *infoPtr, INT max)
static void MONTHCAL_CopyTime(const SYSTEMTIME *from, SYSTEMTIME *to)
static void MONTHCAL_PaintWeeknumbers(const MONTHCAL_INFO *infoPtr, HDC hdc, const PAINTSTRUCT *ps, INT calIdx)
static void MONTHCAL_GetPrevMonth(SYSTEMTIME *date)
static BOOL MONTHCAL_SetUnicodeFormat(MONTHCAL_INFO *infoPtr, BOOL isUnicode)
LONG MONTHCAL_CompareSystemTime(const SYSTEMTIME *first, const SYSTEMTIME *second)
static LRESULT MONTHCAL_Destroy(MONTHCAL_INFO *infoPtr)
static LRESULT MONTHCAL_Size(MONTHCAL_INFO *infoPtr, int Width, int Height)
static void MONTHCAL_GetMonth(SYSTEMTIME *date, INT months)
static INT MONTHCAL_GetCalendarFromPoint(const MONTHCAL_INFO *infoPtr, const POINT *pt)
static LRESULT MONTHCAL_GetRange(const MONTHCAL_INFO *infoPtr, SYSTEMTIME *range)
static INT MONTHCAL_StyleChanged(MONTHCAL_INFO *infoPtr, WPARAM wStyleType, const STYLESTRUCT *lpss)
static void MONTHCAL_Circle(const MONTHCAL_INFO *infoPtr, HDC hdc, const RECT *r)
struct _CALENDAR_INFO CALENDAR_INFO
static void MONTHCAL_NotifySelect(const MONTHCAL_INFO *infoPtr)
static const SYSTEMTIME st_null
static LRESULT MONTHCAL_Paint(MONTHCAL_INFO *infoPtr, HDC hdc_paint)
static LONG MONTHCAL_CompareMonths(const SYSTEMTIME *first, const SYSTEMTIME *second)
static LONG MONTHCAL_CompareDate(const SYSTEMTIME *first, const SYSTEMTIME *second)
static DOUBLE day(DOUBLE time)
BOOL WINAPI FileTimeToSystemTime(IN CONST FILETIME *lpFileTime, OUT LPSYSTEMTIME lpSystemTime)
BOOL WINAPI SystemTimeToFileTime(IN CONST SYSTEMTIME *lpSystemTime, OUT LPFILETIME lpFileTime)
LONG WINAPI CompareFileTime(IN CONST FILETIME *lpFileTime1, IN CONST FILETIME *lpFileTime2)
VOID WINAPI GetLocalTime(OUT LPSYSTEMTIME lpSystemTime)
HRESULT WINAPI DrawThemeBackground(HTHEME hTheme, HDC hdc, int iPartId, int iStateId, const RECT *pRect, const RECT *pClipRect)
HTHEME WINAPI OpenThemeData(HWND hwnd, LPCWSTR classlist)
HTHEME WINAPI GetWindowTheme(HWND hwnd)
HRESULT WINAPI CloseThemeData(HTHEME hTheme)
struct png_info_def *typedef unsigned char **typedef struct png_info_def *typedef struct png_info_def *typedef struct png_info_def *typedef unsigned char ** row
unsigned short(__cdecl typeof(TIFFCurrentDirectory))(struct tiff *)
static const WCHAR month[12][4]
static unsigned char buff[32768]
GLint GLint GLint GLint GLint x
GLuint GLuint GLsizei GLenum type
GLint GLint GLint GLint GLint GLint y
GLuint GLuint GLsizei count
GLdouble GLdouble GLdouble r
GLenum GLuint GLenum GLsizei const GLchar * buf
GLuint GLsizei GLsizei * length
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean flag
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
static const struct newhuff ht[]
INT WINAPI GetLocaleInfoW(LCID lcid, LCTYPE lctype, LPWSTR buffer, INT len)
#define memcpy(s1, s2, n)
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
#define cmp(status, error)
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
static HTHEME(WINAPI *pOpenThemeDataEx)(HWND
#define LOCALE_USER_DEFAULT
INT WINAPI DrawTextW(HDC hdc, LPCWSTR str, INT count, LPRECT rect, UINT flags)
#define NM_RELEASEDCAPTURE
#define MCS_NOTRAILINGDATES
#define MCM_SETMAXSELCOUNT
#define MCM_GETUNICODEFORMAT
#define MCHT_TITLEBTNPREV
#define MCM_GETCALENDARCOUNT
#define MCS_NOTODAYCIRCLE
#define MCM_GETMONTHRANGE
#define MCM_GETMONTHDELTA
#define MCHT_CALENDARDATENEXT
#define MCM_GETFIRSTDAYOFWEEK
#define MCM_SETUNICODEFORMAT
#define MCM_SETFIRSTDAYOFWEEK
#define MCHITTESTINFO_V1_SIZE
#define MCHT_CALENDARDATE
#define MCHT_TITLEBTNNEXT
#define MCS_SHORTDAYSOFWEEK
#define MCM_GETMAXTODAYWIDTH
#define MCM_GETMAXSELCOUNT
#define MCHT_CALENDARDATEPREV
#define MCM_SETMONTHDELTA
#define MCSC_TRAILINGTEXT
#define MCM_GETMINREQRECT
#define MCHT_CALENDARWEEKNUM
void redraw(int x, int y, int cx, int cy)
static unsigned __int64 next
#define strncmpW(s1, s2, n)
COLORREF clrActiveCaption
CALENDAR_INFO * calendars
HBRUSH brushes[BrushLast]
MONTHDAYSTATE * monthdayState
COLORREF colors[MCSC_TRAILINGTEXT+1]
struct _ULARGE_INTEGER::@4119 u
LPMONTHDAYSTATE prgDayState
_In_ HFONT _Out_ PUINT _Out_ PUINT Width
_In_ HFONT _Out_ PUINT Height
BOOL WINAPI GetTextMetricsW(_In_ HDC, _Out_ LPTEXTMETRICW)
HGDIOBJ WINAPI GetStockObject(_In_ int)
int WINAPI GetObjectW(_In_ HANDLE h, _In_ int c, _Out_writes_bytes_opt_(c) LPVOID pv)
int WINAPI GetClipBox(_In_ HDC, _Out_ LPRECT)
COLORREF WINAPI SetBkColor(_In_ HDC, _In_ COLORREF)
HGDIOBJ WINAPI GetCurrentObject(_In_ HDC, _In_ UINT)
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
BOOL WINAPI MoveToEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPPOINT)
COLORREF WINAPI GetBkColor(_In_ HDC)
int WINAPI FillRect(HDC, LPCRECT, HBRUSH)
BOOL WINAPI Rectangle(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int)
HFONT WINAPI CreateFontIndirectW(_In_ const LOGFONTW *)
int WINAPI SetBkMode(_In_ HDC, _In_ int)
COLORREF WINAPI SetTextColor(_In_ HDC, _In_ COLORREF)
HBRUSH WINAPI CreateSolidBrush(_In_ COLORREF)
HPEN WINAPI CreatePen(_In_ int, _In_ int, _In_ COLORREF)
BOOL WINAPI LineTo(_In_ HDC, _In_ int, _In_ int)
BOOL WINAPI GetTextExtentPoint32W(_In_ HDC hdc, _In_reads_(c) LPCWSTR lpString, _In_ int c, _Out_ LPSIZE psizl)
#define LOCALE_IFIRSTWEEKOFYEAR
#define LOCALE_SMONTHNAME1
#define LOCALE_SABBREVMONTHNAME1
#define LOCALE_SABBREVDAYNAME1
#define LOCALE_IFIRSTDAYOFWEEK
HWND WINAPI SetCapture(_In_ HWND hWnd)
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
BOOL WINAPI IsWindow(_In_opt_ HWND)
HMENU WINAPI CreatePopupMenu(void)
#define GetWindowLongPtrW
BOOL WINAPI ReleaseCapture(void)
LRESULT WINAPI DefWindowProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI AdjustWindowRect(_Inout_ LPRECT, _In_ DWORD, _In_ BOOL)
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
BOOL WINAPI DrawFrameControl(_In_ HDC, _Inout_ LPRECT, _In_ UINT, _In_ UINT)
int WINAPIV wsprintfW(_Out_ LPWSTR, _In_ _Printf_format_string_ LPCWSTR,...)
LONG WINAPI GetWindowLongW(_In_ HWND, _In_ int)