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_WMFCLEARKEYACTIVATE_H
6 #define DOM_MEDIA_PLATFORM_WMF_CLEARKEY_WMFCLEARKEYACTIVATE_H
9 #include <wrl/client.h>
11 #include "MFCDMExtra.h"
15 // This class is used to provide WMFClearKeyContentEnabler.
16 class WMFClearKeyActivate
17 : public Microsoft::WRL::RuntimeClass
<
18 Microsoft::WRL::RuntimeClassFlags
<Microsoft::WRL::ClassicCom
>,
19 IMFActivate
, Microsoft::WRL::FtmBase
> {
21 WMFClearKeyActivate() = default;
22 ~WMFClearKeyActivate() = default;
23 WMFClearKeyActivate(const WMFClearKeyActivate
&) = delete;
24 WMFClearKeyActivate
& operator=(const WMFClearKeyActivate
&) = delete;
26 HRESULT
RuntimeClassInitialize();
29 STDMETHODIMP
ActivateObject(REFIID aRiid
, void** aPpv
) override
;
30 STDMETHODIMP
ShutdownObject() override
;
31 STDMETHODIMP
DetachObject() override
;
33 // IMFAttributes inherited by IMFActivate
34 STDMETHODIMP
GetItem(REFGUID aGuidKey
, PROPVARIANT
* aValue
) override
;
35 STDMETHODIMP
GetItemType(REFGUID aGuidKey
, MF_ATTRIBUTE_TYPE
* aType
) override
;
36 STDMETHODIMP
CompareItem(REFGUID aGuidKey
, REFPROPVARIANT aValue
,
37 BOOL
* aResult
) override
;
38 STDMETHODIMP
Compare(IMFAttributes
* aAttributes
,
39 MF_ATTRIBUTES_MATCH_TYPE aType
, BOOL
* aResult
) override
;
40 STDMETHODIMP
GetUINT32(REFGUID aGuidKey
, UINT32
* aValue
) override
;
41 STDMETHODIMP
GetUINT64(REFGUID aGuidKey
, UINT64
* aValue
) override
;
42 STDMETHODIMP
GetDouble(REFGUID aGuidKey
, double* aValue
) override
;
43 STDMETHODIMP
GetGUID(REFGUID aGuidKey
, GUID
* aGuidValue
) override
;
44 STDMETHODIMP
GetStringLength(REFGUID aGuidKey
, UINT32
* aPcchLength
) override
;
45 STDMETHODIMP
GetString(REFGUID aGuidKey
, LPWSTR aPwszValue
,
46 UINT32 aCchBufSize
, UINT32
* aPcchLength
) override
;
47 STDMETHODIMP
GetAllocatedString(REFGUID aGuidKey
, LPWSTR
* aPpwszValue
,
48 UINT32
* aPcchLength
) override
;
49 STDMETHODIMP
GetBlobSize(REFGUID aGuidKey
, UINT32
* aPcbBlobSize
) override
;
50 STDMETHODIMP
GetBlob(REFGUID aGuidKey
, UINT8
* aBuf
, UINT32 aCbBufSize
,
51 UINT32
* aPcbBlobSize
) override
;
52 STDMETHODIMP
GetAllocatedBlob(REFGUID aGuidKey
, UINT8
** aBuf
,
53 UINT32
* aPcbSize
) override
;
54 STDMETHODIMP
GetUnknown(REFGUID aGuidKey
, REFIID aRiid
,
55 LPVOID
* aPpv
) override
;
56 STDMETHODIMP
SetItem(REFGUID aGuidKey
, REFPROPVARIANT aValue
) override
;
57 STDMETHODIMP
DeleteItem(REFGUID aGuidKey
) override
;
58 STDMETHODIMP
DeleteAllItems() override
;
59 STDMETHODIMP
SetUINT32(REFGUID aGuidKey
, UINT32 aValue
) override
;
60 STDMETHODIMP
SetUINT64(REFGUID aGuidKey
, UINT64 aValue
) override
;
61 STDMETHODIMP
SetDouble(REFGUID aGuidKey
, double aValue
) override
;
62 STDMETHODIMP
SetGUID(REFGUID aGuidKey
, REFGUID aGuidValue
) override
;
63 STDMETHODIMP
SetString(REFGUID aGuidKey
, LPCWSTR aWszValue
) override
;
64 STDMETHODIMP
SetBlob(REFGUID aGuidKey
, const UINT8
* aBuf
,
65 UINT32 aCbBufSize
) override
;
66 STDMETHODIMP
SetUnknown(REFGUID aGuidKey
, IUnknown
* aUnknown
) override
;
67 STDMETHODIMP
LockStore() override
;
68 STDMETHODIMP
UnlockStore() override
;
69 STDMETHODIMP
GetCount(UINT32
* aPcItems
) override
;
70 STDMETHODIMP
GetItemByIndex(UINT32 aIndex
, GUID
* aGuidKey
,
71 PROPVARIANT
* aValue
) override
;
72 STDMETHODIMP
CopyAllItems(IMFAttributes
* aDest
) override
;
75 } // namespace mozilla
77 #endif // DOM_MEDIA_PLATFORM_WMF_CLEARKEY_WMFCLEARKEYACTIVATE_H