Files
BusyRabbit/Plugins/UnrealSharp/Source/UnrealSharpCore/CSManagedCallbacksCache.h
wyatt 648386cd73 Lua向C#逻辑迁移 一期 #13
将整个插件代码上传
2025-10-26 21:48:39 +08:00

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;
};