Costanti PROPSETFLAG

Le costanti PROPSETFLAG definiscono le caratteristiche di un set di proprietà. I valori elencati nella tabella seguente vengono usati nel parametro grfFlags dei metodi IPropertySetStorage , la funzione StgCreatePropStg e la funzione StgOpenPropStg .

Costante/valore Descrizione
PROPSETFLAG_DEFAULT
0
Se non specificato, per impostazione predefinita solo i valori delle proprietà semplici possono essere scritti nel set di proprietà. L'uso di valori di proprietà semplici impedisce che i set di proprietà vengano transazionati nel file composto e implementazioni autonome di IPropertySetStorage. I valori delle proprietà non e devono essere usati per questo scopo.
PROPSETFLAG_NONSIMPLE
1
Se specificato, i valori delle proprietà nonsimple possono essere scritti nel set di proprietà e il set di proprietà viene salvato in un oggetto di archiviazione. I valori delle proprietà non semplici includono quelli con varTYPE di VT_STORAGE, VT_STREAM, VT_STORED_OBJECT o VT_STREAMED_OBJECT. Se questo flag non è specificato, non è possibile scrivere tipi non semplici nel set di proprietà. Nei file composti e nelle implementazioni autonome, i set di proprietà possono essere transazionati solo se viene specificato PROPSETFLAG_NONSIMPLE .
PROPSETFLAG_ANSI
2
Se specificato, tutti i valori stringa nel set di proprietà che non sono in modo esplicito Unicode, ovvero quelli diversi da VT_LPWSTR, vengono archiviati con la tabella codici ANSI del sistema corrente. Per altre informazioni, vedere GetACP. L'uso di questo valore non è consigliato. Per altre informazioni, vedere la sezione Osservazioni.
Se questo valore è assente, i valori stringa del nuovo set di proprietà vengono archiviati in Unicode. Il grado di controllo fornito da questo valore è necessario in modo che i client che usano le interfacce correlate alla proprietà possano interagire con i set di proprietà standard, ad esempio le informazioni di riepilogo OLE2, che possono esistere nella tabella codici ANSI.
PROPSETFLAG_UNBUFFERED
4
Usato solo con le funzioni StgCreatePropStg e StgOpenPropStg ; ovvero, nelle implementazioni autonome delle interfacce del set di proprietà. Se specificato in queste funzioni, le modifiche apportate al set di proprietà non vengono memorizzate nel buffer. Le modifiche vengono invece scritte direttamente nel set di proprietà. Le chiamate a un set di proprietà IPropertyStorage metodi cambieranno. Tuttavia, per impostazione predefinita, le modifiche vengono memorizzate nel buffer in una cache del set di proprietà interne e vengono successivamente scritte nel set di proprietà quando viene chiamato il metodo IPropertyStorage::Commit .
L'impostazione PROPSETFLAG_UNBUFFERED riduce le prestazioni perché il buffer interno impostato dalla proprietà viene scaricato automaticamente dopo ogni modifica al set di proprietà. Tuttavia, la scrittura di modifiche impedirà direttamente problemi di coordinamento. Ad esempio, se l'oggetto di archiviazione viene aperto in modalità transacted e il set di proprietà viene memorizzato nel buffer. Se quindi si chiama il metodo IStorage::Commit nell'oggetto di archiviazione, le modifiche del set di proprietà non verranno prelevate come parte della transazione, perché si trovano in un buffer che non è ancora stato scaricato. È necessario chiamare IPropertyStorage::Commit prima di chiamare IStorage::Commit per scaricare il buffer del set di proprietà prima di eseguire il commit delle modifiche all'archiviazione. In alternativa a due chiamate, è possibile impostare PROPSETFLAG_UNBUFFERED in modo che le modifiche vengano sempre scritte direttamente nel set di proprietà e non vengano mai memorizzate nella cache interna del set di proprietà. Le modifiche verranno quindi rilevate quando viene eseguito il commit dell'archiviazione transazionata.
PROPSETFLAG_CASE_SENSITIVE
8
Se specificato, i nomi delle proprietà sono distinzione tra maiuscole e minuscole. I nomi delle proprietà con distinzione tra maiuscole e minuscole sono possibili solo nel formato di serializzazione del set di proprietà versione 1. Per altre informazioni, vedere Serializzazione set di proprietà.

Commenti

Questi valori possono essere impostati e controllati usando operazioni bit per bit che determinano la modalità di creazione e apertura dei set di proprietà. I set di proprietà vengono creati usando il metodo IPropertySetStorage::Create o la funzione StgCreatePropStg . Vengono aperti usando il metodo IPropertySetStorage::Open o la funzione StgOpenPropStg .

È consigliabile creare set di proprietà come Unicode non impostando il flag di PROPSETFLAG_ANSI nel parametro grfFlags . È inoltre consigliabile evitare di usare valori VT_LPSTR e usare i valori VT_LPWSTR. Quando la tabella codici del set di proprietà è Unicode, VT_LPSTR i valori stringa vengono convertiti in Unicode quando vengono archiviati e convertiti in valori stringa multibyte quando vengono recuperati. Quando la tabella codici del set di proprietà non è Unicode, i nomi delle proprietà, le stringhe VT_BSTR e i valori delle proprietà nonsimple vengono convertiti in stringhe multibyte quando vengono archiviate e convertite nuovamente in Unicode quando vengono recuperate, tutte usando la tabella codici ANSI del sistema corrente.

Requisiti

Requisito Valore
Client minimo supportato
Windows 2000 Professional [solo app desktop]
Server minimo supportato
Windows 2000 Server [solo app desktop]
Intestazione
Propidl.h

Vedi anche

FmtIdToPropStgName

IPropertySetStorage::Create

IPropertySetStorage::Open

PropStgNameToFmtId

StgCreatePropSetStg

StgCreatePropStg

StgOpenPropStg