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
;
45 IActiveIMMMessagePumpOwner IActiveIMMMessagePumpOwner_iface
;
49 static inline ActiveIMMApp
*impl_from_IActiveIMMApp(IActiveIMMApp
*iface
)
51 return CONTAINING_RECORD(iface
, ActiveIMMApp
, IActiveIMMApp_iface
);
54 static void ActiveIMMApp_Destructor(ActiveIMMApp
* This
)
57 HeapFree(GetProcessHeap(),0,This
);
60 static HRESULT WINAPI
ActiveIMMApp_QueryInterface (IActiveIMMApp
* iface
,
61 REFIID iid
, LPVOID
*ppvOut
)
63 ActiveIMMApp
*This
= impl_from_IActiveIMMApp(iface
);
66 if (IsEqualIID(iid
, &IID_IUnknown
) || IsEqualIID(iid
, &IID_IActiveIMMApp
))
70 else if (IsEqualIID(iid
, &IID_IActiveIMMMessagePumpOwner
))
72 *ppvOut
= &This
->IActiveIMMMessagePumpOwner_iface
;
77 IUnknown_AddRef(iface
);
81 WARN("unsupported interface: %s\n", debugstr_guid(iid
));
85 static ULONG WINAPI
ActiveIMMApp_AddRef(IActiveIMMApp
* iface
)
87 ActiveIMMApp
*This
= impl_from_IActiveIMMApp(iface
);
88 return InterlockedIncrement(&This
->refCount
);
91 static ULONG WINAPI
ActiveIMMApp_Release(IActiveIMMApp
* iface
)
93 ActiveIMMApp
*This
= impl_from_IActiveIMMApp(iface
);
96 ret
= InterlockedDecrement(&This
->refCount
);
98 ActiveIMMApp_Destructor(This
);
102 static HRESULT WINAPI
ActiveIMMApp_AssociateContext(IActiveIMMApp
* iface
,
103 HWND hWnd
, HIMC hIME
, HIMC
*phPrev
)
105 *phPrev
= ImmAssociateContext(hWnd
,hIME
);
109 static HRESULT WINAPI
ActiveIMMApp_ConfigureIMEA(IActiveIMMApp
* This
,
110 HKL hKL
, HWND hwnd
, DWORD dwMode
, REGISTERWORDA
*pData
)
114 rc
= ImmConfigureIMEA(hKL
, hwnd
, dwMode
, pData
);
121 static HRESULT WINAPI
ActiveIMMApp_ConfigureIMEW(IActiveIMMApp
* This
,
122 HKL hKL
, HWND hWnd
, DWORD dwMode
, REGISTERWORDW
*pData
)
126 rc
= ImmConfigureIMEW(hKL
, hWnd
, dwMode
, pData
);
133 static HRESULT WINAPI
ActiveIMMApp_CreateContext(IActiveIMMApp
* This
,
136 *phIMC
= ImmCreateContext();
143 static HRESULT WINAPI
ActiveIMMApp_DestroyContext(IActiveIMMApp
* This
,
148 rc
= ImmDestroyContext(hIME
);
155 static HRESULT WINAPI
ActiveIMMApp_EnumRegisterWordA(IActiveIMMApp
* This
,
156 HKL hKL
, LPSTR szReading
, DWORD dwStyle
, LPSTR szRegister
,
157 LPVOID pData
, IEnumRegisterWordA
**pEnum
)
163 static HRESULT WINAPI
ActiveIMMApp_EnumRegisterWordW(IActiveIMMApp
* This
,
164 HKL hKL
, LPWSTR szReading
, DWORD dwStyle
, LPWSTR szRegister
,
165 LPVOID pData
, IEnumRegisterWordW
**pEnum
)
171 static HRESULT WINAPI
ActiveIMMApp_EscapeA(IActiveIMMApp
* This
,
172 HKL hKL
, HIMC hIMC
, UINT uEscape
, LPVOID pData
, LRESULT
*plResult
)
174 *plResult
= ImmEscapeA(hKL
, hIMC
, uEscape
, pData
);
178 static HRESULT WINAPI
ActiveIMMApp_EscapeW(IActiveIMMApp
* This
,
179 HKL hKL
, HIMC hIMC
, UINT uEscape
, LPVOID pData
, LRESULT
*plResult
)
181 *plResult
= ImmEscapeW(hKL
, hIMC
, uEscape
, pData
);
185 static HRESULT WINAPI
ActiveIMMApp_GetCandidateListA(IActiveIMMApp
* This
,
186 HIMC hIMC
, DWORD dwIndex
, UINT uBufLen
, CANDIDATELIST
*pCandList
,
189 *puCopied
= ImmGetCandidateListA(hIMC
, dwIndex
, pCandList
, uBufLen
);
193 static HRESULT WINAPI
ActiveIMMApp_GetCandidateListW(IActiveIMMApp
* This
,
194 HIMC hIMC
, DWORD dwIndex
, UINT uBufLen
, CANDIDATELIST
*pCandList
,
197 *puCopied
= ImmGetCandidateListW(hIMC
, dwIndex
, pCandList
, uBufLen
);
201 static HRESULT WINAPI
ActiveIMMApp_GetCandidateListCountA(IActiveIMMApp
* This
,
202 HIMC hIMC
, DWORD
*pdwListSize
, DWORD
*pdwBufLen
)
204 *pdwBufLen
= ImmGetCandidateListCountA(hIMC
, pdwListSize
);
208 static HRESULT WINAPI
ActiveIMMApp_GetCandidateListCountW(IActiveIMMApp
* This
,
209 HIMC hIMC
, DWORD
*pdwListSize
, DWORD
*pdwBufLen
)
211 *pdwBufLen
= ImmGetCandidateListCountA(hIMC
, pdwListSize
);
215 static HRESULT WINAPI
ActiveIMMApp_GetCandidateWindow(IActiveIMMApp
* This
,
216 HIMC hIMC
, DWORD dwIndex
, CANDIDATEFORM
*pCandidate
)
219 rc
= ImmGetCandidateWindow(hIMC
,dwIndex
,pCandidate
);
226 static HRESULT WINAPI
ActiveIMMApp_GetCompositionFontA(IActiveIMMApp
* This
,
227 HIMC hIMC
, LOGFONTA
*plf
)
230 rc
= ImmGetCompositionFontA(hIMC
,plf
);
237 static HRESULT WINAPI
ActiveIMMApp_GetCompositionFontW(IActiveIMMApp
* This
,
238 HIMC hIMC
, LOGFONTW
*plf
)
241 rc
= ImmGetCompositionFontW(hIMC
,plf
);
248 static HRESULT WINAPI
ActiveIMMApp_GetCompositionStringA(IActiveIMMApp
* This
,
249 HIMC hIMC
, DWORD dwIndex
, DWORD dwBufLen
, LONG
*plCopied
, LPVOID pBuf
)
251 *plCopied
= ImmGetCompositionStringA(hIMC
, dwIndex
, pBuf
, dwBufLen
);
255 static HRESULT WINAPI
ActiveIMMApp_GetCompositionStringW(IActiveIMMApp
* This
,
256 HIMC hIMC
, DWORD dwIndex
, DWORD dwBufLen
, LONG
*plCopied
, LPVOID pBuf
)
258 *plCopied
= ImmGetCompositionStringW(hIMC
, dwIndex
, pBuf
, dwBufLen
);
262 static HRESULT WINAPI
ActiveIMMApp_GetCompositionWindow(IActiveIMMApp
* This
,
263 HIMC hIMC
, COMPOSITIONFORM
*pCompForm
)
267 rc
= ImmGetCompositionWindow(hIMC
,pCompForm
);
275 static HRESULT WINAPI
ActiveIMMApp_GetContext(IActiveIMMApp
* This
,
276 HWND hwnd
, HIMC
*phIMC
)
278 *phIMC
= ImmGetContext(hwnd
);
282 static HRESULT WINAPI
ActiveIMMApp_GetConversionListA(IActiveIMMApp
* This
,
283 HKL hKL
, HIMC hIMC
, LPSTR pSrc
, UINT uBufLen
, UINT uFlag
,
284 CANDIDATELIST
*pDst
, UINT
*puCopied
)
286 *puCopied
= ImmGetConversionListA(hKL
, hIMC
, pSrc
, pDst
, uBufLen
, uFlag
);
290 static HRESULT WINAPI
ActiveIMMApp_GetConversionListW(IActiveIMMApp
* This
,
291 HKL hKL
, HIMC hIMC
, LPWSTR pSrc
, UINT uBufLen
, UINT uFlag
,
292 CANDIDATELIST
*pDst
, UINT
*puCopied
)
294 *puCopied
= ImmGetConversionListW(hKL
, hIMC
, pSrc
, pDst
, uBufLen
, uFlag
);
298 static HRESULT WINAPI
ActiveIMMApp_GetConversionStatus(IActiveIMMApp
* This
,
299 HIMC hIMC
, DWORD
*pfdwConversion
, DWORD
*pfdwSentence
)
303 rc
= ImmGetConversionStatus(hIMC
, pfdwConversion
, pfdwSentence
);
311 static HRESULT WINAPI
ActiveIMMApp_GetDefaultIMEWnd(IActiveIMMApp
* This
,
312 HWND hWnd
, HWND
*phDefWnd
)
314 *phDefWnd
= ImmGetDefaultIMEWnd(hWnd
);
318 static HRESULT WINAPI
ActiveIMMApp_GetDescriptionA(IActiveIMMApp
* This
,
319 HKL hKL
, UINT uBufLen
, LPSTR szDescription
, UINT
*puCopied
)
321 *puCopied
= ImmGetDescriptionA(hKL
, szDescription
, uBufLen
);
325 static HRESULT WINAPI
ActiveIMMApp_GetDescriptionW(IActiveIMMApp
* This
,
326 HKL hKL
, UINT uBufLen
, LPWSTR szDescription
, UINT
*puCopied
)
328 *puCopied
= ImmGetDescriptionW(hKL
, szDescription
, uBufLen
);
332 static HRESULT WINAPI
ActiveIMMApp_GetGuideLineA(IActiveIMMApp
* This
,
333 HIMC hIMC
, DWORD dwIndex
, DWORD dwBufLen
, LPSTR pBuf
,
336 *pdwResult
= ImmGetGuideLineA(hIMC
, dwIndex
, pBuf
, dwBufLen
);
340 static HRESULT WINAPI
ActiveIMMApp_GetGuideLineW(IActiveIMMApp
* This
,
341 HIMC hIMC
, DWORD dwIndex
, DWORD dwBufLen
, LPWSTR pBuf
,
344 *pdwResult
= ImmGetGuideLineW(hIMC
, dwIndex
, pBuf
, dwBufLen
);
348 static HRESULT WINAPI
ActiveIMMApp_GetIMEFileNameA(IActiveIMMApp
* This
,
349 HKL hKL
, UINT uBufLen
, LPSTR szFileName
, UINT
*puCopied
)
351 *puCopied
= ImmGetIMEFileNameA(hKL
, szFileName
, uBufLen
);
355 static HRESULT WINAPI
ActiveIMMApp_GetIMEFileNameW(IActiveIMMApp
* This
,
356 HKL hKL
, UINT uBufLen
, LPWSTR szFileName
, UINT
*puCopied
)
358 *puCopied
= ImmGetIMEFileNameW(hKL
, szFileName
, uBufLen
);
362 static HRESULT WINAPI
ActiveIMMApp_GetOpenStatus(IActiveIMMApp
* This
,
365 return ImmGetOpenStatus(hIMC
);
368 static HRESULT WINAPI
ActiveIMMApp_GetProperty(IActiveIMMApp
* This
,
369 HKL hKL
, DWORD fdwIndex
, DWORD
*pdwProperty
)
371 *pdwProperty
= ImmGetProperty(hKL
, fdwIndex
);
375 static HRESULT WINAPI
ActiveIMMApp_GetRegisterWordStyleA(IActiveIMMApp
* This
,
376 HKL hKL
, UINT nItem
, STYLEBUFA
*pStyleBuf
, UINT
*puCopied
)
378 *puCopied
= ImmGetRegisterWordStyleA(hKL
, nItem
, pStyleBuf
);
382 static HRESULT WINAPI
ActiveIMMApp_GetRegisterWordStyleW(IActiveIMMApp
* This
,
383 HKL hKL
, UINT nItem
, STYLEBUFW
*pStyleBuf
, UINT
*puCopied
)
385 *puCopied
= ImmGetRegisterWordStyleW(hKL
, nItem
, pStyleBuf
);
389 static HRESULT WINAPI
ActiveIMMApp_GetStatusWindowPos(IActiveIMMApp
* This
,
390 HIMC hIMC
, POINT
*pptPos
)
393 rc
= ImmGetStatusWindowPos(hIMC
, pptPos
);
401 static HRESULT WINAPI
ActiveIMMApp_GetVirtualKey(IActiveIMMApp
* This
,
402 HWND hWnd
, UINT
*puVirtualKey
)
404 *puVirtualKey
= ImmGetVirtualKey(hWnd
);
408 static HRESULT WINAPI
ActiveIMMApp_InstallIMEA(IActiveIMMApp
* This
,
409 LPSTR szIMEFileName
, LPSTR szLayoutText
, HKL
*phKL
)
411 *phKL
= ImmInstallIMEA(szIMEFileName
,szLayoutText
);
415 static HRESULT WINAPI
ActiveIMMApp_InstallIMEW(IActiveIMMApp
* This
,
416 LPWSTR szIMEFileName
, LPWSTR szLayoutText
, HKL
*phKL
)
418 *phKL
= ImmInstallIMEW(szIMEFileName
,szLayoutText
);
422 static HRESULT WINAPI
ActiveIMMApp_IsIME(IActiveIMMApp
* This
,
425 return ImmIsIME(hKL
);
428 static HRESULT WINAPI
ActiveIMMApp_IsUIMessageA(IActiveIMMApp
* This
,
429 HWND hWndIME
, UINT msg
, WPARAM wParam
, LPARAM lParam
)
431 return ImmIsUIMessageA(hWndIME
,msg
,wParam
,lParam
);
434 static HRESULT WINAPI
ActiveIMMApp_IsUIMessageW(IActiveIMMApp
* This
,
435 HWND hWndIME
, UINT msg
, WPARAM wParam
, LPARAM lParam
)
437 return ImmIsUIMessageW(hWndIME
,msg
,wParam
,lParam
);
440 static HRESULT WINAPI
ActiveIMMApp_NotifyIME(IActiveIMMApp
* This
,
441 HIMC hIMC
, DWORD dwAction
, DWORD dwIndex
, DWORD dwValue
)
445 rc
= ImmNotifyIME(hIMC
,dwAction
,dwIndex
,dwValue
);
453 static HRESULT WINAPI
ActiveIMMApp_RegisterWordA(IActiveIMMApp
* This
,
454 HKL hKL
, LPSTR szReading
, DWORD dwStyle
, LPSTR szRegister
)
458 rc
= ImmRegisterWordA(hKL
,szReading
,dwStyle
,szRegister
);
466 static HRESULT WINAPI
ActiveIMMApp_RegisterWordW(IActiveIMMApp
* This
,
467 HKL hKL
, LPWSTR szReading
, DWORD dwStyle
, LPWSTR szRegister
)
471 rc
= ImmRegisterWordW(hKL
,szReading
,dwStyle
,szRegister
);
479 static HRESULT WINAPI
ActiveIMMApp_ReleaseContext(IActiveIMMApp
* This
,
480 HWND hWnd
, HIMC hIMC
)
484 rc
= ImmReleaseContext(hWnd
,hIMC
);
492 static HRESULT WINAPI
ActiveIMMApp_SetCandidateWindow(IActiveIMMApp
* This
,
493 HIMC hIMC
, CANDIDATEFORM
*pCandidate
)
497 rc
= ImmSetCandidateWindow(hIMC
,pCandidate
);
505 static HRESULT WINAPI
ActiveIMMApp_SetCompositionFontA(IActiveIMMApp
* This
,
506 HIMC hIMC
, LOGFONTA
*plf
)
510 rc
= ImmSetCompositionFontA(hIMC
,plf
);
518 static HRESULT WINAPI
ActiveIMMApp_SetCompositionFontW(IActiveIMMApp
* This
,
519 HIMC hIMC
, LOGFONTW
*plf
)
523 rc
= ImmSetCompositionFontW(hIMC
,plf
);
531 static HRESULT WINAPI
ActiveIMMApp_SetCompositionStringA(IActiveIMMApp
* This
,
532 HIMC hIMC
, DWORD dwIndex
, LPVOID pComp
, DWORD dwCompLen
,
533 LPVOID pRead
, DWORD dwReadLen
)
537 rc
= ImmSetCompositionStringA(hIMC
,dwIndex
,pComp
,dwCompLen
,pRead
,dwReadLen
);
545 static HRESULT WINAPI
ActiveIMMApp_SetCompositionStringW(IActiveIMMApp
* This
,
546 HIMC hIMC
, DWORD dwIndex
, LPVOID pComp
, DWORD dwCompLen
,
547 LPVOID pRead
, DWORD dwReadLen
)
551 rc
= ImmSetCompositionStringW(hIMC
,dwIndex
,pComp
,dwCompLen
,pRead
,dwReadLen
);
559 static HRESULT WINAPI
ActiveIMMApp_SetCompositionWindow(IActiveIMMApp
* This
,
560 HIMC hIMC
, COMPOSITIONFORM
*pCompForm
)
564 rc
= ImmSetCompositionWindow(hIMC
,pCompForm
);
572 static HRESULT WINAPI
ActiveIMMApp_SetConversionStatus(IActiveIMMApp
* This
,
573 HIMC hIMC
, DWORD fdwConversion
, DWORD fdwSentence
)
577 rc
= ImmSetConversionStatus(hIMC
,fdwConversion
,fdwSentence
);
585 static HRESULT WINAPI
ActiveIMMApp_SetOpenStatus(IActiveIMMApp
* This
,
586 HIMC hIMC
, BOOL fOpen
)
590 rc
= ImmSetOpenStatus(hIMC
,fOpen
);
598 static HRESULT WINAPI
ActiveIMMApp_SetStatusWindowPos(IActiveIMMApp
* This
,
599 HIMC hIMC
, POINT
*pptPos
)
603 rc
= ImmSetStatusWindowPos(hIMC
,pptPos
);
611 static HRESULT WINAPI
ActiveIMMApp_SimulateHotKey(IActiveIMMApp
* This
,
612 HWND hwnd
, DWORD dwHotKeyID
)
616 rc
= ImmSimulateHotKey(hwnd
,dwHotKeyID
);
624 static HRESULT WINAPI
ActiveIMMApp_UnregisterWordA(IActiveIMMApp
* This
,
625 HKL hKL
, LPSTR szReading
, DWORD dwStyle
, LPSTR szUnregister
)
629 rc
= ImmUnregisterWordA(hKL
,szReading
,dwStyle
,szUnregister
);
638 static HRESULT WINAPI
ActiveIMMApp_UnregisterWordW(IActiveIMMApp
* This
,
639 HKL hKL
, LPWSTR szReading
, DWORD dwStyle
, LPWSTR szUnregister
)
643 rc
= ImmUnregisterWordW(hKL
,szReading
,dwStyle
,szUnregister
);
651 static HRESULT WINAPI
ActiveIMMApp_Activate(IActiveIMMApp
* This
,
658 static HRESULT WINAPI
ActiveIMMApp_Deactivate(IActiveIMMApp
* This
)
664 static HRESULT WINAPI
ActiveIMMApp_OnDefWindowProc(IActiveIMMApp
* This
,
665 HWND hWnd
, UINT Msg
, WPARAM wParam
, LPARAM lParam
, LRESULT
*plResult
)
667 FIXME("Stub (%p %x %lx %lx)\n",hWnd
,Msg
,wParam
,lParam
);
671 static HRESULT WINAPI
ActiveIMMApp_FilterClientWindows(IActiveIMMApp
* This
,
672 ATOM
*aaClassList
, UINT uSize
)
678 static HRESULT WINAPI
ActiveIMMApp_GetCodePageA(IActiveIMMApp
* This
,
679 HKL hKL
, UINT
*uCodePage
)
685 static HRESULT WINAPI
ActiveIMMApp_GetLangId(IActiveIMMApp
* This
,
686 HKL hKL
, LANGID
*plid
)
692 static HRESULT WINAPI
ActiveIMMApp_AssociateContextEx(IActiveIMMApp
* This
,
693 HWND hWnd
, HIMC hIMC
, DWORD dwFlags
)
697 rc
= ImmAssociateContextEx(hWnd
,hIMC
,dwFlags
);
705 static HRESULT WINAPI
ActiveIMMApp_DisableIME(IActiveIMMApp
* This
,
710 rc
= ImmDisableIME(idThread
);
718 static HRESULT WINAPI
ActiveIMMApp_GetImeMenuItemsA(IActiveIMMApp
* This
,
719 HIMC hIMC
, DWORD dwFlags
, DWORD dwType
,
720 IMEMENUITEMINFOA
*pImeParentMenu
, IMEMENUITEMINFOA
*pImeMenu
,
721 DWORD dwSize
, DWORD
*pdwResult
)
723 *pdwResult
= ImmGetImeMenuItemsA(hIMC
,dwFlags
,dwType
,pImeParentMenu
,pImeMenu
,dwSize
);
727 static HRESULT WINAPI
ActiveIMMApp_GetImeMenuItemsW(IActiveIMMApp
* This
,
728 HIMC hIMC
, DWORD dwFlags
, DWORD dwType
,
729 IMEMENUITEMINFOW
*pImeParentMenu
, IMEMENUITEMINFOW
*pImeMenu
,
730 DWORD dwSize
, DWORD
*pdwResult
)
732 *pdwResult
= ImmGetImeMenuItemsW(hIMC
,dwFlags
,dwType
,pImeParentMenu
,pImeMenu
,dwSize
);
736 static HRESULT WINAPI
ActiveIMMApp_EnumInputContext(IActiveIMMApp
* This
,
737 DWORD idThread
, IEnumInputContext
**ppEnum
)
743 static const IActiveIMMAppVtbl ActiveIMMAppVtbl
=
745 ActiveIMMApp_QueryInterface
,
747 ActiveIMMApp_Release
,
749 ActiveIMMApp_AssociateContext
,
750 ActiveIMMApp_ConfigureIMEA
,
751 ActiveIMMApp_ConfigureIMEW
,
752 ActiveIMMApp_CreateContext
,
753 ActiveIMMApp_DestroyContext
,
754 ActiveIMMApp_EnumRegisterWordA
,
755 ActiveIMMApp_EnumRegisterWordW
,
756 ActiveIMMApp_EscapeA
,
757 ActiveIMMApp_EscapeW
,
758 ActiveIMMApp_GetCandidateListA
,
759 ActiveIMMApp_GetCandidateListW
,
760 ActiveIMMApp_GetCandidateListCountA
,
761 ActiveIMMApp_GetCandidateListCountW
,
762 ActiveIMMApp_GetCandidateWindow
,
763 ActiveIMMApp_GetCompositionFontA
,
764 ActiveIMMApp_GetCompositionFontW
,
765 ActiveIMMApp_GetCompositionStringA
,
766 ActiveIMMApp_GetCompositionStringW
,
767 ActiveIMMApp_GetCompositionWindow
,
768 ActiveIMMApp_GetContext
,
769 ActiveIMMApp_GetConversionListA
,
770 ActiveIMMApp_GetConversionListW
,
771 ActiveIMMApp_GetConversionStatus
,
772 ActiveIMMApp_GetDefaultIMEWnd
,
773 ActiveIMMApp_GetDescriptionA
,
774 ActiveIMMApp_GetDescriptionW
,
775 ActiveIMMApp_GetGuideLineA
,
776 ActiveIMMApp_GetGuideLineW
,
777 ActiveIMMApp_GetIMEFileNameA
,
778 ActiveIMMApp_GetIMEFileNameW
,
779 ActiveIMMApp_GetOpenStatus
,
780 ActiveIMMApp_GetProperty
,
781 ActiveIMMApp_GetRegisterWordStyleA
,
782 ActiveIMMApp_GetRegisterWordStyleW
,
783 ActiveIMMApp_GetStatusWindowPos
,
784 ActiveIMMApp_GetVirtualKey
,
785 ActiveIMMApp_InstallIMEA
,
786 ActiveIMMApp_InstallIMEW
,
788 ActiveIMMApp_IsUIMessageA
,
789 ActiveIMMApp_IsUIMessageW
,
790 ActiveIMMApp_NotifyIME
,
791 ActiveIMMApp_RegisterWordA
,
792 ActiveIMMApp_RegisterWordW
,
793 ActiveIMMApp_ReleaseContext
,
794 ActiveIMMApp_SetCandidateWindow
,
795 ActiveIMMApp_SetCompositionFontA
,
796 ActiveIMMApp_SetCompositionFontW
,
797 ActiveIMMApp_SetCompositionStringA
,
798 ActiveIMMApp_SetCompositionStringW
,
799 ActiveIMMApp_SetCompositionWindow
,
800 ActiveIMMApp_SetConversionStatus
,
801 ActiveIMMApp_SetOpenStatus
,
802 ActiveIMMApp_SetStatusWindowPos
,
803 ActiveIMMApp_SimulateHotKey
,
804 ActiveIMMApp_UnregisterWordA
,
805 ActiveIMMApp_UnregisterWordW
,
807 ActiveIMMApp_Activate
,
808 ActiveIMMApp_Deactivate
,
809 ActiveIMMApp_OnDefWindowProc
,
810 ActiveIMMApp_FilterClientWindows
,
811 ActiveIMMApp_GetCodePageA
,
812 ActiveIMMApp_GetLangId
,
813 ActiveIMMApp_AssociateContextEx
,
814 ActiveIMMApp_DisableIME
,
815 ActiveIMMApp_GetImeMenuItemsA
,
816 ActiveIMMApp_GetImeMenuItemsW
,
817 ActiveIMMApp_EnumInputContext
820 static inline ActiveIMMApp
*impl_from_IActiveIMMMessagePumpOwner(IActiveIMMMessagePumpOwner
*iface
)
822 return CONTAINING_RECORD(iface
, ActiveIMMApp
, IActiveIMMMessagePumpOwner_iface
);
825 static HRESULT WINAPI
ActiveIMMMessagePumpOwner_QueryInterface(IActiveIMMMessagePumpOwner
* iface
,
826 REFIID iid
, LPVOID
*ppvOut
)
828 ActiveIMMApp
*This
= impl_from_IActiveIMMMessagePumpOwner(iface
);
829 return IActiveIMMApp_QueryInterface(&This
->IActiveIMMApp_iface
, iid
, ppvOut
);
832 static ULONG WINAPI
ActiveIMMMessagePumpOwner_AddRef(IActiveIMMMessagePumpOwner
* iface
)
834 ActiveIMMApp
*This
= impl_from_IActiveIMMMessagePumpOwner(iface
);
835 return IActiveIMMApp_AddRef(&This
->IActiveIMMApp_iface
);
838 static ULONG WINAPI
ActiveIMMMessagePumpOwner_Release(IActiveIMMMessagePumpOwner
* iface
)
840 ActiveIMMApp
*This
= impl_from_IActiveIMMMessagePumpOwner(iface
);
841 return IActiveIMMApp_Release(&This
->IActiveIMMApp_iface
);
844 static HRESULT WINAPI
ActiveIMMMessagePumpOwner_Start(IActiveIMMMessagePumpOwner
* iface
)
846 ActiveIMMApp
*This
= impl_from_IActiveIMMMessagePumpOwner(iface
);
847 FIXME("(%p)->(): stub\n", This
);
851 static HRESULT WINAPI
ActiveIMMMessagePumpOwner_End(IActiveIMMMessagePumpOwner
* iface
)
853 ActiveIMMApp
*This
= impl_from_IActiveIMMMessagePumpOwner(iface
);
854 FIXME("(%p)->(): stub\n", This
);
858 static HRESULT WINAPI
ActiveIMMMessagePumpOwner_OnTranslateMessage(IActiveIMMMessagePumpOwner
* iface
,
861 ActiveIMMApp
*This
= impl_from_IActiveIMMMessagePumpOwner(iface
);
862 FIXME("(%p)->(%p): stub\n", This
, msg
);
866 static HRESULT WINAPI
ActiveIMMMessagePumpOwner_Pause(IActiveIMMMessagePumpOwner
* iface
,
869 ActiveIMMApp
*This
= impl_from_IActiveIMMMessagePumpOwner(iface
);
870 FIXME("(%p)->(%p): stub\n", This
, cookie
);
874 static HRESULT WINAPI
ActiveIMMMessagePumpOwner_Resume(IActiveIMMMessagePumpOwner
* iface
,
877 ActiveIMMApp
*This
= impl_from_IActiveIMMMessagePumpOwner(iface
);
878 FIXME("(%p)->(%u): stub\n", This
, cookie
);
882 static const IActiveIMMMessagePumpOwnerVtbl ActiveIMMMessagePumpOwnerVtbl
=
884 ActiveIMMMessagePumpOwner_QueryInterface
,
885 ActiveIMMMessagePumpOwner_AddRef
,
886 ActiveIMMMessagePumpOwner_Release
,
887 ActiveIMMMessagePumpOwner_Start
,
888 ActiveIMMMessagePumpOwner_End
,
889 ActiveIMMMessagePumpOwner_OnTranslateMessage
,
890 ActiveIMMMessagePumpOwner_Pause
,
891 ActiveIMMMessagePumpOwner_Resume
,
894 DECLSPEC_HIDDEN HRESULT
ActiveIMMApp_Constructor(IUnknown
*pUnkOuter
, IUnknown
**ppOut
)
898 return CLASS_E_NOAGGREGATION
;
900 This
= HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY
,sizeof(ActiveIMMApp
));
902 return E_OUTOFMEMORY
;
904 This
->IActiveIMMApp_iface
.lpVtbl
= &ActiveIMMAppVtbl
;
905 This
->IActiveIMMMessagePumpOwner_iface
.lpVtbl
= &ActiveIMMMessagePumpOwnerVtbl
;
908 TRACE("returning %p\n",This
);
909 *ppOut
= (IUnknown
*)This
;