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_WMFCLEARKEYCDMFACTORY_H
6 #define DOM_MEDIA_PLATFORM_WMF_CLEARKEY_WMFCLEARKEYCDMFACTORY_H
12 #include "MFCDMExtra.h"
16 // This class is used to return WMFClearKeyCDMAccess and answer what kind of key
17 // system is supported.
18 class WMFClearKeyCDMFactory final
19 : public Microsoft::WRL::RuntimeClass
<
20 Microsoft::WRL::RuntimeClassFlags
<Microsoft::WRL::WinRtClassicComMix
>,
21 Microsoft::WRL::CloakedIid
<IMFContentDecryptionModuleFactory
>,
22 Microsoft::WRL::FtmBase
> {
23 InspectableClass(L
"org.w3.clearkey", BaseTrust
);
26 WMFClearKeyCDMFactory() = default;
27 ~WMFClearKeyCDMFactory() = default;
28 WMFClearKeyCDMFactory(const WMFClearKeyCDMFactory
&) = delete;
29 WMFClearKeyCDMFactory
& operator=(const WMFClearKeyCDMFactory
&) = delete;
31 HRESULT
RuntimeClassInitialize() { return S_OK
; }
33 // IMFContentDecryptionModuleFactory
35 IsTypeSupported(LPCWSTR aKeySystem
, LPCWSTR aContentType
) override
;
37 STDMETHODIMP
CreateContentDecryptionModuleAccess(
38 LPCWSTR aKeySystem
, IPropertyStore
** aConfigurations
,
39 DWORD aNumConfigurations
,
40 IMFContentDecryptionModuleAccess
** aCdmAccess
) override
;
43 } // namespace mozilla
45 #endif // DOM_MEDIA_PLATFORM_WMF_CLEARKEY_WMFCLEARKEYCDMFACTORY_H