Partilhar via


Interfaces para Aplicações

Esta seção descreve interfaces usadas ou implementadas por aplicativos que usam o SDK do Gerenciador de Dispositivos do Windows Media para se comunicar com dispositivos. O termo "aplicativo" usado aqui significa qualquer executável, plug-in ou objeto COM que existe em um computador desktop e precisa de comunicação de alto nível com um dispositivo portátil conectado. Isso pode incluir um aplicativo de player de mídia, um plug-in do Windows Media Player (se precisar de acesso direto a um dispositivo portátil) ou um objeto COM de medição de contagem de reprodução.

Algumas dessas interfaces são implementadas pelo aplicativo, enquanto outras são chamadas pelo aplicativo. A documentação de cada interface indica se ela é implementada ou chamada (e, se implementada, se é opcional ou necessária).

As interfaces ou classes a seguir são usadas por aplicativos.

Interface ou classe Descrição
CSecureChannelClient Classe Uma classe auxiliar que permite que os aplicativos se autentiquem, criptografem e descriptografem dados e criem MACs.
IWMDeviceManager A interface de nível superior do Windows Media Device Manager para aplicações.
IWMDeviceManager2 Estende IWMDeviceManager fornecendo métodos avançados de enumeração e outros métodos.
IWMDeviceManager3 Estende a interface IWMDeviceManager2 fornecendo um método que define a preferência de enumeração do dispositivo.
IWMDMDevice Fornece métodos para examinar e explorar um único dispositivo portátil.
IWMDMDevice2 Estende IWMDMDevice, tornando possível obter os formatos de vídeo suportados por um dispositivo, encontrar um armazenamento por nome e usar páginas de propriedades.
IWMDMDevice3 Estende IWMDMDevice2 fornecendo métodos para consultar propriedades de um dispositivo, enviar códigos de controle de E/S de dispositivo e também fornecer métodos atualizados para pesquisar armazenamentos e recuperar recursos de formato de dispositivo.
IWMDMDeviceControl Fornece métodos para controlar dispositivos.
IWMDMDeviceSession Melhora a eficiência das operações do dispositivo agrupando várias operações em uma sessão
IWMDMEnumDevice Enumera dispositivos portáteis conectados a um computador.
IWMDMEnumStorage Enumera armazenamentos em um dispositivo.
IWMDMMetaData Define e recupera propriedades de metadados (como artista, álbum, gênero e assim por diante) de um armazenamento.
IWMDMObjectInfo Obtém e define informações que controlam como os arquivos reproduzíveis no dispositivo são manipulados pela interface de IWMDMDeviceControl
IWMDMRevoked Recupera a URL a partir da qual os componentes atualizados podem ser baixados, se uma transferência falhar com um erro de revogação.
IWMDMStorage Fornece métodos para examinar e explorar um armazenamento (arquivo, pasta, lista de reprodução) em um dispositivo.
IWMDMStorage2 Estende IWMDMStorage, tornando possível obter um armazenamento filho pelo nome e obter e definir atributos estendidos.
IWMDMStorage3 Estende IWMDMStorage2 expondo metadados.
IWMDMStorage4 Estende IWMDMStorage3 fornecendo métodos para recuperar um subconjunto de metadados disponíveis para um armazenamento e para definir e recuperar uma lista de referências a outros armazenamentos.
IWMDMStorageControl Usado para inserir, excluir ou mover arquivos dentro de um dispositivo ou entre um dispositivo e o computador.
IWMDMStorageControl2 Estende IWMDMStorageControl tornando possível definir o nome do arquivo de destino ao inserir conteúdo em um armazenamento.
IWMDMStorageControl3 Estende IWMDMStorageControl2 tornando possível passar um ponteiro de interface IWMDMMetaData.
IWMDMStorageGlobals Fornece métodos para recuperar informações globais sobre um meio de armazenamento (como uma placa flash ROM) em um dispositivo.
IWMDRMDeviceApp Permite que um aplicativo execute medição, sincronização de licenças e atualização dos componentes DRM de um dispositivo.
IWMDRMDeviceApp2 Estende IWMDRMDeviceApp fornecendo uma nova versão do método QueryDeviceStatus.

 

Interfaces de retorno de chamada

As interfaces opcionais a seguir são implementadas por um aplicativo para acompanhar o progresso de uma solicitação assíncrona, como uma solicitação de leitura ou gravação.

Interface Descrição
IWMDMNotification Permite que aplicativos e provedores de serviços recebam notificações quando dispositivos ou armazenamentos de memória (como placas RAM) são conectados ou desconectados do computador.
IWMDMOperation2 Estende IWMDMOperation fornecendo métodos para obter e definir atributos estendidos.
IWMDMOperation3 Estende IWMDMOperation fornecendo um novo método para transferir dados não criptografados para maior eficiência.
IWMDMOperation Permite que um aplicativo controle como os dados são lidos ou gravados no computador durante uma transferência de arquivos.
IWMDMProgress2 Estende o método IWMDMProgress::End fornecendo um indicador de status.
IWMDMProgress3 Estende IWMDMProgress2 fornecendo parâmetros de entrada adicionais para especificar a ID do evento e informações específicas do contexto.
IWMDMProgress Permite que um aplicativo acompanhe o progresso das operações, como formatação de mídia ou transferências de arquivos.

 

O diagrama a seguir mostra como a maioria das interfaces de aplicativo importantes são adquiridas da interface IWMDeviceManager raiz. Um aplicativo obtém essa interface raiz cocriando o objeto MediaDevMgr, solicitando o IComponentAuthenticate interface, autenticando o componente e, em seguida, solicitando o IWMDeviceManager (essas etapas são descritas em Autenticando o aplicativo). Uma vez adquirida essa interface raiz, IWMDeviceManager::EnumDevices é chamado para criar um objeto que implementa IWMDMEnumDevice. Outras interfaces são obtidas chamando métodos em interfaces na ordem mostrada. Interfaces derivadas, como IWMDMDevice2, são obtidas chamando QueryInterface na interface base.

No diagrama a seguir, as interfaces derivadas são rotuladas por marcas de barra, portanto, "IWMDMStorage/2/3" indicaria IWMDMStorage, IWMDMStorage2e IWMDMStorage3.

diagrama mostrando como obter as principais interfaces de aplicativos no Gerenciador de dispositivos do Windows Media.

de referência de programação