Condividi tramite


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
Per un elenco completo dei codici di errore possibili, vedere Codici di errore.

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

Vedi anche

IWMDMDevice::GetStatus

Interfaccia IWMDMOperation

Interfaccia IWMDMProgress

Interfaccia IWMDMStorage

Interfaccia IWMDMStorageControl2

IWMDMStorageControl3::Insert3