Added an unknown VxD error code.
[wine] / dlls / imm32 / imm.c
1 /*
2  *      IMM32 stubs - please implement!
3  *
4  *      Copyright 1998  Patrik Stridvall
5  */
6
7 #include "winbase.h"
8 #include "windef.h"
9 #include "wingdi.h"
10 #include "winuser.h"
11 #include "winerror.h"
12 #include "immddk.h"
13
14 #include "debugtools.h"
15 DEFAULT_DEBUG_CHANNEL(imm);
16
17 /***********************************************************************
18  *              ImmAssociateContext (IMM32.@)
19  */
20 HIMC WINAPI ImmAssociateContext(HWND hWnd, HIMC hIMC)
21 {
22   FIXME("(0x%08x, 0x%08x): stub\n",hWnd,hIMC);
23   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
24   return (HIMC)NULL;
25 }
26
27 /***********************************************************************
28  *              ImmConfigureIMEA (IMM32.@)
29  */
30 BOOL WINAPI ImmConfigureIMEA(
31   HKL hKL, HWND hWnd, DWORD dwMode, LPVOID lpData)
32 {
33   FIXME("(0x%08x, 0x%08x, %ld, %p): stub\n",
34     hKL, hWnd, dwMode, lpData
35   );
36   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
37   return FALSE;
38 }
39
40 /***********************************************************************
41  *              ImmConfigureIMEW (IMM32.@)
42  */
43 BOOL WINAPI ImmConfigureIMEW(
44   HKL hKL, HWND hWnd, DWORD dwMode, LPVOID lpData)
45 {
46   FIXME("(0x%08x, 0x%08x, %ld, %p): stub\n",
47     hKL, hWnd, dwMode, lpData
48   );
49   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
50   return FALSE;
51 }
52
53 /***********************************************************************
54  *              ImmEscapeA (IMM32.@)
55  */
56 LRESULT WINAPI ImmEscapeA(
57   HKL hKL, HIMC hIMC, 
58   UINT uEscape, LPVOID lpData)
59 {
60   FIXME("(0x%08x, 0x%08x, %d, %p): stub\n",
61     hKL, hIMC, uEscape, lpData
62   );
63   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
64   return 0;
65 }
66
67 /***********************************************************************
68  *              ImmEscapeW (IMM32.@)
69  */
70 LRESULT WINAPI ImmEscapeW(
71   HKL hKL, HIMC hIMC,
72   UINT uEscape, LPVOID lpData)
73 {
74   FIXME("(0x%08x, 0x%08x, %d, %p): stub\n",
75     hKL, hIMC, uEscape, lpData
76   );
77   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
78   return 0;
79 }
80
81 /***********************************************************************
82  *              ImmGetCandidateListA (IMM32.@)
83  */
84 DWORD WINAPI ImmGetCandidateListA(
85   HIMC hIMC, DWORD deIndex, 
86   LPCANDIDATELIST lpCandList, DWORD dwBufLen)
87 {
88   FIXME("(0x%08x, %ld, %p, %ld): stub\n",
89     hIMC, deIndex,
90     lpCandList, dwBufLen
91   );
92   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
93   return 0;
94 }
95
96 /***********************************************************************
97  *              ImmGetCandidateListCountA (IMM32.@)
98  */
99 DWORD WINAPI ImmGetCandidateListCountA(
100   HIMC hIMC, LPDWORD lpdwListCount)
101 {
102   FIXME("(0x%08x, %p): stub\n", hIMC, lpdwListCount);
103   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
104   return 0;
105 }
106
107 /***********************************************************************
108  *              ImmGetCandidateListCountW (IMM32.@)
109  */
110 DWORD WINAPI ImmGetCandidateListCountW(
111   HIMC hIMC, LPDWORD lpdwListCount)
112 {
113   FIXME("(0x%08x, %p): stub\n", hIMC, lpdwListCount);
114   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
115   return 0;
116 }
117
118 /***********************************************************************
119  *              ImmGetCandidateListW (IMM32.@)
120  */
121 DWORD WINAPI ImmGetCandidateListW(
122   HIMC hIMC, DWORD deIndex, 
123   LPCANDIDATELIST lpCandList, DWORD dwBufLen)
124 {
125   FIXME("(0x%08x, %ld, %p, %ld): stub\n",
126     hIMC, deIndex,
127     lpCandList, dwBufLen
128   );
129   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
130   return 0;
131 }
132
133 /***********************************************************************
134  *              ImmGetCandidateWindow (IMM32.@)
135  */
136 BOOL WINAPI ImmGetCandidateWindow(
137   HIMC hIMC, DWORD dwBufLen, LPCANDIDATEFORM lpCandidate)
138 {
139   FIXME("(0x%08x, %ld, %p): stub\n", hIMC, dwBufLen, lpCandidate);
140   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
141   return FALSE;
142 }
143
144 /***********************************************************************
145  *              ImmGetCompositionFontA (IMM32.@)
146  */
147 BOOL WINAPI ImmGetCompositionFontA(HIMC hIMC, LPLOGFONTA lplf)
148 {
149   FIXME("(0x%08x, %p): stub\n", hIMC, lplf);
150   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
151   return FALSE;
152 }
153
154 /***********************************************************************
155  *              ImmGetCompositionFontW (IMM32.@)
156  */
157 BOOL WINAPI ImmGetCompositionFontW(HIMC hIMC, LPLOGFONTW lplf)
158 {
159   FIXME("(0x%08x, %p): stub\n", hIMC, lplf);
160   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
161   return FALSE;
162 }
163
164 /***********************************************************************
165  *              ImmGetCompositionStringA (IMM32.@)
166  */
167 LONG WINAPI ImmGetCompositionStringA(
168   HIMC hIMC, DWORD dwIndex, LPVOID lpBuf, DWORD dwBufLen)
169 {
170   OSVERSIONINFOA version;
171   FIXME("(0x%08x, %ld, %p, %ld): stub\n",
172     hIMC, dwIndex, lpBuf, dwBufLen
173   );
174   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
175   version.dwOSVersionInfoSize = sizeof(OSVERSIONINFOA);
176   GetVersionExA( &version );
177   switch(version.dwPlatformId)
178   {
179   case VER_PLATFORM_WIN32_WINDOWS: return -1;
180   case VER_PLATFORM_WIN32_NT: return 0;
181   default:
182       FIXME("%ld not supported\n",version.dwPlatformId);
183       return -1;
184   }
185 }
186
187 /***********************************************************************
188  *              ImmGetCompositionStringW (IMM32.@)
189  */
190 LONG WINAPI ImmGetCompositionStringW(
191   HIMC hIMC, DWORD dwIndex, 
192   LPVOID lpBuf, DWORD dwBufLen)
193 {
194   OSVERSIONINFOA version;
195   FIXME("(0x%08x, %ld, %p, %ld): stub\n",
196     hIMC, dwIndex, lpBuf, dwBufLen
197   );
198   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
199   version.dwOSVersionInfoSize = sizeof(OSVERSIONINFOA);
200   GetVersionExA( &version );
201   switch(version.dwPlatformId)
202   {
203   case VER_PLATFORM_WIN32_WINDOWS: return -1;
204   case VER_PLATFORM_WIN32_NT: return 0;
205   default:
206       FIXME("%ld not supported\n",version.dwPlatformId);
207       return -1;
208   }
209 }
210
211 /***********************************************************************
212  *              ImmGetCompositionWindow (IMM32.@)
213  */
214 BOOL WINAPI ImmGetCompositionWindow(HIMC hIMC, LPCOMPOSITIONFORM lpCompForm)
215 {
216   FIXME("(0x%08x, %p): stub\n", hIMC, lpCompForm);
217   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
218   return 0;
219 }
220
221 /***********************************************************************
222  *              ImmGetContext (IMM32.@)
223  */
224 HIMC WINAPI ImmGetContext(HWND hWnd)
225 {
226   FIXME("(0x%08x): stub\n", hWnd);
227   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
228   return (HIMC)NULL;
229 }
230
231 /***********************************************************************
232  *              ImmGetConversionListA (IMM32.@)
233  */
234 DWORD WINAPI ImmGetConversionListA(
235   HKL hKL, HIMC hIMC,
236   LPCSTR pSrc, LPCANDIDATELIST lpDst,
237   DWORD dwBufLen, UINT uFlag)
238 {
239   FIXME("(0x%08x, 0x%08x, %s, %p, %ld, %d): stub\n",
240     hKL, hIMC, debugstr_a(pSrc), lpDst, dwBufLen, uFlag
241   );
242   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
243   return 0;
244 }
245
246 /***********************************************************************
247  *              ImmGetConversionListW (IMM32.@)
248  */
249 DWORD WINAPI ImmGetConversionListW(
250   HKL hKL, HIMC hIMC,
251   LPCWSTR pSrc, LPCANDIDATELIST lpDst,
252   DWORD dwBufLen, UINT uFlag)
253 {
254   FIXME("(0x%08x, 0x%08x, %s, %p, %ld, %d): stub\n",
255     hKL, hIMC, debugstr_w(pSrc), lpDst, dwBufLen, uFlag
256   );
257   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
258   return 0;
259 }
260
261 /***********************************************************************
262  *              ImmGetConversionStatus (IMM32.@)
263  */
264 BOOL WINAPI ImmGetConversionStatus(
265   HIMC hIMC, LPDWORD lpfdwConversion, LPDWORD lpfdwSentence)
266 {
267   FIXME("(0x%08x, %p, %p): stub\n",
268     hIMC, lpfdwConversion, lpfdwSentence
269   );
270   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
271   return FALSE;
272 }
273
274 /***********************************************************************
275  *              ImmGetDefaultIMEWnd (IMM32.@)
276  */
277 HWND WINAPI ImmGetDefaultIMEWnd(HWND hWnd)
278 {
279   FIXME("(0x%08x): stub\n", hWnd);
280   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
281   return (HWND)NULL;
282 }
283
284 /***********************************************************************
285  *              ImmGetDescriptionA (IMM32.@)
286  */
287 UINT WINAPI ImmGetDescriptionA(
288   HKL hKL, LPSTR lpszDescription, UINT uBufLen)
289 {
290   FIXME("(0x%08x, %s, %d): stub\n",
291     hKL, debugstr_a(lpszDescription), uBufLen
292   );
293   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
294   return 0;
295 }
296
297 /***********************************************************************
298  *              ImmGetDescriptionW (IMM32.@)
299  */
300 UINT WINAPI ImmGetDescriptionW(HKL hKL, LPWSTR lpszDescription, UINT uBufLen)
301 {
302   FIXME("(0x%08x, %s, %d): stub\n",
303     hKL, debugstr_w(lpszDescription), uBufLen
304   );
305   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
306   return 0;
307 }
308
309 /***********************************************************************
310  *              ImmGetGuideLineA (IMM32.@)
311  */
312 DWORD WINAPI ImmGetGuideLineA(
313   HIMC hIMC, DWORD dwIndex, LPSTR lpBuf, DWORD dwBufLen)
314 {
315   FIXME("(0x%08x, %ld, %s, %ld): stub\n",
316     hIMC, dwIndex, debugstr_a(lpBuf), dwBufLen
317   );
318   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
319   return 0;
320 }
321
322 /***********************************************************************
323  *              ImmGetGuideLineW (IMM32.@)
324  */
325 DWORD WINAPI ImmGetGuideLineW(HIMC hIMC, DWORD dwIndex, LPWSTR lpBuf, DWORD dwBufLen)
326 {
327   FIXME("(0x%08x, %ld, %s, %ld): stub\n",
328     hIMC, dwIndex, debugstr_w(lpBuf), dwBufLen
329   );
330   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
331   return 0;
332 }
333
334 /***********************************************************************
335  *              ImmGetOpenStatus (IMM32.@)
336  */
337 BOOL WINAPI ImmGetOpenStatus(HIMC hIMC)
338 {
339   FIXME("(0x%08x): stub\n", hIMC);
340   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
341   return FALSE;
342 }
343
344 /***********************************************************************
345  *              ImmGetStatusWindowPos (IMM32.@)
346  */
347 BOOL WINAPI ImmGetStatusWindowPos(HIMC hIMC, LPPOINT lpptPos)
348 {
349   FIXME("(0x%08x, %p): stub\n", hIMC, lpptPos);
350   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
351   return FALSE;
352 }
353
354 /***********************************************************************
355  *              ImmGetVirtualKey (IMM32.@)
356  */
357 UINT WINAPI ImmGetVirtualKey(HWND hWnd)
358 {
359   OSVERSIONINFOA version;
360   FIXME("(0x%08x): stub\n", hWnd);
361   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
362   version.dwOSVersionInfoSize = sizeof(OSVERSIONINFOA);
363   GetVersionExA( &version );
364   switch(version.dwPlatformId)
365   {
366   case VER_PLATFORM_WIN32_WINDOWS:
367       return VK_PROCESSKEY;
368   case VER_PLATFORM_WIN32_NT:
369       return 0;
370   default:
371       FIXME("%ld not supported\n",version.dwPlatformId);
372       return VK_PROCESSKEY;
373   }
374 }
375
376 /***********************************************************************
377  *              ImmNotifyIME (IMM32.@)
378  */
379 BOOL WINAPI ImmNotifyIME(
380   HIMC hIMC, DWORD dwAction, DWORD dwIndex, DWORD dwValue)
381 {
382   FIXME("(0x%08x, %ld, %ld, %ld): stub\n",
383     hIMC, dwAction, dwIndex, dwValue
384   );
385   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
386   return FALSE;
387 }
388
389 /***********************************************************************
390  *              ImmRegisterWordA (IMM32.@)
391  */
392 BOOL WINAPI ImmRegisterWordA(
393   HKL hKL, LPCSTR lpszReading, DWORD dwStyle, LPCSTR lpszRegister)
394 {
395   FIXME("(0x%08x, %s, %ld, %s): stub\n",
396     hKL, debugstr_a(lpszReading), dwStyle, debugstr_a(lpszRegister)
397   );
398   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
399   return FALSE;
400 }
401
402 /***********************************************************************
403  *              ImmRegisterWordW (IMM32.@)
404  */
405 BOOL WINAPI ImmRegisterWordW(
406   HKL hKL, LPCWSTR lpszReading, DWORD dwStyle, LPCWSTR lpszRegister)
407 {
408   FIXME("(0x%08x, %s, %ld, %s): stub\n",
409     hKL, debugstr_w(lpszReading), dwStyle, debugstr_w(lpszRegister)
410   );
411   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
412   return FALSE;
413 }
414
415 /***********************************************************************
416  *              ImmReleaseContext (IMM32.@)
417  */
418 BOOL WINAPI ImmReleaseContext(HWND hWnd, HIMC hIMC)
419 {
420   FIXME("(0x%08x, 0x%08x): stub\n", hWnd, hIMC);
421   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
422   return FALSE;
423 }
424
425 /***********************************************************************
426  *              ImmSetCandidateWindow (IMM32.@)
427  */
428 BOOL WINAPI ImmSetCandidateWindow(
429   HIMC hIMC, LPCANDIDATEFORM lpCandidate)
430 {
431   FIXME("(0x%08x, %p): stub\n", hIMC, lpCandidate);
432   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
433   return FALSE;
434 }
435
436 /***********************************************************************
437  *              ImmSetCompositionFontA (IMM32.@)
438  */
439 BOOL WINAPI ImmSetCompositionFontA(HIMC hIMC, LPLOGFONTA lplf)
440 {
441   FIXME("(0x%08x, %p): stub\n", hIMC, lplf);
442   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
443   return FALSE;
444 }
445
446 /***********************************************************************
447  *              ImmSetCompositionFontW (IMM32.@)
448  */
449 BOOL WINAPI ImmSetCompositionFontW(HIMC hIMC, LPLOGFONTW lplf)
450 {
451   FIXME("(0x%08x, %p): stub\n", hIMC, lplf);
452   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
453   return FALSE;
454 }
455
456 /***********************************************************************
457  *              ImmSetCompositionStringA (IMM32.@)
458  */
459 BOOL WINAPI ImmSetCompositionStringA(
460   HIMC hIMC, DWORD dwIndex, 
461   LPCVOID lpComp, DWORD dwCompLen, 
462   LPCVOID lpRead, DWORD dwReadLen)
463 {
464   FIXME("(0x%08x, %ld, %p, %ld, %p, %ld): stub\n",
465     hIMC, dwIndex, lpComp, dwCompLen, lpRead, dwReadLen
466   );
467   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
468   return FALSE;
469 }
470
471 /***********************************************************************
472  *              ImmSetCompositionStringW (IMM32.@)
473  */
474 BOOL WINAPI ImmSetCompositionStringW(
475         HIMC hIMC, DWORD dwIndex,
476         LPCVOID lpComp, DWORD dwCompLen,
477         LPCVOID lpRead, DWORD dwReadLen)
478 {
479   FIXME("(0x%08x, %ld, %p, %ld, %p, %ld): stub\n",
480     hIMC, dwIndex, lpComp, dwCompLen, lpRead, dwReadLen
481   );
482   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
483   return FALSE;
484 }
485
486 /***********************************************************************
487  *              ImmSetCompositionWindow (IMM32.@)
488  */
489 BOOL WINAPI ImmSetCompositionWindow(
490   HIMC hIMC, LPCOMPOSITIONFORM lpCompForm)
491 {
492   FIXME("(0x%08x, %p): stub\n", hIMC, lpCompForm);
493   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
494   return FALSE;
495 }
496
497 /***********************************************************************
498  *              ImmSetConversionStatus (IMM32.@)
499  */
500 BOOL WINAPI ImmSetConversionStatus(
501   HIMC hIMC, DWORD fdwConversion, DWORD fdwSentence)
502 {
503   FIXME("(0x%08x, %ld, %ld): stub\n",
504     hIMC, fdwConversion, fdwSentence
505   );
506   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
507   return FALSE;
508 }
509
510 /***********************************************************************
511  *              ImmSetOpenStatus (IMM32.@)
512  */
513 BOOL WINAPI ImmSetOpenStatus(HIMC hIMC, BOOL fOpen)
514 {
515   FIXME("(0x%08x, %d): stub\n", hIMC, fOpen);
516   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
517   return FALSE;
518 }
519
520 /***********************************************************************
521  *              ImmSetStatusWindowPos (IMM32.@)
522  */
523 BOOL WINAPI ImmSetStatusWindowPos(HIMC hIMC, LPPOINT lpptPos)
524 {
525   FIXME("(0x%08x, %p): stub\n", hIMC, lpptPos);
526   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
527   return FALSE;
528 }
529
530 /***********************************************************************
531  *              ImmSimulateHotKey (IMM32.@)
532  */
533 BOOL WINAPI ImmSimulateHotKey(HWND hWnd, DWORD dwHotKeyID)
534 {
535   FIXME("(0x%08x, %ld): stub\n", hWnd, dwHotKeyID);
536   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
537   return FALSE;
538 }
539
540 /***********************************************************************
541  *              ImmUnregisterWordA (IMM32.@)
542  */
543 BOOL WINAPI ImmUnregisterWordA(
544   HKL hKL, LPCSTR lpszReading, DWORD dwStyle, LPCSTR lpszUnregister)
545 {
546   FIXME("(0x%08x, %s, %ld, %s): stub\n",
547     hKL, debugstr_a(lpszReading), dwStyle, debugstr_a(lpszUnregister)
548   );
549   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
550   return FALSE;
551 }
552
553 /***********************************************************************
554  *              ImmUnregisterWordW (IMM32.@)
555  */
556 BOOL WINAPI ImmUnregisterWordW(
557   HKL hKL, LPCWSTR lpszReading, DWORD dwStyle, LPCWSTR lpszUnregister)
558 {
559   FIXME("(0x%08x, %s, %ld, %s): stub\n",
560     hKL, debugstr_w(lpszReading), dwStyle, debugstr_w(lpszUnregister)
561   );
562   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
563   return FALSE;
564 }
565
566 /***********************************************************************
567  *              ImmCreateSoftKeyboard (IMM32.@)
568  */
569 HWND WINAPI ImmCreateSoftKeyboard(UINT uType, HWND hOwner, int x, int y)
570 {
571         FIXME("(0x%08x, 0x%08x, %d, %d): stub\n", uType, (unsigned)hOwner, x, y);
572         SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
573         return (HWND)NULL;
574 }
575
576 /***********************************************************************
577  *              ImmDestroySoftKeyboard (IMM32.@)
578  */
579 BOOL WINAPI ImmDestroySoftKeyboard(HWND hwndSoftKeyboard)
580 {
581         FIXME("(0x%08x): stub\n", (unsigned)hwndSoftKeyboard);
582         SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
583         return FALSE;
584 }
585
586 /***********************************************************************
587  *              ImmShowSoftKeyboard (IMM32.@)
588  */
589 BOOL WINAPI ImmShowSoftKeyboard(HWND hwndSoftKeyboard, int nCmdShow)
590 {
591         FIXME("(0x%08x, %d): stub\n", (unsigned)hwndSoftKeyboard, nCmdShow);
592         SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
593         return FALSE;
594 }
595
596 /***********************************************************************
597  *              ImmGetHotKey (IMM32.@)
598  */
599 BOOL WINAPI ImmGetHotKey(DWORD dwHotKeyID, LPUINT lpuModifiers,
600                          LPUINT lpuVKey, LPHKL lphKL)
601 {
602         FIXME("(0x%08lx, %p, %p, %p): stub\n",
603                dwHotKeyID, lpuModifiers, lpuVKey, lphKL);
604         SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
605         return FALSE;
606 }
607
608 /***********************************************************************
609  *              ImmSetHotKey (IMM32.@)
610  */
611 BOOL WINAPI ImmSetHotKey(DWORD dwHotKeyID, UINT uModifiers,
612                          UINT uVKey, HKL hKL)
613 {
614         FIXME("(0x%08lx, 0x%08x, 0x%08x, 0x%08x): stub\n",
615                dwHotKeyID, uModifiers, uVKey, (unsigned)hKL);
616         SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
617         return FALSE;
618 }
619
620 /***********************************************************************
621  *              ImmGenerateMessage (IMM32.@)
622  */
623 BOOL WINAPI ImmGenerateMessage(HIMC hIMC)
624 {
625         FIXME("(0x%08x): stub\n", (unsigned)hIMC);
626         SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
627         return FALSE;
628 }
629
630
631