管理内存分配

在 COM 中,许多接口方法(如果不是大多数)由一个编程组织编写的代码调用,并由另一个编程组织编写的代码实现。 这些函数的许多参数和返回值都可以按值传递。 但是,有时,必须在其他情况下传递数据结构,因此调用方和被调用方必须具有兼容的分配和取消分配策略。 COM 定义内存分配的通用约定,这比定义个案规则更合理,因此 COM 远程过程调用实现可以正确管理内存。

COM 接口的方法始终通过调用 IUnknown 接口(从中派生所有其他 COM 接口)中找到的 AddRefRelease 函数来提供指向接口的指针的内存管理。 (有关详细信息,请参阅管理引用计数的规则。)

本部分仅介绍如何为未按值传递的参数分配内存,这些值不是指向接口的指针,而是字符串、指向结构的指针等更普通的对象。

有关详情,请参阅以下主题: