<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>老魏的博客, Wiz, CyberArticle作者官方网站 &#187; Wiz二次开发</title>
	<atom:link href="http://weishijun.com/p/category/wiz-dev/feed" rel="self" type="application/rss+xml" />
	<link>http://weishijun.com</link>
	<description>Wiz, CyberArticle开发手记</description>
	<lastBuildDate>Sat, 08 Jan 2011 12:16:39 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Wiz导出插件</title>
		<link>http://weishijun.com/p/721</link>
		<comments>http://weishijun.com/p/721#comments</comments>
		<pubDate>Wed, 21 Apr 2010 12:51:41 +0000</pubDate>
		<dc:creator>魏 拾俊</dc:creator>
				<category><![CDATA[Wiz]]></category>
		<category><![CDATA[Wiz二次开发]]></category>

		<guid isPermaLink="false">http://weishijun.com/p/721</guid>
		<description><![CDATA[可以将Wiz里面的数据导出成HTML/Text文件。
导出成HTML文件：将Wiz里面的ziw文件，导出为HTML文件。选择一个文件夹，可以将该文件夹内的所有的文档导出。
&#160;
特点：可以套用模板，可以使用自定义的SEO字段作为输出的文件名。利用这两个功能，可以方便的制作网站。制作网站的例子：http://www.wiz.cn/。这个网站就是利用这个功能制作的。

&#160;
导出HTML对话框
&#160;

&#160;
导出到：设置导出后的磁盘文件夹。
套用模板：是否套用显示模板。
使用SEO作为文件名：使用文档的SEO作为导出的文件名。文档的SEO，可以在文档的属性对话框里面进行设置。如果没有选择这个选项，则使用文档标题作为导出后的文件名。如果文档的SEO或者标题没有包含.htm或者.html（也就是说没有包含扩展名），则添加.html作为文件名。
字符集：设置生成的HTML的字符集。&#160;&#160;&#160;&#160;unicode：UTF16编码。包含unicode文件签名；
&#160;&#160;&#160;&#160;UTF-8：UTF-8编码。不包含BOM签名；
&#160;&#160;&#160;&#160;UTF-8 with BOM：UTF-8编码，包含BOM签名
&#160;
说明：为什么使用SEO作为文件名：在制作网站的时候，一般使用有意义的英文名，更利于搜索引擎检索，也可以避免乱码等问题。因此推荐使用SEO，自定义导出后的文件名。Wiz默认情况下，使用文档的guid作为SEO名称。您可以在文档属性对话框里面，须改SEO名称。
&#160;
文件夹设置

&#160;
这个对话框，同样是为了配合制作网站而进行设置。导出的时候，会包含子文件夹。制作网站的时候，为了避免网址中出现中文，可以使用这个功能，设置子文件夹导出后的磁盘文件夹的名称。
&#160;
&#160;
导出Text对话框
&#160;

&#160;
和导出HTML类似。但是不能设置模板和文件命名方式。系统默认使用标题作为导出后文件名。
&#160;

]]></description>
		<wfw:commentRss>http://weishijun.com/p/721/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>使用VS2005添加WizKnowledge的ActiveX控件失败的解决办法</title>
		<link>http://weishijun.com/p/717</link>
		<comments>http://weishijun.com/p/717#comments</comments>
		<pubDate>Thu, 08 Apr 2010 12:47:04 +0000</pubDate>
		<dc:creator>魏 拾俊</dc:creator>
				<category><![CDATA[Wiz二次开发]]></category>

		<guid isPermaLink="false">http://weishijun.com/p/717</guid>
		<description><![CDATA[这是闫晓强朋友在进行WizKnowledge二次开发的时候，遇到的一个问题。
开发环境：Visual Studio 2005
开发语言：Visual Basic .NET


先来描述一下偶遇到的问题吧。
首先在vs2005中建立一个vb.net项目。
然后在菜单项 项目&#8211;&#62;添加引用中添加COM引用.

 
  
选择WizKMControls 1.0 类库之后。在工具箱中添加COM组件
 

 
点击 选择项，选择COM类库。
 

但是，当从工具箱中拖放新加的控件到窗体上时，提示以下错误.

 
在尝试了N次之后，无奈，失败，挫折感。。。。。。。。
还好，在wizKnowledge作者的指导下，用C#完成了COM组件的导入,解决了偶遇到的问题。
在随后的反思中，发现C#中的导入操作，用的是从类视图中进行导入。
然后我用同样的方法，在VB.net中进行导入。即先在类视图中添加引用。 
 

然后在工具箱中添加组件类库

 

 
 
完成这两步之后，一切终于正常了。
 
希望能对遇到同样问题的朋友有用。

]]></description>
		<wfw:commentRss>http://weishijun.com/p/717/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WizKnowledge二次开发征集活动</title>
		<link>http://weishijun.com/p/637</link>
		<comments>http://weishijun.com/p/637#comments</comments>
		<pubDate>Tue, 02 Feb 2010 09:22:03 +0000</pubDate>
		<dc:creator>魏 拾俊</dc:creator>
				<category><![CDATA[Wiz]]></category>
		<category><![CDATA[Wiz二次开发]]></category>

		<guid isPermaLink="false">http://weishijun.com/p/637</guid>
		<description><![CDATA[只要您会Html和JavaScript，就可以开发出强大的WizKnowledge插件来。目前WizBrother正在举办WizKnowledge插件开发大赛，凡是被收录的WizKnowledge插件，作者将会获得WizKnowledge永久VIP用户的奖励。
&#160;
二次开发技术区：
&#160;
WizKnowledge二次开发

&#160;
论坛综合讨论区
&#160;
http://cn.wizbrother.net/thread-2052-1-1.html
&#160;
]]></description>
		<wfw:commentRss>http://weishijun.com/p/637/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WizKnowledge 的ActiveX控件：IWizTagTreeCtrl</title>
		<link>http://weishijun.com/p/634</link>
		<comments>http://weishijun.com/p/634#comments</comments>
		<pubDate>Tue, 02 Feb 2010 06:57:14 +0000</pubDate>
		<dc:creator>魏 拾俊</dc:creator>
				<category><![CDATA[Wiz]]></category>
		<category><![CDATA[Wiz二次开发]]></category>

		<guid isPermaLink="false">http://weishijun.com/p/634</guid>
		<description><![CDATA[
IWizTagTreeCtrl是WizKMControls.dll所包含的一个ActiveX控件，利用这个控件，可以显示WizKnowledge的标签结构，以便用户选择一个或者多个WizKnowledge标签。同时，这个控件还包含了各种用户操作，用户通过右键菜单，可以实现多种操作。
&#160;

您可以在网页里面直接使用这个控件，也可以在其它的高级语言里面使用，例如C++，VB，C#，Delphi等等。
&#160;

ProgID：WizKMControls.WizTagTreeCtrl
文件：WizKMControls.dll

&#160;
&#160;
[&#160;&#160;&#160;&#160;object,&#160;&#160;&#160;&#160;uuid(30799F2F-3377-4326-818E-1A4BF3CB715A),&#160;&#160;&#160;&#160;dual,&#160;&#160;&#160;&#160;nonextensible,&#160;&#160;&#160;&#160;helpstring("IWizTagTreeCtrl Interface"),&#160;&#160;&#160;&#160;pointer_default(unique)]interface IWizTagTreeCtrl : IDispatch{
&#160;&#160;&#160;&#160;//获得/设置数据库对象，类型为IWizDatabase&#160;&#160;&#160;&#160;[propget, id(1), helpstring("property Database")] HRESULT Database([out, retval] IDispatch** pVal);&#160;&#160;&#160;&#160;[propput, id(1), helpstring("property Database")] HRESULT Database([in] IDispatch* newVal);
&#160;&#160;&#160;&#160;//获得/设置用户选中的标签。类型为IWizTagCollection&#160;&#160;&#160;&#160;[propget, id(2), helpstring("property SelectedTags")] HRESULT SelectedTags([out, retval] IDispatch** pVal);&#160;&#160;&#160;&#160;[propput, id(2), helpstring("property SelectedTags")] HRESULT SelectedTags([in] IDispatch* newVal);
&#160;&#160;&#160;&#160;//获得/设置状态section&#160;&#160;&#160;&#160;[propget, id(3), helpstring("property StateSection")] HRESULT StateSection([out, retval] BSTR* pVal);&#160;&#160;&#160;&#160;[propput, id(3), helpstring("property StateSection")] HRESULT StateSection([in] BSTR newVal);
&#160;&#160;&#160;&#160;//获得/设置是否显示边框&#160;&#160;&#160;&#160;[propget, id(4), helpstring("property Border")] HRESULT Border([out, [...]]]></description>
		<wfw:commentRss>http://weishijun.com/p/634/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WizKnowledge 的ActiveX控件：IWizStyleListBox</title>
		<link>http://weishijun.com/p/633</link>
		<comments>http://weishijun.com/p/633#comments</comments>
		<pubDate>Tue, 02 Feb 2010 06:57:08 +0000</pubDate>
		<dc:creator>魏 拾俊</dc:creator>
				<category><![CDATA[Wiz]]></category>
		<category><![CDATA[Wiz二次开发]]></category>

		<guid isPermaLink="false">http://weishijun.com/p/633</guid>
		<description><![CDATA[

IWizStyleListBox是WizKMControls.dll所包含的一个ActiveX控件，利用这个控件，可以显示WizKnowledge的样式列表，以便用户选择一个WizKnowledge样式。同时，这个控件还包含了各种用户操作，用户通过右键菜单，可以实现多种操作。

&#160;
您可以在网页里面直接使用这个控件，也可以在其它的高级语言里面使用，例如C++，VB，C#，Delphi等等。
&#160;

ProgID：WizKMControls.WizStyleListBox
文件：WizKMControls.dll

&#160;
[&#160;&#160;&#160;&#160;object,&#160;&#160;&#160;&#160;uuid(F5AE7BE3-B10A-464A-8A4C-AA8D33E9B272),&#160;&#160;&#160;&#160;dual,&#160;&#160;&#160;&#160;nonextensible,&#160;&#160;&#160;&#160;helpstring("IWizStyleListBox Interface"),&#160;&#160;&#160;&#160;pointer_default(unique)]interface IWizStyleListBox : IDispatch{
&#160;&#160;&#160;&#160;//获得/设置数据库对象&#160;&#160;&#160;&#160;[propget, id(1), helpstring("property Database")] HRESULT Database([out, retval] IDispatch** pVal);&#160;&#160;&#160;&#160;[propput, id(1), helpstring("property Database")] HRESULT Database([in] IDispatch* newVal);
&#160;&#160;&#160;&#160;//获得/设置选中的样式，类型为IWizStyle&#160;&#160;&#160;&#160;[propget, id(2), helpstring("property SelectedStyle")] HRESULT SelectedStyle([out, retval] IDispatch** pVal);&#160;&#160;&#160;&#160;[propput, id(2), helpstring("property SelectedStyle")] HRESULT SelectedStyle([in] IDispatch* newVal);
&#160;&#160;&#160;&#160;//获得/设置状态section&#160;&#160;&#160;&#160;[propget, id(3), helpstring("property StateSection")] HRESULT StateSection([out, retval] BSTR* pVal);&#160;&#160;&#160;&#160;[propput, id(3), helpstring("property StateSection")] HRESULT StateSection([in] BSTR newVal);
&#160;&#160;&#160;&#160;//获得/设置是否显示边框&#160;&#160;&#160;&#160;[propget, id(4), helpstring("property Border")] HRESULT Border([out, [...]]]></description>
		<wfw:commentRss>http://weishijun.com/p/633/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WizKnowledge 的ActiveX控件：IWizDocumentListCtrl</title>
		<link>http://weishijun.com/p/632</link>
		<comments>http://weishijun.com/p/632#comments</comments>
		<pubDate>Tue, 02 Feb 2010 06:56:59 +0000</pubDate>
		<dc:creator>魏 拾俊</dc:creator>
				<category><![CDATA[Wiz]]></category>
		<category><![CDATA[Wiz二次开发]]></category>

		<guid isPermaLink="false">http://weishijun.com/p/632</guid>
		<description><![CDATA[


IWizDocumentListCtrl是WizKMControls.dll所包含的一个ActiveX控件，利用这个控件，可以显示WizKnowledge的文档列表，以便用户选择一个或者多个WizKnowledge文档。同时，这个控件还包含了各种用户操作，用户通过右键菜单，可以实现多种操作。

&#160;
您可以在网页里面直接使用这个控件，也可以在其它的高级语言里面使用，例如C++，VB，C#，Delphi等等。
&#160;

ProgID：WizKMControls.WizDocumentListCtrl
文件：WizKMControls.dll

&#160;
[&#160;&#160;&#160;&#160;object,&#160;&#160;&#160;&#160;uuid(C128ECE0-A006-4E57-8054-4CBC49818231),&#160;&#160;&#160;&#160;dual,&#160;&#160;&#160;&#160;nonextensible,&#160;&#160;&#160;&#160;helpstring("IWizDocumentListCtrl Interface"),&#160;&#160;&#160;&#160;pointer_default(unique)]interface IWizDocumentListCtrl : IDispatch{
&#160;&#160;&#160;&#160;//获得/设置数据库对象&#160;&#160;&#160;&#160;[propget, id(1), helpstring("property Database")] HRESULT Database([out, retval] IDispatch** pVal);&#160;&#160;&#160;&#160;[propput, id(1), helpstring("property Database")] HRESULT Database([in] IDispatch* newVal);
&#160;&#160;&#160;&#160;//获得/设置用户选中的文档列表，类型为IWizDocumentCollection&#160;&#160;&#160;&#160;[propget, id(2), helpstring("property SelectedDocuments")] HRESULT SelectedDocuments([out, retval] IDispatch** pVal);&#160;&#160;&#160;&#160;[propput, id(2), helpstring("property SelectedDocuments")] HRESULT SelectedDocuments([in] IDispatch* newVal);
&#160;&#160;&#160;&#160;//获得/设置状态section&#160;&#160;&#160;&#160;[propget, id(3), helpstring("property StateSection")] HRESULT StateSection([out, retval] BSTR* pVal);&#160;&#160;&#160;&#160;[propput, id(3), helpstring("property StateSection")] HRESULT StateSection([in] BSTR newVal);
&#160;&#160;&#160;&#160;//获得/设置是否显示边框&#160;&#160;&#160;&#160;[propget, id(4), helpstring("property Border")] HRESULT Border([out, [...]]]></description>
		<wfw:commentRss>http://weishijun.com/p/632/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WizKnowledge 的ActiveX控件：IWizDocumentListCtrl_3</title>
		<link>http://weishijun.com/p/631</link>
		<comments>http://weishijun.com/p/631#comments</comments>
		<pubDate>Tue, 02 Feb 2010 06:56:50 +0000</pubDate>
		<dc:creator>魏 拾俊</dc:creator>
				<category><![CDATA[Wiz]]></category>
		<category><![CDATA[Wiz二次开发]]></category>

		<guid isPermaLink="false">http://weishijun.com/p/631</guid>
		<description><![CDATA[



IWizDocumentAttachmentListCtrl是WizKMControls.dll所包含的一个ActiveX控件，利用这个控件，可以显示WizKnowledge的文档列表，以便用户选择一个或者多个WizKnowledge文档。同时，这个控件还包含了各种用户操作，用户通过右键菜单，可以实现多种操作。

&#160;
您可以在网页里面直接使用这个控件，也可以在其它的高级语言里面使用，例如C++，VB，C#，Delphi等等。
&#160;

ProgID：WizKMControls.WizDocumentAttachmentListCtrl
文件：WizKMControls.dll

&#160;
[&#160;&#160;&#160;&#160;object,&#160;&#160;&#160;&#160;uuid(39B2717D-7FDA-4EDD-91A4-0173FD35B871),&#160;&#160;&#160;&#160;dual,&#160;&#160;&#160;&#160;nonextensible,&#160;&#160;&#160;&#160;helpstring("IWizDocumentAttachmentListCtrl Interface"),&#160;&#160;&#160;&#160;pointer_default(unique)]interface IWizDocumentAttachmentListCtrl : IDispatch{
&#160;&#160;&#160;&#160;//获得/设置数据库对象，类型为IWizDatabase&#160;&#160;&#160;&#160;[propget, id(1), helpstring("property Database")] HRESULT Database([out, retval] IDispatch** pVal);&#160;&#160;&#160;&#160;[propput, id(1), helpstring("property Database")] HRESULT Database([in] IDispatch* newVal);
&#160;&#160;&#160;&#160;//获得/设置附件列表所属的文档对象，类型为IWizDocument&#160;&#160;&#160;&#160;[propget, id(2), helpstring("property Document")] HRESULT Document([out, retval] IDispatch** pVal);&#160;&#160;&#160;&#160;[propput, id(2), helpstring("property Document")] HRESULT Document([in] IDispatch* newVal);
&#160;&#160;&#160;&#160;//获得/设置用户选中的附件对象，类型为IWizDocumentAttachmentCollection&#160;&#160;&#160;&#160;[propget, id(3), helpstring("property SelectedAttachments")] HRESULT SelectedAttachments([out, retval] IDispatch** pVal);&#160;&#160;&#160;&#160;[propput, id(3), helpstring("property SelectedAttachments")] HRESULT SelectedAttachments([in] IDispatch* newVal);
&#160;&#160;&#160;&#160;//获得/设置是否显示边框&#160;&#160;&#160;&#160;[propget, id(4), helpstring("property Border")] HRESULT Border([out, [...]]]></description>
		<wfw:commentRss>http://weishijun.com/p/631/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WizKnowledge 的ActiveX控件：IWizFolderTreeCtrl</title>
		<link>http://weishijun.com/p/630</link>
		<comments>http://weishijun.com/p/630#comments</comments>
		<pubDate>Tue, 02 Feb 2010 06:05:46 +0000</pubDate>
		<dc:creator>魏 拾俊</dc:creator>
				<category><![CDATA[Wiz]]></category>
		<category><![CDATA[Wiz二次开发]]></category>

		<guid isPermaLink="false">http://weishijun.com/p/630</guid>
		<description><![CDATA[IWizFolderTreeCtrl是WizKMControls.dll所包含的一个ActiveX控件，利用这个控件，可以显示WizKnowledge的目录结构，以便用户选择一个WizKnowledge文件夹。同时，这个控件还包含了各种用户操作，用户通过右键菜单，可以实现多种操作。
&#160;
您可以在网页里面直接使用这个控件，也可以在其它的高级语言里面使用，例如C++，VB，C#，Delphi等等。在WizKnowledge自带的博客下栽插件中，有这个控件的使用例子(在html里面使用)。您可以直接查看插件的源代码，来获得使用方法。

&#160;

ProgID：WizKMControls.WizFolderTreeCtrl
文件：WizKMControls.dll

&#160;
&#160;

[&#160;&#160;&#160;&#160;object,&#160;&#160;&#160;&#160;uuid(C4CE9188-C153-49D1-BC69-345B1AD693E8),&#160;&#160;&#160;&#160;dual,&#160;&#160;&#160;&#160;nonextensible,&#160;&#160;&#160;&#160;helpstring("IWizFolderTreeCtrl Interface"),&#160;&#160;&#160;&#160;pointer_default(unique)]interface IWizFolderTreeCtrl : IDispatch{
&#160;&#160;&#160;&#160;//获得/设置数据库对象，类型为IWizDatabase&#160;&#160;&#160;&#160;[propget, id(1), helpstring("property Database")] HRESULT Database([out, retval] IDispatch** pVal);&#160;&#160;&#160;&#160;[propput, id(1), helpstring("property Database")] HRESULT Database([in] IDispatch* newVal);
&#160;&#160;&#160;&#160;//获得/设置用户选中的文件夹对象，类型为IWizFolder&#160;&#160;&#160;&#160;[propget, id(2), helpstring("property SelectedFolder")] HRESULT SelectedFolder([out, retval] IDispatch** pVal);&#160;&#160;&#160;&#160;[propput, id(2), helpstring("property SelectedFolder")] HRESULT SelectedFolder([in] IDispatch* newVal);
&#160;&#160;&#160;&#160;//获得/设置用来保存文件夹状态的section名称&#160;&#160;&#160;&#160;[propget, id(3), helpstring("property StateSection")] HRESULT StateSection([out, retval] BSTR* pVal);&#160;&#160;&#160;&#160;[propput, id(3), helpstring("property StateSection")] HRESULT StateSection([in] BSTR newVal);
&#160;&#160;&#160;&#160;//获得/设置是否显示边框&#160;&#160;&#160;&#160;[propget, id(4), helpstring("property Border")] HRESULT Border([out, [...]]]></description>
		<wfw:commentRss>http://weishijun.com/p/630/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WizKnowledge COM对象之IWizIECapture</title>
		<link>http://weishijun.com/p/628</link>
		<comments>http://weishijun.com/p/628#comments</comments>
		<pubDate>Tue, 02 Feb 2010 05:43:42 +0000</pubDate>
		<dc:creator>魏 拾俊</dc:creator>
				<category><![CDATA[Wiz]]></category>
		<category><![CDATA[Wiz二次开发]]></category>

		<guid isPermaLink="false">http://weishijun.com/p/628</guid>
		<description><![CDATA[

IWizIECapture是NPWizWebCapture.dll包含的一个COM对象。IWizIECapture主要用来保存网页，例如在IE里面保存网页。
&#160;
IWizIECapture可以在浏览器内程序调用，让您的浏览器程序很容易的增加网页保存功能。

&#160;

ProgID：WizWebCapture.WizIECapture
文件：NPWizWebCapture.dll

&#160;
&#160;

[&#160;&#160;&#160;&#160;object,&#160;&#160;&#160;&#160;uuid(502644EE-7301-457B-A77D-8BC3329AEA21),&#160;&#160;&#160;&#160;dual,&#160;&#160;&#160;&#160;nonextensible,&#160;&#160;&#160;&#160;helpstring("IWizIECapture Interface"),&#160;&#160;&#160;&#160;pointer_default(unique)]interface IWizIECapture : IDispatch{
&#160;&#160;&#160;&#160;//保存一个网页。pHtmlDocument2Disp：IHTMLDocument2对象；vbSaveSel：是否保存选中部分；返回值：保存成功的IWizDocument对象&#160;&#160;&#160;&#160;[id(1), helpstring("method Save")] HRESULT Save([in] IDispatch* pHtmlDocument2Disp, [in] VARIANT_BOOL vbSaveSel, [out,retval] IDispatch** ppWizDocumentDisp);
&#160;&#160;&#160;&#160;//在后台保存网页，避免一直占用浏览器前台，让用户无法操作。pHtmlDocument2Disp：IHTMLDocument2对象；vbSaveSel：是否保存选中部分。&#160;&#160;&#160;&#160;[id(2), helpstring("method BackgroundSave")] HRESULT BackgroundSave([in] IDispatch* pHtmlDocument2Disp, [in] VARIANT_BOOL vbSaveSel);
&#160;&#160;&#160;&#160;//获得或者设置数据库路径&#160;&#160;&#160;&#160;[propget, id(3), helpstring("property DatabasePath")] HRESULT DatabasePath([out, retval] BSTR* pVal);&#160;&#160;&#160;&#160;[propput, id(3), helpstring("property DatabasePath")] HRESULT DatabasePath([in] BSTR newVal);};

在WizKnowledge安装目录下面的save.htm文件中，有这个对象的使用方法：
&#160;

function OnContextMenu(){&#160;&#160;&#160;&#160;var objCapture= null;&#160;&#160;&#160;&#160;//&#160;&#160;&#160;&#160;try&#160;&#160;&#160;&#160;{&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;objCapture = new ActiveXObject(&#8220;WizWebCapture.WizIECapture&#8221;);&#160;&#160;&#160;&#160;}&#160;&#160;&#160;&#160;catch ( e)&#160;&#160;&#160;&#160;{&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;alert(&#8220;WizBrother WebCapture haven&#8217;t installed in your computer!&#8221;);&#160;&#160;&#160;&#160;}&#160;&#160;&#160;&#160;//&#160;&#160;&#160;&#160;try&#160;&#160;&#160;&#160;{&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;objCapture.BackgroundSave(external.menuArguments.document, [...]]]></description>
		<wfw:commentRss>http://weishijun.com/p/628/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WizKnowledge COM对象之IWizBatchDownloader</title>
		<link>http://weishijun.com/p/627</link>
		<comments>http://weishijun.com/p/627#comments</comments>
		<pubDate>Tue, 02 Feb 2010 05:33:27 +0000</pubDate>
		<dc:creator>魏 拾俊</dc:creator>
				<category><![CDATA[Wiz]]></category>
		<category><![CDATA[Wiz二次开发]]></category>

		<guid isPermaLink="false">http://weishijun.com/p/627</guid>
		<description><![CDATA[
IWizBatchDownloader是WizKMControls.dll包含的一个COM对象。IWizBatchDownloader主要用来进行批量下载网页或者导入文档。
&#160;
IWizBatchDownloader可以批量下载网页，或者导入文件，并且允许在导入后合并文档。在WizKnowledge自带的博客下载插件以及导入文件插件中，都使用了这个对象，您可以直接查看插件的源代码，获得一些使用的例子。

&#160;

ProgID：WizKMControls.WizBatchDownloader
文件：WizKMControls.dll

&#160;
&#160;

[&#160;&#160;&#160;&#160;object,&#160;&#160;&#160;&#160;uuid(49C2236A-6DA1-4AA9-BAD7-BF0DA94535A4),&#160;&#160;&#160;&#160;dual,&#160;&#160;&#160;&#160;nonextensible,&#160;&#160;&#160;&#160;helpstring("IWizBatchDownloader Interface"),&#160;&#160;&#160;&#160;pointer_default(unique)]interface IWizBatchDownloader : IDispatch{
&#160;&#160;&#160;&#160;//添加一个下载任务。&#160;&#160;&#160;&#160;//bstrDatabasePath：数据库路径&#160;&#160;&#160;&#160;//bstrLocation：文档保存位置&#160;&#160;&#160;&#160;//bstrURL：需要下载的网页URL或者需要导入的文件名。可以是doc/text/ppt/xls/jpg/bmp/png等等文件&#160;&#160;&#160;&#160;//bstrLinkText：链接文字，可以为空字符串&#160;&#160;&#160;&#160;//nUpdateDocumentFlags：更新文档的选项，请参看IWizDocument.UpdateDocument方法&#160;&#160;&#160;&#160;//vbLinkTextAsTitle：是否将链接文字作为文档标题&#160;&#160;&#160;&#160;//vbExecuteScript：是否执行html里面的代码&#160;&#160;&#160;&#160;[id(1), helpstring("method AddJob")] HRESULT AddJob([in] BSTR bstrDatabasePath, [in] BSTR bstrLocation, [in] BSTR bstrURL, [in] BSTR bstrLinkText, [in] LONG nUpdateDocumentFlags, [in] VARIANT_BOOL vbLinkTextAsTitle, [in] VARIANT_BOOL vbExecuteScript);
&#160;&#160;&#160;&#160;//从text文件添加链接。text文件里面，每行一个链接。&#160;&#160;&#160;&#160;//bstrTextFileName：text文件名。&#160;&#160;&#160;&#160;//其它参数同AddJob方法&#160;&#160;&#160;&#160;[id(2), helpstring("method AddJobsFromTextFile")] HRESULT AddJobsFromTextFile([in] BSTR bstrDatabasePath, [in] BSTR bstrLocation, [in] BSTR bstrTextFileName, [in] LONG nUpdateDocumentFlags, [in] VARIANT_BOOL vbExecuteScript);
&#160;&#160;&#160;&#160;//显示批量下载窗口。vbStartDownload：是否自动开始下载&#160;&#160;&#160;&#160;[id(3), helpstring("method ShowWindow")] HRESULT ShowWindow(VARIANT_BOOL vbStartDownload);
&#160;&#160;&#160;&#160;//获得/设置是否在下载完成后，将下载的文档合并成一个新的文档&#160;&#160;&#160;&#160;[propget, id(4), helpstring("property CombineDocuments")] [...]]]></description>
		<wfw:commentRss>http://weishijun.com/p/627/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WizKnowledge COM对象之IWizCommonUI</title>
		<link>http://weishijun.com/p/626</link>
		<comments>http://weishijun.com/p/626#comments</comments>
		<pubDate>Tue, 02 Feb 2010 03:35:24 +0000</pubDate>
		<dc:creator>魏 拾俊</dc:creator>
				<category><![CDATA[Wiz]]></category>
		<category><![CDATA[Wiz二次开发]]></category>

		<guid isPermaLink="false">http://weishijun.com/p/626</guid>
		<description><![CDATA[IWizCommonUI是WizKMControls.dll包含的一个COM对象。IWizCommonUI主要提供了一些常用的对话框，界面操作，二次开发中常用的功能等等。
&#160;
IWizCommonUI提供了一些WizKnowledge的一些常用的对话框，例如获得用户信息，添加文档到日历对话框，选项对话框，新建/编辑日历事件对话框，关于对话框等等。

&#160;
IWizCommonUI还提供了一些通用的对话框，例如提示用户输入一个整数，输入一段文字，选择一个文件夹或者文件等等。
IWizCommonUI还提供了一些常用的操作，例如获得一个文件夹下面的文件或者子文件夹，注册表操作等等。
&#160;
&#160;

ProgID：WizKMControls.WizCommonUI
文件：WizKMControls.dll

&#160;
&#160;

[&#160;&#160;&#160;&#160;object,&#160;&#160;&#160;&#160;uuid(B671315F-B6FE-4799-AE50-AEA0848FBA05),&#160;&#160;&#160;&#160;dual,&#160;&#160;&#160;&#160;nonextensible,&#160;&#160;&#160;&#160;helpstring("IWizCommonUI Interface"),&#160;&#160;&#160;&#160;pointer_default(unique)]interface IWizCommonUI : IDispatch{
&#160;&#160;&#160;&#160;//显示一个对话框，请求用户输入用户名和密码。hWnd：当前窗口；pbstrUserName：返回用户输入的用户名；pbstrPassword：返回用户输入的密码&#160;&#160;&#160;&#160;[id(1), helpstring("method QueryUserAccount")] HRESULT QueryUserAccount([in] LONGLONG hWnd, [in, out] BSTR* pbstrUserName, [in, out] BSTR* pbstrPassword);
&#160;&#160;&#160;&#160;//添加文档到日历中。这个方法会出现一个对话框，提示用户输入参数。pDocumentDisp：文档对象，类型为IWizDocument；pbRet：用户是否点击了确定按钮&#160;&#160;&#160;&#160;[id(2), helpstring("method AddDocumentToCalendar")] HRESULT AddDocumentToCalendar([in] IDispatch* pDocumentDisp, [out,retval] VARIANT_BOOL* pbRet);
&#160;&#160;&#160;&#160;//创建一个日历事件。显示一个对话框，提示用户输入某些参数。pDatabaseDisp：数据库对象；dtEvent：事件开始时间；ppDocumentDisp：成功创建事件后，自动生成的文档&#160;&#160;&#160;&#160;[id(3), helpstring("method CreateCalendarEvent")] HRESULT CreateCalendarEvent([in] IDispatch* pDatabaseDisp, [in] DATE dtEvent, [out,retval] IDispatch** ppDocumentDisp);
&#160;&#160;&#160;&#160;//编辑日历事件。显示一个对话框，提示用户编辑。pDocumentDisp：文档对象，类型为IWizDocument；pbRet：用户是否点击了确定按钮&#160;&#160;&#160;&#160;[id(4), helpstring("method EditCalendarEvent")] HRESULT EditCalendarEvent([in] IDispatch* pDocumentDisp, [out,retval] VARIANT_BOOL* pbRet);
&#160;&#160;&#160;&#160;//显示关于对话框。bstrModuleName：EXE文件名&#160;&#160;&#160;&#160;[id(5), helpstring("method AboutBox")] HRESULT AboutBox([in] BSTR bstrModuleName);
&#160;&#160;&#160;&#160;//显示选项对话框。nFlags：保留，必须为0&#160;&#160;&#160;&#160;[id(6), [...]]]></description>
		<wfw:commentRss>http://weishijun.com/p/626/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WizKnowledge COM对象之IWizStyle</title>
		<link>http://weishijun.com/p/625</link>
		<comments>http://weishijun.com/p/625#comments</comments>
		<pubDate>Mon, 01 Feb 2010 13:59:08 +0000</pubDate>
		<dc:creator>魏 拾俊</dc:creator>
				<category><![CDATA[Wiz]]></category>
		<category><![CDATA[Wiz二次开发]]></category>

		<guid isPermaLink="false">http://weishijun.com/p/625</guid>
		<description><![CDATA[IWizStyle是WizKMCore.dll包含的一个COM对象。样式对象必须隶属于一个数据库，因此您不能直接创建这个对象，而是需要通过IWizDatabase对象来获得数据库中的样式对象。
通过IWizDatabase.Styles，可以获得数据库的样式信息。
&#160;
IWizStyleCollection是文件夹对象IWizStyle的一个集合（数据），当需要返回一个IWizStyle集合的时候，会返回这个对象，例如IWizDatabase.Styles属性，就会返回这个对象。

这个对象实现了IEnumXXXX&#160;接口，这样在某些语言内，可以通过fore_each来枚举集合内的每一个对象。
&#160;
一个文档只能有一个样式，或者没有。样式主要用来突出显示某些特殊的文档，可以用来给文档进行分类。当点击某一个样式的时候，会列出所有具有这个样式的文档。

文件：WizKMCore.dll

&#160;
IWizStyleCollection 对象

[&#160;&#160;&#160;&#160;object,&#160;&#160;&#160;&#160;uuid(E6A5A90D-5766-428F-BE25-AFC9D641CB88),&#160;&#160;&#160;&#160;dual,&#160;&#160;&#160;&#160;nonextensible,&#160;&#160;&#160;&#160;helpstring("IWizStyleCollection Interface"),&#160;&#160;&#160;&#160;pointer_default(unique)]interface IWizStyleCollection : IDispatch{
&#160;&#160;&#160;&#160;//生成一个新的IEnumXXXX类型的接口，可以在某些语言内使用for_each类型的语法。&#160;&#160;&#160;&#160;[id(DISPID_NEWENUM), propget] HRESULT _NewEnum([out, retval] IUnknown** ppUnk);
&#160;&#160;&#160;&#160;//获得某一个对象。Index：索引值，以0开始；返回值：IWizStyle对象&#160;&#160;&#160;&#160;[id(DISPID_VALUE), propget] HRESULT Item([in] long Index, [out, retval] IDispatch** pVal);
&#160;&#160;&#160;&#160;//获得集合内元素的数量&#160;&#160;&#160;&#160;[id(1), propget] HRESULT Count([out, retval] long * pVal);};

&#160;
&#160;
IWizStyle对象
&#160;

[&#160;&#160;&#160;&#160;object,&#160;&#160;&#160;&#160;uuid(77C6F00C-6A41-4A14-B3E6-986401D5A5D5),&#160;&#160;&#160;&#160;dual,&#160;&#160;&#160;&#160;nonextensible,&#160;&#160;&#160;&#160;helpstring("IWizStyle Interface"),&#160;&#160;&#160;&#160;pointer_default(unique)]interface IWizStyle : IDispatch{
&#160;&#160;&#160;&#160;//获得样式的GUID&#160;&#160;&#160;&#160;[propget, id(1), helpstring("property GUID")] HRESULT GUID([out, retval] BSTR* pVal);
&#160;&#160;&#160;&#160;//获得/设置样式的名称&#160;&#160;&#160;&#160;[propget, id(2), helpstring("property Name")] HRESULT Name([out, retval] BSTR* pVal);&#160;&#160;&#160;&#160;[propput, id(2), helpstring("property Name")] HRESULT Name([in] BSTR newVal);
&#160;&#160;&#160;&#160;//获得/设置样式的样式&#160;&#160;&#160;&#160;[propget, [...]]]></description>
		<wfw:commentRss>http://weishijun.com/p/625/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WizKnowledge COM对象之IWizMeta，将设置信息保存到数据库中</title>
		<link>http://weishijun.com/p/624</link>
		<comments>http://weishijun.com/p/624#comments</comments>
		<pubDate>Mon, 01 Feb 2010 13:59:02 +0000</pubDate>
		<dc:creator>魏 拾俊</dc:creator>
				<category><![CDATA[Wiz]]></category>
		<category><![CDATA[Wiz二次开发]]></category>

		<guid isPermaLink="false">http://weishijun.com/p/624</guid>
		<description><![CDATA[
IWizMeta是WizKMCore.dll包含的一个COM对象。Meta对象必须隶属于一个数据库，因此您不能直接创建这个对象，而是需要通过IWizDatabase对象来获得数据库中的Meta对象。
通过IWizDatabase.Metas，可以获得数据库的所有Meta信息。
&#160;

Meta，就像ini文件里面的一个记录。Meta信息保存在数据库中，不和服务器同步。利用meta信息，您可以像利用ini文件那样，存储一些用户信息。在WizKnowledge自带的博客发布插件里面，就利用了Meta对象来存储用户数据。
&#160;

&#160;&#160;&#160;&#160;var objApp = new ActiveXObject(&#8220;WizExplorer.WizExplorerApp&#8221;);&#160;&#160;&#160;&#160;var database = objApp.Database;&#160;&#160;&#160;&#160;var settings_meta = &#8220;PublishHtml&#8221;;&#160;&#160;&#160;&#160;//&#160;&#160;&#160;&#160;&#8230;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;settings_meta = &#8220;PublishHtml_&#8221; + selected_documents.Item(0).Parent.RootFolder.Name;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//从数据库获得用户设置信息，来进行初始化&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;textAddress.value = database.Meta(settings_meta, &#8220;Address&#8221;);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;textPort.value = database.Meta(settings_meta, &#8220;Port&#8221;);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;textUserName.value = database.Meta(settings_meta, &#8220;UserName&#8221;);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;textPassword.value = database.Meta(settings_meta, &#8220;Password&#8221;);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;textImageWidth.value = database.Meta(settings_meta, &#8220;ImageWidth&#8221;);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;checkAutoAddMoreTag.checked = database.Meta(settings_meta, &#8220;AutoAddMoreTag&#8221;) == &#8220;1&#8243;;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;textCategory.value = database.Meta(settings_meta, &#8220;Category&#8221;);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//&#160;&#160;&#160;&#160;
&#160;&#160;&#160;&#160;&#8230;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//将用户数据保存到数据库里面&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;database.Meta(settings_meta, &#8220;Address&#8221;) = address;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;database.Meta(settings_meta, &#8220;Port&#8221;) = port;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;database.Meta(settings_meta, &#8220;UserName&#8221;) = username;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;database.Meta(settings_meta, &#8220;Password&#8221;) = password;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;database.Meta(settings_meta, &#8220;ImageWidth&#8221;) = textImageWidth.value;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;database.Meta(settings_meta, &#8220;AutoAddMoreTag&#8221;) = [...]]]></description>
		<wfw:commentRss>http://weishijun.com/p/624/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WizKnowledge COM对象之IWizSettings，将设置信息保存到Xml设置文件中</title>
		<link>http://weishijun.com/p/623</link>
		<comments>http://weishijun.com/p/623#comments</comments>
		<pubDate>Mon, 01 Feb 2010 13:58:54 +0000</pubDate>
		<dc:creator>魏 拾俊</dc:creator>
				<category><![CDATA[Wiz]]></category>
		<category><![CDATA[Wiz二次开发]]></category>

		<guid isPermaLink="false">http://weishijun.com/p/623</guid>
		<description><![CDATA[

IWizSettings是WizKMCore.dll包含的一个COM对象。IWizSettings对象独立于数据库，因此您可以直接创建这个对象。
&#160;
IWizSettings主要用来操作WizKnowledge用户存储目录的WizKM.xml文件中，该文件名，可以通过WizExploer.WizExploerApp对象来获得这个文件名

&#160;
和IWizMeta不同，IWizSettings是保存在独立的Xml文件中，和数据库无关，是全局的设置。
&#160;
在WizKnowledge自带的朗读插件里面，有这个对象的使用方法：
&#160;

&#160;&#160;&#160;&#160;var objApp = new ActiveXObject(&#8220;WizExplorer.WizExplorerApp&#8221;);&#160;&#160;&#160;&#160;var objSettings = new ActiveXObject(&#8220;WizKMCore.WizSettings&#8221;);&#160;&#160;&#160;&#160;objSettings.Open(objApp.SettingsFileName);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//打开用户设置文件&#160;&#160;&#160;&#160;&#8230;&#160;&#160;&#160;&#160;var initName = objSettings.StringValue(&#8220;Plugin_Speech&#8221;, &#8220;VocieName&#8221;);&#160;&#160;&#160;&#160;//从设置里面获得用户信息&#160;&#160;&#160;&#160;&#8230;&#160;&#160;&#160;&#160;objSettings.StringValue(&#8220;Plugin_Speech&#8221;, &#8220;VocieName&#8221;) = selectVoiceName.value;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//保存用户信息到设置文件里面

&#160;

ProgID：WizKMCore.WizSettings
文件：WizKMCore.dll

IWizSettings对象
&#160;

[&#160;&#160;&#160;&#160;object,&#160;&#160;&#160;&#160;uuid(E3C896AD-3E1F-453E-800C-07A1837E2F23),&#160;&#160;&#160;&#160;dual,&#160;&#160;&#160;&#160;nonextensible,&#160;&#160;&#160;&#160;helpstring("IWizSettings Interface"),&#160;&#160;&#160;&#160;pointer_default(unique)]interface IWizSettings : IDispatch{
&#160;&#160;&#160;&#160;//打开设置文件&#160;&#160;&#160;&#160;[id(1), helpstring("method Open")] HRESULT Open([in] BSTR bstrFileName);
&#160;&#160;&#160;&#160;//关闭设置文件&#160;&#160;&#160;&#160;[id(2), helpstring("method Close")] HRESULT Close(void);
&#160;&#160;&#160;&#160;//判断设置文件是否已经修改了&#160;&#160;&#160;&#160;[propget, id(3), helpstring("property IsDirty")] HRESULT IsDirty([out, retval] VARIANT_BOOL* pVal);
&#160;&#160;&#160;&#160;//获得/设置一个字符串信息&#160;&#160;&#160;&#160;[propget, id(4), helpstring("property StringValue")] HRESULT StringValue([in] BSTR bstrSection, [in] BSTR bstrKey, [out, retval] BSTR* pVal);&#160;&#160;&#160;&#160;[propput, id(4), helpstring("property StringValue")] [...]]]></description>
		<wfw:commentRss>http://weishijun.com/p/623/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WizKnowledge COM对象之IWizTag和IWizTagGroup</title>
		<link>http://weishijun.com/p/622</link>
		<comments>http://weishijun.com/p/622#comments</comments>
		<pubDate>Mon, 01 Feb 2010 11:04:13 +0000</pubDate>
		<dc:creator>魏 拾俊</dc:creator>
				<category><![CDATA[Wiz]]></category>
		<category><![CDATA[Wiz二次开发]]></category>

		<guid isPermaLink="false">http://weishijun.com/p/622</guid>
		<description><![CDATA[

IWizTag，IWizTagGroup是WizKMCore.dll包含的COM对象。标签/标签组对象必须隶属于一个数据库，因此您不能直接创建标签/标签组对象，而是需要通过IWizDatabase对象来获得数据库中的标签/标签组对象。
通过IWizDatabase.Tags，可以获得数据库的标签信息，通过IWizDatabase.TagGroups，可以获得数据库中的标签组信息。

&#160;

IWizTagCollection是标签对象IWizTag的一个集合（数据），当需要返回一个IWizTag集合的时候，会返回这个对象，例如IWizDocument.Tags属性，就会返回这个对象。
这个对象实现了IEnumXXXX&#160;接口，这样在某些语言内，可以通过fore_each来枚举集合内的每一个对象。
&#160;
IWizTagGroupCollection是标签对象IWizTagGroup的一个集合（数据），当需要返回一个IWizTagGroup集合的时候，会返回这个对象，例如IWizDatabase.TagGroups属性，就会返回这个对象。这个对象实现了IEnumXXXX 接口，这样在某些语言内，可以通过fore_each来枚举集合内的每一个对象。


文件：WizKMCore.dll


&#160;
IWizTagGroupCollection
[&#160;&#160;&#160;&#160;object,&#160;&#160;&#160;&#160;uuid(E102B2BE-C790-4EFA-ABE4-8421E8DD714C),&#160;&#160;&#160;&#160;dual,&#160;&#160;&#160;&#160;nonextensible,&#160;&#160;&#160;&#160;helpstring("IWizTagGroupCollection Interface"),&#160;&#160;&#160;&#160;pointer_default(unique)]interface IWizTagGroupCollection : IDispatch{
&#160;&#160;&#160;&#160;//生成一个新的IEnumXXXX类型的接口，可以在某些语言内使用for_each类型的语法。&#160;&#160;&#160;&#160;[id(DISPID_NEWENUM), propget] HRESULT _NewEnum([out, retval] IUnknown** ppUnk);
&#160;&#160;&#160;&#160;//获得某一个对象。Index：索引值，以0开始；返回值：IWizTagGroup对象&#160;&#160;&#160;&#160;[id(DISPID_VALUE), propget] HRESULT Item([in] long Index, [out, retval] IDispatch** pVal);
&#160;&#160;&#160;&#160;//获得集合内元素的数量&#160;&#160;&#160;&#160;[id(1), propget] HRESULT Count([out, retval] long * pVal);};
&#160;
IWizTagGroup
[&#160;&#160;&#160;&#160;object,&#160;&#160;&#160;&#160;uuid(1081064D-39AA-4225-8D6D-CB856C7F3ED5),&#160;&#160;&#160;&#160;dual,&#160;&#160;&#160;&#160;nonextensible,&#160;&#160;&#160;&#160;helpstring("IWizTagGroup Interface"),&#160;&#160;&#160;&#160;pointer_default(unique)]interface IWizTagGroup : IDispatch{
&#160;&#160;&#160;&#160;//获得标签组的GUID&#160;&#160;&#160;&#160;[propget, id(1), helpstring("property GUID")] HRESULT GUID([out, retval] BSTR* pVal);
&#160;&#160;&#160;&#160;//获得/设置标签组的名称&#160;&#160;&#160;&#160;[propget, id(2), helpstring("property Name")] HRESULT Name([out, retval] BSTR* pVal);&#160;&#160;&#160;&#160;[propput, id(2), helpstring("property Name")] HRESULT Name([in] BSTR newVal);
&#160;&#160;&#160;&#160;//获得/设置标签组的描述&#160;&#160;&#160;&#160;[propget, [...]]]></description>
		<wfw:commentRss>http://weishijun.com/p/622/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WizKnowledge COM对象之IWizDocument</title>
		<link>http://weishijun.com/p/621</link>
		<comments>http://weishijun.com/p/621#comments</comments>
		<pubDate>Mon, 01 Feb 2010 10:19:20 +0000</pubDate>
		<dc:creator>魏 拾俊</dc:creator>
				<category><![CDATA[Wiz]]></category>
		<category><![CDATA[Wiz二次开发]]></category>

		<guid isPermaLink="false">http://weishijun.com/p/621</guid>
		<description><![CDATA[IWizDocument是WizKMCore.dll包含的一个COM对象。文档对象必须隶属于一个数据库，因此您不能直接创建这个对象，而是需要通过IWizDatabase对象来获得数据库中的文档对象。
通过IWizDatabase.GetAllDocuments，获得IWizFolder.Documents等等方法，可以获得数据库的文档信息。
&#160;

IWizDocumenCollection是文件夹对象IWizDocumen的一个集合（数据），当需要返回一个IWizDocumen集合的时候，会返回这个对象，例如IWizFolder.Documents属性，就会返回这个对象。
这个对象实现了IEnumXXXX&#160;接口，这样在某些语言内，可以通过fore_each来枚举集合内的每一个对象。
&#160;
每一个IWizDocument对象，都在索引数据库(index.db)里面，包含一条记录，记录了文档的元数据，同时，还有一个磁盘文件(*.ziw)，保存了文档的数据。ziw是一个zip文件，即使没有安装WizKnowledge，您也可以用压缩软件来打开ziw文件，查看完整的html内容。因为使用了zip方式压缩，不但可以减少磁盘占用，还可以保持磁盘整洁，减少磁盘碎片，而且，即使以后您不再使用WizKnowledge文件，您的文档也不会因为没有安装WizKnowledge而无法打开。
&#160;
WizKnowledge提供了WizViewer.exe，专门用来直接查看ziw文件。在我的电脑里面，直接双击一个ziw文件，就可以用WizViewer.exe来打开文件。另外，WizKnowledge提供了Windows Search的IFilter插件和Google Desktop的插件，可以用来对WizKnowledge来建立索引，提供桌面全文检索。
&#160;

请不要直接删除ziw文件，因为这样会破坏数据完整性。


文档可以包含任意数量的附件。每一个附件，都对应于一个磁盘文件。附件保存在文档数据文件夹下面的XXX_Attachments文件夹内。
&#160;
文档可以包含任意数量的自定义参数，自定义参数，主要是用来扩展WizKnowledge的功能。
&#160;



文件：WizKMCore.dll


IWizDocumentCollection是一个IWizDocument对象的集合。
[&#160;&#160;&#160;&#160;object,&#160;&#160;&#160;&#160;uuid(F8AE7F18-3C30-47D1-8902-947E5676895C),&#160;&#160;&#160;&#160;dual,&#160;&#160;&#160;&#160;nonextensible,&#160;&#160;&#160;&#160;helpstring("IWizDocumentCollection Interface"),&#160;&#160;&#160;&#160;pointer_default(unique)]interface IWizDocumentCollection : IDispatch{
&#160;&#160;&#160;&#160;//生成一个新的IEnumXXXX类型的接口，可以在某些语言内使用for_each类型的语法。&#160;&#160;&#160;&#160;[id(DISPID_NEWENUM), propget] HRESULT _NewEnum([out, retval] IUnknown** ppUnk);
&#160;&#160;&#160;&#160;//获得某一个对象。Index：索引值，以0开始；返回值：IWizDocument对象&#160;&#160;&#160;&#160;[id(DISPID_VALUE), propget] HRESULT Item([in] long Index, [out, retval] IDispatch** pVal);
&#160;&#160;&#160;&#160;//获得集合内元素的数量&#160;&#160;&#160;&#160;[id(1), propget] HRESULT Count([out, retval] long * pVal);
&#160;&#160;&#160;&#160;//添加一个文档，类型必须为IWizDocument&#160;&#160;&#160;&#160;[id(2), helpstring("method Add")] HRESULT Add([in] IDispatch* pDocumentDisp);};
&#160;
IWizDocument对象
&#160;
[&#160;&#160;&#160;&#160;object,&#160;&#160;&#160;&#160;uuid(5B78A65E-6EE8-41C7-B1DA-8ECBF9D917B0),&#160;&#160;&#160;&#160;dual,&#160;&#160;&#160;&#160;nonextensible,&#160;&#160;&#160;&#160;helpstring("IWizDocument Interface"),&#160;&#160;&#160;&#160;pointer_default(unique)]interface IWizDocument : IDispatch{
&#160;&#160;&#160;&#160;//获得文档的GUID&#160;&#160;&#160;&#160;[propget, id(1), helpstring("property GUID")] HRESULT GUID([out, retval] BSTR* pVal);
&#160;&#160;&#160;&#160;//获得/设置文档的标题&#160;&#160;&#160;&#160;[propget, id(2), helpstring("property Title")] HRESULT Title([out, retval] BSTR* pVal);&#160;&#160;&#160;&#160;[propput, [...]]]></description>
		<wfw:commentRss>http://weishijun.com/p/621/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WizKnowledge COM对象之IWizFolder</title>
		<link>http://weishijun.com/p/620</link>
		<comments>http://weishijun.com/p/620#comments</comments>
		<pubDate>Mon, 01 Feb 2010 06:28:50 +0000</pubDate>
		<dc:creator>魏 拾俊</dc:creator>
				<category><![CDATA[Wiz]]></category>
		<category><![CDATA[Wiz二次开发]]></category>

		<guid isPermaLink="false">http://weishijun.com/p/620</guid>
		<description><![CDATA[IWizFolder是WizKMCore.dll包含的一个COM对象。文件夹对象必须隶属于一个数据库，因此您不能直接创建这个对象，而是需要通过IWizDatabase对象来获得数据库中的文件夹对象。
通过IWizDatabase.Folders，可以获得数据库的所有根文件夹，进而获得其它的子文件夹信息。
&#160;
IWizFolderCollection是文件夹对象IWizFolder的一个集合（数据），当需要返回一个IWizFolder集合的时候，会返回这个对象，例如IWizDatabase.Folders属性，就会返回这个对象。

这个对象实现了IEnumXXXX&#160;接口，这样在某些语言内，可以通过fore_each来枚举集合内的每一个对象。
&#160;
每一个IWizFolder对象，都对应于用户数据库文件夹下面的一个子文件夹，如下图：
&#160;

&#160;
用户可以自行在数据库文件夹内建立新的文件夹，或者删除空的文件夹，WizKnowledge会自动显示。但是请不要删除包含文档的文件夹，否则会引起数据不一致，因为WizKnowledge对文档进行了索引。

文件：WizKMCore.dll

IWizFolderCollection是一个IWizFolder对象的集合。
[&#160;&#160;&#160;&#160;object,&#160;&#160;&#160;&#160;uuid(6A7B925B-14C7-434B-80E9-2165CD059A79),&#160;&#160;&#160;&#160;dual,&#160;&#160;&#160;&#160;nonextensible,&#160;&#160;&#160;&#160;helpstring("IWizFolderCollection Interface"),&#160;&#160;&#160;&#160;pointer_default(unique)]interface IWizFolderCollection : IDispatch{
&#160;&#160;&#160;&#160;//生成一个新的IEnumXXXX类型的接口，可以在某些语言内使用for_each类型的语法。&#160;&#160;&#160;&#160;[id(DISPID_NEWENUM), propget] HRESULT _NewEnum([out, retval] IUnknown** ppUnk);
&#160;&#160;&#160;&#160;//获得某一个对象。Index：索引值，以0开始；返回值：IWizFolder对象&#160;&#160;&#160;&#160;[id(DISPID_VALUE), propget] HRESULT Item([in] long Index, [out, retval] IDispatch** pVal);
&#160;&#160;&#160;&#160;//获得集合内元素的数量&#160;&#160;&#160;&#160;[id(1), propget] HRESULT Count([out, retval] long * pVal);};
IWizFolder对象
&#160;
[&#160;&#160;&#160;&#160;object,&#160;&#160;&#160;&#160;uuid(B0E49F7C-CF4B-4DD4-A3F3-432F628C3A31),&#160;&#160;&#160;&#160;dual,&#160;&#160;&#160;&#160;nonextensible,&#160;&#160;&#160;&#160;helpstring("IWizFolder Interface"),&#160;&#160;&#160;&#160;pointer_default(unique)]interface IWizFolder : IDispatch{
&#160;&#160;&#160;&#160;//获得或者设置文件夹名称，直接对应于磁盘文件夹的名称。&#160;&#160;&#160;&#160;[propget, id(1), helpstring("property Name")] HRESULT Name([out, retval] BSTR* pVal);&#160;&#160;&#160;&#160;[propput, id(1), helpstring("property Name")] HRESULT Name([in] BSTR newVal);
&#160;&#160;&#160;&#160;//获得或者设置文件夹是否需要和网络同步。仅针对根文件夹有效。&#160;&#160;&#160;&#160;[propget, id(2), helpstring("property Sync")] HRESULT Sync([out, retval] VARIANT_BOOL* pVal);&#160;&#160;&#160;&#160;[propput, id(2), [...]]]></description>
		<wfw:commentRss>http://weishijun.com/p/620/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WizKnowledge COM对象之IWizDatabase</title>
		<link>http://weishijun.com/p/597</link>
		<comments>http://weishijun.com/p/597#comments</comments>
		<pubDate>Sun, 31 Jan 2010 04:27:47 +0000</pubDate>
		<dc:creator>魏 拾俊</dc:creator>
				<category><![CDATA[Wiz]]></category>
		<category><![CDATA[Wiz二次开发]]></category>

		<guid isPermaLink="false">http://weishijun.com/p/597</guid>
		<description><![CDATA[IWizDatabase&#160;是WizKMCore.dll包含的一个COM对象。您可以直接创建这个对象，然后打开一个用户数据库。或者通过IWizExplorerApp.Database属性来获得用户正在WizExplorer打开的数据库。
通过IWizDatabase，可以获得数据库的信息，包括各种用户信息，文档信息，文件夹，标签，样式等等。同时，也可以使用这个对象，来修改数据库，文档信息等等。

&#160;
用户数据库，保存在用户数据目录下面的Data\Deault或者其它的子目录中，例如

&#160;
数据库文件夹中，包含index.db文件，该文件非常重要，用户的标签，标签组，样式，文档索引信息，附件索引信息，都保存在这个文件里面。程序会在退出的时候，自动生成一个备份文件，例如：
&#160;

.index.db文件是一个SQLite数据库，您可以使用相关的软件来打开这个文件，获得数据库结构以及相关的数据。
&#160;

ProgID：WizKMCore.WizDatabase
文件：WizKMCore.dll

[&#160;&#160;&#160;&#160;object,&#160;&#160;&#160;&#160;uuid(66EDABF2-D4D0-4B63-BFFA-EB7C53A9372A),&#160;&#160;&#160;&#160;dual,&#160;&#160;&#160;&#160;nonextensible,&#160;&#160;&#160;&#160;helpstring("IWizDatabase Interface"),&#160;&#160;&#160;&#160;pointer_default(unique)]interface IWizDatabase : IDispatch{
&#160;&#160;&#160;&#160;//打开一个数据库。bstrDatabasePath：指定一个数据库文件夹路径，该文件夹下面，必须有index.db文件。可以传入一个空字符串（&#8221;"），如果没有默认数据库，该方法会可能显示一个对话框，让用户选择数据库。&#160;&#160;&#160;&#160;[id(1), helpstring("method Open")] HRESULT Open([in] BSTR bstrDatabasePath);
&#160;&#160;&#160;&#160;//关闭数据库&#160;&#160;&#160;&#160;[id(2), helpstring("method Close")] HRESULT Close(void);
&#160;&#160;&#160;&#160;//获得数据库路径。&#160;&#160;&#160;&#160;[propget, id(3), helpstring("property DatabasePath")] HRESULT DatabasePath([out, retval] BSTR* pVal);
&#160;&#160;&#160;&#160;//获得数据库文件夹集合。类型为IWizFolderCollection&#160;&#160;&#160;&#160;[propget, id(4), helpstring("property Folders")] HRESULT Folders([out, retval] IDispatch** pVal);
&#160;&#160;&#160;&#160;//获得标签组集合，类型为IWizTagGroupCollection&#160;&#160;&#160;&#160;[propget, id(5), helpstring("property TagGroups")] HRESULT TagGroups([out, retval] IDispatch** pVal);
&#160;&#160;&#160;&#160;//获得所有标签集合，类型为IWizTagCollection&#160;&#160;&#160;&#160;[propget, id(6), helpstring("property Tags")] HRESULT Tags([out, retval] IDispatch** pVal);
&#160;&#160;&#160;&#160;//获得所有样式集合，类型为IWizStyleCollection&#160;&#160;&#160;&#160;[propget, id(7), helpstring("property Styles")] HRESULT Styles([out, retval] IDispatch** pVal);
&#160;&#160;&#160;&#160;//获得所有附件集合，类型为IWizDocumentAttachmentCollection&#160;&#160;&#160;&#160;[propget, [...]]]></description>
		<wfw:commentRss>http://weishijun.com/p/597/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WizKnowledge COM对象之IWizExplorerWindow</title>
		<link>http://weishijun.com/p/594</link>
		<comments>http://weishijun.com/p/594#comments</comments>
		<pubDate>Sat, 30 Jan 2010 14:31:22 +0000</pubDate>
		<dc:creator>魏 拾俊</dc:creator>
				<category><![CDATA[Wiz]]></category>
		<category><![CDATA[Wiz二次开发]]></category>

		<guid isPermaLink="false">http://weishijun.com/p/594</guid>
		<description><![CDATA[IWizExplorerWindow 是WizExplorer.exe包含的一个COM对象。请不要直接创建这个对象，而使用IWizExplorerApp.Window属性来获得这个对象。
通过这个对象，可以获得WizExplorer程序主窗口的一些信息，例如当前视图，各种界面的ActiveX控件。
&#160;
通过获得ActiveX控件接口，就可以获得更多的界面信息，例如用户选中的文件夹，标签，样式，文档甚至附件等等。

文件：WizExplorer.exe



[&#160;&#160;&#160;&#160;object,&#160;&#160;&#160;&#160;uuid(B15879A3-8647-4d6f-84D8-3A24709EC962),&#160;&#160;&#160;&#160;dual,&#160;&#160;&#160;&#160;nonextensible,&#160;&#160;&#160;&#160;helpstring("IWizExplorerWindow Interface"),&#160;&#160;&#160;&#160;pointer_default(unique)]interface IWizExplorerWindow : IDispatch{
&#160;&#160;&#160;&#160;//获得/设置当前的视图，可能的值：Folders, Tags, Styles。&#160;&#160;&#160;&#160;[propget, id(1), helpstring("property CurrentCatalogView")] HRESULT CurrentCatalogView([out, retval] BSTR* pVal);&#160;&#160;&#160;&#160;[propput, id(1), helpstring("property CurrentCatalogView")] HRESULT CurrentCatalogView([in] BSTR newVal);
&#160;&#160;&#160;&#160;//获得文件夹ActiveX控件。类型为IWizFolderTreeCtrl&#160;&#160;&#160;&#160;[propget, id(2), helpstring("property FoldersCtrl")] HRESULT FoldersCtrl([out, retval] IDispatch** pVal);
&#160;&#160;&#160;&#160;//获得标签ActiveX控件。类型为IWizTagTreeCtrl&#160;&#160;&#160;&#160;[propget, id(3), helpstring("property TagsCtrl")] HRESULT TagsCtrl([out, retval] IDispatch** pVal);
&#160;&#160;&#160;&#160;//获得样式ActiveX控件，类型为IWizStyleListBox&#160;&#160;&#160;&#160;[propget, id(4), helpstring("property StylesCtrl")] HRESULT StylesCtrl([out, retval] IDispatch** pVal);
&#160;&#160;&#160;&#160;//获得文档列表ActiveX控件，类型为IWizDocumentListCtrl&#160;&#160;&#160;&#160;[propget, id(5), helpstring("property DocumentsCtrl")] HRESULT DocumentsCtrl([out, retval] IDispatch** pVal);
&#160;&#160;&#160;&#160;//获得主窗口的窗口句柄&#160;&#160;&#160;&#160;[propget, [...]]]></description>
		<wfw:commentRss>http://weishijun.com/p/594/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WizKnowledge COM对象之IWizExplorerApp</title>
		<link>http://weishijun.com/p/593</link>
		<comments>http://weishijun.com/p/593#comments</comments>
		<pubDate>Sat, 30 Jan 2010 13:42:44 +0000</pubDate>
		<dc:creator>魏 拾俊</dc:creator>
				<category><![CDATA[Wiz]]></category>
		<category><![CDATA[Wiz二次开发]]></category>

		<guid isPermaLink="false">http://weishijun.com/p/593</guid>
		<description><![CDATA[IWizExplorerApp 是WizExplorer.exe包含的一个COM对象。在创建这个对象的时候，如果没有启动WizExplorer，系统会自动启动WizExplorer。
通过这个对象，可以获得WizExplorer程序的一些信息，例如用户正在打开的数据库等等。
&#160;

ProgID：WizExplorer.WizExplorerApp
文件：WizExplorer.exe


&#160;

[&#160;&#160;&#160;&#160;object,&#160;&#160;&#160;&#160;uuid(43C4CF61-5D88-4beb-B593-793A2251A491),&#160;&#160;&#160;&#160;dual,&#160;&#160;&#160;&#160;nonextensible,&#160;&#160;&#160;&#160;helpstring("IWizExplorerApp Interface"),&#160;&#160;&#160;&#160;pointer_default(unique)]interface IWizExplorerApp : IDispatch{&#160;&#160;&#160;&#160;&#160;//获得当前正在打开的数据库对象，类型为IWizDatabase&#160;&#160;&#160;&#160;[propget, id(1), helpstring("property Database")] HRESULT Database([out, retval] IDispatch** pVal);
&#160;&#160;&#160;&#160;//获得WizExplorer主窗口对象，类型为IWizExplorerWindow&#160;&#160;&#160;&#160;[propget, id(2), helpstring("property Window")] HRESULT Window([out, retval] IDispatch** pVal);
&#160;&#160;&#160;&#160;//获得WizExplorer所在的文件夹路径&#160;&#160;&#160;&#160;[propget, id(3), helpstring("property AppPath")] HRESULT AppPath([out, retval] BSTR* pVal);
&#160;&#160;&#160;&#160;//获得用户数据保存目录，通常为 我的文档\My Knowledge\&#160;&#160;&#160;&#160;[propget, id(4), helpstring("property DataStore")] HRESULT DataStore([out, retval] BSTR* pVal);
&#160;&#160;&#160;&#160;//获得用户设置文件名，通常为我的文档\My Knowledge\WizKM.xml&#160;&#160;&#160;&#160;[propget, id(5), helpstring("property SettingsFileName")] HRESULT SettingsFileName([out, retval] BSTR* pVal);&#160;
&#160;&#160;&#160;&#160;//获得Log文件名，通常为我的文档\My Knowledge\WizKM.log&#160;&#160;&#160;&#160;[propget, id(6), helpstring("property LogFileName")] HRESULT LogFileName([out, [...]]]></description>
		<wfw:commentRss>http://weishijun.com/p/593/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WizKnowledge插件范例：自动下载博客插件</title>
		<link>http://weishijun.com/p/592</link>
		<comments>http://weishijun.com/p/592#comments</comments>
		<pubDate>Thu, 28 Jan 2010 15:18:55 +0000</pubDate>
		<dc:creator>魏 拾俊</dc:creator>
				<category><![CDATA[Wiz]]></category>
		<category><![CDATA[Wiz二次开发]]></category>

		<guid isPermaLink="false">http://weishijun.com/p/592</guid>
		<description><![CDATA[WizKnowledge自带了一个自动下载博客的插件，利用这个插件，您可以在指定的时间，自动下载一个博客里面新发布的文章。下面是这个插件的原理介绍。
该插件在WizKnowledge安装目录下面的plugins\{6957D596-7CD9-4ddf-A129-7BD093BC5320}文件夹中。
该文件夹一共有三个文件：
首先看Plugin.ini文件，这个是插件描述文件
在Common部分，描述了插件的名称，GUID，类型（目前仅支持Normal），版本以及插件功能的数量(1)。
[Common]AppName=Blog Downloader&#8230;AppName_2052=博客下载器&#8230;AppName_1028=博客下载器&#8230;AppGUID={6957D596-7CD9-4ddf-A129-7BD093BC5320}AppType=NormalAppVersion=1.0PluginCount=1
在Plugin_0部分，描述了具体的插件功能：
[Plugin_0]Caption=Blog Downloader&#8230;Caption_2052=博客下载器&#8230;Caption_1028=博客下载器&#8230;GUID={8324D9C5-46B2-4f2e-8D26-12B5B610AFF1}HtmlDialogFileName=BlogDownloader.htmHtmlDialogTitle=Blog DownloaderHtmlDialogTitle_2052=博客下载器HtmlDialogTitle_1028=博客下载器HtmlDialogWidth=500HtmlDialogHeight=630Type=HtmlDialogBeginGroup=0
这部分描述了插件的功能，是一个Html对话框类型的插件。同时制定了Html文件名：BlogDownloader.htm。
Strings部分，是插件的字符串资源，主要是为了支持多语言。
然后是BlogDownloader.htm文件。这个就是插件功能的界面部分，用户点击“博客下载器”这个菜单后，WizKnowledge会显示一个Html对话框。Html对话框里面的内容，就是这个Html文件。
这个Html界面如下：

其中都是一些标准的html表单控件，例如编辑框，复选框，下拉框。比较特殊的一个就是WizKnowledge目录树。这个目录树，是一个ActiveX控件，可以显示WizKnowledge数据库里面的目录。
Html代码如下：
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#60;object id=&#8221;folder&#8221; classid=&#8221;clsid:26C7C9DF-8814-4FB5-925A-C720E75C924A&#8221; width=&#8221;300&#8243; height=&#8221;250&#8243;&#62;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#60;/object&#62;其中26C7C9DF-8814-4FB5-925A-C720E75C924A就是WizKnowledge目录树的ActiveX控件的class id。
用户的操作，以及插件的功能实现，都在通过html里面的脚本实现的
&#60;script language=&#8220;JavaScript&#8221; type=&#8220;text/javascript&#8221;&#62;&#160;&#160;&#160;&#160;//&#160;&#160;&#160;&#160;function formatInt(val)&#160;&#160;&#160;&#160;//格式化整数，主要是用来生成日期类型的目录&#160;&#160;&#160;&#160;{&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if (val &#60; 10)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return &#8220;0&#8243; + val;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;else&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return &#8220;&#8221; + val;&#160;&#160;&#160;&#160;}&#160;&#160;&#160;&#160;//&#160;&#160;&#160;&#160;function OnFolderSelChanged() {&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//当用户更改了选中的文件夹（目录树ActiveX控件），在html里面，动态显示用户选择的目录。&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;var selectedFolder = folder.SelectedFolder;&#160;&#160;&#160;&#160;//选中的文件夹&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if (selectedFolder != null&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#38;&#38; textBlogName.value != null&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#38;&#38; textBlogName.value != &#8220;&#8221;) {&#160;&#160;&#160;&#160;//如果不为空&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;labelSaveToResult.innerHTML = &#8220;&#60;strong&#62;&#8221; + selectedFolder.Location + textBlogName.value + &#8220;/&#60;/strong&#62;&#8221;;&#160;&#160;&#160;&#160;//显示用户的选择的目录&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}&#160;&#160;&#160;&#160;}&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//&#160;&#160;&#160;&#160;var objApp = new ActiveXObject(&#8220;WizExplorer.WizExplorerApp&#8221;);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//获得当前正在运行WizExplorer实例&#160;&#160;&#160;&#160;var objCommon = new ActiveXObject(&#8220;WizKMControls.WizCommonUI&#8221;);&#160;&#160;&#160;&#160;//一个通用的函数库&#160;&#160;&#160;&#160;var database [...]]]></description>
		<wfw:commentRss>http://weishijun.com/p/592/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>如何开发WizKnowledge的插件</title>
		<link>http://weishijun.com/p/589</link>
		<comments>http://weishijun.com/p/589#comments</comments>
		<pubDate>Thu, 28 Jan 2010 14:26:40 +0000</pubDate>
		<dc:creator>魏 拾俊</dc:creator>
				<category><![CDATA[Wiz]]></category>
		<category><![CDATA[Wiz二次开发]]></category>

		<guid isPermaLink="false">http://weishijun.com/p/589</guid>
		<description><![CDATA[WizKnowledge提供了插件功能，您可以开发WizKnowledge插件，来增加WizKnowledge功能。
WizKnowledge插件组成
Plugin.ini文件
这是插件的描述文件，如果该文件包含多种语言文字，例如同时包含中文，日文，韩文等等，您需要将该文件需要按照Unicode或者utf-8编码保存，并且保存的时候，包含Unicode或者utf-8签名。

如果仅在一种语言下使用，可以采用Ansi编码，但是在其他语言下使用，可能会出现乱码。
Plugin.ini描述。下面是一个典型的例子。该文件可以在WizKnowledge安装目录下面的Plugins目录找到。
[Common]AppName=Blog Downloader&#8230;AppName_2052=博客下载器&#8230;AppName_1028=博客下载器&#8230;AppGUID={6957D596-7CD9-4ddf-A129-7BD093BC5320}AppType=NormalAppVersion=1.0PluginCount=1
[Plugin_0]Caption=Blog Downloader&#8230;Caption_2052=博客下载器&#8230;Caption_1028=博客下载器&#8230;GUID={8324D9C5-46B2-4f2e-8D26-12B5B610AFF1}HtmlDialogFileName=BlogDownloader.htmHtmlDialogTitle=Blog DownloaderHtmlDialogTitle_2052=博客下载器HtmlDialogTitle_1028=博客下载器HtmlDialogWidth=500HtmlDialogHeight=630Type=HtmlDialogBeginGroup=0
[Strings]
buttonOK=OKbuttonOK_2052=确定buttonCancel=CancelbuttonCancel_2052=取消WizBrotherBlogName=Official WizBrother BlogWizBrotherBlogName_2052=WizBrother 官方博客WizBrotherBlogFeedURL=http://weishijun.com/feedEnterBlogName=Please enter the blog nameEnterBlogName_2052=请输入博客名称EnterRssFeedURL=Please enter the RSS Feed URLEnterRssFeedURL=请输入RSS种子URLSelectFolder=Please select a folderSelectFolder_2052=请选择一个文件夹labelBlogInformation_2052=博客信息labelBlogName_2052=博客名称labelRssFeedURL_2052=博客RSS种子URLlabelOptions_2052=选项labeSaveTo_2052=保存到labelAddToTaskScheduler_2052=添加到计划任务labelSaveContentOnly_2052=只保存正文
说明
[Common]部分描述AppName：插件应用名称。如果插件只有一个功能，则该应用名称和插件功能一致，否则是所有插件功能的概述。AppName_2052：插件的简体中文名称AppName_1028：插件的繁体中文名称AppGUID：插件应用的GUID，不同的插件应用，GUID应该不同。AppType=Normal：插件应用类型，目前只能是NormalAppVersion=1.0：插件版本，只能是一个浮点数PluginCount=1：插件功能数量，只能是整数
[Plugin_0]：某一个插件功能，对应于一个插件菜单。以0开始，0到PluginCount &#8211; 1Caption：插件菜单名称Caption_2052：插件简体中文菜单名称Caption_1028：插件繁体中文菜单名称GUID：插件功能GUID。不同的插件功能，GUID必须不同。BeginGroup：是否在该插件菜单前面增加一个分割线。0：不增加分割线，1：增加分割线。Type：插件功能类型。可以是ExecuteScript或者HtmlDialog。ExecScript，表示用户点击菜单后，执行一个脚本或者EXE程序。HtmlDialog，表示用户点击后，打开一个Html对话框。;HtmlDialog类型的插件所必须的信息HtmlDialogFileName：Html对话框打开的Html文件名。该文件必须和plugin.ini在同一个目录中。HtmlDialogTitle：Html对话框标题HtmlDialogTitle_2052：Html对话框简体中文标题HtmlDialogTitle_1028：Html对话框繁体中文标题HtmlDialogWidth：Html对话框宽度，单位是像素HtmlDialogHeight：Html对话框高度，单位是像素;ExecuteScript类型的插件所必须的信息ScriptFileName=脚本或者EXE文件名。该文件必须和plugin.ini在同一个目录中。
[Strings]：插件里面使用到的字符串资源，可以使用等号左边是字符串名称，右边是字符串实际内容。字符串名称+下划线+语言代码，可以指定某种语言的字符串。例如buttonOK=OKbuttonOK_2052=确定如果Html对话框中需要支持多种语言，您可以为Html里面的需要本地化的字符串指定一个id，例如：
&#60;span id=&#8221;labelAddToTaskScheduler&#8221;&#62;Add to Task Scheduler&#38;nbsp; &#60;/span&#62;WizKnowledge在显示这个对话框的时候，会在Strings里面查找名称为labelAddToTaskScheduler_xxxx的字符串，来替换Add to Task Scheduler&#38;nbsp; 。如果没有找到，就查找默认的labelAddToTaskScheduler，如果仍然没有找到，就不进行替换。WizKnowledge支持自动替换语言的Html标记有：span, div, h1, h2, h3, h4, h5, h6, h7, td。
如果要让WizKnowledge自动替换Html对话框里面的字符串资源，您需要在Html文件里面增加下面的脚本：
&#60;script language=&#8220;JavaScript&#8221; type=&#8220;text/javascript&#8221;&#62;&#160;&#160;&#160;&#160;var objApp = new ActiveXObject(&#8220;WizExplorer.WizExplorerApp&#8221;);&#160;&#160;&#160;&#160;objApp.PluginLocalizeHtmlDialog(document);&#160;&#160;&#160;&#160;&#60;/script&#62;&#160;&#160;&#160;&#160;
&#160;
您也可以通过脚本，来直接获得某一个字符串资源：
例如：

&#60;script language=&#8220;JavaScript&#8221; type=&#8220;text/javascript&#8221;&#62;&#160;&#160;&#160;&#160;var objApp = new ActiveXObject(&#8220;WizExplorer.WizExplorerApp&#8221;);&#160;&#160;&#160;&#160;var appGUID = objApp.GetPluginAppGUID(document);//获得当前插件的AppGUID。&#160;&#160;&#160;&#160;alert(objApp.LoadPluginString(appGUID, &#8220;SelectFolder&#8221;));&#60;/script&#62;

&#160;
以后就是Plugin.ini的全部内容。
如果您的插件需要直接执行脚本，则需要将您的脚本和plugin.ini放在同一个目录中，同样，如果现实一个Html对话框，也需要将html文件和plugin.ini放在一个目录中。
然后，将这些文件，都放在WizKnowledge安装目录下面的Plugins\{插件的AppGUID}\这个文件夹里面，例如下面的文件夹。
C:\Program [...]]]></description>
		<wfw:commentRss>http://weishijun.com/p/589/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WizKnowledge二次开发概述</title>
		<link>http://weishijun.com/p/585</link>
		<comments>http://weishijun.com/p/585#comments</comments>
		<pubDate>Thu, 28 Jan 2010 12:30:51 +0000</pubDate>
		<dc:creator>魏 拾俊</dc:creator>
				<category><![CDATA[Wiz]]></category>
		<category><![CDATA[Wiz二次开发]]></category>

		<guid isPermaLink="false">http://weishijun.com/p/585</guid>
		<description><![CDATA[WizKnowledge具有很强的二次开发能力，利用WizKnowledge提供的二次开发能力，您可以为WizKnowledge开发各种功能，增强WizKnowledge的功能。
&#160;
WizKnowledge提供了强大的COM接口，同时也提供了插件的功能。
WizKnowledge的COM接口

WizKnowledge提供了大量的COM接口，来访问WizKnowledge保存的数据。
WizKnowledge插件功能
WizKnowledge提供了插件功能，利用插件，您可以在WizKnowledge里面生成相应的菜单，用户点击后可以执行相应的功能。例如导入导出功能等等。
WizKnowledge其它开发功能
WizKnowledge提供了一些EXE以及DLL导出函数，您可以使用这些EXE或者DLL来实现一些功能。

]]></description>
		<wfw:commentRss>http://weishijun.com/p/585/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

