diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Make_mvc.mak | 16 | ||||
-rw-r--r-- | src/dimm.idl | 544 | ||||
-rw-r--r-- | src/glbl_ime.cpp | 256 | ||||
-rw-r--r-- | src/glbl_ime.h | 33 | ||||
-rw-r--r-- | src/gui_w32.c | 140 | ||||
-rw-r--r-- | src/version.c | 2 | ||||
-rw-r--r-- | src/vim.h | 8 |
7 files changed, 29 insertions, 970 deletions
diff --git a/src/Make_mvc.mak b/src/Make_mvc.mak index 6889a91d8c..23852df203 100644 --- a/src/Make_mvc.mak +++ b/src/Make_mvc.mak @@ -34,7 +34,6 @@ # IME support: IME=yes (default is yes) # DYNAMIC_IME=[yes or no] (to load the imm32.dll dynamically, default # is yes) -# Global IME support: GIME=yes (requires GUI=yes) # # Terminal support: TERMINAL=yes (default is yes if FEATURES is HUGE) # Will also enable CHANNEL @@ -898,11 +897,6 @@ IME_LIB = imm32.lib ! endif !endif -!if "$(GIME)" == "yes" -CFLAGS = $(CFLAGS) -DGLOBAL_IME -OBJ = $(OBJ) $(OUTDIR)\dimm_i.obj $(OUTDIR)\glbl_ime.obj -!endif - !if "$(GUI)" == "yes" SUBSYSTEM = windows CFLAGS = $(CFLAGS) -DFEAT_GUI_MSWIN @@ -1475,9 +1469,6 @@ clean: testclean - if exist uninstall.exe del uninstall.exe - if exist if_perl.c del if_perl.c - if exist auto\if_perl.c del auto\if_perl.c - - if exist dimm.h del dimm.h - - if exist dimm_i.c del dimm_i.c - - if exist dimm.tlb del dimm.tlb - if exist dosinst.exe del dosinst.exe cd xxd $(MAKE) /NOLOGO -f Make_mvc.mak clean @@ -1893,13 +1884,6 @@ iid_ole.c if_ole.h vim.tlb: if_ole.idl midl /nologo /error none /proxy nul /iid iid_ole.c /tlb vim.tlb \ /header if_ole.h if_ole.idl -dimm.h dimm_i.c: dimm.idl - midl /nologo /error none /proxy nul dimm.idl - -$(OUTDIR)/dimm_i.obj: $(OUTDIR) dimm_i.c $(INCL) - -$(OUTDIR)/glbl_ime.obj: $(OUTDIR) glbl_ime.cpp dimm.h $(INCL) - CCCTERM = $(CC) $(CFLAGS) -Ilibvterm/include -DINLINE="" \ -DVSNPRINTF=vim_vsnprintf \ diff --git a/src/dimm.idl b/src/dimm.idl deleted file mode 100644 index ac449650ee..0000000000 --- a/src/dimm.idl +++ /dev/null @@ -1,544 +0,0 @@ -//+------------------------------------------------------------------------- -// -// Microsoft Windows -// Copyright (C) Microsoft Corporation, 1992-2000. -// -// File: dimm.idl -// -// Contents: ActiveIMM interface definitions -// -// -//-------------------------------------------------------------------------- - -cpp_quote("//=--------------------------------------------------------------------------=") -cpp_quote("// dimm.h") -cpp_quote("//=--------------------------------------------------------------------------=") -cpp_quote("// (C) Copyright 1995-1998 Microsoft Corporation. All Rights Reserved.") -cpp_quote("//") -cpp_quote("// THIS CODE AND INFORMATION IS PROVIDED \"AS IS\" WITHOUT WARRANTY OF") -cpp_quote("// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO") -cpp_quote("// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A") -cpp_quote("// PARTICULAR PURPOSE.") -cpp_quote("//=--------------------------------------------------------------------------=") -cpp_quote("") -cpp_quote("#pragma comment(lib,\"uuid.lib\")") -cpp_quote("") -cpp_quote("//--------------------------------------------------------------------------") -cpp_quote("// IActiveIMM Interfaces.") -cpp_quote("") - -/* -Disable a warning about lack of polymorphic type support for the following reasons -- the only reason to have library block in the file is to make midl accept coclass - statement and generate CLSID for CActiveIMM. -- the generated dimm_i.c has the clsid and that file is used to have clsid available -- the dimm.tlb is not used at all -- on top of it, there is no plans to port the app using dimm.idl to 64b platform. -*/ -/* - * midl_pragma is unsupported in midl version 3.01 shipped with VC5.0. - * It is supported in midl version 5.01 shipped with VC6.0 - * I could not produce message 2395. Is this needed? W.Briscoe 2001-08-14 - */ -#if (__midl >= 501) -midl_pragma warning( disable: 2395) // polymorphic types not supported in the TLB -#endif - -#ifndef DO_NO_IMPORTS -import "unknwn.idl"; -#endif - -[ - uuid(4955DD30-B159-11d0-8FCF-00AA006BCC59), - helpstring("ActiveIMM"), - lcid(0x0000), - version(0.1) -] -library ActiveIMM -{ - importlib("stdole2.tlb"); - - cpp_quote("#include <imm.h>") - - cpp_quote("#if 0") - - typedef WORD LANGID; - - typedef struct - { - LPSTR lpReading; - LPSTR lpWord; - } REGISTERWORDA; - - typedef struct - { - LPWSTR lpReading; - LPWSTR lpWord; - } REGISTERWORDW; - - #define LF_FACESIZE 32 - - typedef struct - { - LONG lfHeight; - LONG lfWidth; - LONG lfEscapement; - LONG lfOrientation; - LONG lfWeight; - BYTE lfItalic; - BYTE lfUnderline; - BYTE lfStrikeOut; - BYTE lfCharSet; - BYTE lfOutPrecision; - BYTE lfClipPrecision; - BYTE lfQuality; - BYTE lfPitchAndFamily; - CHAR lfFaceName[LF_FACESIZE]; - } LOGFONTA; - - typedef struct - { - LONG lfHeight; - LONG lfWidth; - LONG lfEscapement; - LONG lfOrientation; - LONG lfWeight; - BYTE lfItalic; - BYTE lfUnderline; - BYTE lfStrikeOut; - BYTE lfCharSet; - BYTE lfOutPrecision; - BYTE lfClipPrecision; - BYTE lfQuality; - BYTE lfPitchAndFamily; - WCHAR lfFaceName[LF_FACESIZE]; - } LOGFONTW; - - typedef DWORD HIMC; - typedef DWORD HIMCC; - - typedef struct - { - DWORD dwIndex; - DWORD dwStyle; - POINT ptCurrentPos; - RECT rcArea; - } CANDIDATEFORM; - - typedef struct - { - DWORD dwStyle; - POINT ptCurrentPos; - RECT rcArea; - } COMPOSITIONFORM; - - typedef struct - { - DWORD dwSize; - DWORD dwStyle; - DWORD dwCount; - DWORD dwSelection; - DWORD dwPageStart; - DWORD dwPageSize; - DWORD dwOffset[1]; - } CANDIDATELIST; - - #define STYLE_DESCRIPTION_SIZE 32 - - typedef struct - { - DWORD dwStyle; - CHAR szDescription[STYLE_DESCRIPTION_SIZE]; - } STYLEBUFA; - - typedef struct - { - DWORD dwStyle; - WCHAR szDescription[STYLE_DESCRIPTION_SIZE]; - } STYLEBUFW; - - typedef WORD ATOM; - - cpp_quote("#endif") - - cpp_quote("#if (WINVER < 0x040A)") - - #define IMEMENUITEM_STRING_SIZE 80 - - typedef struct - { - UINT cbSize; - UINT fType; - UINT fState; - UINT wID; - HBITMAP hbmpChecked; - HBITMAP hbmpUnchecked; - DWORD dwItemData; - CHAR szString[IMEMENUITEM_STRING_SIZE]; - HBITMAP hbmpItem; - } IMEMENUITEMINFOA; - - typedef struct - { - UINT cbSize; - UINT fType; - UINT fState; - UINT wID; - HBITMAP hbmpChecked; - HBITMAP hbmpUnchecked; - DWORD dwItemData; - WCHAR szString[IMEMENUITEM_STRING_SIZE]; - HBITMAP hbmpItem; - } IMEMENUITEMINFOW; - - cpp_quote("#endif") - - cpp_quote("#ifndef _DDKIMM_H_") - - typedef struct - { - HWND hWnd; - BOOL fOpen; - POINT ptStatusWndPos; - POINT ptSoftKbdPos; - DWORD fdwConversion; - DWORD fdwSentence; - union - { - LOGFONTA A; - LOGFONTW W; - } lfFont; - COMPOSITIONFORM cfCompForm; - CANDIDATEFORM cfCandForm[4]; - HIMCC hCompStr; - HIMCC hCandInfo; - HIMCC hGuideLine; - HIMCC hPrivate; - DWORD dwNumMsgBuf; - HIMCC hMsgBuf; - DWORD fdwInit; - DWORD dwReserve[3]; - } INPUTCONTEXT; - - typedef struct - { - DWORD dwPrivateDataSize; - DWORD fdwProperty; - DWORD fdwConversionCaps; - DWORD fdwSentenceCaps; - DWORD fdwUICaps; - DWORD fdwSCSCaps; - DWORD fdwSelectCaps; - } IMEINFO; - - cpp_quote("#endif") - - [ - object, - uuid(08C03412-F96B-11d0-A475-00AA006BCC59), - pointer_default(unique) - ] - interface IEnumRegisterWordA : IUnknown - { - HRESULT Clone([out] IEnumRegisterWordA **ppEnum); - HRESULT Next([in] ULONG ulCount, [out] REGISTERWORDA *rgRegisterWord, [out] ULONG *pcFetched); - HRESULT Reset(); - HRESULT Skip([in] ULONG ulCount); - }; - - [ - object, - uuid(4955DD31-B159-11d0-8FCF-00AA006BCC59), - pointer_default(unique) - ] - interface IEnumRegisterWordW : IUnknown - { - HRESULT Clone([out] IEnumRegisterWordW **ppEnum); - HRESULT Next([in] ULONG ulCount, [out] REGISTERWORDW *rgRegisterWord, [out] ULONG *pcFetched); - HRESULT Reset(); - HRESULT Skip([in] ULONG ulCount); - }; - - - [ - object, - uuid(09b5eab0-f997-11d1-93d4-0060b067b86e), - pointer_default(unique) - ] - interface IEnumInputContext : IUnknown - { - HRESULT Clone([out] IEnumInputContext **ppEnum); - HRESULT Next([in] ULONG ulCount, [out] HIMC *rgInputContext, [out] ULONG *pcFetched); - HRESULT Reset(); - HRESULT Skip([in] ULONG ulCount); - }; - - - [ - object, - uuid(b3458082-bd00-11d1-939b-0060b067b86e), - pointer_default(unique) - ] - interface IActiveIMMRegistrar : IUnknown - { - HRESULT RegisterIME([in] REFCLSID rclsid, [in] LANGID lgid, [in] LPCWSTR pszIconFile, [in] LPCWSTR pszDesc); - HRESULT UnregisterIME([in] REFCLSID rclsid); - }; - - [ - object, - uuid(b5cf2cfa-8aeb-11d1-9364-0060b067b86e), - pointer_default(unique) - ] - interface IActiveIMMMessagePumpOwner : IUnknown - { - HRESULT Start(); - HRESULT End(); - HRESULT OnTranslateMessage([in] const MSG *pMsg); - HRESULT Pause([out] DWORD *pdwCookie); - HRESULT Resume([in] DWORD dwCookie); - } - - [ - object, - uuid(08c0e040-62d1-11d1-9326-0060b067b86e), - pointer_default(unique) - ] - interface IActiveIMMApp : IUnknown - { - HRESULT AssociateContext([in] HWND hWnd, [in] HIMC hIME, [out] HIMC *phPrev); - HRESULT ConfigureIMEA([in] HKL hKL, [in] HWND hWnd, [in] DWORD dwMode, [in] REGISTERWORDA *pData); - HRESULT ConfigureIMEW([in] HKL hKL, [in] HWND hWnd, [in] DWORD dwMode, [in] REGISTERWORDW *pData); - HRESULT CreateContext([out] HIMC *phIMC); - HRESULT DestroyContext([in] HIMC hIME); - HRESULT EnumRegisterWordA([in] HKL hKL, [in] LPSTR szReading, [in] DWORD dwStyle, [in] LPSTR szRegister, [in] LPVOID pData, [out] IEnumRegisterWordA **pEnum); - HRESULT EnumRegisterWordW([in] HKL hKL, [in] LPWSTR szReading, [in] DWORD dwStyle, [in] LPWSTR szRegister, [in] LPVOID pData, [out] IEnumRegisterWordW **pEnum); - HRESULT EscapeA([in] HKL hKL, [in] HIMC hIMC, [in] UINT uEscape, [in, out] LPVOID pData, [out] LRESULT *plResult); - HRESULT EscapeW([in] HKL hKL, [in] HIMC hIMC, [in] UINT uEscape, [in, out] LPVOID pData, [out] LRESULT *plResult); - HRESULT GetCandidateListA([in] HIMC hIMC, [in] DWORD dwIndex, [in] UINT uBufLen, [out] CANDIDATELIST *pCandList, [out] UINT *puCopied); - HRESULT GetCandidateListW([in] HIMC hIMC, [in] DWORD dwIndex, [in] UINT uBufLen, [out] CANDIDATELIST *pCandList, [out] UINT *puCopied); - HRESULT GetCandidateListCountA([in] HIMC hIMC, [out] DWORD *pdwListSize, [out] DWORD *pdwBufLen); - HRESULT GetCandidateListCountW([in] HIMC hIMC, [out] DWORD *pdwListSize, [out] DWORD *pdwBufLen); - HRESULT GetCandidateWindow([in] HIMC hIMC, [in] DWORD dwIndex, [out] CANDIDATEFORM *pCandidate); - HRESULT GetCompositionFontA([in] HIMC hIMC, [out] LOGFONTA *plf); - HRESULT GetCompositionFontW([in] HIMC hIMC, [out] LOGFONTW *plf); - HRESULT GetCompositionStringA([in] HIMC hIMC, [in] DWORD dwIndex, [in] DWORD dwBufLen, [out] LONG *plCopied, [out] LPVOID pBuf); - HRESULT GetCompositionStringW([in] HIMC hIMC, [in] DWORD dwIndex, [in] DWORD dwBufLen, [out] LONG *plCopied, [out] LPVOID pBuf); - HRESULT GetCompositionWindow([in] HIMC hIMC, [out] COMPOSITIONFORM *pCompForm); - HRESULT GetContext([in] HWND hWnd, [out] HIMC *phIMC); - HRESULT GetConversionListA([in] HKL hKL, [in] HIMC hIMC, [in] LPSTR pSrc, [in] UINT uBufLen, [in] UINT uFlag, [out] CANDIDATELIST *pDst, [out] UINT *puCopied); - HRESULT GetConversionListW([in] HKL hKL, [in] HIMC hIMC, [in] LPWSTR pSrc, [in] UINT uBufLen, [in] UINT uFlag, [out] CANDIDATELIST *pDst, [out] UINT *puCopied); - HRESULT GetConversionStatus([in] HIMC hIMC, [out] DWORD *pfdwConversion, [out] DWORD *pfdwSentence); - HRESULT GetDefaultIMEWnd([in] HWND hWnd, [out] HWND *phDefWnd); - HRESULT GetDescriptionA([in] HKL hKL, [in] UINT uBufLen, [out] LPSTR szDescription, [out] UINT *puCopied); - HRESULT GetDescriptionW([in] HKL hKL, [in] UINT uBufLen, [out] LPWSTR szDescription, [out] UINT *puCopied); - HRESULT GetGuideLineA([in] HIMC hIMC, [in] DWORD dwIndex, [in] DWORD dwBufLen, [out] LPSTR pBuf, [out] DWORD *pdwResult); - HRESULT GetGuideLineW([in] HIMC hIMC, [in] DWORD dwIndex, [in] DWORD dwBufLen, [out] LPWSTR pBuf, [out] DWORD *pdwResult); - HRESULT GetIMEFileNameA([in] HKL hKL, [in] UINT uBufLen, [out] LPSTR szFileName, [out] UINT *puCopied); - HRESULT GetIMEFileNameW([in] HKL hKL, [in] UINT uBufLen, [out] LPWSTR szFileName, [out] UINT *puCopied); - HRESULT GetOpenStatus([in] HIMC hIMC); - HRESULT GetProperty([in] HKL hKL, [in] DWORD fdwIndex, [out] DWORD *pdwProperty); - HRESULT GetRegisterWordStyleA([in] HKL hKL, [in] UINT nItem, [out] STYLEBUFA *pStyleBuf, [out] UINT *puCopied); - HRESULT GetRegisterWordStyleW([in] HKL hKL, [in] UINT nItem, [out] STYLEBUFW *pStyleBuf, [out] UINT *puCopied); - HRESULT GetStatusWindowPos([in] HIMC hIMC, [out] POINT *pptPos); - HRESULT GetVirtualKey([in] HWND hWnd, [out] UINT *puVirtualKey); - HRESULT InstallIMEA([in] LPSTR szIMEFileName, [in] LPSTR szLayoutText, [out] HKL *phKL); - HRESULT InstallIMEW([in] LPWSTR szIMEFileName, [in] LPWSTR szLayoutText, [out] HKL *phKL); - HRESULT IsIME([in] HKL hKL); - HRESULT IsUIMessageA([in] HWND hWndIME, [in] UINT msg, [in] WPARAM wParam, [in] LPARAM lParam); - HRESULT IsUIMessageW([in] HWND hWndIME, [in] UINT msg, [in] WPARAM wParam, [in] LPARAM lParam); - HRESULT NotifyIME([in] HIMC hIMC, [in] DWORD dwAction, [in] DWORD dwIndex, [in] DWORD dwValue); - HRESULT RegisterWordA([in] HKL hKL, [in] LPSTR szReading, [in] DWORD dwStyle, [in] LPSTR szRegister); - HRESULT RegisterWordW([in] HKL hKL, [in] LPWSTR szReading, [in] DWORD dwStyle, [in] LPWSTR szRegister); - HRESULT ReleaseContext([in] HWND hWnd, [in] HIMC hIMC); - HRESULT SetCandidateWindow([in] HIMC hIMC, [in] CANDIDATEFORM *pCandidate); - HRESULT SetCompositionFontA([in] HIMC hIMC, [in] LOGFONTA *plf); - HRESULT SetCompositionFontW([in] HIMC hIMC, [in] LOGFONTW *plf); - HRESULT SetCompositionStringA([in] HIMC hIMC, [in] DWORD dwIndex, [in] LPVOID pComp, [in] DWORD dwCompLen, [in] LPVOID pRead, [in] DWORD dwReadLen); - HRESULT SetCompositionStringW([in] HIMC hIMC, [in] DWORD dwIndex, [in] LPVOID pComp, [in] DWORD dwCompLen, [in] LPVOID pRead, [in] DWORD dwReadLen); - HRESULT SetCompositionWindow([in] HIMC hIMC, [in] COMPOSITIONFORM *pCompForm); - HRESULT SetConversionStatus([in] HIMC hIMC, [in] DWORD fdwConversion, [in] DWORD fdwSentence); - HRESULT SetOpenStatus([in] HIMC hIMC, [in] BOOL fOpen); - HRESULT SetStatusWindowPos([in] HIMC hIMC, [in] POINT *pptPos); - HRESULT SimulateHotKey([in] HWND hWnd, [in] DWORD dwHotKeyID); - HRESULT UnregisterWordA([in] HKL hKL, [in] LPSTR szReading, [in] DWORD dwStyle, [in] LPSTR szUnregister); - HRESULT UnregisterWordW([in] HKL hKL, [in] LPWSTR szReading, [in] DWORD dwStyle, [in] LPWSTR szUnregister); - - HRESULT Activate([in] BOOL fRestoreLayout); - HRESULT Deactivate(); - - HRESULT OnDefWindowProc([in] HWND hWnd, [in] UINT Msg, [in] WPARAM wParam, [in] LPARAM lParam, [out] LRESULT *plResult); - - HRESULT FilterClientWindows([in] ATOM *aaClassList, [in] UINT uSize); - - HRESULT GetCodePageA([in] HKL hKL, [out] UINT *uCodePage); - HRESULT GetLangId([in] HKL hKL, [out] LANGID *plid); - - // win98/nt5 apis - HRESULT AssociateContextEx([in] HWND hWnd, [in] HIMC hIMC, [in] DWORD dwFlags); - HRESULT DisableIME([in] DWORD idThread); - HRESULT GetImeMenuItemsA([in] HIMC hIMC, [in] DWORD dwFlags, [in] DWORD dwType, [in] IMEMENUITEMINFOA *pImeParentMenu, [out] IMEMENUITEMINFOA *pImeMenu, [in] DWORD dwSize, [out] DWORD *pdwResult); - HRESULT GetImeMenuItemsW([in] HIMC hIMC, [in] DWORD dwFlags, [in] DWORD dwType, [in] IMEMENUITEMINFOW *pImeParentMenu, [out] IMEMENUITEMINFOW *pImeMenu, [in] DWORD dwSize, [out] DWORD *pdwResult); - HRESULT EnumInputContext([in] DWORD idThread, [out] IEnumInputContext **ppEnum); - }; - - [ - object, - uuid(08C03411-F96B-11d0-A475-00AA006BCC59), - pointer_default(unique) - ] - interface IActiveIMMIME : IUnknown - { - HRESULT AssociateContext([in] HWND hWnd, [in] HIMC hIME, [out] HIMC *phPrev); - HRESULT ConfigureIMEA([in] HKL hKL, [in] HWND hWnd, [in] DWORD dwMode, [in] REGISTERWORDA *pData); - HRESULT ConfigureIMEW([in] HKL hKL, [in] HWND hWnd, [in] DWORD dwMode, [in] REGISTERWORDW *pData); - HRESULT CreateContext([out] HIMC *phIMC); - HRESULT DestroyContext([in] HIMC hIME); - HRESULT EnumRegisterWordA([in] HKL hKL, [in] LPSTR szReading, [in] DWORD dwStyle, [in] LPSTR szRegister, [in] LPVOID pData, [out] IEnumRegisterWordA **pEnum); - HRESULT EnumRegisterWordW([in] HKL hKL, [in] LPWSTR szReading, [in] DWORD dwStyle, [in] LPWSTR szRegister, [in] LPVOID pData, [out] IEnumRegisterWordW **pEnum); - HRESULT EscapeA([in] HKL hKL, [in] HIMC hIMC, [in] UINT uEscape, [in, out] LPVOID pData, [out] LRESULT *plResult); - HRESULT EscapeW([in] HKL hKL, [in] HIMC hIMC, [in] UINT uEscape, [in, out] LPVOID pData, [out] LRESULT *plResult); - HRESULT GetCandidateListA([in] HIMC hIMC, [in] DWORD dwIndex, [in] UINT uBufLen, [out] CANDIDATELIST *pCandList, [out] UINT *puCopied); - HRESULT GetCandidateListW([in] HIMC hIMC, [in] DWORD dwIndex, [in] UINT uBufLen, [out] CANDIDATELIST *pCandList, [out] UINT *puCopied); - HRESULT GetCandidateListCountA([in] HIMC hIMC, [out] DWORD *pdwListSize, [out] DWORD *pdwBufLen); - HRESULT GetCandidateListCountW([in] HIMC hIMC, [out] DWORD *pdwListSize, [out] DWORD *pdwBufLen); - HRESULT GetCandidateWindow([in] HIMC hIMC, [in] DWORD dwIndex, [out] CANDIDATEFORM *pCandidate); - HRESULT GetCompositionFontA([in] HIMC hIMC, [out] LOGFONTA *plf); - HRESULT GetCompositionFontW([in] HIMC hIMC, [out] LOGFONTW *plf); - HRESULT GetCompositionStringA([in] HIMC hIMC, [in] DWORD dwIndex, [in] DWORD dwBufLen, [out] LONG *plCopied, [out] LPVOID pBuf); - HRESULT GetCompositionStringW([in] HIMC hIMC, [in] DWORD dwIndex, [in] DWORD dwBufLen, [out] LONG *plCopied, [out] LPVOID pBuf); - HRESULT GetCompositionWindow([in] HIMC hIMC, [out] COMPOSITIONFORM *pCompForm); - HRESULT GetContext([in] HWND hWnd, [out] HIMC *phIMC); - HRESULT GetConversionListA([in] HKL hKL, [in] HIMC hIMC, [in] LPSTR pSrc, [in] UINT uBufLen, [in] UINT uFlag, [out] CANDIDATELIST *pDst, [out] UINT *puCopied); - HRESULT GetConversionListW([in] HKL hKL, [in] HIMC hIMC, [in] LPWSTR pSrc, [in] UINT uBufLen, [in] UINT uFlag, [out] CANDIDATELIST *pDst, [out] UINT *puCopied); - HRESULT GetConversionStatus([in] HIMC hIMC, [out] DWORD *pfdwConversion, [out] DWORD *pfdwSentence); - HRESULT GetDefaultIMEWnd([in] HWND hWnd, [out] HWND *phDefWnd); - HRESULT GetDescriptionA([in] HKL hKL, [in] UINT uBufLen, [out] LPSTR szDescription, [out] UINT *puCopied); - HRESULT GetDescriptionW([in] HKL hKL, [in] UINT uBufLen, [out] LPWSTR szDescription, [out] UINT *puCopied); - HRESULT GetGuideLineA([in] HIMC hIMC, [in] DWORD dwIndex, [in] DWORD dwBufLen, [out] LPSTR pBuf, [out] DWORD *pdwResult); - HRESULT GetGuideLineW([in] HIMC hIMC, [in] DWORD dwIndex, [in] DWORD dwBufLen, [out] LPWSTR pBuf, [out] DWORD *pdwResult); - HRESULT GetIMEFileNameA([in] HKL hKL, [in] UINT uBufLen, [out] LPSTR szFileName, [out] UINT *puCopied); - HRESULT GetIMEFileNameW([in] HKL hKL, [in] UINT uBufLen, [out] LPWSTR szFileName, [out] UINT *puCopied); - HRESULT GetOpenStatus([in] HIMC hIMC); - HRESULT GetProperty([in] HKL hKL, [in] DWORD fdwIndex, [out] DWORD *pdwProperty); - HRESULT GetRegisterWordStyleA([in] HKL hKL, [in] UINT nItem, [out] STYLEBUFA *pStyleBuf, [out] UINT *puCopied); - HRESULT GetRegisterWordStyleW([in] HKL hKL, [in] UINT nItem, [out] STYLEBUFW *pStyleBuf, [out] UINT *puCopied); - HRESULT GetStatusWindowPos([in] HIMC hIMC, [out] POINT *pptPos); - HRESULT GetVirtualKey([in] HWND hWnd, [out] UINT *puVirtualKey); - HRESULT InstallIMEA([in] LPSTR szIMEFileName, [in] LPSTR szLayoutText, [out] HKL *phKL); - HRESULT InstallIMEW([in] LPWSTR szIMEFileName, [in] LPWSTR szLayoutText, [out] HKL *phKL); - HRESULT IsIME([in] HKL hKL); - HRESULT IsUIMessageA([in] HWND hWndIME, [in] UINT msg, [in] WPARAM wParam, [in] LPARAM lParam); - HRESULT IsUIMessageW([in] HWND hWndIME, [in] UINT msg, [in] WPARAM wParam, [in] LPARAM lParam); - HRESULT NotifyIME([in] HIMC hIMC, [in] DWORD dwAction, [in] DWORD dwIndex, [in] DWORD dwValue); - HRESULT RegisterWordA([in] HKL hKL, [in] LPSTR szReading, [in] DWORD dwStyle, [in] LPSTR szRegister); - HRESULT RegisterWordW([in] HKL hKL, [in] LPWSTR szReading, [in] DWORD dwStyle, [in] LPWSTR szRegister); - HRESULT ReleaseContext([in] HWND hWnd, [in] HIMC hIMC); - HRESULT SetCandidateWindow([in] HIMC hIMC, [in] CANDIDATEFORM *pCandidate); - HRESULT SetCompositionFontA([in] HIMC hIMC, [in] LOGFONTA *plf); - HRESULT SetCompositionFontW([in] HIMC hIMC, [in] LOGFONTW *plf); - HRESULT SetCompositionStringA([in] HIMC hIMC, [in] DWORD dwIndex, [in] LPVOID pComp, [in] DWORD dwCompLen, [in] LPVOID pRead, [in] DWORD dwReadLen); - HRESULT SetCompositionStringW([in] HIMC hIMC, [in] DWORD dwIndex, [in] LPVOID pComp, [in] DWORD dwCompLen, [in] LPVOID pRead, [in] DWORD dwReadLen); - HRESULT SetCompositionWindow([in] HIMC hIMC, [in] COMPOSITIONFORM *pCompForm); - HRESULT SetConversionStatus([in] HIMC hIMC, [in] DWORD fdwConversion, [in] DWORD fdwSentence); - HRESULT SetOpenStatus([in] HIMC hIMC, [in] BOOL fOpen); - HRESULT SetStatusWindowPos([in] HIMC hIMC, [in] POINT *pptPos); - HRESULT SimulateHotKey([in] HWND hWnd, [in] DWORD dwHotKeyID); - HRESULT UnregisterWordA([in] HKL hKL, [in] LPSTR szReading, [in] DWORD dwStyle, [in] LPSTR szUnregister); - HRESULT UnregisterWordW([in] HKL hKL, [in] LPWSTR szReading, [in] DWORD dwStyle, [in] LPWSTR szUnregister); - - // ime helper methods - HRESULT GenerateMessage([in] HIMC hIMC); - - // HIMC and HIMCC management api's - HRESULT LockIMC([in] HIMC hIMC, [out] INPUTCONTEXT **ppIMC); - HRESULT UnlockIMC([in] HIMC hIMC); - HRESULT GetIMCLockCount([in] HIMC hIMC, [out] DWORD *pdwLockCount); - HRESULT CreateIMCC([in] DWORD dwSize, [out] HIMCC *phIMCC); - HRESULT DestroyIMCC([in] HIMCC hIMCC); - HRESULT LockIMCC([in] HIMCC hIMCC, [out] void **ppv); - HRESULT UnlockIMCC([in] HIMCC hIMCC); - HRESULT ReSizeIMCC([in] HIMCC hIMCC, [in] DWORD dwSize, [out] HIMCC *phIMCC); - HRESULT GetIMCCSize([in] HIMCC hIMCC, [out] DWORD *pdwSize); - HRESULT GetIMCCLockCount([in] HIMCC hIMCC, [out] DWORD *pdwLockCount); - - // hot key manipulation api's - HRESULT GetHotKey([in] DWORD dwHotKeyID, [out] UINT *puModifiers, [out] UINT *puVKey, [out] HKL *phKL); - HRESULT SetHotKey([in] DWORD dwHotKeyID, [in] UINT uModifiers, [in] UINT uVKey, [in] HKL hKL); - - // soft keyboard api's - HRESULT CreateSoftKeyboard([in] UINT uType, [in] HWND hOwner, [in] int x, [in] int y, [out] HWND *phSoftKbdWnd); - HRESULT DestroySoftKeyboard([in] HWND hSoftKbdWnd); - HRESULT ShowSoftKeyboard([in] HWND hSoftKbdWnd, [in] int nCmdShow); - - HRESULT GetCodePageA([in] HKL hKL, [out] UINT *uCodePage); - HRESULT GetLangId([in] HKL hKL, [out] LANGID *plid); - - HRESULT KeybdEvent([in] LANGID lgidIME, [in] BYTE bVk, [in] BYTE bScan, [in] DWORD dwFlags, [in] DWORD dwExtraInfo); - - HRESULT LockModal(); - HRESULT UnlockModal(); - - // win98/nt5 apis - HRESULT AssociateContextEx([in] HWND hWnd, [in] HIMC hIMC, [in] DWORD dwFlags); - HRESULT DisableIME([in] DWORD idThread); - HRESULT GetImeMenuItemsA([in] HIMC hIMC, [in] DWORD dwFlags, [in] DWORD dwType, [in] IMEMENUITEMINFOA *pImeParentMenu, [out] IMEMENUITEMINFOA *pImeMenu, [in] DWORD dwSize, [out] DWORD *pdwResult); - HRESULT GetImeMenuItemsW([in] HIMC hIMC, [in] DWORD dwFlags, [in] DWORD dwType, [in] IMEMENUITEMINFOW *pImeParentMenu, [out] IMEMENUITEMINFOW *pImeMenu, [in] DWORD dwSize, [out] DWORD *pdwResult); - HRESULT EnumInputContext([in] DWORD idThread, [out] IEnumInputContext **ppEnum); - HRESULT RequestMessageA([in] HIMC hIMC, [in] WPARAM wParam, [in] LPARAM lParam, [out] LRESULT *plResult); - HRESULT RequestMessageW([in] HIMC hIMC, [in] WPARAM wParam, [in] LPARAM lParam, [out] LRESULT *plResult); - - HRESULT SendIMCA([in] HWND hWnd, [in] UINT uMsg, [in] WPARAM wParam, [in] LPARAM lParam, [out] LRESULT *plResult); - HRESULT SendIMCW([in] HWND hWnd, [in] UINT uMsg, [in] WPARAM wParam, [in] LPARAM lParam, [out] LRESULT *plResult); - - HRESULT IsSleeping(); - }; - - [ - object, - uuid(6FE20962-D077-11d0-8FE7-00AA006BCC59), - pointer_default(unique) - ] - interface IActiveIME : IUnknown - { - HRESULT Inquire([in] DWORD dwSystemInfoFlags, [out] IMEINFO *pIMEInfo, [out] LPWSTR szWndClass, [out] DWORD *pdwPrivate); - HRESULT ConversionList([in] HIMC hIMC, [in] LPWSTR szSource, [in] UINT uFlag, [in] UINT uBufLen, [out] CANDIDATELIST *pDest, [out] UINT *puCopied); - HRESULT Configure([in] HKL hKL, [in] HWND hWnd, [in] DWORD dwMode, [in] REGISTERWORDW *pRegisterWord); - HRESULT Destroy([in] UINT uReserved); - HRESULT Escape([in] HIMC hIMC, [in] UINT uEscape, [in, out] void *pData, [out] LRESULT *plResult); - HRESULT SetActiveContext([in] HIMC hIMC, [in] BOOL fFlag); - HRESULT ProcessKey([in] HIMC hIMC, [in] UINT uVirKey, [in] DWORD lParam, [in] BYTE *pbKeyState); - HRESULT Notify([in] HIMC hIMC, [in] DWORD dwAction, [in] DWORD dwIndex, [in] DWORD dwValue); - HRESULT Select([in] HIMC hIMC, [in] BOOL fSelect); - HRESULT SetCompositionString([in] HIMC hIMC, [in] DWORD dwIndex, [in] void *pComp, [in] DWORD dwCompLen, [in] void *pRead, [in] DWORD dwReadLen); - HRESULT ToAsciiEx([in] UINT uVirKey, [in] UINT uScanCode, [in] BYTE *pbKeyState, [in] UINT fuState, [in] HIMC hIMC, [out] DWORD *pdwTransBuf, [out] UINT *puSize); - HRESULT RegisterWord([in] LPWSTR szReading, [in] DWORD dwStyle, [in] LPWSTR szString); - HRESULT UnregisterWord([in] LPWSTR szReading, [in] DWORD dwStyle, [in] LPWSTR szString); - HRESULT GetRegisterWordStyle([in] UINT nItem, [out] STYLEBUFW *pStyleBuf, [out] UINT *puBufSize); - HRESULT EnumRegisterWord([in] LPWSTR szReading, [in] DWORD dwStyle, [in] LPWSTR szRegister, [in] LPVOID pData, [out] IEnumRegisterWordW **ppEnum); - HRESULT GetCodePageA([out] UINT *uCodePage); - HRESULT GetLangId([out] LANGID *plid); - }; - - [ - object, - uuid(e1c4bf0e-2d53-11d2-93e1-0060b067b86e), - pointer_default(unique) - ] - interface IActiveIME2 : IActiveIME - { - HRESULT Sleep(); - HRESULT Unsleep([in] BOOL fDead); - }; - - [ - uuid(4955DD33-B159-11d0-8FCF-00AA006BCC59), - ] - coclass CActiveIMM - { - [default] interface IActiveIMMApp; - interface IActiveIMMIME; - interface IActiveIMMRegistrar; - interface IActiveIMMMessagePumpOwner; - }; -} diff --git a/src/glbl_ime.cpp b/src/glbl_ime.cpp deleted file mode 100644 index 6fd84ecc42..0000000000 --- a/src/glbl_ime.cpp +++ /dev/null @@ -1,256 +0,0 @@ -/* vi:set ts=8 sts=4 sw=4 noet: - * - * VIM - Vi IMproved by Bram Moolenaar - * - * Do ":help uganda" in Vim to read copying and usage conditions. - * Do ":help credits" in Vim to see a list of people who contributed. - */ - -/* - * DESCRIPTION: - * This module produces Global IME for Vim, on Windows with Internet - * Explorer 5.01 or higher. You need three files "dimm.idl", "dimm.h", and - * "dimm_i.c" when compile this module at your self. "dimm.h", and - * "dimm_i.c" are generated from "dimm.idl" by using MIDL.EXE as like - * "if_ole.h". You can get "dimm.idl" in MSDN web site. I got it below - * URL. - * - * WHAT IS THE GLOBAL IME?: - * Global IME makes capability input Chinese, Japanese, and Korean text into - * Vim buffer on any language version of Windows 98, Windows 95, and Windows - * NT 4.0. See below URL for detail of Global IME. You can also find - * various language version of Global IME at same place. - * - * RUNTIME REQUIREMENTS: - * - Internet Explorer 5.01 or higher. - * - Global IME (with language pack?). - * - Of course Vim for Windows. - * - * URLS: - * - Where you can probably get "dimm.idl". - * http://msdn.microsoft.com/downloads/samples/internet/libraries/ie5_lib/sample.asp - * - Global IME detailed information. - * http://www.microsoft.com/windows/ie/features/ime.asp - */ - -#ifdef GLOBAL_IME - -#define WIN32_LEAN_AND_MEAN -#include <windows.h> -#include <objbase.h> -extern "C" { -#include "vim.h" -} -#include "dimm.h" -#include "glbl_ime.h" - -static IActiveIMMApp *pIApp = NULL; -static IActiveIMMMessagePumpOwner *pIMsg = NULL; -static HWND s_hWnd = NULL; -static BOOL s_bStatus = FALSE; /* for evacuate */ - -/* - * Initialize Global IME. - * "atom" must be return value of RegisterClass(Ex). - */ - void -global_ime_init(ATOM atom, HWND hWnd) -{ - IUnknown *pI; - HRESULT hr; - - if (pIApp != NULL || pIMsg != NULL) - return; - OleInitialize(NULL); - - /* - * Get interface IUnknown - */ - hr = CoCreateInstance(CLSID_CActiveIMM, NULL, CLSCTX_SERVER, - IID_IUnknown, (void**)&pI); - if (FAILED(hr) || !pI) - return; - - /* - * Get interface IActiveIMMApp - */ - hr = pI->QueryInterface(IID_IActiveIMMApp, (void**)&pIApp); - if (FAILED(hr)) - pIApp = NULL; - - /* - * Get interface IActiveIMMMessagePumpOwner - */ - hr = pI->QueryInterface(IID_IActiveIMMMessagePumpOwner, (void**)&pIMsg); - if (FAILED(hr)) - pIMsg = NULL; - - if (pIApp != NULL) - { - pIApp->Activate(TRUE); - pIApp->FilterClientWindows(&atom, 1); - } - if (pIMsg != NULL) - pIMsg->Start(); - - pI->Release(); - s_hWnd = hWnd; -} - -/* - * Reset and clear Global IME. - */ - void -global_ime_end() -{ - if (pIApp != NULL) - { - IActiveIMMApp *p = pIApp; - - pIApp = NULL; - p->FilterClientWindows(NULL, 0); - p->Deactivate(); - p->Release(); - } - if (pIMsg != NULL) - { - IActiveIMMMessagePumpOwner *p = pIMsg; - - pIMsg = NULL; - p->End(); - p->Release(); - } - OleUninitialize(); -} - -/* - * Replacement for DefWindowProc(). - */ - LRESULT WINAPI -global_ime_DefWindowProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) -{ - LRESULT lResult; - - if (pIApp == NULL || pIApp->OnDefWindowProc(hWnd, Msg, - wParam, lParam, &lResult) != S_OK) - lResult = DefWindowProcW(hWnd, Msg, wParam, lParam); - return lResult; -} - -/* - * Replace with TranslateMessage() - */ - BOOL WINAPI -global_ime_TranslateMessage(CONST MSG *lpMsg) -{ - if (pIMsg == NULL || pIMsg->OnTranslateMessage(lpMsg) == S_FALSE) - return TranslateMessage(lpMsg); - return TRUE; -} - -/* - * Set position of IME composition window. - * - * You have to call this before starting composition. If once composition - * started, this can take no effect until that composition have finished. So - * you should handle WM_IME_STARTCOMPOSITION and call this function. - */ - void WINAPI -global_ime_set_position(POINT *pPoint) -{ - HIMC hImc = NULL; - - if (pIApp == NULL || pPoint == NULL) - return; - - if (SUCCEEDED(pIApp->GetContext(s_hWnd, &hImc))) - { - COMPOSITIONFORM CompForm; - - CompForm.dwStyle = CFS_POINT; - CompForm.ptCurrentPos = *pPoint; - pIApp->SetCompositionWindow(hImc, &CompForm); - pIApp->ReleaseContext(s_hWnd, hImc); - } -} - -/* - * Set font to Global IME - */ -/* GIME_TEST */ - void WINAPI -global_ime_set_font(LOGFONT *pFont) -{ - HIMC hImc = NULL; - - if (pIApp == NULL || pFont == NULL) - return; - - if (SUCCEEDED(pIApp->GetContext(s_hWnd, &hImc))) - { - pIApp->SetCompositionFontA(hImc, pFont); - pIApp->ReleaseContext(s_hWnd, hImc); - } -} - -#if 0 -/* - * for IME control. Save current status of IME, and set force new-status to - * English (turn off). - */ - void WINAPI -global_ime_status_evacuate() -{ - HIMC hImc; - - if (pIApp != NULL && SUCCEEDED(pIApp->GetContext(s_hWnd, &hImc))) - { - s_bStatus = (pIApp->GetOpenStatus(hImc) == 0) ? TRUE : FALSE; - pIApp->SetOpenStatus(hImc, FALSE); - pIApp->ReleaseContext(s_hWnd, hImc); - } -} - -/* - * for IME control. Change IME status to last saved one. - */ - void WINAPI -global_ime_status_restore() -{ - HIMC hImc; - - if (pIApp != NULL && SUCCEEDED(pIApp->GetContext(s_hWnd, &hImc))) - { - pIApp->SetOpenStatus(hImc, s_bStatus); - pIApp->ReleaseContext(s_hWnd, hImc); - } -} -#endif - - void WINAPI -global_ime_set_status(int status) -{ - HIMC hImc; - - if (pIApp != NULL && SUCCEEDED(pIApp->GetContext(s_hWnd, &hImc))) - { - pIApp->SetOpenStatus(hImc, status ? TRUE : FALSE); - pIApp->ReleaseContext(s_hWnd, hImc); - } -} - - int WINAPI -global_ime_get_status() -{ - int status = 0; - HIMC hImc; - - if (pIApp != NULL && SUCCEEDED(pIApp->GetContext(s_hWnd, &hImc))) - { - status = pIApp->GetOpenStatus(hImc) ? 1 : 0; - pIApp->ReleaseContext(s_hWnd, hImc); - } - return status; -} - -#endif /* GLOBAL_IME */ diff --git a/src/glbl_ime.h b/src/glbl_ime.h deleted file mode 100644 index bce9c73a59..0000000000 --- a/src/glbl_ime.h +++ /dev/null @@ -1,33 +0,0 @@ -/* vi:set ts=8 sts=4 sw=4 noet: - * - * VIM - Vi IMproved by Bram Moolenaar - * - * Do ":help uganda" in Vim to read copying and usage conditions. - * Do ":help credits" in Vim to see a list of people who contributed. - */ - -#ifdef GLOBAL_IME -# ifndef _INC_GLOBAL_IME -# define _INC_GLOBAL_IME - -# ifdef __cplusplus -extern "C" { -# endif - void global_ime_init(ATOM, HWND); - void global_ime_end(void); - LRESULT WINAPI global_ime_DefWindowProc(HWND, UINT, WPARAM, LPARAM); - BOOL WINAPI global_ime_TranslateMessage(CONST MSG *); - void WINAPI global_ime_set_position(POINT*); - void WINAPI global_ime_set_font(LOGFONT*); -# if 0 - void WINAPI global_ime_status_evacuate(void); - void WINAPI global_ime_status_restore(void); -# endif - void WINAPI global_ime_set_status(int status); - int WINAPI global_ime_get_status(void); -# ifdef __cplusplus -} -# endif - -# endif // _INC_GLOBAL_IME -#endif // GLOBAL_IME diff --git a/src/gui_w32.c b/src/gui_w32.c index 4f047f15a5..cbbae9edd6 100644 --- a/src/gui_w32.c +++ b/src/gui_w32.c @@ -197,10 +197,6 @@ gui_mch_set_rendering_options(char_u *s) # endif # include <windowsx.h> -# ifdef GLOBAL_IME -# include "glbl_ime.h" -# endif - #endif // PROTO #ifdef FEAT_MENU @@ -358,12 +354,6 @@ static int s_need_activate = FALSE; // problems (e.g., while ":s" is working). static int allow_scrollbar = FALSE; -#ifdef GLOBAL_IME -# define MyTranslateMessage(x) global_ime_TranslateMessage(x) -#else -# define MyTranslateMessage(x) TranslateMessage(x) -#endif - #ifndef _DPI_AWARENESS_CONTEXTS_ typedef HANDLE DPI_AWARENESS_CONTEXT; @@ -449,9 +439,6 @@ directx_binddc(void) } #endif -// use of WindowProc depends on Global IME -static LRESULT WINAPI MyWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam); - extern int current_font_height; // this is in os_mswin.c static struct |