📄 richtextbox.cs
字号:
using System;
using System.ComponentModel;
using System.Collections;
using System.Diagnostics;
using System.Drawing;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Text;
using System.IO;
using System.Collections.Specialized;
using System.Drawing.Imaging;
using LanMsg.Windows.Forms;
namespace LanMsg
{
#region "OLE definitions"
// STGM
[Flags(), ComVisible(false)]
public enum STGM : int
{
STGM_DIRECT = 0x0,
STGM_TRANSACTED = 0x10000,
STGM_SIMPLE = 0x8000000,
STGM_READ = 0x0,
STGM_WRITE = 0x1,
STGM_READWRITE = 0x2,
STGM_SHARE_DENY_NONE = 0x40,
STGM_SHARE_DENY_READ = 0x30,
STGM_SHARE_DENY_WRITE = 0x20,
STGM_SHARE_EXCLUSIVE = 0x10,
STGM_PRIORITY = 0x40000,
STGM_DELETEONRELEASE = 0x4000000,
STGM_NOSCRATCH = 0x100000,
STGM_CREATE = 0x1000,
STGM_CONVERT = 0x20000,
STGM_FAILIFTHERE = 0x0,
STGM_NOSNAPSHOT = 0x200000,
}
// DVASPECT
[Flags(), ComVisible(false)]
public enum DVASPECT : int
{
DVASPECT_CONTENT = 1,
DVASPECT_THUMBNAIL = 2,
DVASPECT_ICON = 4,
DVASPECT_DOCPRINT = 8,
DVASPECT_OPAQUE = 16,
DVASPECT_TRANSPARENT = 32,
}
// CLIPFORMAT
[ComVisible(false)]
public enum CLIPFORMAT : int
{
CF_TEXT = 1,
CF_BITMAP = 2,
CF_METAFILEPICT = 3,
CF_SYLK = 4,
CF_DIF = 5,
CF_TIFF = 6,
CF_OEMTEXT = 7,
CF_DIB = 8,
CF_PALETTE = 9,
CF_PENDATA = 10,
CF_RIFF = 11,
CF_WAVE = 12,
CF_UNICODETEXT = 13,
CF_ENHMETAFILE = 14,
CF_HDROP = 15,
CF_LOCALE = 16,
CF_MAX = 17,
CF_OWNERDISPLAY = 0x80,
CF_DSPTEXT = 0x81,
CF_DSPBITMAP = 0x82,
CF_DSPMETAFILEPICT = 0x83,
CF_DSPENHMETAFILE = 0x8E,
}
// Object flags
[Flags(), ComVisible(false)]
public enum REOOBJECTFLAGS : uint
{
REO_NULL = 0x00000000, // No flags
REO_READWRITEMASK = 0x0000003F, // Mask out RO bits
REO_DONTNEEDPALETTE = 0x00000020, // Object doesn't need palette
REO_BLANK = 0x00000010, // Object is blank
REO_DYNAMICSIZE = 0x00000008, // Object defines size always
REO_INVERTEDSELECT = 0x00000004, // Object drawn all inverted if sel
REO_BELOWBASELINE = 0x00000002, // Object sits below the baseline
REO_RESIZABLE = 0x00000001, // Object may be resized
REO_LINK = 0x80000000, // Object is a link (RO)
REO_STATIC = 0x40000000, // Object is static (RO)
REO_SELECTED = 0x08000000, // Object selected (RO)
REO_OPEN = 0x04000000, // Object open in its server (RO)
REO_INPLACEACTIVE = 0x02000000, // Object in place active (RO)
REO_HILITED = 0x01000000, // Object is to be hilited (RO)
REO_LINKAVAILABLE = 0x00800000, // Link believed available (RO)
REO_GETMETAFILE = 0x00400000 // Object requires metafile (RO)
}
// OLERENDER
[ComVisible(false)]
public enum OLERENDER : int
{
OLERENDER_NONE = 0,
OLERENDER_DRAW = 1,
OLERENDER_FORMAT = 2,
OLERENDER_ASIS = 3,
}
// TYMED
[Flags(), ComVisible(false)]
public enum TYMED : int
{
TYMED_NULL = 0,
TYMED_HGLOBAL = 1,
TYMED_FILE = 2,
TYMED_ISTREAM = 4,
TYMED_ISTORAGE = 8,
TYMED_GDI = 16,
TYMED_MFPICT = 32,
TYMED_ENHMF = 64,
}
[StructLayout(LayoutKind.Sequential), ComVisible(false)]
public struct FORMATETC
{
public CLIPFORMAT cfFormat;
public IntPtr ptd;
public DVASPECT dwAspect;
public int lindex;
public TYMED tymed;
}
[StructLayout(LayoutKind.Sequential), ComVisible(false)]
public struct STGMEDIUM
{
//[MarshalAs(UnmanagedType.I4)]
public int tymed;
public IntPtr unionmember;
public IntPtr pUnkForRelease;
}
[ComVisible(true),
ComImport(),
Guid("00000103-0000-0000-C000-000000000046"),
InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]
public interface IEnumFORMATETC
{
[return: MarshalAs(UnmanagedType.I4)]
[PreserveSig]
int Next(
[In, MarshalAs(UnmanagedType.U4)]
int celt,
[Out]
FORMATETC rgelt,
[In, Out, MarshalAs(UnmanagedType.LPArray)]
int[] pceltFetched);
[return: MarshalAs(UnmanagedType.I4)]
[PreserveSig]
int Skip(
[In, MarshalAs(UnmanagedType.U4)]
int celt);
[return: MarshalAs(UnmanagedType.I4)]
[PreserveSig]
int Reset();
[return: MarshalAs(UnmanagedType.I4)]
[PreserveSig]
int Clone(
[Out, MarshalAs(UnmanagedType.LPArray)]
IEnumFORMATETC[] ppenum);
}
[ComVisible(true), StructLayout(LayoutKind.Sequential)]
public class COMRECT
{
public int left;
public int top;
public int right;
public int bottom;
public COMRECT()
{
}
public COMRECT(int left, int top, int right, int bottom)
{
this.left = left;
this.top = top;
this.right = right;
this.bottom = bottom;
}
public static COMRECT FromXYWH(int x, int y, int width, int height)
{
return new COMRECT(x, y, x + width, y + height);
}
}
public enum GETOBJECTOPTIONS
{
REO_GETOBJ_NO_INTERFACES = 0x00000000,
REO_GETOBJ_POLEOBJ = 0x00000001,
REO_GETOBJ_PSTG = 0x00000002,
REO_GETOBJ_POLESITE = 0x00000004,
REO_GETOBJ_ALL_INTERFACES = 0x00000007,
}
public enum GETCLIPBOARDDATAFLAGS
{
RECO_PASTE = 0,
RECO_DROP = 1,
RECO_COPY = 2,
RECO_CUT = 3,
RECO_DRAG = 4
}
[StructLayout(LayoutKind.Sequential)]
public struct CHARRANGE
{
public int cpMin;
public int cpMax;
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public class REOBJECT
{
public int cbStruct = Marshal.SizeOf(typeof(REOBJECT)); // Size of structure
public int cp; // Character position of object
public Guid clsid; // Class ID of object
public IntPtr poleobj; // OLE object interface
public IStorage pstg; // Associated storage interface
public IOleClientSite polesite; // Associated client site interface
public Size sizel; // Size of object (may be 0,0)
public uint dvAspect; // Display aspect to use
public uint dwFlags; // Object status flags
public uint dwUser; // Dword for user's use
//[MarshalAs(UnmanagedType.ByValTStr, SizeConst =3)]
//public int fileName; //object ID
}
[ComVisible(true), Guid("0000010F-0000-0000-C000-000000000046"), InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]
public interface IAdviseSink
{
//C#r: UNDONE (Field in interface) public static readonly Guid iid;
void OnDataChange(
[In]
FORMATETC pFormatetc,
[In]
STGMEDIUM pStgmed);
void OnViewChange(
[In, MarshalAs(UnmanagedType.U4)]
int dwAspect,
[In, MarshalAs(UnmanagedType.I4)]
int lindex);
void OnRename(
[In, MarshalAs(UnmanagedType.Interface)]
object pmk);
void OnSave();
void OnClose();
}
[ComVisible(false), StructLayout(LayoutKind.Sequential)]
public sealed class STATDATA
{
[MarshalAs(UnmanagedType.U4)]
public int advf;
[MarshalAs(UnmanagedType.U4)]
public int dwConnection;
}
[ComVisible(false), StructLayout(LayoutKind.Sequential)]
public sealed class tagOLEVERB
{
[MarshalAs(UnmanagedType.I4)]
public int lVerb;
[MarshalAs(UnmanagedType.LPWStr)]
public String lpszVerbName;
[MarshalAs(UnmanagedType.U4)]
public int fuFlags;
[MarshalAs(UnmanagedType.U4)]
public int grfAttribs;
}
[ComVisible(true), ComImport(), Guid("00000104-0000-0000-C000-000000000046"), InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]
public interface IEnumOLEVERB
{
[return: MarshalAs(UnmanagedType.I4)]
[PreserveSig]
int Next(
[MarshalAs(UnmanagedType.U4)]
int celt,
[Out]
tagOLEVERB rgelt,
[Out, MarshalAs(UnmanagedType.LPArray)]
int[] pceltFetched);
[return: MarshalAs(UnmanagedType.I4)]
[PreserveSig]
int Skip(
[In, MarshalAs(UnmanagedType.U4)]
int celt);
void Reset();
void Clone(
out IEnumOLEVERB ppenum);
}
[ComVisible(true), Guid("00000105-0000-0000-C000-000000000046"), InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]
public interface IEnumSTATDATA
{
//C#r: UNDONE (Field in interface) public static readonly Guid iid;
void Next(
[In, MarshalAs(UnmanagedType.U4)]
int celt,
[Out]
STATDATA rgelt,
[Out, MarshalAs(UnmanagedType.LPArray)]
int[] pceltFetched);
void Skip(
[In, MarshalAs(UnmanagedType.U4)]
int celt);
void Reset();
void Clone(
[Out, MarshalAs(UnmanagedType.LPArray)]
IEnumSTATDATA[] ppenum);
}
[ComVisible(true), Guid("0000011B-0000-0000-C000-000000000046"), InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]
public interface IOleContainer
{
void ParseDisplayName(
[In, MarshalAs(UnmanagedType.Interface)] object pbc,
[In, MarshalAs(UnmanagedType.BStr)] string pszDisplayName,
[Out, MarshalAs(UnmanagedType.LPArray)] int[] pchEaten,
[Out, MarshalAs(UnmanagedType.LPArray)] object[] ppmkOut);
void EnumObjects(
[In, MarshalAs(UnmanagedType.U4)] int grfFlags,
[Out, MarshalAs(UnmanagedType.LPArray)] object[] ppenum);
void LockContainer(
[In, MarshalAs(UnmanagedType.I4)] int fLock);
}
[ComVisible(true),
ComImport(),
Guid("0000010E-0000-0000-C000-000000000046"),
InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]
public interface IDataObject
{
[PreserveSig()]
uint GetData(
ref FORMATETC a,
ref STGMEDIUM b);
[PreserveSig()]
uint GetDataHere(
ref FORMATETC pFormatetc,
out STGMEDIUM pMedium);
[PreserveSig()]
uint QueryGetData(
ref FORMATETC pFormatetc);
[PreserveSig()]
uint GetCanonicalFormatEtc(
ref FORMATETC pformatectIn,
out FORMATETC pformatetcOut);
[PreserveSig()]
uint SetData(
ref FORMATETC pFormatectIn,
ref STGMEDIUM pmedium,
[In, MarshalAs(UnmanagedType.Bool)]
bool fRelease);
[PreserveSig()]
uint EnumFormatEtc(
uint dwDirection, IEnumFORMATETC penum);
[PreserveSig()]
uint DAdvise(
ref FORMATETC pFormatetc,
int advf,
[In, MarshalAs(UnmanagedType.Interface)]
IAdviseSink pAdvSink,
out uint pdwConnection);
[PreserveSig()]
uint DUnadvise(
uint dwConnection);
[PreserveSig()]
uint EnumDAdvise(
[Out, MarshalAs(UnmanagedType.Interface)]
out IEnumSTATDATA ppenumAdvise);
}
[ComVisible(true), Guid("00000118-0000-0000-C000-000000000046"), InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]
public interface IOleClientSite
{
[return: MarshalAs(UnmanagedType.I4)]
[PreserveSig]
int SaveObject();
[return: MarshalAs(UnmanagedType.I4)]
[PreserveSig]
int GetMoniker(
[In, MarshalAs(UnmanagedType.U4)] int dwAssign,
[In, MarshalAs(UnmanagedType.U4)] int dwWhichMoniker,
[Out, MarshalAs(UnmanagedType.Interface)] out object ppmk);
[return: MarshalAs(UnmanagedType.I4)]
[PreserveSig]
int GetContainer([MarshalAs(UnmanagedType.Interface)] out IOleContainer container);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -