#pragma once #include "vm/ComObjectBase.h" namespace il2cpp { namespace vm { struct LIBIL2CPP_CODEGEN_API NOVTABLE CCWBase : ComObjectBase, Il2CppIManagedObjectHolder, Il2CppIWeakReferenceSource { private: Il2CppObject* m_ManagedObject; public: inline CCWBase(Il2CppObject* obj) : m_ManagedObject(obj) { IL2CPP_ASSERT(obj != NULL); } IL2CPP_FORCE_INLINE Il2CppObject* GetManagedObjectInline() const { return m_ManagedObject; } il2cpp_hresult_t GetRuntimeClassNameImpl(Il2CppHString* className); virtual Il2CppObject* STDCALL GetManagedObject() IL2CPP_OVERRIDE; virtual il2cpp_hresult_t STDCALL GetWeakReference(Il2CppIWeakReference** weakReference) IL2CPP_FINAL IL2CPP_OVERRIDE; }; } }