Compartilhar via


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

O método Insert2 coloca o conteúdo em/ao lado do armazenamento. Esse método estende IWMDMStorageControl::Insert permitindo que o aplicativo especifique um novo nome de destino e forneça um ponteiro para um objeto COM personalizado.

Sintaxe

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

Parâmetros

[in] fuMode

Modo de processamento usado para a operação Insert2 . A tabela a seguir lista os modos de processamento que podem ser especificados no parâmetro fuMode . Você deve especificar exatamente um dos dois primeiros modos, exatamente um dos modos STORAGECONTROL e exatamente um dos modos CONTENT. Se WMDM_MODE_BLOCK e WMDM_MODE_THREAD forem especificados, o modo de bloco será usado.

Combinações Mode Descrição
Exatamente um de: WMDM_MODE_BLOCK A operação é executada usando o processamento do modo de bloco. A chamada não retornará até que a operação seja concluída.
- WMDM_MODE_THREAD A operação é executada usando o processamento do modo thread. A chamada retornará imediatamente e a operação será executada em um thread em segundo plano.
Opcional WMDM_MODE_QUERY Um teste é executado para determinar se a operação de inserção pode ser bem-sucedida, mas a inserção não será executada.
Exatamente um de: WMDM_STORAGECONTROL_INSERTBEFORE O objeto é inserido antes do objeto de destino.
- WMDM_STORAGECONTROL_INSERTAFTER O objeto é inserido após o objeto de destino.
- WMDM_STORAGECONTROL_INSERTINTO O objeto é inserido no objeto atual. Isso só funcionará se o objeto atual for uma pasta.
Opcional WMDM_FILE_CREATE_OVERWRITE O objeto substituirá o objeto de destino.
Exatamente um de: WMDM_CONTENT_FILE O conteúdo que está sendo inserido é um arquivo.
- WMDM_CONTENT_FOLDER O conteúdo que está sendo inserido é uma pasta. Isso não transferirá o conteúdo da pasta.
Opcional WMDM_CONTENT_OPERATIONINTERFACE O conteúdo que está sendo inserido é uma interface de operação. Os dados do conteúdo devem ser gravados na interface IWMDMOperation implementada pelo aplicativo.
Opcional WMDM_MODE_PROGRESS As notificações de progresso devem ser enviadas por meio do parâmetro pProgress .
Opcional de: WMDM_MODE_TRANSFER_PROTECTED A inserção está no modo de transferência protegida.
- WMDM_MODE_TRANSFER_UNPROTECTED A inserção está no modo de transferência desprotegida.

[in] pwszFileSource

Ponteiro para uma cadeia de caracteres largos terminada em nulo indicando o nome completo e o caminho do objeto a ser enviado para o dispositivo. Esse parâmetro deverá ser NULL se WMDM_CONTENT_OPERATIONINTERFACE for especificado em fuMode.

[in] pwszFileDest

Nome opcional do arquivo no dispositivo. Se não for especificado e o aplicativo passar um ponteiro IWMDMOperation para pOperation, o Windows Media Gerenciador de Dispositivos solicitará um nome de destino chamando IWMDMOperation::GetObjectName. Se não for especificado e o aplicativo não usar pOperation, o nome e a extensão do arquivo original serão usados (sem o caminho).

[in] pOperation

Ponteiro opcional para uma interface IWMDMOperation para controlar a transferência de conteúdo para um dispositivo de mídia. Se especificado, fuMode deve incluir o sinalizador WMDM_CONTENT_OPERATIONINTERFACE. Esse parâmetro deverá ser NULL se WMDM_CONTENT_FILE ou WMDM_CONTENT_FOLDER for especificado em fuMode.

[in] pProgress

Ponteiro opcional para uma interface IWMDMProgress para relatar o progresso da ação de volta para o aplicativo. Se especificado, fuMode deve incluir WMDM_MODE_PROGRESS.

[in] pUnknown

Ponteiro IUnknown opcional de qualquer objeto COM personalizado a ser passado para o provedor de conteúdo seguro. Isso possibilita passar informações personalizadas para um provedor de conteúdo seguro se o aplicativo tiver informações suficientes sobre o provedor de conteúdo seguro.

[out] ppNewObject

Ponteiro para uma interface IWMDMStorage que conterá o novo conteúdo. O chamador deve liberar essa interface quando terminar com ela.

Retornar valor

O método retorna um HRESULT. Todos os métodos de interface no Windows Media Gerenciador de Dispositivos podem retornar qualquer uma das seguintes classes de códigos de erro:

  • Códigos de erro COM padrão
  • Códigos de erro do Windows convertidos em valores HRESULT
  • Códigos de erro do Windows Media Gerenciador de Dispositivos
Para obter uma lista abrangente de possíveis códigos de erro, consulte Códigos de erro.

Comentários

Se o dispositivo der suporte a IWMDMStorageControl3::Insert3, esse é o método preferencial a ser usado.

Se o sinalizador WMDM_MODE_THREAD for especificado, você deverá obter status de conclusão chamando IWMDMProgress2::End2 ou IWMDMProgress3::End3. Esses métodos garantirão que a operação seja concluída e também retornarão um HRESULT com informações de êxito ou falha.

Se um aplicativo usa WMDM_MODE_THREAD e passa um parâmetro pProgress não nulo, o aplicativo deve garantir que o objeto ao qual o pProgress pertence não seja destruído até que a operação de inserção seja concluída, pois o Windows Media Gerenciador de Dispositivos enviará notificações de progresso para esse objeto. Esse objeto só pode ser destruído depois de receber uma notificação end. A falha ao fazer isso resultará em violações de acesso.

Requisitos

Requisito Valor
Plataforma de Destino Windows
Cabeçalho mswmdm.h
Biblioteca Mssachlp.lib

Confira também

IWMDMDevice::GetStatus

IWMDMOperation Interface

IWMDMProgress Interface

IWMDMStorage Interface

IWMDMStorageControl2 Interface

IWMDMStorageControl3::Insert3