Метод 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 .
Код возврата | Описание |
---|---|
|
Операция должна быть продолжена. |
|
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 |