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