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