Condividi tramite


Metodo IPropertyStorage::WritePropertyNames (propidlbase.h)

Il metodo WritePropertyNames assegna i nomi IPropertyStorage stringa a una matrice specificata di ID proprietà nel set di proprietà corrente.

Sintassi

HRESULT WritePropertyNames(
  [in] ULONG             cpropid,
  [in] const PROPID []   rgpropid,
  [in] const LPOLESTR [] rglpwstrName
);

Parametri

[in] cpropid

Dimensione dell'input della matrice rgpropid. Può essere pari a zero. Tuttavia, rendendo zero questo metodo diventa non operativo.

[in] rgpropid

Matrice degli ID delle proprietà per i quali devono essere impostati i nomi.

[in] rglpwstrName

Matrice di nuovi nomi da assegnare agli ID delle proprietà corrispondenti nella matrice rgpropid . Questi nomi non possono superare i 255 caratteri (non incluso il terminatore NULL ).

Valore restituito

Questo metodo supporta il valore restituito standard E_UNEXPECTED, oltre al seguente:

Commenti

Per altre informazioni sui set di proprietà e sulla gestione della memoria, vedere Gestione dei set di proprietà.

IPropertyStorage::WritePropertyNames assegna nomi di stringa agli ID delle proprietà passati al metodo nella matrice rgpropid . Associa ogni nome stringa nella matrice rglpwstrName con il rispettivo ID proprietà in rgpropid. È valido in modo esplicito definire un nome per un ID proprietà non attualmente presente nell'oggetto di archiviazione delle proprietà.

È anche valido modificare il mapping per un nome stringa esistente (determinato da una corrispondenza senza distinzione tra maiuscole e minuscole). Vale a dire, è possibile usare il metodo WritePropertyNames per eseguire il mapping di un nome esistente a un nuovo ID proprietà oppure per eseguire il mapping di un nuovo nome a un ID proprietà che ha già un nome nel dizionario. In entrambi i casi, il mapping originale viene eliminato. I nomi delle proprietà devono essere univoci (come sono ID proprietà) all'interno del set di proprietà.

L'archiviazione dei nomi delle proprietà stringa mantiene il caso. A meno che PROPSETFLAG_CASE_SENSITIVE non venga passato a IPropertySetStorage::Create, i nomi dei set di proprietà non sono distinzione tra maiuscole e minuscole per impostazione predefinita. Con i set di proprietà senza distinzione tra maiuscole e minuscole, le stringhe di nome passate dal chiamante vengono interpretate in base alle impostazioni locali del set di proprietà, come specificato dalla proprietà PID_LOCALE . Se il set di proprietà non ha proprietà locali, l'utente corrente viene assunto per impostazione predefinita. I nomi delle proprietà stringa sono limitati a 128 caratteri. I nomi delle proprietà che iniziano con i caratteri Unicode binari 0x0001 tramite 0x001F sono riservati per l'uso futuro.

Se il valore di un elemento nel parametro della matrice rgpropid è impostato su 0xffffffff (PID_ILLEGAL), il nome corrispondente viene ignorato da IPropertyStorage::WritePropertyNames. Ad esempio, se questo metodo viene chiamato con un parametro cpropid pari a 3, ma il primo elemento della matrice, rgpropid[1], è impostato su PID_ILLEGAL, vengono scritti solo due nomi di proprietà. L'elemento rgpropid[1] viene ignorato.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [app desktop | App UWP]
Server minimo supportato Windows 2000 Server [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione propidlbase.h (include Objbase.h, Propidlbase.h)
Libreria Uuid.lib
DLL Ole32.dll

Vedi anche

IPropertyStorage

IPropertyStorage::ReadMultiple

IPropertyStorage::ReadPropertyNames

IPropertyStorage::WriteMultiple

Esempi

Esempio WriteRead