Udostępnij przez


implementacja plików IEnumSTATPROPSETSTG-Compound

Implementacja pliku złożonego interfejsu IEnumSTATPROPSETSTG służy do wyliczania tablicy STATPROPSETSTG struktur zawierających dane właściwości statystycznych. Implementacja IPropertySetStorage zarządza danymi statystycznymi i jest skojarzona z bieżącym obiektem magazynu plików złożonych.

Kiedy należy używać

Wywołaj metody IEnumSTATPROPSETSTG, aby wyliczyć struktury STATPROPSETSTG, z których każda dostarcza dane o jednym z zestawów właściwości skojarzonych z obiektem magazynu plików złożonych.

Uwagi

IEnumSTATPROPSETSTG::Next

Pobiera następny lub więcej struktur STATPROPSETSTG (liczba jest określana przez parametr celt). Elementy STATPROPSETSTG udostępniane za pośrednictwem wywołania implementacji pliku złożonego IEnumSTATPROPSETSTG::Next są zgodne z następującymi regułami:

  • Jeśli IEnumSTATPROPSETSTG::Next nie może podać parametru STATPROPSETSTG.fmtid, do tego elementu członkowskiego są zapisywane zera. Dzieje się tak, gdy zestaw właściwości nie ma wstępnie zdefiniowanej nazwy (takiej jak \005SummaryInformation) i nie jest wartością prawną.
  • Zestaw właściwości DocumentSummaryInformation i UserDefined jest specjalny, ponieważ może zawierać dwie sekcje zestawu właściwości. Ten zestaw właściwości jest opisany w sekcji DocumentSummaryInformation i UserDefined Property Sets. Druga sekcja jest nazywana właściwościami User-Defined. Każda sekcja jest identyfikowana z unikatowym identyfikatorem formatu (FMTID). Gdy IPropertySetStorage::Enum służy do wyliczania zestawów właściwości, zestaw właściwości User-Defined nie zostanie wyliczony.

Nuta

Jeśli zawsze tworzysz zestaw właściwości przy użyciu IPropertySetStorage::Create, wówczas, ponieważ dla nazwy magazynu jest tworzony identyfikator GUID znaku, IEnumSTATPROPSETSTG::Next zwróci wartość inną niżzerowa, prawidłowa wartość FMTID dla zestawu właściwości [STATPROPSETSTG.fmtid].

 

  • Element członkowski STATPROPSETSTG.grfFlags nie musi odzwierciedlać, czy zestaw właściwości jest ANSI, czy nie. Jeśli PROPSETFLAG_ANSI jest ustawiona, zestaw właściwości jest zdecydowanie ANSI. Jeśli PROPSETFLAG_ANSI jest jasne, zestaw właściwości może być unicode lub inny niż Unicode, ponieważ nie jest możliwe określenie, czy jest to ANSI bez jego otwierania.
  • Element członkowski STATPROPSETSTG.grfFlags odzwierciedla, czy zestaw właściwości jest prosty, czy nie, więc ustawienie flagi PROPSETFLAG_NONSIMPLE jest zawsze prawidłowe.
  • Jeśli IEnumSTATPROPSETSTG::Next nie może podać identyfikatora STATPROPSETSTG.clsid, jest ustawiona na wszystkie zera (CLSID_NULL). W implementacji pliku złożonego COM występuje to, gdy zestaw właściwości jest prosty (flaga PROPSETFLAG_NONSIMPLE nie jest ustawiona) lub jest niesimple, ale CLSID nie został jawnie ustawiony. W przypadku zestawów właściwości innych niżimple identyfikator CLSID, który jest odbierany, jest tym, który jest obsługiwany przez bazowy IStorage.
  • Jeśli IEnumSTATPROPSETSTG::Next nie może podać pól czasu [ctime, mtime, atime], każdy nieobsługiwany czas zostanie ustawiony na zera. W implementacji pliku złożonego COM pobieranie tych wartości zależy od pobierania ich z podstawowej implementacji IStorage.

IEnumSTATPROPSETSTG::Skip

Pomija liczbę elementów określonych w celt. Zwraca S_OK, jeśli określona liczba elementów zostanie pominięta, zwraca S_FALSE, jeśli pominięto mniej elementów niż żądane. W każdym innym przypadku zwraca odpowiedni błąd.

IEnumSTATPROPSETSTG::Reset

Ustawia kursor na początek wyliczenia. Jeśli operacja powiedzie się, zwraca S_OK, w przeciwnym razie zwraca STG_E_INVALIDHANDLE.

IEnumSTATPROPSETSTG::Clone

Kopiuje bieżący stan wyliczania tego modułu wyliczającego.