static void ProcessWStr(this NamedPipeServerStream Server) { var Buffer = Server.ReadStringBuffer(); fixed(void *pStr = &Buffer[0]) { var Rst = EntryPoint.ProcessW(pStr); if (Rst == pStr) { Server.WriteI32(0); Server.Flush(); return; } WCString NewStr = Rst; var StrData = NewStr.ToArray(); StrData = StrData.Concat(new byte[2]).ToArray(); Server.WriteI32(StrData.Length); Server.Write(StrData, 0, StrData.Length); Server.Flush(); } }
public WCTexImageContainer(CTexImageContainer *self, NativeEnvironment environment) { Self = self; _magic = new WCString(&self->magic, environment); _images = new WCList <CTexImage, ITexImage>( &Self->image_count, &Self->images, environment, (x, e) => new WCTexImage(x, e)); }
public WCTexFrameInfoContainer(CTexFrameInfoContainer *self, NativeEnvironment environment) { Self = self; _magic = new WCString(&self->magic, environment); _frames = new WCList <CTexFrameInfo, ITexFrameInfo>( &Self->frame_count, &Self->frames, environment, (x, _) => new WCTexFrameInfo(x)); }
internal byte *ProcessString(WCString pString) { if (!Initialized) { Initializer.Initialize(this); } if (Settings.SanityCheck && SanityChecks.IsBadCodePtr(pString)) { return(pString); } var String = pString; foreach (var Rld in Reloads) { var New = Rld.BeforeReload(String, true); if (New != null) { String = New; } } var Rst = ProcessString((string)String); if (Rst == null) { return(String); } var Output = (WCString)Rst; foreach (var Rld in Reloads) { var New = Rld.AfterReload(pString, Output, true); if (New != null) { Output = New; } } if (Settings.Overwrite && Output != null && ((string)Output) != null) { return((WCString)Alloc.Overwrite(Output.ToArray(), pString)); } if (Settings.HeapAlloc && Output != null && ((string)Output) != null) { return((WCString)Alloc.CreateHeap(Output.ToArray())); } return(Output); }
bool TextOut(void *dc, int xStart, int yStart, byte *pStr, int strLen) { WCString InStr = pStr; InStr.FixedLength = (uint)strLen; InStr = EntryPoint.Process((WCString)(string)InStr);//Ensure Null-Terminated if (Config.Default.TextOutWUndoRemap) { InStr = Remaper.Default.Restore(InStr); } return(Bypass(dc, xStart, yStart, InStr, InStr.Count())); }
bool TextOut(void *dc, int xStart, int yStart, byte *pStr, int strLen) { CString OriStr = pStr; OriStr.FixedLength = (uint)strLen; WCString Str = EntryPoint.ProcessW((WCString)(string)OriStr); if (Config.Default.TextOutAUndoRemap) { Str = Remaper.Default.Restore(Str); } return(TextOutW(dc, xStart, yStart, Str, (int)Str.LongCount())); }
public WCTex(CTex *self, NativeEnvironment environment) { Self = self; _environment = environment; _wcTexHeader = new WCTexHeader(&self->header); _wcTexImageContainer = new WCTexImageContainer(&self->images_container, _environment); _magic1 = new WCString(&self->magic1, environment); _magic2 = new WCString(&self->magic2, environment); if (Self->frameinfo_container != null) { _wcTexFrameInfoContainer = new WCTexFrameInfoContainer(Self->frameinfo_container, environment); } }
uint hGetCharacterPlacement(void *hdc, byte *lpString, int nCount, int nMexExtent, GCP_RESULTSW *lpResult, uint dwFlags) { WCString InStr = lpString; InStr.FixedLength = (uint)nCount; InStr = EntryPoint.ProcessW((WCString)(string)InStr);//Ensure Null-Terminated if (Config.Default.GetCharacterPlacementWUndoRemap) { InStr = Remaper.Default.Restore(InStr); } if (Config.Default.GetCharacterPlacementWRemapAlt) { InStr = RemaperAlt.Default.Apply(InStr, null); } return(Bypass(hdc, InStr, InStr.Count(), nMexExtent, lpResult, dwFlags)); }
private unsafe bool hGetTextExtendPoint32(void *hdc, byte *lpString, int c, SIZE *psize) { WCString InStr = lpString; InStr.FixedLength = (uint)c; InStr = EntryPoint.ProcessW((WCString)(string)InStr);//Ensure Null-Terminated if (Config.Default.GetTextExtentPoint32WUndoRemap) { InStr = Remaper.Default.Restore(InStr); } if (Config.Default.GetTextExtentPoint32WRemapAlt) { InStr = RemaperAlt.Default.Apply(InStr, null); } return(Bypass(hdc, InStr, InStr.Count(), psize)); }
bool ExtTextOut(void *hdc, int x, int y, uint options, void *lprect, byte *lpString, uint c, int *lpDx) { WCString OriStr = lpString; OriStr.FixedLength = c; WCString InStr = EntryPoint.ProcessW((WCString)(string)OriStr); if (Config.Default.ExtTextOutWUndoRemap) { InStr = Remaper.Default.Restore(InStr); } if (Config.Default.ExtTextOutWRemapAlt) { InStr = RemaperAlt.Default.Apply(InStr, null); } return(Bypass(hdc, x, y, options, lprect, InStr, (uint)InStr.LongCount() / 2, lpDx)); }
bool hTextOut(void *dc, int xStart, int yStart, byte *pStr, int strLen) { CString OriStr = pStr; OriStr.FixedLength = (uint)strLen; WCString InStr = EntryPoint.ProcessW((WCString)(string)OriStr); if (Config.Default.TextOutAUndoRemap) { InStr = Remaper.Default.Restore(InStr); } if (Config.Default.TextOutARemapAlt) { InStr = RemaperAlt.Default.Apply(InStr, null); } return(TextOutW(dc, xStart, yStart, InStr, (int)InStr.LongCount())); }
public static bool IsBadPtr(WCString Pointer) => IsBadCodePtr(Pointer);