' ########################################################################################
' Microsoft Windows
' File: Dimm.inc
' Library name: ActiveIMM
' Version: 0.1, Locale ID = 0
' Library GUID: {4955DD30-B159-11D0-8FCF-00AA006BCC59}
' Contents: ActiveIMM
' Copyright (c) 2011 Jos? Roca
' Portions Copyright (c) Microsoft Corporation.
' All Rights Reserved.
' THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
' EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
' MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
' ########################################################################################
#IF NOT %DEF(PBX_Dimm_PBI)
#DEFINE PBX_Dimm_PBI
%EQUATE `DIMM_INC = 1
'/* header files for imported files */
#INCLUDE ONCE "Legacy/COM/Unknwn.inc"
'//--------------------------------------------------------------------------
'// IActiveIMM Interfaces.
#INCLUDE ONCE "Legacy/System/Imm.inc"
'typedef WORD LANGID;
'typedef DWORD HIMC;
'typedef DWORD HIMCC;
'typedef WORD ATOM;
' // Size = 82 bytes
UNION INPUTCONTEXT_UNION DWORD
 A AS LOGFONTA
 W AS LOGFONTW
END UNION
' // Size = 320 bytes
TYPE INPUTCONTEXT DWORD
 hWnd AS DWORD ' HWND hWnd
 fOpen AS LONG ' BOOL fOpen
 ptStatusWndPos AS POINT ' POINT ptStatusWndPos
 ptSoftKbdPos AS POINT ' POINT ptSoftKbdPos
 fdwConversion AS DWORD ' DWORD fdwConversion
 fdwSentence AS DWORD ' DWORD fdwSentence
 lfFont AS INPUTCONTEXT_UNION
 cfCompForm AS COMPOSITIONFORM ' COMPOSITIONFORM cfCompForm
 cfCandForm(3) AS CANDIDATEFORM ' CANDIDATEFORM cfCandForm[ 4 ]
 hCompStr AS DWORD ' HIMCC hCompStr
 hCandInfo AS DWORD ' HIMCC hCandInfo
 hGuideLine AS DWORD ' HIMCC hGuideLine
 hPrivate AS DWORD ' HIMCC hPrivate
 dwNumMsgBuf AS DWORD ' DWORD dwNumMsgBuf
 hMsgBuf AS DWORD ' HIMCC hMsgBuf
 fdwInit AS DWORD ' DWORD fdwInit
 dwReserve(2) AS DWORD ' DWORD dwReserve[ 3 ]
END TYPE
' // Size = 28 bytes
TYPE IMEINFO DWORD
 dwPrivateDataSize AS DWORD ' DWORD dwPrivateDataSize
 fdwProperty AS DWORD ' DWORD fdwProperty
 fdwConversionCaps AS DWORD ' DWORD fdwConversionCaps
 fdwSentenceCaps AS DWORD ' DWORD fdwSentenceCaps
 fdwUICaps AS DWORD ' DWORD fdwUICaps
 fdwSCSCaps AS DWORD ' DWORD fdwSCSCaps
 fdwSelectCaps AS DWORD ' DWORD fdwSelectCaps
END TYPE
$LIBID_ActiveIMM = GUID$("{4955DD30-B159-11D0-8FCF-00AA006BCC59}")
' ========================================================================================
' ClsIDs (Class identifiers)
' ========================================================================================
$CLSID_CActiveIMM = GUID$("{4955DD33-B159-11D0-8FCF-00AA006BCC59}")
' ========================================================================================
' IIDs (Interface identifiers)
' ========================================================================================
$IID_IEnumRegisterWord = GUID$("{08C03412-F96B-11D0-A475-00AA006BCC59}")
$IID_IEnumRegisterWordA = GUID$("{08C03412-F96B-11D0-A475-00AA006BCC59}")
$IID_IEnumRegisterWordW = GUID$("{4955DD31-B159-11D0-8FCF-00AA006BCC59}")
$IID_IEnumInputContext = GUID$("{09B5EAB0-F997-11D1-93D4-0060B067B86E}")
$IID_IActiveIMMRegistrar = GUID$("{B3458082-BD00-11D1-939B-0060B067B86E}")
$IID_IActiveIMMMessagePumpOwner = GUID$("{B5CF2CFA-8AEB-11D1-9364-0060B067B86E}")
$IID_IActiveIMMApp = GUID$("{08C0E040-62D1-11D1-9326-0060B067B86E}")
$IID_IActiveIMMIME = GUID$("{08C03411-F96B-11D0-A475-00AA006BCC59}")
$IID_IActiveIME = GUID$("{6FE20962-D077-11D0-8FE7-00AA006BCC59}")
$IID_IActiveIME2 = GUID$("{E1C4BF0E-2D53-11D2-93E1-0060B067B86E}")
' ########################################################################################
' Interface name = IEnumRegisterWordA
' IID = {08C03412-F96B-11D0-A475-00AA006BCC59}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IEnumRegisterWordA_INTERFACE_DEFINED)
 %IEnumRegisterWordA_INTERFACE_DEFINED = 1
INTERFACE IEnumRegisterWord $IID_IEnumRegisterWord
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Clone ( ' VTable offset = 12
 BYREF ppEnum AS IEnumRegisterWord
 ) AS LONG
 ' =====================================================================================
 METHOD Next ( ' VTable offset = 16
 BYVAL ulCount AS DWORD
 , BYREF rgRegisterWord AS REGISTERWORDA
 , BYREF pcFetched AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Reset ( ' VTable offset = 20
 ) AS LONG
 ' =====================================================================================
 METHOD Skip ( ' VTable offset = 24
 BYVAL ulCount AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IEnumRegisterWordA_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IEnumRegisterWordW
' IID = {4955DD31-B159-11D0-8FCF-00AA006BCC59}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IEnumRegisterWordW_INTERFACE_DEFINED)
 %IEnumRegisterWordW_INTERFACE_DEFINED = 1
INTERFACE IEnumRegisterWordW $IID_IEnumRegisterWordW
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Clone ( ' VTable offset = 12
 BYREF ppEnum AS IEnumRegisterWordW
 ) AS LONG
 ' =====================================================================================
 METHOD Next ( ' VTable offset = 16
 BYVAL ulCount AS DWORD
 , BYREF rgRegisterWord AS REGISTERWORDW
 , BYREF pcFetched AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Reset ( ' VTable offset = 20
 ) AS LONG
 ' =====================================================================================
 METHOD Skip ( ' VTable offset = 24
 BYVAL ulCount AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IEnumRegisterWordW_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IEnumInputContext
' IID = {09B5EAB0-F997-11D1-93D4-0060B067B86E}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IEnumInputContext_INTERFACE_DEFINED)
 %IEnumInputContext_INTERFACE_DEFINED = 1
INTERFACE IEnumInputContext $IID_IEnumInputContext
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Clone ( ' VTable offset = 12
 BYREF ppEnum AS IEnumInputContext
 ) AS LONG
 ' =====================================================================================
 METHOD Next ( ' VTable offset = 16
 BYVAL ulCount AS DWORD
 , BYREF rgInputContext AS DWORD
 , BYREF pcFetched AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Reset ( ' VTable offset = 20
 ) AS LONG
 ' =====================================================================================
 METHOD Skip ( ' VTable offset = 24
 BYVAL ulCount AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IEnumInputContext_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IActiveIMMRegistrar
' IID = {b3458082-bd00-11d1-939b-0060b067b86e}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IActiveIMMRegistrar_INTERFACE_DEFINED)
 %IActiveIMMRegistrar_INTERFACE_DEFINED = 1
INTERFACE IActiveIMMRegistrar $IID_IActiveIMMRegistrar
 INHERIT IUnknown
 ' =====================================================================================
 METHOD RegisterIME ( ' VTable offset = 12
 BYREF rclsid AS GUID
 , BYVAL lgid AS WORD
 , BYREF pszIconFile AS WSTRINGZ
 , BYREF pszDesc AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
 METHOD UnregisterIME ( ' VTable offset = 16
 BYREF rclsid AS GUID
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IActiveIMMRegistrar_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IActiveIMMMessagePumpOwner
' IID = {b5cf2cfa-8aeb-11d1-9364-0060b067b86e}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IActiveIMMMessagePumpOwner_INTERFACE_DEFINED)
 %IActiveIMMMessagePumpOwner_INTERFACE_DEFINED = 1
INTERFACE IActiveIMMMessagePumpOwner $IID_IActiveIMMMessagePumpOwner
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Start ( ' VTable offset = 12
 ) AS LONG
 ' =====================================================================================
 METHOD End ( ' VTable offset = 16
 ) AS LONG
 ' =====================================================================================
 METHOD OnTranslateMessage ( ' VTable offset = 20
 BYREF pMsg AS tagMSG
 ) AS LONG
 ' =====================================================================================
 METHOD Pause ( ' VTable offset = 24
 BYREF pdwCookie AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Resume ( ' VTable offset = 28
 BYREF dwCookie AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IActiveIMMMessagePumpOwner_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IActiveIMMApp
' IID = {08C0E040-62D1-11D1-9326-0060B067B86E}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IActiveIMMApp_INTERFACE_DEFINED)
 %IActiveIMMApp_INTERFACE_DEFINED = 1
INTERFACE IActiveIMMApp $IID_IActiveIMMApp
 INHERIT IUnknown
 ' =====================================================================================
 METHOD AssociateContext ( ' VTable offset = 12
 BYVAL hWnd AS DWORD
 , BYVAL hIME AS DWORD
 , BYREF phPrev AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD ConfigureIMEA ( ' VTable offset = 16
 BYVAL hKL AS DWORD
 , BYVAL hWnd AS DWORD
 , BYVAL dwMode AS DWORD
 , BYREF pData AS REGISTERWORDA
 ) AS LONG
 ' =====================================================================================
 METHOD ConfigureIMEW ( ' VTable offset = 20
 BYVAL hKL AS DWORD
 , BYVAL hWnd AS DWORD
 , BYVAL dwMode AS DWORD
 , BYREF REGISTERWORDW
 ) AS LONG
 ' =====================================================================================
 METHOD CreateContext ( ' VTable offset = 24
 BYREF phIMC AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD DestroyContext ( ' VTable offset = 28
 BYVAL hIME AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD EnumRegisterWordA ( ' VTable offset = 32
 BYVAL hKL AS DWORD
 , BYREF szReading AS ASCIIZ
 , BYVAL dwStyle AS DWORD
 , BYREF szRegister AS ASCIIZ
 , BYVAL pData AS DWORD
 , BYREF pEnum AS IEnumRegisterWord
 ) AS LONG
 ' =====================================================================================
 METHOD EnumRegisterWordW ( ' VTable offset = 36
 BYVAL hKL AS DWORD
 , BYREF szReading AS WSTRINGZ
 , BYVAL dwStyle AS DWORD
 , BYREF szRegister AS WSTRINGZ
 , BYVAL pData AS DWORD
 , BYREF pEnum AS IEnumRegisterWordW
 ) AS LONG
 ' =====================================================================================
 METHOD EscapeA ( ' VTable offset = 40
 BYVAL hKL AS DWORD
 , BYVAL hIMC AS DWORD
 , BYVAL uEscape AS DWORD
 , BYVAL pData AS DWORD
 , BYREF plResult AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD EscapeW ( ' VTable offset = 44
 BYVAL hKL AS DWORD
 , BYVAL hIMC AS DWORD
 , BYVAL uEscape AS DWORD
 , BYVAL pData AS DWORD
 , BYREF plResult AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetCandidateListA ( ' VTable offset = 48
 BYVAL hIMC AS DWORD
 , BYVAL dwIndex AS DWORD
 , BYVAL uBufLen AS DWORD
 , BYREF pCandList AS CANDIDATELIST
 , BYREF puCopied AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetCandidateListW ( ' VTable offset = 52
 BYVAL hIMC AS DWORD
 , BYVAL dwIndex AS DWORD
 , BYVAL uBufLen AS DWORD
 , BYREF pCandList AS CANDIDATELIST
 , BYREF puCopied AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetCandidateListCountA ( ' VTable offset = 56
 BYVAL hIMC AS DWORD
 , BYREF pdwListSize AS DWORD
 , BYREF pdwBufLen AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetCandidateListCountW ( ' VTable offset = 60
 BYVAL hIMC AS DWORD
 , BYREF pdwListSize AS DWORD
 , BYREF pdwBufLen AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetCandidateWindow ( ' VTable offset = 64
 BYVAL hIMC AS DWORD
 , BYVAL dwIndex AS DWORD
 , BYREF pCandidate AS CANDIDATEFORM
 ) AS LONG
 ' =====================================================================================
 METHOD GetCompositionFontA ( ' VTable offset = 68
 BYVAL hIMC AS DWORD
 , BYREF plf AS LOGFONTA
 ) AS LONG
 ' =====================================================================================
 METHOD GetCompositionFontW ( ' VTable offset = 72
 BYVAL hIMC AS DWORD
 , BYREF plf AS LOGFONTW
 ) AS LONG
 ' =====================================================================================
 METHOD GetCompositionStringA ( ' VTable offset = 76
 BYVAL hIMC AS DWORD
 , BYVAL dwIndex AS DWORD
 , BYVAL dwBufLen AS DWORD
 , BYREF plCopied AS LONG
 , BYVAL pBuf AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetCompositionStringW ( ' VTable offset = 80
 BYVAL hIMC AS DWORD
 , BYVAL dwIndex AS DWORD
 , BYVAL dwBufLen AS DWORD
 , BYREF plCopied AS LONG
 , BYVAL pBuf AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetCompositionWindow ( ' VTable offset = 84
 BYVAL hIMC AS DWORD
 , BYREF pCompForm AS COMPOSITIONFORM
 ) AS LONG
 ' =====================================================================================
 METHOD GetContext ( ' VTable offset = 88
 BYVAL hWnd AS DWORD
 , BYREF phIMC AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetConversionListA ( ' VTable offset = 92
 BYVAL hKL AS DWORD
 , BYVAL hIMC AS DWORD
 , BYREF pSrc AS ASCIIZ
 , BYVAL uBufLen AS DWORD
 , BYVAL uFlag AS DWORD
 , BYREF pDst AS CANDIDATELIST
 , BYREF puCopied AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetConversionListW ( ' VTable offset = 96
 BYVAL hKL AS DWORD
 , BYVAL hIMC AS DWORD
 , BYREF pSrc AS WSTRINGZ
 , BYVAL uBufLen AS DWORD
 , BYVAL uFlag AS DWORD
 , BYREF pDst AS CANDIDATELIST
 , BYREF puCopied AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetConversionStatus ( ' VTable offset = 100
 BYVAL hIMC AS DWORD
 , BYREF pfdwConversion AS DWORD
 , BYREF pfdwSentence AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetDefaultIMEWnd ( ' VTable offset = 104
 BYVAL hWnd AS DWORD
 , BYREF phDefWnd AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetDescriptionA ( ' VTable offset = 108
 BYVAL hKL AS DWORD
 , BYVAL uBufLen AS DWORD
 , BYREF szDescription AS ASCIIZ
 , BYREF puCopied AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetDescriptionW ( ' VTable offset = 112
 BYVAL hKL AS DWORD
 , BYVAL uBufLen AS DWORD
 , BYREF szDescription AS WSTRINGZ
 , BYREF puCopied AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetGuideLineA ( ' VTable offset = 116
 BYVAL hIMC AS DWORD
 , BYVAL dwIndex AS DWORD
 , BYVAL dwBufLen AS DWORD
 , BYREF pBuf AS ASCIIZ
 , BYREF pdwResult AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetGuideLineW ( ' VTable offset = 120
 BYVAL hIMC AS DWORD
 , BYVAL dwIndex AS DWORD
 , BYVAL dwBufLen AS DWORD
 , BYREF pBuf AS WSTRINGZ
 , BYREF pdwResult AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetIMEFileNameA ( ' VTable offset = 124
 BYVAL hKL AS DWORD
 , BYVAL uBufLen AS DWORD
 , BYREF szFileName AS ASCIIZ
 , BYREF puCopied AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetIMEFileNameW ( ' VTable offset = 128
 BYVAL hKL AS DWORD
 , BYVAL uBufLen AS DWORD
 , BYREF szFileName AS WSTRINGZ
 , BYREF puCopied AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetOpenStatus ( ' VTable offset = 132
 BYVAL hIMC AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetProperty ( ' VTable offset = 136
 BYVAL hKL AS DWORD
 , BYVAL fdwIndex AS DWORD
 , BYREF pdwProperty AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetRegisterWordStyleA ( ' VTable offset = 140
 BYVAL hKL AS DWORD
 , BYVAL nItem AS DWORD
 , BYREF pStyleBuf AS STYLEBUFA
 , BYREF puCopied AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetRegisterWordStyleW ( ' VTable offset = 144
 BYVAL hKL AS DWORD
 , BYVAL nItem AS DWORD
 , BYREF pStyleBuf AS STYLEBUFW
 , BYREF puCopied AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetStatusWindowPos ( ' VTable offset = 148
 BYVAL hIMC AS DWORD
 , BYREF pptPos AS POINT
 ) AS LONG
 ' =====================================================================================
 METHOD GetVirtualKey ( ' VTable offset = 152
 BYVAL hWnd AS DWORD
 , BYREF puVirtualKey AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD InstallIMEA ( ' VTable offset = 156
 BYREF szIMEFileName AS ASCIIZ
 , BYREF szLayoutText AS ASCIIZ
 , BYREF phKL AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD InstallIMEW ( ' VTable offset = 160
 BYREF szIMEFileName AS WSTRINGZ
 , BYREF szLayoutText AS WSTRINGZ
 , BYREF phKL AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD IsIME ( ' VTable offset = 164
 BYVAL hKL AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD IsUIMessageA ( ' VTable offset = 168
 BYVAL hWnd AS DWORD
 , BYVAL msg AS DWORD
 , BYVAL wParam AS DWORD
 , BYVAL lParam AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD IsUIMessageW ( ' VTable offset = 172
 BYVAL hWnd AS DWORD
 , BYVAL msg AS DWORD
 , BYVAL wParam AS DWORD
 , BYVAL lParam AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD NotifyIME ( ' VTable offset = 176
 BYVAL hIMC AS DWORD
 , BYVAL dwAction AS DWORD
 , BYVAL dwIndex AS DWORD
 , BYVAL dwValue AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD RegisterWordA ( ' VTable offset = 180
 BYVAL hKL AS DWORD
 , BYREF szReading AS ASCIIZ
 , BYVAL dwStyle AS DWORD
 , BYREF szRegister AS ASCIIZ
 ) AS LONG
 ' =====================================================================================
 METHOD RegisterWordW ( ' VTable offset = 184
 BYVAL hKL AS DWORD
 , BYREF szReading AS WSTRINGZ
 , BYVAL dwStyle AS DWORD
 , BYREF szRegister AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
 METHOD ReleaseContext ( ' VTable offset = 188
 BYVAL hWnd AS DWORD
 , BYVAL hIMC AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetCandidateWindow ( ' VTable offset = 192
 BYVAL hIMC AS DWORD
 , BYREF pCandidate AS CANDIDATEFORM
 ) AS LONG
 ' =====================================================================================
 METHOD SetCompositionFontA ( ' VTable offset = 196
 BYVAL hIMC AS DWORD
 , BYREF plf AS LOGFONTA
 ) AS LONG
 ' =====================================================================================
 METHOD SetCompositionFontW ( ' VTable offset = 200
 BYVAL hIMC AS DWORD
 , BYREF plf AS LOGFONTW
 ) AS LONG
 ' =====================================================================================
 METHOD SetCompositionStringA ( ' VTable offset = 204
 BYVAL hIMC AS DWORD
 , BYVAL dwIndex AS DWORD
 , BYVAL pComp AS DWORD
 , BYVAL dwCompLen AS DWORD
 , BYVAL pRead AS DWORD
 , BYVAL dwReadLen AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetCompositionStringW ( ' VTable offset = 208
 BYVAL hIMC AS DWORD
 , BYVAL dwIndex AS DWORD
 , BYVAL pComp AS DWORD
 , BYVAL dwCompLen AS DWORD
 , BYVAL pRead AS DWORD
 , BYVAL dwReadLen AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetCompositionWindow ( ' VTable offset = 212
 BYVAL hIMC AS DWORD
 , BYREF pCompForm AS COMPOSITIONFORM
 ) AS LONG
 ' =====================================================================================
 METHOD SetConversionStatus ( ' VTable offset = 216
 BYVAL hIMC AS DWORD
 , BYVAL fdwConversion AS DWORD
 , BYVAL fdwSentence AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetOpenStatus ( ' VTable offset = 220
 BYVAL hIMC AS DWORD
 , BYVAL fOpen AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SetStatusWindowPos ( ' VTable offset = 224
 BYVAL hIMC AS DWORD
 , BYREF pptPos AS POINT
 ) AS LONG
 ' =====================================================================================
 METHOD SimulateHotKey ( ' VTable offset = 228
 BYVAL hWnd AS DWORD
 , BYVAL dwHotKeyID AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD UnregisterWordA ( ' VTable offset = 232
 BYVAL hKL AS DWORD
 , BYREF szReading AS ASCIIZ
 , BYVAL dwStyle AS DWORD
 , BYREF szUnregister AS ASCIIZ
 ) AS LONG
 ' =====================================================================================
 METHOD UnregisterWordW ( ' VTable offset = 236
 BYVAL hKL AS DWORD
 , BYREF szReading AS WSTRINGZ
 , BYVAL dwStyle AS DWORD
 , BYREF szUnregister AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
 METHOD Activate ( ' VTable offset = 240
 BYVAL fRestoreLayout AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD Deactivate ( ' VTable offset = 244
 ) AS LONG
 ' =====================================================================================
 METHOD OnDefWindowProc ( ' VTable offset = 248
 BYVAL hWnd AS DWORD
 , BYVAL msg AS DWORD
 , BYVAL wParam AS DWORD
 , BYVAL lParam AS LONG
 , BYREF plResult AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD FilterClientWindows ( ' VTable offset = 252
 BYREF aaClassList AS WORD
 , BYVAL uSize AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetCodePageA ( ' VTable offset = 256
 BYVAL hKL AS DWORD
 , BYREF uCodePage AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetLangId ( ' VTable offset = 260
 BYVAL hKL AS DWORD
 , BYREF plid AS WORD
 ) AS LONG
 ' =====================================================================================
 METHOD AssociateContextEx ( ' VTable offset = 264
 BYVAL hWnd AS DWORD
 , BYVAL hIMC AS DWORD
 , BYVAL dwFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD DisableIME ( ' VTable offset = 268
 BYVAL idThread AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetImeMenuItemsA ( ' VTable offset = 272
 BYVAL hIMC AS DWORD
 , BYVAL dwFlags AS DWORD
 , BYVAL dwType AS DWORD
 , BYREF pImeParentMenu AS IMEMENUITEMINFOA
 , BYREF pImeMenu AS IMEMENUITEMINFOA
 , BYVAL dwSize AS DWORD
 , BYREF pdwResult AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetImeMenuItemsW ( ' VTable offset = 276
 BYVAL hIMC AS DWORD
 , BYVAL dwFlags AS DWORD
 , BYVAL dwType AS DWORD
 , BYREF pImeParentMenu AS IMEMENUITEMINFOW
 , BYREF pImeMenu AS IMEMENUITEMINFOW
 , BYVAL dwSize AS DWORD
 , BYREF pdwResult AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD EnumInputContext ( ' VTable offset = 280
 BYVAL idThread AS DWORD
 , BYREF ppEnum AS IEnumInputContext
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IActiveIMMApp_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IActiveIMMIME
' IID = {08C03411-F96B-11d0-A475-00AA006BCC59}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IActiveIMMIME_INTERFACE_DEFINED)
 %IActiveIMMIME_INTERFACE_DEFINED = 1
INTERFACE IActiveIMMIME $IID_IActiveIMMIME
 INHERIT IUnknown
 ' =====================================================================================
 METHOD AssociateContext ( ' VTable offset = 12
 BYVAL hWnd AS DWORD
 , BYVAL hIME AS DWORD
 , BYREF phPrev AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD ConfigureIMEA ( ' VTable offset = 16
 BYVAL hKL AS DWORD
 , BYVAL hWnd AS DWORD
 , BYVAL dwMode AS DWORD
 , BYREF pData AS REGISTERWORDA
 ) AS LONG
 ' =====================================================================================
 METHOD ConfigureIMEW ( ' VTable offset = 20
 BYVAL hKL AS DWORD
 , BYVAL hWnd AS DWORD
 , BYVAL dwMode AS DWORD
 , BYREF pData AS REGISTERWORDW
 ) AS LONG
 ' =====================================================================================
 METHOD CreateContext ( ' VTable offset = 24
 BYREF phIMC AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD DestroyContext ( ' VTable offset = 28
 BYVAL hIME AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD EnumRegisterWordA ( ' VTable offset = 32
 BYVAL hKL AS DWORD
 , BYREF szReading AS ASCIIZ
 , BYVAL dwStyle AS DWORD
 , BYREF szRegister AS ASCIIZ
 , BYVAL pData AS DWORD
 , BYREF pEnum AS IEnumRegisterWord
 ) AS LONG
 ' =====================================================================================
 METHOD EnumRegisterWordW ( ' VTable offset = 36
 BYVAL hKL AS DWORD
 , BYREF szReading AS WSTRINGZ
 , BYVAL dwStyle AS DWORD
 , BYREF szRegister AS WSTRINGZ
 , BYVAL pData AS DWORD
 , BYREF pEnum AS IEnumRegisterWordW
 ) AS LONG
 ' =====================================================================================
 METHOD EscapeA ( ' VTable offset = 40
 BYVAL hKL AS DWORD
 , BYVAL hIMC AS DWORD
 , BYVAL uEscape AS DWORD
 , BYVAL pData AS DWORD
 , BYREF plResult AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD EscapeW ( ' VTable offset = 44
 BYVAL hKL AS DWORD
 , BYVAL hIMC AS DWORD
 , BYVAL uEscape AS DWORD
 , BYVAL pData AS DWORD
 , BYREF plResult AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetCandidateListA ( ' VTable offset = 48
 BYVAL hIMC AS DWORD
 , BYVAL dwIndex AS DWORD
 , BYVAL uBufLen AS DWORD
 , BYREF pCandList AS CANDIDATELIST
 , BYREF puCopied AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetCandidateListW ( ' VTable offset = 52
 BYVAL hIMC AS DWORD
 , BYVAL dwIndex AS DWORD
 , BYVAL uBufLen AS DWORD
 , BYREF pCandList AS CANDIDATELIST
 , BYREF puCopied AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetCandidateListCountA ( ' VTable offset = 56
 BYVAL hIMC AS DWORD
 , BYREF pdwListSize AS DWORD
 , BYREF pdwBufLen AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetCandidateListCountW ( ' VTable offset = 60
 BYVAL hIMC AS DWORD
 , BYREF pdwListSize AS DWORD
 , BYREF pdwBufLen AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetCandidateWindow ( ' VTable offset = 64
 BYVAL hIMC AS DWORD
 , BYVAL dwIndex AS DWORD
 , BYREF pCandidate AS CANDIDATEFORM
 ) AS LONG
 ' =====================================================================================
 METHOD GetCompositionFontA ( ' VTable offset = 68
 BYVAL hIMC AS DWORD
 , BYREF plf AS LOGFONTA
 ) AS LONG
 ' =====================================================================================
 METHOD GetCompositionFontW ( ' VTable offset = 72
 BYVAL hIMC AS DWORD
 , BYREF plf AS LOGFONTW
 ) AS LONG
 ' =====================================================================================
 METHOD GetCompositionStringA ( ' VTable offset = 76
 BYVAL hIMC AS DWORD
 , BYVAL dwIndex AS DWORD
 , BYVAL dwBufLen AS DWORD
 , BYREF plCopied AS LONG
 , BYVAL pBuf AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetCompositionStringW ( ' VTable offset = 80
 BYVAL hIMC AS DWORD
 , BYVAL dwIndex AS DWORD
 , BYVAL dwBufLen AS DWORD
 , BYREF plCopied AS LONG
 , BYVAL pBuf AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetCompositionWindow ( ' VTable offset = 84
 BYVAL hIMC AS DWORD
 , BYREF pCompForm AS COMPOSITIONFORM
 ) AS LONG
 ' =====================================================================================
 METHOD GetContext ( ' VTable offset = 88
 BYVAL hWnd AS DWORD
 , BYREF phIMC AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetConversionListA ( ' VTable offset = 92
 BYVAL hKL AS DWORD
 , BYVAL hIMC AS DWORD
 , BYREF pSrc AS ASCIIZ
 , BYVAL uBufLen AS DWORD
 , BYVAL uFlag AS DWORD
 , BYREF pDst AS CANDIDATELIST
 , BYREF puCopied AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetConversionListW ( ' VTable offset = 96
 BYVAL hKL AS DWORD
 , BYVAL hIMC AS DWORD
 , BYREF pSrc AS WSTRINGZ
 , BYVAL uBufLen AS DWORD
 , BYVAL uFlag AS DWORD
 , BYREF pDst AS CANDIDATELIST
 , BYREF puCopied AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetConversionStatus ( ' VTable offset = 100
 BYVAL hIMC AS DWORD
 , BYREF pfdwConversion AS DWORD
 , BYREF pfdwSentence AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetDefaultIMEWnd ( ' VTable offset = 104
 BYVAL hWnd AS DWORD
 , BYREF phDefWnd AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetDescriptionA ( ' VTable offset = 108
 BYVAL hKL AS DWORD
 , BYVAL uBufLen AS DWORD
 , BYREF szDescription AS ASCIIZ
 , BYREF puCopied AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetDescriptionW ( ' VTable offset = 112
 BYVAL hKL AS DWORD
 , BYVAL uBufLen AS DWORD
 , BYREF szDescription AS WSTRINGZ
 , BYREF puCopied AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetGuideLineA ( ' VTable offset = 116
 BYVAL hIMC AS DWORD
 , BYVAL dwIndex AS DWORD
 , BYVAL dwBufLen AS DWORD
 , BYREF pBuf AS ASCIIZ
 , BYREF pdwResult AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetGuideLineW ( ' VTable offset = 120
 BYVAL hIMC AS DWORD
 , BYVAL dwIndex AS DWORD
 , BYVAL dwBufLen AS DWORD
 , BYREF pBuf AS WSTRINGZ
 , BYREF pdwResult AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetIMEFileNameA ( ' VTable offset = 124
 BYVAL hKL AS DWORD
 , BYVAL uBufLen AS DWORD
 , BYREF szFileName AS ASCIIZ
 , BYREF puCopied AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetIMEFileNameW ( ' VTable offset = 128
 BYVAL hKL AS DWORD
 , BYVAL uBufLen AS DWORD
 , BYREF szFileName AS WSTRINGZ
 , BYREF puCopied AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetOpenStatus ( ' VTable offset = 132
 BYVAL hIMC AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetProperty ( ' VTable offset = 136
 BYVAL hKL AS DWORD
 , BYVAL fdwIndex AS DWORD
 , BYREF pdwProperty AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetRegisterWordStyleA ( ' VTable offset = 140
 BYVAL hKL AS DWORD
 , BYVAL nItem AS DWORD
 , BYREF pStyleBuf AS STYLEBUFA
 , BYREF puCopied AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetRegisterWordStyleW ( ' VTable offset = 144
 BYVAL hKL AS DWORD
 , BYVAL nItem AS DWORD
 , BYREF pStyleBuf AS STYLEBUFW
 , BYREF puCopied AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetStatusWindowPos ( ' VTable offset = 148
 BYVAL hIMC AS DWORD
 , BYREF pptPos AS POINT
 ) AS LONG
 ' =====================================================================================
 METHOD GetVirtualKey ( ' VTable offset = 152
 BYVAL hWnd AS DWORD
 , BYREF puVirtualKey AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD InstallIMEA ( ' VTable offset = 156
 BYREF szIMEFileName AS ASCIIZ
 , BYREF szLayoutText AS ASCIIZ
 , BYREF phKL AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD InstallIMEW ( ' VTable offset = 160
 BYREF szIMEFileName AS WSTRINGZ
 , BYREF szLayoutText AS WSTRINGZ
 , BYREF phKL AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD IsIME ( ' VTable offset = 164
 BYVAL hKL AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD IsUIMessageA ( ' VTable offset = 168
 BYVAL hWnd AS DWORD
 , BYVAL msg AS DWORD
 , BYVAL wParam AS DWORD
 , BYVAL lParam AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD IsUIMessageW ( ' VTable offset = 172
 BYVAL hWnd AS DWORD
 , BYVAL msg AS DWORD
 , BYVAL wParam AS DWORD
 , BYVAL lParam AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD NotifyIME ( ' VTable offset = 176
 BYVAL hIMC AS DWORD
 , BYVAL dwAction AS DWORD
 , BYVAL dwIndex AS DWORD
 , BYVAL dwValue AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD RegisterWordA ( ' VTable offset = 180
 BYVAL hKL AS DWORD
 , BYREF szReading AS ASCIIZ
 , BYVAL dwStyle AS DWORD
 , BYREF szRegister AS ASCIIZ
 ) AS LONG
 ' =====================================================================================
 METHOD RegisterWordW ( ' VTable offset = 184
 BYVAL hKL AS DWORD
 , BYREF szReading AS WSTRINGZ
 , BYVAL dwStyle AS DWORD
 , BYREF szRegister AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
 METHOD ReleaseContext ( ' VTable offset = 188
 BYVAL hWnd AS DWORD
 , BYVAL hIMC AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetCandidateWindow ( ' VTable offset = 192
 BYVAL hIMC AS DWORD
 , BYREF pCandidate AS CANDIDATEFORM
 ) AS LONG
 ' =====================================================================================
 METHOD SetCompositionFontA ( ' VTable offset = 196
 BYVAL hIMC AS DWORD
 , BYREF plf AS LOGFONTA
 ) AS LONG
 ' =====================================================================================
 METHOD SetCompositionFontW ( ' VTable offset = 200
 BYVAL hIMC AS DWORD
 , BYREF plf AS LOGFONTW
 ) AS LONG
 ' =====================================================================================
 METHOD SetCompositionStringA ( ' VTable offset = 204
 BYVAL hIMC AS DWORD
 , BYVAL dwIndex AS DWORD
 , BYVAL pComp AS DWORD
 , BYVAL dwCompLen AS DWORD
 , BYVAL pRead AS DWORD
 , BYVAL dwReadLen AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetCompositionStringW ( ' VTable offset = 208
 BYVAL hIMC AS DWORD
 , BYVAL dwIndex AS DWORD
 , BYVAL pComp AS DWORD
 , BYVAL dwCompLen AS DWORD
 , BYVAL pRead AS DWORD
 , BYVAL dwReadLen AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetCompositionWindow ( ' VTable offset = 212
 BYVAL hIMC AS DWORD
 , BYREF pCompForm AS COMPOSITIONFORM
 ) AS LONG
 ' =====================================================================================
 METHOD SetConversionStatus ( ' VTable offset = 216
 BYVAL hIMC AS DWORD
 , BYVAL fdwConversion AS DWORD
 , BYVAL fdwSentence AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetOpenStatus ( ' VTable offset = 220
 BYVAL hIMC AS DWORD
 , BYVAL fOpen AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SetStatusWindowPos ( ' VTable offset = 224
 BYVAL hIMC AS DWORD
 , BYREF pptPos AS POINT
 ) AS LONG
 ' =====================================================================================
 METHOD SimulateHotKey ( ' VTable offset = 228
 BYVAL hWnd AS DWORD
 , BYVAL dwHotKeyID AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD UnregisterWordA ( ' VTable offset = 232
 BYVAL hKL AS DWORD
 , BYREF szReading AS ASCIIZ
 , BYVAL dwStyle AS DWORD
 , BYREF szUnregister AS ASCIIZ
 ) AS LONG
 ' =====================================================================================
 METHOD UnregisterWordW ( ' VTable offset = 236
 BYVAL hKL AS DWORD
 , BYREF szReading AS WSTRINGZ
 , BYVAL dwStyle AS DWORD
 , BYREF szUnregister AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
 METHOD GenerateMessage ( ' VTable offset = 240
 BYVAL hIMC AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD LockIMC ( ' VTable offset = 244
 BYVAL hIMC AS DWORD
 , BYREF ppIMC AS INPUTCONTEXT
 ) AS LONG
 ' =====================================================================================
 METHOD UnlockIMC ( ' VTable offset = 248
 BYVAL hIMC AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetIMCLockCount ( ' VTable offset = 252
 BYVAL hIMC AS DWORD
 , BYREF pdwLockCount AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD CreateIMCC ( ' VTable offset = 256
 BYVAL dwSize AS DWORD
 , BYREF phIMCC AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD DestroyIMCC ( ' VTable offset = 260
 BYVAL hIMCC AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD LockIMCC ( ' VTable offset = 264
 BYVAL hIMCC AS DWORD
 , BYREF ppv AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD UnlockIMCC ( ' VTable offset = 268
 BYVAL hIMCC AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD ReSizeIMCC ( ' VTable offset = 272
 BYVAL hIMCC AS DWORD
 , BYVAL dwSize AS DWORD
 , BYREF phIMCC AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetIMCCSize ( ' VTable offset = 276
 BYVAL hIMCC AS DWORD
 , BYREF pdwSize AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetIMCCLockCount ( ' VTable offset = 280
 BYVAL hIMCC AS DWORD
 , BYREF pdwLockCount AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetHotKey ( ' VTable offset = 284
 BYVAL dwHotKeyID AS DWORD
 , BYREF puModifiers AS DWORD
 , BYREF puVKey AS DWORD
 , BYREF phKL AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetHotKey ( ' VTable offset = 288
 BYVAL dwHotKeyID AS DWORD
 , BYVAL uModifiers AS DWORD
 , BYVAL uVKey AS DWORD
 , BYVAL hKL AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD CreateSoftKeyboard ( ' VTable offset = 292
 BYVAL uType AS DWORD
 , BYVAL hOwner AS DWORD
 , BYVAL x AS LONG
 , BYVAL y AS LONG
 , BYREF phSoftKbdWnd AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD DestroySoftKeyboard ( ' VTable offset = 296
 BYVAL hSoftKbdWnd AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD ShowSoftKeyboard ( ' VTable offset = 300
 BYVAL hSoftKbdWnd AS DWORD
 , BYVAL nCmdShow AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetCodePageA ( ' VTable offset = 304
 BYVAL hKL AS DWORD
 , BYVAL uCodePage AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetLangId ( ' VTable offset = 308
 BYVAL hKL AS DWORD
 , BYREF plid AS WORD
 ) AS LONG
 ' =====================================================================================
 METHOD KeybdEvent ( ' VTable offset = 312
 BYVAL lgidIME AS WORD
 , BYVAL bVk AS BYTE
 , BYVAL bScan AS BYTE
 , BYVAL dwFlags AS DWORD
 , BYVAL dwExtraInfo AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD LockModal ( ' VTable offset = 316
 ) AS LONG
 ' =====================================================================================
 METHOD UnlockModal ( ' VTable offset = 320
 ) AS LONG
 ' =====================================================================================
 METHOD AssociateContextEx ( ' VTable offset = 324
 BYVAL hWnd AS DWORD
 , BYVAL hIMC AS DWORD
 , BYVAL dwFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD DisableIME ( ' VTable offset = 328
 BYVAL idThread AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetImeMenuItemsA ( ' VTable offset = 332
 BYVAL hIMC AS DWORD
 , BYVAL dwFlags AS DWORD
 , BYVAL dwType AS DWORD
 , BYREF pImeParentMenu AS IMEMENUITEMINFOA
 , BYREF pImeMenu AS IMEMENUITEMINFOA
 , BYVAL dwSize AS DWORD
 , BYREF pdwResult AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetImeMenuItemsW ( ' VTable offset = 336
 BYVAL hIMC AS DWORD
 , BYVAL dwFlags AS DWORD
 , BYVAL dwType AS DWORD
 , BYREF pImeParentMenu AS IMEMENUITEMINFOW
 , BYREF pImeMenu AS IMEMENUITEMINFOW
 , BYVAL dwSize AS DWORD
 , BYREF pdwResult AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD EnumInputContext ( ' VTable offset = 340
 BYVAL idThread AS DWORD
 , BYREF ppEnum AS IEnumInputContext
 ) AS LONG
 ' =====================================================================================
 METHOD RequestMessageA ( ' VTable offset = 344
 BYVAL hIMC AS DWORD
 , BYVAL wParam AS DWORD
 , BYVAL lParam AS LONG
 , BYREF plResult AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD RequestMessageW ( ' VTable offset = 348
 BYVAL hIMC AS DWORD
 , BYVAL wParam AS DWORD
 , BYVAL lParam AS LONG
 , BYREF plResult AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SendIMCA ( ' VTable offset = 352
 BYVAL hWnd AS DWORD
 , BYVAL uMsg AS DWORD
 , BYVAL wParam AS DWORD
 , BYVAL lParam AS LONG
 , BYREF plResult AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SendIMCW ( ' VTable offset = 356
 BYVAL hWnd AS DWORD
 , BYVAL uMsg AS DWORD
 , BYVAL wParam AS DWORD
 , BYVAL lParam AS LONG
 , BYREF plResult AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD IsSleeping ( ' VTable offset = 360
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IActiveIMMIME_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IActiveIME
' IID = {6FE20962-D077-11d0-8FE7-00AA006BCC59}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IActiveIME_INTERFACE_DEFINED)
 %IActiveIME_INTERFACE_DEFINED = 1
INTERFACE IActiveIME $IID_IActiveIME
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Inquire ( ' VTable offset = 12
 BYVAL dwSystemInfoFlags AS DWORD
 , BYREF pIMEInfo AS IMEINFO
 , BYREF szWndClass AS WSTRINGZ
 , BYREF pdwPrivate AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD ConversionList ( ' VTable offset = 16
 BYVAL hIMC AS DWORD
 , BYREF szSource AS WSTRINGZ
 , BYVAL uFlag AS DWORD
 , BYVAL uBufLen AS DWORD
 , BYREF pDest AS CANDIDATELIST
 , BYREF puCopied AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Configure ( ' VTable offset = 20
 BYVAL hKL AS DWORD
 , BYVAL hWnd AS DWORD
 , BYVAL dwMode AS DWORD
 , BYVAL pRegisterWord AS REGISTERWORDW
 ) AS LONG
 ' =====================================================================================
 METHOD Destroy ( ' VTable offset = 24
 BYVAL uReserved AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Escape ( ' VTable offset = 28
 BYVAL hIMC AS DWORD
 , BYVAL uEscape AS DWORD
 , BYREF pData AS DWORD
 , BYREF plResult AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SetActiveContext ( ' VTable offset = 32
 BYVAL hIMC AS DWORD
 , BYVAL fFlag AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD ProcessKey ( ' VTable offset = 36
 BYVAL hIMC AS DWORD
 , BYVAL uVirKey AS DWORD
 , BYVAL lParam AS DWORD
 , BYREF pbKeyState AS BYTE
 ) AS LONG
 ' =====================================================================================
 METHOD Notify ( ' VTable offset = 40
 BYVAL hIMC AS DWORD
 , BYVAL dwAction AS DWORD
 , BYVAL dwIndex AS DWORD
 , BYVAL dwValue AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Select ( ' VTable offset = 44
 BYVAL hIMC AS DWORD
 , BYVAL fSelect AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SetCompositionString ( ' VTable offset = 48
 BYVAL hIMC AS DWORD
 , BYVAL dwIndex AS DWORD
 , BYVAL pComp AS DWORD
 , BYVAL dwCompLen AS DWORD
 , BYVAL pRead AS DWORD
 , BYVAL dwReadLen AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD ToAsciiEx ( ' VTable offset = 52
 BYVAL uVirKey AS DWORD
 , BYVAL uScanCode AS DWORD
 , BYREF pbKeyState AS BYTE
 , BYVAL fuState AS DWORD
 , BYVAL hIMC AS DWORD
 , BYREF pdwTransBuf AS DWORD
 , BYREF puSize AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD RegisterWord ( ' VTable offset = 56
 BYREF szReading AS WSTRINGZ
 , BYVAL dwStyle AS DWORD
 , BYVAL szString AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD UnregisterWord ( ' VTable offset = 60
 BYREF szReading AS WSTRINGZ
 , BYVAL dwStyle AS DWORD
 , BYREF szString AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
 METHOD GetRegisterWordStyle ( ' VTable offset = 64
 BYVAL nItem AS DWORD
 , BYREF pStyleBuf AS STYLEBUFW
 , BYREF puBufSize AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD EnumRegisterWord ( ' VTable offset = 68
 BYREF szReading AS WSTRINGZ
 , BYVAL dwStyle AS DWORD
 , BYREF szRegister AS WSTRINGZ
 , BYVAL pData AS DWORD
 , BYREF ppEnum AS IEnumRegisterWordW
 ) AS LONG
 ' =====================================================================================
 METHOD GetCodePageA ( ' VTable offset = 72
 BYREF uCodePage AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetLangId ( ' VTable offset = 76
 BYREF plid AS WORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IActiveIME_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IActiveIME2
' IID = {e1c4bf0e-2d53-11d2-93e1-0060b067b86e}
' Inherited interface = IActiveIME
' ########################################################################################
#IF NOT %DEF(%IActiveIME2_INTERFACE_DEFINED)
 %IActiveIME2_INTERFACE_DEFINED = 1
INTERFACE IActiveIME2 $IID_IActiveIME2
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Inquire ( ' VTable offset = 12
 BYVAL dwSystemInfoFlags AS DWORD
 , BYREF pIMEInfo AS IMEINFO
 , BYREF szWndClass AS WSTRINGZ
 , BYREF pdwPrivate AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD ConversionList ( ' VTable offset = 16
 BYVAL hIMC AS DWORD
 , BYREF szSource AS WSTRINGZ
 , BYVAL uFlag AS DWORD
 , BYVAL uBufLen AS DWORD
 , BYREF pDest AS CANDIDATELIST
 , BYREF puCopied AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Configure ( ' VTable offset = 20
 BYVAL hKL AS DWORD
 , BYVAL hWnd AS DWORD
 , BYVAL dwMode AS DWORD
 , BYVAL pRegisterWord AS REGISTERWORDW
 ) AS LONG
 ' =====================================================================================
 METHOD Destroy ( ' VTable offset = 24
 BYVAL uReserved AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Escape ( ' VTable offset = 28
 BYVAL hIMC AS DWORD
 , BYVAL uEscape AS DWORD
 , BYREF pData AS DWORD
 , BYREF plResult AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SetActiveContext ( ' VTable offset = 32
 BYVAL hIMC AS DWORD
 , BYVAL fFlag AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD ProcessKey ( ' VTable offset = 36
 BYVAL hIMC AS DWORD
 , BYVAL uVirKey AS DWORD
 , BYVAL lParam AS DWORD
 , BYREF pbKeyState AS BYTE
 ) AS LONG
 ' =====================================================================================
 METHOD Notify ( ' VTable offset = 40
 BYVAL hIMC AS DWORD
 , BYVAL dwAction AS DWORD
 , BYVAL dwIndex AS DWORD
 , BYVAL dwValue AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Select ( ' VTable offset = 44
 BYVAL hIMC AS DWORD
 , BYVAL fSelect AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SetCompositionString ( ' VTable offset = 48
 BYVAL hIMC AS DWORD
 , BYVAL dwIndex AS DWORD
 , BYVAL pComp AS DWORD
 , BYVAL dwCompLen AS DWORD
 , BYVAL pRead AS DWORD
 , BYVAL dwReadLen AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD ToAsciiEx ( ' VTable offset = 52
 BYVAL uVirKey AS DWORD
 , BYVAL uScanCode AS DWORD
 , BYREF pbKeyState AS BYTE
 , BYVAL fuState AS DWORD
 , BYVAL hIMC AS DWORD
 , BYREF pdwTransBuf AS DWORD
 , BYREF puSize AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD RegisterWord ( ' VTable offset = 56
 BYREF szReading AS WSTRINGZ
 , BYVAL dwStyle AS DWORD
 , BYREF szString AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
 METHOD UnregisterWord ( ' VTable offset = 60
 BYREF szReading AS WSTRINGZ
 , BYVAL dwStyle AS DWORD
 , BYREF szString AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
 METHOD GetRegisterWordStyle ( ' VTable offset = 64
 BYVAL nItem AS DWORD
 , BYREF pStyleBuf AS STYLEBUFW
 , BYREF puBufSize AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD EnumRegisterWord ( ' VTable offset = 68
 BYREF szReading AS WSTRINGZ
 , BYVAL dwStyle AS DWORD
 , BYREF szRegister AS WSTRINGZ
 , BYVAL pData AS DWORD
 , BYREF ppEnum AS IEnumRegisterWordW
 ) AS LONG
 ' =====================================================================================
 METHOD GetCodePageA ( ' VTable offset = 72
 BYREF uCodePage AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetLangId ( ' VTable offset = 76
 BYREF plid AS WORD
 ) AS LONG
 ' =====================================================================================
 METHOD Sleep ( ' VTable offset = 80
 ) AS LONG
 ' =====================================================================================
 METHOD Unsleep ( ' VTable offset = 84
 BYVAL fDead AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IActiveIME2_INTERFACE_DEFINED__ */
#ENDIF
