Gestione dei set di proprietà

Un set di proprietà persistente contiene dati correlati come proprietà. Ogni set di proprietà viene identificato con un ID FMTID e un GUID (Global Unique Identifier) che consente alle applicazioni, di accedere al set di proprietà, di identificare il set di proprietà. Tramite questa identificazione, l'applicazione interpreta le proprietà contenute nel set.

Ad esempio, le proprietà di formattazione dei caratteri in un elaboratore di parole o gli attributi di rendering di un elemento in un programma di disegno sono set di proprietà.

COM definisce l'interfaccia IPropertySetStorage per facilitare la gestione dei set di proprietà. Tramite i metodi di questa interfaccia, è possibile creare un nuovo set di proprietà oppure aprire o eliminare un set di proprietà esistente. Fornisce inoltre un metodo che crea un enumeratore e fornisce un puntatore alla relativa interfaccia IEnumSTATPROPSETSTG . È possibile chiamare i metodi di questa interfaccia per enumerare le strutture STATPROPSETSTG nell'oggetto, che fornirà informazioni su tutti i set di proprietà sull'oggetto.

Quando si crea o si apre un'istanza di IPropertyStorage, è simile all'apertura di un oggetto che supporta IStorage o IStream, perché è necessario specificare la modalità di archiviazione in cui si apre l'interfaccia. Per IStorage, questi includono la modalità transazione, la modalità di lettura/scrittura e la modalità di condivisione.

Quando si crea un set di proprietà con una chiamata a IPropertySetStorage::Create, specificare se il set di proprietà deve essere semplice o non semplice. Un set di proprietà semplice contiene tipi che possono essere scritti completamente all'interno del flusso del set di proprietà, che è destinato a essere limitato in dimensioni e non può essere superiore a 256 KB in Windows NT 4.0 e versioni precedenti o 1 MB in Windows 2000, Windows XP e Windows Server 2003. Tuttavia, quando è necessario archiviare una quantità maggiore di informazioni nel set di proprietà, è possibile specificare che il set di proprietà non siasimple. In questo modo è possibile usare uno o più tipi che specificano solo un puntatore a un oggetto di archiviazione o flusso. Questi tipi sono VT_STREAM, VT_STREAMED OBJECT, VT_STORAGE e VT_STORED_OBJECT.

I dati archiviati in queste proprietà non vengono conteggiati rispetto al limite di dimensioni del set di proprietà 256 KB in Windows NT 4.0 o versioni precedenti o al limite di 1 MB in Windows 2000, Windows XP e Windows Server 2003. Tuttavia, i dati relativi alla proprietà, ad esempio il relativo nome, si applicano. Inoltre, se è necessario un aggiornamento transazionato, il set di proprietà deve essere diverso da quello. Naturalmente, esiste una certa penalità sulle prestazioni per l'apertura di questi tipi, perché richiede l'apertura del flusso o dell'oggetto di archiviazione a cui si dispone del puntatore.

Se l'applicazione usa file composti, è possibile usare l'implementazione fornita da COM di queste interfacce, implementate nell'oggetto di archiviazione dei file composti COM.

Ogni set di proprietà è costituito principalmente da un gruppo logico connesso di proprietà, come descritto in Gestione delle proprietà.

Per altre informazioni sui set di proprietà in COM, vedere: