From ea5ac5bbf0fc772d83c52d7293d5c140b706f176 Mon Sep 17 00:00:00 2001 From: marcoonthegit Date: Tue, 9 Aug 2022 11:27:23 +0200 Subject: [PATCH] * also add other threadpool functions (cherry picked from commit 53d745962f437c65c9130c1da33fa01eb723d8eb) --- rtl/win/wininc/base.inc | 6 ++++++ rtl/win/wininc/func.inc | 8 ++++++++ 2 files changed, 14 insertions(+) diff --git a/rtl/win/wininc/base.inc b/rtl/win/wininc/base.inc index 1f76733972..08ef603ea1 100644 --- a/rtl/win/wininc/base.inc +++ b/rtl/win/wininc/base.inc @@ -54,6 +54,10 @@ WINBOOL = longbool; BOOL = WINBOOL; + // newer APIs (e.g. threadpool) have this: + // can't find exact true/false conventions here, so for now keep it byte + WINAPIBOOLEAN = Byte; + CALTYPE = cardinal; CALID = cardinal; @@ -750,6 +754,8 @@ PFNPROCESSPOLICIES = function (_para1:HWND; _para2:LPCTSTR; _para3:LPCTSTR; _para4:LPCTSTR; _para5:DWORD):WINBOOL;stdcall; TIMEFMT_ENUMPROCEX = function (TimeFormat : LPWSTR; AppData : LPARAM) : BOOL; stdcall; + WAITORTIMERCALLBACK = procedure (arg1:PVoid;arg2:WINAPIBOOLEAN); stdcall; + (* Not convertable by H2PAS #define SECURITY_NULL_SID_AUTHORITY {0,0,0,0,0,0} #define SECURITY_WORLD_SID_AUTHORITY {0,0,0,0,0,1} diff --git a/rtl/win/wininc/func.inc b/rtl/win/wininc/func.inc index cca9fbb2e5..cc72f41862 100644 --- a/rtl/win/wininc/func.inc +++ b/rtl/win/wininc/func.inc @@ -1330,7 +1330,15 @@ function CONSOLE_REAL_OUTPUT_HANDLE : HANDLE; function RealChildWindowFromPoint(Parent : HWND; Pt : TPOINT): HWND; stdcall; external 'user32.dll' name 'RealChildWindowFromPoint'; function GetGuiResources(ProcessHandle : THANDLE; ResourceType : DWORD): DWORD; stdcall; external 'user32.dll' name 'GetGuiResources'; function SendInput(InputsCount : UINT; InputsPtr : PINPUT; Size : WINT) : UINT; stdcall; external 'user32.dll' name 'SendInput'; + + // legacy threadpool function QueueUserWorkItem(func: LPTHREAD_START_ROUTINE; Context: pointer; Flags: ULONG): BOOL; stdcall; external 'kernel32' name 'QueueUserWorkItem'; + function UnregisterWaitEx(WaitHandle : THandle; CompletionEvent : THandle):WinBool; stdcall; external 'kernel32.dll' name 'UnregisterWaitEx'; + function CreateTimerQueue : THandle; stdcall; external 'kernel32.dll' name 'CreateTimerQueue'; + function CreateTimerQueueTimer(phNewTimer:PHandle;TimerQueue:THandle;Callback:WAITORTIMERCALLBACK;Parameter:PVOID;DueTime,Period : DWord;Flags:ULong) : THandle; stdcall; external 'kernel32.dll' name 'CreateTimerQueueTimer'; + function ChangeTimerQueueTimer(TimerQueue:THandle;Timer:THandle;DueTime,Period : DWord) : BOOL; stdcall; external 'kernel32.dll' name 'ChangeTimerQueueTimer'; + function DeleteTimerQueueTimer(TimerQueue:THandle;Timer:THandle;CompletionEvent: THandle) : BOOL; stdcall; external 'kernel32.dll' name 'DeleteTimerQueueTimer'; + function DeleteTimerQueueEx(TimerQueue:THandle;CompletionEvent: THandle) : BOOL; stdcall; external 'kernel32.dll' name 'DeleteTimerQueueEx'; // only in widechar variant. function GetDateFormatEx(LocaleName : pwidechar;Flags : DWORD;Date : PSYSTEMTIME; Format : pwidechar; DateBuffer : pwidechar; BufferLen : longint; Calendar : pwidechar) : BOOL; stdcall; external 'kernel32' name 'GetDateFormatEx';