Ejemplo n.º 1
0
    // Token: 0x06000528 RID: 1320 RVA: 0x0002C2F4 File Offset: 0x0002A4F4
    public static Type smethod_4(Type type_0, Class57 <Struct45> class57_0)
    {
        Type type = type_0;

        while (class57_0.Count > 0)
        {
            Struct45 @struct = class57_0.method_6();
            switch (@struct.int_0)
            {
            case 0:
                if (@struct.int_1 == 1)
                {
                    type = type.MakeArrayType();
                }
                else
                {
                    type = type.MakeArrayType(@struct.int_1);
                }
                break;

            case 1:
                type = type.MakePointerType();
                break;

            case 2:
                type = type.MakeByRefType();
                break;
            }
        }
        return(type);
    }
        // Token: 0x060023CE RID: 9166 RVA: 0x0007919C File Offset: 0x0007739C
        private static Bitmap smethod_4(IntPtr handle, Rectangle rec)
        {
            IntPtr intPtr  = IntPtr.Zero;
            IntPtr intPtr2 = IntPtr.Zero;

            try
            {
                intPtr = Class265.GetWindowDC(handle);
                if (intPtr == IntPtr.Zero)
                {
                    throw new Win32Exception();
                }
                intPtr2 = Class265.CreateCompatibleDC(intPtr);
                if (intPtr2 == IntPtr.Zero)
                {
                    throw new Win32Exception();
                }
                IntPtr intPtr3 = Class265.CreateCompatibleBitmap(intPtr, rec.Width, rec.Height);
                if (intPtr3 == IntPtr.Zero)
                {
                    throw new Win32Exception();
                }
                using (Struct45 hObject = Struct45.smethod_0(intPtr3))
                {
                    IntPtr intPtr4 = Class265.SelectObject(intPtr2, Struct45.smethod_1(hObject));
                    if (!(intPtr4 == IntPtr.Zero))
                    {
                        if (intPtr4.ToInt32() != Class364.int_0)
                        {
                            if (!Class265.BitBlt(intPtr2, 0, 0, rec.Width, rec.Height, intPtr, rec.X, rec.Y, Enum37.const_0))
                            {
                                throw new Win32Exception();
                            }
                            IntPtr value = Class265.SelectObject(intPtr2, intPtr4);
                            if (value == IntPtr.Zero || value.ToInt32() == Class364.int_0)
                            {
                                throw new InvalidOperationException(string.Format(Class217.cultureInfo_0, Class364.string_0, new object[]
                                {
                                    value.ToString()
                                }));
                            }
                            return(Image.FromHbitmap(Struct45.smethod_1(hObject)));
                        }
                    }
                    throw new InvalidOperationException(string.Format(Class217.cultureInfo_0, Class364.string_0, new object[]
                    {
                        intPtr4.ToString()
                    }));
                }
            }
            finally
            {
                if (intPtr2 != IntPtr.Zero && !Class265.DeleteDC(intPtr2))
                {
                    throw new Win32Exception();
                }
                if (intPtr != IntPtr.Zero && Class265.ReleaseDC(handle, intPtr) == 0)
                {
                    throw new Win32Exception();
                }
            }
            Bitmap result;

            return(result);
        }