適用於:Outlook 2013 |Outlook 2016
釋放透過呼叫 MAPIAllocateBuffer 函式或 MAPIAllocateMore 函式所配置的記憶體緩衝區。
| 屬性 | 值 |
|---|---|
| 標頭檔: |
Mapix.h |
| 實作者: |
Mapi |
| 通話者: |
用戶端應用程式和服務提供者 |
ULONG MAPIFreeBuffer(
LPVOID lpBuffer
);
參數
lpBuffer
[in]先前配置的記憶體緩衝區的指標。 如果在 lpBuffer 參數中傳遞 NULL,MAPIFreeBuffer 就不會執行任何動作。
傳回值
S_OK
呼叫成功,並釋放要求的記憶體。 MAPIFreeBuffer 也可以在已釋放的位置傳回S_OK,或者如果未使用 MAPIAllocateBuffer 和 MAPIAllocateMore 設定記憶體區塊,則傳回 。
註解
通常,當用戶端應用程式或服務提供者呼叫 MAPIAllocateBuffer 或 MAPIAllocateMore時,操作系統會在具有多個指標層級的一或多個連續記憶體緩衝區中建構。 當MAPI函式或方法建立具有這類內容的緩衝區時,用戶端稍後可以將 MAPIFreeBuffer 指標傳遞至建立緩衝區之MAPI函式所傳回的緩衝區,以釋放緩衝區中包含的所有結構。 若要讓服務提供者使用 MAPIFreeBuffer釋放記憶體緩衝區,它必須將指標傳遞至與提供者支持物件一起傳回的緩衝區。
當用戶端或提供者使用此緩衝區完成時,必須立即呼叫 MAPIFreeBuffer 以釋放特定緩衝區。 只要在MAPI會話結束時呼叫 IMAPISession::Logoff 方法,就不會自動釋放記憶體緩衝區。
用戶端或服務提供者應該在從 MAPIFreeBuffer 成功傳回之後,假設傳入 lpBuffer 的指標無效。 如果指標指出傳訊系統未透過 MAPIAllocateBuffer 或 MAPIAllocateMore 或可用記憶體區塊配置的記憶體區塊配置的記憶體區塊, 則MAPIFreeBuffer 的行為是未定義的。
注意事項
將 Null 指標傳遞至 MAPIFreeBuffer 可讓應用程式清除程式代碼變得更簡單且更小,因為 MAPIFreeBuffer 可以將指標初始化為 NULL,然後在清除程式代碼中釋放它們,而不需要先測試它們。