função IUnknown_Set (shlwapi.h)
Altera o valor de um ponteiro de interface COM (Component Object Model) e libera a interface anterior.
Sintaxe
void IUnknown_Set(
[in, out] IUnknown **ppunk,
[in, optional] IUnknown *punk
);
Parâmetros
[in, out] ppunk
Tipo: IUnknown**
O endereço de um ponteiro de interface COM para receber o ponteiro atribuído ao punk. Se o valor anterior do ponteiro não for NULL, a função liberará essa interface chamando seu método IUnkown::Release.
[in, optional] punk
Tipo: IUnknown*
O ponteiro de interface a ser copiado para ppunk. Se o valor não for NULL, a função incrementará a contagem de referência da interface.
Valor retornado
Nenhum
Comentários
Essa função imita o comportamento de um ponteiro inteligente. Conceitualmente, a função faz o seguinte:
- Libera a interface original, se ppunk não for NULL
- Atribui punk a ppunk
- Chama IUnknown::AddRef na interface apontada pelo punk, se punk não for NULL.
Exemplos
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
}
Requisitos
Cliente mínimo com suporte | Windows 2000 Professional, Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows 2000 Server, Windows Server 2003 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | shlwapi.h |
DLL | Shlwapi.dll (versão 5.0 ou posterior) |