IOPCGroupStateMgt::CloneGroup
Previous  Top  Next

HRESULT CloneGroup(
   [in, string] LPCWSTR szName,
   [in] REFIID riid,
   [out, iid_is(riid)] LPUNKNOWN * ppUnk
   );
Descrizione
Crea una seconda copia di un gruppo con un nome univoco. Questo metodo funziona sia per i gruppi privati che per quelli pubblici, tuttavia, nuovo gruppo è sempre un gruppo privato. Tutte le proprietà del gruppi e degli item vengono duplicate. Una volta creato, il nuovo gruppo è totalmente indipendente dal vecchio gruppo. È possibile aggiungere o cancellare item in esso senza aver alcun effetto sul gruppo che lo ha generato.
Le proprietà che non sono copiate nel nuovo gruppo sono:
·Stato Attivo del nuovo gruppo che inizialmente viene settato a FALSE  
·ServerHandle.  
·Item SeverHandles che può anche essere assegnato dal server.  
·Il nuovo gruppo non sarà connesso ad alcun Advise o Connection point sinks.  

Parametri
Descrizione
szName
Nome del gruppo. Il nome deve essere univoco. Se non viene fornito nessun nome questo verrà generato dal server in modo da essere univoco.
riid
Tipo di interfaccia richiesta.
ppUnk
Punto ove ritornare il puntatore all'interfaccia. Ritorna NULL per un qualsiasi HRESULT diverso da S_OK


Codici Restituiti

Codici Restituiti
Descrizione
S_OK
L'operazione ha avuto successo.
E_FAIL
L'operazione è fallita.
E_OUTOFMEMORY
Memoria insufficiente.
E_INVALIDARG
Un argomento della funzione era non valido.
OPC_E_DUPLICATENAME
Duplicazione del nome non consentita.
E_NOINTERFACE
L'interfaccia (riid) richiesta non è supportata dal server.


Commenti
Rappresenta un gruppo del tutto indipendente dal gruppo originario. Come per AddGroup il gruppo deve essere cancellato con la funzione RemoveGroup.
Il client deve anche restituire l'interfaccia ritornata quando necessario.
L'uso primario di questa funzione è creare duplicati privati di gruppi pubblici che possono essere in seguito modificati dai client.