Condividi tramite


Identificatori di proprietà riservate

Gli identificatori di proprietà riservati non possono essere usati come identificatori di proprietà (ID). Qualsiasi identificatore di proprietà (ID) può essere usato tranne 0, 1 e qualsiasi valore maggiore o uguale a 0x80000000. Questi valori dell'identificatore di proprietà sono riservati per l'uso da parte delle applicazioni.

Nella tabella seguente sono elencati gli ID delle proprietà riservate e la descrizione dell'ID proprietà riservato.

ID proprietà riservata Descrizione
0 Riservato per la creazione di un dizionario dei nomi visualizzati del set di proprietà facoltativo. Ciò consente agli utenti di impostare proprietà di associare significato alle proprietà, oltre a quelle fornite dall'indicatore del tipo.
1 Riservato come indicatore della tabella codici (Windows) o script (Macintosh) da utilizzare per interpretare le stringhe nel set di proprietà.
Tutti i valori stringa nel set di proprietà devono essere archiviati con la stessa tabella codici. Il valore del sistema operativo di origine nell'intestazione del set di proprietà (PROPERTYSETHEADER::d wOSVer) determina se l'indicatore della tabella codici corrisponde a una tabella codici di Windows o a uno script Macintosh.
0x80000000 Riservato come indicazione delle impostazioni locali per cui viene scritto il set di proprietà.
Le impostazioni locali predefinite per un set di proprietà sono le impostazioni locali predefinite del sistema (LOCALE_SYSTEM_DEFAULT). Per altre informazioni sulle LOCALE_SYSTEM_DEFAULT, vedere le API Win32. Il valore predefinito viene usato nel caso in cui l'indicatore delle impostazioni locali non esista nel set di proprietà.
0x80000003 Riservato come indicatore dei comportamenti del set di proprietà. Questo valore id proprietà è un VT_UI4 e inizia con un tipo di dati DWORD contenente il valore VT_UI4 seguito da un DWORD che indica il comportamento del set di proprietà.
Attualmente, l'unico bit in questo valore definito è il bit di ordine basso (0x1). Se questo bit è impostato, indica che i nomi dei set di proprietà, indicati dall'ID proprietà 0, devono essere considerati distinzione tra maiuscole e minuscole. Se questo bit non è impostato o se la proprietà del comportamento (ID 0x80000003) non esiste, i nomi devono essere considerati senza distinzione tra maiuscole e minuscole.
0xFFFFFFFF Riservato per praticità della programmabilità. Non dovrebbe mai essere visualizzato in un set di proprietà serializzato.

Gli identificatori di proprietà con il set di bit elevato (ovvero i valori negativi) sono riservati per l'uso futuro da parte di Microsoft.

Delle proprietà riservate, quelle con valori ID nell'intervallo 0x80000000 da 0xBFFFFFFF vengono considerate di sola lettura dalle implementazioni che non ne conoscono il significato. Ad esempio, se un'implementazione non comprende il significato della proprietà 0x80000000, deve consentire la lettura o l'eliminazione di tale proprietà. Tale implementazione deve consentire a una proprietà nell'intervallo 0xC0000000 di 0xFFFFFFFE di essere letta, scritta o eliminata. L'ID proprietà 0xFFFFFFFF è un valore riservato e non deve mai essere visualizzato in un set di proprietà serializzato.

Impostazioni locali del set di proprietà

Le applicazioni possono scegliere di supportare le impostazioni locali o usare il comportamento predefinito. È consigliabile che le applicazioni consentano agli utenti di specificare le impostazioni locali di lavoro. Tali applicazioni devono scrivere l'identificatore delle impostazioni locali specificato dall'utente nella proprietà . Le applicazioni che usano le impostazioni locali predefinite dell'utente (LOCALE_USER_DEFAULT) devono scrivere l'identificatore delle impostazioni locali predefinito dell'utente nella proprietà . Per altre informazioni sulle LOCALE_USER_DEFAULT, vedere l'API Win32.

Nota

Se l'interfacciaIPropertySetStorageviene usata per creare un set di proprietà, le impostazioni locali predefinite dell'utente vengono scritte automaticamente come indicatore delle impostazioni locali.

Le applicazioni devono anche gestire il caso di un oggetto esterno, ovvero quello in cui le impostazioni locali non sono le impostazioni locali dell'applicazione, le impostazioni locali dell'utente o le impostazioni locali di sistema.

La proprietà dell'indicatore delle impostazioni locali è di tipo VT_U14 ed è quindi costituita da un DWORD che contiene VT_U14, seguito da un DWORD contenente l'identificatore delle impostazioni locali (LCID), come definito nell'API Win32.

Indicatore tabella codici

Quando un'applicazione che non è l'autore di un set di proprietà modifica una proprietà di tipo stringa nel set, deve esaminare l'indicatore della tabella codici ed eseguire una delle azioni seguenti:

  • Scrivere la stringa nel formato specificato dall'indicatore della tabella codici.
  • Sostituire e riscrivere per modificare la tabella codici.

Se un'applicazione non è in grado di riconoscere questo indicatore, non deve modificare la proprietà. Tutti gli autori di set di proprietà devono scrivere un indicatore della tabella codici; Tuttavia, se l'indicatore della tabella codici non è presente, è necessario presupporre la tabella codici prevalente nel computer del lettore.

Nota

Se l'interfaccia IPropertySetStorage viene utilizzata per creare un set di proprietà, l'indicatore della tabella codici viene scritto automaticamente.

I valori possibili per la tabella codici sono specificati nell'API Win32 (per altre informazioni, vedere la funzioneGetACP) e Inside Macintosh Volume VI, pages 14-111. Queste risorse potrebbero non essere disponibili in alcune lingue e paesi. Ad esempio, la tabella codici US ANSI è rappresentata da 0x04E4 (1252 in decimale) mentre la tabella codici per Unicode è 0x04B0 (1200 in decimale).

È consigliabile usare la tabella codici Unicode quando possibile e usare VT_LPWSTR anziché VT_LPSTR per evitare <multibyte,> conversioni Unicode durante l'archiviazione e il recupero. L'uso della stessa tabella codici per tutti i set di proprietà è l'unico modo per ottenere set di proprietà interoperabili su base mondiale. Nella tabella codici Unicode o non Unicode tenere presente che il conteggio all'inizio di un VT_LPSTR o di un VT_BSTR è un conteggio byte e non un carattere conteggio. Questo numero di byte include uno o due byte zero alla fine della stringa (il NULL terminatore della stringa).

L'ID proprietà 1 è un tipo di VT_I2 e inizia con un DWORD che contiene il valore VT_I2 seguito da un SHORT che indica la tabella codici.