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