Поделиться через


Метод IWMDMProgress3::P rogress3 (mswmdm.h)

Метод Progress3 вызывается windows Media диспетчер устройств для указания состояния выполняемого действия. Этот метод расширяет IWMDMProgress::P rogress , предоставляя дополнительные входные параметры для идентификации (идентификатора) события и указателя на контекст команд.

Синтаксис

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

Параметры

[in] EventId

GUID , указывающий идентификатор события, для которого отправляются уведомления о ходе выполнения. Возможные значения перечислены в следующей таблице.

Событие Описание
SCP_EVENTID_ACQSECURECLOCK Windows Media диспетчер устройств получает защищенные часы с сервера.
SCP_EVENTID_NEEDTOINDIV Устройство выполняется индивидуализируется. В настоящее время этот параметр не используется.
SCP_EVENTID_DRMINFO Этот идентификатор события используется для уведомления приложения с заголовком DRM версии, который находится в содержимом каждого файла.

Для возвращаемой структуры OPAQUECOMMAND параметр guidCommand имеет значение SCP_PARAMID_DRMVERSION.

Кроме того, данные указывают один из следующих флагов:

WMDM_SCP_DRMINFO_NOT_DRMPROTECTED

WMDM_SCP_DRMINFO_V1HEADER

WMDM_SCP_DRMINFO_V2HEADER

EVENT_WMDM_CONTENT_TRANSFER Содержимое передается на устройство или с устройства.

[in] dwTranspiredTicks

Значение DWORD , указывающее количество тактов, которые возникли до сих пор.

[in, out] pContext

Указатель на структуру OPAQUECOMMAND, содержащую команду, отправленную непосредственно на устройство без обработки windows Media диспетчер устройств. Этот параметр является необязательным и может иметь значение NULL. Если событие SCP_EVENTID_DRMINFO, данные в этом параметре будут иметь SCP_PARAMID_DRMVERSION GUID.

Возвращаемое значение

Приложение должно вернуть одно из следующих значений HRESULT .

Код возврата Описание
S_OK
Операция должна быть продолжена.
WMDM_E_USER_CANCELLED
Windows Media диспетчер устройств следует отменить текущую операцию, не дожидаясь ее завершения. Если приложение использует режим блокировки, диспетчер устройств Windows Media вернет эту ошибку приложению.

Комментарии

Интерфейс, владеющий методом, реализующим операцию, вызывает метод Progress3 при выполнении операции, определенной методом . Цель заключается в том, что Progress3 будет вызываться один раз для каждого расчетного такта. Однако параметр dwTranspiredTicks необходимо проверять при каждом вызове, так как выполняемая операция может не гарантировать один вызов для каждого предполагаемого такта.

Приложение возвращает S_OK в вызывающий метод, чтобы указать, что операция должна быть продолжена. Приложение возвращает WMDM_E_USER_CANCELLED, чтобы указать, что операция должна быть отменена. Если приложение использует режим блокировки и возвращает WMDM_E_USER_CANCELLED, то диспетчер устройств Windows Media вернет в приложение ту же ошибку.

Примеры

В следующем коде C++ показан пример реализации 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;
}

Требования

Требование Значение
Целевая платформа Windows
Header mswmdm.h
Библиотека Mssachlp.lib

См. также раздел

Включение уведомлений

Интерфейс IWMDMProgress3

IWMDMProgress::P rogress