Partager via


IPortableDeviceContent ::CreateObjectWithPropertiesAndData, méthode (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

Une IPortableDeviceValues collection de propriétés à affecter à l’objet. Pour obtenir la liste des propriétés obligatoires et facultatives d’un objet, consultez Conditions requises pour les objets.

[out] ppData

Adresse d’une variable qui reçoit un pointeur vers une interface IStream utilisée par l’application pour envoyer les données d’objet à l’appareil. L’objet ne sera 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 ->Rétablir. L’appelant doit libérer cette interface lorsqu’elle est effectuée 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 pour l’application à utiliser lors de l’écriture des données dans ppData. L’application peut spécifier TRUE pour l’ignorer.

[in, out] ppszCookie

ID de chaîne unique et null facultatif utilisé pour identifier cette demande de création dans l’implémentation de l’application de IPortableDeviceEventCallback (en cas d’implémentation). Lorsque l’appareil termine la création de 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 appelé CreateObjectWithPropertiesOnly. Le Kit de développement logiciel (SDK) alloue cette mémoire et l’appelant doit le libérer à l’aide de CoTaskMemFree.

Valeur de retour

La méthode retourne une HRESULT. Les valeurs possibles incluent, mais ne sont pas limitées à celles du tableau suivant.

Retourner le code Description
S_OK
La méthode a réussi.
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 objets sont à la fois des propriétés et des données, comme un fichier audio, qui contient toutes les propriétés et les bits 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 properties uniquement, appelez CreateObjectWithPropertiesOnly.

Étant donné que l’objet n’est pas créé tant que l’application n’appelle Commit sur la IStreamppDatarécupérée, l’objet n’aura pas d’ID tant que Commit n’est pas appelé dessus. Commit est synchrone. Par conséquent, lorsque cette méthode est retournée avec succès, 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.

Exigences

Exigence Valeur
plateforme cible Windows
d’en-tête portabledeviceapi.h
bibliothèque PortableDeviceGUIDs.lib

Voir aussi

iPortableDeviceContent, interface

interface IPortableDeviceDataStream

transférer une image ou un fichier de musique vers l’appareil