dvideo.dll forgets to set the DDSD_CAPS flag, just assume it set.
[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   GetVersionExA( &version );
176   switch(version.dwPlatformId)
177   {
178   case VER_PLATFORM_WIN32_WINDOWS: return -1;
179   case VER_PLATFORM_WIN32_NT: return 0;
180   default:
181       FIXME("%ld not supported",version.dwPlatformId);
182       return -1;
183   }
184 }
185
186 /***********************************************************************
187  *              ImmGetCompositionStringW (IMM32.@)
188  */
189 LONG WINAPI ImmGetCompositionStringW(
190   HIMC hIMC, DWORD dwIndex, 
191   LPVOID lpBuf, DWORD dwBufLen)
192 {
193   OSVERSIONINFOA version;
194   FIXME("(0x%08x, %ld, %p, %ld): stub\n",
195     hIMC, dwIndex, lpBuf, dwBufLen
196   );
197   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
198   GetVersionExA( &version );
199   switch(version.dwPlatformId)
200   {
201   case VER_PLATFORM_WIN32_WINDOWS: return -1;
202   case VER_PLATFORM_WIN32_NT: return 0;
203   default:
204       FIXME("%ld not supported",version.dwPlatformId);
205       return -1;
206   }
207 }
208
209 /***********************************************************************
210  *              ImmGetCompositionWindow (IMM32.@)
211  */
212 BOOL WINAPI ImmGetCompositionWindow(HIMC hIMC, LPCOMPOSITIONFORM lpCompForm)
213 {
214   FIXME("(0x%08x, %p): stub\n", hIMC, lpCompForm);
215   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
216   return 0;
217 }
218
219 /***********************************************************************
220  *              ImmGetContext (IMM32.@)
221  */
222 HIMC WINAPI ImmGetContext(HWND hWnd)
223 {
224   FIXME("(0x%08x): stub\n", hWnd);
225   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
226   return (HIMC)NULL;
227 }
228
229 /***********************************************************************
230  *              ImmGetConversionListA (IMM32.@)
231  */
232 DWORD WINAPI ImmGetConversionListA(
233   HKL hKL, HIMC hIMC,
234   LPCSTR pSrc, LPCANDIDATELIST lpDst,
235   DWORD dwBufLen, UINT uFlag)
236 {
237   FIXME("(0x%08x, 0x%08x, %s, %p, %ld, %d): stub\n",
238     hKL, hIMC, debugstr_a(pSrc), lpDst, dwBufLen, uFlag
239   );
240   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
241   return 0;
242 }
243
244 /***********************************************************************
245  *              ImmGetConversionListW (IMM32.@)
246  */
247 DWORD WINAPI ImmGetConversionListW(
248   HKL hKL, HIMC hIMC,
249   LPCWSTR pSrc, LPCANDIDATELIST lpDst,
250   DWORD dwBufLen, UINT uFlag)
251 {
252   FIXME("(0x%08x, 0x%08x, %s, %p, %ld, %d): stub\n",
253     hKL, hIMC, debugstr_w(pSrc), lpDst, dwBufLen, uFlag
254   );
255   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
256   return 0;
257 }
258
259 /***********************************************************************
260  *              ImmGetConversionStatus (IMM32.@)
261  */
262 BOOL WINAPI ImmGetConversionStatus(
263   HIMC hIMC, LPDWORD lpfdwConversion, LPDWORD lpfdwSentence)
264 {
265   FIXME("(0x%08x, %p, %p): stub\n",
266     hIMC, lpfdwConversion, lpfdwSentence
267   );
268   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
269   return FALSE;
270 }
271
272 /***********************************************************************
273  *              ImmGetDefaultIMEWnd (IMM32.@)
274  */
275 HWND WINAPI ImmGetDefaultIMEWnd(HWND hWnd)
276 {
277   FIXME("(0x%08x): stub\n", hWnd);
278   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
279   return (HWND)NULL;
280 }
281
282 /***********************************************************************
283  *              ImmGetDescriptionA (IMM32.@)
284  */
285 UINT WINAPI ImmGetDescriptionA(
286   HKL hKL, LPSTR lpszDescription, UINT uBufLen)
287 {
288   FIXME("(0x%08x, %s, %d): stub\n",
289     hKL, debugstr_a(lpszDescription), uBufLen
290   );
291   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
292   return 0;
293 }
294
295 /***********************************************************************
296  *              ImmGetDescriptionW (IMM32.@)
297  */
298 UINT WINAPI ImmGetDescriptionW(HKL hKL, LPWSTR lpszDescription, UINT uBufLen)
299 {
300   FIXME("(0x%08x, %s, %d): stub\n",
301     hKL, debugstr_w(lpszDescription), uBufLen
302   );
303   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
304   return 0;
305 }
306
307 /***********************************************************************
308  *              ImmGetGuideLineA (IMM32.@)
309  */
310 DWORD WINAPI ImmGetGuideLineA(
311   HIMC hIMC, DWORD dwIndex, LPSTR lpBuf, DWORD dwBufLen)
312 {
313   FIXME("(0x%08x, %ld, %s, %ld): stub\n",
314     hIMC, dwIndex, debugstr_a(lpBuf), dwBufLen
315   );
316   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
317   return 0;
318 }
319
320 /***********************************************************************
321  *              ImmGetGuideLineW (IMM32.@)
322  */
323 DWORD WINAPI ImmGetGuideLineW(HIMC hIMC, DWORD dwIndex, LPWSTR lpBuf, DWORD dwBufLen)
324 {
325   FIXME("(0x%08x, %ld, %s, %ld): stub\n",
326     hIMC, dwIndex, debugstr_w(lpBuf), dwBufLen
327   );
328   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
329   return 0;
330 }
331
332 /***********************************************************************
333  *              ImmGetOpenStatus (IMM32.@)
334  */
335 BOOL WINAPI ImmGetOpenStatus(HIMC hIMC)
336 {
337   FIXME("(0x%08x): stub\n", hIMC);
338   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
339   return FALSE;
340 }
341
342 /***********************************************************************
343  *              ImmGetStatusWindowPos (IMM32.@)
344  */
345 BOOL WINAPI ImmGetStatusWindowPos(HIMC hIMC, LPPOINT lpptPos)
346 {
347   FIXME("(0x%08x, %p): stub\n", hIMC, lpptPos);
348   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
349   return FALSE;
350 }
351
352 /***********************************************************************
353  *              ImmGetVirtualKey (IMM32.@)
354  */
355 UINT WINAPI ImmGetVirtualKey(HWND hWnd)
356 {
357   OSVERSIONINFOA version;
358   FIXME("(0x%08x): stub\n", hWnd);
359   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
360   GetVersionExA( &version );
361   switch(version.dwPlatformId)
362   {
363   case VER_PLATFORM_WIN32_WINDOWS:
364       return VK_PROCESSKEY;
365   case VER_PLATFORM_WIN32_NT:
366       return 0;
367   default:
368       FIXME("%ld not supported",version.dwPlatformId);
369       return VK_PROCESSKEY;
370   }
371 }
372
373 /***********************************************************************
374  *              ImmNotifyIME (IMM32.@)
375  */
376 BOOL WINAPI ImmNotifyIME(
377   HIMC hIMC, DWORD dwAction, DWORD dwIndex, DWORD dwValue)
378 {
379   FIXME("(0x%08x, %ld, %ld, %ld): stub\n",
380     hIMC, dwAction, dwIndex, dwValue
381   );
382   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
383   return FALSE;
384 }
385
386 /***********************************************************************
387  *              ImmRegisterWordA (IMM32.@)
388  */
389 BOOL WINAPI ImmRegisterWordA(
390   HKL hKL, LPCSTR lpszReading, DWORD dwStyle, LPCSTR lpszRegister)
391 {
392   FIXME("(0x%08x, %s, %ld, %s): stub\n",
393     hKL, debugstr_a(lpszReading), dwStyle, debugstr_a(lpszRegister)
394   );
395   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
396   return FALSE;
397 }
398
399 /***********************************************************************
400  *              ImmRegisterWordW (IMM32.@)
401  */
402 BOOL WINAPI ImmRegisterWordW(
403   HKL hKL, LPCWSTR lpszReading, DWORD dwStyle, LPCWSTR lpszRegister)
404 {
405   FIXME("(0x%08x, %s, %ld, %s): stub\n",
406     hKL, debugstr_w(lpszReading), dwStyle, debugstr_w(lpszRegister)
407   );
408   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
409   return FALSE;
410 }
411
412 /***********************************************************************
413  *              ImmReleaseContext (IMM32.@)
414  */
415 BOOL WINAPI ImmReleaseContext(HWND hWnd, HIMC hIMC)
416 {
417   FIXME("(0x%08x, 0x%08x): stub\n", hWnd, hIMC);
418   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
419   return FALSE;
420 }
421
422 /***********************************************************************
423  *              ImmSetCandidateWindow (IMM32.@)
424  */
425 BOOL WINAPI ImmSetCandidateWindow(
426   HIMC hIMC, LPCANDIDATEFORM lpCandidate)
427 {
428   FIXME("(0x%08x, %p): stub\n", hIMC, lpCandidate);
429   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
430   return FALSE;
431 }
432
433 /***********************************************************************
434  *              ImmSetCompositionFontA (IMM32.@)
435  */
436 BOOL WINAPI ImmSetCompositionFontA(HIMC hIMC, LPLOGFONTA lplf)
437 {
438   FIXME("(0x%08x, %p): stub\n", hIMC, lplf);
439   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
440   return FALSE;
441 }
442
443 /***********************************************************************
444  *              ImmSetCompositionFontW (IMM32.@)
445  */
446 BOOL WINAPI ImmSetCompositionFontW(HIMC hIMC, LPLOGFONTW lplf)
447 {
448   FIXME("(0x%08x, %p): stub\n", hIMC, lplf);
449   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
450   return FALSE;
451 }
452
453 /***********************************************************************
454  *              ImmSetCompositionStringA (IMM32.@)
455  */
456 BOOL WINAPI ImmSetCompositionStringA(
457   HIMC hIMC, DWORD dwIndex, 
458   LPCVOID lpComp, DWORD dwCompLen, 
459   LPCVOID lpRead, DWORD dwReadLen)
460 {
461   FIXME("(0x%08x, %ld, %p, %ld, %p, %ld): stub\n",
462     hIMC, dwIndex, lpComp, dwCompLen, lpRead, dwReadLen
463   );
464   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
465   return FALSE;
466 }
467
468 /***********************************************************************
469  *              ImmSetCompositionStringW (IMM32.@)
470  */
471 BOOL WINAPI ImmSetCompositionStringW(
472         HIMC hIMC, DWORD dwIndex,
473         LPCVOID lpComp, DWORD dwCompLen,
474         LPCVOID lpRead, DWORD dwReadLen)
475 {
476   FIXME("(0x%08x, %ld, %p, %ld, %p, %ld): stub\n",
477     hIMC, dwIndex, lpComp, dwCompLen, lpRead, dwReadLen
478   );
479   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
480   return FALSE;
481 }
482
483 /***********************************************************************
484  *              ImmSetCompositionWindow (IMM32.@)
485  */
486 BOOL WINAPI ImmSetCompositionWindow(
487   HIMC hIMC, LPCOMPOSITIONFORM lpCompForm)
488 {
489   FIXME("(0x%08x, %p): stub\n", hIMC, lpCompForm);
490   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
491   return FALSE;
492 }
493
494 /***********************************************************************
495  *              ImmSetConversionStatus (IMM32.@)
496  */
497 BOOL WINAPI ImmSetConversionStatus(
498   HIMC hIMC, DWORD fdwConversion, DWORD fdwSentence)
499 {
500   FIXME("(0x%08x, %ld, %ld): stub\n",
501     hIMC, fdwConversion, fdwSentence
502   );
503   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
504   return FALSE;
505 }
506
507 /***********************************************************************
508  *              ImmSetOpenStatus (IMM32.@)
509  */
510 BOOL WINAPI ImmSetOpenStatus(HIMC hIMC, BOOL fOpen)
511 {
512   FIXME("(0x%08x, %d): stub\n", hIMC, fOpen);
513   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
514   return FALSE;
515 }
516
517 /***********************************************************************
518  *              ImmSetStatusWindowPos (IMM32.@)
519  */
520 BOOL WINAPI ImmSetStatusWindowPos(HIMC hIMC, LPPOINT lpptPos)
521 {
522   FIXME("(0x%08x, %p): stub\n", hIMC, lpptPos);
523   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
524   return FALSE;
525 }
526
527 /***********************************************************************
528  *              ImmSimulateHotKey (IMM32.@)
529  */
530 BOOL WINAPI ImmSimulateHotKey(HWND hWnd, DWORD dwHotKeyID)
531 {
532   FIXME("(0x%08x, %ld): stub\n", hWnd, dwHotKeyID);
533   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
534   return FALSE;
535 }
536
537 /***********************************************************************
538  *              ImmUnregisterWordA (IMM32.@)
539  */
540 BOOL WINAPI ImmUnregisterWordA(
541   HKL hKL, LPCSTR lpszReading, DWORD dwStyle, LPCSTR lpszUnregister)
542 {
543   FIXME("(0x%08x, %s, %ld, %s): stub\n",
544     hKL, debugstr_a(lpszReading), dwStyle, debugstr_a(lpszUnregister)
545   );
546   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
547   return FALSE;
548 }
549
550 /***********************************************************************
551  *              ImmUnregisterWordW (IMM32.@)
552  */
553 BOOL WINAPI ImmUnregisterWordW(
554   HKL hKL, LPCWSTR lpszReading, DWORD dwStyle, LPCWSTR lpszUnregister)
555 {
556   FIXME("(0x%08x, %s, %ld, %s): stub\n",
557     hKL, debugstr_w(lpszReading), dwStyle, debugstr_w(lpszUnregister)
558   );
559   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
560   return FALSE;
561 }
562
563 /***********************************************************************
564  *              ImmCreateSoftKeyboard (IMM32.@)
565  */
566 HWND WINAPI ImmCreateSoftKeyboard(UINT uType, HWND hOwner, int x, int y)
567 {
568         FIXME("(0x%08x, 0x%08x, %d, %d): stub\n", uType, (unsigned)hOwner, x, y);
569         SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
570         return (HWND)NULL;
571 }
572
573 /***********************************************************************
574  *              ImmDestroySoftKeyboard (IMM32.@)
575  */
576 BOOL WINAPI ImmDestroySoftKeyboard(HWND hwndSoftKeyboard)
577 {
578         FIXME("(0x%08x): stub\n", (unsigned)hwndSoftKeyboard);
579         SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
580         return FALSE;
581 }
582
583 /***********************************************************************
584  *              ImmShowSoftKeyboard (IMM32.@)
585  */
586 BOOL WINAPI ImmShowSoftKeyboard(HWND hwndSoftKeyboard, int nCmdShow)
587 {
588         FIXME("(0x%08x, %d): stub\n", (unsigned)hwndSoftKeyboard, nCmdShow);
589         SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
590         return FALSE;
591 }
592
593 /***********************************************************************
594  *              ImmGetHotKey (IMM32.@)
595  */
596 BOOL WINAPI ImmGetHotKey(DWORD dwHotKeyID, LPUINT lpuModifiers,
597                          LPUINT lpuVKey, LPHKL lphKL)
598 {
599         FIXME("(0x%08lx, %p, %p, %p): stub\n",
600                dwHotKeyID, lpuModifiers, lpuVKey, lphKL);
601         SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
602         return FALSE;
603 }
604
605 /***********************************************************************
606  *              ImmSetHotKey (IMM32.@)
607  */
608 BOOL WINAPI ImmSetHotKey(DWORD dwHotKeyID, UINT uModifiers,
609                          UINT uVKey, HKL hKL)
610 {
611         FIXME("(0x%08lx, 0x%08x, 0x%08x, 0x%08x): stub\n",
612                dwHotKeyID, uModifiers, uVKey, (unsigned)hKL);
613         SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
614         return FALSE;
615 }
616
617 /***********************************************************************
618  *              ImmGenerateMessage (IMM32.@)
619  */
620 BOOL WINAPI ImmGenerateMessage(HIMC hIMC)
621 {
622         FIXME("(0x%08x): stub\n", (unsigned)hIMC);
623         SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
624         return FALSE;
625 }
626
627
628