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