1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 #ifndef DOM_MEDIA_PLATFORM_WMF_CLEARKEY_WMFCLEARKEYINPUTTRUSTAUTHORITY_H
6 #define DOM_MEDIA_PLATFORM_WMF_CLEARKEY_WMFCLEARKEYINPUTTRUSTAUTHORITY_H
9 #include <wrl/client.h>
11 #include "MFCDMExtra.h"
12 #include "RefCounted.h"
16 class SessionManagerWrapper
;
18 // This class is used to provide WMFClearKeyActivate and WMFClearKeyDecryptor.
19 class WMFClearKeyInputTrustAuthority final
20 : public Microsoft::WRL::RuntimeClass
<
21 Microsoft::WRL::RuntimeClassFlags
<Microsoft::WRL::ClassicCom
>,
22 IMFInputTrustAuthority
, IMFShutdown
, Microsoft::WRL::FtmBase
> {
24 WMFClearKeyInputTrustAuthority() = default;
25 ~WMFClearKeyInputTrustAuthority() = default;
26 WMFClearKeyInputTrustAuthority(const WMFClearKeyInputTrustAuthority
&) =
28 WMFClearKeyInputTrustAuthority
& operator=(
29 const WMFClearKeyInputTrustAuthority
&) = delete;
31 HRESULT
RuntimeClassInitialize(UINT32 aStreamId
,
32 SessionManagerWrapper
* aSessionManager
);
34 // IMFInputTrustAuthority
35 STDMETHODIMP
GetDecrypter(REFIID aRiid
, void** aPpv
) override
;
36 STDMETHODIMP
RequestAccess(MFPOLICYMANAGER_ACTION aAction
,
37 IMFActivate
** aContentEnablerActivate
) override
;
38 STDMETHODIMP
GetPolicy(MFPOLICYMANAGER_ACTION aAction
,
39 IMFOutputPolicy
** aPolicy
) override
;
40 STDMETHODIMP
BindAccess(
41 MFINPUTTRUSTAUTHORITY_ACCESS_PARAMS
* aParams
) override
;
42 STDMETHODIMP
UpdateAccess(
43 MFINPUTTRUSTAUTHORITY_ACCESS_PARAMS
* aParams
) override
;
44 STDMETHODIMP
Reset() override
;
47 STDMETHODIMP
GetShutdownStatus(MFSHUTDOWN_STATUS
* aStatus
) override
;
48 STDMETHODIMP
Shutdown() override
;
51 RefPtr
<SessionManagerWrapper
> mSessionManager
;
54 } // namespace mozilla
56 #endif // DOM_MEDIA_PLATFORM_WMF_CLEARKEY_WMFCLEARKEYINPUTTRUSTAUTHORITY_H