Metodo ISharedPropertyGroupManager::CreatePropertyGroup (comsvcs.h)

Crea un nuovo gruppo di proprietà condiviso. Se esiste già un gruppo di proprietà con il nome specificato, CreatePropertyGroup restituisce un riferimento al gruppo esistente.

Sintassi

HRESULT CreatePropertyGroup(
  [in]      BSTR                 Name,
  [in, out] LONG                 *dwIsoMode,
  [in, out] LONG                 *dwRelMode,
  [out]     VARIANT_BOOL         *fExists,
  [out]     ISharedPropertyGroup **ppGroup
);

Parametri

[in] Name

Nome del gruppo di proprietà condiviso da creare.

[in, out] dwIsoMode

Modalità di isolamento per le proprietà nel nuovo gruppo di proprietà condivise. Vedere la tabella delle costanti nelle osservazioni riportate di seguito. Se il valore del parametro fExists è impostato su VARIANT_TRUE restituito da questo metodo, il valore di input viene ignorato e il valore restituito in questo parametro è la modalità di isolamento assegnata al momento della creazione del gruppo di proprietà.

[in, out] dwRelMode

Modalità di rilascio per le proprietà nel nuovo gruppo di proprietà condivise. Vedere la tabella delle costanti nelle osservazioni riportate di seguito. Se il valore del parametro fExists è impostato su VARIANT_TRUE restituito da questo metodo, il valore di input viene ignorato e il valore restituito in questo parametro è la modalità di rilascio assegnata al momento della creazione del gruppo di proprietà.

[out] fExists

VARIANT_TRUE restituito da questo metodo se il gruppo di proprietà condiviso specificato nel parametro name esiste prima di questa chiamata e VARIANT_FALSE se il gruppo di proprietà è stato creato da questa chiamata.

[out] ppGroup

Riferimento a ISharedPropertyGroup, ovvero un gruppo di proprietà condiviso identificato dal parametro Name o NULL se viene rilevato un errore.

Valore restituito

Questo metodo può restituire i valori restituiti standard E_OUTOFMEMORY, E_UNEXPECTED e E_FAIL, nonché i valori seguenti.

Codice restituito Descrizione
S_OK
Un riferimento al gruppo di proprietà condiviso specificato nel parametro Name viene restituito nel parametro ppGroup .
CONTEXT_E_NOCONTEXT
Il chiamante non è in esecuzione in COM+. Un chiamante deve essere in esecuzione in COM+ per usare Shared Property Manager.
E_INVALIDARG
Almeno uno dei parametri non è valido oppure lo stesso oggetto tenta di creare lo stesso gruppo di proprietà più di una volta.

Commenti

Le costanti seguenti vengono usate per specificare la modalità di isolamento efficace per un gruppo di proprietà condiviso.

Costante Valore Descrizione
LockSetGet 0 Il valore predefinito. Garantisce che ogni operazione get o set su una proprietà condivisa sia atomica bloccando la proprietà durante la chiamata. Ciò garantisce che due client non possano leggere o scrivere nella stessa proprietà contemporaneamente, ma non impedisce ad altri client di accedere simultaneamente ad altre proprietà nello stesso gruppo.
LockMethod 1 Questo valore blocca tutte le proprietà nel gruppo di proprietà condivise per l'uso esclusivo del chiamante, purché il metodo corrente del chiamante sia in esecuzione. Questa è la modalità appropriata da usare quando sono presenti interdipendenza tra le proprietà o nei casi in cui un client potrebbe dover aggiornare una proprietà immediatamente dopo la lettura prima di poter accedere di nuovo.
 
Nota Quando si imposta la modalità di isolamento su LockMethod, Gestione proprietà condivisa richiede l'accesso al contesto dell'oggetto chiamante. Non è possibile usare questa modalità di isolamento per creare un gruppo di proprietà condiviso dall'interno del costruttore di un oggetto o da un oggetto non COM+ perché il contesto dell'oggetto non è disponibile durante la costruzione dell'oggetto e un client di base non dispone di un contesto oggetto.
 
Le costanti seguenti vengono usate per specificare la modalità di rilascio effettiva per un gruppo di proprietà condiviso.
Costante Valore Descrizione
Standard 0 Il valore predefinito. Una volta che tutti i client hanno rilasciato i relativi riferimenti nel gruppo delle proprietà, questo viene eliminato automaticamente.
Processo 1 Il gruppo delle proprietà non viene eliminato fino a quando il processo in cui viene creato non termina. Gli oggetti che contengono riferimenti in un gruppo di proprietà devono comunque chiamare Release sui riferimenti.
 
Nota Un oggetto non deve mai tentare di passare un riferimento al gruppo di proprietà condiviso a un altro oggetto. Se il riferimento viene passato all'esterno dell'oggetto acquisito, non è più un riferimento valido.
 

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione comsvcs.h

Vedi anche

ISharedPropertyGroupManager