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) |