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