Metodo IWMDMStorageControl2::Insert2 (mswmdm.h)
Il metodo Insert2 inserisce il contenuto in/accanto alla risorsa di archiviazione. Questo metodo estende IWMDMStorageControl::Insert consentendo all'applicazione di specificare un nuovo nome di destinazione e fornire un puntatore a un oggetto COM personalizzato.
Sintassi
HRESULT Insert2(
[in] UINT fuMode,
[in] LPWSTR pwszFileSource,
[in] LPWSTR pwszFileDest,
[in] IWMDMOperation *pOperation,
[in] IWMDMProgress *pProgress,
[in] IUnknown *pUnknown,
[out] IWMDMStorage **ppNewObject
);
Parametri
[in] fuMode
Modalità di elaborazione utilizzata per l'operazione Insert2 . Nella tabella seguente sono elencate le modalità di elaborazione che è possibile specificare 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 utilizzata 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 verrà restituita fino al termine dell'operazione. |
- | WMDM_MODE_THREAD | L'operazione viene eseguita usando l'elaborazione in modalità thread. La chiamata restituisce immediatamente e l'operazione viene eseguita in un thread in background. |
Facoltativo | WMDM_MODE_QUERY | Viene eseguito un test per determinare se l'operazione di inserimento può avere esito positivo, ma l'inserimento non verrà eseguito. |
Esattamente uno di: | WMDM_STORAGECONTROL_INSERTBEFORE | L'oggetto viene inserito prima dell'oggetto di destinazione. |
- | WMDM_STORAGECONTROL_INSERTAFTER | L'oggetto viene inserito dopo l'oggetto di destinazione. |
- | WMDM_STORAGECONTROL_INSERTINTO | L'oggetto viene inserito nell'oggetto corrente. Questa operazione funzionerà solo se l'oggetto corrente è una cartella. |
Facoltativo | WMDM_FILE_CREATE_OVERWRITE | L'oggetto sostituirà l'oggetto di destinazione. |
Esattamente uno di: | WMDM_CONTENT_FILE | Il contenuto inserito è un file. |
- | WMDM_CONTENT_FOLDER | Il contenuto da inserire è una cartella. Questo non trasferisce il contenuto della cartella. |
Facoltativo | WMDM_CONTENT_OPERATIONINTERFACE | Il contenuto inserito è un'interfaccia operativa. I dati per il contenuto devono essere scritti nell'interfaccia IWMDMOperation implementata dall'applicazione. |
Facoltativo | WMDM_MODE_PROGRESS | Le notifiche di stato devono essere inviate tramite il parametro pProgress . |
Facoltativo: | WMDM_MODE_TRANSFER_PROTECTED | L'inserimento è in modalità di trasferimento protetto. |
- | WMDM_MODE_TRANSFER_UNPROTECTED | L'inserimento è in modalità di trasferimento non protetto. |
[in] pwszFileSource
Puntatore a una stringa con terminazione Null a caratteri wide che indica il nome completo e il percorso dell'oggetto da inviare al dispositivo. Questo parametro deve essere NULL se WMDM_CONTENT_OPERATIONINTERFACE è specificato in fuMode.
[in] pwszFileDest
Nome facoltativo del file nel dispositivo. Se non specificato e l'applicazione passa un puntatore IWMDMOperation a pOperation, Windows Media Gestione dispositivi richiederà un nome di destinazione chiamando IWMDMOperation::GetObjectName. Se non specificato e l'applicazione non usa pOperation, vengono usati il nome e l'estensione del file originale (senza il percorso).
[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 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 per segnalare lo stato di avanzamento dell'azione all'applicazione. Se specificato, fuMode deve includere WMDM_MODE_PROGRESS.
[in] pUnknown
Puntatore IUnknown facoltativo di qualsiasi oggetto COM personalizzato da passare al provider di contenuti protetti. In questo modo è possibile passare informazioni personalizzate a un provider di contenuti sicuro se l'applicazione dispone di informazioni sufficienti sul provider di contenuti protetti.
[out] ppNewObject
Puntatore a un'interfaccia IWMDMStorage che conterrà il nuovo contenuto. Il chiamante deve rilasciare questa interfaccia al termine dell'operazione.
Valore restituito
Il metodo restituisce un valore 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, questo è il metodo preferito da usare.
Se viene specificato il flag WMDM_MODE_THREAD, è necessario ottenere lo stato di completamento chiamando IWMDMProgress2::End2 o IWMDMProgress3::End3. Questi metodi garantiranno il completamento dell'operazione e restituiranno anche un HRESULT con informazioni sull'esito positivo o negativo.
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 definitivamente fino al completamento dell'operazione di inserimento, perché Windows Media Gestione dispositivi invierà notifiche di stato a questo oggetto. Questo oggetto può essere eliminato definitivamente solo dopo la ricezione di una notifica End. In caso contrario, si verificheranno violazioni dell'accesso.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Windows |
Intestazione | mswmdm.h |
Libreria | Mssachlp.lib |