20#include <winpr/config.h>
23#include <winpr/pool.h>
24#include <winpr/wlog.h>
25#include <winpr/library.h>
27#ifdef WINPR_THREAD_POOL
30typedef BOOL(WINAPI* pCallbackMayRunLong_t)(PTP_CALLBACK_INSTANCE pci);
31static INIT_ONCE init_once_module = INIT_ONCE_STATIC_INIT;
32static pCallbackMayRunLong_t pCallbackMayRunLong = NULL;
34static BOOL CALLBACK init_module(
PINIT_ONCE once, PVOID param, PVOID* context)
36 HMODULE kernel32 = LoadLibraryA(
"kernel32.dll");
39 GetProcAddressAs(kernel32,
"CallbackMayRunLong", pCallbackMayRunLong_t);
44BOOL winpr_CallbackMayRunLong(WINPR_ATTR_UNUSED PTP_CALLBACK_INSTANCE pci)
47 InitOnceExecuteOnce(&init_once_module, init_module, NULL, NULL);
48 if (pCallbackMayRunLong)
49 return pCallbackMayRunLong(pci);
51 WLog_ERR(
"TODO",
"TODO: implement");