Condividi tramite


funzione IUnknown_Set (shlwapi.h)

Modifica il valore di un puntatore dell'interfaccia COM (Component Object Model) e rilascia l'interfaccia precedente.

Sintassi

void IUnknown_Set(
  [in, out]      IUnknown **ppunk,
  [in, optional] IUnknown *punk
);

Parametri

[in, out] ppunk

Tipo: IUnknown**

Indirizzo di un puntatore dell'interfaccia COM per ricevere il puntatore assegnato al punk. Se il valore precedente del puntatore non è NULL, la funzione rilascia tale interfaccia chiamando il metodo IUnkown::Release.

[in, optional] punk

Tipo: IUnknown*

Puntatore dell'interfaccia da copiare in ppunk. Se il valore non è NULL, la funzione incrementa il numero di riferimenti dell'interfaccia.

Valore restituito

nessuno

Osservazioni

Questa funzione simula il comportamento di un puntatore intelligente. Concettualmente, la funzione esegue le operazioni seguenti:

  • Rilascia l'interfaccia originale, se ppunk non è NULL
  • Assegna il punk a ppunk
  • Chiama IUnknown::AddRef nell'interfaccia puntata da punk, se punk non è NULL.

Esempio


void sample()
{
  IUnknown *punk = NULL;
  IStream* pstm = NULL;

  if (SUCCEEDED(CreateStreamOnHGlobal(NULL, TRUE, &pstm)) {
    // since punk == NULL, this merely copies the value and AddRef()s it
    IUnknown_Set(&punk, pstm);
    pstm->Release();

    if (SUCCEEDED(CreateStreamOnHGlobal(NULL, TRUE, &pstm)) {
      // this call will release the old value of punk before copying the
      // new value and AddRef()ing it
      IUnknown_Set(&punk, pstm);
      pstm->Release();
    }
  }

  // This call will release whatever punk points to, if anything.
  IUnknown_AtomcRelease((void**)&punk);

  // at this point, punk == NULL
}

Requisiti

   
Client minimo supportato Windows 2000 Professional, Windows XP [solo app desktop]
Server minimo supportato Windows 2000 Server, Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione shlwapi.h
DLL Shlwapi.dll (versione 5.0 o successiva)