CoInitialize()与COM

转载 2013年12月05日 19:34:21

Coinitialize  参数为保留参数,必须为NULL

CoInitialize是 Windows提供的API函数,用来告诉 Windows以单线程的方式创建com对象。应用程序调用com库函数(除CoGetMalloc和内存分配函数)之前必须初始化com库。  

返回值S_OK : 该线程中COM库初始化成功S_FALSE 该线程中COM库已经被初始化 CoInitialize () 标明以单线程方式创建。  使用 CoInitialize 创建可以使对象直接与线程连接,得到最高的性能。  

CoInitialize并不装载COM 库,它只用来初始化当前线程使用什么样的套间。使用这个函数后,线程就和一个套间建立了对应关系。线程的套间模式决定了该线程如何调用COM对象,是否需要列集等。  

CoInitialize ()并不会干扰客户和服务器之间的通信,它所做的事情是让线程注册一个套间,而线程运行过程中必然在此套间。   CoInitialize和CoUninitialize必须成对使用

在每个线程函数里,如果要使用COM对象就需要调用CoInitialize或CoInitializeEX 在线程退出的时候释放. 当然如果你的线程不需要COM对象,就没必调用.

COM(ComponentObjectModel,组件对象模型) 在Windows操作平台下,众多以COM形式提供的组件模块,如DirectX多媒体软件包、OLEDB/ADO数据库组件系统等,极大地丰富了操作系统的功能。由于COM机制允许任意两组件之间相互通信而不必关心是在何种计算机上的何种操作系统下运行,也不用关心组件是使用何种语言编制的,这使COM技术拥有了强大的生命力。尤其是Windows2000同COM的下一代产品COM+的结合更加紧密,将使COM/COM+技术得到更广泛的应用

 

 

初始化COM环境的目的是使调用COM的API工作正常,也就是在COM操作之前调用 ::CoInitialize或 ::CoInitializeEx就可以。位置不重要。

多线程调用COM组件的体会(CoInitialize)

调用任何COM组件之前,你必须首先初始化COM套件环境,即调用CoInitialize或CoInitializeEx。COM套件环境在线程的生存周期内有效,线程退出前需要调用CoUninitializ...
  • god00
  • god00
  • 2011年07月27日 19:15
  • 584

delphi使用COM控件的时候是否需要CoInitialize

转载:本文转自CSDN上tingsking18的博客   delphi使用COM控件的时候是否需要CoInitialize MSDN上CoInitialize的解释: Initializes ...

COM库调用时的初始化:CoInitialize

CoInitialize(LPVOID),它将以特定参数调用CoInitializeEx,为当前单元初始化COM库,并标记协同模式为单线程模式。参数必须为NULL。这是关于OLE和COM的问题。 ...

多线程调用COM组件的体会(CoInitialize)

调用任何COM组件之前,你必须首先初始化COM套件环境,即调用CoInitialize或CoInitializeEx。COM套件环境在线程的生存周期内有效,线程退出前需要调用CoUninitializ...
  • lp2007
  • lp2007
  • 2013年06月25日 17:37
  • 1175

::Coinitialize and ::CoUninitialize

Coinitialize  参数为保留参数,必须为NULL CoInitialize是 Windows提供的API函数,用来告诉 Windows以单线程的方式创建com对象。应用程序调用com库...

CoInitializeEx 与CoInitialize的区别

CoInitialize、CoInitializeEx都是windows的API,主要是告诉windows以什么方式为程序创建COM对象,原因是程序调用com库函数(除CoGetMalloc和内存分配...

Delphi中CoInitialize之探究

CoInitialize(LPVOID),它将以特定参数调用CoInitializeEx,为当前单元初始化COM库,并标记协同模式为单线程模式。参数必须为NULL。这是关于OLE和COM的问题。   ...

AfxOleInit()和::CoInitialize(NULL)区别

OLE是建立在COM之上的技术,层次比COM要高。AfxOleInit()调用的是OleInitialize(),而OleInitialize()除了调用CoInitializeEx()来初始化COM...

COM中的IDL语言的难点之接口指针

IDL前置声明语法:: SOLVED Add a forward declaration - at the TOP of IDL file: import "ocidl.idl"; int...

原文:一套HTML网站后台信息管理静态网页模版下载 源代码下载地址:http://www.zuidaima.com/share/1821271068036096.htm 体验地址:http://18

d 原文:一套HTML网站后台信息管理静态网页模版下载 源代码下载地址:http://www.zuidaima.com/share/1821271068036096.htm ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CoInitialize()与COM
举报原因:
原因补充:

(最多只允许输入30个字)