Compartilhar via


Método IWMDMProgress3::P rogress3 (mswmdm.h)

O método Progress3 é chamado pelo Windows Media Gerenciador de Dispositivos para indicar o status de uma ação em andamento. Esse método estende IWMDMProgress::P rogress fornecendo parâmetros de entrada adicionais para a identificação (ID) do evento e para um ponteiro para o contexto dos comandos.

Sintaxe

HRESULT Progress3(
  [in]      GUID          EventId,
  [in]      DWORD         dwTranspiredTicks,
  [in, out] OPAQUECOMMAND *pContext
);

Parâmetros

[in] EventId

GUID especificando a ID do evento para a qual as notificações de progresso estão sendo enviadas. Os valores possíveis são mostrados na tabela a seguir.

Evento Descrição
SCP_EVENTID_ACQSECURECLOCK O Windows Media Gerenciador de Dispositivos está adquirindo um relógio seguro do servidor.
SCP_EVENTID_NEEDTOINDIV O dispositivo está sendo individualizado. Isso não é usado no momento.
SCP_EVENTID_DRMINFO Essa ID de evento é usada para notificar o aplicativo com o cabeçalho DRM de versão encontrado no conteúdo de cada arquivo.

A estrutura OPAQUECOMMAND retornada tem o parâmetro guidCommand definido como SCP_PARAMID_DRMVERSION.

Além disso, os dados especificam um dos seguintes sinalizadores:

WMDM_SCP_DRMINFO_NOT_DRMPROTECTED

WMDM_SCP_DRMINFO_V1HEADER

WMDM_SCP_DRMINFO_V2HEADER

EVENT_WMDM_CONTENT_TRANSFER O conteúdo está sendo transferido de ou para o dispositivo.

[in] dwTranspiredTicks

DWORD especificando o número de tiques que ocorreram até agora.

[in, out] pContext

Ponteiro para uma estrutura OPAQUECOMMAND que contém um comando enviado diretamente para o dispositivo sem ser manipulado pelo Windows Media Gerenciador de Dispositivos. Esse parâmetro é opcional e pode ser NULL. Se o evento for SCP_EVENTID_DRMINFO, os dados nesse parâmetro terão o GUID SCP_PARAMID_DRMVERSION.

Retornar valor

O aplicativo deve retornar um dos seguintes valores HRESULT .

Código de retorno Descrição
S_OK
A operação deve continuar.
WMDM_E_USER_CANCELLED
O Windows Media Gerenciador de Dispositivos deve cancelar a operação atual sem esperar que ela seja concluída. Se o aplicativo estiver usando o modo de bloqueio, o Windows Media Gerenciador de Dispositivos retornará esse erro ao aplicativo.

Comentários

A interface que possui o método que está implementando uma operação chama o método Progress3 à medida que a operação definida pelo método é executada. A intenção é que Progress3 seja chamado uma vez por tique estimado. No entanto, o parâmetro dwTranspiredTicks deve ser verificado em cada chamada porque a operação que está sendo executada pode não garantir uma chamada para cada tique estimado.

O aplicativo retorna S_OK ao método de chamada para indicar que a operação deve continuar. O aplicativo retorna WMDM_E_USER_CANCELLED para indicar que a operação deve ser cancelada. Se o aplicativo estiver usando o modo de bloqueio e retornar WMDM_E_USER_CANCELLED, o Windows Media Gerenciador de Dispositivos retornará esse mesmo erro ao aplicativo.

Exemplos

O código C++ a seguir mostra um exemplo de implementação de Progress3.


HRESULT Progress3(GUID  EventId, DWORD  dwTranspiredTicks, OPAQUECOMMAND*  pContext)
{
    WCHAR strGuid[64];
    ZeroMemory(strGuid, 64);
    StringFromGUID2(reinterpret_cast<GUID&>(EventId),(LPOLESTR)strGuid, 64);
    // TODO: Display the message: "Progress3 called. GUID value: " 
    // followed by the strGUID value.
    // TODO: Display the message: "Progress3 dwTranspiredTicks: " 
    // followed by the dwTranspiredTicks value.

    return S_OK;
}

Requisitos

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

Confira também

Habilitando notificações

IWMDMProgress3 Interface

IWMDMProgress::P rogress