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


Управление памятью для структур ADRLIST и SRowSet"

Область применения: Outlook 2013 | Outlook 2016

Требование выделять всю память для буфера по возможности с помощью одного вызова MAPIAllocateBuffer не применяется при использовании структур списка адресов или ADRLIST и набора строк или SRowSet.

Эти две структуры являются исключениями из стандартных правил выделения и освобождения памяти. Они содержат несколько уровней структур и предназначены для добавления или удаления отдельных элементов. Поэтому каждое свойство должно быть отдельным выделением.

Если большинство структур освобождается одним вызовом MAPIFreeBuffer, каждая отдельная запись в структуре ADRLIST или SRowSet должна быть освобождена с помощью собственного вызова MAPIFreeBuffer или одного вызова FreeProws или FreePadrlist. Дополнительные сведения см. в разделах MAPIFreeBuffer, ADRLIST и SRowSet.

FreeProws и FreePadrlist — это функции, предоставляемые MAPI для упрощения освобождения этих структур данных. Дополнительные сведения см. в разделах FreeProws и FreePadrlist. FreePadrlist освобождает память для структуры ADRLIST , а также всю связанную память для членов структуры; FreeProws делает то же самое для структуры SRowSet .

На следующей схеме показан макет структуры данных ADRLIST , указывающий на необходимые отдельные выделения памяти. В серых полях отображается память, которую можно выделить и освободить с помощью одного вызова.

Выделение памяти ADRLIST

Выделение памяти ADRLIST

См. также