IEnumSTATPROPSETSTG-Compound 檔案實作
IEnumSTATPROPSETSTG 介面的複合檔案實作可用來列舉包含統計屬性數據的 STATPROPSETSTG 結構數位。 IPropertySetStorage 實作會管理統計數據,並與目前的複合檔案儲存物件相關聯。
使用時機
呼叫 IEnumSTATPROPSETSTG 方法,以列舉 STATPROPSETSTG 結構,每個結構都會提供與複合檔案儲存物件相關聯的其中一個屬性集的相關數據。
言論
-
取得下一或多個 STATPROPSETSTG 結構(數位是由 celt 參數指定)。 STATPROPSETSTG 透過呼叫 IEnumSTATPROPSETSTG::Next 的複合檔案實作所提供的元素,請遵循下列規則:
- 如果 IEnumSTATPROPSETSTG::Next 無法提供 STATPROPSETSTG.fmtid,則零會寫入該成員。 當屬性集沒有預先定義的名稱(例如 \005SummaryInformation)且不是合法值時,就會發生這種情況。
- DocumentSummaryInformation 和 UserDefined 屬性集很特殊,因為它可能有兩個屬性集區段。 本屬性集會在 DocumentSummaryInformation 和 UserDefined 屬性集一節中說明,。 第二個區段稱為 User-Defined Properties。 每個區段都會以唯一格式識別碼 (FMTID) 來識別。 當 IPropertySetStorage::Enum 用來列舉屬性集時,將不會列舉 User-Defined 屬性集。
注意
如果您一律使用 IPropertySetStorage::Create建立屬性集,則因為記憶體名稱會建立「字元 GUID」,IEnumSTATPROPSETSTG::Next 會傳回屬性集 [STATPROPSETSTG.fmtid] 的非零有效 FMTID。
- STATPROPSETSTG.grfFlags 成員不一定反映屬性集是否為 ANSI。 如果已設定PROPSETFLAG_ANSI,則屬性集絕對是 ANSI。 如果PROPSETFLAG_ANSI清楚,則屬性集可以是 Unicode 或非 Unicode,因為無法判斷它是否為 ANSI 而不開啟它。
- STATPROPSETSTG.grfFlags 成員會反映屬性集是否簡單,因此PROPSETFLAG_NONSIMPLE旗標的設定一律有效。
- 如果 IEnumSTATPROPSETSTG::Next 無法提供 STATPROPSETSTG.clsid,則會設定為所有零 (CLSID_NULL)。 在 COM 複合檔案實作中,當屬性集很簡單時,就會發生這種情況(未設定PROPSETFLAG_NONSIMPLE旗標),或是非簡單,但未明確設定 CLSID。 針對非simple 屬性集,收到的CLSID是基礎 IStorage所維護的CLSID。
- 如果 IEnumSTATPROPSETSTG::Next 無法提供時間字段 [ctime, mtime, atime],則每個不支援的時間都會設定為零。 在 COM 複合檔案實作中,取得這些值取決於從基礎 IStorage 實作擷取這些值。
-
略過 celt中指定的項目數目。 如果略過指定的項目數目,則傳回S_OK,如果略過少於要求的元素,則會傳回S_FALSE。 在任何其他情況下,會傳回適當的錯誤。
-
將游標設定為列舉的開頭。 如果成功,則傳回S_OK,否則會傳回STG_E_INVALIDHANDLE。
-
複製這個列舉值的目前列舉狀態。