IMEの状態を設定する(IME On/Off)

VisualBasic6用
IMEの状態を設定する(IME On/Off)

Declare Function ImmSetOpenStatus  Lib "imm32.dll" (ByVal himc As Long, ByVal b As Long) As Long
Declare Function ImmGetContext     Lib "imm32.dll" (ByVal hWnd As Long) As Long
Declare Function ImmReleaseContext Lib "imm32.dll" (ByVal hWnd As Long, ByVal himc As Long) As Long
' IMEの状態を設定する(IME On/Off)
'
' lngHWnd : IMEをOn/Offしたい Windowの ウィンドウハンドル
' bolOn   : True - IME ON  / False - IME Off
'
Sub IMEOn(lngHWnd As Long, bolOn As Boolean)
    Dim lngAPIReVal As Long

    'IMEの状態をOnに
    Dim lngIMEHandle As Long
    lngIMEHandle = ImmGetContext(lngHWnd)
    If (bolOn = True) Then
        lngAPIReVal = ImmSetOpenStatus(lngIMEHandle, 1)
    Else
        lngAPIReVal = ImmSetOpenStatus(lngIMEHandle, 0)
    End If
    lngAPIReVal = ImmReleaseContext(lngHWnd, lngIMEHandle)
End Sub