Partager via


ICallFrame ::Copy, méthode (callobj.h)

Crée une copie de ce cadre d’appel et de toutes les données associées.

Avertissement Le cadre d’appel ne propre pas automatiquement les données copiées. Par conséquent, une fois la copie retournée, l’utilisateur est responsable d’appeler Free sur la copie de frame. Cette opération doit être effectuée pour éviter une fuite de mémoire.
 

Syntaxe

HRESULT Copy(
  [in]  CALLFRAME_COPY   copyControl,
  [in]  ICallFrameWalker *pWalker,
  [out] ICallFrame       **ppFrame
);

Paramètres

[in] copyControl

Détermine si les données de trame d’appel copiées peuvent être partagées avec les données de l’image parente en déterminant leur dépendance de durée de vie sur l’image parente. Pour obtenir la liste des valeurs, consultez l’énumération CALLFRAME_COPY . Si l’indicateur CALLFRAME_COPY_NESTED est défini, le client est responsable de l’utilisation de l’image d’appel copiée de manière à ce que sa durée de vie soit imbriquée dans la durée de vie de son image parente, ce qui rend les données partageables. Si le CALLFRAME_COPY_INDEPENDENT est défini, la durée de vie du cadre copié est indépendante des parents.

[in] pWalker

Pointeur vers un instance de l’interface ICallFrameWalker. La méthode OnWalkInterface sera appelée pour chaque pointeur d’interface copié. Si ce paramètre n’est pas fourni, tout pointeur d’interface copié est passé à AddRef.

[out] ppFrame

Pointeur vers un pointeur ICallFrame vers une copie du frame d’appel.

Valeur retournée

Si cette méthode réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.

Remarques

La copie d’un cadre revient à démarshaller un cadre marshalé. Le frame d’appel ne peut être copié que s’il a des paramètres in-parameters. Si le frame d’appel est appelé, il ne peut pas être copié. La méthode de copie copie les pointeurs d’interface en tant que valeurs binaires et aucun ajustement du nombre référencé n’est effectué. Mais si ce comportement est souhaité, un pointeur vers ICallFrameWalker peut être utilisé.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête callobj.h

Voir aussi

ICallFrame