Condividi tramite


Metodo IWMDMStorageControl::Insert (mswmdm.h)

Il metodo Insert inserisce il contenuto nell'archiviazione nel dispositivo.

Sintassi

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

Parametri

[in] fuMode

Or bit per bit dei valori seguenti. Nella tabella seguente sono elencate le modalità di elaborazione che possono essere specificate nel parametro fuMode . È necessario specificare esattamente una delle prime due modalità, esattamente una delle modalità STORAGECONTROL e esattamente una delle modalità CONTENT. Se vengono specificati sia WMDM_MODE_BLOCK che WMDM_MODE_THREAD, viene usata la modalità di blocco.

Combinazioni Mode Descrizione
Esattamente uno di: WMDM_MODE_BLOCK L'operazione viene eseguita usando l'elaborazione in modalità blocco. La chiamata non restituirà fino al termine dell'operazione.
WMDM_MODE_THREAD L'operazione viene eseguita usando l'elaborazione in modalità thread. La chiamata restituirà immediatamente e l'operazione viene eseguita in un thread in background.
Esattamente uno di: WMDM_STORAGECONTROL_INSERTBEFORE L'oggetto viene inserito prima dell'oggetto corrente.
WMDM_STORAGECONTROL_INSERTAFTER L'oggetto viene inserito dopo l'oggetto corrente.
WMDM_STORAGECONTROL_INSERTINTO L'oggetto viene inserito nell'oggetto corrente. Questo funzionerà solo se l'oggetto corrente è una cartella.
Esattamente uno di: WMDM_CONTENT_FILE Il contenuto inserito è un file.
WMDM_CONTENT_FOLDER Il contenuto inserito è una cartella. Questo non trasferisce il contenuto della cartella.
WMDM_CONTENT_OPERATIONINTERFACE Il contenuto inserito è un'interfaccia operativa. I dati per il contenuto devono essere scritti nell'interfaccia IWMDMOperation implementata dall'applicazione.
Zero o più di: WMDM_FILE_CREATE_OVERWRITE L'oggetto sostituirà l'oggetto corrente.
WMDM_MODE_QUERY Viene eseguito un test per determinare se l'operazione di inserimento potrebbe avere esito positivo, ma l'inserimento non verrà eseguito.
WMDM_MODE_PROGRESS Il metodo deve restituire notifiche di stato tramite pProgress.
Zero o uno di: WMDM_MODE_TRANSFER_PROTECTED L'inserimento è in modalità di trasferimento protetto.
WMDM_MODE_TRANSFER_UNPROTECTED L'inserimento è in modalità di trasferimento non protetta.

[in] pwszFile

Puntatore a una stringa con terminazione null a caratteri wide che indica dove trovare il contenuto per l'operazione di inserimento. Questo parametro deve essere NULL se WMDM_CONTENT_OPERATIONINTERFACE è specificato in fuMode.

[in] pOperation

Puntatore facoltativo a un'interfaccia IWMDMOperation per controllare il trasferimento del contenuto in un dispositivo multimediale. Se specificato, fuMode deve includere il flag di WMDM_CONTENT_OPERATIONINTERFACE. Questo parametro deve essere NULL se WMDM_CONTENT_FILE o WMDM_CONTENT_FOLDER è specificato in fuMode.

[in] pProgress

Puntatore facoltativo a un'interfaccia IWMDMProgress da usare da Windows Media Gestione dispositivi per segnalare lo stato di avanzamento all'applicazione. Se viene usato, fuMode deve includere WMDM_MODE_PROGRESS.

[out] ppNewObject

Puntatore a un'interfaccia IWMDMStorage che conterrà il nuovo contenuto. Il chiamante deve rilasciare questa interfaccia al termine.

Valore restituito

Il metodo restituisce un HRESULT. Tutti i metodi di interfaccia in Windows Media Gestione dispositivi possono restituire una delle classi di codici di errore seguenti:

  • Codici di errore COM standard
  • Codici di errore di Windows convertiti in valori HRESULT
  • Codici di errore di Windows Media Gestione dispositivi
Per un elenco completo dei codici di errore possibili, vedere Codici di errore.

Commenti

Se il dispositivo supporta IWMDMStorageControl3::Insert3, ovvero il metodo preferito da usare.

Il nome e l'estensione dell'oggetto salvato nel dispositivo saranno uguali al nome e all'estensione del file di origine (se pOperation è NULL).

Se viene specificato il flag WMDM_MODE_THREAD, è necessario ottenere lo stato di completamento chiamando IWMDMProgress2::End2 o IWMDMProgress3::End3. Questi metodi assicureranno che l'operazione sia completata e restituirà anche un HRESULT con informazioni sull'esito positivo o negativo.

Il metodo Insert non garantisce che il dispositivo supporti l'inserimento di file ordinato, ma fornisce i flag WMDM_STORAGECONTROL_INSERTBEFORE e WMDM_STORAGECONTROL_INSERTAFTER nel caso in cui lo faccia. Se il file system non supporta l'ordinamento (ad esempio, FAT32), WMDM_STORAGECONTROL_INSERTBEFORE e WMDM_STORAGECONTROL_INSERTAFTER inserisce semplicemente il nuovo oggetto di archiviazione allo stesso livello dell'oggetto corrente nella gerarchia del file system.

Se un'applicazione usa WMDM_MODE_THREAD e passa un parametro pProgress diverso da null, l'applicazione deve assicurarsi che l'oggetto a cui appartiene pProgress non venga eliminato finché l'operazione di inserimento non viene completata, perché Windows Media Gestione dispositivi invierà notifiche di stato a questo oggetto. Questo oggetto può essere eliminato solo dopo la ricezione di una notifica End. Questa operazione comporta violazioni di accesso.

Requisiti

Requisito Valore
Piattaforma di destinazione Windows
Intestazione mswmdm.h
Libreria Mssachlp.lib

Vedi anche

Interfaccia IWMDMStorageControl

IWMDMStorageControl2::Insert2

IWMDMStorageControl3::Insert3

IWMDMStorageControl::Read

Scrittura di file nel dispositivo