Поделиться через


Управление выделением памяти

В COM многие, если не большинство, методы интерфейса вызываются кодом, написанным одной организацией программирования и реализованы кодом, написанным другим. Многие из параметров и возвращаемых значений этих функций представляют собой типы, которые могут передаваться по значению. Однако иногда необходимо передать структуры данных, для которых это не так, поэтому для вызывающей и вызываемой стороны необходимо иметь совместимую политику выделения и отмены выделения. COM определяет универсальное соглашение о выделении памяти, потому что это более разумно, чем определять правила для каждого отдельного случая, чтобы реализация вызова удаленной процедуры COM могла правильно управлять памятью.

Методы COM-интерфейса всегда обеспечивают управление памятью указателей на интерфейс, вызывая функции AddRef и Release, найденные в интерфейсе IUnknown, из которого производны все остальные интерфейсы COM. (Дополнительные сведения см. в правилах управления счетчиками ссылок.)

В этом разделе рассматривается только выделение памяти для параметров, которые не передаются по значению; это касается более простых элементов, таких как строки, указатели на структуры и т. д., а не указателей на интерфейсы.

Дополнительные сведения см. в следующих разделах: