Implementace souboru IPropertySetStorage-Compound
implementace objektu úložiště složených souborů MODELU COM zahrnuje implementaci IPropertyStorage, rozhraní, které spravuje jednu trvalou sadu vlastností, a IPropertySetStorage, rozhraní, které spravuje skupiny trvalých sad vlastností.
Pokud chcete získat ukazatel na implementaci složeného souboru IPropertySetStorage, zadejte název definované hlavičkou identifikátoru IID_IStorage jako riid parametr, nebo použijte StgCreateStorageEx nebo StgOpenStorageEx funkce. V obou případech zadejte STGFMT_STORAGE jako parametr stgfmt. (STGFMT_ANY lze případně zadat v případě StgOpenStorageEx.) Zadejte také název definovaný hlavičkou pro identifikátor rozhraní (IID) IID_IPropertySetStorage jako parametr riid. Obě funkce poskytují ukazatel na objekt IPropertySetStorage rozhraní.
Dalším způsobem, jak získat ukazatel na implementaci složeného souboru, je zadat název definovaný hlavičkou identifikátoru IID_IStorage jako riid parametr, nebo použít StgCreateDocfile nebo StgOpenStorage funkcí. Tím zadáte ukazatel na objekt rozhraní IStorage. Pokud chcete pracovat se sadami trvalých vlastností, zavolejte IStorage::QueryInterface pro rozhraní IPropertySetStorage.
Kdy použít IPropertySetStorage
Volání metod IPropertySetStorage k vytvoření, otevření nebo odstranění sady vlastností v aktuálním úložišti sady vlastností složeného souboru. Existuje také metoda, IPropertySetStorage::Enum, který poskytuje ukazatel na enumerátor, který lze použít k vytvoření výčtu sady vlastností v úložišti.
Metody
Vytvoří novou sadu vlastností v aktuálním složeného úložiště souborů a při vrácení poskytuje ukazatel rozhraní na IPropertyStorage implementace složeného souboru. V této implementaci mohou být sady vlastností transactovány pouze v případě, že je zadán PROPSETFLAG_NONSIMPLE. Tato metoda vyžaduje, aby byl režim sdílení zadaný v parametru grfMode STGM_SHARE_EXCLUSIVE a aby byl režim přístupu STGM_READ nebo STGM_READWRITE (režim STGM_WRITE se nepodporuje).
Otevře existující sadu vlastností v aktuálním úložišti vlastností. Při návratu poskytuje ukazatel rozhraní na složený soubor implementace IPropertyStorage. Tato metoda vyžaduje, aby byl režim sdílení zadaný v parametru grfMode STGM_SHARE_EXCLUSIVE a aby byl režim přístupu STGM_READ nebo STGM_READWRITE (STGM_WRITE se nepodporuje).
Odstraní vlastnost nastavenou v tomto úložišti vlastností.
Vytvoří objekt použitý k vytvoření výčtu STATPROPSETSTG struktur. Každá struktura STATPROPSETSTG poskytuje data o jedné sadě vlastností.
Poznámky
Od systému Windows 2000 podporuje složená implementace souboru IPropertySetStorage podporuje jednoduchý režim. Jednoduchý režim je označen zadáním příznaku STGM_SIMPLE pro StgCreateStorageEx a StgOpenStorageEx funkcí. Pokud je složený soubor otevřen v jednoduchém režimu, přidružená IPropertySetStorage implementace je omezena následujícím způsobem:
- Lze vytvořit pouze jednoduché sady vlastností. To znamená, že zadáním hodnoty PROPSETFLAG_NONSIMPLE v grfFlags parametr pro IPropertySetStorage::Create metoda způsobí chybu.
- Po vytvoření složeného souboru s StgCreateStorageEx pomocí STGM_SIMPLE a dotazování na rozhraní IPropertySetStorage můžete volat pouze IPropertySetStorage::Create jednou. Pak musíte uvolnit IPropertyStorage rozhraní, než znovu zavoláte metodu Create. Další informace o jednoduchém režimu naleznete v tématu KONSTANTY STGM.
- Nelze použít metodu IPropertySetStorage::Open k otevření sady vlastností po použití StgCreateStorageEx k vytvoření objektu úložiště. Místo toho je nutné použít StgOpenStorageEx před dotazováním na IPropertySetStorage a volání metody Open.
- Po otevření složeného souboru s StgOpenStorageEx pomocí příznaku STGM_SIMPLE a dotazu na rozhraní IPropertySetStorage můžete otevřít jednu vlastnost nastavenou najednou pomocí IPropertySetStorage::Open. Při otevření sady vlastností také nemusí být možné zvýšit celkovou velikost sady vlastností.
Jednoduché sady vlastností nelze provést. V parametru grfmode metody Create a Open nelze zadat STGM_TRANSACTED, pokud také nezadáte PROPSETFLAG_NONSIMPLE v parametru grfFlags. Mějte na paměti, že jednoduché a jiné než jednoduché sady vlastností nesouvisejí se sadami vlastností jednoduchého režimu popsanými výše. Další informace o jednoduchých a neprodyšných sadách vlastností najdete v tématu Objekty úložiště a streamu pro sadu vlastností.
Poznámka
Sady vlastností DocumentSummaryInformation a UserDefined jsou jedinečné v tom, že mohou mít dva oddíly sady vlastností. Další informace naleznete v DocumentSummaryInformation a UserDefined Sady vlastností.
Související témata