ADRLIST 構造体と SRowSet 構造体のメモリ管理"

適用対象: Outlook 2013 | Outlook 2016

1 つの MAPIAllocateBuffer 呼び出しで可能な限りすべてのメモリをバッファーに割り当てる要件は、アドレス一覧、 ADRLIST、行セット、 または SRowSet 構造体を使用する場合には適用されません。

これら 2 つの構造体は、メモリの割り当てと解放に関する標準規則の例外です。 複数のレベルの構造体が含まれており、個々のメンバーを追加または削除できるように設計されています。 そのため、各プロパティは個別の割り当てである必要があります。

ほとんどの構造体が MAPIFreeBuffer の 1 回の呼び出しで解放される場合、 ADRLIST または SRowSet 構造体の個々のエントリは、 MAPIFreeBuffer の独自の呼び出しまたは FreeProws または FreePadrlist への 1 回の呼び出しで解放する必要があります。 詳細については、「 MAPIFreeBufferADRLISTおよび SRowSet」を参照してください。

FreeProwsFreePadrlist は、これらのデータ構造の解放を簡略化するために MAPI によって提供される関数です。 詳細については、「 FreeProwsFreePadrlist」を参照してください。 FreePadrlist、ADRLIST 構造体のメモリと、構造体メンバーに関連付けられているすべてのメモリを解放します。 FreeProws、SRowSet 構造体でも同じ処理を行います。

次の図は、必要な個別のメモリ割り当てを示す ADRLIST データ構造のレイアウトを示しています。 灰色のボックスには、1 回の呼び出しで割り当ておよび解放できるメモリが表示されます。

ADRLIST メモリの割り当て

ADRLIST メモリ割り当て

関連項目