vb.net中要创立com对象可以用new或者CreateObject,就像C++中的CoCreateInstance,一步调用就直接创建了com对象。在它们之中包括了对CoGetClassObject和CreateInstance的调用。默认使用的类厂是IClassFactory。
一般情况下,new或CreateObject已经够用了。但是如果我们的com组件增加了授权,也就是使用了IClassFactory2接口。那么在vb中继续用这种方法就不能创建我们所需要的组件了。我们必须使用IClassFactory2。
在C++中实现很简单。只需要通过CoGetClassObject获得IClassFactory2接口,然后调用它的CreateInstanceLic来创建组件。
因此,在vb.net中,我们就可以仿照c++中的方法。下面是相关代码:
首先声明IClassFactory2的接口。IClassFactory2.idl如下:
[
uuid(6ED6AF97
-
F279
-
4d57
-
A392
-
0B8ACF89426C),
version(
1.0
),
helpstring(
"
INVENTOROCIDL Type Library 1.0
"
)
]
library INVENTOROCIDL
...
{
interface IClassFactory2;
typedef enum enuCLSCTX
...{
enuCLSCTX_INPROC_SERVER = 1,
enuCLSCTX_INPROC_HANDLER = 2,
enuCLSCTX_LOCAL_SERVER = 4,
enuCLSCTX_REMOTE_SERVER = 16,
enuCLSCTX_NO_CODE_DOWNLOAD =

最低0.47元/天 解锁文章
3036

被折叠的 条评论
为什么被折叠?



