Bug 1874684 - Part 28: Return DateDuration from DifferenceISODateTime. r=mgaudet
[gecko.git] / media / wmf-clearkey / WMFClearKeyCDMFactory.h
blobaf1fbd5db7464c9f18459527f94bbf227d13d3c9
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
8 #include <mfidl.h>
9 #include <windows.h>
10 #include <wrl.h>
12 #include "MFCDMExtra.h"
14 namespace mozilla {
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);
25 public:
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
34 STDMETHODIMP_(BOOL)
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