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