使用ATL创建COM程序实例
来源:互联网 发布:java选择题 编辑:程序博客网 时间:2024/06/01 09:40
项目简绍:
一.利用ATL开发一个COM,实现一个可以获得当前操作系统的接.
二.创建一个Win32 console Application 程序,在其中调用创建的
1.创建工程
(1)创建一个ATL COM AppWizard,名为 test01.
(2)插入COM对象,命名为Test Atl
(3)加入接口方法HRESUTL GetOSVersion([out,retval]BSTR * bstrVersion)
(4)修改CTestAtl的函数STDMETHODIMP CTestAtl::GetVersion(BSTR *bstrVersion);
代码如下:
STDMETHODIMP CTestAtl::GetOsVersion(BSTR *bstrVersion)
{
char szOSVersion[20];
OSVERSIONINFO VersionInfomation;
VersionInfomation.dwOSVersionInfoSize=sizeof(OSVERSIONINFO);
if(GetVersionEx(&VersionInfomation))
{
switch(VersionInfomation.dwPlatformId)
{
case VER_PLATFORM_WIN32s:
strcpy(szOSVersion,"WIN32s");
break;
case VER_PLATFORM_WIN32_WINDOWS:
strcpy(szOSVersion,"WIN95/98");
break;
case VER_PLATFORM_WIN32_NT:
strcpy(szOSVersion,"WINNT");
break;
default:
strcpy(szOSVersion,"UnKnown");
break;
}
}
else
{
strcpy(szOSVersion,"ERROR");
}
* bstrVersion=_com_util::ConvertStringToBSTR(szOSVersion);
return S_OK;
}
编译程序,至此我们建立一个进程内组件,生成test01.dll.单击集成开发环境"TOOL---RegisterCotrol"菜单,注册该组件
创建客户端程序,测试该组件
#include <windows.h>
#include <stdio.h>
#include <comutil.h>
#pragma comment (lib,"comsupp.lib")
#include "../test01/test01.h"
#include "../test01/test01_i.c"
void main()
{
ITestAtl * pITestAtl=NULL;
BSTR bstrOS;
//初始化
HRESULT hr= ::CoInitialize(NULL);
if(FAILED(hr))
{
printf("组件初始化失败!hr=0x%x",hr);
return;
}
//创建COM
hr=::CoCreateInstance(CLSID_TestAtl,NULL,CLSCTX_ALL,IID_ITestAtl,(void **)&pITestAtl);
if(FAILED(hr))
{
printf("组件创建失败!hr=0x%x",hr);
::CoUninitialize();
return;
}
hr=pITestAtl->GetOsVersion(&bstrOS);
if(FAILED(hr))
{
printf("pITestAtl->GetOSVersion()方法调用失败!hr=0x%x",hr);
pITestAtl->Release();
::CoUninitialize();
return;
}
char * pszOS;
pszOS=_com_util::ConvertBSTRToString(bstrOS);
printf("this os is %s/n",pszOS);
//释放内存资源
SysFreeString(bstrOS);
delete pszOS;
pITestAtl->Release();
::CoUninitialize();
return;
}
- 使用ATL创建COM程序实例
- 创建.dll(ATL COM)文件及其使用
- 用ATL创建的com class怎样显示实例化?
- 用ATL创建COM组件及实例讲解
- ATL 创建COM对象
- 使用Atl 创建Com对象需要注意的问题
- VS2012创建ATL工程及使用MFC测试COM组件
- VS2012创建ATL工程及使用MFC测试COM组件
- VS2010创建ATL工程及使用C++测试COM组件
- 创建ATL工程及使用MFC测试COM组件
- 创建ATL工程及使用C++测试COM组件
- VS2010创建ATL工程及使用C++测试COM组件
- 如何使用C++创建COM组件(ATL项目)
- VS2012创建ATL工程及使用MFC测试COM组件
- ATL内部创建COM对象
- ATL创建进程外COM
- 【COM/ATL】创建Url快捷方式
- 用ATL开发COM组件,使用脚本调用该COM组件实例
- 连接字符串大全
- 《魂斗罗》的秘密
- Datagird TemplateColumn类型列中如何设定日期格式为yyyy-MM-dd格式?
- 和一位GUI库使用者的MSN对话
- Java 基本学习流程
- 使用ATL创建COM程序实例
- 系统调用及参数传递过程!
- 英语口语8000句(5)
- 微型嵌入式GUI开发者回答网友的问题
- 剧作家
- 择友观(上)―――或许可以对朋友宽容些
- 我的开发计划
- 择友观(下)―――或许可以对朋友宽容些
- 英语口语8000句(6)