Bagikan melalui


fungsi IUnknown_Set (shlwapi.h)

Mengubah nilai penunjuk antarmuka Model Objek Komponen (COM) dan merilis antarmuka sebelumnya.

Sintaks

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

Parameter

[in, out] ppunk

Jenis: IUnknown**

Alamat penunjuk antarmuka COM untuk menerima penunjuk yang ditetapkan ke punk. Jika nilai pointer sebelumnya adalah non-NULL, fungsi akan merilis antarmuka tersebut dengan memanggil metode IUnkown::Release.

[in, optional] punk

Jenis: IUnknown*

Penunjuk antarmuka yang akan disalin ke ppunk. Jika nilainya non-NULL, fungsi akan menaikkan jumlah referensi antarmuka.

Menampilkan nilai

Tidak ada

Keterangan

Fungsi ini meniru perilaku penunjuk cerdas. Secara konseptual, fungsi melakukan hal berikut:

  • Merilis antarmuka asli, jika ppunk bukan NULL
  • Menetapkan punk ke ppunk
  • Memanggil IUnknown::AddRef pada antarmuka yang diacu oleh punk, jika punk bukan NULL.

Contoh


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
}

Persyaratan

   
Klien minimum yang didukung Windows 2000 Professional, Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server, Windows Server 2003 [hanya aplikasi desktop]
Target Platform Windows
Header shlwapi.h
DLL Shlwapi.dll (versi 5.0 atau yang lebih baru)