Added a first-cut version of MapVirtualKeyExW() that has the same
[wine] / dlls / imm32 / imm.c
1 /*
2  *      IMM32 library
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 "debugtools.h"
13 #include "imm.h"
14
15 typedef struct INPUTCONTEXT
16 {
17   int dummy;
18 } *LPINPUTCONTEXT;
19
20 DEFAULT_DEBUG_CHANNEL(imm);
21
22 /***********************************************************************
23  *              ImmAssociateContext (IMM32.@)
24  */
25 HIMC WINAPI ImmAssociateContext(HWND hWnd, HIMC hIMC)
26 {
27   FIXME("(0x%08x, 0x%08x): stub\n",hWnd,hIMC);
28   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
29   return (HIMC)NULL;
30 }
31
32 /***********************************************************************
33  *              ImmConfigureIMEA (IMM32.@)
34  */
35 BOOL WINAPI ImmConfigureIMEA(
36   HKL hKL, HWND hWnd, DWORD dwMode, LPVOID lpData)
37 {
38   FIXME("(0x%08x, 0x%08x, %ld, %p): stub\n",
39     hKL, hWnd, dwMode, lpData
40   );
41   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
42   return FALSE;
43 }
44
45 /***********************************************************************
46  *              ImmConfigureIMEW (IMM32.@)
47  */
48 BOOL WINAPI ImmConfigureIMEW(
49   HKL hKL, HWND hWnd, DWORD dwMode, LPVOID lpData)
50 {
51   FIXME("(0x%08x, 0x%08x, %ld, %p): stub\n",
52     hKL, hWnd, dwMode, lpData
53   );
54   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
55   return FALSE;
56 }
57
58 /***********************************************************************
59  *              ImmCreateContext (IMM32.@)
60  */
61 HIMC WINAPI ImmCreateContext()
62 {
63   FIXME("(): stub\n");
64   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
65   return (HIMC)NULL;
66 }
67
68 /***********************************************************************
69  *              ImmDestroyContext (IMM32.@)
70  */
71 BOOL WINAPI ImmDestroyContext(HIMC hIMC)
72 {
73   FIXME("(0x%08x): stub\n",hIMC);
74   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
75   return FALSE;
76 }
77
78 /***********************************************************************
79  *              ImmEnumRegisterWordA (IMM32.@)
80  */
81 UINT WINAPI ImmEnumRegisterWordA(
82   HKL hKL, REGISTERWORDENUMPROCA lpfnEnumProc,
83   LPCSTR lpszReading, DWORD dwStyle,
84   LPCSTR lpszRegister, LPVOID lpData)
85 {
86   FIXME("(0x%08x, %p, %s, %ld, %s, %p): stub\n",
87     hKL, lpfnEnumProc, 
88     debugstr_a(lpszReading), dwStyle,
89     debugstr_a(lpszRegister), lpData
90   );
91   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
92   return 0;
93 }
94
95 /***********************************************************************
96  *              ImmEnumRegisterWordW (IMM32.@)
97  */
98 UINT WINAPI ImmEnumRegisterWordW(
99   HKL hKL, REGISTERWORDENUMPROCW lpfnEnumProc,
100   LPCWSTR lpszReading, DWORD dwStyle,
101   LPCWSTR lpszRegister, LPVOID lpData)
102 {
103   FIXME("(0x%08x, %p, %s, %ld, %s, %p): stub\n",
104     hKL, lpfnEnumProc, 
105     debugstr_w(lpszReading), dwStyle,
106     debugstr_w(lpszRegister), lpData
107   );
108   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
109   return 0;
110 }
111
112 /***********************************************************************
113  *              ImmEscapeA (IMM32.@)
114  */
115 LRESULT WINAPI ImmEscapeA(
116   HKL hKL, HIMC hIMC, 
117   UINT uEscape, LPVOID lpData)
118 {
119   FIXME("(0x%08x, 0x%08x, %d, %p): stub\n",
120     hKL, hIMC, uEscape, lpData
121   );
122   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
123   return 0;
124 }
125
126 /***********************************************************************
127  *              ImmEscapeW (IMM32.@)
128  */
129 LRESULT WINAPI ImmEscapeW(
130   HKL hKL, HIMC hIMC,
131   UINT uEscape, LPVOID lpData)
132 {
133   FIXME("(0x%08x, 0x%08x, %d, %p): stub\n",
134     hKL, hIMC, uEscape, lpData
135   );
136   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
137   return 0;
138 }
139
140 /***********************************************************************
141  *              ImmGetCandidateListA (IMM32.@)
142  */
143 DWORD WINAPI ImmGetCandidateListA(
144   HIMC hIMC, DWORD deIndex, 
145   LPCANDIDATELIST lpCandList, DWORD dwBufLen)
146 {
147   FIXME("(0x%08x, %ld, %p, %ld): stub\n",
148     hIMC, deIndex,
149     lpCandList, dwBufLen
150   );
151   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
152   return 0;
153 }
154
155 /***********************************************************************
156  *              ImmGetCandidateListCountA (IMM32.@)
157  */
158 DWORD WINAPI ImmGetCandidateListCountA(
159   HIMC hIMC, LPDWORD lpdwListCount)
160 {
161   FIXME("(0x%08x, %p): stub\n", hIMC, lpdwListCount);
162   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
163   return 0;
164 }
165
166 /***********************************************************************
167  *              ImmGetCandidateListCountW (IMM32.@)
168  */
169 DWORD WINAPI ImmGetCandidateListCountW(
170   HIMC hIMC, LPDWORD lpdwListCount)
171 {
172   FIXME("(0x%08x, %p): stub\n", hIMC, lpdwListCount);
173   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
174   return 0;
175 }
176
177 /***********************************************************************
178  *              ImmGetCandidateListW (IMM32.@)
179  */
180 DWORD WINAPI ImmGetCandidateListW(
181   HIMC hIMC, DWORD deIndex, 
182   LPCANDIDATELIST lpCandList, DWORD dwBufLen)
183 {
184   FIXME("(0x%08x, %ld, %p, %ld): stub\n",
185     hIMC, deIndex,
186     lpCandList, dwBufLen
187   );
188   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
189   return 0;
190 }
191
192 /***********************************************************************
193  *              ImmGetCandidateWindow (IMM32.@)
194  */
195 BOOL WINAPI ImmGetCandidateWindow(
196   HIMC hIMC, DWORD dwBufLen, LPCANDIDATEFORM lpCandidate)
197 {
198   FIXME("(0x%08x, %ld, %p): stub\n", hIMC, dwBufLen, lpCandidate);
199   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
200   return FALSE;
201 }
202
203 /***********************************************************************
204  *              ImmGetCompositionFontA (IMM32.@)
205  */
206 BOOL WINAPI ImmGetCompositionFontA(HIMC hIMC, LPLOGFONTA lplf)
207 {
208   FIXME("(0x%08x, %p): stub\n", hIMC, lplf);
209   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
210   return FALSE;
211 }
212
213 /***********************************************************************
214  *              ImmGetCompositionFontW (IMM32.@)
215  */
216 BOOL WINAPI ImmGetCompositionFontW(HIMC hIMC, LPLOGFONTW lplf)
217 {
218   FIXME("(0x%08x, %p): stub\n", hIMC, lplf);
219   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
220   return FALSE;
221 }
222
223 /***********************************************************************
224  *              ImmGetCompositionStringA (IMM32.@)
225  */
226 LONG WINAPI ImmGetCompositionStringA(
227   HIMC hIMC, DWORD dwIndex, LPVOID lpBuf, DWORD dwBufLen)
228 {
229   OSVERSIONINFOA version;
230   FIXME("(0x%08x, %ld, %p, %ld): stub\n",
231     hIMC, dwIndex, lpBuf, dwBufLen
232   );
233   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
234   GetVersionExA( &version );
235   switch(version.dwPlatformId)
236   {
237   case VER_PLATFORM_WIN32_WINDOWS: return -1;
238   case VER_PLATFORM_WIN32_NT: return 0;
239   default:
240       FIXME("%ld not supported",version.dwPlatformId);
241       return -1;
242   }
243 }
244
245 /***********************************************************************
246  *              ImmGetCompositionStringW (IMM32.@)
247  */
248 LONG WINAPI ImmGetCompositionStringW(
249   HIMC hIMC, DWORD dwIndex, 
250   LPVOID lpBuf, DWORD dwBufLen)
251 {
252   OSVERSIONINFOA version;
253   FIXME("(0x%08x, %ld, %p, %ld): stub\n",
254     hIMC, dwIndex, lpBuf, dwBufLen
255   );
256   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
257   GetVersionExA( &version );
258   switch(version.dwPlatformId)
259   {
260   case VER_PLATFORM_WIN32_WINDOWS: return -1;
261   case VER_PLATFORM_WIN32_NT: return 0;
262   default:
263       FIXME("%ld not supported",version.dwPlatformId);
264       return -1;
265   }
266 }
267
268 /***********************************************************************
269  *              ImmGetCompositionWindow (IMM32.@)
270  */
271 BOOL WINAPI ImmGetCompositionWindow(HIMC hIMC, LPCOMPOSITIONFORM lpCompForm)
272 {
273   FIXME("(0x%08x, %p): stub\n", hIMC, lpCompForm);
274   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
275   return 0;
276 }
277
278 /***********************************************************************
279  *              ImmGetContext (IMM32.@)
280  */
281 HIMC WINAPI ImmGetContext(HWND hWnd)
282 {
283   FIXME("(0x%08x): stub\n", hWnd);
284   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
285   return (HIMC)NULL;
286 }
287
288 /***********************************************************************
289  *              ImmGetConversionListA (IMM32.@)
290  */
291 DWORD WINAPI ImmGetConversionListA(
292   HKL hKL, HIMC hIMC,
293   LPCSTR pSrc, LPCANDIDATELIST lpDst,
294   DWORD dwBufLen, UINT uFlag)
295 {
296   FIXME("(0x%08x, 0x%08x, %s, %p, %ld, %d): stub\n",
297     hKL, hIMC, debugstr_a(pSrc), lpDst, dwBufLen, uFlag
298   );
299   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
300   return 0;
301 }
302
303 /***********************************************************************
304  *              ImmGetConversionListW (IMM32.@)
305  */
306 DWORD WINAPI ImmGetConversionListW(
307   HKL hKL, HIMC hIMC,
308   LPCWSTR pSrc, LPCANDIDATELIST lpDst,
309   DWORD dwBufLen, UINT uFlag)
310 {
311   FIXME("(0x%08x, 0x%08x, %s, %p, %ld, %d): stub\n",
312     hKL, hIMC, debugstr_w(pSrc), lpDst, dwBufLen, uFlag
313   );
314   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
315   return 0;
316 }
317
318 /***********************************************************************
319  *              ImmGetConversionStatus (IMM32.@)
320  */
321 BOOL WINAPI ImmGetConversionStatus(
322   HIMC hIMC, LPDWORD lpfdwConversion, LPDWORD lpfdwSentence)
323 {
324   FIXME("(0x%08x, %p, %p): stub\n",
325     hIMC, lpfdwConversion, lpfdwSentence
326   );
327   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
328   return FALSE;
329 }
330
331 /***********************************************************************
332  *              ImmGetDefaultIMEWnd (IMM32.@)
333  */
334 HWND WINAPI ImmGetDefaultIMEWnd(HWND hWnd)
335 {
336   FIXME("(0x%08x): stub\n", hWnd);
337   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
338   return (HWND)NULL;
339 }
340
341 /***********************************************************************
342  *              ImmGetDescriptionA (IMM32.@)
343  */
344 UINT WINAPI ImmGetDescriptionA(
345   HKL hKL, LPSTR lpszDescription, UINT uBufLen)
346 {
347   FIXME("(0x%08x, %s, %d): stub\n",
348     hKL, debugstr_a(lpszDescription), uBufLen
349   );
350   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
351   return 0;
352 }
353
354 /***********************************************************************
355  *              ImmGetDescriptionW (IMM32.@)
356  */
357 UINT WINAPI ImmGetDescriptionW(HKL hKL, LPWSTR lpszDescription, UINT uBufLen)
358 {
359   FIXME("(0x%08x, %s, %d): stub\n",
360     hKL, debugstr_w(lpszDescription), uBufLen
361   );
362   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
363   return 0;
364 }
365
366 /***********************************************************************
367  *              ImmGetGuideLineA (IMM32.@)
368  */
369 DWORD WINAPI ImmGetGuideLineA(
370   HIMC hIMC, DWORD dwIndex, LPSTR lpBuf, DWORD dwBufLen)
371 {
372   FIXME("(0x%08x, %ld, %s, %ld): stub\n",
373     hIMC, dwIndex, debugstr_a(lpBuf), dwBufLen
374   );
375   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
376   return 0;
377 }
378
379 /***********************************************************************
380  *              ImmGetGuideLineW (IMM32.@)
381  */
382 DWORD WINAPI ImmGetGuideLineW(HIMC hIMC, DWORD dwIndex, LPWSTR lpBuf, DWORD dwBufLen)
383 {
384   FIXME("(0x%08x, %ld, %s, %ld): stub\n",
385     hIMC, dwIndex, debugstr_w(lpBuf), dwBufLen
386   );
387   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
388   return 0;
389 }
390
391 /***********************************************************************
392  *              ImmGetIMEFileNameA (IMM32.@)
393  */
394 UINT WINAPI ImmGetIMEFileNameA(
395   HKL hKL, LPSTR lpszFileName, UINT uBufLen)
396 {
397   FIXME("(0x%08x, %s, %d): stub\n",
398     hKL, debugstr_a(lpszFileName), uBufLen
399   );
400   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
401   return 0;
402 }
403
404 /***********************************************************************
405  *              ImmGetIMEFileNameW (IMM32.@)
406  */
407 UINT WINAPI ImmGetIMEFileNameW(
408   HKL hKL, LPWSTR lpszFileName, UINT uBufLen)
409 {
410   FIXME("(0x%08x, %s, %d): stub\n",
411     hKL, debugstr_w(lpszFileName), uBufLen
412   );
413   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
414   return 0;
415 }
416
417 /***********************************************************************
418  *              ImmGetOpenStatus (IMM32.@)
419  */
420 BOOL WINAPI ImmGetOpenStatus(HIMC hIMC)
421 {
422   FIXME("(0x%08x): stub\n", hIMC);
423   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
424   return FALSE;
425 }
426
427 /***********************************************************************
428  *              ImmGetProperty (IMM32.@)
429  */
430 DWORD WINAPI ImmGetProperty(HKL hKL, DWORD fdwIndex)
431 {
432   FIXME("(0x%08x, %ld): stub\n", hKL, fdwIndex);
433   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
434   return 0;
435 }
436
437 /***********************************************************************
438  *              ImmGetRegisterWordStyleA (IMM32.@)
439  */
440 UINT WINAPI ImmGetRegisterWordStyleA(
441   HKL hKL, UINT nItem, LPSTYLEBUFA lpStyleBuf)
442 {
443   FIXME("(0x%08x, %d, %p): stub\n", hKL, nItem, lpStyleBuf);
444   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
445   return 0;
446 }
447
448 /***********************************************************************
449  *              ImmGetRegisterWordStyleW (IMM32.@)
450  */
451 UINT WINAPI ImmGetRegisterWordStyleW(
452   HKL hKL, UINT nItem, LPSTYLEBUFW lpStyleBuf)
453 {
454   FIXME("(0x%08x, %d, %p): stub\n", hKL, nItem, lpStyleBuf);
455   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
456   return 0;
457 }
458
459 /***********************************************************************
460  *              ImmGetStatusWindowPos (IMM32.@)
461  */
462 BOOL WINAPI ImmGetStatusWindowPos(HIMC hIMC, LPPOINT lpptPos)
463 {
464   FIXME("(0x%08x, %p): stub\n", hIMC, lpptPos);
465   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
466   return FALSE;
467 }
468
469 /***********************************************************************
470  *              ImmGetVirtualKey (IMM32.@)
471  */
472 UINT WINAPI ImmGetVirtualKey(HWND hWnd)
473 {
474   OSVERSIONINFOA version;
475   FIXME("(0x%08x): stub\n", hWnd);
476   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
477   GetVersionExA( &version );
478   switch(version.dwPlatformId)
479   {
480   case VER_PLATFORM_WIN32_WINDOWS:
481       return VK_PROCESSKEY;
482   case VER_PLATFORM_WIN32_NT:
483       return 0;
484   default:
485       FIXME("%ld not supported",version.dwPlatformId);
486       return VK_PROCESSKEY;
487   }
488 }
489
490 /***********************************************************************
491  *              ImmInstallIMEA (IMM32.@)
492  */
493 HKL WINAPI ImmInstallIMEA(
494   LPCSTR lpszIMEFileName, LPCSTR lpszLayoutText)
495 {
496   FIXME("(%s, %s): stub\n",
497     debugstr_a(lpszIMEFileName), debugstr_a(lpszLayoutText)
498   );
499   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
500   return (HKL)NULL;
501 }
502
503 /***********************************************************************
504  *              ImmInstallIMEW (IMM32.@)
505  */
506 HKL WINAPI ImmInstallIMEW(
507   LPCWSTR lpszIMEFileName, LPCWSTR lpszLayoutText)
508 {
509   FIXME("(%s, %s): stub\n",
510     debugstr_w(lpszIMEFileName), debugstr_w(lpszLayoutText)
511   );
512   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
513   return (HKL)NULL;
514 }
515
516 /***********************************************************************
517  *              ImmIsIME (IMM32.@)
518  */
519 BOOL WINAPI ImmIsIME(HKL hKL)
520 {
521   FIXME("(0x%08x): stub\n", hKL);
522   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
523   return FALSE;
524 }
525
526 /***********************************************************************
527  *              ImmIsUIMessageA (IMM32.@)
528  */
529 BOOL WINAPI ImmIsUIMessageA(
530   HWND hWndIME, UINT msg, WPARAM wParam, LPARAM lParam)
531 {
532   FIXME("(0x%08x, %d, %d, %ld): stub\n",
533     hWndIME, msg, wParam, lParam
534   );
535   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
536   return FALSE;
537 }
538
539 /***********************************************************************
540  *              ImmIsUIMessageW (IMM32.@)
541  */
542 BOOL WINAPI ImmIsUIMessageW(
543   HWND hWndIME, UINT msg, WPARAM wParam, LPARAM lParam)
544 {
545   FIXME("(0x%08x, %d, %d, %ld): stub\n",
546     hWndIME, msg, wParam, lParam
547   );
548   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
549   return FALSE;
550 }
551
552 /***********************************************************************
553  *              ImmNotifyIME (IMM32.@)
554  */
555 BOOL WINAPI ImmNotifyIME(
556   HIMC hIMC, DWORD dwAction, DWORD dwIndex, DWORD dwValue)
557 {
558   FIXME("(0x%08x, %ld, %ld, %ld): stub\n",
559     hIMC, dwAction, dwIndex, dwValue
560   );
561   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
562   return FALSE;
563 }
564
565 /***********************************************************************
566  *              ImmRegisterWordA (IMM32.@)
567  */
568 BOOL WINAPI ImmRegisterWordA(
569   HKL hKL, LPCSTR lpszReading, DWORD dwStyle, LPCSTR lpszRegister)
570 {
571   FIXME("(0x%08x, %s, %ld, %s): stub\n",
572     hKL, debugstr_a(lpszReading), dwStyle, debugstr_a(lpszRegister)
573   );
574   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
575   return FALSE;
576 }
577
578 /***********************************************************************
579  *              ImmRegisterWordW (IMM32.@)
580  */
581 BOOL WINAPI ImmRegisterWordW(
582   HKL hKL, LPCWSTR lpszReading, DWORD dwStyle, LPCWSTR lpszRegister)
583 {
584   FIXME("(0x%08x, %s, %ld, %s): stub\n",
585     hKL, debugstr_w(lpszReading), dwStyle, debugstr_w(lpszRegister)
586   );
587   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
588   return FALSE;
589 }
590
591 /***********************************************************************
592  *              ImmReleaseContext (IMM32.@)
593  */
594 BOOL WINAPI ImmReleaseContext(HWND hWnd, HIMC hIMC)
595 {
596   FIXME("(0x%08x, 0x%08x): stub\n", hWnd, hIMC);
597   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
598   return FALSE;
599 }
600
601 /***********************************************************************
602  *              ImmSetCandidateWindow (IMM32.@)
603  */
604 BOOL WINAPI ImmSetCandidateWindow(
605   HIMC hIMC, LPCANDIDATEFORM lpCandidate)
606 {
607   FIXME("(0x%08x, %p): stub\n", hIMC, lpCandidate);
608   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
609   return FALSE;
610 }
611
612 /***********************************************************************
613  *              ImmSetCompositionFontA (IMM32.@)
614  */
615 BOOL WINAPI ImmSetCompositionFontA(HIMC hIMC, LPLOGFONTA lplf)
616 {
617   FIXME("(0x%08x, %p): stub\n", hIMC, lplf);
618   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
619   return FALSE;
620 }
621
622 /***********************************************************************
623  *              ImmSetCompositionFontW (IMM32.@)
624  */
625 BOOL WINAPI ImmSetCompositionFontW(HIMC hIMC, LPLOGFONTW lplf)
626 {
627   FIXME("(0x%08x, %p): stub\n", hIMC, lplf);
628   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
629   return FALSE;
630 }
631
632 /***********************************************************************
633  *              ImmSetCompositionStringA (IMM32.@)
634  */
635 BOOL WINAPI ImmSetCompositionStringA(
636   HIMC hIMC, DWORD dwIndex, 
637   LPCVOID lpComp, DWORD dwCompLen, 
638   LPCVOID lpRead, DWORD dwReadLen)
639 {
640   FIXME("(0x%08x, %ld, %p, %ld, %p, %ld): stub\n",
641     hIMC, dwIndex, lpComp, dwCompLen, lpRead, dwReadLen
642   );
643   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
644   return FALSE;
645 }
646
647 /***********************************************************************
648  *              ImmSetCompositionStringW (IMM32.@)
649  */
650 BOOL WINAPI ImmSetCompositionStringW(
651         HIMC hIMC, DWORD dwIndex,
652         LPCVOID lpComp, DWORD dwCompLen,
653         LPCVOID lpRead, DWORD dwReadLen)
654 {
655   FIXME("(0x%08x, %ld, %p, %ld, %p, %ld): stub\n",
656     hIMC, dwIndex, lpComp, dwCompLen, lpRead, dwReadLen
657   );
658   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
659   return FALSE;
660 }
661
662 /***********************************************************************
663  *              ImmSetCompositionWindow (IMM32.@)
664  */
665 BOOL WINAPI ImmSetCompositionWindow(
666   HIMC hIMC, LPCOMPOSITIONFORM lpCompForm)
667 {
668   FIXME("(0x%08x, %p): stub\n", hIMC, lpCompForm);
669   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
670   return FALSE;
671 }
672
673 /***********************************************************************
674  *              ImmSetConversionStatus (IMM32.@)
675  */
676 BOOL WINAPI ImmSetConversionStatus(
677   HIMC hIMC, DWORD fdwConversion, DWORD fdwSentence)
678 {
679   FIXME("(0x%08x, %ld, %ld): stub\n",
680     hIMC, fdwConversion, fdwSentence
681   );
682   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
683   return FALSE;
684 }
685
686 /***********************************************************************
687  *              ImmSetOpenStatus (IMM32.@)
688  */
689 BOOL WINAPI ImmSetOpenStatus(HIMC hIMC, BOOL fOpen)
690 {
691   FIXME("(0x%08x, %d): stub\n", hIMC, fOpen);
692   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
693   return FALSE;
694 }
695
696 /***********************************************************************
697  *              ImmSetStatusWindowPos (IMM32.@)
698  */
699 BOOL WINAPI ImmSetStatusWindowPos(HIMC hIMC, LPPOINT lpptPos)
700 {
701   FIXME("(0x%08x, %p): stub\n", hIMC, lpptPos);
702   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
703   return FALSE;
704 }
705
706 /***********************************************************************
707  *              ImmSimulateHotKey (IMM32.@)
708  */
709 BOOL WINAPI ImmSimulateHotKey(HWND hWnd, DWORD dwHotKeyID)
710 {
711   FIXME("(0x%08x, %ld): stub\n", hWnd, dwHotKeyID);
712   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
713   return FALSE;
714 }
715
716 /***********************************************************************
717  *              ImmUnregisterWordA (IMM32.@)
718  */
719 BOOL WINAPI ImmUnregisterWordA(
720   HKL hKL, LPCSTR lpszReading, DWORD dwStyle, LPCSTR lpszUnregister)
721 {
722   FIXME("(0x%08x, %s, %ld, %s): stub\n",
723     hKL, debugstr_a(lpszReading), dwStyle, debugstr_a(lpszUnregister)
724   );
725   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
726   return FALSE;
727 }
728
729 /***********************************************************************
730  *              ImmUnregisterWordW (IMM32.@)
731  */
732 BOOL WINAPI ImmUnregisterWordW(
733   HKL hKL, LPCWSTR lpszReading, DWORD dwStyle, LPCWSTR lpszUnregister)
734 {
735   FIXME("(0x%08x, %s, %ld, %s): stub\n",
736     hKL, debugstr_w(lpszReading), dwStyle, debugstr_w(lpszUnregister)
737   );
738   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
739   return FALSE;
740 }
741
742 /***********************************************************************
743  *              ImmLockIMC (IMM32.@)
744  */
745 LPINPUTCONTEXT WINAPI ImmLockIMC(HIMC hIMC)
746 {
747         FIXME("(0x%08x): stub\n", (unsigned)hIMC);
748         SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
749         return NULL;
750 }
751
752 /***********************************************************************
753  *              ImmUnlockIMC (IMM32.@)
754  */
755 BOOL WINAPI ImmUnlockIMC(HIMC hIMC)
756 {
757         FIXME("(0x%08x): stub\n", (unsigned)hIMC);
758         SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
759         return FALSE;
760 }
761
762 /***********************************************************************
763  *              ImmGetIMCLockCount (IMM32.@)
764  */
765 DWORD WINAPI ImmGetIMCLockCount(HIMC hIMC)
766 {
767         FIXME("(0x%08x): stub\n", (unsigned)hIMC);
768         SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
769         return 0;
770 }
771
772 /***********************************************************************
773  *              ImmCreateIMCC (IMM32.@)
774  */
775 HIMCC WINAPI ImmCreateIMCC(DWORD dwSize)
776 {
777         FIXME("(%lu): stub\n", dwSize);
778         SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
779         return (HIMCC)NULL;
780 }
781
782 /***********************************************************************
783  *              ImmDestroyIMCC (IMM32.@)
784  */
785 HIMCC WINAPI ImmDestroyIMCC(HIMCC hIMCC)
786 {
787         FIXME("(0x%08x): stub\n", (unsigned)hIMCC);
788         SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
789         return (HIMCC)hIMCC;
790 }
791
792 /***********************************************************************
793  *              ImmLockIMCC (IMM32.@)
794  */
795 LPVOID WINAPI ImmLockIMCC(HIMCC hIMCC)
796 {
797         FIXME("(0x%08x): stub\n", (unsigned)hIMCC);
798         SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
799         return NULL;
800 }
801
802 /***********************************************************************
803  *              ImmUnlockIMCC (IMM32.@)
804  */
805 BOOL WINAPI ImmUnlockIMCC(HIMCC hIMCC)
806 {
807         FIXME("(0x%08x): stub\n", (unsigned)hIMCC);
808         SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
809         return FALSE;
810 }
811
812 /***********************************************************************
813  *              ImmGetIMCCLockCount (IMM32.@)
814  */
815 DWORD WINAPI ImmGetIMCCLockCount(HIMCC hIMCC)
816 {
817         FIXME("(0x%08x): stub\n", (unsigned)hIMCC);
818         SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
819         return 0;
820 }
821
822 /***********************************************************************
823  *              ImmReSizeIMCC (IMM32.@)
824  */
825 HIMCC WINAPI ImmReSizeIMCC(HIMCC hIMCC, DWORD dwSize)
826 {
827         FIXME("(0x%08x,%lu): stub\n", (unsigned)hIMCC, dwSize);
828         SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
829         return (HIMCC)NULL;
830 }
831
832 /***********************************************************************
833  *              ImmGetIMCCSize (IMM32.@)
834  */
835 DWORD WINAPI ImmGetIMCCSize(HIMCC hIMCC)
836 {
837         FIXME("(0x%08x): stub\n", (unsigned)hIMCC);
838         SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
839         return 0;
840 }
841
842 /***********************************************************************
843  *              ImmCreateSoftKeyboard (IMM32.@)
844  */
845 HWND WINAPI ImmCreateSoftKeyboard(UINT uType, HWND hOwner, int x, int y)
846 {
847         FIXME("(0x%08x, 0x%08x, %d, %d): stub\n", uType, (unsigned)hOwner, x, y);
848         SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
849         return (HWND)NULL;
850 }
851
852 /***********************************************************************
853  *              ImmDestroySoftKeyboard (IMM32.@)
854  */
855 BOOL WINAPI ImmDestroySoftKeyboard(HWND hwndSoftKeyboard)
856 {
857         FIXME("(0x%08x): stub\n", (unsigned)hwndSoftKeyboard);
858         SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
859         return FALSE;
860 }
861
862 /***********************************************************************
863  *              ImmShowSoftKeyboard (IMM32.@)
864  */
865 BOOL WINAPI ImmShowSoftKeyboard(HWND hwndSoftKeyboard, int nCmdShow)
866 {
867         FIXME("(0x%08x, %d): stub\n", (unsigned)hwndSoftKeyboard, nCmdShow);
868         SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
869         return FALSE;
870 }
871
872 /***********************************************************************
873  *              ImmGetHotKey (IMM32.@)
874  */
875 BOOL WINAPI ImmGetHotKey(DWORD dwHotKeyID, LPUINT lpuModifiers,
876                          LPUINT lpuVKey, LPHKL lphKL)
877 {
878         FIXME("(0x%08lx, %p, %p, %p): stub\n",
879                dwHotKeyID, lpuModifiers, lpuVKey, lphKL);
880         SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
881         return FALSE;
882 }
883
884 /***********************************************************************
885  *              ImmSetHotKey (IMM32.@)
886  */
887 BOOL WINAPI ImmSetHotKey(DWORD dwHotKeyID, UINT uModifiers,
888                          UINT uVKey, HKL hKL)
889 {
890         FIXME("(0x%08lx, 0x%08x, 0x%08x, 0x%08x): stub\n",
891                dwHotKeyID, uModifiers, uVKey, (unsigned)hKL);
892         SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
893         return FALSE;
894 }
895
896 /***********************************************************************
897  *              ImmGenerateMessage (IMM32.@)
898  */
899 BOOL WINAPI ImmGenerateMessage(HIMC hIMC)
900 {
901         FIXME("(0x%08x): stub\n", (unsigned)hIMC);
902         SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
903         return FALSE;
904 }
905
906
907