Condividi tramite


Gestione dei set di proprietà

Un set di proprietà permanente contiene dati correlati come proprietà. Ogni set di proprietà viene identificato con un FMTID e un identificatore univoco globale (GUID), che consente alle applicazioni di accedere al set di proprietà per identificarlo. Tramite questa identificazione, l'applicazione interpreta le proprietà contenute nel set.

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

COM definisce l'interfacciaIPropertySetStorageper 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 all'interfaccia IEnumSTATPROPSETSTG. È possibile chiamare i metodi di questa interfaccia per elencare le strutture STATPROPSETSTG sull'oggetto, che forniranno informazioni su tutti i set di proprietà dell'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 deve 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à sia non semplice. 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à di 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, si applicano i dati relativi alla proprietà, ad esempio il relativo nome. Inoltre, se è necessario un aggiornamento transazionato, il set di proprietà deve essere non semplice. Naturalmente, esiste una certa penalità di prestazioni nell'apertura di questi tipi, perché richiede l'apertura del flusso o dell'oggetto di archiviazione a cui si ha il puntatore.

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

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

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