Partager via


Méthode IWMDMStorageControl2 ::Insert2 (mswmdm.h)

La méthode Insert2 place le contenu dans/à côté du stockage. Cette méthode étend IWMDMStorageControl ::Insert en permettant à l’application de spécifier un nouveau nom de destination et de fournir un pointeur vers un objet COM personnalisé.

Syntaxe

HRESULT Insert2(
  [in]  UINT           fuMode,
  [in]  LPWSTR         pwszFileSource,
  [in]  LPWSTR         pwszFileDest,
  [in]  IWMDMOperation *pOperation,
  [in]  IWMDMProgress  *pProgress,
  [in]  IUnknown       *pUnknown,
  [out] IWMDMStorage   **ppNewObject
);

Paramètres

[in] fuMode

Mode de traitement utilisé pour l’opération Insert2 . 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.
Facultatif 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.
Exactement l’un des éléments suivants : WMDM_STORAGECONTROL_INSERTBEFORE L’objet est inséré avant l’objet cible.
- WMDM_STORAGECONTROL_INSERTAFTER L’objet est inséré après l’objet cible.
- WMDM_STORAGECONTROL_INSERTINTO L’objet est inséré dans l’objet actif. Cela ne fonctionnera que si l’objet actuel est un dossier.
Facultatif WMDM_FILE_CREATE_OVERWRITE L’objet remplacera l’objet cible.
Exactement l’un des éléments suivants : WMDM_CONTENT_FILE Le contenu en cours d’insertion est un fichier.
- WMDM_CONTENT_FOLDER Le contenu en cours d’insertion est un dossier. Cela ne transfère pas le contenu du dossier.
Facultatif WMDM_CONTENT_OPERATIONINTERFACE Le contenu en cours d’insertion est une interface d’opération. Les données du contenu doivent être écrites dans l’interface IWMDMOperation implémentée par l’application .
Facultatif WMDM_MODE_PROGRESS Les notifications de progression doivent être envoyées via le paramètre pProgress .
Facultatif de : 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] pwszFileSource

Pointeur vers une chaîne à caractères larges et terminée par null indiquant le nom complet et le chemin d’accès de l’objet à envoyer à l’appareil. Ce paramètre doit avoir la valeur NULL si WMDM_CONTENT_OPERATIONINTERFACE est spécifié dans fuMode.

[in] pwszFileDest

Nom de fichier facultatif sur l’appareil. Si ce n’est pas spécifié et que l’application transmet un pointeur IWMDMOperation à pOperation, Windows Media Gestionnaire de périphériques demande un nom de destination en appelant IWMDMOperation ::GetObjectName. Si ce n’est pas spécifié et que l’application n’utilise pas pOperation, le nom de fichier d’origine et l’extension sont utilisés (sans le chemin d’accès).

[in] pOperation

Pointeur facultatif vers une interface IWMDMOperation pour contrôler le transfert de contenu vers un périphérique multimédia. Si elle est spécifiée, 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 pour signaler la progression de l’action à l’application. S’il est spécifié, fuMode doit inclure WMDM_MODE_PROGRESS.

[in] pUnknown

Pointeur IUnknown facultatif de tout objet COM personnalisé à passer au fournisseur de contenu sécurisé. Cela permet de transmettre des informations personnalisées à un fournisseur de contenu sécurisé si l’application dispose d’informations suffisantes sur le fournisseur de contenu sécurisé.

[out] ppNewObject

Pointeur vers une interface IWMDMStorage qui contiendra le nouveau contenu. L’appelant doit libérer cette interface lorsqu’il 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 de codes d’erreur suivantes :

  • 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 recommandée.

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.

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 enverra 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

IWMDMDevice ::GetStatus

IWMDMOperation Interface

IWMDMProgress Interface

IWMDMStorage Interface

IWMDMStorageControl2, interface

IWMDMStorageControl3 ::Insert3