给Live Writer添加“分享至”(如新浪微博、QQ微博等)插件

参考文章Creating a PluginPublish Notification Hook Plugins

添加Publish Notification Hook Plugins

Step 1  Create a new .NET Class Library project

image

Step2 Add a reference to the WindowsLive.Writer.Api assembly

(located in C:/Program Files/Windows Live/Writer)

右键单击解决方案下的引用,选择添加引用:

image

在弹出的添加引用对话框中选择“浏览”标签,找到Live Writer的安装目录,如C:/Program Files/Windows Live/Writer(这个只是参考目录,你懂的)

image

 

Step3 Create a new class … derived from PublishNotificationHook

需要在文件头加上using WindowsLive.Writer.Api;

Step4 Apply the WriterPluginAttribute attribute

在类的前面添加WriterPluginAttribute属性

[WriterPluginAttribute("e4f548e4-4806-4d38-af3d-5bfe6d4d8d22 ", "LWShare01 ")]

你需要将上面红色部分替换成你插件的GUID,蓝色部分替换成插件名。

Step4 override…OnPrePublish or OnPostPublish Method

这里,可能需要用到诸如文章的标题,发布后的URL,需要用到OnPostPublish的参数publishContext。

其中,文章的标题是publishingContext.PostInfo.Title,文章发布后的URL是publishingContext.PostInfo.Permalink。

public override void OnPostPublish( IWin32Window dialogOwner, IProperties properties, IPublishingContext publishingContext, bool publish)

{

       //分享代码

}

Step5 copies your plugin to the Writer plugins directory

我按照帮助文档操作居然无法编译(可能是设置问题),最后,我想这步的目的应该主要是将生成的dll拷贝至Live Writer的Plugin目录中,因此,我修改了项目的设置,将项目的生成路径改到了Live Writer的Plugin目录中,调试、运行都没有什么问题。

其他问题

.Net基础知识

由于本人对.Net不是很熟(从来没有正式用过,连写个Hello World都没有),因此,本节的内容很简单,对.Net熟悉的童鞋可以略过

1) C#的MessageBox

测试时,可以用MessageBox来调试,这需要添加位于“.Net”标签页下的system.windows.forms引用和using System.Windows.Forms;最后,MessageBox.show即可。

image

2) 如何添加Attribute

我在查看帮助文档,“开发工具和语言/Visual Studio文档/Visual C#/C#编程指南”时,发现有2个属性节点(MSDN2005,MSDN2008中的Attribute则位于“C#编程指南”的“特性”下),原来,一个属性是C#的属性(get和set),另外一个才是参考文档中的Attribute。

根据帮助文档,要添加类似InsertableContentSourceAttribute attribute ,格式如下:

[特姓名(特性参数)]

3)如何查看dll的GUID

右键单击解决方案,选择属性,在属性对话框中,选择“应用程序”标签页,在“应用程序”标签页中,找到“程序集信息”按钮,单击后出现的对话框中即可以看到GUID。

image

4) 设置生成路径

右键单击解决方案,选择“属性”菜单项,按下图所示设置:

image

5) 设置外部启动程序

如果你的应用程序是dll,则需要一个exe程序启动它,设置如下图所示(解决方案的属性):

image

ContentSource相关知识

折腾了好久,大概弄明白(可能是错误的理解^_^ )了一点:

1)ContentSource插件主要是针对插入,Insert dialog box则会在“插入”菜单栏添加一个菜单,菜单名取自InsertableContentSourceAttribute的参数

2)URL (Blog This or Paste)则是在粘贴网址时会触发CreateContentFromUrl 方法,属性的参数(只有一个参数)则是用来匹配的,正则表达式来的,也就是说,只有匹配了的网址,才会触发CreateContentFromUrl 方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值