|
4 | 4 | using System; |
5 | 5 | using System.Runtime.CompilerServices; |
6 | 6 | using System.Runtime.InteropServices; |
7 | | -using System.Runtime.InteropServices.Marshalling; |
8 | 7 | using System.Threading; |
9 | 8 |
|
| 9 | +#if !MANUALCOM |
| 10 | +using System.Runtime.InteropServices.Marshalling; |
| 11 | +#endif |
| 12 | + |
10 | 13 | using static Hi3Helper.Plugin.Core.Utility.GameManagerExtension; |
11 | 14 |
|
12 | 15 | namespace Hi3Helper.Plugin.Core; |
@@ -46,12 +49,15 @@ public static unsafe int LaunchGameFromGameManagerAsync(nint gameManagerP, nint |
46 | 49 | try |
47 | 50 | { |
48 | 51 | #if MANUALCOM |
| 52 | + IPlugin? plugin = ComWrappers.ComInterfaceDispatch.GetInstance<IPlugin>((ComWrappers.ComInterfaceDispatch*)gameManagerP); |
| 53 | + IGameManager? gameManager = ComWrappers.ComInterfaceDispatch.GetInstance<IGameManager>((ComWrappers.ComInterfaceDispatch*)gameManagerP); |
49 | 54 | #else |
50 | | - IPlugin? plugin = ComInterfaceMarshaller<IPlugin>.ConvertToManaged((void*)pluginP); |
| 55 | + IPlugin? plugin = ComInterfaceMarshaller<IPlugin>.ConvertToManaged((void*)pluginP); |
51 | 56 | IGameManager? gameManager = ComInterfaceMarshaller<IGameManager>.ConvertToManaged((void*)gameManagerP); |
52 | | - PrintGameLog printGameLogCallback = Marshal.GetDelegateForFunctionPointer<PrintGameLog>(printGameLogCallbackP); |
53 | 57 | #endif |
54 | 58 |
|
| 59 | + PrintGameLog printGameLogCallback = Marshal.GetDelegateForFunctionPointer<PrintGameLog>(printGameLogCallbackP); |
| 60 | + |
55 | 61 | if (ThisPluginExport == null) |
56 | 62 | { |
57 | 63 | throw new NullReferenceException("The ThisPluginExport field is null!"); |
@@ -103,6 +109,7 @@ public static unsafe int IsGameRunning(nint gameManagerP, out int isGameRunningI |
103 | 109 | try |
104 | 110 | { |
105 | 111 | #if MANUALCOM |
| 112 | + IGameManager? gameManager = ComWrappers.ComInterfaceDispatch.GetInstance<IGameManager>((ComWrappers.ComInterfaceDispatch*)gameManagerP); |
106 | 113 | #else |
107 | 114 | IGameManager? gameManager = ComInterfaceMarshaller<IGameManager>.ConvertToManaged((void*)gameManagerP); |
108 | 115 | #endif |
@@ -134,6 +141,8 @@ public static unsafe int WaitRunningGameAsync(nint gameManagerP, nint pluginP, r |
134 | 141 | try |
135 | 142 | { |
136 | 143 | #if MANUALCOM |
| 144 | + IPlugin? plugin = ComWrappers.ComInterfaceDispatch.GetInstance<IPlugin>((ComWrappers.ComInterfaceDispatch*)gameManagerP); |
| 145 | + IGameManager? gameManager = ComWrappers.ComInterfaceDispatch.GetInstance<IGameManager>((ComWrappers.ComInterfaceDispatch*)gameManagerP); |
137 | 146 | #else |
138 | 147 | IPlugin? plugin = ComInterfaceMarshaller<IPlugin>.ConvertToManaged((void*)pluginP); |
139 | 148 | IGameManager? gameManager = ComInterfaceMarshaller<IGameManager>.ConvertToManaged((void*)gameManagerP); |
@@ -184,6 +193,7 @@ public static unsafe int KillRunningGame(nint gameManagerP, out int wasGameRunni |
184 | 193 | try |
185 | 194 | { |
186 | 195 | #if MANUALCOM |
| 196 | + IGameManager? gameManager = ComWrappers.ComInterfaceDispatch.GetInstance<IGameManager>((ComWrappers.ComInterfaceDispatch*)gameManagerP); |
187 | 197 | #else |
188 | 198 | IGameManager? gameManager = ComInterfaceMarshaller<IGameManager>.ConvertToManaged((void*)gameManagerP); |
189 | 199 | #endif |
|
0 commit comments