summaryrefslogtreecommitdiffstats
path: root/chromium/base/win/enum_variant.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/base/win/enum_variant.h')
-rw-r--r--chromium/base/win/enum_variant.h29
1 files changed, 12 insertions, 17 deletions
diff --git a/chromium/base/win/enum_variant.h b/chromium/base/win/enum_variant.h
index 47ffd070de1..1adf4aac224 100644
--- a/chromium/base/win/enum_variant.h
+++ b/chromium/base/win/enum_variant.h
@@ -5,12 +5,11 @@
#ifndef BASE_WIN_ENUM_VARIANT_H_
#define BASE_WIN_ENUM_VARIANT_H_
-#include <unknwn.h>
+#include <wrl/implements.h>
#include <memory>
#include <vector>
-#include "base/win/iunknown_impl.h"
#include "base/win/scoped_variant.h"
namespace base {
@@ -18,29 +17,25 @@ namespace win {
// A simple implementation of IEnumVARIANT.
class BASE_EXPORT EnumVariant
- : public IEnumVARIANT,
- public IUnknownImpl {
+ : public Microsoft::WRL::RuntimeClass<
+ Microsoft::WRL::RuntimeClassFlags<Microsoft::WRL::ClassicCom>,
+ IEnumVARIANT> {
public:
// The constructor allocates a vector of empty ScopedVariants of size |count|.
// Use ItemAt to set the value of each item in the array.
explicit EnumVariant(ULONG count);
+ // IEnumVARIANT:
+ IFACEMETHODIMP Next(ULONG requested_count,
+ VARIANT* out_elements,
+ ULONG* out_elements_received) override;
+ IFACEMETHODIMP Skip(ULONG skip_count) override;
+ IFACEMETHODIMP Reset() override;
+ IFACEMETHODIMP Clone(IEnumVARIANT** out_cloned_object) override;
+
// Returns a mutable pointer to the item at position |index|.
VARIANT* ItemAt(ULONG index);
- // IUnknown.
- ULONG STDMETHODCALLTYPE AddRef() override;
- ULONG STDMETHODCALLTYPE Release() override;
- STDMETHODIMP QueryInterface(REFIID riid, void** ppv) override;
-
- // IEnumVARIANT.
- STDMETHODIMP Next(ULONG requested_count,
- VARIANT* out_elements,
- ULONG* out_elements_received) override;
- STDMETHODIMP Skip(ULONG skip_count) override;
- STDMETHODIMP Reset() override;
- STDMETHODIMP Clone(IEnumVARIANT** out_cloned_object) override;
-
private:
~EnumVariant() override;