<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>gclassy.com : Gregory (Gus) Class's Media Technology Blog</title><link>http://blogs.msdn.com/gclass/default.aspx</link><description>Microsoft's Consumer Media Technology from a Programmer Writer's Perspective</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Moved!</title><link>http://blogs.msdn.com/gclass/archive/2009/01/06/moved.aspx</link><pubDate>Wed, 07 Jan 2009 04:47:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9286626</guid><dc:creator>gclass</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/gclass/comments/9286626.aspx</comments><wfw:commentRss>http://blogs.msdn.com/gclass/commentrss.aspx?PostID=9286626</wfw:commentRss><description>I have finally moved this blog over to my hosted site at &lt;A href="http://gclassy.com/"&gt;http://gclassy.com&lt;/A&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9286626" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/gclass/archive/tags/moved/default.aspx">moved</category></item><item><title>What makes a blog good?  How can you make your blog better?</title><link>http://blogs.msdn.com/gclass/archive/2008/12/12/what-makes-a-blog-good-how-can-i-make-my-blog-better.aspx</link><pubDate>Fri, 12 Dec 2008 22:25:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9203497</guid><dc:creator>gclass</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/gclass/comments/9203497.aspx</comments><wfw:commentRss>http://blogs.msdn.com/gclass/commentrss.aspx?PostID=9203497</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;I have been thinking about this a lot lately as I have been thinking of ways that I can improve my blog. I also have been tasked with participating on a panel of bloggers across Microsoft who will be addressing a number of moderated questions in about a month. Reading Chris Anderson's book, &lt;U&gt;&lt;A href="http://www.amazon.com/Long-Tail-Revised-Updated-Business/dp/1401309666/ref=pd_bbs_sr_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1229115069&amp;amp;sr=8-1" mce_href="http://www.amazon.com/Long-Tail-Revised-Updated-Business/dp/1401309666/ref=pd_bbs_sr_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1229115069&amp;amp;sr=8-1"&gt;The Long Tail&lt;/A&gt;&lt;/U&gt;, has helped me identify a number of those ideas into more tangible concept. Blogging is definitely about the reader and the reader typically is drawn by two things: &lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpFirst style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;The authority of the blog source&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;The relevance of the information sent out on the blog to the reader&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;How can bloggers improve their blogs to make the source more relevant and authoritative? I will try to address this briefly but please add any additions that you may have as comments.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;U&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;Authority.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;For authority, there are a number of possibilities that you can leverage to your advantage. You just need to think about the various things that make you unique and then use these things to entice the reader. In my case, I work for Microsoft, which gives me an insider's perspective and access to information and resources that people outside Microsoft don't have. As a programming writer, I am connected to the heartbeat of best practices at Microsoft for clearly communicating programming concepts. I believe that everybody has something that makes them unique to readers and has a perspective that they can provide which translates into value for readers. Beyond the resources that make you unique, you can increase your authority by increasing the number of people reading your blog, the number of people linking to your blog, and the number of times that your blog gets cited as a source.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;U&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;Relevance.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;Relevance in the case of blogs and blogging is really about figuring out what your targeted readers want to be reading about. Being passionate about a concept is sufficient to find sources for things to blog about, but really narrowing down what your talking points are will generate a readership that is loyal. For me, relevance has been an issue that I have attempted to address in a few past years of running my blog. One thing that I have tried is reducing the number of entries that I post in an effort to make each entry more relevant. My entries shifted from "this is an interesting point on the media / technology" citations outside my blog to "I just worked on this and this was what could have been confusing for a newbie". What I'm finding now, however, is that I should also be posting more entries. More frequent blog updates that are on topic to my blog should help to increase my blogs relevance to readers. These entries shouldn't be trash, however; they should be focused to the audience that I am targeting. In &lt;U&gt;The Long Tail&lt;/U&gt;, Anderson points out that even the smallest niches have a place in a free marketplace where the additional cost of adding or consuming the niche is low.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;U&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;The Authority-Relevance Dynamic.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;There is a relationship that exists for blogs between relevance and authority: as relevance increases, readership increases, which in turn makes the blog more authoritative. As blogs become more authoritative, the number of comments goes up, making the blog more relevant. See the &lt;A href="http://minimsft.blogspot.com/" mce_href="http://minimsft.blogspot.com/"&gt;mini-microsoft&lt;/A&gt; blog for a great example of this.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;U&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;Easy Tricks to Create Relevance and Authority&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;Share the love and add more links to sources of information.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;For example, after writing my post, I went ahead and found a few other blog entries on this that are worth checking out.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I'll list them at the end of the post.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;Add your blog to the big aggregators.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;Technorati.com lets you "Claim your blog" which adds ATOM and RSS support via their interface.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This in turn will get you onto the major RSS aggregator sites such as &lt;A href="http://bloglines.com/" mce_href="http://bloglines.com/"&gt;&lt;FONT color=#0000ff&gt;bloglines.com&lt;/FONT&gt;&lt;/A&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;Put your blog on a domain.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;This is a cheap way to create authority. Buy a domain, put your blog on it. Search engines give people higher ranks when they are hosted on their own domain.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;Work to get the keywords right.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;This goes hand in hand with working the niches. Identify your niche and make sure that the keywords you are using in blog and entry metadata are appropriate for the entry and your blog.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;U&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;A Call To Action.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;So, now, how can you improve your blog?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;What should you do next to make it more authoritative and relevant?&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;Set some goals.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;Studies show that people who set goals perform better. This means, if you identify where you want to take your blog and set some goals around it, it's much more likely that you will succeed in creating an influential blog. When you set goals, a great system is the S.M.A.R.T. system. This mnemonic stands for specific, measureable, attainable, realistic, and timely. More information about S.M.A.R.T. is available in the links at the bottom. As an example, by this time next year I will have twice as many views per post.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I will do this by sticking to my plan and tracking my progress. So here it is, by December 2009, I want to have 2000 views per post.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I also want to be posting much more. 15 entries per month.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I want all of my posts to be relevant (I can't measure this, but it's a qualitative goal that I will measure by looking at the average number of views per entry).&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;Identify the right niche.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;Do you want your readers to be Tablet PC developers who are interested in best practices and examples for the next generation of SDK materials? Or, do you want your readers to be users who are looking for clever tricks for their PCs. For me, this is a question that I don't yet have a clear answer to, but I need to think deep and identify who the people are that I can provide the most value to.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;Post more frequently.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;This is pretty simple. Believe it or not, the best bloggers blog! A lot! I'm guilty of not blogging enough. Despite my efforts to post less and make the entries more relevant, I have in effect segmented off a few readers from when I was posting more frequently. I will try to post relevant content to keep readers engaged with my blog in the future and will do this with fervor in an effort to drive up my relevance.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;Share the love.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;If you link, they will come. Links (in and out) are the way that spiders crawl the web. More links equals more touches by the spiders, and the greater your blog's relevance. Again, I'm guilty of not linking out enough. I will try to dramatically increase the number of external links and cross references that I make in entries. Perhaps I will even try to standardize this in my entries by adding a "for more information" section to each entry moving forward that includes a number of resources for further reading.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;Develop voice in your posts.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;Understanding your medium is very important in any form of writing.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Blogs tend to be very informal. Having dry or wordy posts can prevent readers from getting hooked on your entries.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Make sure that you develop an informal writing style for your posts to further separate your blog from the other 15 million or so blogs out there. Take this last consideration with a grain of salt, however… In some contexts, it could make sense to write up more formal or "stiff" blog entries. A blog presence for a newspaper, is one instance.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;But the case for formal blog entries is much more the exception than the rule.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;Please voice your opinion in my comments, any additional points will definitely be useful here.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;For More information&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpFirst style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;A href="http://www.topachievement.com/smart.html" mce_href="http://www.topachievement.com/smart.html"&gt;Creating S.M.A.R.T. Goals&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;A href="http://longtail.typepad.com/" mce_href="http://longtail.typepad.com/"&gt;The Long Tail Blog&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;A href="http://customblogging.blogspot.com/2007/06/building-blog-readership.html" mce_href="http://customblogging.blogspot.com/2007/06/building-blog-readership.html"&gt;Custom Blogging – improving your blog&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;A href="http://www.google-success.com/improving-blog-traffic-report.htm" mce_href="http://www.google-success.com/improving-blog-traffic-report.htm"&gt;Google Success – Improving Blog Traffic&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;A href="http://www.sarahdopp.com/blog/?p=498" mce_href="http://www.sarahdopp.com/blog/?p=498"&gt;Dopp Juice – Improving your Blog&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;A href="http://www.problogger.net/archives/2008/04/13/10-ways-to-improve-blog-traffic-in-30-minutes-or-less/" mce_href="http://www.problogger.net/archives/2008/04/13/10-ways-to-improve-blog-traffic-in-30-minutes-or-less/"&gt;10 ways to improve blog traffic in 30 minutes or less&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;A href="http://www.typepad.com/tips/blog-readership-tips.html" mce_href="http://www.typepad.com/tips/blog-readership-tips.html"&gt;10 Ways to Boost your Blog Readership&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9203497" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/gclass/archive/tags/the+long+tail/default.aspx">the long tail</category><category domain="http://blogs.msdn.com/gclass/archive/tags/blogging/default.aspx">blogging</category><category domain="http://blogs.msdn.com/gclass/archive/tags/goals/default.aspx">goals</category><category domain="http://blogs.msdn.com/gclass/archive/tags/discussion/default.aspx">discussion</category></item><item><title>Twitter, Tumblr, and social blogging</title><link>http://blogs.msdn.com/gclass/archive/2008/12/05/twitter-tumblr-and-social-blogging.aspx</link><pubDate>Sat, 06 Dec 2008 03:09:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9180850</guid><dc:creator>gclass</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/gclass/comments/9180850.aspx</comments><wfw:commentRss>http://blogs.msdn.com/gclass/commentrss.aspx?PostID=9180850</wfw:commentRss><description>&lt;P&gt;I have recently decided to start trying &lt;A class="" href="http://twitter.com/gguuss" mce_href="http://twitter.com/gguuss"&gt;Twitter&lt;/A&gt; again.&amp;nbsp; The problem that I had with it was I failed to really see how it would&amp;nbsp; be of much use to me as I already have &lt;A class="" href="http://meebo.com/" mce_href="http://meebo.com"&gt;chat&lt;/A&gt;, &lt;A class="" href="http://www.livejournal.com/" mce_href="http://www.livejournal.com"&gt;social blogging&lt;/A&gt;, and &lt;A class="" href="http://myspace.com/" mce_href="http://myspace.com"&gt;social&lt;/A&gt; &lt;A class="" href="http://www.facebook.com/" mce_href="http://www.facebook.com"&gt;networks&lt;/A&gt;&amp;nbsp;tracking my every move.&amp;nbsp; I am going to try it some more though to see if I get used to it or start to like it and see more utility than I had seen before in it.&amp;nbsp; First, I need to start following people... I suppose that once I'm on it and using it frequently enough, I will be able to crowdsource questions and that could be useful.&amp;nbsp; Anyways, there are some interesting things that people are doing with twitter, the following list is what I've seen so far:&lt;/P&gt;
&lt;P&gt;&lt;A class="" href="http://prblog.typepad.com/strategic_public_relation/2008/02/top-10-twitter.html" mce_href="http://prblog.typepad.com/strategic_public_relation/2008/02/top-10-twitter.html"&gt;10 Twitter PR Hacks&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class="" href="http://twitter.com/huffingtonpost" mce_href="http://twitter.com/huffingtonpost"&gt;Huffington Post's Twitter Feed&lt;/A&gt; - Great during the presidential debates...&lt;/P&gt;
&lt;P&gt;&lt;A class="" href="http://twitter.com/wallstreet" mce_href="http://twitter.com/wallstreet"&gt;Twitter's Wallstreet Feed&lt;/A&gt; - Kinda focused on the recession right now...&lt;/P&gt;
&lt;P&gt;&lt;A class="" href="http://www.slideshare.net/guestfd8f1/ogilvy-pr-360-di-twitter-webinar-presentation?type=powerpoint" mce_href="http://www.slideshare.net/guestfd8f1/ogilvy-pr-360-di-twitter-webinar-presentation?type=powerpoint"&gt;Twitter for Busines&lt;/A&gt;! - I found this on someone's tweet I followed.&lt;/P&gt;
&lt;P&gt;Anyways, there could potentially be some cool stuff on twitter, not just the noise I thought was on there when I scoffed at it a few years ago.&amp;nbsp; I'll try it and see how it goes.&lt;/P&gt;
&lt;P&gt;In related thoughts, there's a snippet-style social blogging application, &lt;A class="" href="http://gguuss.tumblr.com/" mce_href="http://gguuss.tumblr.com/"&gt;tumblr&lt;/A&gt;.&amp;nbsp; I have an old coworker who has been using that site for the past year or so and it looks like a nice and lazy way to make the blogging equivalent of tweets.&lt;/P&gt;
&lt;P&gt;All of these simple ways of putting tiny bits of data on the web seems&amp;nbsp;at a glance to be very pointless.&amp;nbsp; I mean who cares about a short thought or a tidbit of information placed onto a random blog. But, when you start to mine the data and look at it at a larger scoped level, there could definitely be potential to have lots of useful information that is exposed through the process.&amp;nbsp; Again, I'll be patient as I try tweeting and tumbling to see whether it's useful for me.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9180850" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/gclass/archive/tags/twitter/default.aspx">twitter</category><category domain="http://blogs.msdn.com/gclass/archive/tags/social/default.aspx">social</category><category domain="http://blogs.msdn.com/gclass/archive/tags/social+networks/default.aspx">social networks</category></item><item><title>Zune gets even better!</title><link>http://blogs.msdn.com/gclass/archive/2008/11/24/zune-gets-even-better.aspx</link><pubDate>Mon, 24 Nov 2008 23:08:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9138727</guid><dc:creator>gclass</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/gclass/comments/9138727.aspx</comments><wfw:commentRss>http://blogs.msdn.com/gclass/commentrss.aspx?PostID=9138727</wfw:commentRss><description>I just realized that with the 3.1 update to the Zune service, the Zune service (Zunepass)&amp;nbsp;will allow users to keep 10 songs a month, forever, in addition to having a la carte access to everything on Zune.&amp;nbsp; This hopefully will get all those people on the fence of deciding whether the Zune service is for them to get on board and start listening to music via the Zune subscription service. I'm very excited that the team was able to work this out!&amp;nbsp; I definitely love my Zune, but having worked on the DRM team, getting a deal with record labels like this isn't an easy feat.&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9138727" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/gclass/archive/tags/DRM/default.aspx">DRM</category><category domain="http://blogs.msdn.com/gclass/archive/tags/zune/default.aspx">zune</category><category domain="http://blogs.msdn.com/gclass/archive/tags/zunepass/default.aspx">zunepass</category><category domain="http://blogs.msdn.com/gclass/archive/tags/music/default.aspx">music</category></item><item><title>Hi, I'm a Tablet PC</title><link>http://blogs.msdn.com/gclass/archive/2008/11/20/hi-i-m-a-tablet-pc.aspx</link><pubDate>Fri, 21 Nov 2008 04:27:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9131250</guid><dc:creator>gclass</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/gclass/comments/9131250.aspx</comments><wfw:commentRss>http://blogs.msdn.com/gclass/commentrss.aspx?PostID=9131250</wfw:commentRss><description>&lt;P&gt;Looks like another parody was created at &lt;A class="" href="http://wipte.org/" mce_href="http://wipte.org"&gt;WIPTE&lt;/A&gt;&lt;/P&gt;
&lt;OBJECT height=344 width=425&gt;&lt;PARAM NAME="movie" VALUE="http://www.youtube.com/v/RNe-zO-shu4&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;PARAM NAME="allowFullScreen" VALUE="true"&gt;&lt;PARAM NAME="allowscriptaccess" VALUE="always"&gt;
&lt;embed src="http://www.youtube.com/v/RNe-zO-shu4&amp;hl=en&amp;fs=1" mce_src="http://www.youtube.com/v/RNe-zO-shu4&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/OBJECT&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9131250" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/gclass/archive/tags/tablet+pc/default.aspx">tablet pc</category></item><item><title>Multitouch, multitouch, multitouch!</title><link>http://blogs.msdn.com/gclass/archive/2008/11/19/multitouch-multitouch-multitouch.aspx</link><pubDate>Thu, 20 Nov 2008 04:42:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9126939</guid><dc:creator>gclass</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/gclass/comments/9126939.aspx</comments><wfw:commentRss>http://blogs.msdn.com/gclass/commentrss.aspx?PostID=9126939</wfw:commentRss><description>&lt;P&gt;Things are getting pretty exciting around here.&amp;nbsp; I have just finished my third year at Microsoft and have a brand new officemate, Cash Vo!&amp;nbsp; I have been working with the multitouch SDK for Windows 7 and I'm pleased with how simple development is for it and how responsive the hardware and software is at this phase of the product cycle.&amp;nbsp; I won't get too far into details on my development experience as I will be contributing an article or two with fresh information on this topic to the E7 blog that should more than whet your appetitite for multitouch development.&amp;nbsp; &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9126939" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/gclass/archive/tags/multitouch/default.aspx">multitouch</category><category domain="http://blogs.msdn.com/gclass/archive/tags/e7/default.aspx">e7</category><category domain="http://blogs.msdn.com/gclass/archive/tags/anniversary/default.aspx">anniversary</category></item><item><title>Developing Multitouch Applications</title><link>http://blogs.msdn.com/gclass/archive/2008/11/06/developing-multitouch-applications.aspx</link><pubDate>Fri, 07 Nov 2008 00:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9050523</guid><dc:creator>gclass</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/gclass/comments/9050523.aspx</comments><wfw:commentRss>http://blogs.msdn.com/gclass/commentrss.aspx?PostID=9050523</wfw:commentRss><description>I just saw &lt;A class="" href="http://channel9.msdn.com/pdc2008/PC03/" mce_href="http://channel9.msdn.com/pdc2008/PC03/"&gt;this&lt;/A&gt; interesting video online which has been very helpful in getting me to completely understand how multitouch will be developed.&amp;nbsp; I recommend it for anyone interested in how multitouch apps will be created when Windows 7 releases.&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9050523" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/gclass/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://blogs.msdn.com/gclass/archive/tags/multitouch/default.aspx">multitouch</category></item><item><title>PDC2008 Conference Keynotes Online</title><link>http://blogs.msdn.com/gclass/archive/2008/10/29/pdc2008-conference-speeches-online.aspx</link><pubDate>Thu, 30 Oct 2008 02:56:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9023267</guid><dc:creator>gclass</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/gclass/comments/9023267.aspx</comments><wfw:commentRss>http://blogs.msdn.com/gclass/commentrss.aspx?PostID=9023267</wfw:commentRss><description>&lt;P&gt;Check &lt;A class="" href="http://microsoftpdc.com/" mce_href="http://microsoftpdc.com/"&gt;this out&lt;/A&gt;!&lt;/P&gt;
&lt;P&gt;Lots of awesome gems there including the&lt;A class="" href="http://channel9.msdn.com/pdc2008/KYN02/" mce_href="http://channel9.msdn.com/pdc2008/KYN02/"&gt; Day #2 keynote that shows off Windows 7&lt;/A&gt;&amp;nbsp;[skip about&amp;nbsp;19 minutes into the presentation].&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9023267" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/gclass/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://blogs.msdn.com/gclass/archive/tags/PDC2008/default.aspx">PDC2008</category></item><item><title>Windows 7 First Impressions from PDC</title><link>http://blogs.msdn.com/gclass/archive/2008/10/28/windows-7-first-impressions-from-pdc.aspx</link><pubDate>Tue, 28 Oct 2008 23:18:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9020866</guid><dc:creator>gclass</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/gclass/comments/9020866.aspx</comments><wfw:commentRss>http://blogs.msdn.com/gclass/commentrss.aspx?PostID=9020866</wfw:commentRss><description>&lt;p&gt;I'm really excited for Windows 7, and it's been really hard to stay hush hush on it.&amp;nbsp; What's really exciting is that we're finally showing the public what is coming!&amp;nbsp; I could give you my impressions so far but instead you should check out &lt;a href="http://gizmodo.com/5069661/windows-7-walkthrough-boot-video-and-impressions" class="" mce_href="http://gizmodo.com/5069661/windows-7-walkthrough-boot-video-and-impressions"&gt;Gizmodo's first impressions&lt;/a&gt;&amp;nbsp;so that you don't have to take my (albeit a little biased) word for it.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;The key features that I've been really anxious to show off:&lt;br&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Math input control!&lt;/li&gt;
&lt;li&gt;Awesome DLNA support (Windows Media is seriously rocking!!!)&lt;/li&gt;
&lt;li&gt;New windowing features&lt;/li&gt;
&lt;li&gt;New taskbar features&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Anyways, some good stuff out there.&amp;nbsp; Let's see if &lt;a href="http://www.winsupersite.com/win7/win7_preview.asp" class="" mce_href="http://www.winsupersite.com/win7/win7_preview.asp"&gt;everyone&lt;/a&gt; &lt;a href="http://www.pcpro.co.uk/news/233022/revealed-whats-in-windows-7.html" mce_href="http://www.pcpro.co.uk/news/233022/revealed-whats-in-windows-7.html"&gt;else &lt;/a&gt;gets as &lt;a href="http://www.betanews.com/article/PDC_2008_Live_blog_of_the_Windows_7_keynote/1225207963" class="" mce_href="http://www.betanews.com/article/PDC_2008_Live_blog_of_the_Windows_7_keynote/1225207963"&gt;excited&lt;/a&gt; as I am about 7.&amp;nbsp; Here's to hoping something big is said in the &lt;a href="http://blogs.msdn.com/e7/" mce_href="http://blogs.msdn.com/e7/"&gt;E7 blog &lt;/a&gt;at some point.&lt;br&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9020866" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/gclass/archive/tags/Windows+7/default.aspx">Windows 7</category></item><item><title>CComPtr and CComQIPtr, ATL / COM's smart pointers</title><link>http://blogs.msdn.com/gclass/archive/2008/10/10/ccomptr-and-ccomqiptr.aspx</link><pubDate>Fri, 10 Oct 2008 21:34:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8994687</guid><dc:creator>gclass</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/gclass/comments/8994687.aspx</comments><wfw:commentRss>http://blogs.msdn.com/gclass/commentrss.aspx?PostID=8994687</wfw:commentRss><description>&lt;P&gt;Until I&amp;nbsp;started working&amp;nbsp;at Microsoft, or maybe even until I started working on Windows,&amp;nbsp;I wasn't much of a "COM in C++"&amp;nbsp;guy.&amp;nbsp; The&amp;nbsp;functionality that I needed was typically abstracted in to a managed language such as C# and so I could get by by&amp;nbsp;without ever really learning COM.&amp;nbsp; In fact, I had only written 1 application that used COM (in C++) and I had no idea what I was doing when I created it.&amp;nbsp; The biggest barrier to learning for me has been the various&amp;nbsp;tasks that most&amp;nbsp;programmers perform once, then&amp;nbsp;reuse, or the various patterns that developers use .&amp;nbsp; After working on Windows, I have found many of the nuances of COM to be much more trivial than I had first thought.&amp;nbsp; Every now and then I encounter something new or interesting (in other words, confusing) in code that I am working with.&amp;nbsp; One of the more interesting patterns has been the &lt;A href="http://msdn.microsoft.com/en-us/library/ezzw7k98(VS.80).aspx" mce_href="http://msdn.microsoft.com/en-us/library/ezzw7k98(VS.80).aspx"&gt;CComPtr&lt;/A&gt; / &lt;A href="http://msdn.microsoft.com/en-us/library/wc177dxw(VS.80).aspx" mce_href="http://msdn.microsoft.com/en-us/library/wc177dxw(VS.80).aspx"&gt;CComQIPtr&lt;/A&gt; objects.&amp;nbsp; When working in COM, I typically write code that follows following pattern to get and use objects.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Create&amp;nbsp;the object using &lt;A href="http://msdn.microsoft.com/en-us/library/ms686615.aspx" mce_href="http://msdn.microsoft.com/en-us/library/ms686615.aspx"&gt;CoCreateInstance&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Perform my actions with the&amp;nbsp;retrieved object&lt;/LI&gt;
&lt;LI&gt;Release the object...&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;I have talked about this in previous posts, the process is pretty straightforward and is pretty similar to constructing "normal" objects in C++.&lt;/P&gt;
&lt;P&gt;Now, occasionally, this object gets passed around between functions rather than getting accessed globally or using an accessor on the class that contains it.&amp;nbsp; As such, the object gets passed around as an IUnknown object.&amp;nbsp; From the unknown interface pointer (pUnknown), I must then get a reference to the original object.&amp;nbsp; COM's CComPtr and CComQIPtr, both referred to as smart pointers because they keep track of references and deallocate&amp;nbsp;them when&amp;nbsp;the pointer&amp;nbsp;goes out of scope, enable developers to do this.&amp;nbsp; Each of these objects is also a template class (they can be created for any type of COM object) so they're convenient for converting pointers to unknown objects into usable interfaces based on the template.&amp;nbsp; The following example shows how an unknown pointer could be translated into a pointer to a COM object for the&amp;nbsp;SomeInterface interface&amp;nbsp;using the CComPtr interface.&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt; BACKGROUND: #f2f2f2; mso-background-themecolor: background1; mso-background-themeshade: 242" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;CComPtr&amp;lt;ISomInterface&amp;gt; spSomeInterface;&lt;BR&gt;HRESULT hr = pUnk-&amp;gt;QueryInterface&amp;lt;ISomeInterface&amp;gt;(&amp;amp;spSomeInterface)&lt;BR&gt;if (SUCCEEDED(hr)){&lt;BR&gt;&amp;nbsp; spSomeInterface-&amp;gt;DoSomethingImportant();&lt;BR&gt;}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;The pattern is pretty straightforward:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Create the smart pointer&lt;/LI&gt;
&lt;LI&gt;Run &lt;A href="http://msdn.microsoft.com/en-us/library/ms682521.aspx" mce_href="http://msdn.microsoft.com/en-us/library/ms682521.aspx"&gt;QueryInterface&lt;/A&gt;&amp;nbsp;to retrieve the interface&lt;/LI&gt;
&lt;LI&gt;Test the HRESULT&lt;/LI&gt;
&lt;LI&gt;Use the queried interface&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Alternatively, you can use the CComQIPtr safe pointer and can skip the query interface step as shown in the following example.&lt;/P&gt;
&lt;P style="BACKGROUND: #f2f2f2; mso-background-themecolor: background1; mso-background-themeshade: 242"&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;CComQIPtr&amp;lt;ISomeInterface&amp;gt; spSomeInterface(pUnk);&lt;BR&gt;if (spSomeInterface){&lt;BR&gt;&amp;nbsp; spSomeInterface-&amp;gt;DoSomething();&lt;BR&gt;}&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;In the case of CComQIPtr,&amp;nbsp;the object will be&amp;nbsp;NULL if it can't be&amp;nbsp;found in the&amp;nbsp;interfaces that the unknown interface&amp;nbsp;has.&amp;nbsp;I won't get into the details of these two interfaces as it seems there are a number of people who prefer one or the other.&amp;nbsp; More information on this can be found &lt;A href="http://blogs.msdn.com/jeffdav/archive/2007/04/10/on-ccomqiptr.aspx" mce_href="http://blogs.msdn.com/jeffdav/archive/2007/04/10/on-ccomqiptr.aspx"&gt;here&lt;/A&gt; and &lt;A href="http://www.eggheadcafe.com/forumarchives/vcatl/Jul2005/post23416195.asp" mce_href="http://www.eggheadcafe.com/forumarchives/vcatl/Jul2005/post23416195.asp"&gt;here&lt;/A&gt;.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8994687" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/gclass/archive/tags/programming/default.aspx">programming</category><category domain="http://blogs.msdn.com/gclass/archive/tags/COM/default.aspx">COM</category><category domain="http://blogs.msdn.com/gclass/archive/tags/patterns/default.aspx">patterns</category><category domain="http://blogs.msdn.com/gclass/archive/tags/CComPtr/default.aspx">CComPtr</category><category domain="http://blogs.msdn.com/gclass/archive/tags/ATL/default.aspx">ATL</category><category domain="http://blogs.msdn.com/gclass/archive/tags/CComQIPtr/default.aspx">CComQIPtr</category><category domain="http://blogs.msdn.com/gclass/archive/tags/code/default.aspx">code</category></item><item><title>My MSDN Magazine article on developing for Tablet PC is online!</title><link>http://blogs.msdn.com/gclass/archive/2008/10/06/my-msdn-magazine-article-on-developing-with-tablet-is-online.aspx</link><pubDate>Mon, 06 Oct 2008 23:58:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8978733</guid><dc:creator>gclass</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/gclass/comments/8978733.aspx</comments><wfw:commentRss>http://blogs.msdn.com/gclass/commentrss.aspx?PostID=8978733</wfw:commentRss><description>&lt;P&gt;Woo!&amp;nbsp; Check it out here:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://msdn.microsoft.com/en-us/magazine/cc967278.aspx" mce_href="http://msdn.microsoft.com/en-us/magazine/cc967278.aspx"&gt;http://msdn.microsoft.com/en-us/magazine/cc967278.aspx&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8978733" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/gclass/archive/tags/tablet+pc/default.aspx">tablet pc</category><category domain="http://blogs.msdn.com/gclass/archive/tags/writing/default.aspx">writing</category><category domain="http://blogs.msdn.com/gclass/archive/tags/MSDN+magazine/default.aspx">MSDN magazine</category></item><item><title>A response to criticism for Microsoft's compliance documentation</title><link>http://blogs.msdn.com/gclass/archive/2008/09/26/a-response-to-criticism-for-microsoft-s-compliance-documentation.aspx</link><pubDate>Sat, 27 Sep 2008 02:26:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8967214</guid><dc:creator>gclass</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/gclass/comments/8967214.aspx</comments><wfw:commentRss>http://blogs.msdn.com/gclass/commentrss.aspx?PostID=8967214</wfw:commentRss><description>&lt;P&gt;I want to preface this that this&amp;nbsp;post is my personal perspective and that of what I have seen from my peers and is not anything official from Microsoft.&amp;nbsp; Anyways...&lt;/P&gt;
&lt;P&gt;I just encountered &lt;A class="" href="http://entertainment.slashdot.org/article.pl?sid=08/09/26/1933216" mce_href="http://entertainment.slashdot.org/article.pl?sid=08/09/26/1933216"&gt;an article on Slashdot&lt;/A&gt; chastising Microsoft's documentation indirectly by citing a ruling that Microsoft's documentation is &lt;A class="" href="http://arstechnica.com/news.ars/post/20080925-judge-microsoft-documentation-unfit-for-us-consumption.html" mce_href="http://arstechnica.com/news.ars/post/20080925-judge-microsoft-documentation-unfit-for-us-consumption.html"&gt;unfit for US consumption&lt;/A&gt;.&amp;nbsp; As a writer who produces our documentation I'm a little offended but I also understand the typical criticisms.&amp;nbsp; For developers, documentation can be a giant pain in the tush...&amp;nbsp; The last thing that you want to be working on after writing some cool code is to go back over it again and explain it so that someone else can use it without having your domain knowledge.&amp;nbsp; For architects, it is difficult to specify a particular protocol or technology without revealing trade secrets.&amp;nbsp; For programming writers (what I do) it can be difficult to determine which things are important for developers, which areas they're going to have trouble with, and the best way to communicate this (are we dealing with expert programmers, or novice programmers?):&lt;/P&gt;
&lt;P&gt;More information here: &lt;A href="http://ploneglenn.blogspot.com/2008/09/bane-of-every-coder.html"&gt;http://ploneglenn.blogspot.com/2008/09/bane-of-every-coder.html&lt;/A&gt;&lt;BR&gt;And here as well:&amp;nbsp; &lt;A href="http://www.dynamicalsoftware.com/cgi-bin/ViewBlogEntry.pl?id=14"&gt;http://www.dynamicalsoftware.com/cgi-bin/ViewBlogEntry.pl?id=14&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;The challenges that Microsoft faces in producing compliance documentation for software&amp;nbsp;are varied.&amp;nbsp; For starters, what is sufficient documentation, and for whom?&amp;nbsp; For an architect, a specification that shows the system from a high level and that specifies the protocols for a particular technology may be sufficient to communicate a means for implementing a custom or third party application that uses or interoperates with a technology.&amp;nbsp; For&amp;nbsp;&lt;STRONG&gt;SOME&lt;/STRONG&gt; developers (and some interfaces for that matter), code demonstrating how an API is used is sufficient to use that API.&amp;nbsp; For others, a broad explanation of the particulars of that interface and its usage are necessary.&amp;nbsp; What if our audience is NOT a developer?&amp;nbsp; What is sufficient for those people?&amp;nbsp; Do we need to explain what a computer is, what networking is, and so on?&amp;nbsp; Where do we, as writers draw the line?&amp;nbsp; How do we identify the right areas to focus our attention.&amp;nbsp; The even larger problem is that we are constantly working with a moving target.&amp;nbsp; The documentation MUST ship for compliance at the same time that its related product is shipping.&amp;nbsp; If halfway through the product's development lifecycle, the interfaces change, all of the work that we, as writers, have produced can immediately become useless.&amp;nbsp; Another problem is that if a particular design will not work, the architecture can change, eliminating much of the writing work that was performed to explain the architecture.&amp;nbsp; These are the problems that face writers every day.&lt;/P&gt;
&lt;P&gt;What the article stating the&amp;nbsp;our&amp;nbsp;docs are unfit for consumption focuses on is the issues around&amp;nbsp;documentation compliance for Microsoft's protocols.&amp;nbsp;&amp;nbsp;The article doesn't say, "it's hard to produce&amp;nbsp;software using&amp;nbsp;Microsoft's platforms", it&amp;nbsp;instead is saying "it's difficult to interoperate with Microsoft's ecosystem without using Microsoft's platform".&amp;nbsp; This is the difference between the platform documentation that we produce and the compliance documentation.&amp;nbsp; The compliance documentation SHOULD exist so that&amp;nbsp;other people can use our protocols to easily deliver&amp;nbsp;alternative implementations of what we've done.&amp;nbsp; This IS pretty easy for us to deliver because at some&amp;nbsp;point, we designed the product&amp;nbsp;(horray for Architects) and then described the product to the developer audience (go&amp;nbsp;Program Manages!) and the implemented the design (developers, developers, developers).&amp;nbsp; The only problem is, for compliance, our existing&amp;nbsp;documents&amp;nbsp;simply will not do.&amp;nbsp; There is a specific format that we need to deliver to the EU.&amp;nbsp; There is a&amp;nbsp;specific format that we need to deliver to the DOJ.&amp;nbsp; And these formats are entirely arbitrary.&amp;nbsp;&amp;nbsp;Whether or not&amp;nbsp;that document format works for our engineering process or not, we need to deliver our docs to them&amp;nbsp;in it.&amp;nbsp; From our perspective, compliance documentation is a long set of hoops that regulatory bodies are making us go through in order to squeeze money out of us.&amp;nbsp; The specifications that we receive for formats that we'll be delivering documentation&amp;nbsp;are legal documents that are filled with confusing and unspecific requirements.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Anyways, I think I'll pick away at a few points in the article:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;gt;consistently had trouble with producing complete and useful documentation&lt;BR&gt;&lt;/STRONG&gt;Now, this is a very pointed statement.&amp;nbsp; Microsoft has consistently had trouble producing complete and useful documentation.&amp;nbsp; What is complete documentation?&amp;nbsp;&amp;nbsp;This is defined differently by the EU and the DOJ.&amp;nbsp; Compliance is a very tricky situation.&amp;nbsp; Ask the developers, program managers, and writers who were working on the protocol compliance documentation that we produced for the EU.&amp;nbsp; They gave us a specification that indicated we needed to deliver them documentation in some arcane format (I'm not sure exaclty what it was, but it was something along the lines of delivering docs on microfilm).&amp;nbsp; Another issue is that there is no set of documentation that is perfect for every audience.&amp;nbsp; In the case of what we were delivering to the EU, I'd imagine that the audience was lawyers, writers, and industry experts.&amp;nbsp; The case that Microsoft's documentation is insufficient is most typically that you can't debug into our sources as you can with OSS.&amp;nbsp; If you're comparing closed source software to open source software from a debugging perspective, it's certainly easier to determine WHY something doesn't work in the open source case.&amp;nbsp;&amp;nbsp;Software ships with bugs, and if these bugs are in protected bits of code, you can't see why something is broken.&amp;nbsp; In closed source software, we need to design assuming that our users will NOT be able to debug into all of our sources.&amp;nbsp; As a result, we have to future proof our designs for debugging with the sources that we give - this is difficult for architects and program managers.&amp;nbsp; Additionally, developers have to be excruciatingly careful when producing code so that meaningful messages are returned to third party developers.&amp;nbsp; With aggressive product cycles, sometimes the due diligence is overlooked, and Microsoft does a good job in preventing this with internal processes and quality standards.&amp;nbsp; Nobody's perfect, but in my opinion, we are doing a pretty darn good job in addressing these two issues for developers.&lt;/P&gt;
&lt;P&gt;Later, the article goes to say...&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;gt;Most developers find Microsoft's API documentation to be pretty good ... the company can produce similar documents when it is determined to. &lt;/STRONG&gt;&lt;BR&gt;*sigh* It's relieving to know that there's the perception that we're doing something right.&amp;nbsp; This is the documentation that my peers and I focus our efforts on.&amp;nbsp; The difference between this documentation and the compliance documentation is that we're able to plan around this.&amp;nbsp; The compliance stuff tends to "come up" when we are not in compliance.&amp;nbsp; As a result, the resources that we typically have when producing documenation are gone working on new projects, or have left the company.&amp;nbsp; In turn, we, as writers, have to reverse engineer the code to work out the various aspecsts of compliance to try and meet the needs of various regulating bodies.&lt;/P&gt;
&lt;P&gt;Anyways, compliance is a huge pain for Microsoft.&amp;nbsp; If you're a dev for a small company, be happy you don't have to handle it all the time, but it also is a good idea to think about documentation to future-proof your code from being a headache if it ever becomes subject to compliance work.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8967214" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/gclass/archive/tags/programmer+writer/default.aspx">programmer writer</category><category domain="http://blogs.msdn.com/gclass/archive/tags/writing/default.aspx">writing</category><category domain="http://blogs.msdn.com/gclass/archive/tags/rants/default.aspx">rants</category><category domain="http://blogs.msdn.com/gclass/archive/tags/documentation/default.aspx">documentation</category></item><item><title>How to use the Real-time stylus</title><link>http://blogs.msdn.com/gclass/archive/2008/09/15/how-to-use-the-real-time-stylus.aspx</link><pubDate>Tue, 16 Sep 2008 03:24:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8953285</guid><dc:creator>gclass</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/gclass/comments/8953285.aspx</comments><wfw:commentRss>http://blogs.msdn.com/gclass/commentrss.aspx?PostID=8953285</wfw:commentRss><description>&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNoSpacing&gt;&lt;FONT size=3 face=Calibri&gt;The Real-Time Stylus (RTS) is a Tablet PC SDK feature that simplifies customized rendering of Stylus output, enables access to powerful hardware-level information for strokes and points, and grants access to ink-related events.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The RTS works by using plug-ins that are added to via an interface that enables you to customize how the SDK is interpreting and using pen input.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNoSpacing&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNoSpacing&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;H1 style="MARGIN: 24pt 0in 0pt"&gt;&lt;FONT color=#365f91 size=5 face=Cambria&gt;Part 1:&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Setting up the Project&lt;/FONT&gt;&lt;/H1&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNoSpacing&gt;&lt;FONT size=3 face=Calibri&gt;You will be creating a simple project that just has a just a dialog and an InkPicture control.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This is described in previous blog entries &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/gclass/archive/2008/02/19/getting-started-with-unmanaged-tablet-development.aspx" mce_href="http://blogs.msdn.com/gclass/archive/2008/02/19/getting-started-with-unmanaged-tablet-development.aspx"&gt;&lt;FONT size=3 face=Calibri&gt;here&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3 face=Calibri&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNoSpacing&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNoSpacing&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;H1 style="MARGIN: 24pt 0in 0pt"&gt;&lt;FONT color=#365f91 size=5 face=Cambria&gt;Part 2:&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;A Very Simple Example Using the Dynamic Renderer RTS plug-in&lt;/FONT&gt;&lt;/H1&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;The following code demonstrates a simple way to use the Dynamic renderer plug-in, provided by Microsoft, to have a higher level of control over ink-based controls.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;At this point, you shouldI have created a pretty straightforward project that has a dialog with only an InkPicture control in it.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The real-time stylus interface is attached to the ink control and then the ink control relinquishes various aspects of ink rendering and so on to the plug-ins that are then added to the real-time stylus.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;First, you will need to declare pointers for the Real-time stylus interface and a rendering plug-in.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: green; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;// Some global COM interface pointers&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;CComPtr&amp;lt;IRealTimeStylus&amp;gt; g_pRealTimeStylus;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;CComPtr&amp;lt;IDynamicRenderer&amp;gt; g_pDynamicRenderer;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;CWnd* g_hInkArea;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNoSpacing&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNoSpacing&gt;&lt;FONT size=3 face=Calibri&gt;After that you will need to attach the stylus to the ink control.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNoSpacing&gt;&lt;FONT size=3 face=Calibri&gt;(inside of InitDialog)&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;g_hInkArea = &lt;SPAN style="COLOR: blue"&gt;this&lt;/SPAN&gt;-&amp;gt;GetDlgItem(IDC_INKPICTURE);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;// TODO: Add extra initialization here&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;// Create the IRealTimeStylus object&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;HRESULT hr = g_pRealTimeStylus.CoCreateInstance(CLSID_RealTimeStylus);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; (SUCCEEDED(hr))&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;// This both sets the m_gbRTSArea member to the &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;hr = g_pRealTimeStylus-&amp;gt;put_HWND(&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;reinterpret_cast&lt;/SPAN&gt;&amp;lt;HANDLE_PTR&amp;gt;(g_hInkArea-&amp;gt;m_hWnd)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; (SUCCEEDED(hr))&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;// This both sets the m_gbRTSArea member to the &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;hr = g_pRealTimeStylus-&amp;gt;put_Enabled(TRUE);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNoSpacing&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;Finally, you will need to add a plug-in to the real-time stylus control and you will be good to go.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; (SUCCEEDED(hr))&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;// Create an IDynamicRenderer object to demonstrate RTS plug-ins&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;hr = g_pDynamicRenderer.CoCreateInstance(CLSID_DynamicRenderer);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; (SUCCEEDED(hr))&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: green; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// Retrieve the sync version of the dynamic renderer plug-in&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;CComPtr&amp;lt;IStylusSyncPlugin&amp;gt; spSyncPlugin;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;hr = g_pDynamicRenderer.QueryInterface(&amp;amp;spSyncPlugin);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; (SUCCEEDED(hr))&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: green; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// relenquish control of the HWND to the real-time stylus&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;hr = g_pDynamicRenderer-&amp;gt;put_HWND(&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;reinterpret_cast&lt;/SPAN&gt;&amp;lt;HANDLE_PTR&amp;gt;(g_hInkArea-&amp;gt;m_hWnd)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; (SUCCEEDED(hr))&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;// Add to the plug-in collection&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;g_pRealTimeStylus-&amp;gt;AddStylusSyncPlugin(0, spSyncPlugin);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; (SUCCEEDED(hr))&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;// Enable the plug-in&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;hr = g_pDynamicRenderer-&amp;gt;put_Enabled(TRUE);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; BACKGROUND: #d9d9d9; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNoSpacing&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 10pt 0in 0pt"&gt;&lt;FONT color=#4f81bd size=4 face=Cambria&gt;Conclusion&lt;/FONT&gt;&lt;/H2&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNoSpacing&gt;&lt;FONT size=3 face=Calibri&gt;So there you have it, in summary to use the RTS, all you need to do is create the interfaces, attach them to an Ink Overlay or a control that uses an Ink Overlay, and then add the plugins that you want.&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8953285" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/gclass/archive/tags/tablet+pc/default.aspx">tablet pc</category><category domain="http://blogs.msdn.com/gclass/archive/tags/real-time+stylus/default.aspx">real-time stylus</category><category domain="http://blogs.msdn.com/gclass/archive/tags/RTS/default.aspx">RTS</category><category domain="http://blogs.msdn.com/gclass/archive/tags/plug-in/default.aspx">plug-in</category><category domain="http://blogs.msdn.com/gclass/archive/tags/coMde/default.aspx">coMde</category></item><item><title>An interesting Tablet PC concept from Intel</title><link>http://blogs.msdn.com/gclass/archive/2008/08/25/an-interesting-tablet-pc-concept-from-intel.aspx</link><pubDate>Tue, 26 Aug 2008 00:41:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8895206</guid><dc:creator>gclass</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/gclass/comments/8895206.aspx</comments><wfw:commentRss>http://blogs.msdn.com/gclass/commentrss.aspx?PostID=8895206</wfw:commentRss><description>&lt;A class="" href="http://gizmodo.com/5040186/hands-on-with-the-urbanmax-intels-concept-tablet-notebook-thing" mce_href="http://gizmodo.com/5040186/hands-on-with-the-urbanmax-intels-concept-tablet-notebook-thing"&gt;This&lt;/A&gt; gizmodo article shows&amp;nbsp;a shiny&amp;nbsp;new Tablet from Intel that is rather unique in that it looks really thin, small, and has a sliding keyboard like many cell phones.&amp;nbsp; Intel is also using an N-Trig capacitive touch screen much akin to the screen that is being used in &lt;A class="" href="http://search.dell.com/results.aspx?s=gen&amp;amp;c=us&amp;amp;l=en&amp;amp;cs=&amp;amp;k=latitude+XT&amp;amp;cat=all" mce_href="http://search.dell.com/results.aspx?s=gen&amp;amp;c=us&amp;amp;l=en&amp;amp;cs=&amp;amp;k=latitude+XT&amp;amp;cat=all"&gt;Dell's Latitude XT&amp;nbsp;&lt;/A&gt;&amp;nbsp;so that this proto-hardware supports multi-touch.&amp;nbsp; The hardware is hot, I hope that someone runs with this design and puts out a sweet MT UMPC.&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8895206" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/gclass/archive/tags/tablet+pc/default.aspx">tablet pc</category><category domain="http://blogs.msdn.com/gclass/archive/tags/UMPC/default.aspx">UMPC</category></item><item><title>10 Useful Web Sites I Frequent</title><link>http://blogs.msdn.com/gclass/archive/2008/08/13/the-10-most-useful-web-sites-i-frequent.aspx</link><pubDate>Thu, 14 Aug 2008 01:08:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8861554</guid><dc:creator>gclass</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/gclass/comments/8861554.aspx</comments><wfw:commentRss>http://blogs.msdn.com/gclass/commentrss.aspx?PostID=8861554</wfw:commentRss><description>&lt;P&gt;As a digression from my regular ... absence? I figured I would post the first 10 useful Web sites for various things that I do on the web that I used to do using applications, email, or a hodge-podge of utilities.&amp;nbsp; Note that these are just in order of "off the top of my head" rather than in order of importance or usefulness.&lt;/P&gt;
&lt;P&gt;#1 Chat&lt;BR&gt;&lt;A href="http://meebo.com/" mce_href="http://meebo.com/"&gt;http://meebo.com&lt;/A&gt; - This is a really sweet chat site.&amp;nbsp; I can access all of the features that I would get from something like Naim, Gaim, or Trillian, except I have access everywhere!&lt;/P&gt;
&lt;P&gt;#2 RSS&lt;BR&gt;&lt;A href="http://bloglines.com/" mce_href="http://bloglines.com/"&gt;http://bloglines.com&lt;/A&gt; - This is the BEST RSS reader that I have found that runs entirely off of the web.&amp;nbsp; Accept no substitutues (I'm looking at you, Google reader)&lt;/P&gt;
&lt;P&gt;#3 Community Blogging&lt;BR&gt;&lt;A href="http://www.livejournal.com/" mce_href="http://www.livejournal.com/"&gt;http://www.livejournal.com&lt;/A&gt; - I have been a long term LJ user and the communities on there are really some of the best and most fun on the Web.&lt;/P&gt;
&lt;P&gt;#4 File and Photo Sharing&lt;BR&gt;&lt;A href="http://skydrive.live.com/" mce_href="http://skydrive.live.com/"&gt;http://skydrive.live.com&lt;/A&gt; - I love SkyDrive, it's what I find to be Microsoft's BEST Web 2.0 site because it solves the issue of silly form uploads and having to install third party applications (issues that plague many other file&amp;nbsp;and photo sharing sites)&amp;nbsp;while remaining free, easily controlled, and simple (unlike uglymug and flickr).&amp;nbsp; For SkyDrive, you just choose a folder full of files, dump it, and upload it, no fees, no hassle.&amp;nbsp; I love it.&lt;/P&gt;
&lt;P&gt;#5 Personal Social Networking&lt;BR&gt;&lt;A href="http://facebook.com/" mce_href="http://facebook.com/"&gt;http://facebook.com&lt;/A&gt; - Facebook is killing it in the online social networking space.&amp;nbsp; I'm always amazed at how many people I work with, went to school with, and so on are switching from myspace.&amp;nbsp;&amp;nbsp;The reason is really straightforward, facebook has a clean interface.&amp;nbsp; The chat doesn't require a client.&amp;nbsp; The apps are cool.&amp;nbsp; Photo sharing is a piece of cake (see&amp;nbsp;#4).&amp;nbsp; I wonder if I should share my infos with readers... Anyways, if you're&amp;nbsp;on the socials, facebook is the way to go if you enjoy simplicity and usability.&lt;/P&gt;
&lt;P&gt;#6 Professional Social Networking&lt;BR&gt;&lt;A href="http://linkedin.com/" mce_href="http://linkedin.com/"&gt;http://linkedin.com&lt;/A&gt;&amp;nbsp;- LinkedIn... Yeah, you're probably asking why I would put facebook and LinkedIn on the same list.&amp;nbsp; Linked In is a rather contrary site to Facebook because it really doesn't let you do much more than place your resume and credentials online.&amp;nbsp; This is a good thing though because it keeps your professional contacts professional.&amp;nbsp; You don't want recruiters looking at your social pictures as could happen on Facebook, and you also may want to have and maintain professional contacts&lt;/P&gt;
&lt;P mce_keep="true"&gt;#7 Online Music Playback&lt;BR&gt;&lt;A href="http://playlist.com/"&gt;http://playlist.com&lt;/A&gt; - This is an awesome concept.&amp;nbsp;&amp;nbsp; Find all the music you like, put it on a playlist, and listen to it anywhere!&amp;nbsp; Playlist does an excellent job of enabling access to collections of music online without any hassle.&lt;/P&gt;
&lt;P mce_keep="true"&gt;#8 Online Music Suggestion&lt;BR&gt;&lt;A href="http://www.last.fm/"&gt;http://www.last.fm&lt;/A&gt; - It's really a toss-up between last.fm and pandora project for me, but I happen to prefer the look and feel of last.fm the most.&lt;/P&gt;
&lt;P mce_keep="true"&gt;#9 Web Design Resources&lt;BR&gt;&lt;A href="http://webdesignfromscratch.com/"&gt;http://webdesignfromscratch.com/&lt;/A&gt;&amp;nbsp;- Every time I design a new site, I try to check over the WDFS resources to see if there's anything they have written about that could help me to improve my layout.&amp;nbsp; These guys offer incredible insights for free!&lt;/P&gt;
&lt;P mce_keep="true"&gt;#10 Bookmarking&lt;BR&gt;&lt;A href="http://de.licio.us/"&gt;http://de.licio.us&lt;/A&gt; - I love de.licio.us because I work on a number of machines and am totally tired of synchronizing my bookmarks.&amp;nbsp; I wonder if they will automatically sync your bookmarks out to your browser.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Anyways, there you go, a few useful sites that offer excellence in productivity and synchronization.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8861554" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/gclass/archive/tags/personal/default.aspx">personal</category><category domain="http://blogs.msdn.com/gclass/archive/tags/useful/default.aspx">useful</category><category domain="http://blogs.msdn.com/gclass/archive/tags/web+applications/default.aspx">web applications</category><category domain="http://blogs.msdn.com/gclass/archive/tags/blogs/default.aspx">blogs</category></item></channel></rss>