ICABook

[ 
    object, 
    uuid(63A62DC9-F44D-4088-851A-57CC1E6EB8B4), 
    dual, 
    nonextensible, 
    helpstring("ICABook Interface"), 
    pointer_default(unique) 
] 
interface ICABook : IDispatch{ 
    [id(1), helpstring("method Open")] HRESULT Open([in] BSTR bstrGUID); 
    [id(2), helpstring("method Close")] HRESULT Close(void); 
    [propget, id(3), helpstring("property RootNode")] HRESULT RootNode([out, retval] IDispatch** pVal); 
    [propget, id(4), helpstring("property Labels")] HRESULT Labels([out, retval] IDispatch** pVal); 
    [propget, id(5), helpstring("property Attachments")] HRESULT Attachments([out, retval] IDispatch** pVal); 
    [propget, id(6), helpstring("property GUID")] HRESULT GUID([out, retval] BSTR* pVal); 
    [propget, id(7), helpstring("property Name")] HRESULT Name([out, retval] BSTR* pVal); 
    [propput, id(7), helpstring("property Name")] HRESULT Name([in] BSTR newVal); 
    [propget, id(8), helpstring("property IconIndex")] HRESULT IconIndex([out, retval] LONG* pVal); 
    [propget, id(9), helpstring("property RecycleBin")] HRESULT RecycleBin([out, retval] IDispatch** pVal); 
    [id(10), helpstring("method CreateFolder")] HRESULT CreateFolder([in] IDispatch* pParentNode, [in] BSTR bstrTitle, [out,retval] IDispatch** ppNewFolder); 
    [id(11), helpstring("method CreateArticle")] HRESULT CreateArticle([in] IDispatch* pParentNode, [in] BSTR bstrTitle, [out,retval] IDispatch** ppNewArticle); 
    [id(12), helpstring("method CreateFolderByFolderPath")] HRESULT CreateFolderByFolderPath([in] IDispatch* pParentNode, [in] BSTR bstrFolderPath, [out,retval] IDispatch** ppNewFolder); 
    [id(13), helpstring("method CreateLabel")] HRESULT CreateLabel([in] BSTR bstrLabelName, [out,retval] IDispatch** ppLabelDisp); 
    [id(14), helpstring("method NodeFromID")] HRESULT NodeFromID([in] LONG nID, [out,retval] IDispatch** ppDisp); 
    [id(15), helpstring("method AttachmentFromID")] HRESULT AttachmentFromID([in] LONG nID, [out,retval] IDispatch** ppDisp); 
    [id(16), helpstring("method LabelFromID")] HRESULT LabelFromID([in] LONG nID, [out,retval] IDispatch** ppDisp); 
    [id(17), helpstring("method Search")] HRESULT Search([in] BSTR bstrFind, [in] LONG nFlags, [in] LONG nResultCount, [out,retval] IDispatch** ppResult); 
    [id(18), helpstring("method SearchSupportIngoreCase")] HRESULT SearchSupportIngoreCase(void); 
    [id(19), helpstring("method BeginUpdate")] HRESULT BeginUpdate(void); 
    [id(20), helpstring("method EndUpdate")] HRESULT EndUpdate(void); 
    [id(21), helpstring("method NodesFromURL")] HRESULT NodesFromURL([in] BSTR bstrURL, [out,retval] IDispatch** ppNodesDisp); 
    [id(22), helpstring("method RecentArticles")] HRESULT RecentArticles([in] LONG nCount, [out,retval] IDispatch** ppArticlesDisp); 
    [id(23), helpstring("method UnreadArticles")] HRESULT UnreadArticles([out,retval] IDispatch** ppArticlesDisp); 
    [id(24), helpstring("method SetPasswordStorage")] HRESULT SetPasswordStorage([in] VARIANT vPasswordStorage); 
    [propget, id(25), helpstring("property Nodes")] HRESULT Nodes([out, retval] IDispatch** pVal); 
    [propget, id(26), helpstring("property Users")] HRESULT Users([out,retval] VARIANT* pvUsers); 
    [id(27), helpstring("method DeleteUser")] HRESULT DeleteUser([in] BSTR bstrUser); 
    [id(28), helpstring("method ChangeUser")] HRESULT ChangeUser([in] BSTR bstrOldUser, [in] BSTR bstrNewUser); 
    [id(29), helpstring("method GetFirstNode")] HRESULT GetFirstNode([out,retval] IDispatch** ppNodeDisp); 
    [id(30), helpstring("method GetPrevNode")] HRESULT GetPrevNode([in] IDispatch* pCurrNodeDisp, [out,retval] IDispatch** ppNodeDisp); 
    [id(31), helpstring("method GetNextNode")] HRESULT GetNextNode([in] IDispatch* pCurrNodeDisp, [out,retval] IDispatch** ppNodeDisp); 
    [id(32), helpstring("method GetLastNode")] HRESULT GetLastNode([out,retval] IDispatch** ppNodeDisp); 
    [id(33), helpstring("method NodesFromLabels")] HRESULT NodesFromLabels([in] VARIANT vLabels, [out,retval] IDispatch** ppNodesDisp); 
    [id(34), helpstring("method SetBookPassword")] HRESULT SetBookPassword([in] BSTR bstrOldPassword, [in] BSTR bstrNewPassword); 
    [id(35), helpstring("method SearchInNodes")] HRESULT SearchInNodes([in] IDispatch* pNodesDisp, [in] BSTR bstrFind, [in] LONG nFlags, [in] LONG nResultCount, [out,retval] IDispatch** ppResult); 
    [id(36), helpstring("method RecentArticlesEx")] HRESULT RecentArticlesEx([in] LONG nCount, long nFlags, [out,retval] IDispatch** ppArticlesDisp); 
    [propget, id(37), helpstring("property Icons")] HRESULT Icons([out, retval] IDispatch** pVal); 
    [id(38), helpstring("method AddIcon")] HRESULT AddIcon([in] BSTR bstrFileName, [out,retval] IDispatch** ppIconDisp); 
    [id(39), helpstring("method IconFromID")] HRESULT IconFromID([in] LONG nID, [out,retval] IDispatch** ppDisp); 
    [id(40), helpstring("method Compress")] HRESULT Compress(void); 
    [id(41), helpstring("method Backup")] HRESULT Backup([in] BSTR bstrBackupPath); 
    [id(42), helpstring("method NodesFromSQL")] HRESULT NodesFromSQL([in] BSTR bstrSQL, [out,retval] IDispatch** ppNodesDisp); 
    [id(43), helpstring("method NodeFromGUID")] HRESULT NodeFromGUID([in] BSTR bstrGUID, [out,retval] IDispatch** ppNodeDisp); 
    [id(44), helpstring("method NodesFromAttribute")] HRESULT NodesFromAttribute([in] BSTR bstrAttributeName, [in] BSTR bstrAttributeValue, [out,retval] IDispatch** ppNodesDisp); 
    [id(45), helpstring("method GetBookSettings")] HRESULT GetBookSettings([in] BSTR bstrSettingsName, [in] BSTR bstrDefaultValue, [out,retval] BSTR* pbstrValue); 
    [id(46), helpstring("method SetBookSettings")] HRESULT SetBookSettings([in] BSTR bstrSettingsName, [in] BSTR bstrSettingsValue); 
}; 
ProgID
CyberArticleBook.CABook
C/C++头文件
CyberArticleBook.h; CyberArticleBook_i.c
 

