VC创建COM工程和调用
2014-05-20 17:42
141 查看
1创建一个ATL COM工程,全部默认
2,增加一个类CY
3,增加一个类方法SHOW
调用:
#include "comat.h" //COM类
#include "comat_i.c"//COM类
int main(int argc, char* argv[])
{
//(1)在当前线程初始化COM类库为STA模式。
::CoInitialize( NULL );
IUnknown * pUnk = NULL;
Iy *pFun = NULL;
HRESULT hr;
//(2)创建实例对象,获取IUnknown接口指针
hr = ::CoCreateInstance(
CLSID_y,
NULL,
CLSCTX_INPROC_SERVER, // 以进程内组件 DLL 方式加载
IID_IUnknown, // 想取得 IUnknown 接口指针
(LPVOID *) &pUnk);
if( FAILED( hr ) ) throw( _T("没注册吧?") );
//(3)从IUnkown指针查询其他接口指针
hr=pUnk->QueryInterface(IID_Iy,(LPVOID *)&pFun);
bis=FAILED( hr );
//(4)调用所需函数
pFun->Show();
// (5)释放引用计数
pFun->Realse();
// (6)关闭当前COM环境
::CoUninitialize();
printf("Hello World!\n");
return 0;
}
2,增加一个类CY
3,增加一个类方法SHOW
调用:
#include "comat.h" //COM类
#include "comat_i.c"//COM类
int main(int argc, char* argv[])
{
//(1)在当前线程初始化COM类库为STA模式。
::CoInitialize( NULL );
IUnknown * pUnk = NULL;
Iy *pFun = NULL;
HRESULT hr;
//(2)创建实例对象,获取IUnknown接口指针
hr = ::CoCreateInstance(
CLSID_y,
NULL,
CLSCTX_INPROC_SERVER, // 以进程内组件 DLL 方式加载
IID_IUnknown, // 想取得 IUnknown 接口指针
(LPVOID *) &pUnk);
if( FAILED( hr ) ) throw( _T("没注册吧?") );
//(3)从IUnkown指针查询其他接口指针
hr=pUnk->QueryInterface(IID_Iy,(LPVOID *)&pFun);
bis=FAILED( hr );
//(4)调用所需函数
pFun->Show();
// (5)释放引用计数
pFun->Realse();
// (6)关闭当前COM环境
::CoUninitialize();
printf("Hello World!\n");
return 0;
}
相关文章推荐
- VB创建ActiveX dll 的COM服务器,VC调用VB COM方法
- 用VC创建供PB调用的DLL
- 在Delphi和VC中创建和调用动态链接库 (转)
- C#创建COM供PB调用
- VC创建工程时,不能与Winodows系统关键程序同名
- vc 如何调用com
- 急问!急问!vc调用vb做的包含窗体的COM出错!
- vc 创建dll文件以及dll调用
- Delphi中如何调用VC++创建的动态链接库
- (VC)MDI工程中,在自定义类中调用文档类的函数
- C#创建COM供PB调用
- 用VC创建供PB调用的DLL
- .NET 创建可以供VB调用的COM
- DMO(DirectX Media Object)的工程创建过程及其调用方式
- VC中DLL的创建及调用方法
- Java如何通过VC调用VB编写的COM
- VC++的中简单COM调用
- 用VC++.Net 创建纯资源类库, 并在MFC Application中调用
- VC中DLL的创建及调用方法
- Delphi中如何调用VC++创建的动态链接库(zhuan)