所有com组件和客户需要一些相同操作,为保证这些操作是按标准来的,com定义了一个函数库来实现所有这些操作。此函数库是在 ole32.dll中实现的。在使用静态链接时,可以使用ole32.lib。
com库的初始化,除了CoBuildVersion必须首先调用CoInitialize来初始化com库函数。当进程不再需要库函数时,必须调用CoUninitialize。
对于一个进程只需初始化一次com库,如果多次初始化,必须保证每个都有对应的CoUninitialize.
OleInitialize基于com,增添了更多功能。
内存管理。
在组件中分配一块内存,产生问题:有谁来释放? 如何释放?
com解决这一问题方案是:提供一个任务内存分配器。使用它,com可以提供一块可以由客户删除的内存。