Metodo IHolder::TrackResource (comsvcs.h)

Tiene traccia della risorsa.

Sintassi

HRESULT TrackResource(
  [in] const RESID __MIDL__IHolder0003
);

Parametri

[in] __MIDL__IHolder0003

Handle della risorsa da tenere traccia. Resource Distributor ha già creato questa risorsa prima di chiamare TrackResource.

Valore restituito

Questo metodo può restituire i valori seguenti.

Codice restituito Descrizione
S_OK
Metodo completato correttamente.
E_INVALIDARG
ResId non è un handle di risorsa valido.
E_FAIL
Il metodo non è riuscito. La risorsa non è stata rilevata. La causa probabile è che la transazione del chiamante venga interrotta.

Commenti

Alcune risorse non vengono mantenute nell'inventario; sono sempre prodotti su richiesta. Il titolare viene usato solo come meccanismo per liberare automaticamente le risorse lasciate alla fine della durata di un oggetto.

TrackResource indica al Titolare che una risorsa deve essere rilevata fino a quando non viene liberata chiamando IHolder::UntrackResource o fino a quando non viene rilasciato l'oggetto denominato TrackResource , in cui il Manager del Distributore libera automaticamente la risorsa.

Se TrackResource viene chiamato da un oggetto transazionale, viene richiamato al metodo IDispenserDriver::EnlistResource di Resource Distributore. Il metodo EnlistResource può integrare la risorsa nella transazione oppure può restituire S_FALSE, a indicare che la risorsa non è in grado di eseguire transazioni e non è stata inserita nell'elenco.

Questa risorsa viene infine eliminata definitivamente dopo che entrambe le operazioni seguenti sono vere:

  • Resource Distributor chiama IHolder::UntrackResource (molto probabilmente alla richiesta del componente) o la durata dell'oggetto.
  • La transazione in cui è stata inserita la risorsa (se presente) viene eseguita.

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

IDispenserDriver

IDispenserManager

IHolder