<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;C08MSX48cSp7ImA9WhRaFE0.&quot;"><id>tag:blogger.com,1999:blog-3119798540397310986</id><updated>2012-02-16T06:18:08.079-08:00</updated><category term="WLWPlurk" /><category term="原始碼" /><category term="工作日誌" /><category term="學習心得" /><title>WLW Extension Learning</title><subtitle type="html">這裡主要是存放著Windows Live Writer撰寫Extension的心得與一些相關的專案</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://wlwextensionlearning.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://wlwextensionlearning.blogspot.com/" /><author><name>Admin</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/WlwExtensionLearning" /><feedburner:info uri="wlwextensionlearning" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CEQHRHYzfip7ImA9WhRaEkQ.&quot;"><id>tag:blogger.com,1999:blog-3119798540397310986.post-9087014042200880629</id><published>2012-02-14T23:44:00.001-08:00</published><updated>2012-02-14T23:52:15.886-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-14T23:52:15.886-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="學習心得" /><title>如何把寫好的 Windows Live Writer plugin包裝成安裝檔 (How to package your Windows Live writer plugin?)</title><content type="html">&lt;p&gt;由於要修改去年寫給自己用的小工具 (&lt;a href="http://wlwplurk.codeplex.com/"&gt;WLWPlurk&lt;/a&gt;)，看到其他在Codeplex上面的人都是用WIX(Windows Installer XML)來做包裝plugin的動作。&lt;/p&gt; &lt;p&gt;所以也去好好的搜尋一下有沒有相關可以用的東西。 由於我自己也不是專業在做Installer的人~ 裡面的一些設定也真的把我搞糊塗，才了解前因後果。還好找到了相關的文件&lt;a href="http://blogs.msdn.com/b/jmstall/archive/2007/10/27/wix-script-for-installing-live-writer-plugins.aspx"&gt;WiX Script for installing Live Writer Plugins&lt;/a&gt;，雖然他上面的sample是針對 WIX 2.0，不過我也把它修改過後分享給大家。&lt;/p&gt; &lt;p&gt;希望有需要的人就拿去用吧。&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Install WIX 3.6 from &lt;a href="http://wix.sourceforge.net/downloadv3.html"&gt;http://wix.sourceforge.net/downloadv3.html&lt;/a&gt;  &lt;li&gt;Setup your path setting to your install path.  &lt;li&gt;Inser follow code (it should be XXX.WXS)&lt;br&gt; &lt;li&gt;You might need repace follow string as follows:  &lt;ol&gt;&lt;textarea style="width: 605px; height: 126px" cols="1" rows="1"&gt;&amp;lt;?xml version='1.0'?&amp;gt; &amp;lt;Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'&amp;gt; &amp;lt;Product Name="{$Plugin Name$}" Id="{$InstallGUID$}"         Language="1033" Codepage="1252" Version="0.0.0.0"         Manufacturer="{$Manufacturer$}"&amp;gt;     &amp;lt;Package       Id="{$PluginGUID$}"       Description="{$Description$}"       Manufacturer="{$Manufacturer$}"       InstallerVersion="200"       Compressed="yes" /&amp;gt;  	&amp;lt;UI&amp;gt; 		&amp;lt;UIRef Id="WixUI_Minimal" /&amp;gt; 	&amp;lt;/UI&amp;gt; 	     &amp;lt;Property Id="INSTALLDIR"&amp;gt;      &amp;lt;RegistrySearch Id='GetInstallDir' Type='raw'         Root='HKLM' Key='SOFTWARE\Microsoft\Windows Live\Writer' Name='InstallDir' /&amp;gt;     &amp;lt;/Property&amp;gt;      &amp;lt;Property Id="INSTALLDIR_OLD"&amp;gt;       &amp;lt;RegistrySearch Id='GetOldInstallDir' Type='raw'         Root='HKLM' Key='SOFTWARE\Microsoft\Windows Live Writer' Name='InstallDir' /&amp;gt;     &amp;lt;/Property&amp;gt;      &amp;lt;Condition Message="An old version of Windows Live Writer is installed.                          Please upgrade to the latest version at http://writer.live.com ."&amp;gt;       &amp;lt;![CDATA[ NOT (INSTALLDIR_OLD AND (NOT INSTALLDIR))  ]]&amp;gt;     &amp;lt;/Condition&amp;gt;           &amp;lt;Condition Message="Windows Live Writer is not installed.                          Please install Windows Live Writer from http://writer.live.com ."&amp;gt;       &amp;lt;![CDATA[  NOT ((NOT INSTALLDIR) AND (NOT INSTALLDIR_OLD)) ]]&amp;gt;     &amp;lt;/Condition&amp;gt;          &amp;lt;Media Id="1" Cabinet="{$Plugin Name$}.cab" EmbedCab="yes" DiskPrompt="CD-ROM #1" /&amp;gt;      &amp;lt;Property Id="DiskPrompt" Value="{$Plugin Name$} Installation [1]" /&amp;gt;      &amp;lt;Directory Id="TARGETDIR" Name="SourceDir"&amp;gt;           &amp;lt;Directory Id="INSTALLDIR"&amp;gt;             &amp;lt;Directory Id="Plugins" Name="Plugins"&amp;gt;               &amp;lt;Component Id="{$Plugin Name$}" Guid="{$PluginGUID$}"&amp;gt;                 &amp;lt;File                    Id="File_{$FILE_ID$}"                    Name="{$FILE_NAME$}"                   DiskId="1"                    Source="{$FILE_Address$}"                    Vital="yes" /&amp;gt;			                 &amp;lt;/Component&amp;gt;             &amp;lt;/Directory&amp;gt;           &amp;lt;/Directory&amp;gt;         &amp;lt;/Directory&amp;gt;     &amp;lt;Feature Id="Complete"               Level="1"              Title=""              Description="{$Description$}"              Display="expand"&amp;gt;       &amp;lt;ComponentRef Id="{$Plugin Name$}" /&amp;gt;     &amp;lt;/Feature&amp;gt;   &amp;lt;/Product&amp;gt; &amp;lt;/Wix&amp;gt; &lt;/textarea&gt;  &lt;li&gt;{$Plugin Name$} : your plugin name  &lt;li&gt;{$InstallGUID$}: A GUID for your installation program  &lt;li&gt;{$Manufacturer$}: Manufacturer name  &lt;li&gt;{$PluginGUID$}: A GUID for your plugin  &lt;li&gt;{$Description$}: A description for your plugin  &lt;li&gt;{$FILE_ID$}: ID for your binary which need install. (could be multiple file)  &lt;li&gt;{$FILE_NAME$}: Name for your binary which need install. (could be multiple file)  &lt;li&gt;{$FILE_Address$}: File address for your binary which need install. (could be multiple file) &lt;/li&gt;&lt;/ol&gt; &lt;li&gt;Compiler your WIX source code  &lt;ol&gt; &lt;li&gt;candle XXX.wxs  &lt;li&gt;light -ext WixUIExtension XXX.wixobj&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3119798540397310986-9087014042200880629?l=wlwextensionlearning.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/0YH32WchLMjdM3Ip3rMhNbnWzHM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0YH32WchLMjdM3Ip3rMhNbnWzHM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/0YH32WchLMjdM3Ip3rMhNbnWzHM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0YH32WchLMjdM3Ip3rMhNbnWzHM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/WlwExtensionLearning/~4/bWg4XvHSVBQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://wlwextensionlearning.blogspot.com/feeds/9087014042200880629/comments/default" title="張貼意見" /><link rel="replies" type="text/html" href="http://wlwextensionlearning.blogspot.com/2012/02/windows-live-writer-plugin-how-to.html#comment-form" title="0 個意見" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3119798540397310986/posts/default/9087014042200880629?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3119798540397310986/posts/default/9087014042200880629?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WlwExtensionLearning/~3/bWg4XvHSVBQ/windows-live-writer-plugin-how-to.html" title="如何把寫好的 Windows Live Writer plugin包裝成安裝檔 (How to package your Windows Live writer plugin?)" /><author><name>Admin</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://wlwextensionlearning.blogspot.com/2012/02/windows-live-writer-plugin-how-to.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUUHQn4zcCp7ImA9WhRaEkU.&quot;"><id>tag:blogger.com,1999:blog-3119798540397310986.post-1659893455610219817</id><published>2012-02-14T22:27:00.001-08:00</published><updated>2012-02-14T22:27:13.088-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-14T22:27:13.088-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WLWPlurk" /><title>WLWPlurk 2.0 installer release</title><content type="html">&lt;p&gt;這幾天弄了好久~ 好不容易把Windows Installer XML (WIX) 3.6給搞懂。&lt;br&gt;等等寫另外一篇來記錄詳細資料，在這裡先請有需要安裝檔的去下載吧。&lt;/p&gt; &lt;p&gt;&lt;a title="http://wlwplurk.codeplex.com/releases/52834/download/342411" href="http://wlwplurk.codeplex.com/releases/52834/download/342411"&gt;http://wlwplurk.codeplex.com/releases/52834/download/342411&lt;/a&gt;&lt;/p&gt; &lt;p&gt;有任何需要改進的麻煩留言告訴我!!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3119798540397310986-1659893455610219817?l=wlwextensionlearning.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/R7iu89Dso-wE2I4TgPkHpdcjwrU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/R7iu89Dso-wE2I4TgPkHpdcjwrU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/R7iu89Dso-wE2I4TgPkHpdcjwrU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/R7iu89Dso-wE2I4TgPkHpdcjwrU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/WlwExtensionLearning/~4/lhq4Jyar_QU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://wlwextensionlearning.blogspot.com/feeds/1659893455610219817/comments/default" title="張貼意見" /><link rel="replies" type="text/html" href="http://wlwextensionlearning.blogspot.com/2012/02/wlwplurk-20-installer-release.html#comment-form" title="0 個意見" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3119798540397310986/posts/default/1659893455610219817?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3119798540397310986/posts/default/1659893455610219817?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WlwExtensionLearning/~3/lhq4Jyar_QU/wlwplurk-20-installer-release.html" title="WLWPlurk 2.0 installer release" /><author><name>Admin</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://wlwextensionlearning.blogspot.com/2012/02/wlwplurk-20-installer-release.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU8FQXc8fSp7ImA9WhRaEUQ.&quot;"><id>tag:blogger.com,1999:blog-3119798540397310986.post-3410393266358029189</id><published>2012-02-13T21:36:00.000-08:00</published><updated>2012-02-13T21:36:50.975-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-13T21:36:50.975-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WLWPlurk" /><title>WLWPlurk 第二版發布</title><content type="html">欠了好久~ 總算一口氣把它寫完:&lt;br /&gt;
請到這裡下載: &amp;nbsp;&lt;a href="http://wlwplurk.codeplex.com/"&gt;http://wlwplurk.codeplex.com/&lt;/a&gt;&lt;br /&gt;
&lt;span style="background-color: white; color: #30332d; font-family: 'Segoe UI', 'Microsoft Sans Serif', Arial, Geneva, sans-serif; font-size: 13px;"&gt;1. Upgrade code with VS2010.&lt;/span&gt;&lt;br style="background-color: white; color: #30332d; font-family: 'Segoe UI', 'Microsoft Sans Serif', Arial, Geneva, sans-serif; font-size: 13px;" /&gt;&lt;span style="background-color: white; color: #30332d; font-family: 'Segoe UI', 'Microsoft Sans Serif', Arial, Geneva, sans-serif; font-size: 13px;"&gt;2. Add login page for change account. Using registry to save your login information.&lt;/span&gt;&lt;br style="background-color: white; color: #30332d; font-family: 'Segoe UI', 'Microsoft Sans Serif', Arial, Geneva, sans-serif; font-size: 13px;" /&gt;&lt;img alt="WLWPlurk_1.jpg" src="http://i3.codeplex.com/Download?ProjectName=WLWPlurk&amp;amp;DownloadId=342116" style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #30332d; font-family: 'Segoe UI', 'Microsoft Sans Serif', Arial, Geneva, sans-serif; font-size: 13px; max-width: 100%;" title="WLWPlurk_1.jpg" /&gt;&lt;br style="background-color: white; color: #30332d; font-family: 'Segoe UI', 'Microsoft Sans Serif', Arial, Geneva, sans-serif; font-size: 13px;" /&gt;&lt;span style="background-color: white; color: #30332d; font-family: 'Segoe UI', 'Microsoft Sans Serif', Arial, Geneva, sans-serif; font-size: 13px;"&gt;3. Add post content page to let you modify your plurk before post it.&lt;/span&gt;&lt;br style="background-color: white; color: #30332d; font-family: 'Segoe UI', 'Microsoft Sans Serif', Arial, Geneva, sans-serif; font-size: 13px;" /&gt;&lt;img alt="WLWPlurk_2.jpg" src="http://i3.codeplex.com/Download?ProjectName=WLWPlurk&amp;amp;DownloadId=342117" style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #30332d; font-family: 'Segoe UI', 'Microsoft Sans Serif', Arial, Geneva, sans-serif; font-size: 13px; max-width: 100%;" title="WLWPlurk_2.jpg" /&gt;&lt;br style="background-color: white; color: #30332d; font-family: 'Segoe UI', 'Microsoft Sans Serif', Arial, Geneva, sans-serif; font-size: 13px;" /&gt;&lt;br style="background-color: white; color: #30332d; font-family: 'Segoe UI', 'Microsoft Sans Serif', Arial, Geneva, sans-serif; font-size: 13px;" /&gt;&lt;span style="background-color: white; color: #30332d; font-family: 'Segoe UI', 'Microsoft Sans Serif', Arial, Geneva, sans-serif; font-size: 13px;"&gt;How to use it:&lt;/span&gt;&lt;br style="background-color: white; color: #30332d; font-family: 'Segoe UI', 'Microsoft Sans Serif', Arial, Geneva, sans-serif; font-size: 13px;" /&gt;&lt;span style="background-color: white; color: #30332d; font-family: 'Segoe UI', 'Microsoft Sans Serif', Arial, Geneva, sans-serif; font-size: 13px;"&gt;Just download this binary, extract it and put on your Windows Live Writer plugin folder such as C:\Program Files\Windows Live\Writer\Plugins&lt;/span&gt;&lt;br style="background-color: white; color: #30332d; font-family: 'Segoe UI', 'Microsoft Sans Serif', Arial, Geneva, sans-serif; font-size: 13px;" /&gt;&lt;br style="background-color: white; color: #30332d; font-family: 'Segoe UI', 'Microsoft Sans Serif', Arial, Geneva, sans-serif; font-size: 13px;" /&gt;&lt;br style="background-color: white; color: #30332d; font-family: 'Segoe UI', 'Microsoft Sans Serif', Arial, Geneva, sans-serif; font-size: 13px;" /&gt;&lt;span style="background-color: white; color: #30332d; font-family: 'Segoe UI', 'Microsoft Sans Serif', Arial, Geneva, sans-serif; font-size: 13px;"&gt;This project implement base on two major component:&lt;/span&gt;&lt;br style="background-color: white; color: #30332d; font-family: 'Segoe UI', 'Microsoft Sans Serif', Arial, Geneva, sans-serif; font-size: 13px;" /&gt;&lt;span style="background-color: white; color: #30332d; font-family: 'Segoe UI', 'Microsoft Sans Serif', Arial, Geneva, sans-serif; font-size: 13px;"&gt;1. Json.net (http://json.codeplex.com/)&lt;/span&gt;&lt;br style="background-color: white; color: #30332d; font-family: 'Segoe UI', 'Microsoft Sans Serif', Arial, Geneva, sans-serif; font-size: 13px;" /&gt;&lt;span style="background-color: white; color: #30332d; font-family: 'Segoe UI', 'Microsoft Sans Serif', Arial, Geneva, sans-serif; font-size: 13px;"&gt;2. NPlurk (http://nplurk.codeplex.com/)&lt;/span&gt;&lt;br style="background-color: white; color: #30332d; font-family: 'Segoe UI', 'Microsoft Sans Serif', Arial, Geneva, sans-serif; font-size: 13px;" /&gt;&lt;span style="background-color: white; color: #30332d; font-family: 'Segoe UI', 'Microsoft Sans Serif', Arial, Geneva, sans-serif; font-size: 13px;"&gt;You need plurk API key from http://www.plurk.com/API/ to use this source code.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3119798540397310986-3410393266358029189?l=wlwextensionlearning.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/AA7wh2d4NLVhjDwxnW5OD9egOPc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AA7wh2d4NLVhjDwxnW5OD9egOPc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/AA7wh2d4NLVhjDwxnW5OD9egOPc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AA7wh2d4NLVhjDwxnW5OD9egOPc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/WlwExtensionLearning/~4/2lASK_ECes8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://wlwextensionlearning.blogspot.com/feeds/3410393266358029189/comments/default" title="張貼意見" /><link rel="replies" type="text/html" href="http://wlwextensionlearning.blogspot.com/2012/02/wlwplurk.html#comment-form" title="0 個意見" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3119798540397310986/posts/default/3410393266358029189?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3119798540397310986/posts/default/3410393266358029189?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WlwExtensionLearning/~3/2lASK_ECes8/wlwplurk.html" title="WLWPlurk 第二版發布" /><author><name>Admin</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://wlwextensionlearning.blogspot.com/2012/02/wlwplurk.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEUFRnY7eSp7ImA9WhdSEUk.&quot;"><id>tag:blogger.com,1999:blog-3119798540397310986.post-5670660893906503319</id><published>2010-09-27T20:15:00.001-07:00</published><updated>2011-07-19T23:10:17.801-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-19T23:10:17.801-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="工作日誌" /><title>Get tinyURL from your C# code</title><content type="html">最近在Implement的時候，發現&lt;a href="http://nplurk.codeplex.com/"&gt;NPlurk&lt;/a&gt;能傳送的字串似乎比直接再plurk上面打的字串還少上許多(大概少上10~15個字元)，看起來去使用TinyURL在code裡面也是勢在必行的。&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
參考網址: &lt;a href="http://www.dotblogs.com.tw/jimmyyu/archive/2010/07/09/create-short-url-via-tinyurl-api.aspx" title="http://www.dotblogs.com.tw/jimmyyu/archive/2010/07/09/create-short-url-via-tinyurl-api.aspx"&gt;http://www.dotblogs.com.tw/jimmyyu/archive/2010/07/09/create-short-url-via-tinyurl-api.aspx&lt;/a&gt;&lt;br /&gt;
不過現在又發現Plurk無法顯示tinyURL的圖片，所以這些部分看起來得再做些調整才可以了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3119798540397310986-5670660893906503319?l=wlwextensionlearning.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/lccFLaIVJ1xnqZUNwMYzf1hc_p0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lccFLaIVJ1xnqZUNwMYzf1hc_p0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/lccFLaIVJ1xnqZUNwMYzf1hc_p0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lccFLaIVJ1xnqZUNwMYzf1hc_p0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/WlwExtensionLearning/~4/LwKFEige5j8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://wlwextensionlearning.blogspot.com/feeds/5670660893906503319/comments/default" title="張貼意見" /><link rel="replies" type="text/html" href="http://wlwextensionlearning.blogspot.com/2010/09/get-tinyurl-from-your-c-code.html#comment-form" title="0 個意見" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3119798540397310986/posts/default/5670660893906503319?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3119798540397310986/posts/default/5670660893906503319?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WlwExtensionLearning/~3/LwKFEige5j8/get-tinyurl-from-your-c-code.html" title="Get tinyURL from your C# code" /><author><name>Admin</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://wlwextensionlearning.blogspot.com/2010/09/get-tinyurl-from-your-c-code.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUEER3g_eSp7ImA9Wx5WE08.&quot;"><id>tag:blogger.com,1999:blog-3119798540397310986.post-972567844766194462</id><published>2010-09-24T04:26:00.001-07:00</published><updated>2010-09-24T04:26:46.641-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-24T04:26:46.641-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="原始碼" /><category scheme="http://www.blogger.com/atom/ns#" term="工作日誌" /><category scheme="http://www.blogger.com/atom/ns#" term="WLWPlurk" /><title>WLWPlurk 第一版發布</title><content type="html">&lt;p&gt;&lt;strong&gt;摘要&lt;/strong&gt;: 這是在Window Live Writer上面發布plurk的一個plugin.&lt;/p&gt; &lt;p&gt;雖然是最簡單的code，但是還是決定發布出來。有需要的人可以到codeplex的&lt;a title="http://wlwplurk.codeplex.com/" href="http://wlwplurk.codeplex.com/"&gt;http://wlwplurk.codeplex.com/&lt;/a&gt; 去下載第一版source code.&lt;/p&gt; &lt;p&gt;P.S.: 我發現我架設codeplex的時間都比我整理出第一版WLWPlurk還要費工夫。&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3119798540397310986-972567844766194462?l=wlwextensionlearning.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/xPcrw6U6cQDetYoqeaMo-irNepg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xPcrw6U6cQDetYoqeaMo-irNepg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/xPcrw6U6cQDetYoqeaMo-irNepg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xPcrw6U6cQDetYoqeaMo-irNepg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/WlwExtensionLearning/~4/3nEW1lEELtw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://wlwextensionlearning.blogspot.com/feeds/972567844766194462/comments/default" title="張貼意見" /><link rel="replies" type="text/html" href="http://wlwextensionlearning.blogspot.com/2010/09/wlwplurk.html#comment-form" title="0 個意見" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3119798540397310986/posts/default/972567844766194462?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3119798540397310986/posts/default/972567844766194462?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WlwExtensionLearning/~3/3nEW1lEELtw/wlwplurk.html" title="WLWPlurk 第一版發布" /><author><name>Admin</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://wlwextensionlearning.blogspot.com/2010/09/wlwplurk.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYGSHozcCp7ImA9Wx5WE08.&quot;"><id>tag:blogger.com,1999:blog-3119798540397310986.post-1408501618500144253</id><published>2010-09-22T03:47:00.001-07:00</published><updated>2010-09-24T02:55:29.488-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-24T02:55:29.488-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="工作日誌" /><category scheme="http://www.blogger.com/atom/ns#" term="WLWPlurk" /><title>WLW Plurk 相關資訊</title><content type="html">&lt;p&gt;幾經尋找~總算找到一個好用的plurk API使用軟體。不過在此之前還是有一些事情得先做。&lt;/p&gt; &lt;ol&gt; &lt;li&gt;申請Plurk API Key: 到&lt;a href="http://www.plurk.com/API/"&gt;此去申請&lt;/a&gt;一個你自己使用的plurk API key.  &lt;li&gt;去&lt;a href="http://nplurk.codeplex.com/"&gt;NPlurk&lt;/a&gt;去下載相關source code吧~ 這個超好用的&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;測試過後，已經可以正常的把文章發不到Plurk去。算是好用吧(?)&lt;/p&gt; &lt;p&gt;測試結果: &lt;a title="http://www.plurk.com/p/7qp2eq" href="http://www.plurk.com/p/7qp2eq"&gt;http://www.plurk.com/p/7qp2eq&lt;/a&gt; 是成功發文。&lt;/p&gt; &lt;p&gt;不過由於login架構尚未完成，現在整個plugin&amp;nbsp; 也只有我自己可以使用。感覺有點弱。還有以下的工作項目需要完成:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;增加LOGIN選項(像是&lt;a title="http://dev.scottisafool.co.uk/2010/05/09/blackbird-pie-twitter-plugin-for-live-writer/" href="http://dev.scottisafool.co.uk/2010/05/09/blackbird-pie-twitter-plugin-for-live-writer/"&gt;http://dev.scottisafool.co.uk/2010/05/09/blackbird-pie-twitter-plugin-for-live-writer/&lt;/a&gt;)&lt;/li&gt; &lt;li&gt;增加自訂格式&lt;/li&gt; &lt;li&gt;準備安裝包&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;不過有人需要我也是可以幫你客制一個先給你用&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3119798540397310986-1408501618500144253?l=wlwextensionlearning.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/9-bUIU8xHOlH4SQ53-26XzkRUXk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9-bUIU8xHOlH4SQ53-26XzkRUXk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/9-bUIU8xHOlH4SQ53-26XzkRUXk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9-bUIU8xHOlH4SQ53-26XzkRUXk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/WlwExtensionLearning/~4/o0jaikqQCUY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://wlwextensionlearning.blogspot.com/feeds/1408501618500144253/comments/default" title="張貼意見" /><link rel="replies" type="text/html" href="http://wlwextensionlearning.blogspot.com/2010/09/wlw-plurk.html#comment-form" title="0 個意見" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3119798540397310986/posts/default/1408501618500144253?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3119798540397310986/posts/default/1408501618500144253?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WlwExtensionLearning/~3/o0jaikqQCUY/wlw-plurk.html" title="WLW Plurk 相關資訊" /><author><name>Admin</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://wlwextensionlearning.blogspot.com/2010/09/wlw-plurk.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkQDRnYzcSp7ImA9Wx5QGU4.&quot;"><id>tag:blogger.com,1999:blog-3119798540397310986.post-7259180319350238793</id><published>2010-09-08T01:26:00.001-07:00</published><updated>2010-09-08T01:26:17.889-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-08T01:26:17.889-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="工作日誌" /><title>工作日誌2010/09/08: 關於PublishNotificationHook</title><content type="html">&lt;p&gt;自從寫完第一個&lt;a href="http://wlwextensionlearning.blogspot.com/2010/09/windows-live-writer-plugin-world-sample.html"&gt;Hello World&lt;/a&gt;之後，本來緊接著就打算繼續把PublishNotificationHook放入原來的第一個&lt;a href="http://wlwextensionlearning.blogspot.com/2010/09/windows-live-writer-plugin-world-sample.html"&gt;Hello World&lt;/a&gt;之中。&lt;/p&gt; &lt;p&gt;參考網路這篇文章(&lt;a href="http://scottisafooldev.spaces.live.com/blog/cns!FE151030F50B5B37!982.entry"&gt;The New Live Writer SDK&lt;/a&gt;)裡面的source code，單純的把code加入之後，就像以下的狀態。&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9D7513F9-C04C-4721-824A-2B34F0212519:2befa5ae-f93a-4d37-870c-7614a3fb216c" class="wlWriterEditableSmartContent"&gt;&lt;pre style=" width: 537px; height: 406px;background-color:White;overflow: auto;"&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #008080;"&gt; 1&lt;/span&gt; &lt;span style="color: #0000FF;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt; WindowsLive.Writer.Api;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 2&lt;/span&gt; &lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 3&lt;/span&gt; &lt;span style="color: #000000;"&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;namespace&lt;/span&gt;&lt;span style="color: #000000;"&gt; LiveWriterHelloWorld&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 4&lt;/span&gt; &lt;span style="color: #000000;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 5&lt;/span&gt; &lt;span style="color: #000000;"&gt;    [WriterPluginAttribute&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 6&lt;/span&gt; &lt;span style="color: #000000;"&gt;      (&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;quot;2f437bf1&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;fe57&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;41c8&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;931a&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;d20066ea174e&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;quot;, &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;quot;Hello World&lt;/span&gt;&lt;span style="color: #000000;"&gt;!&lt;/span&gt;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;quot;,&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 7&lt;/span&gt; &lt;span style="color: #000000;"&gt;        PublisherUrl &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;quot;http:&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;wlwextensionlearning.blogspot.com/&amp;amp;quot;,&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 8&lt;/span&gt; &lt;span style="color: #008000;"&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;        Description &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;quot;Going to 2nd testing code&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;quot;)]&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 9&lt;/span&gt; &lt;span style="color: #000000;"&gt;    [InsertableContentSourceAttribute(&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;quot;Hello World&lt;/span&gt;&lt;span style="color: #000000;"&gt;!&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;quot;, SidebarText &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;quot;Hello World&lt;/span&gt;&lt;span style="color: #000000;"&gt;!&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;quot;)]&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;10&lt;/span&gt; &lt;span style="color: #000000;"&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt; HelloWorldPlugin : ContentSource&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;11&lt;/span&gt; &lt;span style="color: #000000;"&gt;    {&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;12&lt;/span&gt; &lt;span style="color: #000000;"&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;override&lt;/span&gt;&lt;span style="color: #000000;"&gt; DialogResult CreateContent(IWin32Window dialogOwner, &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;ref&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; content)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;13&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;14&lt;/span&gt; &lt;span style="color: #000000;"&gt;            content &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;lt;b&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;gt;Hello World&lt;/span&gt;&lt;span style="color: #000000;"&gt;!&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;b&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;quot;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;15&lt;/span&gt; &lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;16&lt;/span&gt; &lt;span style="color: #000000;"&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; DialogResult.OK;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;17&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;18&lt;/span&gt; &lt;span style="color: #000000;"&gt;    }&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;19&lt;/span&gt; &lt;span style="color: #000000;"&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt; PublishNotificationExample : PublishNotificationHook&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;20&lt;/span&gt; &lt;span style="color: #000000;"&gt;    {&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;21&lt;/span&gt; &lt;span style="color: #000000;"&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;override&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;bool&lt;/span&gt;&lt;span style="color: #000000;"&gt; OnPrePublish(IWin32Window dialogOwner,&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;22&lt;/span&gt; &lt;span style="color: #000000;"&gt;        IProperties properties, IPublishingContext publishingContext,&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;23&lt;/span&gt; &lt;span style="color: #000000;"&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;bool&lt;/span&gt;&lt;span style="color: #000000;"&gt; publish)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;24&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;25&lt;/span&gt; &lt;span style="color: #000000;"&gt;            &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; Check the post contents to see if liveside appears, if it does,             &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; return true (publish), &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;26&lt;/span&gt; &lt;span style="color: #008000;"&gt;            &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; if it doesn't, return false (cancel publish)&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;27&lt;/span&gt; &lt;span style="color: #008000;"&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; publishingContext.PostInfo.Contents.ToLower().Contains(&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;quot;liveside&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;quot;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;28&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;29&lt;/span&gt; &lt;span style="color: #000000;"&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;override&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; OnPostPublish(IWin32Window dialogOwner,&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;30&lt;/span&gt; &lt;span style="color: #000000;"&gt;               IProperties properties, IPublishingContext publishingContext,&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;31&lt;/span&gt; &lt;span style="color: #000000;"&gt;                &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;bool&lt;/span&gt;&lt;span style="color: #000000;"&gt; publish)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;32&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;33&lt;/span&gt; &lt;span style="color: #000000;"&gt;            &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; If this post is a draft (false), don't do anything&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;34&lt;/span&gt; &lt;span style="color: #008000;"&gt;            &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; if it's an actual publish, then publish = true;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;35&lt;/span&gt; &lt;span style="color: #008000;"&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #000000;"&gt;!&lt;/span&gt;&lt;span style="color: #000000;"&gt;publish)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;36&lt;/span&gt; &lt;span style="color: #000000;"&gt;                &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;37&lt;/span&gt; &lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;38&lt;/span&gt; &lt;span style="color: #000000;"&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; updateTwitter &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Format(&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;quot;{&lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;} &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; {&lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;quot;,&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;39&lt;/span&gt; &lt;span style="color: #000000;"&gt;                publishingContext.PostInfo.Title,&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;40&lt;/span&gt; &lt;span style="color: #000000;"&gt;                publishingContext.PostInfo.Permalink);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;41&lt;/span&gt; &lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;42&lt;/span&gt; &lt;span style="color: #000000;"&gt;            &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; Code to update Twitter&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;43&lt;/span&gt; &lt;span style="color: #008000;"&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;        }&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;44&lt;/span&gt; &lt;span style="color: #000000;"&gt;    }&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;45&lt;/span&gt; &lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;編譯完之後，會發現無法收到callback event… 持續探討(&lt;a href="http://scottisafooldev.spaces.live.com/blog/cns!FE151030F50B5B37!982.entry"&gt;The New Live Writer SDK&lt;/a&gt;) 的原始碼之後。 發現問題可能出在&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9D7513F9-C04C-4721-824A-2B34F0212519:fa273fdf-abf1-42d6-9191-0c5f6a4fd639" class="wlWriterEditableSmartContent"&gt;&lt;pre style=" width: 505px; height: 200px;background-color:White;overflow: auto;"&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #008080;"&gt; 1&lt;/span&gt; &lt;span style="color: #000000;"&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt; HelloWorldPlugin : ContentSource&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 2&lt;/span&gt; &lt;span style="color: #000000;"&gt;    {&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 3&lt;/span&gt; &lt;span style="color: #000000;"&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;override&lt;/span&gt;&lt;span style="color: #000000;"&gt; DialogResult CreateContent(IWin32Window dialogOwner, &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;ref&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; content)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 4&lt;/span&gt; &lt;span style="color: #000000;"&gt;        {&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 5&lt;/span&gt; &lt;span style="color: #000000;"&gt;            content &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;lt;b&amp;gt;Hello World!&amp;lt;/b&amp;gt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 6&lt;/span&gt; &lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 7&lt;/span&gt; &lt;span style="color: #000000;"&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; DialogResult.OK;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 8&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 9&lt;/span&gt; &lt;span style="color: #000000;"&gt;    }&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;10&lt;/span&gt; &lt;span style="color: #000000;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;也就是主要是因為有implement ContentSource 的關係，造成無法收到相關的event。&amp;nbsp; 這個主要原因可能有待詳細查看。當你改好並且把DLL 複製好之後你就會在你的blog 的plugin上面查看到。 &lt;br /&gt;&lt;p&gt;&lt;img border="0" hspace="0" alt="WLW0908.jpg" src="http://farm5.static.flickr.com/4132/4970597862_365576a678.jpg"&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;以上..&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3119798540397310986-7259180319350238793?l=wlwextensionlearning.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/lNYOp-s-YHdyGzMM5PGPyyrh7dE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lNYOp-s-YHdyGzMM5PGPyyrh7dE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/lNYOp-s-YHdyGzMM5PGPyyrh7dE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lNYOp-s-YHdyGzMM5PGPyyrh7dE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/WlwExtensionLearning/~4/2K9Z8ZgNuCg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://wlwextensionlearning.blogspot.com/feeds/7259180319350238793/comments/default" title="張貼意見" /><link rel="replies" type="text/html" href="http://wlwextensionlearning.blogspot.com/2010/09/20100908-publishnotificationhook.html#comment-form" title="0 個意見" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3119798540397310986/posts/default/7259180319350238793?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3119798540397310986/posts/default/7259180319350238793?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WlwExtensionLearning/~3/2K9Z8ZgNuCg/20100908-publishnotificationhook.html" title="工作日誌2010/09/08: 關於PublishNotificationHook" /><author><name>Admin</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://farm5.static.flickr.com/4132/4970597862_365576a678_t.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://wlwextensionlearning.blogspot.com/2010/09/20100908-publishnotificationhook.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A08FSH0zeCp7ImA9Wx5QF0s.&quot;"><id>tag:blogger.com,1999:blog-3119798540397310986.post-1324711821692748837</id><published>2010-09-06T03:43:00.001-07:00</published><updated>2010-09-06T03:43:39.380-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-06T03:43:39.380-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="原始碼" /><category scheme="http://www.blogger.com/atom/ns#" term="學習心得" /><title>第一個Windows Live Writer plugin "Hello World" (sample code)</title><content type="html">&lt;p&gt; 這裡敘述的Hello Wolrd主要是利用Ben Hall的一篇文章&lt;a href="http://blog.benhall.me.uk/2007/09/windows-live-writer-plugin-hello-world.html"&gt;Windows Live Writer Plugin - Hello World!&lt;/a&gt;。 (Related code and article refer from &lt;a href="http://blog.benhall.me.uk/2007/09/windows-live-writer-plugin-hello-world.html"&gt;this&lt;/a&gt;)&lt;/p&gt; &lt;p&gt;&lt;strong&gt;必要工具:&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Visual Studio (這裡用的是2005)&lt;/li&gt; &lt;li&gt;安裝過的Window Live Writer (這裡裝的是最新版B14.0.8089)&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;詳細流程:&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;開啟Visual Studio(2005)，選取C# Project的Class Library。&lt;br&gt;&lt;/li&gt; &lt;p&gt;&lt;img border="0" hspace="0" alt="WLW_01.jpg" src="http://farm5.static.flickr.com/4085/4963442386_465b803c9b.jpg"&gt;&lt;/p&gt; &lt;li&gt;講兩個需要用的reference 加入參考，首先打開"References”&amp;nbsp; 按下右鍵。"Add References”&lt;br&gt;&lt;/li&gt; &lt;p&gt;&lt;img border="0" hspace="0" alt="WLW_02.jpg" src="http://farm5.static.flickr.com/4104/4962852889_daa084b5de.jpg"&gt;&lt;/p&gt; &lt;li&gt;加入一個"System.Windows.Forms"在COM裡面，此外再加入一個額外Windows Live Writer API DLL。選取”Browse”然後點選C:\Program Files\Windows Live\Writer\WindowsLive.Writer.Api.dll。&lt;br&gt;&lt;/li&gt; &lt;p&gt;&lt;img border="0" hspace="0" alt="WLW_03.jpg" src="http://farm5.static.flickr.com/4129/4963469610_748f67ff2d.jpg"&gt;&lt;/p&gt; &lt;li&gt;加入以下的source code. (This source modify from &lt;a href="http://blog.benhall.me.uk/2007/09/windows-live-writer-plugin-hello-world.html"&gt;Ben Hall’s article&lt;/a&gt;)&lt;br&gt;&lt;/li&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9D7513F9-C04C-4721-824A-2B34F0212519:f33e9a1d-e54a-4139-89be-50bf2e87aa99" class="wlWriterEditableSmartContent"&gt;&lt;pre class="brush: csharp; gutter: false; first-line: 1; tab-size: 4;  toolbar: false;  width: 537px; height: 406px;" style=" width: 537px; height: 406px;overflow: auto;"&gt;using System.Windows.Forms;&lt;br /&gt;using WindowsLive.Writer.Api;&lt;br /&gt;&lt;br /&gt;namespace LiveWriterHelloWorld&lt;br /&gt;{&lt;br /&gt;    [WriterPluginAttribute&lt;br /&gt;      (&amp;quot;2f437bf1-fe57-41c8-931a-d20066ea174e&amp;quot;, &amp;quot;Hello World!&amp;quot;,&lt;br /&gt;        PublisherUrl = &amp;quot;http://wlwextensionlearning.blogspot.com/&amp;quot;,&lt;br /&gt;        Description = &amp;quot;Insert Hello World! into the blog post&amp;quot;)]&lt;br /&gt;    [InsertableContentSourceAttribute(&amp;quot;Hello World!&amp;quot;, SidebarText = &amp;quot;Hello World!&amp;quot;)]&lt;br /&gt;    public class HelloWorldPlugin : ContentSource&lt;br /&gt;    {&lt;br /&gt;        public override DialogResult CreateContent(IWin32Window dialogOwner, ref string content)&lt;br /&gt;        {&lt;br /&gt;            content = &amp;quot;&amp;lt;b&amp;gt;Hello World!&amp;lt;/b&amp;gt;&amp;quot;;&lt;br /&gt;&lt;br /&gt;            return DialogResult.OK;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br /&gt;&lt;li&gt;複製DLL到C:\Program Files\Windows Live\Writer\Plugins 然後重新啟動Windows Live Writer應該就會看到這個新的plugin.&lt;br&gt;&lt;/li&gt;&lt;br /&gt;&lt;p&gt;&lt;img border="0" hspace="0" alt="WLW_04.jpg" src="http://farm5.static.flickr.com/4083/4962935295_be1634911d.jpg"&gt;&lt;/p&gt;&lt;br /&gt;&lt;li&gt;直接按下去就會跑出 “Hello World”&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;參考文章:&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://blog.benhall.me.uk/2007/09/windows-live-writer-plugin-hello-world.html"&gt;Windows Live Writer Plugin - Hello World!&lt;/a&gt; (&lt;a title="Blog.BenHall.me.uk" href="http://blog.benhall.me.uk/"&gt;Blog.BenHall.me.uk&lt;/a&gt;)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa738906.aspx"&gt;Windows Live Writer SDK&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3119798540397310986-1324711821692748837?l=wlwextensionlearning.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/SO4CSmWVUwiQg9LdhjsH3vtLubM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SO4CSmWVUwiQg9LdhjsH3vtLubM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/SO4CSmWVUwiQg9LdhjsH3vtLubM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SO4CSmWVUwiQg9LdhjsH3vtLubM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/WlwExtensionLearning/~4/9Pk0W5T_YU8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://wlwextensionlearning.blogspot.com/feeds/1324711821692748837/comments/default" title="張貼意見" /><link rel="replies" type="text/html" href="http://wlwextensionlearning.blogspot.com/2010/09/windows-live-writer-plugin-world-sample.html#comment-form" title="0 個意見" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3119798540397310986/posts/default/1324711821692748837?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3119798540397310986/posts/default/1324711821692748837?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WlwExtensionLearning/~3/9Pk0W5T_YU8/windows-live-writer-plugin-world-sample.html" title="第一個Windows Live Writer plugin &amp;quot;Hello World&amp;quot; (sample code)" /><author><name>Admin</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://farm5.static.flickr.com/4085/4963442386_465b803c9b_t.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://wlwextensionlearning.blogspot.com/2010/09/windows-live-writer-plugin-world-sample.html</feedburner:origLink></entry></feed>

