OleSetClipboard, fonction (ole2.h)
Place un pointeur vers un objet de données spécifique dans le Presse-papiers. Cela rend l’objet de données accessible à la fonction OleGetClipboard .
Syntaxe
HRESULT OleSetClipboard(
[in] LPDATAOBJECT pDataObj
);
Paramètres
[in] pDataObj
Pointeur vers l’interface IDataObject sur l’objet de données à partir duquel les données à placer dans le Presse-papiers peuvent être obtenues. Ce paramètre peut être NULL ; auquel cas le Presse-papiers est vidé.
Valeur retournée
Cette fonction retourne S_OK en cas de réussite. Les autres valeurs possibles sont les suivantes.
Code de retour | Description |
---|---|
|
Échec de la fonction OpenClipboard utilisée dans OleSetClipboard . |
|
Échec de la fonction EmptyClipboard utilisée dans OleSetClipboard . |
|
Échec de la fonction CloseClipboard utilisée dans OleSetClipboard . |
|
Échec de la fonction SetClipboardData utilisée dans OleSetClipboard . |
Notes
Si vous écrivez une application qui peut servir de source à une opération du Presse-papiers, vous devez effectuer les opérations suivantes :
- Créez un objet de données (sur lequel est l’interface IDataObject ) pour les données copiées ou coupées dans le Presse-papiers. Cet objet doit être le même que celui utilisé dans les opérations de glisser-déplacer OLE.
- Appelez OleSetClipboard pour placer le pointeur IDataObject dans le Presse-papiers, afin qu’il soit accessible à la fonction OleGetClipboard . OleSetClipboard appelle également la méthode IUnknown::AddRef sur votre objet de données.
- Si vous le souhaitez, relâchez l’objet de données après l’avoir placé dans le Presse-papiers pour libérer le compteur IUnknown::AddRef dans votre application.
- Si l’utilisateur coupe des données (les supprime du document et les place dans le Presse-papiers), supprimez les données du document.
La fonction OleSetClipboard affecte la propriété du Presse-papiers à un handle de fenêtre OLE interne. Le nombre de références de l’objet de données est augmenté de 1, pour activer le rendu différé. Le nombre de références est réduit par un appel à la fonction OleFlushClipboard ou par un appel ultérieur à OleSetClipboard spécifiant NULL comme valeur de paramètre (ce qui efface le Presse-papiers).
Lorsqu’une application ouvre le Presse-papiers (directement ou indirectement en appelant la fonction OpenClipboard ), le Presse-papiers ne peut pas être utilisé par une autre application tant qu’il n’est pas fermé. Si le Presse-papiers est actuellement ouvert par une autre application, OleSetClipboard échoue. Le handle de fenêtre OLE interne satisfait WM_RENDERFORMAT messages en les déléguant à l’implémentation IDataObject sur l’objet de données qui se trouve dans le Presse-papiers.
La spécification de NULL comme valeur de paramètre pour OleSetClipboard vide le Presse-papiers actuel. Si le contenu du Presse-papiers est le résultat d’un appel OleSetClipboard précédent et que le Presse-papiers a été libéré, le pointeur IDataObject qui a été passé à l’appel précédent est libéré. Le propriétaire du Presse-papiers doit l’utiliser comme un signal indiquant que les données qu’il proposait précédemment ne sont plus dans le Presse-papiers.
Si vous devez laisser les données dans le Presse-papiers après la fermeture de votre application, vous devez appeler OleFlushClipboard au lieu d’appeler OleSetClipboard avec une valeur de paramètre NULL .
Spécifications
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 | ole2.h |
Bibliothèque | Ole32.lib |
DLL | Ole32.dll |
Ensemble d’API | ext-ms-win-com-ole32-l1-1-5 (introduit dans Windows 10, version 10.0.15063) |