www.pudn.com > Dll_Ime.rar > DllIME.cls
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 1 'Persistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 0 'vbNone
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "DllIME"
Attribute VB_GlobalNameSpace = True
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
Option Explicit
Private Declare Function GetKeyboardLayoutList Lib "user32" (ByVal nBuff As Long, _
lpList As Long) As Long
Private Declare Function ImmGetDescription Lib "imm32.dll" Alias "ImmGetDescriptionA" (ByVal _
hkl As Long, ByVal lpsz As String, ByVal uBufLen As Long) As Long
Dim la(1 To 30) As Long
Public Handle_Ime As String
Public Ime_Namea As String
Public Ime_Count As Integer
Function Main() As Boolean
On Error GoTo Err
Dim Astr As String * 256
Dim Bstr As String
Dim X, i, Ii As Integer
X = GetKeyboardLayoutList(32, la(1))
Ime_Count = X
For i = 1 To X
Handle_Ime = Handle_Ime & la(i) & ","
Next i
Handle_Ime = Left(Handle_Ime, Len(Handle_Ime) - 1)
Handle_Ime = Handle_Ime & "."
For Ii = 1 To X
ImmGetDescription la(Ii), Astr, 256
If InStr(Astr, Chr(0)) = 1 Then
Bstr = "1"
Else
Bstr = Left$(Astr, InStr(Astr, Chr(0)))
End If
If Trim(Bstr) = "1" Then
' bstr = "英语(美国)" & Space(256 - Len("英语(美国)"))
Bstr = "英语(美国)"
Else
End If
Ime_Namea = Ime_Namea & Trim(Bstr) & "|"
Next Ii
Main = True
Exit Function
Err:
Handle_Ime = ""
Main = False
' Combo1.Clear
' If x Then
' For i = 1 To x
' ImmGetDescription la(i), astr, 256
' If InStr(astr, Chr(0)) = 1 Then
' bstr = ""
' Else
' bstr = Left$(astr, InStr(astr, Chr(0)))
' End If
'
' If Trim(bstr) = "" Then
' Combo1.AddItem "英语(美国)"
' Else
' Combo1.AddItem bstr
' End If
' Next i
' End If
End Function