IMAPIFolder::CreateMessage
適用於:Outlook 2013 |Outlook 2016
建立新的訊息。
HRESULT CreateMessage(
LPCIID lpInterface,
ULONG ulFlags,
LPMESSAGE FAR * lppMessage
);
參數
lpInterface
[in]介面識別碼 (IID) 指標,表示要用來存取新訊息的介面。 有效的介面標識碼包括IID_IUnknown、IID_IMAPIProp、IID_IMAPIContainer和IID_IMAPIFolder。 傳遞 NULL 會導致訊息存放區提供者傳回標準訊息介面 IMessage: IMAPIProp。
ulFlags
[in]控制訊息建立方式的旗標位掩碼。 您可以設定下列旗標:
ITEMPROC_FORCE
向個人資料夾存放區 (PST) ,在存放區通知任何接聽用戶端新訊息抵達之前,訊息符合規則處理的資格。 規則處理僅適用於非 Microsoft Exchange Server 伺服器上建立的新訊息,因為 Exchange Server 處理伺服器上訊息的規則。 因此,建立訊息的提供者或客戶端必須使用 NON_EMS_XP_SAVE 搭配使用IMAPIPProp::SaveChanges儲存訊息來傳遞此旗標,這表示伺服器不是 Exchange Server。
MAPI_ASSOCIATED
要建立的訊息應該包含在相關聯的內容數據表中,而不是標準內容數據表中。 用戶互動會隱藏相關聯的訊息。
MAPI_DEFERRED_ERRORS
即使建立作業尚未完全完成,也允許 CreateMessage 成功。 這表示新的訊息可能無法立即提供給呼叫者使用。
lppMessage
[out]新建立訊息指標的指標。
傳回值
S_OK
已成功建立訊息。
註解
IMAPIFolder::CreateMessage 方法會建立具有泛型或相關聯內容的新訊息,並指派專案標識符。 項目標識碼包含代表訊息存放區提供者的元件,以及代表個別訊息的元件。
實作者注意事項
您可以選擇要在 CreateMessage 或訊息的 IMAPIProp::SaveChanges 方法中設定所有必要的訊息屬性。 在成功儲存之前,您不需要提供這些屬性。
如需如何使用相關聯資訊的詳細資訊,請參閱 資料夾相關聯的信息數據表 和 內容數據表。
呼叫者注意事項
某些訊息存放區提供者允許在 CreateMessage 傳回之後立即提供新訊息的專案識別碼;其他訊息存放區提供者會延遲其可用性,直到儲存訊息為止。 因為在您呼叫訊息的 IMAPIProp::SaveChanges 方法之前,並非所有訊息存放區提供者都會產生新訊息的專案識別碼,所以當 CreateMessage 傳回時,您可能無法存取專案標識符。 此外,在儲存發生之前,新的訊息可能不會包含在資料夾的內容數據表中。
預期指派給新訊息的專案標識符不只在目前訊息存放區中是唯一的,而且很可能在同時開啟的所有訊息存放區中是唯一的。 當配置檔中出現訊息存放區的多個專案時,就會發生此規則的一個例外狀況。 這會導致訊息存放區開啟多次,並複製專案標識碼。
若要建立傳出訊息,請呼叫 Outbox 資料夾的 IMAPIFolder::CreateMessage 方法。
如果您在儲存訊息之前刪除包含新訊息的資料夾,則結果會是未定義的。
MFCMAPI 參考
如需 MFCMAPI 範例程式代碼,請參閱下表。
檔案 | Function | Comment |
---|---|---|
FolderDlg.cpp |
CFolder::OnNewMessage |
MFCMAPI 使用 IMAPIFolder::CreateMessage 方法來建立和儲存新的訊息。 |