Partager via


Méthode IPortableDeviceContent ::CreateObjectWithPropertiesAndData (portabledeviceapi.h)

La méthode CreateObjectWithPropertiesAndData crée un objet avec des propriétés et des données sur l’appareil.

Syntaxe

HRESULT CreateObjectWithPropertiesAndData(
            IPortableDeviceValues *pValues,
  [out]     IStream               **ppData,
  [in, out] DWORD                 *pdwOptimalWriteBufferSize,
  [in, out] LPWSTR                *ppszCookie
);

Paramètres

pValues

Collection IPortableDeviceValues de propriétés à affecter à l’objet . Pour obtenir la liste des propriétés obligatoires et facultatives d’un objet, consultez Configuration requise pour les objets.

[out] ppData

Adresse d’une variable qui reçoit un pointeur vers une interface IStream que l’application utilise pour envoyer les données d’objet à l’appareil. L’objet n’est pas créé sur l’appareil tant que l’application n’envoie pas les données en appelant ppData-Commit>. Pour abandonner un transfert de données en cours, vous pouvez appeler ppData ->Revert. L’appelant doit libérer cette interface lorsqu’il a terminé avec elle. L’objet sous-jacent étend À la fois IStream et IPortableDeviceDataStream.

[in, out] pdwOptimalWriteBufferSize

Pointeur DWORD facultatif qui spécifie la taille de mémoire tampon optimale que l’application doit utiliser lors de l’écriture des données dans ppData. L’application peut spécifier TRUE pour ignorer cela.

[in, out] ppszCookie

ID de chaîne unique et terminé par null facultatif qui est utilisé pour identifier cette demande de création dans l’implémentation de l’application d’IPortableDeviceEventCallback (si implémenté). Lorsque l’appareil a terminé de créer l’objet, il envoie cet identificateur à la fonction de rappel. Cet identificateur permet à une application de surveiller la création d’objets dans un thread différent de celui qui a appelé CreateObjectWithPropertiesOnly. Le SDK alloue cette mémoire et l’appelant doit la libérer à l’aide de CoTaskMemFree.

Valeur retournée

Cette méthode retourne un code HRESULT. Les valeurs possibles sont notamment celles figurant dans le tableau suivant.

Code de retour Description
S_OK
S_OK
E_POINTER
Au moins l’un des arguments requis était un pointeur NULL .

Remarques

Certains objets ne sont qu’une collection de propriétés, comme un dossier, qui n’est qu’une collection de pointeurs vers d’autres objets, tandis que d’autres sont à la fois des propriétés et des données, comme un fichier audio, qui contient toutes les propriétés et les morceaux de musique réels. Cette méthode est utilisée pour créer un objet qui nécessite à la fois des propriétés et des données. Pour créer un objet de propriétés uniquement, appelez CreateObjectWithPropertiesOnly.

Étant donné que l’objet n’est pas créé tant que l’application n’a pas appelé Commit sur le ppData IStream récupéré, l’objet n’aura pas d’ID tant que Commit n’est pas appelé sur celui-ci. La validation étant synchrone, lorsque cette méthode retourne correctement, l’objet existe sur l’appareil.

Après avoir appelé Commit pour créer l’objet, appelez QueryInterface sur ppData pour IPortableDeviceDataStream, puis appelez IPortableDeviceDataStream ::GetObjectID pour obtenir l’ID de l’objet nouvellement créé.

Exemples

Pour obtenir un exemple d’utilisation de cette méthode, consultez Transfert d’une image ou d’un fichier de musique vers l’appareil.

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête portabledeviceapi.h
Bibliothèque PortableDeviceGUIDs.lib

Voir aussi

IPortableDeviceContent, interface

IPortableDeviceDataStream, interface

Transfert d’une image ou d’un fichier de musique vers l’appareil