Metodo IHolder::Close (comsvcs.h)

Chiude il segnaposto.

Sintassi

HRESULT Close();

Valore restituito

Se questo metodo ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT .

Commenti

Questo chiude il titolare di un distributore di risorse, dopo il quale il Distributore di risorse probabilmente rilasciato.

Prima della chiusura, qualsiasi inventario rimanente viene eliminato richiamando il metodo IDispenserDriver::D estroyResource di Resource Distributore.

La sequenza seguente descrive come chiudere un Distributore di risorse:

  1. Ottenere un riferimento al Distributore di risorse (l'oggetto che espone IDispenserDriver).
  2. Chiamare un metodo in Resource Distributor il cui implementazione chiama IHolder::Close.
  3. IHolder::Close elimina definitivamente qualsiasi inventario rimanente chiamando il metodo IDispenserDriver::D estroyResource di Resource Distributore.
  4. IHolder::Close chiama il gestore del distributore per rimuovere il titolare dall'elenco Dei titolari. Se non rimangono titolari, l'oggetto Manager del Distributore elimina se stesso.
  5. IHolder::Close rilascia il riferimento all'interfaccia IDispenserDriver di Resource Distributore. Questo è il motivo per cui è necessario un riferimento nel passaggio 1; in caso contrario, il Distributore risorse si eliminerebbe prematuramente prima che i passaggi successivi possano essere completati.
  6. IHolder::Close torna al Distributore risorse.
  7. Resource Distributor chiama IDispenserDriver::D estroyResource. Il titolare ora si elimina.
  8. Il metodo chiamato nel passaggio 2 restituisce ora .
  9. Rilasciare il riferimento finale al Distributore di risorse, che ora si elimina.
Si noti che il metodo IDispenserManager::RegisterDispenser non chiama AddRef sull'oggetto pDispenserDriver , ma IHolder::Close esegue una release su pDispenserDriver. Ciò può causare l'eliminazione prematura dell'oggetto Resource Distributor. Per evitare questa distruzione prematura, il chiamante di IHolder::Close deve contenere un riferimento all'oggetto Resource Distributor, come descritto nei passaggi 1 e 5.

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