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