private void SetSelectionStyle(UInt32 mask, UInt32 effect) { Win32.CHARFORMAT2_STRUCT cf = new Win32.CHARFORMAT2_STRUCT(); cf.cbSize = (UInt32)Marshal.SizeOf(cf); cf.dwMask = mask; cf.dwEffects = effect; IntPtr wpar = new IntPtr(Win32.SCF_SELECTION); IntPtr lpar = Marshal.AllocCoTaskMem(Marshal.SizeOf(cf)); Marshal.StructureToPtr(cf, lpar, false); IntPtr res = Win32.SendMessage(Handle, Win32.EM_SETCHARFORMAT, wpar, lpar); Marshal.FreeCoTaskMem(lpar); }
private int GetSelectionStyle(UInt32 mask, UInt32 effect) { Win32.CHARFORMAT2_STRUCT cf = new Win32.CHARFORMAT2_STRUCT(); cf.cbSize = (UInt32)Marshal.SizeOf(cf); cf.szFaceName = new char[32]; IntPtr wpar = new IntPtr(Win32.SCF_SELECTION); IntPtr lpar = Marshal.AllocCoTaskMem(Marshal.SizeOf(cf)); Marshal.StructureToPtr(cf, lpar, false); IntPtr res = Win32.SendMessage(Handle, Win32.EM_GETCHARFORMAT, wpar, lpar); cf = (Win32.CHARFORMAT2_STRUCT)Marshal.PtrToStructure(lpar, typeof(Win32.CHARFORMAT2_STRUCT)); int state; // dwMask holds the information which properties are consistent throughout the selection: if ((cf.dwMask & mask) == mask) { if ((cf.dwEffects & effect) == effect) { state = 1; } else { state = 0; } } else { state = -1; } Marshal.FreeCoTaskMem(lpar); return(state); }
private int GetSelectionStyle(UInt32 mask, UInt32 effect) { Win32.CHARFORMAT2_STRUCT cf = new Win32.CHARFORMAT2_STRUCT(); cf.cbSize = (UInt32)Marshal.SizeOf(cf); cf.szFaceName = new char[32]; IntPtr wpar = new IntPtr(Win32.SCF_SELECTION); IntPtr lpar = Marshal.AllocCoTaskMem(Marshal.SizeOf(cf)); Marshal.StructureToPtr(cf, lpar, false); IntPtr res = Win32.SendMessage(Handle, Win32.EM_GETCHARFORMAT, wpar, lpar); cf = (Win32.CHARFORMAT2_STRUCT)Marshal.PtrToStructure(lpar, typeof(Win32.CHARFORMAT2_STRUCT)); int state; // dwMask holds the information which properties are consistent throughout the selection: if ((cf.dwMask & mask) == mask) { if ((cf.dwEffects & effect) == effect) state = 1; else state = 0; } else { state = -1; } Marshal.FreeCoTaskMem(lpar); return state; }