Condividi tramite


Identificatori di proprietà riservati

Gli identificatori di proprietà riservati non possono essere usati come identificatori di proprietà (ID). Qualsiasi identificatore di proprietà (ID) può essere usato ad eccezione di 0, 1 e qualsiasi valore maggiore o uguale a 0x80000000. Questi valori di 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 nome visualizzato set di proprietà facoltativo. Ciò consente agli utenti di impostare proprietà di associare il significato alle proprietà, oltre a quelle fornite dall'indicatore di tipo.
1 Riservato come indicatore della tabella codici (Windows) o Script (Macintosh) da usare durante l'interpretazione delle 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 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 insensibili.
0xffffffff Riservato per comodità 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 per 0xBFFFFFFF vengono considerate di sola lettura dalle implementazioni che non comprendono il loro significato. Ad esempio, se un'implementazione non comprende il significato della proprietà 0x80000000, deve consentire la lettura di tale proprietà, ma non scritta o eliminata. Tale implementazione deve consentire a una proprietà nell'intervallo di 0xC0000000 di 0xFFFFFFFE di essere letti, scritti o eliminati. L'ID proprietà 0xFFFFFFFF è un valore riservato e non dovrebbe mai essere visualizzato in un set di proprietà serializzato.

Impostazioni locali 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 predefinite dell'utente nella proprietà. Per altre informazioni su LOCALE_USER_DEFAULT, vedere l'API Win32.

Nota

Se l'interfaccia IPropertySetStorage viene 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 uno in cui le impostazioni locali non sono le impostazioni locali dell'applicazione, le impostazioni locali dell'utente o le impostazioni locali del sistema.

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

Indicatore della tabella codici

Quando un'applicazione che non è l'autore di un set di proprietà modifica una proprietà di stringa di tipo nel set, deve esaminare l'indicatore della tabella codici e 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 riesce a riconoscere questo indicatore, non deve modificare la proprietà. Tutti i creatori di set di proprietà devono scrivere un indicatore della tabella codici; Tuttavia, se l'indicatore della tabella codici non è presente, è necessario assumere la tabella codici prevalente nel computer del lettore.

Nota

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

I valori possibili per la tabella codici vengono specificati nell'API Win32 (per altre informazioni, vedere la funzione GetACP ) e Inside Macintosh Volume VI, pagine 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 conversioni multibyte <-> 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 pagina codici Unicode o non Unicode tenere presente che il conteggio all'inizio di un VT_LPSTR o VT_BSTR è un conteggio di byte e non un conteggio dei caratteri . Questo conteggio di byte include uno o due byte zero alla fine della stringa (terminazione NULL della stringa).

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