2 * ActiveIMMApp Interface
4 * Copyright 2008 CodeWeavers, Aric Stewart
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
37 #include "wine/unicode.h"
39 #include "wine/debug.h"
41 WINE_DEFAULT_DEBUG_CHANNEL(msimtf
);
43 typedef struct tagActiveIMMApp
{
44 IActiveIMMApp IActiveIMMApp_iface
;
48 static inline ActiveIMMApp
*impl_from_IActiveIMMApp(IActiveIMMApp
*iface
)
50 return CONTAINING_RECORD(iface
, ActiveIMMApp
, IActiveIMMApp_iface
);
53 static void ActiveIMMApp_Destructor(ActiveIMMApp
* This
)
56 HeapFree(GetProcessHeap(),0,This
);
59 static HRESULT WINAPI
ActiveIMMApp_QueryInterface (IActiveIMMApp
* iface
,
60 REFIID iid
, LPVOID
*ppvOut
)
62 ActiveIMMApp
*This
= impl_from_IActiveIMMApp(iface
);
65 if (IsEqualIID(iid
, &IID_IUnknown
) || IsEqualIID(iid
, &IID_IActiveIMMApp
))
72 IUnknown_AddRef(iface
);
76 WARN("unsupported interface: %s\n", debugstr_guid(iid
));
80 static ULONG WINAPI
ActiveIMMApp_AddRef(IActiveIMMApp
* iface
)
82 ActiveIMMApp
*This
= impl_from_IActiveIMMApp(iface
);
83 return InterlockedIncrement(&This
->refCount
);
86 static ULONG WINAPI
ActiveIMMApp_Release(IActiveIMMApp
* iface
)
88 ActiveIMMApp
*This
= impl_from_IActiveIMMApp(iface
);
91 ret
= InterlockedDecrement(&This
->refCount
);
93 ActiveIMMApp_Destructor(This
);
97 static HRESULT WINAPI
ActiveIMMApp_AssociateContext(IActiveIMMApp
* iface
,
98 HWND hWnd
, HIMC hIME
, HIMC
*phPrev
)
100 *phPrev
= ImmAssociateContext(hWnd
,hIME
);
104 static HRESULT WINAPI
ActiveIMMApp_ConfigureIMEA(IActiveIMMApp
* This
,
105 HKL hKL
, HWND hwnd
, DWORD dwMode
, REGISTERWORDA
*pData
)
109 rc
= ImmConfigureIMEA(hKL
, hwnd
, dwMode
, pData
);
116 static HRESULT WINAPI
ActiveIMMApp_ConfigureIMEW(IActiveIMMApp
* This
,
117 HKL hKL
, HWND hWnd
, DWORD dwMode
, REGISTERWORDW
*pData
)
121 rc
= ImmConfigureIMEW(hKL
, hWnd
, dwMode
, pData
);
128 static HRESULT WINAPI
ActiveIMMApp_CreateContext(IActiveIMMApp
* This
,
131 *phIMC
= ImmCreateContext();
138 static HRESULT WINAPI
ActiveIMMApp_DestroyContext(IActiveIMMApp
* This
,
143 rc
= ImmDestroyContext(hIME
);
150 static HRESULT WINAPI
ActiveIMMApp_EnumRegisterWordA(IActiveIMMApp
* This
,
151 HKL hKL
, LPSTR szReading
, DWORD dwStyle
, LPSTR szRegister
,
152 LPVOID pData
, IEnumRegisterWordA
**pEnum
)
158 static HRESULT WINAPI
ActiveIMMApp_EnumRegisterWordW(IActiveIMMApp
* This
,
159 HKL hKL
, LPWSTR szReading
, DWORD dwStyle
, LPWSTR szRegister
,
160 LPVOID pData
, IEnumRegisterWordW
**pEnum
)
166 static HRESULT WINAPI
ActiveIMMApp_EscapeA(IActiveIMMApp
* This
,
167 HKL hKL
, HIMC hIMC
, UINT uEscape
, LPVOID pData
, LRESULT
*plResult
)
169 *plResult
= ImmEscapeA(hKL
, hIMC
, uEscape
, pData
);
173 static HRESULT WINAPI
ActiveIMMApp_EscapeW(IActiveIMMApp
* This
,
174 HKL hKL
, HIMC hIMC
, UINT uEscape
, LPVOID pData
, LRESULT
*plResult
)
176 *plResult
= ImmEscapeW(hKL
, hIMC
, uEscape
, pData
);
180 static HRESULT WINAPI
ActiveIMMApp_GetCandidateListA(IActiveIMMApp
* This
,
181 HIMC hIMC
, DWORD dwIndex
, UINT uBufLen
, CANDIDATELIST
*pCandList
,
184 *puCopied
= ImmGetCandidateListA(hIMC
, dwIndex
, pCandList
, uBufLen
);
188 static HRESULT WINAPI
ActiveIMMApp_GetCandidateListW(IActiveIMMApp
* This
,
189 HIMC hIMC
, DWORD dwIndex
, UINT uBufLen
, CANDIDATELIST
*pCandList
,
192 *puCopied
= ImmGetCandidateListW(hIMC
, dwIndex
, pCandList
, uBufLen
);
196 static HRESULT WINAPI
ActiveIMMApp_GetCandidateListCountA(IActiveIMMApp
* This
,
197 HIMC hIMC
, DWORD
*pdwListSize
, DWORD
*pdwBufLen
)
199 *pdwBufLen
= ImmGetCandidateListCountA(hIMC
, pdwListSize
);
203 static HRESULT WINAPI
ActiveIMMApp_GetCandidateListCountW(IActiveIMMApp
* This
,
204 HIMC hIMC
, DWORD
*pdwListSize
, DWORD
*pdwBufLen
)
206 *pdwBufLen
= ImmGetCandidateListCountA(hIMC
, pdwListSize
);
210 static HRESULT WINAPI
ActiveIMMApp_GetCandidateWindow(IActiveIMMApp
* This
,
211 HIMC hIMC
, DWORD dwIndex
, CANDIDATEFORM
*pCandidate
)
214 rc
= ImmGetCandidateWindow(hIMC
,dwIndex
,pCandidate
);
221 static HRESULT WINAPI
ActiveIMMApp_GetCompositionFontA(IActiveIMMApp
* This
,
222 HIMC hIMC
, LOGFONTA
*plf
)
225 rc
= ImmGetCompositionFontA(hIMC
,plf
);
232 static HRESULT WINAPI
ActiveIMMApp_GetCompositionFontW(IActiveIMMApp
* This
,
233 HIMC hIMC
, LOGFONTW
*plf
)
236 rc
= ImmGetCompositionFontW(hIMC
,plf
);
243 static HRESULT WINAPI
ActiveIMMApp_GetCompositionStringA(IActiveIMMApp
* This
,
244 HIMC hIMC
, DWORD dwIndex
, DWORD dwBufLen
, LONG
*plCopied
, LPVOID pBuf
)
246 *plCopied
= ImmGetCompositionStringA(hIMC
, dwIndex
, pBuf
, dwBufLen
);
250 static HRESULT WINAPI
ActiveIMMApp_GetCompositionStringW(IActiveIMMApp
* This
,
251 HIMC hIMC
, DWORD dwIndex
, DWORD dwBufLen
, LONG
*plCopied
, LPVOID pBuf
)
253 *plCopied
= ImmGetCompositionStringW(hIMC
, dwIndex
, pBuf
, dwBufLen
);
257 static HRESULT WINAPI
ActiveIMMApp_GetCompositionWindow(IActiveIMMApp
* This
,
258 HIMC hIMC
, COMPOSITIONFORM
*pCompForm
)
262 rc
= ImmGetCompositionWindow(hIMC
,pCompForm
);
270 static HRESULT WINAPI
ActiveIMMApp_GetContext(IActiveIMMApp
* This
,
271 HWND hwnd
, HIMC
*phIMC
)
273 *phIMC
= ImmGetContext(hwnd
);
277 static HRESULT WINAPI
ActiveIMMApp_GetConversionListA(IActiveIMMApp
* This
,
278 HKL hKL
, HIMC hIMC
, LPSTR pSrc
, UINT uBufLen
, UINT uFlag
,
279 CANDIDATELIST
*pDst
, UINT
*puCopied
)
281 *puCopied
= ImmGetConversionListA(hKL
, hIMC
, pSrc
, pDst
, uBufLen
, uFlag
);
285 static HRESULT WINAPI
ActiveIMMApp_GetConversionListW(IActiveIMMApp
* This
,
286 HKL hKL
, HIMC hIMC
, LPWSTR pSrc
, UINT uBufLen
, UINT uFlag
,
287 CANDIDATELIST
*pDst
, UINT
*puCopied
)
289 *puCopied
= ImmGetConversionListW(hKL
, hIMC
, pSrc
, pDst
, uBufLen
, uFlag
);
293 static HRESULT WINAPI
ActiveIMMApp_GetConversionStatus(IActiveIMMApp
* This
,
294 HIMC hIMC
, DWORD
*pfdwConversion
, DWORD
*pfdwSentence
)
298 rc
= ImmGetConversionStatus(hIMC
, pfdwConversion
, pfdwSentence
);
306 static HRESULT WINAPI
ActiveIMMApp_GetDefaultIMEWnd(IActiveIMMApp
* This
,
307 HWND hWnd
, HWND
*phDefWnd
)
309 *phDefWnd
= ImmGetDefaultIMEWnd(hWnd
);
313 static HRESULT WINAPI
ActiveIMMApp_GetDescriptionA(IActiveIMMApp
* This
,
314 HKL hKL
, UINT uBufLen
, LPSTR szDescription
, UINT
*puCopied
)
316 *puCopied
= ImmGetDescriptionA(hKL
, szDescription
, uBufLen
);
320 static HRESULT WINAPI
ActiveIMMApp_GetDescriptionW(IActiveIMMApp
* This
,
321 HKL hKL
, UINT uBufLen
, LPWSTR szDescription
, UINT
*puCopied
)
323 *puCopied
= ImmGetDescriptionW(hKL
, szDescription
, uBufLen
);
327 static HRESULT WINAPI
ActiveIMMApp_GetGuideLineA(IActiveIMMApp
* This
,
328 HIMC hIMC
, DWORD dwIndex
, DWORD dwBufLen
, LPSTR pBuf
,
331 *pdwResult
= ImmGetGuideLineA(hIMC
, dwIndex
, pBuf
, dwBufLen
);
335 static HRESULT WINAPI
ActiveIMMApp_GetGuideLineW(IActiveIMMApp
* This
,
336 HIMC hIMC
, DWORD dwIndex
, DWORD dwBufLen
, LPWSTR pBuf
,
339 *pdwResult
= ImmGetGuideLineW(hIMC
, dwIndex
, pBuf
, dwBufLen
);
343 static HRESULT WINAPI
ActiveIMMApp_GetIMEFileNameA(IActiveIMMApp
* This
,
344 HKL hKL
, UINT uBufLen
, LPSTR szFileName
, UINT
*puCopied
)
346 *puCopied
= ImmGetIMEFileNameA(hKL
, szFileName
, uBufLen
);
350 static HRESULT WINAPI
ActiveIMMApp_GetIMEFileNameW(IActiveIMMApp
* This
,
351 HKL hKL
, UINT uBufLen
, LPWSTR szFileName
, UINT
*puCopied
)
353 *puCopied
= ImmGetIMEFileNameW(hKL
, szFileName
, uBufLen
);
357 static HRESULT WINAPI
ActiveIMMApp_GetOpenStatus(IActiveIMMApp
* This
,
360 return ImmGetOpenStatus(hIMC
);
363 static HRESULT WINAPI
ActiveIMMApp_GetProperty(IActiveIMMApp
* This
,
364 HKL hKL
, DWORD fdwIndex
, DWORD
*pdwProperty
)
366 *pdwProperty
= ImmGetProperty(hKL
, fdwIndex
);
370 static HRESULT WINAPI
ActiveIMMApp_GetRegisterWordStyleA(IActiveIMMApp
* This
,
371 HKL hKL
, UINT nItem
, STYLEBUFA
*pStyleBuf
, UINT
*puCopied
)
373 *puCopied
= ImmGetRegisterWordStyleA(hKL
, nItem
, pStyleBuf
);
377 static HRESULT WINAPI
ActiveIMMApp_GetRegisterWordStyleW(IActiveIMMApp
* This
,
378 HKL hKL
, UINT nItem
, STYLEBUFW
*pStyleBuf
, UINT
*puCopied
)
380 *puCopied
= ImmGetRegisterWordStyleW(hKL
, nItem
, pStyleBuf
);
384 static HRESULT WINAPI
ActiveIMMApp_GetStatusWindowPos(IActiveIMMApp
* This
,
385 HIMC hIMC
, POINT
*pptPos
)
388 rc
= ImmGetStatusWindowPos(hIMC
, pptPos
);
396 static HRESULT WINAPI
ActiveIMMApp_GetVirtualKey(IActiveIMMApp
* This
,
397 HWND hWnd
, UINT
*puVirtualKey
)
399 *puVirtualKey
= ImmGetVirtualKey(hWnd
);
403 static HRESULT WINAPI
ActiveIMMApp_InstallIMEA(IActiveIMMApp
* This
,
404 LPSTR szIMEFileName
, LPSTR szLayoutText
, HKL
*phKL
)
406 *phKL
= ImmInstallIMEA(szIMEFileName
,szLayoutText
);
410 static HRESULT WINAPI
ActiveIMMApp_InstallIMEW(IActiveIMMApp
* This
,
411 LPWSTR szIMEFileName
, LPWSTR szLayoutText
, HKL
*phKL
)
413 *phKL
= ImmInstallIMEW(szIMEFileName
,szLayoutText
);
417 static HRESULT WINAPI
ActiveIMMApp_IsIME(IActiveIMMApp
* This
,
420 return ImmIsIME(hKL
);
423 static HRESULT WINAPI
ActiveIMMApp_IsUIMessageA(IActiveIMMApp
* This
,
424 HWND hWndIME
, UINT msg
, WPARAM wParam
, LPARAM lParam
)
426 return ImmIsUIMessageA(hWndIME
,msg
,wParam
,lParam
);
429 static HRESULT WINAPI
ActiveIMMApp_IsUIMessageW(IActiveIMMApp
* This
,
430 HWND hWndIME
, UINT msg
, WPARAM wParam
, LPARAM lParam
)
432 return ImmIsUIMessageW(hWndIME
,msg
,wParam
,lParam
);
435 static HRESULT WINAPI
ActiveIMMApp_NotifyIME(IActiveIMMApp
* This
,
436 HIMC hIMC
, DWORD dwAction
, DWORD dwIndex
, DWORD dwValue
)
440 rc
= ImmNotifyIME(hIMC
,dwAction
,dwIndex
,dwValue
);
448 static HRESULT WINAPI
ActiveIMMApp_RegisterWordA(IActiveIMMApp
* This
,
449 HKL hKL
, LPSTR szReading
, DWORD dwStyle
, LPSTR szRegister
)
453 rc
= ImmRegisterWordA(hKL
,szReading
,dwStyle
,szRegister
);
461 static HRESULT WINAPI
ActiveIMMApp_RegisterWordW(IActiveIMMApp
* This
,
462 HKL hKL
, LPWSTR szReading
, DWORD dwStyle
, LPWSTR szRegister
)
466 rc
= ImmRegisterWordW(hKL
,szReading
,dwStyle
,szRegister
);
474 static HRESULT WINAPI
ActiveIMMApp_ReleaseContext(IActiveIMMApp
* This
,
475 HWND hWnd
, HIMC hIMC
)
479 rc
= ImmReleaseContext(hWnd
,hIMC
);
487 static HRESULT WINAPI
ActiveIMMApp_SetCandidateWindow(IActiveIMMApp
* This
,
488 HIMC hIMC
, CANDIDATEFORM
*pCandidate
)
492 rc
= ImmSetCandidateWindow(hIMC
,pCandidate
);
500 static HRESULT WINAPI
ActiveIMMApp_SetCompositionFontA(IActiveIMMApp
* This
,
501 HIMC hIMC
, LOGFONTA
*plf
)
505 rc
= ImmSetCompositionFontA(hIMC
,plf
);
513 static HRESULT WINAPI
ActiveIMMApp_SetCompositionFontW(IActiveIMMApp
* This
,
514 HIMC hIMC
, LOGFONTW
*plf
)
518 rc
= ImmSetCompositionFontW(hIMC
,plf
);
526 static HRESULT WINAPI
ActiveIMMApp_SetCompositionStringA(IActiveIMMApp
* This
,
527 HIMC hIMC
, DWORD dwIndex
, LPVOID pComp
, DWORD dwCompLen
,
528 LPVOID pRead
, DWORD dwReadLen
)
532 rc
= ImmSetCompositionStringA(hIMC
,dwIndex
,pComp
,dwCompLen
,pRead
,dwReadLen
);
540 static HRESULT WINAPI
ActiveIMMApp_SetCompositionStringW(IActiveIMMApp
* This
,
541 HIMC hIMC
, DWORD dwIndex
, LPVOID pComp
, DWORD dwCompLen
,
542 LPVOID pRead
, DWORD dwReadLen
)
546 rc
= ImmSetCompositionStringW(hIMC
,dwIndex
,pComp
,dwCompLen
,pRead
,dwReadLen
);
554 static HRESULT WINAPI
ActiveIMMApp_SetCompositionWindow(IActiveIMMApp
* This
,
555 HIMC hIMC
, COMPOSITIONFORM
*pCompForm
)
559 rc
= ImmSetCompositionWindow(hIMC
,pCompForm
);
567 static HRESULT WINAPI
ActiveIMMApp_SetConversionStatus(IActiveIMMApp
* This
,
568 HIMC hIMC
, DWORD fdwConversion
, DWORD fdwSentence
)
572 rc
= ImmSetConversionStatus(hIMC
,fdwConversion
,fdwSentence
);
580 static HRESULT WINAPI
ActiveIMMApp_SetOpenStatus(IActiveIMMApp
* This
,
581 HIMC hIMC
, BOOL fOpen
)
585 rc
= ImmSetOpenStatus(hIMC
,fOpen
);
593 static HRESULT WINAPI
ActiveIMMApp_SetStatusWindowPos(IActiveIMMApp
* This
,
594 HIMC hIMC
, POINT
*pptPos
)
598 rc
= ImmSetStatusWindowPos(hIMC
,pptPos
);
606 static HRESULT WINAPI
ActiveIMMApp_SimulateHotKey(IActiveIMMApp
* This
,
607 HWND hwnd
, DWORD dwHotKeyID
)
611 rc
= ImmSimulateHotKey(hwnd
,dwHotKeyID
);
619 static HRESULT WINAPI
ActiveIMMApp_UnregisterWordA(IActiveIMMApp
* This
,
620 HKL hKL
, LPSTR szReading
, DWORD dwStyle
, LPSTR szUnregister
)
624 rc
= ImmUnregisterWordA(hKL
,szReading
,dwStyle
,szUnregister
);
633 static HRESULT WINAPI
ActiveIMMApp_UnregisterWordW(IActiveIMMApp
* This
,
634 HKL hKL
, LPWSTR szReading
, DWORD dwStyle
, LPWSTR szUnregister
)
638 rc
= ImmUnregisterWordW(hKL
,szReading
,dwStyle
,szUnregister
);
646 static HRESULT WINAPI
ActiveIMMApp_Activate(IActiveIMMApp
* This
,
653 static HRESULT WINAPI
ActiveIMMApp_Deactivate(IActiveIMMApp
* This
)
659 static HRESULT WINAPI
ActiveIMMApp_OnDefWindowProc(IActiveIMMApp
* This
,
660 HWND hWnd
, UINT Msg
, WPARAM wParam
, LPARAM lParam
, LRESULT
*plResult
)
662 FIXME("Stub (%p %x %lx %lx)\n",hWnd
,Msg
,wParam
,lParam
);
666 static HRESULT WINAPI
ActiveIMMApp_FilterClientWindows(IActiveIMMApp
* This
,
667 ATOM
*aaClassList
, UINT uSize
)
673 static HRESULT WINAPI
ActiveIMMApp_GetCodePageA(IActiveIMMApp
* This
,
674 HKL hKL
, UINT
*uCodePage
)
680 static HRESULT WINAPI
ActiveIMMApp_GetLangId(IActiveIMMApp
* This
,
681 HKL hKL
, LANGID
*plid
)
687 static HRESULT WINAPI
ActiveIMMApp_AssociateContextEx(IActiveIMMApp
* This
,
688 HWND hWnd
, HIMC hIMC
, DWORD dwFlags
)
692 rc
= ImmAssociateContextEx(hWnd
,hIMC
,dwFlags
);
700 static HRESULT WINAPI
ActiveIMMApp_DisableIME(IActiveIMMApp
* This
,
705 rc
= ImmDisableIME(idThread
);
713 static HRESULT WINAPI
ActiveIMMApp_GetImeMenuItemsA(IActiveIMMApp
* This
,
714 HIMC hIMC
, DWORD dwFlags
, DWORD dwType
,
715 IMEMENUITEMINFOA
*pImeParentMenu
, IMEMENUITEMINFOA
*pImeMenu
,
716 DWORD dwSize
, DWORD
*pdwResult
)
718 *pdwResult
= ImmGetImeMenuItemsA(hIMC
,dwFlags
,dwType
,pImeParentMenu
,pImeMenu
,dwSize
);
722 static HRESULT WINAPI
ActiveIMMApp_GetImeMenuItemsW(IActiveIMMApp
* This
,
723 HIMC hIMC
, DWORD dwFlags
, DWORD dwType
,
724 IMEMENUITEMINFOW
*pImeParentMenu
, IMEMENUITEMINFOW
*pImeMenu
,
725 DWORD dwSize
, DWORD
*pdwResult
)
727 *pdwResult
= ImmGetImeMenuItemsW(hIMC
,dwFlags
,dwType
,pImeParentMenu
,pImeMenu
,dwSize
);
731 static HRESULT WINAPI
ActiveIMMApp_EnumInputContext(IActiveIMMApp
* This
,
732 DWORD idThread
, IEnumInputContext
**ppEnum
)
738 static const IActiveIMMAppVtbl ActiveIMMAppVtbl
=
740 ActiveIMMApp_QueryInterface
,
742 ActiveIMMApp_Release
,
744 ActiveIMMApp_AssociateContext
,
745 ActiveIMMApp_ConfigureIMEA
,
746 ActiveIMMApp_ConfigureIMEW
,
747 ActiveIMMApp_CreateContext
,
748 ActiveIMMApp_DestroyContext
,
749 ActiveIMMApp_EnumRegisterWordA
,
750 ActiveIMMApp_EnumRegisterWordW
,
751 ActiveIMMApp_EscapeA
,
752 ActiveIMMApp_EscapeW
,
753 ActiveIMMApp_GetCandidateListA
,
754 ActiveIMMApp_GetCandidateListW
,
755 ActiveIMMApp_GetCandidateListCountA
,
756 ActiveIMMApp_GetCandidateListCountW
,
757 ActiveIMMApp_GetCandidateWindow
,
758 ActiveIMMApp_GetCompositionFontA
,
759 ActiveIMMApp_GetCompositionFontW
,
760 ActiveIMMApp_GetCompositionStringA
,
761 ActiveIMMApp_GetCompositionStringW
,
762 ActiveIMMApp_GetCompositionWindow
,
763 ActiveIMMApp_GetContext
,
764 ActiveIMMApp_GetConversionListA
,
765 ActiveIMMApp_GetConversionListW
,
766 ActiveIMMApp_GetConversionStatus
,
767 ActiveIMMApp_GetDefaultIMEWnd
,
768 ActiveIMMApp_GetDescriptionA
,
769 ActiveIMMApp_GetDescriptionW
,
770 ActiveIMMApp_GetGuideLineA
,
771 ActiveIMMApp_GetGuideLineW
,
772 ActiveIMMApp_GetIMEFileNameA
,
773 ActiveIMMApp_GetIMEFileNameW
,
774 ActiveIMMApp_GetOpenStatus
,
775 ActiveIMMApp_GetProperty
,
776 ActiveIMMApp_GetRegisterWordStyleA
,
777 ActiveIMMApp_GetRegisterWordStyleW
,
778 ActiveIMMApp_GetStatusWindowPos
,
779 ActiveIMMApp_GetVirtualKey
,
780 ActiveIMMApp_InstallIMEA
,
781 ActiveIMMApp_InstallIMEW
,
783 ActiveIMMApp_IsUIMessageA
,
784 ActiveIMMApp_IsUIMessageW
,
785 ActiveIMMApp_NotifyIME
,
786 ActiveIMMApp_RegisterWordA
,
787 ActiveIMMApp_RegisterWordW
,
788 ActiveIMMApp_ReleaseContext
,
789 ActiveIMMApp_SetCandidateWindow
,
790 ActiveIMMApp_SetCompositionFontA
,
791 ActiveIMMApp_SetCompositionFontW
,
792 ActiveIMMApp_SetCompositionStringA
,
793 ActiveIMMApp_SetCompositionStringW
,
794 ActiveIMMApp_SetCompositionWindow
,
795 ActiveIMMApp_SetConversionStatus
,
796 ActiveIMMApp_SetOpenStatus
,
797 ActiveIMMApp_SetStatusWindowPos
,
798 ActiveIMMApp_SimulateHotKey
,
799 ActiveIMMApp_UnregisterWordA
,
800 ActiveIMMApp_UnregisterWordW
,
802 ActiveIMMApp_Activate
,
803 ActiveIMMApp_Deactivate
,
804 ActiveIMMApp_OnDefWindowProc
,
805 ActiveIMMApp_FilterClientWindows
,
806 ActiveIMMApp_GetCodePageA
,
807 ActiveIMMApp_GetLangId
,
808 ActiveIMMApp_AssociateContextEx
,
809 ActiveIMMApp_DisableIME
,
810 ActiveIMMApp_GetImeMenuItemsA
,
811 ActiveIMMApp_GetImeMenuItemsW
,
812 ActiveIMMApp_EnumInputContext
815 HRESULT
ActiveIMMApp_Constructor(IUnknown
*pUnkOuter
, IUnknown
**ppOut
)
819 return CLASS_E_NOAGGREGATION
;
821 This
= HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY
,sizeof(ActiveIMMApp
));
823 return E_OUTOFMEMORY
;
825 This
->IActiveIMMApp_iface
.lpVtbl
= &ActiveIMMAppVtbl
;
828 TRACE("returning %p\n",This
);
829 *ppOut
= (IUnknown
*)This
;