IWMDMProgress3::P rogress3-Methode (mswmdm.h)
Die Progress3-Methode wird von Windows Media Geräte-Manager aufgerufen, um die status einer laufenden Aktion anzugeben. Diese Methode erweitert IWMDMProgress::P rogress , indem zusätzliche Eingabeparameter für die Identifikation (ID) des Ereignisses und für einen Zeiger auf den Kontext der Befehle bereitgestellt werden.
Syntax
HRESULT Progress3(
[in] GUID EventId,
[in] DWORD dwTranspiredTicks,
[in, out] OPAQUECOMMAND *pContext
);
Parameter
[in] EventId
GUID , die die Ereignis-ID angibt, für die Statusbenachrichtigungen gesendet werden. Mögliche Werte werden in der folgenden Tabelle angezeigt.
Ereignis | BESCHREIBUNG |
---|---|
SCP_EVENTID_ACQSECURECLOCK | Windows Media Geräte-Manager erhält eine sichere Uhr vom Server. |
SCP_EVENTID_NEEDTOINDIV | Das Gerät wird individualisiert. Dies wird derzeit nicht verwendet. |
SCP_EVENTID_DRMINFO |
Diese Ereignis-ID wird verwendet, um die Anwendung mit dem DRM-Versionsheader zu benachrichtigen, der sich im Inhalt für jede Datei befindet.
Für die zurückgegebene OPAQUECOMMAND-Struktur ist der guidCommand-Parameter auf SCP_PARAMID_DRMVERSION festgelegt. Darüber hinaus geben die Daten eines der folgenden Flags an: WMDM_SCP_DRMINFO_NOT_DRMPROTECTED WMDM_SCP_DRMINFO_V1HEADER WMDM_SCP_DRMINFO_V2HEADER |
EVENT_WMDM_CONTENT_TRANSFER | Inhalte werden an oder vom Gerät übertragen. |
[in] dwTranspiredTicks
DWORD , die die Anzahl der Bisher aufgetretenen Ticks angibt.
[in, out] pContext
Zeiger auf eine OPAQUECOMMAND-Struktur, die einen Befehl enthält, der direkt an das Gerät gesendet wird, ohne von Windows Media Geräte-Manager behandelt zu werden. Dieser Parameter ist optional und kann NULL sein. Wenn das Ereignis SCP_EVENTID_DRMINFO ist, verfügen die Daten in diesem Parameter über die SCP_PARAMID_DRMVERSION GUID.
Rückgabewert
Die Anwendung sollte einen der folgenden HRESULT-Werte zurückgeben.
Rückgabecode | BESCHREIBUNG |
---|---|
|
Der Vorgang sollte fortgesetzt werden. |
|
Windows Media Geräte-Manager sollte den aktuellen Vorgang abbrechen, ohne auf den Abschluss zu warten. Wenn die Anwendung den Blockmodus verwendet, gibt Windows Media Geräte-Manager diesen Fehler an die Anwendung zurück. |
Hinweise
Die Schnittstelle, die die Methode besitzt, die einen Vorgang implementiert, ruft die Progress3-Methode auf, da der von der -Methode definierte Vorgang ausgeführt wird. Die Absicht ist, dass Progress3 einmal pro geschätztem Tick aufgerufen wird. Der dwTranspiredTicks-Parameter muss jedoch bei jedem Aufruf überprüft werden, da der ausgeführte Vorgang möglicherweise keinen Aufruf für jeden geschätzten Tick garantiert.
Die Anwendung gibt S_OK an die aufrufende Methode zurück, um anzugeben, dass der Vorgang fortgesetzt werden soll. Die Anwendung gibt WMDM_E_USER_CANCELLED zurück, um anzugeben, dass der Vorgang abgebrochen werden soll. Wenn die Anwendung den Blockmodus verwendet und WMDM_E_USER_CANCELLED zurückgibt, gibt Windows Media Geräte-Manager denselben Fehler an die Anwendung zurück.
Beispiele
Der folgende C++-Code zeigt eine Beispielimplementierung von 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;
}
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Windows |
Kopfzeile | mswmdm.h |
Bibliothek | Mssachlp.lib |