Partager via


Méthode IWMDMStorageControl ::Insert (mswmdm.h)

La méthode Insert place le contenu dans le stockage sur l’appareil.

Syntaxe

HRESULT Insert(
  [in]  UINT           fuMode,
  [in]  LPWSTR         pwszFile,
  [in]  IWMDMOperation *pOperation,
  [in]  IWMDMProgress  *pProgress,
  [out] IWMDMStorage   **ppNewObject
);

Paramètres

[in] fuMode

Or au niveau du bit des valeurs suivantes. Le tableau suivant répertorie les modes de traitement qui peuvent être spécifiés dans le paramètre fuMode . Vous devez spécifier exactement l’un des deux premiers modes, exactement l’un des modes STORAGECONTROL et exactement l’un des modes CONTENT. Si WMDM_MODE_BLOCK et WMDM_MODE_THREAD sont spécifiés, le mode bloc est utilisé.

Combinaisons Mode Description
Exactement l’un des éléments suivants : WMDM_MODE_BLOCK L’opération est effectuée à l’aide du traitement en mode bloc. L’appel ne sera pas retourné tant que l’opération n’est pas terminée.
WMDM_MODE_THREAD L’opération est effectuée à l’aide du traitement en mode thread. L’appel est retourné immédiatement et l’opération est effectuée dans un thread d’arrière-plan.
Exactement l’un des éléments suivants : WMDM_STORAGECONTROL_INSERTBEFORE L’objet est inséré avant l’objet actuel.
WMDM_STORAGECONTROL_INSERTAFTER L’objet est inséré après l’objet actuel.
WMDM_STORAGECONTROL_INSERTINTO L’objet est inséré dans l’objet actuel. Cela ne fonctionne que si l’objet actuel est un dossier.
Exactement l’un des éléments suivants : WMDM_CONTENT_FILE Le contenu inséré est un fichier.
WMDM_CONTENT_FOLDER Le contenu inséré est un dossier. Cela ne transfère pas le contenu du dossier.
WMDM_CONTENT_OPERATIONINTERFACE Le contenu inséré est une interface d’opération. Les données du contenu doivent être écrites dans l’interface IWMDMOperation implémentée par l’application .
Zéro ou plus de : WMDM_FILE_CREATE_OVERWRITE L’objet remplacera l’objet actuel.
WMDM_MODE_QUERY Un test est effectué pour déterminer si l’opération d’insertion peut réussir, mais l’insertion ne sera pas effectuée.
WMDM_MODE_PROGRESS La méthode doit retourner des notifications de progression via pProgress.
Zéro ou l’un des éléments suivants : WMDM_MODE_TRANSFER_PROTECTED L’insertion est en mode de transfert protégé.
WMDM_MODE_TRANSFER_UNPROTECTED L’insertion est en mode de transfert non protégé.

[in] pwszFile

Pointeur vers une chaîne de caractères larges terminée par un caractère null indiquant où trouver le contenu de l’opération d’insertion. Ce paramètre doit être NULL si WMDM_CONTENT_OPERATIONINTERFACE est spécifié dans fuMode.

[in] pOperation

Pointeur facultatif vers une interface IWMDMOperation pour contrôler le transfert de contenu vers un périphérique multimédia. S’il est spécifié, fuMode doit inclure l’indicateur WMDM_CONTENT_OPERATIONINTERFACE. Ce paramètre doit avoir la valeur NULL si WMDM_CONTENT_FILE ou WMDM_CONTENT_FOLDER est spécifié dans fuMode.

[in] pProgress

Pointeur facultatif vers une interface IWMDMProgress à utiliser par Windows Media Gestionnaire de périphériques pour signaler la progression à l’application. Si cette option est utilisée, fuMode doit inclure WMDM_MODE_PROGRESS.

[out] ppNewObject

Pointeur vers une interface IWMDMStorage qui contiendra le nouveau contenu. L’appelant doit libérer cette interface quand il en a terminé.

Valeur retournée

Cette méthode retourne un code HRESULT. Toutes les méthodes d’interface dans Windows Media Gestionnaire de périphériques peuvent retourner l’une des classes suivantes de codes d’erreur :

  • Codes d’erreur COM standard
  • Codes d’erreur Windows convertis en valeurs HRESULT
  • Codes d’erreur Gestionnaire de périphériques Windows Media
Pour obtenir une liste complète des codes d’erreur possibles, consultez Codes d’erreur.

Remarques

Si l’appareil prend en charge IWMDMStorageControl3 ::Insert3, il s’agit de la méthode préférée à utiliser.

Le nom et l’extension de l’objet enregistré sur l’appareil seront identiques au nom et à l’extension du fichier source (si pOperation a la valeur NULL).

Si l’indicateur WMDM_MODE_THREAD est spécifié, vous devez obtenir l’achèvement status en appelant IWMDMProgress2 ::End2 ou IWMDMProgress3 ::End3. Ces méthodes garantissent que l’opération est terminée et retournent également un HRESULT avec des informations de réussite ou d’échec.

La méthode Insert ne garantit pas que l’appareil prend en charge l’insertion de fichier ordonnée, mais elle fournit les indicateurs WMDM_STORAGECONTROL_INSERTBEFORE et WMDM_STORAGECONTROL_INSERTAFTER au cas où elle le fait. Si le système de fichiers ne prend pas en charge l’ordre (pour instance, FAT32), WMDM_STORAGECONTROL_INSERTBEFORE et WMDM_STORAGECONTROL_INSERTAFTER inséreront simplement le nouvel objet de stockage au même niveau que l’objet actuel dans la hiérarchie du système de fichiers.

Si une application utilise WMDM_MODE_THREAD et passe un paramètre pProgress non null, l’application doit s’assurer que l’objet auquel appartient pProgress n’est pas détruit tant que l’opération d’insertion n’est pas terminée, car Windows Media Gestionnaire de périphériques envoie des notifications de progression à cet objet. Cet objet ne peut être détruit qu’après avoir reçu une notification De fin. Si vous ne le faites pas, vous obtiendrez des violations d’accès.

Configuration requise

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

Voir aussi

IWMDMStorageControl, interface

IWMDMStorageControl2 ::Insert2

IWMDMStorageControl3 ::Insert3

IWMDMStorageControl ::Read

Écriture de fichiers sur l’appareil