Это потому, что классы VB.* не зарегистрированы в реестре. Например, нельзя написать CreateObject ("VB.CommandButton")GM писал(а):Понятно, а я то перевел весь твой код тот что в tlbbrowse,в модуль, написал свой Object Browser(визуальный), а он для VB.* не пашет.
GM писал(а):Тёмыч как я и обещал мой Object Browser.
Это мой unofficial buildAndrey Fedorov писал(а):GM писал(а):Тёмыч как я и обещал мой Object Browser.
Ты бы уж и заодно и Edanmo's OLE interfaces & functions v1.810 (unofficial build) выложил. А то без него и не посмотришь.
Andrey Fedorov писал(а):Ну а mdlObjectInfo.bas где?
Dim a As UUID
Call CLSIDFromString("ComctlLib.ListView", a)
mvarClass = ProgIDFromCLSID(a)
Private Declare Sub ProgIDFromCLSID Lib "ole32.dll" (ByVal clsid As Long, ByVal lplpszProgID As String)
Private Declare Sub CLSIDFromString Lib "ole32.dll" (ByVal lpsz As String, ByVal pclsid As Long)
Dim s As String
s = String(255, vbNullChar)
Call CLSIDFromString("MSComctlLib.ImageList", a)
Call ProgIDFromCLSID(a, s)
GM писал(а):Тёмыч, а как получить ITypeLib зная имя библиотеки?
LoadTypeLibEx
Dim info As olelib.ITypeLib
Set info = LoadTypeLib(dllname) ' , REGKIND_DEFAULT)
Dim tc As olelib.ITypeComp
Set tc = info.GetTypeComp()
Dim ti As olelib.ITypeInfo
Call tc.BindType(clsid, 0&, ti, tc)
GM писал(а):Разве никто не знает почему код не работает?
Option Explicit
Sub Main()
Debug.Print GetProgID("mscomctl.ocx", "ListView")
End Sub
Private Function GetProgID(ByVal DllName As String, ByVal CoClassName As String) As String
Dim info As olelib.ITypeLib
Set info = LoadTypeLibEx(DllName, REGKIND_NONE)
Dim tc As olelib.ITypeComp
Set tc = info.GetTypeComp()
Dim ti As olelib.ITypeInfo
tc.BindType CoClassName, 0&, ti, Nothing
Dim ta As olelib.TYPEATTR, pta As Long
pta = ti.GetTypeAttr
olelib.MoveMemory ta, ByVal pta, Len(ta)
ti.ReleaseTypeAttr pta
'это нужно чисто для отладки
Dim ClsId As String
ClsId = SysAllocString(StringFromCLSID(ta.IID))
Debug.Print ClsId
GetProgID = SysAllocString(ProgIDFromCLSID(ta.IID))
End Function
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8