如何使用 dispidHeaderItem MAPI 內容來識別您在 Outlook 2003 中收到的訊息的狀態

Office 2003 支援已結束

Microsoft 於 2014 年 4 月 8 日結束對 Office 2003 的支援。此變更已影響您的軟體更新和安全性選項。 瞭解這對您的意義為何且如何持續受保護。

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

按一下這裡查看此文章的英文版本:912239
本文已封存。本文係以「現狀」提供且不會再更新。
簡介
本文將告訴您,如何使用 dispidHeaderItem MAPI 屬性來識別您在 Microsoft Office Outlook 2003 中收到的訊息的目前狀態。
其他相關資訊
如果 Outlook 2003 設定為連線至 IMAP 或 POP3 電子郵件伺服器,郵件會下載到個人資料夾 (.pst) 檔案。當 Outlook 2003 設定為連線到 Microsoft Exchange Server 2003 伺服器時,您也可以設定 Outlook 2003 下載郵件到.pst 檔案。 此外,您可以設定 Outlook 2003 在快取 Exchange 模式中工作。在快取 Exchange 模式 」 中的郵件會下載到離線資料夾 (.ost) 檔案。

Outlook 2003 是設定成在快取 Exchange 模式中工作,或設定以連線至 IMAP 電子郵件伺服器時, 下載到用戶端電腦上的.ost 或.pst 檔案的訊息可以處於下列狀態之一:
  • 標頭只被下載
  • 標頭和主體兩者下載
您可以使用 dispidHeaderItem MAPI 內容來識別.ost 或.pst 檔案中的訊息是否在 」 只下載標題 」 或 「 標頭和主體兩者下載 」 狀態。dispidHeaderItem MAPI 內容是 PT_LONG 資料型別,而在 PSETID_Common 命名空間。時訊息位於 」 只下載標題 」 狀態,dispidHeaderItem MAPI 屬性將傳回非零值。

附註dispidHeaderItem MAPI 內容並不會套用到遠端的傳輸標頭。遠端的傳輸標頭可以區別由 IPM.Remote 訊息類別。

下列程式碼中所定義 dispidHeaderitem MAPI 內容和 PSETID_Common 命名空間:
#define dispidHeaderItem 0x8578DEFINE_OLEGUID(PSETID_Common, MAKELONG(0x2000+(8),0x0006),0,0);
Sample code

Microsoft 僅,為了說明提供程式設計範例,不提供任何明示或默示的保證。這包括,但不限於適售性或適合某特定用途之默示擔保責任。本文假設您已熟悉使用我們所示範的程式設計語言以及建立和偵錯程序所使用的工具。Microsoft 技術支援工程師可以協助解釋特定程序的功能,但它們不會修改這些範例以提供附加功能或建構程序,以符合您特定需求。

以下是如何 dispidHeaderItem MAPI 屬性可以用來識別訊息的目前狀態的範例:
BOOL bIsHeader(LPMESSAGE lpMessage){	HRESULT         hRes = S_OK;	BOOL            bRet = false;	ULONG	          ulVal = 0;	LPSPropValue    lpPropVal = NULL;	LPSPropTagArray lpNamedPropTag = NULL;	MAPINAMEID      NamedID = {0};	LPMAPINAMEID    lpNamedID = NULL;	NamedID.lpguid = (LPGUID) &PSETID_Common;	NamedID.ulKind = MNID_ID;	NamedID.Kind.lID = dispidHeaderItem;	lpNamedID = &NamedID;	hRes = lpMessage->GetIDsFromNames(1, &lpNamedID, NULL, &lpNamedPropTag);	if (lpNamedPropTag && 1 == lpNamedPropTag->cValues)	{		lpNamedPropTag->aulPropTag[0] = CHANGE_PROP_TYPE(lpNamedPropTag->aulPropTag[0], PT_LONG);		//Get the value of the property.		hRes = lpMessage->GetProps(lpNamedPropTag, 0, &ulVal, &lpPropVal);		if (lpPropVal && 1 == ulVal && PT_LONG == PROP_TYPE(lpPropVal->ulPropTag) && lpPropVal->Value.ul)		{			bRet = true;		}	}		MAPIFreeBuffer(lpPropVal);	MAPIFreeBuffer(lpNamedPropTag);	return bRet;}
参考
如需詳細資訊請造訪下列 Microsoft 網站]:
ol2003

警告:本文為自動翻譯

內容

文章識別碼:912239 - 最後檢閱時間:01/16/2015 08:51:29 - 修訂: 2.1

Microsoft Office Outlook 2003

  • kbnosurvey kbarchive kbmt kbhowto kbinfo KB912239 KbMtzh
意見反應
ERROR: at System.Diagnostics.Process.Kill() at Microsoft.Support.SEOInfrastructureService.PhantomJS.PhantomJSRunner.WaitForExit(Process process, Int32 waitTime, StringBuilder dataBuilder, Boolean isTotalProcessTimeout)