问:?有谁知道为什么我可以得到的事件之间的净UserControl和VB6的形式,托管在一个reg免费COM环境,用户通过VBControlExtender控制火
VB6的结束似乎并不承认。网用户控制的事件源,并因此无法调用劝。
我最成功运行VB6的EXE的一部分。NET组件,COM注册没有使用COM Interop中使用的SxS章免费的COM舱单。
我的VB6的EXE使用许多VB ActiveX控件没有注册没有问题,但是我只能VBControlExtender工作单程VB6的EXE主办。NET用户控制,即控制事件不会触发。
如果我注册我的DLL regasm mydotneusercontrol.dll如下火灾事件失败
如果我注册类型库的DLL如下regasm mydotneusercontrol.dll / TLB mydotneusercontrol.tlb的事件火
如果我使用了一个的SXS清单并没有登记mydotneusercontrol.dll我的用户控件托管在VB6的形式,但再次发生的事件不火
我的清单如下:
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestversion="1.0">
<assemblyidentity>
name="mydotneusercontrol"
version="6.8.0.0"
processorArchitecture="msil">
</assemblyidentity>
<clrclass>
clsid="{123456AF-B555-4c06-909C-CDE19C66AD30}"
progid="mydotneusercontrol.myusercontrol"
threadingModel="Both"
name="mydotneusercontrol.myusercontrol"
runtimeVersion="">
</clrclass>
<file name="myusercontrol.dll" hashalg="SHA1"></file>
</assembly>
注:我想加入tlbid清单,但不差
这是使用MT如下:
MT-managedassemblyname:myusercontrol.dll nodependency出:myusercontrol.dll.manifest
然后嵌入在DLL如下:
山清单myusercontrol.dll.manifest-outputresource:myusercontrol.dll#1
。网络控制如下
{C}
myuserControl.EventId的ClassID InterfaceID常量定义的GUID
在VB6中端的对象被创建并在表单中使用如下
Private WithEvents EntryControl As VBControlExtender
Private Sub Form_Load()
Set EntryControl = Me.Controls.Add("mydotneusercontrol.myusercontrol", "Entry")
End Sub
Private Sub EntryControl_ObjectEvent(Info As EventInfo)
Select Case Info.Name
Case "myEvent"
' this is only called when the assembly and its type lib are register
End Select
End Sub