/****************************************************************************/ /* */ /* CLOCK.H - */ /* */ /* Windows Clock Include File */ /* */ /****************************************************************************/ /****************************************************************************/ /* */ /* Touched by : Diane K. Oh */ /* On Date : June 11, 1992 */ /* Revision remarks by Diane K. Oh ext #15201 */ /* This file has been changed to comply with the Unicode standard */ /* Following is a quick overview of what I have done. */ /* */ /* Was Changed it into Remark */ /* === =============== ====== */ /* CHAR TCHAR if it refers to text */ /* LPCHAR & LPSTR LPTSTR if it refers to text */ /* PSTR & NPSTR LPTSTR if it refers to text */ /* */ /****************************************************************************/ /*--------------------------------------------------------------------------*/ /* Typedefs and Structures */ /*--------------------------------------------------------------------------*/ typedef struct tagTIME { int hour; /* 0 - 11 hours for analog clock */ int hour12; /* 12 hour format */ int hour24; /* 24 hour format */ int minute; int second; int ampm; /* 0 - AM , 1 - PM */ } TIME; typedef struct tagDATE { int day; int month; int year; } xDATE; typedef struct tagCLOCKDISPSTRUCT { /* Clock display format for main window/icon outut */ /* either IDM_ANALOG, or IDM_DIGITAL */ WORD wFormat; /* flags */ BOOL bIconic, bNoSeconds, bNoTitle, bTopMost, bNoDate; /* X and Y offset within client area of window * or icon where digital clock will be displayed */ int nPosY, nPosHr, nPosSep1, nPosMin, nPosSep2, nPosSec, nPosAMPM; int nSizeChar, nSizeSep, nSizeY, nSizeAMPM; int nPosDateX, nPosDateY, nSizeDateX, nSizeDateY; /* size of shadow offset, in pixels. If 0, no shadow */ WORD wShdwOff; /* handle to offscreen bitmap for fast painting of shadowed digits */ HBITMAP hBitmap; /* buffer to hold the win.ini international indicators * for 1159, and 2359 AM/PM 12 hour time format. * szAMPM[0] holds AM, szAMPM[1] holds PM indicator */ #define MAX_AMPM_LEN 10 TCHAR szAMPM[2][MAX_AMPM_LEN]; int nMaxAMPMLen; WORD wAMPMPosition; /* intl time format (like DOS) 0 - 12 hour, 1 - 24 hour */ WORD wTimeFormat, wTimeLZero; #define MAX_DATE_LEN 80 TCHAR szDateFmt[MAX_DATE_LEN]; TCHAR szDate[MAX_DATE_LEN]; int nDateLen; #define MAX_TIME_LEN 80 TCHAR szTimeFmt[MAX_TIME_LEN]; int nTimeLen; /* intl time seperator character */ #define MAX_TIME_SEP 5 TCHAR szTimeSep[MAX_TIME_SEP]; } CLOCKDISPSTRUCT, *PCLOCKDISPSTRUCT; /*--------------------------------------------------------------------------*/ /* Function Templates */ /*--------------------------------------------------------------------------*/ void NEAR GetTime (TIME *); void NEAR ConvTime (TIME *); void NEAR GetDate (xDATE *); void NEAR PASCAL PrepareSavedWindow (LPTSTR, PRECT); void NEAR PASCAL ParseSavedWindow (LPTSTR, PRECT); void NEAR PASCAL PrepareSavedFlags (LPTSTR, PCLOCKDISPSTRUCT); void NEAR PASCAL ParseSavedFlags (LPTSTR, PCLOCKDISPSTRUCT); LONG FAR PASCAL ClockWndProc (HWND, WORD, WORD, LONG); /*--------------------------------------------------------------------------*/ /* Constants */ /*--------------------------------------------------------------------------*/ /* Main Menu ID defines */ #define IDM_ANALOG 1 #define IDM_DIGITAL 2 #define IDM_SETFONT 3 #define IDM_ABOUT 4 #define IDM_TOPMOST 5 /* actually in system menu */ #define IDM_NOTITLE 6 #define IDM_SECONDS 7 #define IDM_DATE 8 #define IDM_UTC 9 /* Temp ID for dialogs. */ #define ID_JUNK 0xCACC #define ID_DATA 99 /* String Resource definitions */ #define IDS_APPNAME 2 #define IDS_TOOMANY 3 #define IDS_FONTFILE 4 #define IDS_TOPMOST 5 #define IDS_FONTCHOICE 22 #define IDS_USNAME 23 #define IDS_INIFILE 24 #define IDD_FONT 100 #define HOURSCALE 65 #define MINUTESCALE 80 #define HHAND TRUE #define MHAND FALSE #define SECONDSCALE 80 #define MAXBLOBWIDTH 25 #define BUFLEN 30 #define REPAINT 0 #define HANDPAINT 1 #define UPDATE 0 #define REDRAW 1 #define OPEN_TLEN 450 /* < half second */ #define ICON_TLEN 20000 /* 20 seconds */ #ifndef HWND_TOPMOST #define HWND_TOPMOST ((HWND)-1) #endif #ifndef HWND_NOTOPMOST #define HWND_NOTOPMOST ((HWND)-2) #endif