34 lines
1.2 KiB
C
34 lines
1.2 KiB
C
|
#pragma once
|
||
|
|
||
|
#include "gc/GarbageCollector.h"
|
||
|
|
||
|
struct Il2CppIUnknown;
|
||
|
struct Il2CppObject;
|
||
|
struct Il2CppException;
|
||
|
|
||
|
namespace il2cpp
|
||
|
{
|
||
|
namespace vm
|
||
|
{
|
||
|
class LIBIL2CPP_CODEGEN_API CCW
|
||
|
{
|
||
|
public:
|
||
|
// CreateCCW returns upcasted Il2CppIManagedObjectHolder if the CCW is cachable!
|
||
|
static Il2CppIUnknown* CreateCCW(Il2CppObject* obj);
|
||
|
|
||
|
static inline Il2CppIUnknown* GetOrCreate(Il2CppObject* obj, const Il2CppGuid& iid)
|
||
|
{
|
||
|
return gc::GarbageCollector::GetOrCreateCCW(obj, iid);
|
||
|
}
|
||
|
|
||
|
static Il2CppObject* Unpack(Il2CppIUnknown* unknown);
|
||
|
|
||
|
static il2cpp_hresult_t HandleInvalidIPropertyConversion(const char* fromType, const char* toType);
|
||
|
static il2cpp_hresult_t HandleInvalidIPropertyConversion(Il2CppObject* value, const char* fromType, const char* toType);
|
||
|
|
||
|
static il2cpp_hresult_t HandleInvalidIPropertyArrayConversion(const char* fromArrayType, const char* fromElementType, const char* toElementType, il2cpp_array_size_t index);
|
||
|
static il2cpp_hresult_t HandleInvalidIPropertyArrayConversion(Il2CppObject* value, const char* fromArrayType, const char* fromElementType, const char* toElementType, il2cpp_array_size_t index);
|
||
|
};
|
||
|
} /* namespace vm */
|
||
|
} /* namespace il2cpp */
|