| @ -0,0 +1,50 @@ | ||||
| #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; | ||||
| 	 | ||||
| }; | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user