tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

WMFClearKeyOutputPolicy.h (4040B)


      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/. */
      4 
      5 #ifndef DOM_MEDIA_PLATFORM_WMF_CLEARKEY_WMFCLEARKEYOUTPUTPOLICY_H
      6 #define DOM_MEDIA_PLATFORM_WMF_CLEARKEY_WMFCLEARKEYOUTPUTPOLICY_H
      7 
      8 #include <wrl.h>
      9 #include <wrl/client.h>
     10 
     11 #include "MFCDMExtra.h"
     12 
     13 namespace mozilla {
     14 
     15 // This class is used to return output protection scheme.
     16 class WMFClearKeyOutputPolicy final
     17    : public Microsoft::WRL::RuntimeClass<
     18          Microsoft::WRL::RuntimeClassFlags<Microsoft::WRL::ClassicCom>,
     19          IMFOutputPolicy, Microsoft::WRL::FtmBase> {
     20 public:
     21  WMFClearKeyOutputPolicy() = default;
     22  ~WMFClearKeyOutputPolicy() = default;
     23  WMFClearKeyOutputPolicy(const WMFClearKeyOutputPolicy&) = delete;
     24  WMFClearKeyOutputPolicy& operator=(const WMFClearKeyOutputPolicy&) = delete;
     25 
     26  HRESULT RuntimeClassInitialize(MFPOLICYMANAGER_ACTION aAction);
     27 
     28  // IMFOutputPolicy
     29  STDMETHODIMP GenerateRequiredSchemas(
     30      DWORD aAttributes, GUID aGuidOutputSubtype,
     31      GUID* aGuidProtectionSchemasSupported,
     32      DWORD aProtectionSchemasSupportedCount,
     33      IMFCollection** aRequiredProtectionSchemas) override;
     34  STDMETHODIMP GetOriginatorID(_Out_ GUID* aGuidOriginatorId) override;
     35  STDMETHODIMP GetMinimumGRLVersion(_Out_ DWORD* aMinimumGrlVersion) override;
     36 
     37  // IMFAttributes inherited by IMFOutputPolicy
     38  STDMETHODIMP GetItem(REFGUID aGuidKey, PROPVARIANT* aValue) override;
     39  STDMETHODIMP GetItemType(REFGUID aGuidKey, MF_ATTRIBUTE_TYPE* aType) override;
     40  STDMETHODIMP CompareItem(REFGUID aGuidKey, REFPROPVARIANT aValue,
     41                           BOOL* aResult) override;
     42  STDMETHODIMP Compare(IMFAttributes* aAttributes,
     43                       MF_ATTRIBUTES_MATCH_TYPE aType, BOOL* aResult) override;
     44  STDMETHODIMP GetUINT32(REFGUID aGuidKey, UINT32* aValue) override;
     45  STDMETHODIMP GetUINT64(REFGUID aGuidKey, UINT64* aValue) override;
     46  STDMETHODIMP GetDouble(REFGUID aGuidKey, double* aValue) override;
     47  STDMETHODIMP GetGUID(REFGUID aGuidKey, GUID* aGuidValue) override;
     48  STDMETHODIMP GetStringLength(REFGUID aGuidKey, UINT32* aPcchLength) override;
     49  STDMETHODIMP GetString(REFGUID aGuidKey, LPWSTR aPwszValue,
     50                         UINT32 aCchBufSize, UINT32* aPcchLength) override;
     51  STDMETHODIMP GetAllocatedString(REFGUID aGuidKey, LPWSTR* aPpwszValue,
     52                                  UINT32* aPcchLength) override;
     53  STDMETHODIMP GetBlobSize(REFGUID aGuidKey, UINT32* aPcbBlobSize) override;
     54  STDMETHODIMP GetBlob(REFGUID aGuidKey, UINT8* aBuf, UINT32 aCbBufSize,
     55                       UINT32* aPcbBlobSize) override;
     56  STDMETHODIMP GetAllocatedBlob(REFGUID aGuidKey, UINT8** aBuf,
     57                                UINT32* aPcbSize) override;
     58  STDMETHODIMP GetUnknown(REFGUID aGuidKey, REFIID aRiid,
     59                          LPVOID* aPpv) override;
     60  STDMETHODIMP SetItem(REFGUID aGuidKey, REFPROPVARIANT aValue) override;
     61  STDMETHODIMP DeleteItem(REFGUID aGuidKey) override;
     62  STDMETHODIMP DeleteAllItems() override;
     63  STDMETHODIMP SetUINT32(REFGUID aGuidKey, UINT32 aValue) override;
     64  STDMETHODIMP SetUINT64(REFGUID aGuidKey, UINT64 aValue) override;
     65  STDMETHODIMP SetDouble(REFGUID aGuidKey, double aValue) override;
     66  STDMETHODIMP SetGUID(REFGUID aGuidKey, REFGUID aGuidValue) override;
     67  STDMETHODIMP SetString(REFGUID aGuidKey, LPCWSTR aWszValue) override;
     68  STDMETHODIMP SetBlob(REFGUID aGuidKey, const UINT8* aBuf,
     69                       UINT32 aCbBufSize) override;
     70  STDMETHODIMP SetUnknown(REFGUID aGuidKey, IUnknown* aUnknown) override;
     71  STDMETHODIMP LockStore() override;
     72  STDMETHODIMP UnlockStore() override;
     73  STDMETHODIMP GetCount(UINT32* aPcItems) override;
     74  STDMETHODIMP GetItemByIndex(UINT32 aIndex, GUID* aGuidKey,
     75                              PROPVARIANT* aValue) override;
     76  STDMETHODIMP CopyAllItems(IMFAttributes* aDest) override;
     77 };
     78 
     79 }  // namespace mozilla
     80 
     81 #endif  // DOM_MEDIA_PLATFORM_WMF_CLEARKEY_WMFCLEARKEYOUTPUTPOLICY_H