Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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) |