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
35 #include "wine/debug.h"
37 WINE_DEFAULT_DEBUG_CHANNEL(msimtf
);
39 typedef struct tagActiveIMMApp
{
40 IActiveIMMApp IActiveIMMApp_iface
;
41 IActiveIMMMessagePumpOwner IActiveIMMMessagePumpOwner_iface
;
45 static inline ActiveIMMApp
*impl_from_IActiveIMMApp(IActiveIMMApp
*iface
)
47 return CONTAINING_RECORD(iface
, ActiveIMMApp
, IActiveIMMApp_iface
);
50 static void ActiveIMMApp_Destructor(ActiveIMMApp
* This
)
53 HeapFree(GetProcessHeap(),0,This
);
56 static HRESULT WINAPI
ActiveIMMApp_QueryInterface (IActiveIMMApp
* iface
,
57 REFIID iid
, LPVOID
*ppvOut
)
59 ActiveIMMApp
*This
= impl_from_IActiveIMMApp(iface
);
62 if (IsEqualIID(iid
, &IID_IUnknown
) || IsEqualIID(iid
, &IID_IActiveIMMApp
))
64 *ppvOut
= &This
->IActiveIMMApp_iface
;
66 else if (IsEqualIID(iid
, &IID_IActiveIMMMessagePumpOwner
))
68 *ppvOut
= &This
->IActiveIMMMessagePumpOwner_iface
;
73 IUnknown_AddRef(iface
);
77 WARN("unsupported interface: %s\n", debugstr_guid(iid
));
81 static ULONG WINAPI
ActiveIMMApp_AddRef(IActiveIMMApp
* iface
)
83 ActiveIMMApp
*This
= impl_from_IActiveIMMApp(iface
);
84 return InterlockedIncrement(&This
->refCount
);
87 static ULONG WINAPI
ActiveIMMApp_Release(IActiveIMMApp
* iface
)
89 ActiveIMMApp
*This
= impl_from_IActiveIMMApp(iface
);
92 ret
= InterlockedDecrement(&This
->refCount
);
94 ActiveIMMApp_Destructor(This
);
98 static HRESULT WINAPI
ActiveIMMApp_AssociateContext(IActiveIMMApp
* iface
,
99 HWND hWnd
, HIMC hIME
, HIMC
*phPrev
)
101 *phPrev
= ImmAssociateContext(hWnd
,hIME
);
105 static HRESULT WINAPI
ActiveIMMApp_ConfigureIMEA(IActiveIMMApp
* This
,
106 HKL hKL
, HWND hwnd
, DWORD dwMode
, REGISTERWORDA
*pData
)
110 rc
= ImmConfigureIMEA(hKL
, hwnd
, dwMode
, pData
);
117 static HRESULT WINAPI
ActiveIMMApp_ConfigureIMEW(IActiveIMMApp
* This
,
118 HKL hKL
, HWND hWnd
, DWORD dwMode
, REGISTERWORDW
*pData
)
122 rc
= ImmConfigureIMEW(hKL
, hWnd
, dwMode
, pData
);
129 static HRESULT WINAPI
ActiveIMMApp_CreateContext(IActiveIMMApp
* This
,
132 *phIMC
= ImmCreateContext();
139 static HRESULT WINAPI
ActiveIMMApp_DestroyContext(IActiveIMMApp
* This
,
144 rc
= ImmDestroyContext(hIME
);
151 static HRESULT WINAPI
ActiveIMMApp_EnumRegisterWordA(IActiveIMMApp
* This
,
152 HKL hKL
, LPSTR szReading
, DWORD dwStyle
, LPSTR szRegister
,
153 LPVOID pData
, IEnumRegisterWordA
**pEnum
)
159 static HRESULT WINAPI
ActiveIMMApp_EnumRegisterWordW(IActiveIMMApp
* This
,
160 HKL hKL
, LPWSTR szReading
, DWORD dwStyle
, LPWSTR szRegister
,
161 LPVOID pData
, IEnumRegisterWordW
**pEnum
)
167 static HRESULT WINAPI
ActiveIMMApp_EscapeA(IActiveIMMApp
* This
,
168 HKL hKL
, HIMC hIMC
, UINT uEscape
, LPVOID pData
, LRESULT
*plResult
)
170 *plResult
= ImmEscapeA(hKL
, hIMC
, uEscape
, pData
);
174 static HRESULT WINAPI
ActiveIMMApp_EscapeW(IActiveIMMApp
* This
,
175 HKL hKL
, HIMC hIMC
, UINT uEscape
, LPVOID pData
, LRESULT
*plResult
)
177 *plResult
= ImmEscapeW(hKL
, hIMC
, uEscape
, pData
);
181 static HRESULT WINAPI
ActiveIMMApp_GetCandidateListA(IActiveIMMApp
* This
,
182 HIMC hIMC
, DWORD dwIndex
, UINT uBufLen
, CANDIDATELIST
*pCandList
,
185 *puCopied
= ImmGetCandidateListA(hIMC
, dwIndex
, pCandList
, uBufLen
);
189 static HRESULT WINAPI
ActiveIMMApp_GetCandidateListW(IActiveIMMApp
* This
,
190 HIMC hIMC
, DWORD dwIndex
, UINT uBufLen
, CANDIDATELIST
*pCandList
,
193 *puCopied
= ImmGetCandidateListW(hIMC
, dwIndex
, pCandList
, uBufLen
);
197 static HRESULT WINAPI
ActiveIMMApp_GetCandidateListCountA(IActiveIMMApp
* This
,
198 HIMC hIMC
, DWORD
*pdwListSize
, DWORD
*pdwBufLen
)
200 *pdwBufLen
= ImmGetCandidateListCountA(hIMC
, pdwListSize
);
204 static HRESULT WINAPI
ActiveIMMApp_GetCandidateListCountW(IActiveIMMApp
* This
,
205 HIMC hIMC
, DWORD
*pdwListSize
, DWORD
*pdwBufLen
)
207 *pdwBufLen
= ImmGetCandidateListCountA(hIMC
, pdwListSize
);
211 static HRESULT WINAPI
ActiveIMMApp_GetCandidateWindow(IActiveIMMApp
* This
,
212 HIMC hIMC
, DWORD dwIndex
, CANDIDATEFORM
*pCandidate
)
215 rc
= ImmGetCandidateWindow(hIMC
,dwIndex
,pCandidate
);
222 static HRESULT WINAPI
ActiveIMMApp_GetCompositionFontA(IActiveIMMApp
* This
,
223 HIMC hIMC
, LOGFONTA
*plf
)
226 rc
= ImmGetCompositionFontA(hIMC
,plf
);
233 static HRESULT WINAPI
ActiveIMMApp_GetCompositionFontW(IActiveIMMApp
* This
,
234 HIMC hIMC
, LOGFONTW
*plf
)
237 rc
= ImmGetCompositionFontW(hIMC
,plf
);
244 static HRESULT WINAPI
ActiveIMMApp_GetCompositionStringA(IActiveIMMApp
* This
,
245 HIMC hIMC
, DWORD dwIndex
, DWORD dwBufLen
, LONG
*plCopied
, LPVOID pBuf
)
247 *plCopied
= ImmGetCompositionStringA(hIMC
, dwIndex
, pBuf
, dwBufLen
);
251 static HRESULT WINAPI
ActiveIMMApp_GetCompositionStringW(IActiveIMMApp
* This
,
252 HIMC hIMC
, DWORD dwIndex
, DWORD dwBufLen
, LONG
*plCopied
, LPVOID pBuf
)
254 *plCopied
= ImmGetCompositionStringW(hIMC
, dwIndex
, pBuf
, dwBufLen
);
258 static HRESULT WINAPI
ActiveIMMApp_GetCompositionWindow(IActiveIMMApp
* This
,
259 HIMC hIMC
, COMPOSITIONFORM
*pCompForm
)
263 rc
= ImmGetCompositionWindow(hIMC
,pCompForm
);
271 static HRESULT WINAPI
ActiveIMMApp_GetContext(IActiveIMMApp
* This
,
272 HWND hwnd
, HIMC
*phIMC
)
274 *phIMC
= ImmGetContext(hwnd
);
278 static HRESULT WINAPI
ActiveIMMApp_GetConversionListA(IActiveIMMApp
* This
,
279 HKL hKL
, HIMC hIMC
, LPSTR pSrc
, UINT uBufLen
, UINT uFlag
,
280 CANDIDATELIST
*pDst
, UINT
*puCopied
)
282 *puCopied
= ImmGetConversionListA(hKL
, hIMC
, pSrc
, pDst
, uBufLen
, uFlag
);
286 static HRESULT WINAPI
ActiveIMMApp_GetConversionListW(IActiveIMMApp
* This
,
287 HKL hKL
, HIMC hIMC
, LPWSTR pSrc
, UINT uBufLen
, UINT uFlag
,
288 CANDIDATELIST
*pDst
, UINT
*puCopied
)
290 *puCopied
= ImmGetConversionListW(hKL
, hIMC
, pSrc
, pDst
, uBufLen
, uFlag
);
294 static HRESULT WINAPI
ActiveIMMApp_GetConversionStatus(IActiveIMMApp
* This
,
295 HIMC hIMC
, DWORD
*pfdwConversion
, DWORD
*pfdwSentence
)
299 rc
= ImmGetConversionStatus(hIMC
, pfdwConversion
, pfdwSentence
);
307 static HRESULT WINAPI
ActiveIMMApp_GetDefaultIMEWnd(IActiveIMMApp
* This
,
308 HWND hWnd
, HWND
*phDefWnd
)
310 *phDefWnd
= ImmGetDefaultIMEWnd(hWnd
);
314 static HRESULT WINAPI
ActiveIMMApp_GetDescriptionA(IActiveIMMApp
* This
,
315 HKL hKL
, UINT uBufLen
, LPSTR szDescription
, UINT
*puCopied
)
317 *puCopied
= ImmGetDescriptionA(hKL
, szDescription
, uBufLen
);
321 static HRESULT WINAPI
ActiveIMMApp_GetDescriptionW(IActiveIMMApp
* This
,
322 HKL hKL
, UINT uBufLen
, LPWSTR szDescription
, UINT
*puCopied
)
324 *puCopied
= ImmGetDescriptionW(hKL
, szDescription
, uBufLen
);
328 static HRESULT WINAPI
ActiveIMMApp_GetGuideLineA(IActiveIMMApp
* This
,
329 HIMC hIMC
, DWORD dwIndex
, DWORD dwBufLen
, LPSTR pBuf
,
332 *pdwResult
= ImmGetGuideLineA(hIMC
, dwIndex
, pBuf
, dwBufLen
);
336 static HRESULT WINAPI
ActiveIMMApp_GetGuideLineW(IActiveIMMApp
* This
,
337 HIMC hIMC
, DWORD dwIndex
, DWORD dwBufLen
, LPWSTR pBuf
,
340 *pdwResult
= ImmGetGuideLineW(hIMC
, dwIndex
, pBuf
, dwBufLen
);
344 static HRESULT WINAPI
ActiveIMMApp_GetIMEFileNameA(IActiveIMMApp
* This
,
345 HKL hKL
, UINT uBufLen
, LPSTR szFileName
, UINT
*puCopied
)
347 *puCopied
= ImmGetIMEFileNameA(hKL
, szFileName
, uBufLen
);
351 static HRESULT WINAPI
ActiveIMMApp_GetIMEFileNameW(IActiveIMMApp
* This
,
352 HKL hKL
, UINT uBufLen
, LPWSTR szFileName
, UINT
*puCopied
)
354 *puCopied
= ImmGetIMEFileNameW(hKL
, szFileName
, uBufLen
);
358 static HRESULT WINAPI
ActiveIMMApp_GetOpenStatus(IActiveIMMApp
* This
,
361 return ImmGetOpenStatus(hIMC
);
364 static HRESULT WINAPI
ActiveIMMApp_GetProperty(IActiveIMMApp
* This
,
365 HKL hKL
, DWORD fdwIndex
, DWORD
*pdwProperty
)
367 *pdwProperty
= ImmGetProperty(hKL
, fdwIndex
);
371 static HRESULT WINAPI
ActiveIMMApp_GetRegisterWordStyleA(IActiveIMMApp
* This
,
372 HKL hKL
, UINT nItem
, STYLEBUFA
*pStyleBuf
, UINT
*puCopied
)
374 *puCopied
= ImmGetRegisterWordStyleA(hKL
, nItem
, pStyleBuf
);
378 static HRESULT WINAPI
ActiveIMMApp_GetRegisterWordStyleW(IActiveIMMApp
* This
,
379 HKL hKL
, UINT nItem
, STYLEBUFW
*pStyleBuf
, UINT
*puCopied
)
381 *puCopied
= ImmGetRegisterWordStyleW(hKL
, nItem
, pStyleBuf
);
385 static HRESULT WINAPI
ActiveIMMApp_GetStatusWindowPos(IActiveIMMApp
* This
,
386 HIMC hIMC
, POINT
*pptPos
)
389 rc
= ImmGetStatusWindowPos(hIMC
, pptPos
);
397 static HRESULT WINAPI
ActiveIMMApp_GetVirtualKey(IActiveIMMApp
* This
,
398 HWND hWnd
, UINT
*puVirtualKey
)
400 *puVirtualKey
= ImmGetVirtualKey(hWnd
);
404 static HRESULT WINAPI
ActiveIMMApp_InstallIMEA(IActiveIMMApp
* This
,
405 LPSTR szIMEFileName
, LPSTR szLayoutText
, HKL
*phKL
)
407 *phKL
= ImmInstallIMEA(szIMEFileName
,szLayoutText
);
411 static HRESULT WINAPI
ActiveIMMApp_InstallIMEW(IActiveIMMApp
* This
,
412 LPWSTR szIMEFileName
, LPWSTR szLayoutText
, HKL
*phKL
)
414 *phKL
= ImmInstallIMEW(szIMEFileName
,szLayoutText
);
418 static HRESULT WINAPI
ActiveIMMApp_IsIME(IActiveIMMApp
* This
,
421 return ImmIsIME(hKL
);
424 static HRESULT WINAPI
ActiveIMMApp_IsUIMessageA(IActiveIMMApp
* This
,
425 HWND hWndIME
, UINT msg
, WPARAM wParam
, LPARAM lParam
)
427 return ImmIsUIMessageA(hWndIME
,msg
,wParam
,lParam
);
430 static HRESULT WINAPI
ActiveIMMApp_IsUIMessageW(IActiveIMMApp
* This
,
431 HWND hWndIME
, UINT msg
, WPARAM wParam
, LPARAM lParam
)
433 return ImmIsUIMessageW(hWndIME
,msg
,wParam
,lParam
);
436 static HRESULT WINAPI
ActiveIMMApp_NotifyIME(IActiveIMMApp
* This
,
437 HIMC hIMC
, DWORD dwAction
, DWORD dwIndex
, DWORD dwValue
)
441 rc
= ImmNotifyIME(hIMC
,dwAction
,dwIndex
,dwValue
);
449 static HRESULT WINAPI
ActiveIMMApp_RegisterWordA(IActiveIMMApp
* This
,
450 HKL hKL
, LPSTR szReading
, DWORD dwStyle
, LPSTR szRegister
)
454 rc
= ImmRegisterWordA(hKL
,szReading
,dwStyle
,szRegister
);
462 static HRESULT WINAPI
ActiveIMMApp_RegisterWordW(IActiveIMMApp
* This
,
463 HKL hKL
, LPWSTR szReading
, DWORD dwStyle
, LPWSTR szRegister
)
467 rc
= ImmRegisterWordW(hKL
,szReading
,dwStyle
,szRegister
);
475 static HRESULT WINAPI
ActiveIMMApp_ReleaseContext(IActiveIMMApp
* This
,
476 HWND hWnd
, HIMC hIMC
)
480 rc
= ImmReleaseContext(hWnd
,hIMC
);
488 static HRESULT WINAPI
ActiveIMMApp_SetCandidateWindow(IActiveIMMApp
* This
,
489 HIMC hIMC
, CANDIDATEFORM
*pCandidate
)
493 rc
= ImmSetCandidateWindow(hIMC
,pCandidate
);
501 static HRESULT WINAPI
ActiveIMMApp_SetCompositionFontA(IActiveIMMApp
* This
,
502 HIMC hIMC
, LOGFONTA
*plf
)
506 rc
= ImmSetCompositionFontA(hIMC
,plf
);
514 static HRESULT WINAPI
ActiveIMMApp_SetCompositionFontW(IActiveIMMApp
* This
,
515 HIMC hIMC
, LOGFONTW
*plf
)
519 rc
= ImmSetCompositionFontW(hIMC
,plf
);
527 static HRESULT WINAPI
ActiveIMMApp_SetCompositionStringA(IActiveIMMApp
* This
,
528 HIMC hIMC
, DWORD dwIndex
, LPVOID pComp
, DWORD dwCompLen
,
529 LPVOID pRead
, DWORD dwReadLen
)
533 rc
= ImmSetCompositionStringA(hIMC
,dwIndex
,pComp
,dwCompLen
,pRead
,dwReadLen
);
541 static HRESULT WINAPI
ActiveIMMApp_SetCompositionStringW(IActiveIMMApp
* This
,
542 HIMC hIMC
, DWORD dwIndex
, LPVOID pComp
, DWORD dwCompLen
,
543 LPVOID pRead
, DWORD dwReadLen
)
547 rc
= ImmSetCompositionStringW(hIMC
,dwIndex
,pComp
,dwCompLen
,pRead
,dwReadLen
);
555 static HRESULT WINAPI
ActiveIMMApp_SetCompositionWindow(IActiveIMMApp
* This
,
556 HIMC hIMC
, COMPOSITIONFORM
*pCompForm
)
560 rc
= ImmSetCompositionWindow(hIMC
,pCompForm
);
568 static HRESULT WINAPI
ActiveIMMApp_SetConversionStatus(IActiveIMMApp
* This
,
569 HIMC hIMC
, DWORD fdwConversion
, DWORD fdwSentence
)
573 rc
= ImmSetConversionStatus(hIMC
,fdwConversion
,fdwSentence
);
581 static HRESULT WINAPI
ActiveIMMApp_SetOpenStatus(IActiveIMMApp
* This
,
582 HIMC hIMC
, BOOL fOpen
)
586 rc
= ImmSetOpenStatus(hIMC
,fOpen
);
594 static HRESULT WINAPI
ActiveIMMApp_SetStatusWindowPos(IActiveIMMApp
* This
,
595 HIMC hIMC
, POINT
*pptPos
)
599 rc
= ImmSetStatusWindowPos(hIMC
,pptPos
);
607 static HRESULT WINAPI
ActiveIMMApp_SimulateHotKey(IActiveIMMApp
* This
,
608 HWND hwnd
, DWORD dwHotKeyID
)
612 rc
= ImmSimulateHotKey(hwnd
,dwHotKeyID
);
620 static HRESULT WINAPI
ActiveIMMApp_UnregisterWordA(IActiveIMMApp
* This
,
621 HKL hKL
, LPSTR szReading
, DWORD dwStyle
, LPSTR szUnregister
)
625 rc
= ImmUnregisterWordA(hKL
,szReading
,dwStyle
,szUnregister
);
634 static HRESULT WINAPI
ActiveIMMApp_UnregisterWordW(IActiveIMMApp
* This
,
635 HKL hKL
, LPWSTR szReading
, DWORD dwStyle
, LPWSTR szUnregister
)
639 rc
= ImmUnregisterWordW(hKL
,szReading
,dwStyle
,szUnregister
);
647 static HRESULT WINAPI
ActiveIMMApp_Activate(IActiveIMMApp
* This
,
654 static HRESULT WINAPI
ActiveIMMApp_Deactivate(IActiveIMMApp
* This
)
660 static HRESULT WINAPI
ActiveIMMApp_OnDefWindowProc(IActiveIMMApp
* This
,
661 HWND hWnd
, UINT Msg
, WPARAM wParam
, LPARAM lParam
, LRESULT
*plResult
)
663 FIXME("Stub (%p %x %lx %lx)\n",hWnd
,Msg
,wParam
,lParam
);
667 static HRESULT WINAPI
ActiveIMMApp_FilterClientWindows(IActiveIMMApp
* This
,
668 ATOM
*aaClassList
, UINT uSize
)
674 static HRESULT WINAPI
ActiveIMMApp_GetCodePageA(IActiveIMMApp
* This
,
675 HKL hKL
, UINT
*uCodePage
)
681 static HRESULT WINAPI
ActiveIMMApp_GetLangId(IActiveIMMApp
* This
,
682 HKL hKL
, LANGID
*plid
)
688 static HRESULT WINAPI
ActiveIMMApp_AssociateContextEx(IActiveIMMApp
* This
,
689 HWND hWnd
, HIMC hIMC
, DWORD dwFlags
)
693 rc
= ImmAssociateContextEx(hWnd
,hIMC
,dwFlags
);
701 static HRESULT WINAPI
ActiveIMMApp_DisableIME(IActiveIMMApp
* This
,
706 rc
= ImmDisableIME(idThread
);
714 static HRESULT WINAPI
ActiveIMMApp_GetImeMenuItemsA(IActiveIMMApp
* This
,
715 HIMC hIMC
, DWORD dwFlags
, DWORD dwType
,
716 IMEMENUITEMINFOA
*pImeParentMenu
, IMEMENUITEMINFOA
*pImeMenu
,
717 DWORD dwSize
, DWORD
*pdwResult
)
719 *pdwResult
= ImmGetImeMenuItemsA(hIMC
,dwFlags
,dwType
,pImeParentMenu
,pImeMenu
,dwSize
);
723 static HRESULT WINAPI
ActiveIMMApp_GetImeMenuItemsW(IActiveIMMApp
* This
,
724 HIMC hIMC
, DWORD dwFlags
, DWORD dwType
,
725 IMEMENUITEMINFOW
*pImeParentMenu
, IMEMENUITEMINFOW
*pImeMenu
,
726 DWORD dwSize
, DWORD
*pdwResult
)
728 *pdwResult
= ImmGetImeMenuItemsW(hIMC
,dwFlags
,dwType
,pImeParentMenu
,pImeMenu
,dwSize
);
732 static HRESULT WINAPI
ActiveIMMApp_EnumInputContext(IActiveIMMApp
* This
,
733 DWORD idThread
, IEnumInputContext
**ppEnum
)
739 static const IActiveIMMAppVtbl ActiveIMMAppVtbl
=
741 ActiveIMMApp_QueryInterface
,
743 ActiveIMMApp_Release
,
745 ActiveIMMApp_AssociateContext
,
746 ActiveIMMApp_ConfigureIMEA
,
747 ActiveIMMApp_ConfigureIMEW
,
748 ActiveIMMApp_CreateContext
,
749 ActiveIMMApp_DestroyContext
,
750 ActiveIMMApp_EnumRegisterWordA
,
751 ActiveIMMApp_EnumRegisterWordW
,
752 ActiveIMMApp_EscapeA
,
753 ActiveIMMApp_EscapeW
,
754 ActiveIMMApp_GetCandidateListA
,
755 ActiveIMMApp_GetCandidateListW
,
756 ActiveIMMApp_GetCandidateListCountA
,
757 ActiveIMMApp_GetCandidateListCountW
,
758 ActiveIMMApp_GetCandidateWindow
,
759 ActiveIMMApp_GetCompositionFontA
,
760 ActiveIMMApp_GetCompositionFontW
,
761 ActiveIMMApp_GetCompositionStringA
,
762 ActiveIMMApp_GetCompositionStringW
,
763 ActiveIMMApp_GetCompositionWindow
,
764 ActiveIMMApp_GetContext
,
765 ActiveIMMApp_GetConversionListA
,
766 ActiveIMMApp_GetConversionListW
,
767 ActiveIMMApp_GetConversionStatus
,
768 ActiveIMMApp_GetDefaultIMEWnd
,
769 ActiveIMMApp_GetDescriptionA
,
770 ActiveIMMApp_GetDescriptionW
,
771 ActiveIMMApp_GetGuideLineA
,
772 ActiveIMMApp_GetGuideLineW
,
773 ActiveIMMApp_GetIMEFileNameA
,
774 ActiveIMMApp_GetIMEFileNameW
,
775 ActiveIMMApp_GetOpenStatus
,
776 ActiveIMMApp_GetProperty
,
777 ActiveIMMApp_GetRegisterWordStyleA
,
778 ActiveIMMApp_GetRegisterWordStyleW
,
779 ActiveIMMApp_GetStatusWindowPos
,
780 ActiveIMMApp_GetVirtualKey
,
781 ActiveIMMApp_InstallIMEA
,
782 ActiveIMMApp_InstallIMEW
,
784 ActiveIMMApp_IsUIMessageA
,
785 ActiveIMMApp_IsUIMessageW
,
786 ActiveIMMApp_NotifyIME
,
787 ActiveIMMApp_RegisterWordA
,
788 ActiveIMMApp_RegisterWordW
,
789 ActiveIMMApp_ReleaseContext
,
790 ActiveIMMApp_SetCandidateWindow
,
791 ActiveIMMApp_SetCompositionFontA
,
792 ActiveIMMApp_SetCompositionFontW
,
793 ActiveIMMApp_SetCompositionStringA
,
794 ActiveIMMApp_SetCompositionStringW
,
795 ActiveIMMApp_SetCompositionWindow
,
796 ActiveIMMApp_SetConversionStatus
,
797 ActiveIMMApp_SetOpenStatus
,
798 ActiveIMMApp_SetStatusWindowPos
,
799 ActiveIMMApp_SimulateHotKey
,
800 ActiveIMMApp_UnregisterWordA
,
801 ActiveIMMApp_UnregisterWordW
,
803 ActiveIMMApp_Activate
,
804 ActiveIMMApp_Deactivate
,
805 ActiveIMMApp_OnDefWindowProc
,
806 ActiveIMMApp_FilterClientWindows
,
807 ActiveIMMApp_GetCodePageA
,
808 ActiveIMMApp_GetLangId
,
809 ActiveIMMApp_AssociateContextEx
,
810 ActiveIMMApp_DisableIME
,
811 ActiveIMMApp_GetImeMenuItemsA
,
812 ActiveIMMApp_GetImeMenuItemsW
,
813 ActiveIMMApp_EnumInputContext
816 static inline ActiveIMMApp
*impl_from_IActiveIMMMessagePumpOwner(IActiveIMMMessagePumpOwner
*iface
)
818 return CONTAINING_RECORD(iface
, ActiveIMMApp
, IActiveIMMMessagePumpOwner_iface
);
821 static HRESULT WINAPI
ActiveIMMMessagePumpOwner_QueryInterface(IActiveIMMMessagePumpOwner
* iface
,
822 REFIID iid
, LPVOID
*ppvOut
)
824 ActiveIMMApp
*This
= impl_from_IActiveIMMMessagePumpOwner(iface
);
825 return IActiveIMMApp_QueryInterface(&This
->IActiveIMMApp_iface
, iid
, ppvOut
);
828 static ULONG WINAPI
ActiveIMMMessagePumpOwner_AddRef(IActiveIMMMessagePumpOwner
* iface
)
830 ActiveIMMApp
*This
= impl_from_IActiveIMMMessagePumpOwner(iface
);
831 return IActiveIMMApp_AddRef(&This
->IActiveIMMApp_iface
);
834 static ULONG WINAPI
ActiveIMMMessagePumpOwner_Release(IActiveIMMMessagePumpOwner
* iface
)
836 ActiveIMMApp
*This
= impl_from_IActiveIMMMessagePumpOwner(iface
);
837 return IActiveIMMApp_Release(&This
->IActiveIMMApp_iface
);
840 static HRESULT WINAPI
ActiveIMMMessagePumpOwner_Start(IActiveIMMMessagePumpOwner
* iface
)
842 ActiveIMMApp
*This
= impl_from_IActiveIMMMessagePumpOwner(iface
);
843 FIXME("(%p)->(): stub\n", This
);
847 static HRESULT WINAPI
ActiveIMMMessagePumpOwner_End(IActiveIMMMessagePumpOwner
* iface
)
849 ActiveIMMApp
*This
= impl_from_IActiveIMMMessagePumpOwner(iface
);
850 FIXME("(%p)->(): stub\n", This
);
854 static HRESULT WINAPI
ActiveIMMMessagePumpOwner_OnTranslateMessage(IActiveIMMMessagePumpOwner
* iface
,
857 ActiveIMMApp
*This
= impl_from_IActiveIMMMessagePumpOwner(iface
);
858 FIXME("(%p)->(%p): stub\n", This
, msg
);
862 static HRESULT WINAPI
ActiveIMMMessagePumpOwner_Pause(IActiveIMMMessagePumpOwner
* iface
,
865 ActiveIMMApp
*This
= impl_from_IActiveIMMMessagePumpOwner(iface
);
866 FIXME("(%p)->(%p): stub\n", This
, cookie
);
870 static HRESULT WINAPI
ActiveIMMMessagePumpOwner_Resume(IActiveIMMMessagePumpOwner
* iface
,
873 ActiveIMMApp
*This
= impl_from_IActiveIMMMessagePumpOwner(iface
);
874 FIXME("(%p)->(%u): stub\n", This
, cookie
);
878 static const IActiveIMMMessagePumpOwnerVtbl ActiveIMMMessagePumpOwnerVtbl
=
880 ActiveIMMMessagePumpOwner_QueryInterface
,
881 ActiveIMMMessagePumpOwner_AddRef
,
882 ActiveIMMMessagePumpOwner_Release
,
883 ActiveIMMMessagePumpOwner_Start
,
884 ActiveIMMMessagePumpOwner_End
,
885 ActiveIMMMessagePumpOwner_OnTranslateMessage
,
886 ActiveIMMMessagePumpOwner_Pause
,
887 ActiveIMMMessagePumpOwner_Resume
,
890 DECLSPEC_HIDDEN HRESULT
ActiveIMMApp_Constructor(IUnknown
*pUnkOuter
, IUnknown
**ppOut
)
894 return CLASS_E_NOAGGREGATION
;
896 This
= HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY
,sizeof(ActiveIMMApp
));
898 return E_OUTOFMEMORY
;
900 This
->IActiveIMMApp_iface
.lpVtbl
= &ActiveIMMAppVtbl
;
901 This
->IActiveIMMMessagePumpOwner_iface
.lpVtbl
= &ActiveIMMMessagePumpOwnerVtbl
;
904 TRACE("returning %p\n",This
);
905 *ppOut
= (IUnknown
*)&This
->IActiveIMMApp_iface
;