/// <summary>
/// 获取对象的选项
/// </summary>
public enum GETOBJECTOPTIONS
{
/// <summary>
/// 选举事务处得到obj没有接口
/// </summary>
REO_GETOBJ_NO_INTERFACES = 0x00000000, /// <summary>
/// 选举事务处得到的obj poleobj
/// </summary>
REO_GETOBJ_POLEOBJ = 0x00000001, /// <summary>
/// 研究
/// </summary>
REO_GETOBJ_PSTG = 0x00000002, /// <summary>
/// 选举事务处得到的obj polesite
/// </summary>
REO_GETOBJ_POLESITE = 0x00000004, /// <summary>
/// 选举事务处得到的obj所有的接口
/// </summary>
REO_GETOBJ_ALL_INTERFACES = 0x00000007,
}
 /// <summary>
/// 如需向CRichEditCtrl里面插入Ole对象,
/// /需要调用 GetIRichEditOle 获得此CRichEditCtrl的IRichEditOle接口
/// </summary>
[ComImport,
InterfaceType(ComInterfaceType.InterfaceIsIUnknown),
Guid("00020D00-0000-0000-c000-000000000046")]
public interface IRichEditOle
{
// 接口下面几个重要的方法
// InsertObject:插入一个对象到CRichEditCtrl
// GetObject:返回一个CRichEditCtrl里面的REOBJECT对象
// ImportDataObject: 导入一个剪切板对象并替换当前选中内容
// GetClientSite:返回IOleClientSite接口用于创建新的对象。
// GetClipboardData:返回一个Clipboard对象。  /// <summary>
/// 返回 IOleClientSite 接口用于创建新的对象。
/// </summary>
/// <param name="site"></param>
/// <returns></returns>
[return: MarshalAs(UnmanagedType.I4)]
[PreserveSig]
int GetClientSite(out IOleClientSite site); [return: MarshalAs(UnmanagedType.I4)]
[PreserveSig]
int GetObjectCount(); [return: MarshalAs(UnmanagedType.I4)]
[PreserveSig]
int GetLinkCount(); /// <summary>
/// 返回一个CRichEditCtrl里面的REOBJECT对象
/// </summary>
/// <param name="iob"></param>
/// <param name="lpreobject"></param>
/// <param name="flags"></param>
/// <returns></returns>
[return: MarshalAs(UnmanagedType.I4)]
[PreserveSig]
int GetObject(int iob, [In, Out] REOBJECT lpreobject, [MarshalAs(UnmanagedType.U4)] GETOBJECTOPTIONS flags); /// <summary>
/// 插入一个对象到 CRichEditCtrl
/// </summary>
/// <param name="lpreobject"></param>
/// <returns></returns>
[return: MarshalAs(UnmanagedType.I4)]
[PreserveSig]
int InsertObject(REOBJECT lpreobject);
/// <summary>
/// 转换对象
/// </summary>
/// <param name="iob"></param>
/// <param name="rclsidNew"></param>
/// <param name="lpstrUserTypeNew"></param>
/// <returns></returns>
[return: MarshalAs(UnmanagedType.I4)]
[PreserveSig]
int ConvertObject(int iob, Guid rclsidNew, string lpstrUserTypeNew); /// <summary>
/// 激活
/// </summary>
/// <param name="rclsid"></param>
/// <param name="rclsidAs"></param>
/// <returns></returns>
[return: MarshalAs(UnmanagedType.I4)]
[PreserveSig]
int ActivateAs(Guid rclsid, Guid rclsidAs); /// <summary>
/// 设置主机名
/// </summary>
/// <param name="lpstrContainerApp"></param>
/// <param name="lpstrContainerObj"></param>
/// <returns></returns>
[return: MarshalAs(UnmanagedType.I4)]
[PreserveSig]
int SetHostNames(string lpstrContainerApp, string lpstrContainerObj); /// <summary>
/// 设置链接可用
/// </summary>
/// <param name="iob"></param>
/// <param name="fAvailable"></param>
/// <returns></returns>
[return: MarshalAs(UnmanagedType.I4)]
[PreserveSig]
int SetLinkAvailable(int iob, bool fAvailable);
[return: MarshalAs(UnmanagedType.I4)]
[PreserveSig]
int SetDvaspect(int iob, uint dvaspect);
[return: MarshalAs(UnmanagedType.I4)]
[PreserveSig]
int HandsOffStorage(int iob); /// <summary>
/// 保存完毕
/// </summary>
/// <param name="iob"></param>
/// <param name="lpstg"></param>
/// <returns></returns>
[return: MarshalAs(UnmanagedType.I4)]
[PreserveSig]
int SaveCompleted(int iob, IStorage lpstg); /// <summary>
/// 在关闭
/// </summary>
/// <returns></returns>
[return: MarshalAs(UnmanagedType.I4)]
[PreserveSig]
int InPlaceDeactivate(); /// <summary>
/// 上下文相关的帮助
/// </summary>
/// <param name="fEnterMode"></param>
/// <returns></returns>
[return: MarshalAs(UnmanagedType.I4)]
[PreserveSig]
int ContextSensitiveHelp(bool fEnterMode); /// <summary>
/// 获取剪贴板数据 返回一个 Clipboard 对象
/// </summary>
/// <param name="lpchrg"></param>
/// <param name="reco"></param>
/// <param name="lplpdataobj"></param>
/// <returns></returns>
[return: MarshalAs(UnmanagedType.I4)]
[PreserveSig]
int GetClipboardData([In, Out] ref CHARRANGE lpchrg, [MarshalAs(UnmanagedType.U4)] GETCLIPBOARDDATAFLAGS reco, out IDataObject lplpdataobj); /// <summary>
/// 导入数据对象 导入一个剪切板对象并替换当前选中内容
/// </summary>
/// <param name="lpdataobj"></param>
/// <param name="cf"></param>
/// <param name="hMetaPict"></param>
/// <returns></returns>
[return: MarshalAs(UnmanagedType.I4)]
[PreserveSig]
int ImportDataObject(IDataObject lpdataobj, int cf, IntPtr hMetaPict);
}

