Initializes the COM library on the current apartment and identifies the concurrency model as single-thread apartment (STA). Applications must initialize the COM library before they can call COM library functions other than CoGetMalloc and memory allocation functions. 不需要翻译。
为什么必须使用CoInitialize,以及CoInitialize的作用是什么?
上文中说,要初始化COM库,那“初始化COM库”的真实含义是什么?
为什么必须使用CoInitialize,以及CoInitialize的作用是什么?
上文中说,要初始化COM库,那“初始化COM库”的真实含义是什么?
线程的套间模式决定了该线程如何调用com对象,是否需要列集等
你可以看一下有关列集的资料,使用不同套间之间对象接口是通过列集来完成的。关于列集的实现,很多书上都有较详细的说明。
CoInitialize()并不会干扰客户和服务之间的通信,套所作的事情只是让线程注册一个套间,而线程运行过程中就必然在此套间中,就象我们每个活着的人,都一定属于某个国家一样。
需要强调的是,套间是com中用来解决并发调用冲突的很有效的办法
可否说得详细一些?
比如CoInitialize的实现到底有些什么东西?
从本质上讲,使用COM组件的过程,就是“New”一个COM,Query一个接口,调用此接口的一个函数。
那么,COM为什么必须要让这一过程置于CoInitialize和CoUninitialize之间???其实可能就像楼上所言“线程的套间模式决定了该线程如何调用com对象,是否需要列集等”其实,我想知道的的是CoInitialize和CoUninitialize里边到底是什么猫腻???