get ALL class name string
Code:Public Declare Function lstrcpynA Lib "kernel32" (ByVal lpString1 As String, ByVal lpString2 As Long, ByVal iMaxLength As Long) As Long Private Declare Function lstrlenA Lib "kernel32" (ByVal lpData As Long) As Long Function GetStrFromPtr(lpszName As Long) 'GOOD Dim STR1 As String, Len1 As Long, R As Long, X As Long Len1 = lstrlenA(lpszName) STR1 = Space(Len1 + 1) R = lstrcpynA(STR1, lpszName, Len1 + 1) X = InStr(STR1, Chr(0)) If X > 0 Then STR1 = Left(STR1, X - 1) GetStrFromPtr = STR1 End FunctionCode:Function GetAllClassOnRun() As String() ' Only for Executable. ' ' lpObjInfo is a returned argument. ' Function returns true if successful. Dim ClassList() As String Static Modules() As NameBasedObjectFactory.MODDESCRTBL_ENTRY Static bModulesSet As Boolean Dim i As Long ' #If ALSO_USERCONTROLS Then Const mfBadFlags As Long = mfUserControl #Else Const mfBadFlags As Long = 0 #End If ' If Not bModulesSet Then ReDim Modules(0) If LoadDescriptorsTable(Modules) Then bModulesSet = True Else Exit Function End If End If ' ' We are looking for a descriptor corresponding to the specified class. Dim ID As Long ReDim ClassList(UBound(Modules) - LBound(Modules)) For i = LBound(Modules) To UBound(Modules) With Modules(i) ClassList(ID) = GetStrByPtr(.lpszName) End With ID = ID + 1 Next i GetAllClassOnRun = ClassList() End Function




Reply With Quote