fonction IUnknown_Set (shlwapi.h)
Modifie la valeur d’un pointeur d’interface COM (Component Object Model) et libère l’interface précédente.
Syntaxe
void IUnknown_Set(
[in, out] IUnknown **ppunk,
[in, optional] IUnknown *punk
);
Paramètres
[in, out] ppunk
Type : IUnknown**
Adresse d’un pointeur d’interface COM pour recevoir le pointeur affecté à punk. Si la valeur précédente du pointeur est non NULL, la fonction libère cette interface en appelant sa méthode IUnkown::Release.
[in, optional] punk
Type : IUnknown*
Pointeur d’interface à copier vers ppunk. Si la valeur n’est pas NULL, la fonction incrémente le nombre de références de l’interface.
Valeur de retour
None
Remarques
Cette fonction imite le comportement d’un pointeur intelligent. Conceptuellement, la fonction effectue les opérations suivantes :
- Libère l’interface d’origine, si ppunk n’est pas NULL
- Assigne le punk au ppunk
- Appelle IUnknown::AddRef sur l’interface pointée vers punk, si punk n’a pas la valeur NULL.
Exemples
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
}
Configuration requise
Client minimal pris en charge | Windows 2000 Professionnel, Windows XP [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server, Windows Server 2003 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | shlwapi.h |
DLL | Shlwapi.dll (version 5.0 ou ultérieure) |