Esempio n. 1
0
        public static MethodSig Read(BinaryStreamReader signatureBlobReader)
        {
            var callingConvention = (CallingConventions)signatureBlobReader.ReadByte();

            MethodSig result;

            switch (callingConvention & ~CallingConventions.HasThis & ~CallingConventions.ExplicitThis)
            {
            case CallingConventions.Default:
                result = new Default();
                break;

            case CallingConventions.C:
                result = new C();
                break;

            case CallingConventions.StdCall:
                result = new StdCall();
                break;

            case CallingConventions.FastCall:
                result = new FastCall();
                break;

            case CallingConventions.VarArg:
                result = new VarArg();
                break;

            case CallingConventions.Generic:
            {
                var typed = new Generic();
                typed.ReadDetails(signatureBlobReader);
                result = typed;
            }
            break;

            default:
                throw new BadImageFormatException("Invalid calling convention byte " + callingConvention + ".");
            }

            result.ReadParameters(signatureBlobReader);

            return(result);
        }
Esempio n. 2
0
 public static IntPtr WndProc(IntPtr hWnd, UInt32 msg, UInt32 wParam, UInt32 lParam)
 {
     return(StdCall.Invoke <IntPtr>(GameAddresses.WndProc, hWnd, msg, wParam, lParam));
 }
Esempio n. 3
0
 public static ThreadLocalStorage GetThreadLocalStorage()
 {
     return(StdCall.Invoke <ThreadLocalStorage>(GameAddresses.GetThreadLocalStorage));
 }
Esempio n. 4
0
 public static IntPtr InitNatives()
 {
     return(StdCall.Invoke <IntPtr>(GameAddresses.InitNatives));
 }
Esempio n. 5
0
 public static unsafe ThreadLocalStorage *GetThreadLocalStorage()
 {
     return((ThreadLocalStorage *)(void *)StdCall.Invoke <IntPtr>(GameAddresses.GetThreadLocalStorage));
 }
 private static JassBoolean IsReplayMode() => StdCall.Invoke <bool>(GameDll + 0x35FDD0);
Esempio n. 7
0
 public static IntPtr WndProc(IntPtr hWnd, uint msg, uint wParam, uint lParam)
 {
     return(StdCall.Invoke <IntPtr>(GameAddresses.WndProc, hWnd, msg, wParam, lParam));
 }
Esempio n. 8
0
        public static MethodSig Read(BinaryStreamReader signatureBlobReader)
        {
            var callingConvention = (CallingConventions)signatureBlobReader.ReadByte();

            MethodSig result;
            switch (callingConvention & ~CallingConventions.HasThis & ~CallingConventions.ExplicitThis)
            {
                case CallingConventions.Default:
                    result = new Default();
                    break;

                case CallingConventions.C:
                    result = new C();
                    break;

                case CallingConventions.StdCall:
                    result = new StdCall();
                    break;

                case CallingConventions.FastCall:
                    result = new FastCall();
                    break;

                case CallingConventions.VarArg:
                    result = new VarArg();
                    break;

                case CallingConventions.Generic:
                    {
                        var typed = new Generic();
                        typed.ReadDetails(signatureBlobReader);
                        result = typed;
                    }
                    break;

                default:
                    throw new BadImageFormatException("Invalid calling convention byte "+callingConvention+".");
            }

            result.ReadParameters(signatureBlobReader);

            return result;
        }