返回首页

问:?有谁知道为什么我可以得到的事件之间的净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 

 

回答

评论会员: 时间:2
|