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 |
---|---|
|
La méthode a réussi. |
|
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