ENTRYID
適用於:Outlook 2013 |Outlook 2016
包含 MAPI 物件的項目識別碼。
屬性 | 值 |
---|---|
標頭檔: |
Mapidefs.h |
相關宏: |
CbNewENTRYID、 SizedENTRYID |
typedef struct
{
BYTE abFlags[4];
BYTE ab[MAPI_DIM];
} ENTRYID, FAR *LPENTRYID;
成員
abFlags
提供描述物件之資訊的旗標位掩碼。 提供者只能設定旗標 abFlags[0] 的第一個字節;其他三個會保留。 這些旗標不能設定為永久項目標識元;它們只會針對短期專案標識碼設定。 對用戶端而言,此結構是唯讀的。 您可以在 abFlags[0]中設定下列旗標:
MAPI_NOTRECIP
項目標識碼不能當做郵件上的收件者使用。
MAPI_NOTRESERVED
其他使用者無法存取專案標識碼。
MAPI_NOW
項目標識碼無法在其他時間使用。
MAPI_SHORTTERM
項目標識碼是短期的。 除非啟用專案標識碼的其他用途,否則必須設定此位元組中的所有其他值。
MAPI_THISSESSION
項目標識碼不能用於其他會話。
Ab
指出服務提供者所使用的二進位數據陣列。 用戶端應用程式無法使用此陣列。
註解
郵件存放區和通訊錄提供者會使用 ENTRYID 結構來建構其物件的唯一標識符。 專案識別碼可用來識別下列類型的物件:
訊息存放區
資料夾
訊息
通訊簿容器
通訊群組清單
傳訊使用者
狀態物件
配置檔區段
每個提供者都會針對對該提供者有意義的 ENTRYID 結構使用格式。
因為可以用兩個不同的二進位值來代表一個物件,所以不能直接比較項目識別碼。 若要判斷兩個專案標識符是否代表相同的物件,請呼叫 IMAPISession::CompareEntryIDs 方法。
當用戶端呼叫物件的 IMAPIProp::GetProps 方法來擷取其專案標識碼時,對象會傳回最永久的專案標識碼形式。 用戶端可以檢查 abFlags 成員的第一個字節中未設定任何旗標,以確認專案標識碼是長期的。
當用戶端透過數據表中的數據行存取專案標識碼時,此專案標識碼很可能是短期的,而不是長期的。 短期項目標識碼只能在目前的MAPI會話中用來開啟其對應的物件。 用戶端可以檢查 abFlags 成員的第一個字節中是否已設定所有旗標,以確認專案標識碼是短期的。
某些項目標識碼是短期的,但具有長期使用。 這類專案標識碼會在其 abFlags 成員的第一個字節中設定一或多個適當的旗標。
ENTRYID 結構類似於 FLATENTRY 結構。 不過,有一些差異:
ENTRYID 結構不會儲存專案標識碼的大小;FLATENTRY 結構會這麼做。
ENTRYID 結構會個別儲存旗標數據和其餘的專案標識符;FLATENTRY 結構會將旗標數據與其餘的專案標識元一起儲存。
ENTRYID 結構會當做參數傳遞至 IMAPIProp 介面的方法,並傳遞至下列 OpenEntry 方法:IABLogon::OpenEntry、IAddrBook::OpenEntry、IMAPIContainer::OpenEntry、IMAPISession::OpenEntry、IMAPISupport::OpenEntry、IMsgStore::OpenEntry、IMSLogon::OpenEntry
ENTRYID 結構可用來將專案標識碼儲存在磁碟上。 FLATENTRY 結構可用來將專案標識碼儲存在檔案中,或將它傳入位元組數據流中。
客戶端應該一律傳入自然對齊的專案標識碼。 雖然提供者應該處理任意對齊的專案標識符,但客戶端不應該預期此行為。 若無法將良好的對齊專案標識碼傳遞至方法,可能會導致 RISC 處理器發生對齊錯誤。
自然對齊因數通常是8個字節,是CPU支援的最大數據類型,通常是系統記憶體配置器所使用的相同對齊因數。 自然對齊的記憶體位址可讓CPU存取它在該位址支援的任何數據類型,而不會產生對齊錯誤。 對於 RISC CPU,大小為 N 個字節的數據類型通常必須對齊 N 個字節的偶數,且位址為 N 的倍數。
如需詳細資訊,請參閱 專案標識符。