IOPCItemMgt::AddItems
Previous  Top  Next

HRESULT AddItems(
   [in] DWORD dwCount,
   [in, size_is(dwCount)] OPCITEMDEF * pItemArray,
   [out, size_is(,dwCount)] OPCITEMRESULT ** ppAddResults,
   [out, size_is(,dwCount)] HRESULT ** ppErrors
   );

Descrizione
Aggiunge uno o più item ad un gruppo

Parametri
Descrizione
dwCount
Numero di item che devono essere aggiunti
pItemArray
Array di OPCITEMDEF. Contiene tutto ciò che il server deve conoscere sugli Item, compreso l'access path, la definizione e il datatype richiesto
ppAddResults
Array of OPCITEMRESULT. Contiene tutte le informazioni addizionali sugli Item che possono servire al client compreso il server handle assegnato all'item e il datatype canonico.
ppErrors
Array di HRESULT. Dice al client quali item sono stati aggiunti con successo. Per ogni item che non è stato aggiunto fornisce una motivazione del fallimento.


Codici Restituiti

Codici Restituiti
Descrizione
E_FAIL
Operazione fallita.
E_OUTOFMEMORY
Memoria insufficiente
E_INVALIDARG
Un argomento della funzione era non valido.
S_OK
Operazione condotta con successo.
S_FALSE
Operazione completata con un parziale successo. Si riferisce ad un errore individuale ritornato per un'analisi degli errori.
OPC_E_PUBLIC
Impossibile aggiungere Item ad un gruppo pubblico.


Codici Di Errore Restituiti

Codici Restituiti
Descrizione
S_OK
La funzione ha avuto successo per questo Item.
OPC_E_INVALIDITEMID
L'ItemID è sintatticamente non valido.
OPC_E_UNKNOWNITEMID
L'ItemID non è nello spazio di indirizzi del server.
OPC_E_BADTYPE
Il tipo di dato richiesto non può essere restituito per questo Item.
E_FAIL
La funzione non ha avuto successo.
OPC_E_UNKNOWNPATH
Il server non conosce l'access path dell'item.


Commenti
È possibile aggiungere lo stesso item ad un gruppo per più di una volta. Ciò genererà un secondo item con un ServerHandle univoco.
Ogni FAILED code in ppErrors indica che il corrispondente item non è stato aggiunto al gruppo e che il suo OPCITEMRESULT non conterrà informazioni utili.
Come alternativa all'OPC_E_BADTPYE è possibile per il server ritornare ogni FAILED error attraverso un VariantChangeType o un VariantChangeTypeEx.
Il server fornisce degli item handle che saranno univoci all'interno del gruppo, ma poterbbero non esserlo al di fuori di esso. Il server può riutilizzare gli handle di item cancellati.
Non si possono aggiungere item a public group.
I client devono liberare tutta la memoria associata ad un OPCITEMRESULT compreso il BLOB.
Se il server supporta il BLOB sarà ritornato un suo aggiornamento con il OPCITEMRESULT. Questo BLOB può differire sia nel contenuto che nella misura da quello passato dal client nell'OPCITEMDEF.
Si noti che se un Advise è attivo, il client comincerà a ricevere callback per gli item attivi. Ciò può avvenire molto velocemente, pertanto anche prima che il client abbia il tempo di processare i risultati ritornati. Il client deve essere progettato per evitare ciò. L'unica soluzione semplice per il client è resettare lo stato Active del gruppo mentre sta facendo l'AddItem e ripristinarlo dopo aver completato l'AddItem ed averne processato i risultati.