51 lines
1.5 KiB
C++
51 lines
1.5 KiB
C++
#pragma once
|
|
|
|
#if !defined(_WIN32)
|
|
#define __stdcall
|
|
#endif
|
|
|
|
struct FScopedGCHandle;
|
|
struct FInvokeManagedMethodData;
|
|
struct FGCHandleIntPtr;
|
|
struct FGCHandle;
|
|
|
|
class UNREALSHARPCORE_API FCSManagedCallbacks
|
|
{
|
|
public:
|
|
|
|
struct FManagedCallbacks
|
|
{
|
|
using ManagedCallbacks_CreateNewManagedObject = FGCHandleIntPtr(__stdcall*)(const void*, void*, TCHAR**);
|
|
using ManagedCallbacks_CreateNewManagedObjectWrapper = FGCHandleIntPtr(__stdcall*)(void*, void*);
|
|
using ManagedCallbacks_InvokeManagedEvent = int(__stdcall*)(void*, void*, void*, void*, void*);
|
|
using ManagedCallbacks_InvokeDelegate = int(__stdcall*)(FGCHandleIntPtr);
|
|
using ManagedCallbacks_LookupMethod = uint8*(__stdcall*)(void*, const TCHAR*);
|
|
using ManagedCallbacks_LookupType = uint8*(__stdcall*)(uint8*, const TCHAR*);
|
|
using ManagedCallbacks_Dispose = void(__stdcall*)(FGCHandleIntPtr, FGCHandleIntPtr);
|
|
using ManagedCallbacks_FreeHandle = void(__stdcall*)(FGCHandleIntPtr);
|
|
|
|
ManagedCallbacks_CreateNewManagedObject CreateNewManagedObject;
|
|
ManagedCallbacks_CreateNewManagedObjectWrapper CreateNewManagedObjectWrapper;
|
|
ManagedCallbacks_InvokeManagedEvent InvokeManagedMethod;
|
|
ManagedCallbacks_InvokeDelegate InvokeDelegate;
|
|
ManagedCallbacks_LookupMethod LookupManagedMethod;
|
|
ManagedCallbacks_LookupType LookupManagedType;
|
|
|
|
private:
|
|
//Only call these from GCHandles.
|
|
friend FGCHandle;
|
|
friend FScopedGCHandle;
|
|
ManagedCallbacks_Dispose Dispose;
|
|
ManagedCallbacks_FreeHandle FreeHandle;
|
|
};
|
|
|
|
static inline FManagedCallbacks ManagedCallbacks;
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|