方法 Open

打开书籍

参数

  • [in] BSTR bstrGUID:书籍的GUID

返回

方法 Close

关闭已经打开的书籍

参数

返回

属性 RootNode

获得根节点

参数

类型

  • get: [out, retval] IDispatch** ppRootNode (ICANode)
  • put: 无

属性 Labels

获得书籍内所有的Label

参数

类型

  • get: [out, retval] IDispatch** ppLabels (ICALabelCollection)
  • put: 无

属性 Attachments

获得书籍内所有的附件

参数

类型

  • get: [out, retval] IDispatch** ppAttachments (ICAAttachmentCollection)
  • put: 无

属性 GUID

获得书籍的GUID

参数

类型

  • get: [out, retval] BSTR* pbstrGUID
  • put: 无

属性 Name

获得或者设置书籍名称

参数

类型

  • get: [out, retval] BSTR* pbstrName
  • put: [in] BSTR bstrName

属性 IconIndex

获得书籍的图标索引(书籍上就是RootNode的图标索引)

参数

类型

  • get: [out, retval] long* pnIconIndex
  • put: [in] long nIconIndex

属性 RecycleBin

获得回收站节点

参数

类型

  • get: [out, retval] IDispatch** ppRecycleBin (ICANode)
  • put: 无

方法 CreateFolder

创建一个文件夹