GETOBJECTOPTIONS的更多相关文章

  1. ChatRichTextBox : RichTextBox

    using System; using System.Collections.Generic; using System.Text; using System.Windows.Forms; using ...

随机推荐

  1. Demystifying ASP.NET MVC 5 Error Pages and Error Logging

    出处:http://dusted.codes/demystifying-aspnet-mvc-5-error-pages-and-error-logging Error pages and error ...

  2. java内存管理总结

    编译好的java程序需要运行在jvm中. 程序,无论是代码还是数据,都需要存储在内存中.JVM为java提供并管理所需要的内存空间. JVM内存分为堆.栈.方法区. 对象存储在堆中. This liv ...

  3. IT传统组织结构及新型扁平化组织

    如今互联网企业正凶猛的改变人们衣食住行的方方面面,衣->淘宝,蘑菇街;食->大众点评,口碑;住->去哪,途牛:行->12306, 多次听到互联网的同行介绍他们就是要“快”,快速 ...

  4. java 锁2

    并发,其实是多线程才有的场景... java 多线程? 锁? 现在看来,即使已经工作了4.5年,这仍然不是一个简单的问题. 其实java 本身有提供锁的机制. 比如 Object对象的 wait .n ...

  5. 64位Windows下安装Redis教程

    转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/104.html?1455868495 Redis对于Linux​是官方支持 ...

  6. lua的私有性(privacy)

    很多人认为私有性是面向对象语言的应有的一部分.每个对象的状态应该是这个对象自己的事情.在一些面向对象的语言中,比如C++和Java你可以控制对象成员变量或者成员方法是否私有.其他一些语言比如Small ...

  7. D3+svg 案例

    <!doctype html><html lang="en"><head> <meta charset="UTF-8" ...

  8. Android WebView 总结 —— Java和JavaScript交互

    交互如何实现 实现Java和js交互十分便捷.通常只需要以下几步. WebView开启JavaScript脚本执行 WebView设置供JavaScript调用的交互接口. 客户端和网页端编写调用对方 ...

  9. Android ListView 进阶学习

    1.使用ListView展示数据结构为二维数组的数据 当我们遇到数据结构是二维数组的需求的时候,我们会首先想到ListView,但是要想实现二维数组,会想到ListView里面嵌套ListView,但 ...

  10. js中NAN、NULL、undefined的区别

    NaN:保留字(表明数据类型不是数字) undefined:对象属性或方法不存在,或声明了变量但从未赋值.即当你使用了对象未定的属性或者未定义的方法时或当你声明一个变量,但你确从未对其进行赋值,便对其 ...