From 41f11d881e6ca967dad610f9ada09c097999a85a Mon Sep 17 00:00:00 2001 From: erg Date: Mon, 4 Sep 2006 00:32:06 +0000 Subject: [PATCH] win32 bindings for time functions --- library/windows/kernel32-constants.factor | 13 +++++++ library/windows/kernel32-structs.factor | 43 +++++++++++++++++++++++ library/windows/kernel32-types.factor | 13 +++++++ library/windows/kernel32.factor | 12 +++---- library/windows/types.factor | 16 ++++----- library/windows/user32.factor | 15 ++++---- 6 files changed, 89 insertions(+), 23 deletions(-) diff --git a/library/windows/kernel32-constants.factor b/library/windows/kernel32-constants.factor index a329ce28b5..6d0f2f23d2 100644 --- a/library/windows/kernel32-constants.factor +++ b/library/windows/kernel32-constants.factor @@ -42,3 +42,16 @@ USING: alien kernel errors ; : INVALID_FILE_SIZE HEX: FFFFFFFF ; : INFINITE HEX: FFFFFFFF ; + +! From C:\cygwin\usr\include\w32api\winbase.h +: FILE_TYPE_UNKNOWN 0 ; +: FILE_TYPE_DISK 1 ; +: FILE_TYPE_CHAR 2 ; +: FILE_TYPE_PIPE 3 ; +: FILE_TYPE_REMOTE HEX: 8000 ; + +: TIME_ZONE_ID_UNKNOWN 0 ; inline +: TIME_ZONE_ID_STANDARD 1 ; inline +: TIME_ZONE_ID_DAYLIGHT 2 ; inline +: TIME_ZONE_ID_INVALID HEX: FFFFFFFF ; inline + diff --git a/library/windows/kernel32-structs.factor b/library/windows/kernel32-structs.factor index 20060c3c51..89e76cd9aa 100644 --- a/library/windows/kernel32-structs.factor +++ b/library/windows/kernel32-structs.factor @@ -11,3 +11,46 @@ BEGIN-STRUCT: overlapped-ext FIELD: int user-data END-STRUCT +BEGIN-STRUCT: SYSTEMTIME + FIELD: WORD wYear + FIELD: WORD wMonth + FIELD: WORD wDayOfWeek + FIELD: WORD wDay + FIELD: WORD wHour + FIELD: WORD wMinute + FIELD: WORD wSecond + FIELD: WORD wMilliseconds +END-STRUCT + +BEGIN-STRUCT: TIME_ZONE_INFORMATION + FIELD: LONG Bias + ! FIELD: WCHAR[32] StandardName + FIELD: int a0 + FIELD: int a1 + FIELD: int a2 + FIELD: int a3 + FIELD: int a4 + FIELD: int a5 + FIELD: int a6 + FIELD: int a7 + FIELD: SYSTEMTIME StandardDate + FIELD: LONG StandardBias + ! FIELD: WCHAR[32] DaylightName + FIELD: int b0 + FIELD: int b1 + FIELD: int b2 + FIELD: int b3 + FIELD: int b4 + FIELD: int b5 + FIELD: int b6 + FIELD: int b7 + FIELD: SYSTEMTIME DaylightDate + FIELD: LONG DaylightBias +END-STRUCT + + +BEGIN-STRUCT: FILETIME + FIELD: DWORD dwLowDateTime + FIELD: DWORD dwHighDateTime +END-STRUCT + diff --git a/library/windows/kernel32-types.factor b/library/windows/kernel32-types.factor index 38cc45a18f..d2a3be297c 100644 --- a/library/windows/kernel32-types.factor +++ b/library/windows/kernel32-types.factor @@ -3,3 +3,16 @@ IN: win32-api TYPEDEF: void* POVERLAPPED TYPEDEF: void* LPOVERLAPPED TYPEDEF: void* LPSECURITY_ATTRIBUTES + +TYPEDEF: SYSTEMTIME SYSTEMTIME +TYPEDEF: SYSTEMTIME* PSYSTEMTIME +TYPEDEF: PSYSTEMTIME LPSYSTEMTIME + +TYPEDEF: TIME_ZONE_INFORMATION TIME_ZONE_INFORMATION +TYPEDEF: TIME_ZONE_INFORMATION* PTIME_ZONE_INFORMATION +TYPEDEF: PTIME_ZONE_INFORMATION LPTIME_ZONE_INFORMATION + +TYPEDEF: FILETIME FILETIME +TYPEDEF: FILETIME* PFILETIME +TYPEDEF: PFILETIME LPFILETIME + diff --git a/library/windows/kernel32.factor b/library/windows/kernel32.factor index 84099569c1..d598ae91ed 100644 --- a/library/windows/kernel32.factor +++ b/library/windows/kernel32.factor @@ -364,8 +364,8 @@ FUNCTION: DWORD GetConsoleTitleW ( LPWSTR lpConsoleTitle, DWORD nSize ) ; ! FUNCTION: GetFileInformationByHandle FUNCTION: DWORD GetFileSize ( HANDLE hFile, LPDWORD lpFileSizeHigh ) ; ! FUNCTION: GetFileSizeEx -! FUNCTION: GetFileTime -! FUNCTION: GetFileType +FUNCTION: BOOL GetFileTime ( HANDLE hFile, LPFILETIME lpCreationTime, LPFILETIME lpLastAccessTime, LPFILETIME lpLastWriteTime ) ; +FUNCTION: DWORD GetFileType ( HANDLE hFile ) ; ! FUNCTION: GetFirmwareEnvironmentVariableA ! FUNCTION: GetFirmwareEnvironmentVariableW ! FUNCTION: GetFullPathNameA @@ -459,7 +459,7 @@ FUNCTION: HANDLE GetStdHandle ( DWORD nStdHandle ) ; ! FUNCTION: GetSystemInfo ! FUNCTION: GetSystemPowerStatus ! FUNCTION: GetSystemRegistryQuota -! FUNCTION: GetSystemTime +FUNCTION: void GetSystemTime ( LPSYSTEMTIME lpSystemTime ) ; ! FUNCTION: GetSystemTimeAdjustment ! FUNCTION: GetSystemTimeAsFileTime ! FUNCTION: GetSystemTimes @@ -484,7 +484,7 @@ FUNCTION: HANDLE GetStdHandle ( DWORD nStdHandle ) ; ! FUNCTION: GetTickCount ! FUNCTION: GetTimeFormatA ! FUNCTION: GetTimeFormatW -! FUNCTION: GetTimeZoneInformation +FUNCTION: DWORD GetTimeZoneInformation ( LPTIME_ZONE_INFORMATION lpTimeZoneInformation ) ; ! FUNCTION: GetUserDefaultLangID ! FUNCTION: GetUserDefaultLCID ! FUNCTION: GetUserDefaultUILanguage @@ -814,7 +814,7 @@ FUNCTION: BOOL SetConsoleTitleW ( LPCWSTR lpConsoleTitle ) ; ! FUNCTION: SetFilePointerEx ! FUNCTION: SetFileShortNameA ! FUNCTION: SetFileShortNameW -! FUNCTION: SetFileTime +FUNCTION: BOOL SetFileTime ( HANDLE hFile, FILETIME* lpCreationTime, FILETIME* lpLastAccessTime, FILETIME* lpLastWriteTime ) ; ! FUNCTION: SetFileValidData ! FUNCTION: SetFirmwareEnvironmentVariableA ! FUNCTION: SetFirmwareEnvironmentVariableW @@ -871,7 +871,7 @@ FUNCTION: DWORD SleepEx ( DWORD dwMilliSeconds, BOOL bAlertable ) ; ! FUNCTION: SuspendThread ! FUNCTION: SwitchToFiber ! FUNCTION: SwitchToThread -! FUNCTION: SystemTimeToFileTime +FUNCTION: BOOL SystemTimeToFileTime ( SYSTEMTIME* lpSystemTime, LPFILETIME lpFileTime ) ; ! FUNCTION: SystemTimeToTzSpecificLocalTime ! FUNCTION: TerminateJobObject ! FUNCTION: TerminateProcess diff --git a/library/windows/types.factor b/library/windows/types.factor index f8f7f147b6..a1ecfadcf0 100644 --- a/library/windows/types.factor +++ b/library/windows/types.factor @@ -253,14 +253,14 @@ BEGIN-STRUCT: RECT FIELD: LONG bottom END-STRUCT -BEGIN-STRUCT: PAINTSTRUCT - FIELD: HDC hdc - FIELD: BOOL fErase - FIELD: RECT rcPaint - FIELD: BOOL fRestore - FIELD: BOOL fIncUpdate - FIELD: BYTE rgbReserved[32] -END-STRUCT +! BEGIN-STRUCT: PAINTSTRUCT + ! FIELD: HDC hdc + ! FIELD: BOOL fErase + ! FIELD: RECT rcPaint + ! FIELD: BOOL fRestore + ! FIELD: BOOL fIncUpdate + ! FIELD: BYTE[32] rgbReserved +! END-STRUCT TYPEDEF: PAINTSTRUCT* LPPAINTSTRUCT diff --git a/library/windows/user32.factor b/library/windows/user32.factor index 4e60166c7b..198450114a 100644 --- a/library/windows/user32.factor +++ b/library/windows/user32.factor @@ -1074,21 +1074,18 @@ FUNCTION: int MessageBoxExW ( UINT uType, WORD wLanguageId ) ; -FUNCTION: int MessageBoxIndirectA ( - MSGBOXPARAMSA* params ) ; - -FUNCTION: int MessageBoxIndirectW ( - MSGBOXPARAMSW* params ) ; +! FUNCTION: int MessageBoxIndirectA ( MSGBOXPARAMSA* params ) ; +! FUNCTION: int MessageBoxIndirectW ( MSGBOXPARAMSW* params ) ; -: MessageBox ( -- ) +: MessageBox \ MessageBoxW \ MessageBoxA unicode-exec ; -: MessageBoxEx ( -- ) +: MessageBoxEx \ MessageBoxExW \ MessageBoxExA unicode-exec ; -: MessageBoxIndirect ( -- ) - \ MessageBoxIndirectW \ MessageBoxIndirectA unicode-exec ; +! : MessageBoxIndirect + ! \ MessageBoxIndirectW \ MessageBoxIndirectA unicode-exec ; ! FUNCTION: MessageBoxTimeoutA ! dllexported, not in header ! FUNCTION: MessageBoxTimeoutW ! dllexported, not in header