参数

  • [in] IDispatch* pParentNode:新增的文件夹所在的父文件夹(ICANode)
  • [in] BSTR bstrTitle:文件夹标题

返回

  • [out,retval] IDispatch** ppNewFolder:返回新建的文件夹。(ICANode)

方法 CreateArticle

打开一个书籍

参数

  • [in] IDispatch* pParentNode:新增的文件夹所在的父文件夹(ICANode)
  • [in] BSTR bstrTitle:文章标题

返回

  • [out,retval] IDispatch** ppNewArticle:返回新建的文件夹。(ICANode)

方法 CreateFolderByFolderPath

通过文件夹标题路径创建新的文件夹。标题路径通过反斜线(\)分割

参数

  • [in] IDispatch* pParentNode:新增的文件夹所在的父文件夹(ICANode)
  • [in] BSTR bstrFolderPath:标题路径

返回

  • [out,retval] IDispatch** ppNewFolder:返回新建的文件夹


方法 CreateLabel

创建一个Label

参数

  • [in] BSTR bstrLabelName:Label名称

返回

  • [out,retval] IDispatch** ppLabelDisp:返回新建的标签 (ICALabel)

方法 NodeFromID

通过节点ID获得节点

参数

  • [in] LONG nID:节点ID

返回

  • [out,retval] IDispatch** ppDisp:节点 (ICANode)

方法 AttachmentFromID

通过附件ID获得附件

参数

  • [in] LONG nID:附件ID

返回

  • [out,retval] IDispatch** ppDisp:附件 (ICAAttachment)

方法 LabelFromID

通过Label ID获得Label

参数

  • [in] LONG nID:Label ID

返回

  • [out,retval] IDispatch** ppDisp:Label (ICALabel)

方法 Search

在书籍中搜索

参数

  • [in] BSTR bstrFind:需要搜索的文字
  • [in] LONG nFlags:搜索选项
  • [in] LONG nResultCount:搜索结果的数量

返回

  • [out,retval] IDispatch** ppResult:搜索结果 (ICANodeCollection)

说明

//nFlags的值
#define SEARCH_ARTICLE                  0x00000001         //搜索文章
#define SEARCH_TITLE                    0x00000002         //搜索标题
#define SEARCH_COMMENTS                 0x00000004         //搜索注释
#define SEARCH_KEYWORDS                 0x00000008         //搜索关键字
#define SEARCH_URL                      0x00000010         //搜索URL
#define SEARCH_ATTACHMENTS              0x00000020         //搜索附件

#define SEARCH_OPTIONS_MATCHCASE        0x00010000         //匹配大小写
#define SEARCH_OPTIONS_REGEXP           0x00020000         //正则表达式
#define SEARCH_OPTIONS_SQL_SEARCH       0x00040000         //SQL语句搜索
#define SEARCH_OPTIONS_MATCH_ALL_TEXT   0x00080000         //匹配完整文字

方法 SearchSupportIngoreCase

判断该书籍是否支持部分大小写搜索(SQL语句搜索方式)。脚本语言不支持该方法。高级语言通过返回值判断。
S_OK:支持
S_FALSE:不支持

参数

返回

方法 BeginUpdate

开始频繁更新一个书籍。当调用这个方法后,所有的更新操作,将不会通知软件界面更新。在调用该方法后,需要调用EndUpdate来结束这种状态。

参数

返回

方法 EndUpdate

调用该方法后,以后的更新操作,都将会通知软件界面更新。

参数

返回

方法 NodesFromURL

搜索URL等于指定值的所有节点。

参数

  • [in] BSTR bstrURL

返回

  • [out,retval] IDispatch** ppNodesDisp:结果节点 (ICANodeCollection)

方法 RecentArticles

获得最近保存的文章

参数

  • [in] LONG nCount:请求返回的文章数量

返回

  • [out,retval] IDispatch** ppArticlesDisp:结果文章 (ICANodeCollection)

方法 UnreadArticles

获得没有阅读的文章

参数

返回

  • [out,retval] IDispatch** ppArticlesDisp:结果文章 (ICANodeCollection)

方法 SetPasswordStorage

保留

参数

保留

返回

保留

属性 Nodes

获得书籍中所有的节点

参数

类型

  • get: [out,retval] IDispatch** pVal:结果 (ICANodeCollection)
  • put: 无

属性 Users

获得书籍中所有的用户

参数

