Управление памятью для структур 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