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
38 #include "wine/unicode.h"
40 #include "wine/debug.h"
42 WINE_DEFAULT_DEBUG_CHANNEL(msimtf
);
44 typedef struct tagActiveIMMApp
{
45 const IActiveIMMAppVtbl
*vtbl
;
49 static void ActiveIMMApp_Destructor(ActiveIMMApp
* This
)
52 HeapFree(GetProcessHeap(),0,This
);
55 static HRESULT WINAPI
ActiveIMMApp_QueryInterface (IActiveIMMApp
* iface
,
56 REFIID iid
, LPVOID
*ppvOut
)
58 ActiveIMMApp
*This
= (ActiveIMMApp
*)iface
;
61 if (IsEqualIID(iid
, &IID_IUnknown
) || IsEqualIID(iid
, &IID_IActiveIMMApp
))
68 IUnknown_AddRef(iface
);
72 WARN("unsupported interface: %s\n", debugstr_guid(iid
));
76 static ULONG WINAPI
ActiveIMMApp_AddRef(IActiveIMMApp
* iface
)
78 ActiveIMMApp
*This
= (ActiveIMMApp
*)iface
;
79 return InterlockedIncrement(&This
->refCount
);
82 static ULONG WINAPI
ActiveIMMApp_Release(IActiveIMMApp
* iface
)
84 ActiveIMMApp
*This
= (ActiveIMMApp
*)iface
;
87 ret
= InterlockedDecrement(&This
->refCount
);
89 ActiveIMMApp_Destructor(This
);
93 static HRESULT WINAPI
ActiveIMMApp_AssociateContext(IActiveIMMApp
* iface
,
94 HWND hWnd
, HIMC hIME
, HIMC
*phPrev
)
96 *phPrev
= ImmAssociateContext(hWnd
,hIME
);
100 static HRESULT WINAPI
ActiveIMMApp_ConfigureIMEA(IActiveIMMApp
* This
,
101 HKL hKL
, HWND hwnd
, DWORD dwMode
, REGISTERWORDA
*pData
)
105 rc
= ImmConfigureIMEA(hKL
, hwnd
, dwMode
, pData
);
112 static HRESULT WINAPI
ActiveIMMApp_ConfigureIMEW(IActiveIMMApp
* This
,
113 HKL hKL
, HWND hWnd
, DWORD dwMode
, REGISTERWORDW
*pData
)
117 rc
= ImmConfigureIMEW(hKL
, hWnd
, dwMode
, pData
);
124 static HRESULT WINAPI
ActiveIMMApp_CreateContext(IActiveIMMApp
* This
,
127 *phIMC
= ImmCreateContext();
134 static HRESULT WINAPI
ActiveIMMApp_DestroyContext(IActiveIMMApp
* This
,
139 rc
= ImmDestroyContext(hIME
);
146 static HRESULT WINAPI
ActiveIMMApp_EnumRegisterWordA(IActiveIMMApp
* This
,
147 HKL hKL
, LPSTR szReading
, DWORD dwStyle
, LPSTR szRegister
,
148 LPVOID pData
, IEnumRegisterWordA
**pEnum
)
154 static HRESULT WINAPI
ActiveIMMApp_EnumRegisterWordW(IActiveIMMApp
* This
,
155 HKL hKL
, LPWSTR szReading
, DWORD dwStyle
, LPWSTR szRegister
,
156 LPVOID pData
, IEnumRegisterWordW
**pEnum
)
162 static HRESULT WINAPI
ActiveIMMApp_EscapeA(IActiveIMMApp
* This
,
163 HKL hKL
, HIMC hIMC
, UINT uEscape
, LPVOID pData
, LRESULT
*plResult
)
165 *plResult
= ImmEscapeA(hKL
, hIMC
, uEscape
, pData
);
169 static HRESULT WINAPI
ActiveIMMApp_EscapeW(IActiveIMMApp
* This
,
170 HKL hKL
, HIMC hIMC
, UINT uEscape
, LPVOID pData
, LRESULT
*plResult
)
172 *plResult
= ImmEscapeW(hKL
, hIMC
, uEscape
, pData
);
176 static HRESULT WINAPI
ActiveIMMApp_GetCandidateListA(IActiveIMMApp
* This
,
177 HIMC hIMC
, DWORD dwIndex
, UINT uBufLen
, CANDIDATELIST
*pCandList
,
180 *puCopied
= ImmGetCandidateListA(hIMC
, dwIndex
, pCandList
, uBufLen
);
184 static HRESULT WINAPI
ActiveIMMApp_GetCandidateListW(IActiveIMMApp
* This
,
185 HIMC hIMC
, DWORD dwIndex
, UINT uBufLen
, CANDIDATELIST
*pCandList
,
188 *puCopied
= ImmGetCandidateListW(hIMC
, dwIndex
, pCandList
, uBufLen
);
192 static HRESULT WINAPI
ActiveIMMApp_GetCandidateListCountA(IActiveIMMApp
* This
,
193 HIMC hIMC
, DWORD
*pdwListSize
, DWORD
*pdwBufLen
)
195 *pdwBufLen
= ImmGetCandidateListCountA(hIMC
, pdwListSize
);
199 static HRESULT WINAPI
ActiveIMMApp_GetCandidateListCountW(IActiveIMMApp
* This
,
200 HIMC hIMC
, DWORD
*pdwListSize
, DWORD
*pdwBufLen
)
202 *pdwBufLen
= ImmGetCandidateListCountA(hIMC
, pdwListSize
);
206 static HRESULT WINAPI
ActiveIMMApp_GetCandidateWindow(IActiveIMMApp
* This
,
207 HIMC hIMC
, DWORD dwIndex
, CANDIDATEFORM
*pCandidate
)
210 rc
= ImmGetCandidateWindow(hIMC
,dwIndex
,pCandidate
);
217 static HRESULT WINAPI
ActiveIMMApp_GetCompositionFontA(IActiveIMMApp
* This
,
218 HIMC hIMC
, LOGFONTA
*plf
)
221 rc
= ImmGetCompositionFontA(hIMC
,plf
);
228 static HRESULT WINAPI
ActiveIMMApp_GetCompositionFontW(IActiveIMMApp
* This
,
229 HIMC hIMC
, LOGFONTW
*plf
)
232 rc
= ImmGetCompositionFontW(hIMC
,plf
);
239 static HRESULT WINAPI
ActiveIMMApp_GetCompositionStringA(IActiveIMMApp
* This
,
240 HIMC hIMC
, DWORD dwIndex
, DWORD dwBufLen
, LONG
*plCopied
, LPVOID pBuf
)
242 *plCopied
= ImmGetCompositionStringA(hIMC
, dwIndex
, pBuf
, dwBufLen
);
246 static HRESULT WINAPI
ActiveIMMApp_GetCompositionStringW(IActiveIMMApp
* This
,
247 HIMC hIMC
, DWORD dwIndex
, DWORD dwBufLen
, LONG
*plCopied
, LPVOID pBuf
)
249 *plCopied
= ImmGetCompositionStringW(hIMC
, dwIndex
, pBuf
, dwBufLen
);
253 static HRESULT WINAPI
ActiveIMMApp_GetCompositionWindow(IActiveIMMApp
* This
,
254 HIMC hIMC
, COMPOSITIONFORM
*pCompForm
)
258 rc
= ImmGetCompositionWindow(hIMC
,pCompForm
);
266 static HRESULT WINAPI
ActiveIMMApp_GetContext(IActiveIMMApp
* This
,
267 HWND hwnd
, HIMC
*phIMC
)
269 *phIMC
= ImmGetContext(hwnd
);
273 static HRESULT WINAPI
ActiveIMMApp_GetConversionListA(IActiveIMMApp
* This
,
274 HKL hKL
, HIMC hIMC
, LPSTR pSrc
, UINT uBufLen
, UINT uFlag
,
275 CANDIDATELIST
*pDst
, UINT
*puCopied
)
277 *puCopied
= ImmGetConversionListA(hKL
, hIMC
, pSrc
, pDst
, uBufLen
, uFlag
);
281 static HRESULT WINAPI
ActiveIMMApp_GetConversionListW(IActiveIMMApp
* This
,
282 HKL hKL
, HIMC hIMC
, LPWSTR pSrc
, UINT uBufLen
, UINT uFlag
,
283 CANDIDATELIST
*pDst
, UINT
*puCopied
)
285 *puCopied
= ImmGetConversionListW(hKL
, hIMC
, pSrc
, pDst
, uBufLen
, uFlag
);
289 static HRESULT WINAPI
ActiveIMMApp_GetConversionStatus(IActiveIMMApp
* This
,
290 HIMC hIMC
, DWORD
*pfdwConversion
, DWORD
*pfdwSentence
)
294 rc
= ImmGetConversionStatus(hIMC
, pfdwConversion
, pfdwSentence
);
302 static HRESULT WINAPI
ActiveIMMApp_GetDefaultIMEWnd(IActiveIMMApp
* This
,
303 HWND hWnd
, HWND
*phDefWnd
)
305 *phDefWnd
= ImmGetDefaultIMEWnd(hWnd
);
309 static HRESULT WINAPI
ActiveIMMApp_GetDescriptionA(IActiveIMMApp
* This
,
310 HKL hKL
, UINT uBufLen
, LPSTR szDescription
, UINT
*puCopied
)
312 *puCopied
= ImmGetDescriptionA(hKL
, szDescription
, uBufLen
);
316 static HRESULT WINAPI
ActiveIMMApp_GetDescriptionW(IActiveIMMApp
* This
,
317 HKL hKL
, UINT uBufLen
, LPWSTR szDescription
, UINT
*puCopied
)
319 *puCopied
= ImmGetDescriptionW(hKL
, szDescription
, uBufLen
);
323 static HRESULT WINAPI
ActiveIMMApp_GetGuideLineA(IActiveIMMApp
* This
,
324 HIMC hIMC
, DWORD dwIndex
, DWORD dwBufLen
, LPSTR pBuf
,
327 *pdwResult
= ImmGetGuideLineA(hIMC
, dwIndex
, pBuf
, dwBufLen
);
331 static HRESULT WINAPI
ActiveIMMApp_GetGuideLineW(IActiveIMMApp
* This
,
332 HIMC hIMC
, DWORD dwIndex
, DWORD dwBufLen
, LPWSTR pBuf
,
335 *pdwResult
= ImmGetGuideLineW(hIMC
, dwIndex
, pBuf
, dwBufLen
);
339 static HRESULT WINAPI
ActiveIMMApp_GetIMEFileNameA(IActiveIMMApp
* This
,
340 HKL hKL
, UINT uBufLen
, LPSTR szFileName
, UINT
*puCopied
)
342 *puCopied
= ImmGetIMEFileNameA(hKL
, szFileName
, uBufLen
);
346 static HRESULT WINAPI
ActiveIMMApp_GetIMEFileNameW(IActiveIMMApp
* This
,
347 HKL hKL
, UINT uBufLen
, LPWSTR szFileName
, UINT
*puCopied
)
349 *puCopied
= ImmGetIMEFileNameW(hKL
, szFileName
, uBufLen
);
353 static HRESULT WINAPI
ActiveIMMApp_GetOpenStatus(IActiveIMMApp
* This
,
356 return ImmGetOpenStatus(hIMC
);
359 static HRESULT WINAPI
ActiveIMMApp_GetProperty(IActiveIMMApp
* This
,
360 HKL hKL
, DWORD fdwIndex
, DWORD
*pdwProperty
)
362 *pdwProperty
= ImmGetProperty(hKL
, fdwIndex
);
366 static HRESULT WINAPI
ActiveIMMApp_GetRegisterWordStyleA(IActiveIMMApp
* This
,
367 HKL hKL
, UINT nItem
, STYLEBUFA
*pStyleBuf
, UINT
*puCopied
)
369 *puCopied
= ImmGetRegisterWordStyleA(hKL
, nItem
, pStyleBuf
);
373 static HRESULT WINAPI
ActiveIMMApp_GetRegisterWordStyleW(IActiveIMMApp
* This
,
374 HKL hKL
, UINT nItem
, STYLEBUFW
*pStyleBuf
, UINT
*puCopied
)
376 *puCopied
= ImmGetRegisterWordStyleW(hKL
, nItem
, pStyleBuf
);
380 static HRESULT WINAPI
ActiveIMMApp_GetStatusWindowPos(IActiveIMMApp
* This
,
381 HIMC hIMC
, POINT
*pptPos
)
384 rc
= ImmGetStatusWindowPos(hIMC
, pptPos
);
392 static HRESULT WINAPI
ActiveIMMApp_GetVirtualKey(IActiveIMMApp
* This
,
393 HWND hWnd
, UINT
*puVirtualKey
)
395 *puVirtualKey
= ImmGetVirtualKey(hWnd
);
399 static HRESULT WINAPI
ActiveIMMApp_InstallIMEA(IActiveIMMApp
* This
,
400 LPSTR szIMEFileName
, LPSTR szLayoutText
, HKL
*phKL
)
402 *phKL
= ImmInstallIMEA(szIMEFileName
,szLayoutText
);
406 static HRESULT WINAPI
ActiveIMMApp_InstallIMEW(IActiveIMMApp
* This
,
407 LPWSTR szIMEFileName
, LPWSTR szLayoutText
, HKL
*phKL
)
409 *phKL
= ImmInstallIMEW(szIMEFileName
,szLayoutText
);
413 static HRESULT WINAPI
ActiveIMMApp_IsIME(IActiveIMMApp
* This
,
416 return ImmIsIME(hKL
);
419 static HRESULT WINAPI
ActiveIMMApp_IsUIMessageA(IActiveIMMApp
* This
,
420 HWND hWndIME
, UINT msg
, WPARAM wParam
, LPARAM lParam
)
422 return ImmIsUIMessageA(hWndIME
,msg
,wParam
,lParam
);
425 static HRESULT WINAPI
ActiveIMMApp_IsUIMessageW(IActiveIMMApp
* This
,
426 HWND hWndIME
, UINT msg
, WPARAM wParam
, LPARAM lParam
)
428 return ImmIsUIMessageW(hWndIME
,msg
,wParam
,lParam
);
431 static HRESULT WINAPI
ActiveIMMApp_NotifyIME(IActiveIMMApp
* This
,
432 HIMC hIMC
, DWORD dwAction
, DWORD dwIndex
, DWORD dwValue
)
436 rc
= ImmNotifyIME(hIMC
,dwAction
,dwIndex
,dwValue
);
444 static HRESULT WINAPI
ActiveIMMApp_RegisterWordA(IActiveIMMApp
* This
,
445 HKL hKL
, LPSTR szReading
, DWORD dwStyle
, LPSTR szRegister
)
449 rc
= ImmRegisterWordA(hKL
,szReading
,dwStyle
,szRegister
);
457 static HRESULT WINAPI
ActiveIMMApp_RegisterWordW(IActiveIMMApp
* This
,
458 HKL hKL
, LPWSTR szReading
, DWORD dwStyle
, LPWSTR szRegister
)
462 rc
= ImmRegisterWordW(hKL
,szReading
,dwStyle
,szRegister
);
470 static HRESULT WINAPI
ActiveIMMApp_ReleaseContext(IActiveIMMApp
* This
,
471 HWND hWnd
, HIMC hIMC
)
475 rc
= ImmReleaseContext(hWnd
,hIMC
);
483 static HRESULT WINAPI
ActiveIMMApp_SetCandidateWindow(IActiveIMMApp
* This
,
484 HIMC hIMC
, CANDIDATEFORM
*pCandidate
)
488 rc
= ImmSetCandidateWindow(hIMC
,pCandidate
);
496 static HRESULT WINAPI
ActiveIMMApp_SetCompositionFontA(IActiveIMMApp
* This
,
497 HIMC hIMC
, LOGFONTA
*plf
)
501 rc
= ImmSetCompositionFontA(hIMC
,plf
);
509 static HRESULT WINAPI
ActiveIMMApp_SetCompositionFontW(IActiveIMMApp
* This
,
510 HIMC hIMC
, LOGFONTW
*plf
)
514 rc
= ImmSetCompositionFontW(hIMC
,plf
);
522 static HRESULT WINAPI
ActiveIMMApp_SetCompositionStringA(IActiveIMMApp
* This
,
523 HIMC hIMC
, DWORD dwIndex
, LPVOID pComp
, DWORD dwCompLen
,
524 LPVOID pRead
, DWORD dwReadLen
)
528 rc
= ImmSetCompositionStringA(hIMC
,dwIndex
,pComp
,dwCompLen
,pRead
,dwReadLen
);
536 static HRESULT WINAPI
ActiveIMMApp_SetCompositionStringW(IActiveIMMApp
* This
,
537 HIMC hIMC
, DWORD dwIndex
, LPVOID pComp
, DWORD dwCompLen
,
538 LPVOID pRead
, DWORD dwReadLen
)
542 rc
= ImmSetCompositionStringW(hIMC
,dwIndex
,pComp
,dwCompLen
,pRead
,dwReadLen
);
550 static HRESULT WINAPI
ActiveIMMApp_SetCompositionWindow(IActiveIMMApp
* This
,
551 HIMC hIMC
, COMPOSITIONFORM
*pCompForm
)
555 rc
= ImmSetCompositionWindow(hIMC
,pCompForm
);
563 static HRESULT WINAPI
ActiveIMMApp_SetConversionStatus(IActiveIMMApp
* This
,
564 HIMC hIMC
, DWORD fdwConversion
, DWORD fdwSentence
)
568 rc
= ImmSetConversionStatus(hIMC
,fdwConversion
,fdwSentence
);
576 static HRESULT WINAPI
ActiveIMMApp_SetOpenStatus(IActiveIMMApp
* This
,
577 HIMC hIMC
, BOOL fOpen
)
581 rc
= ImmSetOpenStatus(hIMC
,fOpen
);
589 static HRESULT WINAPI
ActiveIMMApp_SetStatusWindowPos(IActiveIMMApp
* This
,
590 HIMC hIMC
, POINT
*pptPos
)
594 rc
= ImmSetStatusWindowPos(hIMC
,pptPos
);
602 static HRESULT WINAPI
ActiveIMMApp_SimulateHotKey(IActiveIMMApp
* This
,
603 HWND hwnd
, DWORD dwHotKeyID
)
607 rc
= ImmSimulateHotKey(hwnd
,dwHotKeyID
);
615 static HRESULT WINAPI
ActiveIMMApp_UnregisterWordA(IActiveIMMApp
* This
,
616 HKL hKL
, LPSTR szReading
, DWORD dwStyle
, LPSTR szUnregister
)
620 rc
= ImmUnregisterWordA(hKL
,szReading
,dwStyle
,szUnregister
);
629 static HRESULT WINAPI
ActiveIMMApp_UnregisterWordW(IActiveIMMApp
* This
,
630 HKL hKL
, LPWSTR szReading
, DWORD dwStyle
, LPWSTR szUnregister
)
634 rc
= ImmUnregisterWordW(hKL
,szReading
,dwStyle
,szUnregister
);
642 static HRESULT WINAPI
ActiveIMMApp_Activate(IActiveIMMApp
* This
,
649 static HRESULT WINAPI
ActiveIMMApp_Deactivate(IActiveIMMApp
* This
)
655 static HRESULT WINAPI
ActiveIMMApp_OnDefWindowProc(IActiveIMMApp
* This
,
656 HWND hWnd
, UINT Msg
, WPARAM wParam
, LPARAM lParam
, LRESULT
*plResult
)
658 FIXME("Stub (%p %x %lx %lx)\n",hWnd
,Msg
,wParam
,lParam
);
662 static HRESULT WINAPI
ActiveIMMApp_FilterClientWindows(IActiveIMMApp
* This
,
663 ATOM
*aaClassList
, UINT uSize
)
669 static HRESULT WINAPI
ActiveIMMApp_GetCodePageA(IActiveIMMApp
* This
,
670 HKL hKL
, UINT
*uCodePage
)
676 static HRESULT WINAPI
ActiveIMMApp_GetLangId(IActiveIMMApp
* This
,
677 HKL hKL
, LANGID
*plid
)
683 static HRESULT WINAPI
ActiveIMMApp_AssociateContextEx(IActiveIMMApp
* This
,
684 HWND hWnd
, HIMC hIMC
, DWORD dwFlags
)
688 rc
= ImmAssociateContextEx(hWnd
,hIMC
,dwFlags
);
696 static HRESULT WINAPI
ActiveIMMApp_DisableIME(IActiveIMMApp
* This
,
701 rc
= ImmDisableIME(idThread
);
709 static HRESULT WINAPI
ActiveIMMApp_GetImeMenuItemsA(IActiveIMMApp
* This
,
710 HIMC hIMC
, DWORD dwFlags
, DWORD dwType
,
711 IMEMENUITEMINFOA
*pImeParentMenu
, IMEMENUITEMINFOA
*pImeMenu
,
712 DWORD dwSize
, DWORD
*pdwResult
)
714 *pdwResult
= ImmGetImeMenuItemsA(hIMC
,dwFlags
,dwType
,pImeParentMenu
,pImeMenu
,dwSize
);
718 static HRESULT WINAPI
ActiveIMMApp_GetImeMenuItemsW(IActiveIMMApp
* This
,
719 HIMC hIMC
, DWORD dwFlags
, DWORD dwType
,
720 IMEMENUITEMINFOW
*pImeParentMenu
, IMEMENUITEMINFOW
*pImeMenu
,
721 DWORD dwSize
, DWORD
*pdwResult
)
723 *pdwResult
= ImmGetImeMenuItemsW(hIMC
,dwFlags
,dwType
,pImeParentMenu
,pImeMenu
,dwSize
);
727 static HRESULT WINAPI
ActiveIMMApp_EnumInputContext(IActiveIMMApp
* This
,
728 DWORD idThread
, IEnumInputContext
**ppEnum
)
734 static const IActiveIMMAppVtbl ActiveIMMAppVtbl
=
736 ActiveIMMApp_QueryInterface
,
738 ActiveIMMApp_Release
,
740 ActiveIMMApp_AssociateContext
,
741 ActiveIMMApp_ConfigureIMEA
,
742 ActiveIMMApp_ConfigureIMEW
,
743 ActiveIMMApp_CreateContext
,
744 ActiveIMMApp_DestroyContext
,
745 ActiveIMMApp_EnumRegisterWordA
,
746 ActiveIMMApp_EnumRegisterWordW
,
747 ActiveIMMApp_EscapeA
,
748 ActiveIMMApp_EscapeW
,
749 ActiveIMMApp_GetCandidateListA
,
750 ActiveIMMApp_GetCandidateListW
,
751 ActiveIMMApp_GetCandidateListCountA
,
752 ActiveIMMApp_GetCandidateListCountW
,
753 ActiveIMMApp_GetCandidateWindow
,
754 ActiveIMMApp_GetCompositionFontA
,
755 ActiveIMMApp_GetCompositionFontW
,
756 ActiveIMMApp_GetCompositionStringA
,
757 ActiveIMMApp_GetCompositionStringW
,
758 ActiveIMMApp_GetCompositionWindow
,
759 ActiveIMMApp_GetContext
,
760 ActiveIMMApp_GetConversionListA
,
761 ActiveIMMApp_GetConversionListW
,
762 ActiveIMMApp_GetConversionStatus
,
763 ActiveIMMApp_GetDefaultIMEWnd
,
764 ActiveIMMApp_GetDescriptionA
,
765 ActiveIMMApp_GetDescriptionW
,
766 ActiveIMMApp_GetGuideLineA
,
767 ActiveIMMApp_GetGuideLineW
,
768 ActiveIMMApp_GetIMEFileNameA
,
769 ActiveIMMApp_GetIMEFileNameW
,
770 ActiveIMMApp_GetOpenStatus
,
771 ActiveIMMApp_GetProperty
,
772 ActiveIMMApp_GetRegisterWordStyleA
,
773 ActiveIMMApp_GetRegisterWordStyleW
,
774 ActiveIMMApp_GetStatusWindowPos
,
775 ActiveIMMApp_GetVirtualKey
,
776 ActiveIMMApp_InstallIMEA
,
777 ActiveIMMApp_InstallIMEW
,
779 ActiveIMMApp_IsUIMessageA
,
780 ActiveIMMApp_IsUIMessageW
,
781 ActiveIMMApp_NotifyIME
,
782 ActiveIMMApp_RegisterWordA
,
783 ActiveIMMApp_RegisterWordW
,
784 ActiveIMMApp_ReleaseContext
,
785 ActiveIMMApp_SetCandidateWindow
,
786 ActiveIMMApp_SetCompositionFontA
,
787 ActiveIMMApp_SetCompositionFontW
,
788 ActiveIMMApp_SetCompositionStringA
,
789 ActiveIMMApp_SetCompositionStringW
,
790 ActiveIMMApp_SetCompositionWindow
,
791 ActiveIMMApp_SetConversionStatus
,
792 ActiveIMMApp_SetOpenStatus
,
793 ActiveIMMApp_SetStatusWindowPos
,
794 ActiveIMMApp_SimulateHotKey
,
795 ActiveIMMApp_UnregisterWordA
,
796 ActiveIMMApp_UnregisterWordW
,
798 ActiveIMMApp_Activate
,
799 ActiveIMMApp_Deactivate
,
800 ActiveIMMApp_OnDefWindowProc
,
801 ActiveIMMApp_FilterClientWindows
,
802 ActiveIMMApp_GetCodePageA
,
803 ActiveIMMApp_GetLangId
,
804 ActiveIMMApp_AssociateContextEx
,
805 ActiveIMMApp_DisableIME
,
806 ActiveIMMApp_GetImeMenuItemsA
,
807 ActiveIMMApp_GetImeMenuItemsW
,
808 ActiveIMMApp_EnumInputContext
811 HRESULT
ActiveIMMApp_Constructor(IUnknown
*pUnkOuter
, IUnknown
**ppOut
)
815 return CLASS_E_NOAGGREGATION
;
817 This
= HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY
,sizeof(ActiveIMMApp
));
819 return E_OUTOFMEMORY
;
821 This
->vtbl
= &ActiveIMMAppVtbl
;
824 TRACE("returning %p\n",This
);
825 *ppOut
= (IUnknown
*)This
;