implementazione del file IPropertySetStorage-Compound
L'implementazione dell'oggetto di archiviazione di file composti COM include un'implementazione di IPropertyStorage, l'interfaccia che gestisce un singolo set di proprietà persistente e IPropertySetStorage, l'interfaccia che gestisce i gruppi di set di proprietà persistenti.
Per ottenere un puntatore all'implementazione di file composta di IPropertySetStorage, specificare il nome definito dall'intestazione per l'identificatore IID_IStorage come parametro riid oppure usare le funzioni StgCreateStorageEx o StgOpenStorageEx . In entrambi i casi, specificare STGFMT_STORAGE come parametro stgfmt . In alternativa, è possibile specificare STGFMT_ANY nel caso di StgOpenStorageEx. Specificare anche il nome definito dall'intestazione per l'identificatore di interfaccia (IID) IID_IPropertySetStorage come parametro riid . Entrambe le funzioni forniscono un puntatore all'interfaccia IPropertySetStorage dell'oggetto.
Un altro modo per ottenere un puntatore all'implementazione del file composto consiste nel specificare il nome definito dall'intestazione per l'identificatore IID_IStorage come parametro riid oppure per usare le funzioni StgCreateDocfile o StgOpenStorage . Verrà fornito un puntatore all'interfaccia IStorage dell'oggetto. Quando si desidera gestire i set di proprietà persistenti, chiamare IStorage::QueryInterface per l'interfaccia IPropertySetStorage .
Quando usare IPropertySetStorage
Chiamare i metodi di IPropertySetStorage per creare, aprire o eliminare set di proprietà nell'archiviazione del set di proprietà compound-file corrente. È inoltre disponibile un metodo IPropertySetStorage::Enum che fornisce un puntatore a un enumeratore che può essere usato per enumerare i set di proprietà nell'archiviazione.
Metodi
Crea un nuovo set di proprietà nell'archiviazione file composta corrente e, in caso di restituzione, fornisce un puntatore di interfaccia all'implementazione del file composto IPropertyStorage . In questa implementazione, i set di proprietà possono essere transazionati solo se viene specificato PROPSETFLAG_NONSIMPLE. Questo metodo richiede che la modalità di condivisione specificata nel parametro grfMode sia STGM_SHARE_EXCLUSIVE e che la modalità di accesso sia STGM_READ o STGM_READWRITE (STGM_WRITE modalità non è supportata).
Apre un set di proprietà esistente nell'archiviazione delle proprietà corrente. In caso contrario, fornisce un puntatore di interfaccia all'implementazione di file composta di IPropertyStorage. Questo metodo richiede che la modalità di condivisione specificata nel parametro grfMode sia STGM_SHARE_EXCLUSIVE e che la modalità di accesso sia STGM_READ o STGM_READWRITE (STGM_WRITE non è supportata).
Elimina un set di proprietà in questa risorsa di archiviazione delle proprietà.
Crea un oggetto utilizzato per enumerare le strutture STATPROPSETSTG . Ogni struttura STATPROPSETSTG fornisce dati relativi a un singolo set di proprietà.
Commenti
A partire da Windows 2000, l'implementazione di file composti di IPropertySetStorage supporta la modalità semplice. La modalità semplice è indicata specificando il flag STGM_SIMPLE per le funzioni StgCreateStorageEx e StgOpenStorageEx . Se il file composto viene aperto in modalità semplice, l'implementazione IPropertySetStorage associata è limitata come segue:
- È possibile creare solo set di proprietà semplici. Ovvero, specificando il valore PROPSETFLAG_NONSIMPLE nel parametro grfFlags per il metodo IPropertySetStorage::Create viene generato un errore.
- Dopo aver creato un file composto con StgCreateStorageEx usando STGM_SIMPLE e la query per l'interfaccia IPropertySetStorage , è possibile chiamare solo IPropertySetStorage::Create una sola volta. È quindi necessario rilasciare l'interfaccia IPropertyStorage prima di chiamare di nuovo il metodo Create . Per altre informazioni sulla modalità semplice, vedere Costanti STGM.
- Non è possibile utilizzare il metodo IPropertySetStorage::Open per aprire un set di proprietà dopo aver utilizzato StgCreateStorageEx per creare l'oggetto di archiviazione. È invece necessario usare StgOpenStorageEx prima di eseguire una query per IPropertySetStorage e chiamare il metodo Open .
- Dopo aver aperto un file composto con StgOpenStorageEx usando il flag STGM_SIMPLE e la query per l'interfaccia IPropertySetStorage , è possibile aprire una proprietà impostata alla volta usando IPropertySetStorage::Open. Inoltre, potrebbe non essere possibile aumentare le dimensioni totali del set di proprietà mentre il set di proprietà è aperto.
Non è possibile eseguire transazioni di set di proprietà semplici. Non è possibile specificare STGM_TRANSACTED nel parametro grfmode dei metodi Create e Open , a meno che non si specifichino anche PROPSETFLAG_NONSIMPLE nel parametro grfFlags . Tenere presente che i set di proprietà semplici e non semplici non sono correlati ai set di proprietà in modalità semplice descritti in precedenza. Per altre informazioni sui set di proprietà semplici e nonsimple, vedere Oggetti di archiviazione e flusso per un set di proprietà.
Nota
I set di proprietà DocumentSummaryInformation e UserDefined sono univoci in quanto possono avere due sezioni del set di proprietà. Per altre informazioni, vedere Set di proprietà DocumentSummaryInformation e UserDefined.
Argomenti correlati