VC2015调用COM组件

VC++中调用COM组件的方法很多.这里只说其中一种.须将COM库自动生成的*_i.h和*_i.c文件添加到工程中.

    #include "ATLMain_i.h"
    IMyAtlClass * pIStatisticATL = NULL;
	HRESULT hr = CoInitialize(NULL);//初始化COM

    //使用SUCCEEDED宏并检查我们是否能得到一个接口指针
	if (SUCCEEDED(hr))
	{
		hr = CoCreateInstance(CLSID_MyAtlClass,//COM对象的标志符(自己添加的类)
			NULL,
			CLSCTX_INPROC_SERVER,
			IID_IMyAtlClass,//COM接口的标识符(自己添加的接口)
			(void **)&pIStatisticATL);
		//如果成功,则调用Add方法,否则显示相应的出错信息
		if (SUCCEEDED(hr))
		{
			LONG nReturnValue;
			pIStatisticATL->Sum(1, 2, &nReturnValue);
			TRACE(_T("%d"), nReturnValue);
			pIStatisticATL->Release();
		}
		else
		{
			TRACE (_T("CoCreateInstance Failed." ));
		}
	}
	CoUninitialize();//释放COM

在*_i.h文件中,COM对象类标识符,作为CoCreateInstance时的第一个参数。

EXTERN_C const CLSID CLSID_MyAtlClass;

COM类对象所对应的接口标识符,用来调用成员方法。

EXTERN_C const IID IID_IMyAtlClass;

原文地址:http://blog.51cto.com/9233403/2068551

时间: 2024-10-11 13:16:08

VC2015调用COM组件的相关文章

C#调用htmlfile组件,并执行js函数

前一篇我测试了vba调用htmlfile做反混淆,并执行js函数的代码.本文换成C#实现. 本文地址:http://www.cnblogs.com/Charltsing/p/CSharpEval.html 联系QQ:564955427 C#调用com组件需要使用CreateInstance,当然,我们也可以通过反编译vb.net里面的CreatObject来修改成C#代码.我从网上下载了一个 [SecurityPermission(SecurityAction.Demand, Unmanaged

Jacob调用COM组件总结,实例

转自:http://blog.csdn.net/whw6_faye/article/details/5418506 最近做了一个Java Jacob调用COM组件的东西,其中遇到了不少问题,现在把经验总结一下和大家分享. 1.Jacob安装 Google一下,下载Jacob最新版.我这里用的是Jacob-1.15 把Jacob.jar放到你Java工程的lib目录下,引入项目 Jacob自带了两个dll, jacob-1.15-M3-x64.dll 和jacob-1.15-M3-x86.dll,

Titanium中调用ios组件时语言不是本地化的解决方法

用Titanium开发的ios应用中,当调用系统组件时,尽管手机已经设置了系统语言为中文,但那些组件的界面却仍为英文.比如调用iphone中的相册组件,其界面为: 那么怎么让它跟系统语言保持一致呢? 在原生的ios开发中,只需要在info.plist中把 CFBundleAllowMixedLocalizations 设置为 true 就行了,代表Localized resources can be mixed,就是允许库使用本地语言资源. 那么在Titanium中该怎么做呢? 其实也很简单,T

NET调用Com组件事例

http://blog.csdn.net/shizhiyingnj/article/details/1507948 在程序设计中,往往通过键盘的某个按键来完成相关操作! 下面就来说明如何实现: 1.引入名称空间; using System.Runtime.InteropServices; (由于使用到API(user32.dll) 2.使用API [DllImport("user32.dll", CharSet = CharSet.Auto)]  private static exte

VS2010调用Com组件

Com组件开发过程中用的不多,资料也不多,故记录开发Com组件中的部分问题. 在这一篇文章里,讲解了如何使用VS2010创建Com组件.现在基于该文章创建的Com组件接口,创建VC++项目来调用该接口. 使用流程 新建win32控制台项目. 主文件代码如下: #include "stdafx.h" #include "../testCom/testCom_i.h" #include "../testCom/testCom_i.c" int _tm

C语言调用COM组件

调用COM组件最简单的语言当然是C++,但在某些情况下,不得不用C语言.本文介绍用C语言调用COM组件的方法. 为了更好的理解C的做法,我们要先看一看C++调用COM组件是怎么做的. 一.C++方式 从 Windows 7 开始,任务栏可以显示进度条,就以这个接口为例吧. ITaskbarList4 *pTaskbar = nullptr; HRESULT hResult = ::CoCreateInstance(CLSID_TaskbarList, nullptr, CLSCTX_INPROC

vue组件之间的通信以及如何在父组件中调用子组件的方法和属性

在Vue中组件实例之间的作用域是孤立的,以为不能直接在子组件上引用父组件的数据,同时父组件也不能直接使用子组件的数据 一.父组件利用props往子组件传输数据 父组件: <div> <child v-bind:my-message="parentMsg"></child>//注意传递参数时要用-代替驼峰命名,HTML不区分大小写 </div> 子组件: Vue.component('child', { // camelCase in Ja

java调用com组件操作word使用总结(jacob)

ava调用com组件操作word使用总结(jacob) 简单描述 在此处输入简单摘要 特别声明:使用java-com技术可以完成任何VBA可以完成的office文档操作; 一.准备工作 先了解一下概念,JACOB 就是 JAVA-COM Bridge的缩写,提供自动化的访问com的功能,也是通过JNI功能访问windows平台下的com组件或者win32系统库的.这是一个开始于 1999年的开源项目的成果,有很多使用者对该项目进行了修改,做出了自己的贡献. Jacob下载地址: http://s

[转]C# 互操作性入门系列(四):在C# 中调用COM组件

传送门 C#互操作系列文章: C#互操作性入门系列(一):C#中互操作性介绍 C#互操作性入门系列(二):使用平台调用调用Win32 函数 C# 互操作性入门系列(三):平台调用中的数据封送处理 C#互操作性入门系列(四):在C# 中调用COM组件 本专题概要: 引言 如何在C#中调用COM组件--访问Office 互操作对象 在C# 中调用COM组件的实现原理剖析 错误处理 小结 一.引言 COM(Component Object Modele,组件对象模型)是微软以前推崇的一个开发技术,所以