Release 961222
[wine/multimedia.git] / win32 / process.c
blob2b6f501b3def37f2227dc4ad617fa705d7b188a4
1 /*
2 * Win32 kernel functions
4 * Copyright 1995 Martin von Loewis
5 */
7 #include <stdio.h>
8 #include <string.h>
9 #include <unistd.h>
10 #include "windows.h"
11 #include "winerror.h"
12 #include "heap.h"
13 #include "handle32.h"
14 #include "task.h"
15 #include "stddebug.h"
16 #include "debug.h"
18 static HANDLE32 ProcessHeap = 0; /* FIXME: should be in process database */
20 /***********************************************************************
21 * ExitProcess (KERNEL32.100)
24 void ExitProcess(DWORD status)
26 TASK_KillCurrentTask( status );
29 /***********************************************************************
30 * CreateMutexA (KERNEL32.52)
32 HANDLE32 CreateMutexA (SECURITY_ATTRIBUTES *sa, BOOL on, const char *a)
34 return 0;
37 /***********************************************************************
38 * ReleaseMutex (KERNEL32.435)
40 BOOL ReleaseMutex (HANDLE32 h)
42 return 0;
45 /***********************************************************************
46 * CreateEventA (KERNEL32.43)
48 HANDLE32 CreateEventA (SECURITY_ATTRIBUTES *sa, BOOL au, BOOL on, const char
49 *name)
51 return 0;
53 /***********************************************************************
54 * SetEvent (KERNEL32.487)
56 BOOL SetEvent (HANDLE32 h)
58 return 0;
60 /***********************************************************************
61 * ResetEvent (KERNEL32.439)
63 BOOL ResetEvent (HANDLE32 h)
65 return 0;
67 /***********************************************************************
68 * WaitForSingleObject (KERNEL32.561)
70 DWORD WaitForSingleObject(HANDLE32 h, DWORD a)
72 return 0;
74 /***********************************************************************
75 * DuplicateHandle (KERNEL32.78)
77 BOOL DuplicateHandle(HANDLE32 a, HANDLE32 b, HANDLE32 c, HANDLE32 * d, DWORD e, BOOL f, DWORD g)
79 *d = b;
80 return 1;
82 /***********************************************************************
83 * GetCurrentProcess (KERNEL32.198)
85 HANDLE32 GetCurrentProcess(void)
87 return 0;
90 /***********************************************************************
91 * GetProcessHeap (KERNEL32.259)
93 HANDLE32 GetProcessHeap(void)
95 if (!ProcessHeap) ProcessHeap = HeapCreate( 0, 0x10000, 0 );
96 return ProcessHeap;
99 /***********************************************************************
100 * LoadLibraryA (KERNEL32.365)
101 * copied from LoadLibrary
102 * This does not currently support built-in libraries
104 HINSTANCE32 LoadLibrary32A(LPCSTR libname)
106 HINSTANCE32 handle;
107 dprintf_module( stddeb, "LoadLibrary: (%08x) %s\n", (int)libname, libname);
108 handle = LoadModule( libname, (LPVOID)-1 );
109 if (handle == (HINSTANCE32) -1)
111 char buffer[256];
112 strcpy( buffer, libname );
113 strcat( buffer, ".dll" );
114 handle = LoadModule( buffer, (LPVOID)-1 );
116 /* Obtain module handle and call initialization function */
117 #ifndef WINELIB
118 if (handle >= (HINSTANCE32)32) PE_InitializeDLLs( GetExePtr(handle));
119 #endif
120 return handle;
123 /***********************************************************************
124 * LoadLibrary32W (KERNEL32.368)
126 HINSTANCE32 LoadLibrary32W(LPCWSTR libnameW)
128 LPSTR libnameA = HEAP_strdupWtoA( GetProcessHeap(), 0, libnameW );
129 HINSTANCE32 ret = LoadLibrary32A( libnameA );
130 HeapFree( GetProcessHeap(), 0, libnameA );
131 return ret;
134 /***********************************************************************
135 * FreeLibrary
137 BOOL FreeLibrary32(HINSTANCE32 hLibModule)
139 fprintf(stderr,"FreeLibrary: empty stub\n");
140 return TRUE;
143 /**********************************************************************
144 * GetProcessAffinityMask
146 BOOL GetProcessAffinityMask(HANDLE32 hProcess, LPDWORD lpProcessAffinityMask,
147 LPDWORD lpSystemAffinityMask)
149 dprintf_task(stddeb,"GetProcessAffinityMask(%x,%lx,%lx)\n",
150 hProcess,(lpProcessAffinityMask?*lpProcessAffinityMask:0),
151 (lpSystemAffinityMask?*lpSystemAffinityMask:0));
152 /* It is definitely important for a process to know on what processor
153 it is running :-) */
154 if(lpProcessAffinityMask)
155 *lpProcessAffinityMask=1;
156 if(lpSystemAffinityMask)
157 *lpSystemAffinityMask=1;
158 return TRUE;
161 /**********************************************************************
162 * SetThreadAffinityMask
164 BOOL SetThreadAffinityMask(HANDLE32 hThread, DWORD dwThreadAffinityMask)
166 dprintf_task(stddeb,"SetThreadAffinityMask(%x,%lx)\n",hThread,
167 dwThreadAffinityMask);
168 /* FIXME: We let it fail */
169 return 1;