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

📄 com.cs

📁 语音视频功能 里面实现了基本的QQ与语音对话
💻 CS
字号:
using System;
using System.Runtime.InteropServices;
using System.Text;
using System.Drawing;
namespace gowk.common
{	
	[ComImport]
	[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
	[Guid("00020D00-0000-0000-c000-000000000046")]
	public interface IRichEditOle
	{
		//	IOleClientSite GetClientSite();
		IntPtr GetClientSite();
		[PreserveSig]
		int GetObjectCount();
		[PreserveSig]
		int GetLinkCount();
		int GetObject(uint iob, REOBJECT lpreobject, int dwFlags);
		int InsertObject(REOBJECT lpreobject);
		int ConvertObject(uint iob, ref Guid rclsidNew, string lpstrUserTypeNew);
		int ActivateAs(ref Guid rclsid, ref Guid rclsidAs);
		int SetHostNames(string lpstrContainerApp, string lpstrContainerObj);
		int SetLinkAvailable(uint iob, bool fAvailable);
		int SetDvaspect(uint iob, uint dvaspect);
		int HandsOffStorage(uint iob);
		int SaveCompleted(uint iob, IStorage lpstg);
		int InPlaceDeactivate();
		int ContextSensitiveHelp(bool fEnterMode);
		int GetClipboardData(IntPtr lpchrg, uint reco,IntPtr lplpdataobj);
		int ImportDataObject(IntPtr lpdataobj, IntPtr cf, IntPtr hMetaPict);
	}
	[ComImport, Guid("0000000A-0000-0000-C000-000000000046"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
	public interface ILockBytes
	{
		void ReadAt([In, MarshalAs(UnmanagedType.U8)] long ulOffset, [Out] IntPtr pv, [In, MarshalAs(UnmanagedType.U4)] int cb, [Out, MarshalAs(UnmanagedType.LPArray)] int[] pcbRead);
		void WriteAt([In, MarshalAs(UnmanagedType.U8)] long ulOffset, IntPtr pv, [In, MarshalAs(UnmanagedType.U4)] int cb, [Out, MarshalAs(UnmanagedType.LPArray)] int[] pcbWritten);
		void Flush();
		void SetSize([In, MarshalAs(UnmanagedType.U8)] long cb);
		void LockRegion([In, MarshalAs(UnmanagedType.U8)] long libOffset, [In, MarshalAs(UnmanagedType.U8)] long cb, [In, MarshalAs(UnmanagedType.U4)] int dwLockType);
		void UnlockRegion([In, MarshalAs(UnmanagedType.U8)] long libOffset, [In, MarshalAs(UnmanagedType.U8)] long cb, [In, MarshalAs(UnmanagedType.U4)] int dwLockType);
		void Stat([Out] object pstatstg, [In, MarshalAs(UnmanagedType.U4)] int grfStatFlag);
	}
 
	[ComImport, InterfaceType(ComInterfaceType.InterfaceIsIUnknown), Guid("0000000B-0000-0000-C000-000000000046")]
	public interface IStorage
	{
		[return: MarshalAs(UnmanagedType.Interface)]
		IStream CreateStream([In, MarshalAs(UnmanagedType.BStr)] string pwcsName, [In, MarshalAs(UnmanagedType.U4)] int grfMode, [In, MarshalAs(UnmanagedType.U4)] int reserved1, [In, MarshalAs(UnmanagedType.U4)] int reserved2);
		[return: MarshalAs(UnmanagedType.Interface)]
		IStream OpenStream([In, MarshalAs(UnmanagedType.BStr)] string pwcsName, IntPtr reserved1, [In, MarshalAs(UnmanagedType.U4)] int grfMode, [In, MarshalAs(UnmanagedType.U4)] int reserved2);
		[return: MarshalAs(UnmanagedType.Interface)]
		IStorage CreateStorage([In, MarshalAs(UnmanagedType.BStr)] string pwcsName, [In, MarshalAs(UnmanagedType.U4)] int grfMode, [In, MarshalAs(UnmanagedType.U4)] int reserved1, [In, MarshalAs(UnmanagedType.U4)] int reserved2);
		[return: MarshalAs(UnmanagedType.Interface)]
		IStorage OpenStorage([In, MarshalAs(UnmanagedType.BStr)] string pwcsName, IntPtr pstgPriority, [In, MarshalAs(UnmanagedType.U4)] int grfMode, IntPtr snbExclude, [In, MarshalAs(UnmanagedType.U4)] int reserved);
		void CopyTo(int ciidExclude, [In, MarshalAs(UnmanagedType.LPArray)] Guid[] pIIDExclude, IntPtr snbExclude, [In, MarshalAs(UnmanagedType.Interface)] IStorage stgDest);
		void MoveElementTo([In, MarshalAs(UnmanagedType.BStr)] string pwcsName, [In, MarshalAs(UnmanagedType.Interface)] IStorage stgDest, [In, MarshalAs(UnmanagedType.BStr)] string pwcsNewName, [In, MarshalAs(UnmanagedType.U4)] int grfFlags);
		void Commit(int grfCommitFlags);
		void Revert();
		void EnumElements([In, MarshalAs(UnmanagedType.U4)] int reserved1, IntPtr reserved2, [In, MarshalAs(UnmanagedType.U4)] int reserved3, [MarshalAs(UnmanagedType.Interface)] out object ppVal);
		void DestroyElement([In, MarshalAs(UnmanagedType.BStr)] string pwcsName);
		void RenameElement([In, MarshalAs(UnmanagedType.BStr)] string pwcsOldName, [In, MarshalAs(UnmanagedType.BStr)] string pwcsNewName);
		void SetElementTimes([In, MarshalAs(UnmanagedType.BStr)] string pwcsName, [In] FILETIME pctime, [In] FILETIME patime, [In] FILETIME pmtime);
		void SetClass([In] ref Guid clsid);
		void SetStateBits(int grfStateBits, int grfMask);
		void Stat([Out] STATSTG pStatStg, int grfStatFlag);
	}
 

	[ComVisible(true), Guid("00000118-0000-0000-C000-000000000046"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
	public interface IOleClientSite
	{
		void SaveObject();
		[return: MarshalAs(UnmanagedType.Interface)]
		object GetMoniker([In, MarshalAs(UnmanagedType.U4)] int dwAssign, [In, MarshalAs(UnmanagedType.U4)] int dwWhichMoniker);
		[PreserveSig]
		int GetContainer(out object ppContainer);
		void ShowObject();
		void OnShowWindow([In, MarshalAs(UnmanagedType.I4)] int fShow);
		void RequestNewObjectLayout();
	}
	[ComImport, InterfaceType(ComInterfaceType.InterfaceIsIUnknown), Guid("0000000C-0000-0000-C000-000000000046")]
	public interface IStream
	{
		int Read(IntPtr buf, int len);
		int Write(IntPtr buf, int len);
		[return: MarshalAs(UnmanagedType.I8)]
		long Seek([In, MarshalAs(UnmanagedType.I8)] long dlibMove, int dwOrigin);
		void SetSize([In, MarshalAs(UnmanagedType.I8)] long libNewSize);
		[return: MarshalAs(UnmanagedType.I8)]
		long CopyTo([In, MarshalAs(UnmanagedType.Interface)] IStream pstm, [In, MarshalAs(UnmanagedType.I8)] long cb, [Out, MarshalAs(UnmanagedType.LPArray)] long[] pcbRead);
		void Commit(int grfCommitFlags);
		void Revert();
		void LockRegion([In, MarshalAs(UnmanagedType.I8)] long libOffset, [In, MarshalAs(UnmanagedType.I8)] long cb, int dwLockType);
		void UnlockRegion([In, MarshalAs(UnmanagedType.I8)] long libOffset, [In, MarshalAs(UnmanagedType.I8)] long cb, int dwLockType);
		void Stat([Out] STATSTG pStatstg, int grfStatFlag);
		[return: MarshalAs(UnmanagedType.Interface)]
		IStream Clone();
	}
	[ComImport, Guid("00000112-0000-0000-C000-000000000046"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
	public interface IOleObject
	{
		[PreserveSig]
		int SetClientSite([In, MarshalAs(UnmanagedType.Interface)] IOleClientSite pClientSite);
		IOleClientSite GetClientSite();
		[PreserveSig]
		int SetHostNames([In, MarshalAs(UnmanagedType.LPWStr)] string szContainerApp, [In, MarshalAs(UnmanagedType.LPWStr)] string szContainerObj);
		[PreserveSig]
		int Close(int dwSaveOption);
		[PreserveSig]
		int SetMoniker([In, MarshalAs(UnmanagedType.U4)] int dwWhichMoniker, [In, MarshalAs(UnmanagedType.Interface)] object pmk);
		[PreserveSig]
		int GetMoniker([In, MarshalAs(UnmanagedType.U4)] int dwAssign, [In, MarshalAs(UnmanagedType.U4)] int dwWhichMoniker, [MarshalAs(UnmanagedType.Interface)] out object moniker);
		[PreserveSig]
		int InitFromData([In, MarshalAs(UnmanagedType.Interface)] object pDataObject, int fCreation, [In, MarshalAs(UnmanagedType.U4)] int dwReserved);
		[PreserveSig]
		int GetClipboardData([In, MarshalAs(UnmanagedType.U4)] int dwReserved, out object data);
		[PreserveSig]
		int DoVerb(int iVerb, [In] IntPtr lpmsg, [In, MarshalAs(UnmanagedType.Interface)] IOleClientSite pActiveSite, int lindex, IntPtr hwndParent, [In] object lprcPosRect);
		[PreserveSig]
		int EnumVerbs(out IntPtr e);
		[PreserveSig]
		int OleUpdate();
		[PreserveSig]
		int IsUpToDate();
		//	[PreserveSig]
		//int GetUserClassID([In, Out] ref Guid pClsid);
		Guid GetUserClassID();
		[PreserveSig]
		int GetUserType([In, MarshalAs(UnmanagedType.U4)] int dwFormOfType, [MarshalAs(UnmanagedType.LPWStr)] out string userType);
		[PreserveSig]
		int SetExtent([In, MarshalAs(UnmanagedType.U4)] int dwDrawAspect, [In] Size pSizel);
		[PreserveSig]
		int GetExtent([In, MarshalAs(UnmanagedType.U4)] int dwDrawAspect, [Out] Size pSizel);
		[PreserveSig]
		int Advise([In, MarshalAs(UnmanagedType.Interface)] IntPtr pAdvSink, out int cookie);
		[PreserveSig]
		int Unadvise([In, MarshalAs(UnmanagedType.U4)] int dwConnection);
		[PreserveSig]
		int EnumAdvise(out IntPtr e);
		[PreserveSig]
		int GetMiscStatus([In, MarshalAs(UnmanagedType.U4)] int dwAspect, out int misc);
		[PreserveSig]
		int SetColorScheme([In] IntPtr pLogpal);
	}
 
	[StructLayout(LayoutKind.Sequential)]
	public class REOBJECT
	{
		public int			cbStruct = Marshal.SizeOf(typeof(REOBJECT));		// Size of structure
		public REOCP			cp = REOCP.REO_CP_SELECTION;											// Character position of object
		public Guid 		clsid;								// Class ID of object
		public IntPtr	poleobj;								// OLE object interface
		public IntPtr		pstg;									// Associated storage interface
		public IntPtr	polesite;								// Associated client site interface
		public Size		    sizel=new Size(0,0);								// Size of object (may be 0,0)
		public DVASPECT			dvaspect;										// Display aspect to use
		public ReoObjectFlag			dwFlags;										// Object status flags
		public int			dwUser;											// Dword for user's use
	}


}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -