2 * Win32 miscellaneous functions
4 * Copyright 1995 Thomas Sandford (tdgsandf@prds-grn.demon.co.uk)
7 /* Misc. new functions - they should be moved into appropriate files
20 /****************************************************************************
21 * UTRegister (KERNEL32.697)
23 BOOL32 WINAPI
UTRegister(HMODULE32 hModule
,
27 /*UT32PROC*/ LPVOID
*ppfn32Thunk
,
28 /*FARPROC*/ LPVOID pfnUT32CallBack
,
31 FIXME(updown
, "(%#x,...): stub\n",hModule
);
35 /****************************************************************************
36 * UTUnRegister (KERNEL32.698)
38 BOOL32 WINAPI
UTUnRegister(HMODULE32 hModule
)
40 FIXME(updown
, "(%#x...): stub\n", hModule
);
45 /****************************************************************************
46 * QueryPerformanceCounter (KERNEL32.564)
48 BOOL32 WINAPI
QueryPerformanceCounter(LPLARGE_INTEGER counter
)
52 gettimeofday(&tv
,NULL
);
53 counter
->LowPart
= tv
.tv_usec
+tv
.tv_sec
*1000000;
54 counter
->HighPart
= 0;
58 /****************************************************************************
59 * QueryPerformanceFrequency (KERNEL32.565)
61 BOOL32 WINAPI
QueryPerformanceFrequency(LPLARGE_INTEGER frequency
)
63 frequency
->LowPart
= 1000000;
64 frequency
->HighPart
= 0;
68 /****************************************************************************
69 * FlushInstructionCache (KERNEL32.261)
71 BOOL32 WINAPI
FlushInstructionCache(DWORD x
,DWORD y
,DWORD z
) {
72 FIXME(debug
,"(0x%08lx,0x%08lx,0x%08lx): stub\n",x
,y
,z
);
76 /***********************************************************************
77 * CreateNamedPipeA (KERNEL32.168)
79 HANDLE32 WINAPI
CreateNamedPipeA (LPCSTR lpName
, DWORD dwOpenMode
,
80 DWORD dwPipeMode
, DWORD nMaxInstances
,
81 DWORD nOutBufferSize
, DWORD nInBufferSize
,
82 DWORD nDefaultTimeOut
,
83 LPSECURITY_ATTRIBUTES lpSecurityAttributes
)
85 FIXME (win32
, "(Name=%s, OpenMode=%#08lx, dwPipeMode=%#08lx, MaxInst=%ld, OutBSize=%ld, InBuffSize=%ld, DefTimeOut=%ld, SecAttr=%p): stub\n",
86 debugstr_a(lpName
), dwOpenMode
, dwPipeMode
, nMaxInstances
,
87 nOutBufferSize
, nInBufferSize
, nDefaultTimeOut
,
88 lpSecurityAttributes
);
89 /* if (nMaxInstances > PIPE_UNLIMITED_INSTANCES) {
90 SetLastError (ERROR_INVALID_PARAMETER);
91 return INVALID_HANDLE_VALUE;
94 SetLastError (ERROR_UNKNOWN
);
95 return INVALID_HANDLE_VALUE32
;
98 /***********************************************************************
99 * CreateNamedPipeW (KERNEL32.169)
101 HANDLE32 WINAPI
CreateNamedPipeW (LPCWSTR lpName
, DWORD dwOpenMode
,
102 DWORD dwPipeMode
, DWORD nMaxInstances
,
103 DWORD nOutBufferSize
, DWORD nInBufferSize
,
104 DWORD nDefaultTimeOut
,
105 LPSECURITY_ATTRIBUTES lpSecurityAttributes
)
107 FIXME (win32
, "(Name=%s, OpenMode=%#08lx, dwPipeMode=%#08lx, MaxInst=%ld, OutBSize=%ld, InBuffSize=%ld, DefTimeOut=%ld, SecAttr=%p): stub\n",
108 debugstr_w(lpName
), dwOpenMode
, dwPipeMode
, nMaxInstances
,
109 nOutBufferSize
, nInBufferSize
, nDefaultTimeOut
,
110 lpSecurityAttributes
);
112 SetLastError (ERROR_UNKNOWN
);
113 return INVALID_HANDLE_VALUE32
;
116 /***********************************************************************
117 * GetSystemPowerStatus (KERNEL32.621)
119 BOOL32 WINAPI
GetSystemPowerStatus(LPSYSTEM_POWER_STATUS sps_ptr
)
121 return FALSE
; /* no power management support */
125 /***********************************************************************
126 * SetSystemPowerState (KERNEL32.630)
128 BOOL32 WINAPI
SetSystemPowerState(BOOL32 suspend_or_hibernate
,
131 /* suspend_or_hibernate flag: w95 does not support
132 this feature anyway */
147 /******************************************************************************
148 * CreateMailslot32A [KERNEL32.164]
150 HANDLE32 WINAPI
CreateMailslot32A( LPCSTR lpName
, DWORD nMaxMessageSize
,
151 DWORD lReadTimeout
, LPSECURITY_ATTRIBUTES sa
)
153 FIXME(win32
, "(%s,%ld,%ld,%p): stub\n", debugstr_a(lpName
),
154 nMaxMessageSize
, lReadTimeout
, sa
);
159 /******************************************************************************
160 * CreateMailslot32W [KERNEL32.165] Creates a mailslot with specified name
163 * lpName [I] Pointer to string for mailslot name
164 * nMaxMessageSize [I] Maximum message size
165 * lReadTimeout [I] Milliseconds before read time-out
166 * sa [I] Pointer to security structure
169 * Success: Handle to mailslot
170 * Failure: INVALID_HANDLE_VALUE
172 HANDLE32 WINAPI
CreateMailslot32W( LPCWSTR lpName
, DWORD nMaxMessageSize
,
173 DWORD lReadTimeout
, LPSECURITY_ATTRIBUTES sa
)
175 FIXME(win32
, "(%s,%ld,%ld,%p): stub\n", debugstr_w(lpName
),
176 nMaxMessageSize
, lReadTimeout
, sa
);
181 /******************************************************************************
182 * GetMailslotInfo [KERNEL32.347] Retrieves info about specified mailslot
185 * hMailslot [I] Mailslot handle
186 * lpMaxMessageSize [O] Address of maximum message size
187 * lpNextSize [O] Address of size of next message
188 * lpMessageCount [O] Address of number of messages
189 * lpReadTimeout [O] Address of read time-out
195 BOOL32 WINAPI
GetMailslotInfo( HANDLE32 hMailslot
, LPDWORD lpMaxMessageSize
,
196 LPDWORD lpNextSize
, LPDWORD lpMessageCount
,
197 LPDWORD lpReadTimeout
)
199 FIXME(win32
, "(%d): stub\n",hMailslot
);
200 *lpMaxMessageSize
= (DWORD
)NULL
;
201 *lpNextSize
= (DWORD
)NULL
;
202 *lpMessageCount
= (DWORD
)NULL
;
203 *lpReadTimeout
= (DWORD
)NULL
;
208 /******************************************************************************
209 * GetCompressedFileSize32A [KERNEL32.291]
212 * This should call the W function below
214 DWORD WINAPI
GetCompressedFileSize32A(
216 LPDWORD lpFileSizeHigh
)
218 FIXME(win32
, "(...): stub\n");
223 /******************************************************************************
224 * GetCompressedFileSize32W [KERNEL32.292]
227 * Success: Low-order doubleword of number of bytes
228 * Failure: 0xffffffff
230 DWORD WINAPI
GetCompressedFileSize32W(
231 LPCWSTR lpFileName
, /* [in] Pointer to name of file */
232 LPDWORD lpFileSizeHigh
) /* [out] Receives high-order doubleword of size */
234 FIXME(win32
, "(%s,%p): stub\n",debugstr_w(lpFileName
),lpFileSizeHigh
);
239 /******************************************************************************
240 * GetProcessWindowStation [USER32.280] Returns handle of window station
243 * Docs say the return value is HWINSTA
246 * Success: Handle to window station associated with calling process
249 DWORD WINAPI
GetProcessWindowStation(void)
251 FIXME(win32
, "(void): stub\n");
256 /******************************************************************************
257 * GetThreadDesktop [USER32.295] Returns handle to desktop
260 * Docs say the return value is HDESK
263 * dwThreadId [I] Thread identifier
266 * Success: Handle to desktop associated with specified thread
269 DWORD WINAPI
GetThreadDesktop( DWORD dwThreadId
)
271 FIXME(win32
, "(%lx): stub\n",dwThreadId
);
276 /******************************************************************************
277 * SetDebugErrorLevel [USER32.475]
278 * Sets the minimum error level for generating debugging events
281 * dwLevel [I] Debugging error level
283 VOID WINAPI
SetDebugErrorLevel( DWORD dwLevel
)
285 FIXME(win32
, "(%ld): stub\n", dwLevel
);
289 /******************************************************************************
290 * WaitForDebugEvent [KERNEL32.720]
291 * Waits for a debugging event to occur in a process being debugged
294 * lpDebugEvent [I] Address of structure for event information
295 * dwMilliseconds [I] Number of milliseconds to wait for event
299 BOOL32 WINAPI
WaitForDebugEvent( LPDEBUG_EVENT lpDebugEvent
,
300 DWORD dwMilliseconds
)
302 FIXME(win32
, "(%p,%ld): stub\n", lpDebugEvent
, dwMilliseconds
);
307 /******************************************************************************
308 * SetComputerName32A [KERNEL32.621]
310 BOOL32 WINAPI
SetComputerName32A( LPCSTR lpComputerName
)
312 LPWSTR lpComputerNameW
= HEAP_strdupAtoW(GetProcessHeap(),0,lpComputerName
);
313 BOOL32 ret
= SetComputerName32W(lpComputerNameW
);
314 HeapFree(GetProcessHeap(),0,lpComputerNameW
);
319 /******************************************************************************
320 * SetComputerName32W [KERNEL32.622]
323 * lpComputerName [I] Address of new computer name
327 BOOL32 WINAPI
SetComputerName32W( LPCWSTR lpComputerName
)
329 FIXME(win32
, "(%s): stub\n", debugstr_w(lpComputerName
));
334 BOOL32 WINAPI
EnumPorts32A(LPSTR name
,DWORD level
,LPBYTE ports
,DWORD bufsize
,LPDWORD bufneeded
,LPDWORD bufreturned
) {
335 FIXME(win32
,"(%s,%ld,%p,%ld,%p,%p), stub!\n",name
,level
,ports
,bufsize
,bufneeded
,bufreturned
);
339 /******************************************************************************
340 * IsDebuggerPresent [KERNEL32.827]
343 BOOL32 WINAPI
IsDebuggerPresent() {
344 FIXME(win32
," ... no debuggers yet, returning FALSE.\n");
348 /******************************************************************************
349 * OpenDesktop32A [USER32.408]
352 * Return type should be HDESK
354 HANDLE32 WINAPI
OpenDesktop32A( LPCSTR lpszDesktop
, DWORD dwFlags
,
355 BOOL32 fInherit
, DWORD dwDesiredAccess
)
357 FIXME(win32
,"(%s,%lx,%i,%lx): stub\n",debugstr_a(lpszDesktop
),dwFlags
,
358 fInherit
,dwDesiredAccess
);
363 BOOL32 WINAPI
SetUserObjectInformation32A( HANDLE32 hObj
, int nIndex
,
364 LPVOID pvInfo
, DWORD nLength
)
366 FIXME(win32
,"(%x,%d,%p,%lx): stub\n",hObj
,nIndex
,pvInfo
,nLength
);
371 BOOL32 WINAPI
SetThreadDesktop( HANDLE32 hDesktop
)
373 FIXME(win32
,"(%x): stub\n",hDesktop
);