Compartilhar via


Método IMDSPStorage4::CreateStorageWithMetadata (mswmdm.h)

O método CreateStorageWithMetadata cria um novo armazenamento, aplicando os metadados fornecidos ao novo armazenamento e retorna um ponteiro para a interface IMDSPStorage no armazenamento recém-criado. O novo armazenamento pode ser criado no mesmo nível ou pode ser inserido no armazenamento atual.

Esse método será útil se o dispositivo precisar de metadados no momento da criação. Dependendo do dispositivo, também pode ser mais eficiente aplicar metadados no momento da criação em vez de criar o armazenamento e, em seguida, definir metadados.

Sintaxe

HRESULT CreateStorageWithMetadata(
  [in]  DWORD         dwAttributes,
  [in]  LPCWSTR       pwszName,
  [in]  IWMDMMetaData *pMetadata,
  [in]  ULONGLONG     qwFileSize,
  [out] IMDSPStorage  **ppNewStorage
);

Parâmetros

[in] dwAttributes

DWORD que contém atributos para o novo armazenamento. A tabela a seguir lista os atributos de armazenamento disponíveis.

Atributo Descrição
WMDM_STORAGECONTROL_INSERTBEFORE O novo objeto de armazenamento será criado na frente do objeto de destino.
WMDM_STORAGECONTROL_INSERTAFTER O novo objeto de armazenamento será criado após o objeto de destino.
WMDM_STORAGECONTROL_INSERTINTO O novo objeto de armazenamento será criado na pasta do objeto de destino.
WMDM_STORAGECONTROL_OVERWRITE Se o armazenamento com o mesmo nome já existir, ele será destruído e um novo armazenamento será criado.
WMDM_STORAGE_ATTR_FILESYSTEM Esse objeto é a mídia de armazenamento de nível superior (por exemplo, um cartão de armazenamento ou algum outro armazenamento integrado.)
WMDM_STORAGE_ATTR_REMOVABLE Essa mídia de armazenamento é removível.
WMDM_STORAGE_ATTR_CANEDITMETADATA Esse armazenamento pode editar metadados.
WMDM_STORAGE_ATTR_FOLDERS Esse meio de armazenamento dá suporte a pastas e hierarquia de arquivos.
WMDM_FILE_ATTR_FOLDER Essa é uma pasta no meio de armazenamento.
WMDM_FILE_ATTR_LINK Esse é um link que cria uma associação entre vários arquivos.
WMDM_FILE_ATTR_FILE Esse é um arquivo no meio de armazenamento.
WMDM_FILE_ATTR_AUDIO Esse arquivo são dados de áudio.
WMDM_FILE_ATTR_DATA Esse arquivo não é de áudio.
WMDM_FILE_ATTR_CANPLAY Esse arquivo de áudio pode ser reproduzido pelo dispositivo.
WMDM_FILE_ATTR_CANDELETE Esse arquivo pode ser excluído.
WMDM_FILE_ATTR_CANMOVE Esse arquivo ou pasta pode ser movido no meio de armazenamento.
WMDM_FILE_ATTR_CANRENAME Esse arquivo ou pasta pode ser renomeado.
WMDM_FILE_ATTR_CANREAD Esse arquivo pode ser lido pelo computador host.
WMDM_FILE_ATTR_MUSIC Este arquivo de áudio é música.
WMDM_FILE_ATTR_PLAYLIST Este é um objeto de playlist.
WMDM_FILE_ATTR_VIDEO Esse arquivo contém dados de vídeo.
WMDM_FILE_ATTR_HIDDEN Esse arquivo está oculto no sistema de arquivos.
WMDM_FILE_ATTR_SYSTEM Este é um arquivo do sistema.
WMDM_FILE_ATTR_READONLY Este é um arquivo somente leitura.
WMDM_STORAGE_IS_DEFAULT Esse armazenamento é o armazenamento padrão em que a nova mídia deve ser colocada.
WMDM_STORAGE_CONTAINS_DEFAULT Esse armazenamento contém o armazenamento padrão em que a nova mídia deve ser colocada.

[in] pwszName

Ponteiro para uma cadeia de caracteres largos terminada em nulo que contém um nome para o novo armazenamento.

[in] pMetadata

Ponteiro para uma interface IWMDMetaData .

[in] qwFileSize

Qword que contém o tamanho do arquivo.

[out] ppNewStorage

Ponteiro para um ponteiro IMDSPStorage para receber a interface IMDSPStorage para o armazenamento recém-criado.

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

Esse método será útil se os metadados precisarem ser aplicados ao armazenamento no momento da criação. Por outro lado, os métodos IMDSPStorage2::CreateStorage2 e IMDSPStorage::CreateStorage não fornecem uma maneira de fornecer metadados no momento da criação.

Se o provedor de serviços para um dispositivo que pode sincronizar com Reprodutor Multimídia do Windows der suporte a essa interface, o Windows Media Gerenciador de Dispositivos chamará esse método durante as operações Inserir/2/3.

Se os atributos WMDM_FILE_ATTR_FOLDER e WMDM_FILE_ATTR_FILE forem definidos, o atributo folder substituirá o atributo de arquivo e o novo armazenamento será criado como uma pasta.

Apenas um dos WMDM_STORAGECONTROL_INSERTBEFORE, WMDM_STORAGECONTROL_INSERTAFTER e WMDM_STORAGECONTROL_INSERTINTO pode ser especificado pelo cliente.

O novo armazenamento pode ser criado no mesmo nível ou pode ser inserido no armazenamento atual, desde que o armazenamento atual seja uma pasta. Isso é controlado pelo valor do parâmetro dwAttributes . Se especificar WMDM_STORAGECONTROL_INSERTBEFORE ou WMDM_STORAGECONTROL_INSERTAFTER, o novo armazenamento será criado no mesmo nível do armazenamento atual. Se especificar WMDM_STORAGECONTROL_INSERTINTO, o novo armazenamento será inserido no armazenamento atual.

WMDM_STORAGECONTROL_INSERTBEFORE e WMDM_STORAGECONTROL_INSERAFTER implicam uma ordenação de conteúdo no sistema de arquivos. Se o sistema de arquivos não der suporte à ordenação (por exemplo, o sistema de arquivos FAT32), ambos os sinalizadores terão o efeito idêntico de inserir o novo armazenamento no nível do armazenamento atual. Se o armazenamento atual representar a raiz da mídia de armazenamento e um desses dois sinalizadores for especificado, a operação falhará.

WMDM_STORAGECONTROL_INSERTINTO será válido somente se o armazenamento atual for uma pasta. Se o armazenamento atual for um arquivo e esse sinalizador for especificado, a operação falhará.

Requisitos

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

Confira também

Habilitando a sincronização com Reprodutor Multimídia do Windows

IMDSPStorage2::CreateStorage2

IMDSPStorage4 Interface

IMDSPStorage::CreateStorage