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 |
---|---|
|
A operação deve continuar. |
|
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 |