{-# LINE 1 "Graphics\\Win32\\Window\\IMM.hsc" #-}{-# LANGUAGE CPP #-}{- | Module : Graphics.Win32.Window.IMM Copyright : 2013 shelarcy License : BSD-style Maintainer : shelarcy@gmail.com Stability : Provisional Portability : Non-portable (Win32 API) An FFI binding to the IMM (Input Method Manager) part of the Win32 API. -}moduleGraphics.Win32.Window.IMMwhereimportForeign.Marshal.Alloc(alloca)importForeign.Marshal.Utils(fromBool)importForeign.Ptr(Ptr)importForeign.Storable(peek)importGraphics.Win32.GDI.Types(HWND)importGraphics.Win32.Key(VKey)importSystem.Win32.Types(UINT,DWORD,LPDWORD,BOOL,failIfFalse_) #include "windows_cconv.h" typeHIMC=Ptr()foreignimportWINDOWS_CCONV"windows.h ImmGetContext"immGetContext::HWND->IOHIMCforeignimportWINDOWS_CCONV"windows.h ImmGetOpenStatus"immGetOpenStatus::HIMC->IOBOOLimmSetOpenStatus::HIMC->BOOL->IO()immSetOpenStatusimcflg=failIfFalse_(unwords["ImmSetOpenStatus",showimc,showflg])$c_ImmSetOpenStatusimc(fromBoolflg)foreignimportWINDOWS_CCONV"windows.h ImmSetOpenStatus"c_ImmSetOpenStatus::HIMC->UINT->IOBOOLdataIMEMode=IMEModeDWORDDWORDimmGetConversionStatus::HIMC->IOIMEModeimmGetConversionStatusimc=alloca$\lpConv->alloca$\lpStnc->dofailIfFalse_(unwords["ImmGetConversionStatus",showimc,showlpConv,showlpStnc])$c_ImmGetConversionStatusimclpConvlpStncconv<-peeklpConvstnc<-peeklpStncreturn$IMEModeconvstncforeignimportWINDOWS_CCONV"windows.h ImmGetConversionStatus"c_ImmGetConversionStatus::HIMC->LPDWORD->LPDWORD->IOBOOLimmSetConversionStatus::HIMC->IMEMode->IO()immSetConversionStatusimc(IMEModeconvstnc)=failIfFalse_(unwords["ImmSetConversionStatus",showimc,showconv,showstnc])$c_ImmSetConversionStatusimcconvstncforeignimportWINDOWS_CCONV"windows.h ImmSetConversionStatus"c_ImmSetConversionStatus::HIMC->DWORD->DWORD->IOBOOL-- iMN_SETCONVERSIONSTATUS = #const IMN_SETCONVERSIONSTATUS iME_CMODE_ALPHANUMERIC::DWORDiME_CMODE_ALPHANUMERIC=0iME_CMODE_CHARCODE::DWORDiME_CMODE_CHARCODE=32iME_CMODE_EUDC::DWORDiME_CMODE_EUDC=512iME_CMODE_FIXED::DWORDiME_CMODE_FIXED=2048iME_CMODE_FULLSHAPE::DWORDiME_CMODE_FULLSHAPE=8iME_CMODE_HANJACONVERT::DWORDiME_CMODE_HANJACONVERT=64iME_CMODE_KATAKANA::DWORDiME_CMODE_KATAKANA=2iME_CMODE_NATIVE::DWORDiME_CMODE_NATIVE=1iME_CMODE_NOCONVERSION::DWORDiME_CMODE_NOCONVERSION=256iME_CMODE_ROMAN::DWORDiME_CMODE_ROMAN=16iME_CMODE_SOFTKBD::DWORDiME_CMODE_SOFTKBD=128iME_CMODE_SYMBOL::DWORDiME_CMODE_SYMBOL=1024{-# LINE 81 "Graphics\\Win32\\Window\\IMM.hsc" #-}iME_SMODE_AUTOMATIC::DWORDiME_SMODE_AUTOMATIC=4iME_SMODE_NONE::DWORDiME_SMODE_NONE=0iME_SMODE_PHRASEPREDICT::DWORDiME_SMODE_PHRASEPREDICT=8iME_SMODE_PLAURALCLAUSE::DWORDiME_SMODE_PLAURALCLAUSE=1iME_SMODE_SINGLECONVERT::DWORDiME_SMODE_SINGLECONVERT=2{-# LINE 89 "Graphics\\Win32\\Window\\IMM.hsc" #-}{- , iME_SMODE_CONVERSATION = IME_SMODE_CONVERSATION -}immReleaseContext::HWND->HIMC->IO()immReleaseContextwndimc=failIfFalse_(unwords["ImmSetOpenStatus",showwnd,showimc])$c_ImmReleaseContextwndimcforeignimportWINDOWS_CCONV"windows.h ImmReleaseContext"c_ImmReleaseContext::HWND->HIMC->IOBOOLforeignimportWINDOWS_CCONV"windows.h ImmGetVirtualKey"immGetVirtualKey::HWND->IOVKeyimmSimulateHotKey::HWND->DWORD->IO()immSimulateHotKeyhwdhkey=failIfFalse_(unwords["ImmSimulateHotKey",showhwd,showhkey])$c_ImmSimulateHotKeyhwdhkeyforeignimportWINDOWS_CCONV"windows.h ImmSimulateHotKey"c_ImmSimulateHotKey::HWND->DWORD->IOBOOL