Index: base/win/scoped_variant.h |
diff --git a/base/win/scoped_variant.h b/base/win/scoped_variant.h |
deleted file mode 100644 |
index 322fcf71e5574725ed6d887be4e5c49605bdc6b1..0000000000000000000000000000000000000000 |
--- a/base/win/scoped_variant.h |
+++ /dev/null |
@@ -1,164 +0,0 @@ |
-// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#ifndef BASE_WIN_SCOPED_VARIANT_H_ |
-#define BASE_WIN_SCOPED_VARIANT_H_ |
- |
-#include <windows.h> |
-#include <oleauto.h> |
- |
-#include "base/base_export.h" |
-#include "base/basictypes.h" |
- |
-namespace base { |
-namespace win { |
- |
-// Scoped VARIANT class for automatically freeing a COM VARIANT at the |
-// end of a scope. Additionally provides a few functions to make the |
-// encapsulated VARIANT easier to use. |
-// Instead of inheriting from VARIANT, we take the containment approach |
-// in order to have more control over the usage of the variant and guard |
-// against memory leaks. |
-class BASE_EXPORT ScopedVariant { |
- public: |
- // Declaration of a global variant variable that's always VT_EMPTY |
- static const VARIANT kEmptyVariant; |
- |
- // Default constructor. |
- ScopedVariant() { |
- // This is equivalent to what VariantInit does, but less code. |
- var_.vt = VT_EMPTY; |
- } |
- |
- // Constructor to create a new VT_BSTR VARIANT. |
- // NOTE: Do not pass a BSTR to this constructor expecting ownership to |
- // be transferred |
- explicit ScopedVariant(const wchar_t* str); |
- |
- // Creates a new VT_BSTR variant of a specified length. |
- ScopedVariant(const wchar_t* str, UINT length); |
- |
- // Creates a new integral type variant and assigns the value to |
- // VARIANT.lVal (32 bit sized field). |
- explicit ScopedVariant(int value, VARTYPE vt = VT_I4); |
- |
- // Creates a new double-precision type variant. |vt| must be either VT_R8 |
- // or VT_DATE. |
- explicit ScopedVariant(double value, VARTYPE vt = VT_R8); |
- |
- // VT_DISPATCH |
- explicit ScopedVariant(IDispatch* dispatch); |
- |
- // VT_UNKNOWN |
- explicit ScopedVariant(IUnknown* unknown); |
- |
- // SAFEARRAY |
- explicit ScopedVariant(SAFEARRAY* safearray); |
- |
- // Copies the variant. |
- explicit ScopedVariant(const VARIANT& var); |
- |
- ~ScopedVariant(); |
- |
- inline VARTYPE type() const { |
- return var_.vt; |
- } |
- |
- // Give ScopedVariant ownership over an already allocated VARIANT. |
- void Reset(const VARIANT& var = kEmptyVariant); |
- |
- // Releases ownership of the VARIANT to the caller. |
- VARIANT Release(); |
- |
- // Swap two ScopedVariant's. |
- void Swap(ScopedVariant& var); |
- |
- // Returns a copy of the variant. |
- VARIANT Copy() const; |
- |
- // The return value is 0 if the variants are equal, 1 if this object is |
- // greater than |var|, -1 if it is smaller. |
- int Compare(const VARIANT& var, bool ignore_case = false) const; |
- |
- // Retrieves the pointer address. |
- // Used to receive a VARIANT as an out argument (and take ownership). |
- // The function DCHECKs on the current value being empty/null. |
- // Usage: GetVariant(var.receive()); |
- VARIANT* Receive(); |
- |
- void Set(const wchar_t* str); |
- |
- // Setters for simple types. |
- void Set(int8 i8); |
- void Set(uint8 ui8); |
- void Set(int16 i16); |
- void Set(uint16 ui16); |
- void Set(int32 i32); |
- void Set(uint32 ui32); |
- void Set(int64 i64); |
- void Set(uint64 ui64); |
- void Set(float r32); |
- void Set(double r64); |
- void Set(bool b); |
- |
- // Creates a copy of |var| and assigns as this instance's value. |
- // Note that this is different from the Reset() method that's used to |
- // free the current value and assume ownership. |
- void Set(const VARIANT& var); |
- |
- // COM object setters |
- void Set(IDispatch* disp); |
- void Set(IUnknown* unk); |
- |
- // SAFEARRAY support |
- void Set(SAFEARRAY* array); |
- |
- // Special setter for DATE since DATE is a double and we already have |
- // a setter for double. |
- void SetDate(DATE date); |
- |
- // Allows const access to the contained variant without DCHECKs etc. |
- // This support is necessary for the V_XYZ (e.g. V_BSTR) set of macros to |
- // work properly but still doesn't allow modifications since we want control |
- // over that. |
- const VARIANT* ptr() const { return &var_; } |
- |
- // Like other scoped classes (e.g scoped_refptr, ScopedComPtr, ScopedBstr) |
- // we support the assignment operator for the type we wrap. |
- ScopedVariant& operator=(const VARIANT& var); |
- |
- // A hack to pass a pointer to the variant where the accepting |
- // function treats the variant as an input-only, read-only value |
- // but the function prototype requires a non const variant pointer. |
- // There's no DCHECK or anything here. Callers must know what they're doing. |
- VARIANT* AsInput() const { |
- // The nature of this function is const, so we declare |
- // it as such and cast away the constness here. |
- return const_cast<VARIANT*>(&var_); |
- } |
- |
- // Allows the ScopedVariant instance to be passed to functions either by value |
- // or by const reference. |
- operator const VARIANT&() const { |
- return var_; |
- } |
- |
- // Used as a debug check to see if we're leaking anything. |
- static bool IsLeakableVarType(VARTYPE vt); |
- |
- protected: |
- VARIANT var_; |
- |
- private: |
- // Comparison operators for ScopedVariant are not supported at this point. |
- // Use the Compare method instead. |
- bool operator==(const ScopedVariant& var) const; |
- bool operator!=(const ScopedVariant& var) const; |
- DISALLOW_COPY_AND_ASSIGN(ScopedVariant); |
-}; |
- |
-} // namespace win |
-} // namespace base |
- |
-#endif // BASE_WIN_SCOPED_VARIANT_H_ |