发表于:2004-06-01 17:03:00
楼主
组件的使用
1、必须有组件ID
2、必须有各接口ID
3、必须有各接口的声明及各接口中各函数的声明
4、首先初始化(分配空间)代码:CoInitialize(NULL);//一般来说这条代码执行肯定能成功
5、创建实例
hr = CoCreateInstance(CLSID_Mine, // CLSID of COM server,所以要求有组件的ID
NULL,
CLSCTX_INPROC_SERVER, // 进程内服务器
IID_IunKnown, // the interface IID,所以要求有各接口的ID
(void**)&pmine// 要返回的接口指针,所以要求有个接口的声明
);
6、有了IunKnown接口的指针pmine,我们就可以使用其QueryInterface方法查询其他所有的接口了,但有个前提, 必须知道其它接口的ID并有其声明
hr=pmine->QueryInterface(要找的接口的ID,要找的接口的指针);//查询成功后就可以使用这个指针访问此接口 的方法(这些方法应该在接口的声名中包含)
7、组件使用结束后,组件自己可以根据对他的引用数来判断是否卸载。
OPC组件的使用
1、必须有OPC组件ID
2、必须有各接口ID
3、必须有各接口的声明及各接口中各函数的声明
4、首先初始化(分配空间)代码:CoInitialize(NULL);//一般来说这条代码执行肯定能成功
5、创建实例
hr = CoCreateInstance(CLSID_Mine, // CLSID of COM server,所以要求有组件的ID
NULL,
CLSCTX_INPROC_SERVER, // 进程内服务器
IID_IunKnown, // the interface IID,所以要求有各接口的ID
(void**)&pmine// 要返回的接口指针,所以要求有个接口的声明
);
6、有了IunKnown接口的指针pmine,我们就可以使用其QueryInterface方法查询其他所有的接口了,但有个前提, 必须知道其它接口的ID并有其声明
hr=pmine->QueryInterface(要找的接口的ID,要找的接口的指针);
7、添加GROUP和ITEM
//此处与com不同,需要添加GROUP和ITEM//??这是为什么,为何不像com中的那样直接调用方法。