IMessage::OpenAttach
適用於:Outlook 2013 |Outlook 2016
開啟附件。
HRESULT OpenAttach(
ULONG ulAttachmentNum,
LPCIID lpInterface,
ULONG ulFlags,
LPATTACH FAR * lppAttach
);
參數
ulAttachmentNum
[in]要開啟之附件的索引編號,儲存在附件的 PR_ATTACH_NUM (PidTagAttachNumber) 屬性中。 此索引編號可唯一識別訊息中的附件,而且只在訊息的內容中有效。
lpInterface
[in]IID (介面識別碼的指標,) 表示要用來存取附件的介面。 傳遞 NULL 會導致傳回附件的標準介面或 IAttach。
ulFlags
[in]控制附件開啟方式的旗標位掩碼。 您可以設定下列旗標:
MAPI_BEST_ACCESS
要求以用戶允許的最大網路許可權和最大用戶端應用程式存取權來開啟附件。 例如,如果用戶端具有讀取/寫入許可權,則應該以讀取/寫入許可權開啟附件;如果用戶端具有只讀存取權,則應該以唯讀存取權開啟附件。
MAPI_DEFERRED_ERRORS
允許 OpenAttach 成功傳回,可能在附件完全可供呼叫的用戶端使用之前。 如果附件無法使用,則進行後續呼叫可能會導致錯誤。
MAPI_MODIFY
要求讀取/寫入許可權。 根據預設,附件會以唯讀存取權開啟,而用戶端不應在已授與讀取/寫入許可權的假設下運作。
lppAttach
[out]開啟附件指標的指標。
傳回值
S_OK
已成功開啟附件。
註解
IMessage::OpenAttach 方法會開啟訊息的附件。
呼叫者注意事項
若要開啟附件,您必須能夠存取其附件編號或 PR_ATTACH_NUM 屬性。 呼叫 IMessage::GetAttachmentTable 以擷取訊息的附件數據表,並找出代表要開啟之附件的數據列。 如需詳細資訊,請參閱 開啟附件 。
請勿嘗試開啟一個附件多次;結果未定義且相依於訊息存放區提供者。
您可以要求以讀取/寫入模式開啟附件,而不是預設只讀模式。 不過,是否要以讀取/寫入模式實際開啟附件,是由訊息存放區提供者決定。 您可以嘗試修改附件、準備處理可能的失敗,或是擷取附件的 PR_ACCESS_LEVEL (PidTagAccessLevel) 屬性來檢查已授與的存取層級。
MFCMAPI 參考
如需 MFCMAPI 範例程式代碼,請參閱下表。
檔案 | Function | Comment |
---|---|---|
AttachmentsDlg.cpp用來 |
CAttachmentsDlg::OpenItemProp |
MFCMAPI 使用 IMessage::OpenAttach 方法開啟附件物件, |