OleGetClipboardWithEnterpriseInfo, fonction (ole2.h)
Active Windows Information Protection éclairé
applications permettant de récupérer un objet IDataObject à partir du Presse-papiers OLE
accompagné de Windows Information Protection d’informations sur les données et le
application source. Ces informations permettent de
application éclairée pour prendre en charge l’application de Windows Information Protection
stratégie, y compris l’accès à toutes les invites d’interface utilisateur appropriées, et
cas d’audit où l’utilisateur approuve explicitement la copie
données d’entreprise dans un contexte personnel.
Si l’application appelante n’est pas éclairée ou est
configuré comme « non autorisé » pour accéder aux données d’entreprise,
ensuite, cet appel se comporte exactement comme OleGetClipboard - en appliquant la stratégie avant de décider quel IDataObject retourner,
et fournir des chaînes vides en sortie.
Syntaxe
HRESULT OleGetClipboardWithEnterpriseInfo(
[out] IDataObject **dataObject,
[out] PWSTR *dataEnterpriseId,
[out] PWSTR *sourceDescription,
[out] PWSTR *targetDescription,
[out] PWSTR *dataDescription
);
Paramètres
[out] dataObject
Adresse de la variable de pointeur IDataObject qui reçoit le pointeur d’interface vers l’objet de données du Presse-papiers.
[out] dataEnterpriseId
ID d’entreprise de l’application qui définit les données du Presse-papiers. Si les données sont personnelles, il s’agit d’une chaîne vide.
[out] sourceDescription
Description de l’application qui définit le Presse-papiers.
[out] targetDescription
Description de l’application de l’appelant à utiliser dans l’audit.
[out] dataDescription
Description de l’objet de données à utiliser dans l’audit.
Valeur retournée
Cette fonction retourne S_OK en cas de réussite. Les autres valeurs possibles sont les suivantes.
Code de retour | Description |
---|---|
|
La fonction OpenClipboard utilisée dans OleFlushClipboard a échoué. |
|
La fonction CloseClipboard utilisée dans OleFlushClipboard a échoué. |
Remarques
OleGetClipboardWithEnterpriseInfo gère trois cas :
- L’application qui a placé des données dans le Presse-papiers avec la fonction OleSetClipboard est toujours en cours d’exécution.
- L’application qui a placé des données dans le Presse-papiers avec la fonction OleSetClipboard a ensuite appelé la fonction OleFlushClipboard .
- Il existe des données provenant d’une application non OLE dans le Presse-papiers.
Dans le deuxième cas, OLE crée un objet de données par défaut et le retourne à l’utilisateur. Étant donné que les données du Presse-papiers proviennent d’un appel OleSetClipboard , l’objet de données fourni par OLE contient des informations plus précises sur le type de données dans le Presse-papiers. En particulier, le support d’origine (TYMED) sur lequel les données ont été proposées est connu. Ainsi, si une application source de données offre un format particulier de Presse-papiers, par exemple cfFOO, sur un objet de stockage et appelle la fonction OleFlushClipboard , l’objet de stockage est copié en mémoire et le handle de mémoire hglobal est placé dans le Presse-papiers. Ensuite, lorsque la fonction OleGetClipboardWithEnterpriseInfo crée son objet de données par défaut, le hglobal du Presse-papiers redevient un objet IStorage . En outre, l’énumérateur FORMATETC et la méthode IDataObject ::QueryGetData indiquent tous correctement que le format du Presse-papiers d’origine (cfFOO) est à nouveau disponible sur un TYMED_ISTORAGE.
Dans le troisième cas, OLE crée toujours un objet de données par défaut, mais il n’existe aucune information spéciale sur les données dans le Presse-papiers (en particulier pour les formats de Presse-papiers définis par l’application). Ainsi, si un support de stockage basé sur hGlobal était placé directement dans le Presse-papiers par un appel à la fonction SetClipboardData , l’énumérateur FORMATETC et la méthode IDataObject ::QueryGetData n’indiqueraient pas que les données étaient disponibles sur un support de stockage. Toutefois, un appel à la méthode IDataObject ::GetData pour TYMED_ISTORAGE réussit. En raison de ces limitations, il est vivement recommandé que les applications prenant en charge OLE interagissent avec le Presse-papiers à l’aide des fonctions du Presse-papiers OLE.
L’objet de données du Presse-papiers créé par la fonction OleGetClipboardWithEnterpriseInfo a une implémentation IDataObject assez étendue. L’objet de données fourni par OLE peut convertir les données au format du Presse-papiers OLE 1 en représentation attendue par un appelant OLE 2. En outre, toutes les données structurées sont disponibles sur n’importe quel support structuré ou plat, et toutes les données plates sont disponibles sur n’importe quel support plat. Toutefois, les objets GDI (tels que les métafichiers et les bitmaps) ne sont disponibles que sur leurs supports respectifs.
Notez que le membre joint de la structure FORMATETC utilisé dans l’énumérateur FORMATETC contient l’union des supports pris en charge. Les applications qui recherchent des informations spécifiques (par exemple, si CF_TEXT est disponible sur TYMED_HGLOBAL) doivent effectuer le maquage de bits approprié lors de la vérification de cette valeur.
Si vous appelez la fonction OleGetClipboardWithEnterpriseInfo , vous ne devez conserver l’objet IDataObject retourné que très peu de temps. Il consomme des ressources dans l’application qui l’a proposé.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 10 (applications de bureau uniquement) |
Serveur minimal pris en charge | Windows Server 2016 (applications de bureau uniquement) |
Plateforme cible | Windows |
En-tête | ole2.h |
Bibliothèque | Ole32.lib |
DLL | Ole32.dll |