⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 richtextbox.cs

📁 该即时通讯系统系统能够实现像QQ一样的通讯功能
💻 CS
📖 第 1 页 / 共 5 页
字号:
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 + -