Metodo IWMDMProgress3::P rogress3 (mswmdm.h)
Il metodo Progress3 viene chiamato da Windows Media Gestione dispositivi per indicare lo stato di un'azione in corso. Questo metodo estende IWMDMProgress::P rogress fornendo parametri di input aggiuntivi per l'identificazione (ID) dell'evento e per un puntatore al contesto dei comandi.
Sintassi
HRESULT Progress3(
[in] GUID EventId,
[in] DWORD dwTranspiredTicks,
[in, out] OPAQUECOMMAND *pContext
);
Parametri
[in] EventId
GUID che specifica l'ID evento per cui vengono inviate le notifiche di stato. Nella tabella seguente vengono illustrati i valori possibili.
Event | Descrizione |
---|---|
SCP_EVENTID_ACQSECURECLOCK | Windows Media Gestione dispositivi acquisisce un orologio sicuro dal server. |
SCP_EVENTID_NEEDTOINDIV | Il dispositivo viene individualizzato. Questa operazione non è attualmente utilizzata. |
SCP_EVENTID_DRMINFO |
Questo ID evento viene usato per notificare all'applicazione l'intestazione DRM della versione trovata nel contenuto per ogni file.
La struttura OPAQUECOMMAND restituita ha il parametro guidCommand impostato su SCP_PARAMID_DRMVERSION. Inoltre, i dati specificano uno dei flag seguenti: WMDM_SCP_DRMINFO_NOT_DRMPROTECTED WMDM_SCP_DRMINFO_V1HEADER WMDM_SCP_DRMINFO_V2HEADER |
EVENT_WMDM_CONTENT_TRANSFER | Il contenuto viene trasferito da o verso il dispositivo. |
[in] dwTranspiredTicks
DWORD che specifica il numero di tick che si sono verificati finora.
[in, out] pContext
Puntatore a una struttura OPAQUECOMMAND contenente un comando inviato direttamente al dispositivo senza essere gestito da Windows Media Gestione dispositivi. Questo parametro è facoltativo e può essere NULL. Se l'evento è SCP_EVENTID_DRMINFO, i dati in questo parametro avranno il GUID SCP_PARAMID_DRMVERSION.
Valore restituito
L'applicazione deve restituire uno dei valori HRESULT seguenti.
Codice restituito | Descrizione |
---|---|
|
L'operazione deve continuare. |
|
Windows Media Gestione dispositivi deve annullare l'operazione corrente senza attendere il completamento. Se l'applicazione usa la modalità blocco, Windows Media Gestione dispositivi restituirà questo errore all'applicazione. |
Commenti
L'interfaccia proprietaria del metodo che implementa un'operazione chiama il metodo Progress3 come viene eseguita l'operazione definita dal metodo . L'intenzione è che Progress3 verrà chiamato una volta per ogni tick stimato. Tuttavia, il parametro dwTranspiredTicks deve essere controllato in ogni chiamata perché l'operazione eseguita potrebbe non garantire una chiamata per ogni tick stimato.
L'applicazione restituisce S_OK al metodo chiamante per indicare che l'operazione deve continuare. L'applicazione restituisce WMDM_E_USER_CANCELLED per indicare che l'operazione deve essere annullata. Se l'applicazione usa la modalità blocco e restituisce WMDM_E_USER_CANCELLED, Windows Media Gestione dispositivi restituirà lo stesso errore all'applicazione.
Esempio
Il codice C++ seguente mostra un'implementazione di esempio di 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;
}
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Windows |
Intestazione | mswmdm.h |
Libreria | Mssachlp.lib |