IOPCAsyncIO2::Refresh2
Previous  Top  Next

HRESULT Refresh2(
   [in] OPCDATASOURCE dwSource,
   [in] DWORD dwTransactionID,
   [out] DWORD *pdwCancelID
   );
 
Descrizione
Forza una callback a IOPCDataCallback::OnDataChange per tutti gli item attivi nel gruppo (per controllare se sono cambiati o no). Gli item inattivi non sono inclusi nella callback.

Parametri
Descrizione
dwSource
Sorgente dei dati: CACHE o DEVICE. Se è un DEVICE, allora tutti gli item presenti nella CACHE subiranno un refresh dal device prima della callback.
dwTransactionID
Transaction ID generata dal client. Questo è inclusa nella informazione di completamento fornita all'OnDataChange.
pdwCancelID
Punto per ritornare l'ID generato dal server da essere usato nei casi in cui l'operazione deve essere cancellata.


Codici Restituiti

Codici Restituiti
Descrizione
S_OK
L'operazione ha avuto successo.
E_FAIL
L'operazione non ha avuto successo.
E_OUTOFMEMORY
Memoria insufficiente.
E_INVALIDARG
Un argomento della funzione era non valido.
CONNECT_E_NOCONNECTION
Il client non ha registrato una callback attraverso la IConnectionPoint::Advise.


Commenti
Se HRESULT è un FAILED code allora non avverrà nessuna callback.
La chiamata di un refresh per un gruppo non attivo ritornerà un E_FAIL così come la chiamata di un refresh per un gruppo attivo in cui tutti gli item sono non attivi.
Il funzionamento di questa funzione è identico a quello che succede quando Advise è chaimato inizialmente eccetto che la callback non includerà una transaction ID diversa da 0.
Funzionalmente è simile anche ad una Read di tutti gli item attivi di un gruppo.
Il server deve ritornare tutti i risultati in una singola callback. Cioè, se gli item nel gruppo richiedono più transazioni fisiche ad uno o più device fisici allora il server deve aspettare fino a quando ognuna di queste sia completa prima di invocare la procedura OnDataChange.
Ci si aspetta che il refresh non influenzi le periodiche e normali callbacks OnDataChange che si basano sull'UpdateRate.