'Clicking on empty space in calendar box will close also
'*********************************************
Option Explicit
'[APIs]
Private Declare Function ScreenToClient Lib "user32" (ByVal hWnd As Long, lpPoint As POINTAPI) As Long
Private Declare Function SendMessageByNum& Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long)
Private Declare Function MoveWindow Lib "user32" (ByVal hWnd As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long
Private Declare Function GetWindowRect Lib "user32" (ByVal hWnd As Long, lpRect As RECT) As Long
Private Declare Function CreateRectRgn Lib "GDI32.dll" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
Private Declare Function CombineRgn Lib "GDI32.dll" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hrgn As Long, ByVal bRedraw As Boolean) As Long
'[Constants]
Private Const RGN_AND As Long = 1
Private Const RGN_OR As Long = 2
Private Const RGN_XOR As Long = 3
Private Const RGN_COPY As Long = 5
Private Const RGN_DIFF As Long = 4
Private Const CB_SETDROPPEDCONTROLRECT = &H160
Private Const CB_GETITEMHEIGHT = &H154
'[Event Enum]
Private Enum AnimeEventEnum
aUnload = 0
aload = 1
End Enum
'[Effect Enum]
Private Enum AnimeEffectEnum
eAppearFromTop = 2
eAppearFromBottom = 3
End Enum
Private Type RECT
Left As Long
top As Long
Right As Long
bottom As Long
End Type
Private Type POINTAPI
X As Long
Y As Long
End Type
Private Enum eExpandBy
Percent50 = 0
Percent75 = 1
DoubleWidth = 2
TripleWidth = 3
QuadWidth = 4
NoExpand = 5
End Enum
Private Enum eExpandType
WidthOnly = 0
HeightOnly = 1
HeightAndWidth = 2
End Enum
Const m_def_BackColor = vbWhite
Const m_def_DateDisplay = True
Const m_def_SHButton = True
Dim TheCaption As String
Dim CurMonth As Single
Dim CurDay As Single
Dim CurYear As Single
Dim LastDay As Single
Dim LastIndex As Single
Dim m_BackColor As OLE_COLOR
Dim m_Value As String
Dim CC As Boolean ' used to keep track if calendar is visible or not