关于vb.netcas的信息( 三 )


声明如下api用于得到IClassFactory2接口:
Declare Function CoGetClassObject Lib "ole32.dll" (ByRef rclsid As Guid, ByVal context As Short, ByRef serverInfo As IntPtr, ByRef riid As Guid, ByRef ppv As IntPtr) As Integer
'添加如下代码:
Const bstrInventorApplication As String = "{B6B5DC40-96E3-11d2-B774-0060B0F159EF}"
Const bstrIClassFactory2 As String = "{B196B28F-BAB4-101A-B69C-00AA00341D07}"
Const bstrIDispatch As String = "{00020400-0000-0000-C000-000000000046}"
Private IClsFry2 As INVENTOROCIDL.IClassFactory2
Dim bstrLicence As String = "12345678"'licence key
Dim guidInventorApplication As Guid = New Guid(bstrInventorApplication)
Dim guidIClassFactory2 As Guid = New Guid(bstrIClassFactory2)
Dim guidIDispatch As Guid = New Guid(bstrIDispatch)
Dim InventorGuid As INVENTOROCIDL.GUID'used by CreateInstanceLic,defined in INVENTOROCIDL
'transform Guid of IDispatch to INVENTOROCIDL.GUID
Dim byteArry() As Byte = guidIDispatch.ToByteArray()
Dim MyGC As GCHandle = GCHandle.Alloc(byteArry, GCHandleType.Pinned)
InventorGuid = CType(Marshal.PtrToStructure(MyGC.AddrOfPinnedObject, InventorGuid.GetType()), INVENTOROCIDL.GUID)
'get the IClassFactory2 Interface
Dim obj As IntPtr
CoGetClassObject(guidInventorApplication, CInt(INVENTOROCIDL.enuCLSCTX.enuCLSCTX_LOCAL_SERVER), Nothing, guidIClassFactory2, obj)
IClsFry2 = CType(Marshal.GetTypedObjectForIUnknown(obj, System.Type.GetTypeFromCLSID(guidIClassFactory2)), INVENTOROCIDL.IClassFactory2)
'create Inventor Instance by using Licence
obj = IClsFry2.CreateInstanceLic(Nothing, Nothing, InventorGuid, bstrLicence)
InvApp = CType(Marshal.GetTypedObjectForIUnknown(obj, System.Type.GetTypeFromCLSID(guidInventorApplication)), Inventor.Application)
致此创建成功!
Visual Basic的历史Visual Basic 1.0
1991——西雅图夜空的雷电
随着Windows 3.0的推出vb.netcas,越来越多的开发商对这个图形界面的操作系统产生了兴趣vb.netcas,大量的Windows应用程序开始涌现 。但是vb.netcas,Windows程序的开发相对于传统的DOS有很大的不同,开发者必须将很多精力放在开发GUI上,这让很多希望学习Windows开发的人员怯步 。1991年,微软公司展示了一个叫Thunder的产品,所有的开发者都惊呆了,它竟然可以用鼠标“画”出所需的用户界面,然后用简单的BASIC语言编写业务逻辑,就生成一个完整的应用程序 。这种全新的“Visual”的开发就像雷电(Thunder)一样,给Windows开发人员开辟了新的天地 。这个产品最终被定名为Visual Basic,采用事件驱动,Quick BASIC的语法和可视化的IDE 。Visual Basic 1.0带来的最新的开发体验就是事件驱动,它不同于传统的过程式开发 。同时,VBX控件让可视化组件的概念进入Visual Basic 。Visual Basic 1.0 是革命性的BASIC,它的诞生也是 VB 史上的一段佳话 。
Visual Basic 2.0
1992——渐入佳境
由于Windows 3.1的推出,Windows已经充分获得了用户的认可,Windows开发也进入一个新的时代 。Visual Basic 1.0的功能过于简单,相对于Windows 3.1的强大功能没有发挥出来 。所以,微软在1992年推出了新版本Visual Basic 2.0 。这个版本最大的改进就是加入了对象型变量,比如下面的两行代码:
Dim Command1 As CommandButton
Dim c As Control
不光如此,而且有了最原始的“继承”概念,对象型变量分为一般类型(Control和Form)和专有类型(CommandButton和Form1等) 。一般类型的变量可以引用专有类型的实例,甚至通过后期绑定访问专有类型的属性和方法;还可以通过TypeOf…Is运算符获取对象实例的运行时类型信息(这个功能就是当今C#的is运算符或Java的instanceof运算符) 。除了对语言的改进和扩充,Visual Basic 2.0对VBX有了很好的支持,许多第三方控件涌现出来 , 极大地丰富了Visual Basic的功能 。微软还为Visual Basic 2.0增加了OLE和简单的数据访问功能 。

推荐阅读