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

文章翻譯 文章翻譯
文章編號: 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 0x8578
DEFINE_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 網站]:
http://msdn2.microsoft.com/en-us/library/bb820923.aspx

屬性

文章編號: 912239 - 上次校閱: 2007年11月22日 - 版次: 2.1
這篇文章中的資訊適用於:
  • Microsoft Office Outlook 2003
關鍵字:?
kbmt kbhowto kbinfo KB912239 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:912239
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com