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