//Proc we are expecting
typedef VOID (*ThreadPoolProc)(LPVOID pParam);
typedef ThreadPoolProc LPThreadPoolProc;
//Another type we can receive
typedef DWORD (*ThreadDWORDPoolProc)(LPVOID pParam);
typedef ThreadDWORDPoolProc LPThreadDWORDPoolProc;
//Proc with data (passed from the initialize)
typedef VOID (*ThreadPoolDataProc)(LPVOID pParam,
LPVOID pThreadData);
typedef ThreadPoolDataProc LPThreadPoolDataProc;
//A proc to initialize the thread pool
typedef BOOL (*InitializePoolProc)(LPVOID& pParam,
BOOL bLoading);
typedef InitializePoolProc LPInitializePoolProc;