COM笔记-COM库函数
COM在OLE32.DLL和 OLE32.LIB定义了一些常用的函数。在使用这些函数前要先调用CoInitialize来初始化COM库。当进程不再需要使用COM库函数时要调用CoUninitialize.
原型:
WINOLEAPI CoInitialize(__in_opt LPVOID pvReserved); // pvReserved为NULL
WINOLEAPI_(void) CoUninitialize(void);
由于对每一个进程,COM库只需初始化一次,并且由于COM是用于创建组件的,因此进程中组件无需初始化COM库。COM库的初始化一般只是在EXE中进行,而DLL中则无需进行。
关于OleInitialize的使用
OLE是建立在COM基础之上的,它增加了对类型库、剪贴板、拖放、AcitiveX文档、自动化以及AcitveX控件的支持。在使用这些特性时,应调用OleInitialize及OleInitialize,但如果不使用那些额外的功能,使用Ole***会造成资源的浪费。
看例子:http://www.cnblogs.com/fangyukuan/archive/2010/04/09/1708651.html

#include "stdafx.h"
#include<iostream>
using namespace std;
#include "http://www.cnblogs.com/ATLComDemo/ATLComDemo/ATLComDemo_i.c"
#include "http://www.cnblogs.com/ATLComDemo/ATLComDemo/ATLComDemo_i.h"
int _tmain(int argc, _TCHAR* argv[])
{
//声明HRESULT和Ikuan接口指针
Ikuan * IkuanATL = NULL;
HRESULT hr = CoInitialize(NULL); //初始化COM
//使用SUCCEEDED宏并检查我们是否能得到一个接口指针
if(SUCCEEDED(hr))
{
hr = CoCreateInstance(CLSID_kuan,
NULL,
CLSCTX_INPROC_SERVER,
IID_Ikuan,
(void **)&IkuanATL);
//如果成功,则调用AddNumbers方法,否则显示相应的出错信息
if(SUCCEEDED(hr))
{
long ReturnValue;
IkuanATL->Add(8,9,&ReturnValue);
cout << "The answer for 8+9 is:" << ReturnValue << endl;
IkuanATL->Release();
}
else
{
cout << "CoCreateInstance Failed." << endl;
}
}
CoUninitialize();//释放COM
return 0;
}

本文地址:http://www.cnblogs.com/fangyukuan/archive/2010/06/11/1756677.html
COM笔记-COM库函数的更多相关文章
- CUDA库函数使用笔记与案例(一)
项目合作中需要整合对方公司提供的CUDA代码,因此需要详细学习代码中涉及的cuda函数. CUDA Tool Kit 8.0较完整的官方说明文档: http://docs.nvidia.com/cud ...
- 《你必须知道的495个C语言问题》读书笔记之第11-14章:ANSI C标准、库函数、浮点数
一.ANSI C标准 1. ANSI向C语言预处理器引入了几项新的功能,包括“字符串化”操作符(#).“符号粘贴”操作符(##).#pragma指令. 2. Q:char a[3] = "a ...
- Yocto开发笔记之《Tip-stdlib库函数strtod返回nan错误》(QQ交流群:519230208)
2015.04-imx_v2015.04_3.14.38_6ul_ga+g5d63276 (Jan 04 2016 - 18:07:08) FSL Community BSP : https://co ...
- C库函数笔记
一.string.h 1.memcpy 函数原型:void *memcpy(void *dest, const void *src, size_t n); 功能:从源src所指的内存地址的起始位置开始 ...
- STM32F407 按键输入实验 库函数版 个人笔记
读取IO口输入的函数: STM32F4 的 IO口做输入使用的时候,是通过调用函数 GPIO_ReadInputDataBit()来读取 IO 口的状态的.了解了这点,就可以开始我们的代码编写了. 按 ...
- STM32F407 GPIO 库函数编程套路(led与beep总结) 个人笔记
本文由正点原子STM32F407探索者开发板的led和beep实验,总结了gpio编程的套路. 下文中以hardware 来称呼可能的硬件外设,如led或beep等. 新建项目后主要用到三个文件:ha ...
- STM32F407 跑马灯 库函数版 个人笔记
原理图: MCU在开发板原理图的第二页,LED在开发板原理图的第三页 由图可知,PF9 ,PF10 若输出低电平则灯亮,高电平则灯灭 选推挽输出 代码步骤 使能IO口时钟. 调用函数RCC_AHB1P ...
- 【转】COM技术内幕(笔记)
COM技术内幕(笔记) COM--到底是什么?--COM标准的要点介绍,它被设计用来解决什么问题?基本元素的定义--COM术语以及这些术语的含义.使用和处理COM对象--如何创建.使用和销毁COM对象 ...
- C++笔记(3):一些C++的基础知识点
前言: 找工作需要,最近看了下一些C++的基本概念,为范磊的<零起点学通C++>,以下是一些笔记. 内容: delete p;只是删除指针p指向内存区,并不是删除指针p,所以p还是可以用 ...
随机推荐
- ArcnLinux安装基础配置(二)
本文为对此ArchLinux安装使用教程网站中部分内容的总结和扩展补充,想看更详细的内容可以去此网站. 添加一个用户 useradd -m -G wheel -s /bin/bash cirry 设置 ...
- Python使用笔记20--网络操作小练习
1 ''' 2 2.自己抓取qq群的接口,传入一个群号,然后把群成员的头像下载到本地,头像用群备注来命名,如果没有 3 群备注,那么取昵称. 4 ''' 5 import requests 6 imp ...
- C语言:printf("")标志详解
%d 十进制整数 %ld 十进制长整型 %hd 十进制短整型 %o 八进制整数 %X %x 十六进制 整数 %f 以十进制形式输出 float 类型: %lf 以十进制形式输出 double 类 ...
- Spring boot+Mybatis+MySQL插入中文乱码
转载:https://www.jianshu.com/p/bd0311a33c16 现象: 搭建spring boot+mybatis+mysql时出现插入mysql的中文出现乱码???. mys ...
- Vue+axios的四种异步请求,参数的携带以及接收
Vue中axios发送GET, POST, DELETE, PUT四种异步请求,参数携带和接收问题 web.xml配置如下 1.GET请求 发送GET请求: <!--params是关键字,说明所 ...
- Java的锁升级策略
什么是锁? java中,synchronized永远都是锁定的一个对象,那么jvm是怎么判断一个对象是被锁定的呢. java的对象内存分布 Java的对象由对象头,对象体和填充空间(Padding)组 ...
- ES6 数值类型常用方法
ES6 数值类型常用方法 <script type="text/javascript"> // Number常用方法 /* Number.isFinite() 用来检查 ...
- PAT乙级:1070 结绳 (25分)
PAT乙级:1070 结绳 (25分) 题干 给定一段一段的绳子,你需要把它们串成一条绳.每次串连的时候,是把两段绳子对折,再如下图所示套接在一起.这样得到的绳子又被当成是另一段绳子,可以再次对折去跟 ...
- 跨域jsonp+jQuery+json+html动态生成表格
1.什么是跨域 浏览器对于javascript的同源策略的限制,例如a.cn下面的js不能调用b.cn中的js,对象或数据(因为a.cn和b.cn是不同域),所以跨域就出现了. 凡是拥有scr这个属性 ...
- ASM入网小助手卸载
目录 ASM小助手卸载 写在前的 卸载 解除U盘禁用 写在后的 ASM小助手卸载 写在前的 有些公司内网的上网认证是用的ASM小助手,不过有时候用自己电脑接入公司内网可能会主动下载到ASM入网小助手的 ...