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
23 typedef struct tagActiveIMMApp
{
24 IActiveIMMApp IActiveIMMApp_iface
;
25 IActiveIMMMessagePumpOwner IActiveIMMMessagePumpOwner_iface
;
29 static inline ActiveIMMApp
*impl_from_IActiveIMMApp(IActiveIMMApp
*iface
)
31 return CONTAINING_RECORD(iface
, ActiveIMMApp
, IActiveIMMApp_iface
);
34 static void ActiveIMMApp_Destructor(ActiveIMMApp
* This
)
37 HeapFree(GetProcessHeap(),0,This
);
40 static HRESULT WINAPI
ActiveIMMApp_QueryInterface (IActiveIMMApp
* iface
,
41 REFIID iid
, LPVOID
*ppvOut
)
43 ActiveIMMApp
*This
= impl_from_IActiveIMMApp(iface
);
46 if (IsEqualIID(iid
, &IID_IUnknown
) || IsEqualIID(iid
, &IID_IActiveIMMApp
))
50 else if (IsEqualIID(iid
, &IID_IActiveIMMMessagePumpOwner
))
52 *ppvOut
= &This
->IActiveIMMMessagePumpOwner_iface
;
57 IUnknown_AddRef(iface
);
61 WARN("unsupported interface: %s\n", debugstr_guid(iid
));
65 static ULONG WINAPI
ActiveIMMApp_AddRef(IActiveIMMApp
* iface
)
67 ActiveIMMApp
*This
= impl_from_IActiveIMMApp(iface
);
68 return InterlockedIncrement(&This
->refCount
);
71 static ULONG WINAPI
ActiveIMMApp_Release(IActiveIMMApp
* iface
)
73 ActiveIMMApp
*This
= impl_from_IActiveIMMApp(iface
);
76 ret
= InterlockedDecrement(&This
->refCount
);
78 ActiveIMMApp_Destructor(This
);
82 static HRESULT WINAPI
ActiveIMMApp_AssociateContext(IActiveIMMApp
* iface
,
83 HWND hWnd
, HIMC hIME
, HIMC
*phPrev
)
85 *phPrev
= ImmAssociateContext(hWnd
,hIME
);
89 static HRESULT WINAPI
ActiveIMMApp_ConfigureIMEA(IActiveIMMApp
* This
,
90 HKL hKL
, HWND hwnd
, DWORD dwMode
, REGISTERWORDA
*pData
)
94 rc
= ImmConfigureIMEA(hKL
, hwnd
, dwMode
, pData
);
101 static HRESULT WINAPI
ActiveIMMApp_ConfigureIMEW(IActiveIMMApp
* This
,
102 HKL hKL
, HWND hWnd
, DWORD dwMode
, REGISTERWORDW
*pData
)
106 rc
= ImmConfigureIMEW(hKL
, hWnd
, dwMode
, pData
);
113 static HRESULT WINAPI
ActiveIMMApp_CreateContext(IActiveIMMApp
* This
,
116 *phIMC
= ImmCreateContext();
123 static HRESULT WINAPI
ActiveIMMApp_DestroyContext(IActiveIMMApp
* This
,
128 rc
= ImmDestroyContext(hIME
);
135 static HRESULT WINAPI
ActiveIMMApp_EnumRegisterWordA(IActiveIMMApp
* This
,
136 HKL hKL
, LPSTR szReading
, DWORD dwStyle
, LPSTR szRegister
,
137 LPVOID pData
, IEnumRegisterWordA
**pEnum
)
143 static HRESULT WINAPI
ActiveIMMApp_EnumRegisterWordW(IActiveIMMApp
* This
,
144 HKL hKL
, LPWSTR szReading
, DWORD dwStyle
, LPWSTR szRegister
,
145 LPVOID pData
, IEnumRegisterWordW
**pEnum
)
151 static HRESULT WINAPI
ActiveIMMApp_EscapeA(IActiveIMMApp
* This
,
152 HKL hKL
, HIMC hIMC
, UINT uEscape
, LPVOID pData
, LRESULT
*plResult
)
154 *plResult
= ImmEscapeA(hKL
, hIMC
, uEscape
, pData
);
158 static HRESULT WINAPI
ActiveIMMApp_EscapeW(IActiveIMMApp
* This
,
159 HKL hKL
, HIMC hIMC
, UINT uEscape
, LPVOID pData
, LRESULT
*plResult
)
161 *plResult
= ImmEscapeW(hKL
, hIMC
, uEscape
, pData
);
165 static HRESULT WINAPI
ActiveIMMApp_GetCandidateListA(IActiveIMMApp
* This
,
166 HIMC hIMC
, DWORD dwIndex
, UINT uBufLen
, CANDIDATELIST
*pCandList
,
169 *puCopied
= ImmGetCandidateListA(hIMC
, dwIndex
, pCandList
, uBufLen
);
173 static HRESULT WINAPI
ActiveIMMApp_GetCandidateListW(IActiveIMMApp
* This
,
174 HIMC hIMC
, DWORD dwIndex
, UINT uBufLen
, CANDIDATELIST
*pCandList
,
177 *puCopied
= ImmGetCandidateListW(hIMC
, dwIndex
, pCandList
, uBufLen
);
181 static HRESULT WINAPI
ActiveIMMApp_GetCandidateListCountA(IActiveIMMApp
* This
,
182 HIMC hIMC
, DWORD
*pdwListSize
, DWORD
*pdwBufLen
)
184 *pdwBufLen
= ImmGetCandidateListCountA(hIMC
, pdwListSize
);
188 static HRESULT WINAPI
ActiveIMMApp_GetCandidateListCountW(IActiveIMMApp
* This
,
189 HIMC hIMC
, DWORD
*pdwListSize
, DWORD
*pdwBufLen
)
191 *pdwBufLen
= ImmGetCandidateListCountA(hIMC
, pdwListSize
);
195 static HRESULT WINAPI
ActiveIMMApp_GetCandidateWindow(IActiveIMMApp
* This
,
196 HIMC hIMC
, DWORD dwIndex
, CANDIDATEFORM
*pCandidate
)
199 rc
= ImmGetCandidateWindow(hIMC
,dwIndex
,pCandidate
);
206 static HRESULT WINAPI
ActiveIMMApp_GetCompositionFontA(IActiveIMMApp
* This
,
207 HIMC hIMC
, LOGFONTA
*plf
)
210 rc
= ImmGetCompositionFontA(hIMC
,plf
);
217 static HRESULT WINAPI
ActiveIMMApp_GetCompositionFontW(IActiveIMMApp
* This
,
218 HIMC hIMC
, LOGFONTW
*plf
)
221 rc
= ImmGetCompositionFontW(hIMC
,plf
);
228 static HRESULT WINAPI
ActiveIMMApp_GetCompositionStringA(IActiveIMMApp
* This
,
229 HIMC hIMC
, DWORD dwIndex
, DWORD dwBufLen
, LONG
*plCopied
, LPVOID pBuf
)
231 *plCopied
= ImmGetCompositionStringA(hIMC
, dwIndex
, pBuf
, dwBufLen
);
235 static HRESULT WINAPI
ActiveIMMApp_GetCompositionStringW(IActiveIMMApp
* This
,
236 HIMC hIMC
, DWORD dwIndex
, DWORD dwBufLen
, LONG
*plCopied
, LPVOID pBuf
)
238 *plCopied
= ImmGetCompositionStringW(hIMC
, dwIndex
, pBuf
, dwBufLen
);
242 static HRESULT WINAPI
ActiveIMMApp_GetCompositionWindow(IActiveIMMApp
* This
,
243 HIMC hIMC
, COMPOSITIONFORM
*pCompForm
)
247 rc
= ImmGetCompositionWindow(hIMC
,pCompForm
);
255 static HRESULT WINAPI
ActiveIMMApp_GetContext(IActiveIMMApp
* This
,
256 HWND hwnd
, HIMC
*phIMC
)
258 *phIMC
= ImmGetContext(hwnd
);
262 static HRESULT WINAPI
ActiveIMMApp_GetConversionListA(IActiveIMMApp
* This
,
263 HKL hKL
, HIMC hIMC
, LPSTR pSrc
, UINT uBufLen
, UINT uFlag
,
264 CANDIDATELIST
*pDst
, UINT
*puCopied
)
266 *puCopied
= ImmGetConversionListA(hKL
, hIMC
, pSrc
, pDst
, uBufLen
, uFlag
);
270 static HRESULT WINAPI
ActiveIMMApp_GetConversionListW(IActiveIMMApp
* This
,
271 HKL hKL
, HIMC hIMC
, LPWSTR pSrc
, UINT uBufLen
, UINT uFlag
,
272 CANDIDATELIST
*pDst
, UINT
*puCopied
)
274 *puCopied
= ImmGetConversionListW(hKL
, hIMC
, pSrc
, pDst
, uBufLen
, uFlag
);
278 static HRESULT WINAPI
ActiveIMMApp_GetConversionStatus(IActiveIMMApp
* This
,
279 HIMC hIMC
, DWORD
*pfdwConversion
, DWORD
*pfdwSentence
)
283 rc
= ImmGetConversionStatus(hIMC
, pfdwConversion
, pfdwSentence
);
291 static HRESULT WINAPI
ActiveIMMApp_GetDefaultIMEWnd(IActiveIMMApp
* This
,
292 HWND hWnd
, HWND
*phDefWnd
)
294 *phDefWnd
= ImmGetDefaultIMEWnd(hWnd
);
298 static HRESULT WINAPI
ActiveIMMApp_GetDescriptionA(IActiveIMMApp
* This
,
299 HKL hKL
, UINT uBufLen
, LPSTR szDescription
, UINT
*puCopied
)
301 *puCopied
= ImmGetDescriptionA(hKL
, szDescription
, uBufLen
);
305 static HRESULT WINAPI
ActiveIMMApp_GetDescriptionW(IActiveIMMApp
* This
,
306 HKL hKL
, UINT uBufLen
, LPWSTR szDescription
, UINT
*puCopied
)
308 *puCopied
= ImmGetDescriptionW(hKL
, szDescription
, uBufLen
);
312 static HRESULT WINAPI
ActiveIMMApp_GetGuideLineA(IActiveIMMApp
* This
,
313 HIMC hIMC
, DWORD dwIndex
, DWORD dwBufLen
, LPSTR pBuf
,
316 *pdwResult
= ImmGetGuideLineA(hIMC
, dwIndex
, pBuf
, dwBufLen
);
320 static HRESULT WINAPI
ActiveIMMApp_GetGuideLineW(IActiveIMMApp
* This
,
321 HIMC hIMC
, DWORD dwIndex
, DWORD dwBufLen
, LPWSTR pBuf
,
324 *pdwResult
= ImmGetGuideLineW(hIMC
, dwIndex
, pBuf
, dwBufLen
);
328 static HRESULT WINAPI
ActiveIMMApp_GetIMEFileNameA(IActiveIMMApp
* This
,
329 HKL hKL
, UINT uBufLen
, LPSTR szFileName
, UINT
*puCopied
)
331 *puCopied
= ImmGetIMEFileNameA(hKL
, szFileName
, uBufLen
);
335 static HRESULT WINAPI
ActiveIMMApp_GetIMEFileNameW(IActiveIMMApp
* This
,
336 HKL hKL
, UINT uBufLen
, LPWSTR szFileName
, UINT
*puCopied
)
338 *puCopied
= ImmGetIMEFileNameW(hKL
, szFileName
, uBufLen
);
342 static HRESULT WINAPI
ActiveIMMApp_GetOpenStatus(IActiveIMMApp
* This
,
345 return ImmGetOpenStatus(hIMC
);
348 static HRESULT WINAPI
ActiveIMMApp_GetProperty(IActiveIMMApp
* This
,
349 HKL hKL
, DWORD fdwIndex
, DWORD
*pdwProperty
)
351 *pdwProperty
= ImmGetProperty(hKL
, fdwIndex
);
355 static HRESULT WINAPI
ActiveIMMApp_GetRegisterWordStyleA(IActiveIMMApp
* This
,
356 HKL hKL
, UINT nItem
, STYLEBUFA
*pStyleBuf
, UINT
*puCopied
)
358 *puCopied
= ImmGetRegisterWordStyleA(hKL
, nItem
, pStyleBuf
);
362 static HRESULT WINAPI
ActiveIMMApp_GetRegisterWordStyleW(IActiveIMMApp
* This
,
363 HKL hKL
, UINT nItem
, STYLEBUFW
*pStyleBuf
, UINT
*puCopied
)
365 *puCopied
= ImmGetRegisterWordStyleW(hKL
, nItem
, pStyleBuf
);
369 static HRESULT WINAPI
ActiveIMMApp_GetStatusWindowPos(IActiveIMMApp
* This
,
370 HIMC hIMC
, POINT
*pptPos
)
373 rc
= ImmGetStatusWindowPos(hIMC
, pptPos
);
381 static HRESULT WINAPI
ActiveIMMApp_GetVirtualKey(IActiveIMMApp
* This
,
382 HWND hWnd
, UINT
*puVirtualKey
)
384 *puVirtualKey
= ImmGetVirtualKey(hWnd
);
388 static HRESULT WINAPI
ActiveIMMApp_InstallIMEA(IActiveIMMApp
* This
,
389 LPSTR szIMEFileName
, LPSTR szLayoutText
, HKL
*phKL
)
391 *phKL
= ImmInstallIMEA(szIMEFileName
,szLayoutText
);
395 static HRESULT WINAPI
ActiveIMMApp_InstallIMEW(IActiveIMMApp
* This
,
396 LPWSTR szIMEFileName
, LPWSTR szLayoutText
, HKL
*phKL
)
398 *phKL
= ImmInstallIMEW(szIMEFileName
,szLayoutText
);
402 static HRESULT WINAPI
ActiveIMMApp_IsIME(IActiveIMMApp
* This
,
405 return ImmIsIME(hKL
);
408 static HRESULT WINAPI
ActiveIMMApp_IsUIMessageA(IActiveIMMApp
* This
,
409 HWND hWndIME
, UINT msg
, WPARAM wParam
, LPARAM lParam
)
411 return ImmIsUIMessageA(hWndIME
,msg
,wParam
,lParam
);
414 static HRESULT WINAPI
ActiveIMMApp_IsUIMessageW(IActiveIMMApp
* This
,
415 HWND hWndIME
, UINT msg
, WPARAM wParam
, LPARAM lParam
)
417 return ImmIsUIMessageW(hWndIME
,msg
,wParam
,lParam
);
420 static HRESULT WINAPI
ActiveIMMApp_NotifyIME(IActiveIMMApp
* This
,
421 HIMC hIMC
, DWORD dwAction
, DWORD dwIndex
, DWORD dwValue
)
425 rc
= ImmNotifyIME(hIMC
,dwAction
,dwIndex
,dwValue
);
433 static HRESULT WINAPI
ActiveIMMApp_RegisterWordA(IActiveIMMApp
* This
,
434 HKL hKL
, LPSTR szReading
, DWORD dwStyle
, LPSTR szRegister
)
438 rc
= ImmRegisterWordA(hKL
,szReading
,dwStyle
,szRegister
);
446 static HRESULT WINAPI
ActiveIMMApp_RegisterWordW(IActiveIMMApp
* This
,
447 HKL hKL
, LPWSTR szReading
, DWORD dwStyle
, LPWSTR szRegister
)
451 rc
= ImmRegisterWordW(hKL
,szReading
,dwStyle
,szRegister
);
459 static HRESULT WINAPI
ActiveIMMApp_ReleaseContext(IActiveIMMApp
* This
,
460 HWND hWnd
, HIMC hIMC
)
464 rc
= ImmReleaseContext(hWnd
,hIMC
);
472 static HRESULT WINAPI
ActiveIMMApp_SetCandidateWindow(IActiveIMMApp
* This
,
473 HIMC hIMC
, CANDIDATEFORM
*pCandidate
)
477 rc
= ImmSetCandidateWindow(hIMC
,pCandidate
);
485 static HRESULT WINAPI
ActiveIMMApp_SetCompositionFontA(IActiveIMMApp
* This
,
486 HIMC hIMC
, LOGFONTA
*plf
)
490 rc
= ImmSetCompositionFontA(hIMC
,plf
);
498 static HRESULT WINAPI
ActiveIMMApp_SetCompositionFontW(IActiveIMMApp
* This
,
499 HIMC hIMC
, LOGFONTW
*plf
)
503 rc
= ImmSetCompositionFontW(hIMC
,plf
);
511 static HRESULT WINAPI
ActiveIMMApp_SetCompositionStringA(IActiveIMMApp
* This
,
512 HIMC hIMC
, DWORD dwIndex
, LPVOID pComp
, DWORD dwCompLen
,
513 LPVOID pRead
, DWORD dwReadLen
)
517 rc
= ImmSetCompositionStringA(hIMC
,dwIndex
,pComp
,dwCompLen
,pRead
,dwReadLen
);
525 static HRESULT WINAPI
ActiveIMMApp_SetCompositionStringW(IActiveIMMApp
* This
,
526 HIMC hIMC
, DWORD dwIndex
, LPVOID pComp
, DWORD dwCompLen
,
527 LPVOID pRead
, DWORD dwReadLen
)
531 rc
= ImmSetCompositionStringW(hIMC
,dwIndex
,pComp
,dwCompLen
,pRead
,dwReadLen
);
539 static HRESULT WINAPI
ActiveIMMApp_SetCompositionWindow(IActiveIMMApp
* This
,
540 HIMC hIMC
, COMPOSITIONFORM
*pCompForm
)
544 rc
= ImmSetCompositionWindow(hIMC
,pCompForm
);
552 static HRESULT WINAPI
ActiveIMMApp_SetConversionStatus(IActiveIMMApp
* This
,
553 HIMC hIMC
, DWORD fdwConversion
, DWORD fdwSentence
)
557 rc
= ImmSetConversionStatus(hIMC
,fdwConversion
,fdwSentence
);
565 static HRESULT WINAPI
ActiveIMMApp_SetOpenStatus(IActiveIMMApp
* This
,
566 HIMC hIMC
, BOOL fOpen
)
570 rc
= ImmSetOpenStatus(hIMC
,fOpen
);
578 static HRESULT WINAPI
ActiveIMMApp_SetStatusWindowPos(IActiveIMMApp
* This
,
579 HIMC hIMC
, POINT
*pptPos
)
583 rc
= ImmSetStatusWindowPos(hIMC
,pptPos
);
591 static HRESULT WINAPI
ActiveIMMApp_SimulateHotKey(IActiveIMMApp
* This
,
592 HWND hwnd
, DWORD dwHotKeyID
)
596 rc
= ImmSimulateHotKey(hwnd
,dwHotKeyID
);
604 static HRESULT WINAPI
ActiveIMMApp_UnregisterWordA(IActiveIMMApp
* This
,
605 HKL hKL
, LPSTR szReading
, DWORD dwStyle
, LPSTR szUnregister
)
609 rc
= ImmUnregisterWordA(hKL
,szReading
,dwStyle
,szUnregister
);
618 static HRESULT WINAPI
ActiveIMMApp_UnregisterWordW(IActiveIMMApp
* This
,
619 HKL hKL
, LPWSTR szReading
, DWORD dwStyle
, LPWSTR szUnregister
)
623 rc
= ImmUnregisterWordW(hKL
,szReading
,dwStyle
,szUnregister
);
631 static HRESULT WINAPI
ActiveIMMApp_Activate(IActiveIMMApp
* This
,
638 static HRESULT WINAPI
ActiveIMMApp_Deactivate(IActiveIMMApp
* This
)
644 static HRESULT WINAPI
ActiveIMMApp_OnDefWindowProc(IActiveIMMApp
* This
,
645 HWND hWnd
, UINT Msg
, WPARAM wParam
, LPARAM lParam
, LRESULT
*plResult
)
648 FIXME("Stub (%p %x %lx %lx)\n",hWnd
,Msg
,wParam
,lParam
);
653 static HRESULT WINAPI
ActiveIMMApp_FilterClientWindows(IActiveIMMApp
* This
,
654 ATOM
*aaClassList
, UINT uSize
)
660 static HRESULT WINAPI
ActiveIMMApp_GetCodePageA(IActiveIMMApp
* This
,
661 HKL hKL
, UINT
*uCodePage
)
667 static HRESULT WINAPI
ActiveIMMApp_GetLangId(IActiveIMMApp
* This
,
668 HKL hKL
, LANGID
*plid
)
674 static HRESULT WINAPI
ActiveIMMApp_AssociateContextEx(IActiveIMMApp
* This
,
675 HWND hWnd
, HIMC hIMC
, DWORD dwFlags
)
679 rc
= ImmAssociateContextEx(hWnd
,hIMC
,dwFlags
);
687 static HRESULT WINAPI
ActiveIMMApp_DisableIME(IActiveIMMApp
* This
,
692 rc
= ImmDisableIME(idThread
);
700 static HRESULT WINAPI
ActiveIMMApp_GetImeMenuItemsA(IActiveIMMApp
* This
,
701 HIMC hIMC
, DWORD dwFlags
, DWORD dwType
,
702 IMEMENUITEMINFOA
*pImeParentMenu
, IMEMENUITEMINFOA
*pImeMenu
,
703 DWORD dwSize
, DWORD
*pdwResult
)
705 *pdwResult
= ImmGetImeMenuItemsA(hIMC
,dwFlags
,dwType
,pImeParentMenu
,pImeMenu
,dwSize
);
709 static HRESULT WINAPI
ActiveIMMApp_GetImeMenuItemsW(IActiveIMMApp
* This
,
710 HIMC hIMC
, DWORD dwFlags
, DWORD dwType
,
711 IMEMENUITEMINFOW
*pImeParentMenu
, IMEMENUITEMINFOW
*pImeMenu
,
712 DWORD dwSize
, DWORD
*pdwResult
)
714 *pdwResult
= ImmGetImeMenuItemsW(hIMC
,dwFlags
,dwType
,pImeParentMenu
,pImeMenu
,dwSize
);
718 static HRESULT WINAPI
ActiveIMMApp_EnumInputContext(IActiveIMMApp
* This
,
719 DWORD idThread
, IEnumInputContext
**ppEnum
)
725 static const IActiveIMMAppVtbl ActiveIMMAppVtbl
=
727 ActiveIMMApp_QueryInterface
,
729 ActiveIMMApp_Release
,
731 ActiveIMMApp_AssociateContext
,
732 ActiveIMMApp_ConfigureIMEA
,
733 ActiveIMMApp_ConfigureIMEW
,
734 ActiveIMMApp_CreateContext
,
735 ActiveIMMApp_DestroyContext
,
736 ActiveIMMApp_EnumRegisterWordA
,
737 ActiveIMMApp_EnumRegisterWordW
,
738 ActiveIMMApp_EscapeA
,
739 ActiveIMMApp_EscapeW
,
740 ActiveIMMApp_GetCandidateListA
,
741 ActiveIMMApp_GetCandidateListW
,
742 ActiveIMMApp_GetCandidateListCountA
,
743 ActiveIMMApp_GetCandidateListCountW
,
744 ActiveIMMApp_GetCandidateWindow
,
745 ActiveIMMApp_GetCompositionFontA
,
746 ActiveIMMApp_GetCompositionFontW
,
747 ActiveIMMApp_GetCompositionStringA
,
748 ActiveIMMApp_GetCompositionStringW
,
749 ActiveIMMApp_GetCompositionWindow
,
750 ActiveIMMApp_GetContext
,
751 ActiveIMMApp_GetConversionListA
,
752 ActiveIMMApp_GetConversionListW
,
753 ActiveIMMApp_GetConversionStatus
,
754 ActiveIMMApp_GetDefaultIMEWnd
,
755 ActiveIMMApp_GetDescriptionA
,
756 ActiveIMMApp_GetDescriptionW
,
757 ActiveIMMApp_GetGuideLineA
,
758 ActiveIMMApp_GetGuideLineW
,
759 ActiveIMMApp_GetIMEFileNameA
,
760 ActiveIMMApp_GetIMEFileNameW
,
761 ActiveIMMApp_GetOpenStatus
,
762 ActiveIMMApp_GetProperty
,
763 ActiveIMMApp_GetRegisterWordStyleA
,
764 ActiveIMMApp_GetRegisterWordStyleW
,
765 ActiveIMMApp_GetStatusWindowPos
,
766 ActiveIMMApp_GetVirtualKey
,
767 ActiveIMMApp_InstallIMEA
,
768 ActiveIMMApp_InstallIMEW
,
770 ActiveIMMApp_IsUIMessageA
,
771 ActiveIMMApp_IsUIMessageW
,
772 ActiveIMMApp_NotifyIME
,
773 ActiveIMMApp_RegisterWordA
,
774 ActiveIMMApp_RegisterWordW
,
775 ActiveIMMApp_ReleaseContext
,
776 ActiveIMMApp_SetCandidateWindow
,
777 ActiveIMMApp_SetCompositionFontA
,
778 ActiveIMMApp_SetCompositionFontW
,
779 ActiveIMMApp_SetCompositionStringA
,
780 ActiveIMMApp_SetCompositionStringW
,
781 ActiveIMMApp_SetCompositionWindow
,
782 ActiveIMMApp_SetConversionStatus
,
783 ActiveIMMApp_SetOpenStatus
,
784 ActiveIMMApp_SetStatusWindowPos
,
785 ActiveIMMApp_SimulateHotKey
,
786 ActiveIMMApp_UnregisterWordA
,
787 ActiveIMMApp_UnregisterWordW
,
789 ActiveIMMApp_Activate
,
790 ActiveIMMApp_Deactivate
,
791 ActiveIMMApp_OnDefWindowProc
,
792 ActiveIMMApp_FilterClientWindows
,
793 ActiveIMMApp_GetCodePageA
,
794 ActiveIMMApp_GetLangId
,
795 ActiveIMMApp_AssociateContextEx
,
796 ActiveIMMApp_DisableIME
,
797 ActiveIMMApp_GetImeMenuItemsA
,
798 ActiveIMMApp_GetImeMenuItemsW
,
799 ActiveIMMApp_EnumInputContext
802 static inline ActiveIMMApp
*impl_from_IActiveIMMMessagePumpOwner(IActiveIMMMessagePumpOwner
*iface
)
804 return CONTAINING_RECORD(iface
, ActiveIMMApp
, IActiveIMMMessagePumpOwner_iface
);
807 static HRESULT WINAPI
ActiveIMMMessagePumpOwner_QueryInterface(IActiveIMMMessagePumpOwner
* iface
,
808 REFIID iid
, LPVOID
*ppvOut
)
810 ActiveIMMApp
*This
= impl_from_IActiveIMMMessagePumpOwner(iface
);
811 return IActiveIMMApp_QueryInterface(&This
->IActiveIMMApp_iface
, iid
, ppvOut
);
814 static ULONG WINAPI
ActiveIMMMessagePumpOwner_AddRef(IActiveIMMMessagePumpOwner
* iface
)
816 ActiveIMMApp
*This
= impl_from_IActiveIMMMessagePumpOwner(iface
);
817 return IActiveIMMApp_AddRef(&This
->IActiveIMMApp_iface
);
820 static ULONG WINAPI
ActiveIMMMessagePumpOwner_Release(IActiveIMMMessagePumpOwner
* iface
)
822 ActiveIMMApp
*This
= impl_from_IActiveIMMMessagePumpOwner(iface
);
823 return IActiveIMMApp_Release(&This
->IActiveIMMApp_iface
);
826 static HRESULT WINAPI
ActiveIMMMessagePumpOwner_Start(IActiveIMMMessagePumpOwner
* iface
)
828 ActiveIMMApp
*This
= impl_from_IActiveIMMMessagePumpOwner(iface
);
829 FIXME("(%p)->(): stub\n", This
);
833 static HRESULT WINAPI
ActiveIMMMessagePumpOwner_End(IActiveIMMMessagePumpOwner
* iface
)
835 ActiveIMMApp
*This
= impl_from_IActiveIMMMessagePumpOwner(iface
);
836 FIXME("(%p)->(): stub\n", This
);
840 static HRESULT WINAPI
ActiveIMMMessagePumpOwner_OnTranslateMessage(IActiveIMMMessagePumpOwner
* iface
,
843 ActiveIMMApp
*This
= impl_from_IActiveIMMMessagePumpOwner(iface
);
844 FIXME("(%p)->(%p): stub\n", This
, msg
);
848 static HRESULT WINAPI
ActiveIMMMessagePumpOwner_Pause(IActiveIMMMessagePumpOwner
* iface
,
851 ActiveIMMApp
*This
= impl_from_IActiveIMMMessagePumpOwner(iface
);
852 FIXME("(%p)->(%p): stub\n", This
, cookie
);
856 static HRESULT WINAPI
ActiveIMMMessagePumpOwner_Resume(IActiveIMMMessagePumpOwner
* iface
,
859 ActiveIMMApp
*This
= impl_from_IActiveIMMMessagePumpOwner(iface
);
860 FIXME("(%p)->(%u): stub\n", This
, cookie
);
864 static const IActiveIMMMessagePumpOwnerVtbl ActiveIMMMessagePumpOwnerVtbl
=
866 ActiveIMMMessagePumpOwner_QueryInterface
,
867 ActiveIMMMessagePumpOwner_AddRef
,
868 ActiveIMMMessagePumpOwner_Release
,
869 ActiveIMMMessagePumpOwner_Start
,
870 ActiveIMMMessagePumpOwner_End
,
871 ActiveIMMMessagePumpOwner_OnTranslateMessage
,
872 ActiveIMMMessagePumpOwner_Pause
,
873 ActiveIMMMessagePumpOwner_Resume
,
876 DECLSPEC_HIDDEN HRESULT
ActiveIMMApp_Constructor(IUnknown
*pUnkOuter
, IUnknown
**ppOut
)
880 return CLASS_E_NOAGGREGATION
;
882 This
= HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY
,sizeof(ActiveIMMApp
));
884 return E_OUTOFMEMORY
;
886 This
->IActiveIMMApp_iface
.lpVtbl
= &ActiveIMMAppVtbl
;
887 This
->IActiveIMMMessagePumpOwner_iface
.lpVtbl
= &ActiveIMMMessagePumpOwnerVtbl
;
890 TRACE("returning %p\n",This
);
891 *ppOut
= (IUnknown
*)This
;