00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __CS_CSUTIL_THREADING_WIN32_APIFUNCS_H__
00020 #define __CS_CSUTIL_THREADING_WIN32_APIFUNCS_H__
00021
00022
00023 namespace CS
00024 {
00025 namespace Threading
00026 {
00027
00028
00029
00030 namespace Implementation
00031 {
00032 #ifdef _WIN64
00033 typedef uint64 ulong_ptr;
00034 #else
00035 typedef uint32 ulong_ptr;
00036 #endif
00037
00038 extern "C"
00039 {
00040 __declspec(dllimport)
00041 int __stdcall CloseHandle(void*);
00042
00043 __declspec(dllimport)
00044 void* __stdcall CreateSemaphoreA(_SECURITY_ATTRIBUTES*,long,long,char const*);
00045
00046 __declspec(dllimport)
00047 void* __stdcall GetCurrentProcess();
00048
00049 __declspec(dllimport)
00050 unsigned long __stdcall GetCurrentProcessId();
00051
00052 __declspec(dllimport)
00053 void* __stdcall GetCurrentThread();
00054
00055 __declspec(dllimport)
00056 unsigned long __stdcall GetCurrentThreadId();
00057
00058 __declspec(dllimport)
00059 int __stdcall DuplicateHandle(void*,void*,void*,void**,unsigned long,
00060 int,unsigned long);
00061
00062 typedef void (__stdcall *queue_user_apc_callback_function)(ulong_ptr);
00063 __declspec(dllimport)
00064 unsigned long __stdcall QueueUserAPC(queue_user_apc_callback_function,
00065 void*,ulong_ptr);
00066
00067 __declspec(dllimport)
00068 int __stdcall ReleaseSemaphore(void*,long,long*);
00069
00070 __declspec(dllimport)
00071 unsigned long __stdcall SleepEx(unsigned long,int);
00072
00073 __declspec(dllimport)
00074 unsigned long __stdcall WaitForSingleObject(void*,unsigned long);
00075
00076 }
00077
00078 }
00079 }
00080 }
00081
00082 #endif