#ifndef BASE_WIN_IUNKNOWN_IMPL_H_
#define BASE_WIN_IUNKNOWN_IMPL_H_
#include <unknwn.h>
#include "base/atomic_ref_count.h"
#include "base/base_export.h"
#include "base/compiler_specific.h"
namespace base {
namespace win {
class BASE_EXPORT IUnknownImpl : public IUnknown {
public:
IUnknownImpl();
virtual ULONG STDMETHODCALLTYPE AddRef() OVERRIDE;
virtual ULONG STDMETHODCALLTYPE Release() OVERRIDE;
virtual STDMETHODIMP QueryInterface(REFIID riid, void** ppv) OVERRIDE;
protected:
virtual ~IUnknownImpl();
private:
AtomicRefCount ref_count_;
};
}
}
#endif