类型

  • get: [out,retval] VARIANT* pvUsers:返回书籍中所有的用户。(SAFEARRAY,每一个元素都是VARIANT,包含一个BSTR字符串)。

方法 DeleteUser

从书籍中删除一个用户(不会删除用户数据)

参数

  • [in] BSTR bstrUser:用户名

返回

方法 ChangeUser

讲一个用户下面的文章,都更改成另外一个用户

参数

  • [in] BSTR bstrOldUser:旧的用户名
  • [in] BSTR bstrNewUser:新的用户名

返回

方法 GetFirstNode

获得书籍中第一个节点。(RootNode)

参数

返回

  • [out,retval] IDispatch** ppNodeDisp:返回第一个节点。(ICANode)

方法 GetPrevNode

获得前一个Node

参数

  • [in] IDispatch* pCurrNodeDisp:当前节点

返回

  • [out,retval] IDispatch** ppNodeDisp:前一个节点。(ICANode)

方法 GetNextNode

获得后一个Node

参数

  • [in] IDispatch* pCurrNodeDisp:当前节点

返回

  • [out,retval] IDispatch** ppNodeDisp:后一个节点。(ICANode)

方法 GetLastNode

获得最后一个节点

参数

返回

  • [out,retval] IDispatch** ppNodeDisp:最后一个节点。(ICANode)

方法 NodesFromLabels

获得具有相同几个Label的所有节点

参数

  • [in] VARIANT vLabels:标签数组。

返回

  • [out,retval] IDispatch** ppNodesDisp:返回节点(ICANodeCollection)

方法 SetBookPassword

设置书籍打开密码

参数

  • [in] BSTR bstrOldPassword:旧密码
  • [in] BSTR bstrNewPassword:新密码

返回

方法 SearchInNodes

在指定的文件夹内搜索

参数

  • [in] IDispatch* pNodesDisp:指定的文件夹(ICANodeCollection)
  • [in] BSTR bstrFind:进行查找的文字
  • [in] LONG nFlags:查找选项。参见Search方法。
  • [in] LONG nResultCount:需要返回的结果数量

返回

  • [out,retval] IDispatch** ppResult:搜索结果 (ICANodeCollection)

方法 RecentArticlesEx

获得最近的文章

参数

  • [in] LONG nCount:要求返回的文章数量
  • [in] LONG nFlags:选项:1:最近修改的文章;2:最近阅读的文章;其它:最近保存的文章

返回

  • [out,retval] IDispatch** ppArticlesDisp:最近的文章

属性 Icons

获得书籍中所有的Icon

参数

类型

  • [out, retval] IDispatch** pVal:返回所有的图标 (ICAIconCollection)

方法 AddIcon

添加一个Icon

参数

  • [in] BSTR bstrFileName:图标文件名

返回

  • [out,retval] IDispatch** ppIconDisp:返回新增的图标 (ICAIcon)

方法 IconFromID

通过ID获得图标

参数

  • [in] LONG nID

返回

  • [out,retval] IDispatch** ppDisp:返回图标 (ICAIcon)

方法 Compress

压缩书籍。有些书籍可能不支持该操作(和数据库有关)

参数

返回

方法 Backup

备份书籍。有些书籍可能不支持该操作。

参数

  • [in] BSTR bstrBackupPath:备份目录。

返回

方法 NodesFromSQL

通过SQL语句获得节点。

参数

  • [in] BSTR bstrSQL:SQL语句。只能包含条件,也就是WHERE之后的内容。

返回

  • [out,retval] IDispatch** ppNodesDisp:返回节点 (ICANodeCollection)

方法 NodeFromGUID

保留

参数

保留

返回

保留

方法 NodesFromAttribute

通过自定义属性,获得节点。可以获得具有相同属性名称和值的所有的节点。

参数

  • [in] BSTR bstrAttributeName:属性名称
  • [in] BSTR bstrAttributeValue:属性值

返回

  • [out,retval] IDispatch** ppNodesDisp:结果节点 (ICANodeCollection)

方法 GetBookSettings

获得自定义的书籍属性。

参数

  • [in] BSTR bstrSettingsName:属性名
  • [in] BSTR bstrDefaultValue:默认值

返回

  • [out,retval] BSTR* pbstrValue:结果属性值

方法 SetBookSettings

设置自定义的书籍属性

参数

  • [in] BSTR bstrSettingsName:属性名
  • [in] BSTR bstrSettingsValue:属性值

返回