Управление выделением памяти
В COM многие, если не большинство, методы интерфейса вызываются кодом, написанным одной организацией программирования и реализованы кодом, написанным другим. Многие из параметров и возвращаемых значений этих функций представляют собой типы, которые могут передаваться по значению. Однако иногда необходимо передать структуры данных, для которых это не так, поэтому для вызывающего абонента и вызова необходимо иметь совместимую политику выделения и отмены выделения. COM определяет универсальное соглашение о выделении памяти, так как это более разумно, чем определение правил по регистру, поэтому реализация вызова удаленной процедуры COM может правильно управлять памятью.
Методы COM-интерфейса всегда обеспечивают управление памятью указателей на интерфейс, вызывая функции AddRef и Release, найденные в интерфейсе IUnknown, из которого наследуется все остальные интерфейсы COM. (См. раздел Правила управления счетчиками ссылок для получения дополнительных сведений .)
В этом разделе описывается только выделение памяти для параметров, которые не передаются по значению, а не указатели на интерфейсы, а более простые вещи, такие как строки, указатели на структуры и т. д.
Дополнительные сведения см. в следующих разделах: