<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Technology 'n Me (Sukesh)</title><subtitle type="html">Technology has no limits and software makes it true...</subtitle><id>http://blogs.msdn.com/sukeshak/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/sukeshak/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/sukeshak/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2007-01-28T23:33:00Z</updated><entry><title>How to configure SSL on IIS7 under Windows 2008 Server Core</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/sukeshak/archive/2008/05/19/how-to-configure-ssl-on-iis7-under-windows-2008-server-core.aspx" /><id>http://blogs.msdn.com/sukeshak/archive/2008/05/19/how-to-configure-ssl-on-iis7-under-windows-2008-server-core.aspx</id><published>2008-05-19T10:03:32Z</published><updated>2008-05-19T10:03:32Z</updated><content type="html">&lt;p&gt;Due to the popularity of Windows 2008 Server Core I have seen frequently questions about how to configure SSL on IIS7 with only command-line. Since I wandered that path few months back I thought of putting this article/guide together.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.awesomeideas.net/post/2008/05/18/How-to-configure-SSL-on-IIS7-under-Windows-2008-Server-Core.aspx" href="http://www.awesomeideas.net/post/2008/05/18/How-to-configure-SSL-on-IIS7-under-Windows-2008-Server-Core.aspx"&gt;http://www.awesomeideas.net/post/2008/05/18/How-to-configure-SSL-on-IIS7-under-Windows-2008-Server-Core.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8518756" width="1" height="1"&gt;</content><author><name>sukeshak</name><uri>http://blogs.msdn.com/members/sukeshak.aspx</uri></author><category term="IIS7" scheme="http://blogs.msdn.com/sukeshak/archive/tags/IIS7/default.aspx" /><category term="Appcmd" scheme="http://blogs.msdn.com/sukeshak/archive/tags/Appcmd/default.aspx" /><category term="Server Core" scheme="http://blogs.msdn.com/sukeshak/archive/tags/Server+Core/default.aspx" /><category term="SSL" scheme="http://blogs.msdn.com/sukeshak/archive/tags/SSL/default.aspx" /><category term="certutil" scheme="http://blogs.msdn.com/sukeshak/archive/tags/certutil/default.aspx" /></entry><entry><title>IIS7 Mobile Admin now on codeplex !!!</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/sukeshak/archive/2008/03/20/iis7-mobile-admin-now-on-codeplex.aspx" /><id>http://blogs.msdn.com/sukeshak/archive/2008/03/20/iis7-mobile-admin-now-on-codeplex.aspx</id><published>2008-03-20T12:30:23Z</published><updated>2008-03-20T12:30:23Z</updated><content type="html">&lt;p&gt;IIS7 Mobile Admin is a simple web application to administer IIS7 remotely using a mobile phone browser.&amp;#160; I provided few screenshots of IIS7 Mobile Admin in my previous blog post here &lt;a title="IIS7 Mobile Admin" href="http://www.awesomeideas.net/post/2008/03/04/IIS7-Mobile-Admin.aspx"&gt;http://www.awesomeideas.net/post/2008/03/04/IIS7-Mobile-Admin.aspx&lt;/a&gt;     &lt;br /&gt;    &lt;br /&gt;And I promised to get it on codeplex for your download pleasure and finally it's ready and available    &lt;br /&gt;    &lt;br /&gt;Project Home (Screenshots,FAQ) - &lt;a title="http://www.awesomeideas.net/page/IIS7-Mobile-Admin.aspx" href="http://www.awesomeideas.net/page/IIS7-Mobile-Admin.aspx"&gt;http://www.awesomeideas.net/page/IIS7-Mobile-Admin.aspx&lt;/a&gt;     &lt;br /&gt;Download &amp;amp; Discussion - &lt;a href="http://www.codeplex.com/iis7mobileadmin/"&gt;http://www.codeplex.com/iis7mobileadmin/&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;What are the features available in this release (called R1)?      &lt;br /&gt;&lt;/strong&gt;Search Application Pools &amp;amp; Web Sites&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Application Pool      &lt;ul&gt;       &lt;li&gt;Show Requests (Top 10 requests sort in descending order of 'Time Elapsed' &lt;/li&gt;        &lt;li&gt;Show Applications &lt;/li&gt;        &lt;li&gt;Recycle Application Pool &lt;/li&gt;        &lt;li&gt;TODO:Your wishes... &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Web Sites      &lt;ul&gt;       &lt;li&gt;Show Configuration (Show all bindings for the website) &lt;/li&gt;        &lt;li&gt;Start Website &lt;/li&gt;        &lt;li&gt;Stop Website &lt;/li&gt;        &lt;li&gt;TODO:Your wishes &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Get more screenshots on Project Home &lt;a title="http://www.awesomeideas.net/page/IIS7-Mobile-Admin.aspx" href="http://www.awesomeideas.net/page/IIS7-Mobile-Admin.aspx"&gt;http://www.awesomeideas.net/page/IIS7-Mobile-Admin.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.awesomeideas.net/image.axd?picture=WindowsLiveWriter/IIS7MobileAdmin_D7C0/MobileUI_2.png" /&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8327172" width="1" height="1"&gt;</content><author><name>sukeshak</name><uri>http://blogs.msdn.com/members/sukeshak.aspx</uri></author><category term="IIS7" scheme="http://blogs.msdn.com/sukeshak/archive/tags/IIS7/default.aspx" /><category term="Cool Stuff" scheme="http://blogs.msdn.com/sukeshak/archive/tags/Cool+Stuff/default.aspx" /><category term="Hostable Web Core" scheme="http://blogs.msdn.com/sukeshak/archive/tags/Hostable+Web+Core/default.aspx" /><category term="HWC" scheme="http://blogs.msdn.com/sukeshak/archive/tags/HWC/default.aspx" /></entry><entry><title>IIS7 Mobile Admin</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/sukeshak/archive/2008/03/06/iis7-mobile-admin.aspx" /><id>http://blogs.msdn.com/sukeshak/archive/2008/03/06/iis7-mobile-admin.aspx</id><published>2008-03-06T14:37:00Z</published><updated>2008-03-06T14:37:00Z</updated><content type="html">&lt;P&gt;I wanted to introduce something I’ve been working during last couple of weekends. Yes you guessed it “&lt;B&gt;IIS7 Mobile Admin&lt;/B&gt;” to show some love to our web server administrators who keeps our Web 2.0 world up and running!&lt;/P&gt;
&lt;P&gt;&lt;I&gt;Ingredients&lt;/I&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;I&gt;IIS7 Hosted Web core Service (which I wrote in C++, just like WMSVC IIS Management Service)&amp;nbsp; &lt;BR&gt;&lt;A href="http://www.awesomeideas.net/page/IIS7-Hostable-WebCore.aspx" mce_href="http://www.awesomeideas.net/page/IIS7-Hostable-WebCore.aspx"&gt;http://www.awesomeideas.net/page/IIS7-Hostable-WebCore.aspx&lt;/A&gt; &lt;/I&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;I&gt;ASP.NET website specifically designed for use on browser of a cell phone using LINQ + IIS7 managed API (Microsoft.Web.Administration)&lt;/I&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;B&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;I would like to know what are some of the “must have” features you expect from this application. &lt;BR&gt;&lt;/B&gt;&lt;FONT color=#808080&gt;(Keep in mind this is not developed to replace or even be on par with desktop IIS7 manager)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Please add your suggestions/comments/ideas under the following blog post and &lt;STRONG&gt;check out more screenshots&lt;/STRONG&gt;. &lt;BR&gt;&lt;A href="http://www.awesomeideas.net/post/2008/03/04/IIS7-Mobile-Admin.aspx" mce_href="http://www.awesomeideas.net/post/2008/03/04/IIS7-Mobile-Admin.aspx"&gt;http://www.awesomeideas.net/post/2008/03/04/IIS7-Mobile-Admin.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Plan is to get this complete package (both binary &amp;amp; source) on &lt;A href="http://www.codeplex.com/" mce_href="http://www.codeplex.com"&gt;http://www.&lt;B&gt;codeplex&lt;/B&gt;.com&lt;/A&gt;&lt;B&gt; &lt;/B&gt;by next weekend! &lt;BR&gt;Picture is worth a “&lt;FONT color=#808080&gt;how many words do they say?&lt;/FONT&gt;” so a picture below showing how it looks when it runs inside Pocket IE in full-screen.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/sukeshak/WindowsLiveWriter/IIS7MobileAdmin_F0B7/clip_image002_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/sukeshak/WindowsLiveWriter/IIS7MobileAdmin_F0B7/clip_image002_2.jpg"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=599 alt=clip_image002 src="http://blogs.msdn.com/blogfiles/sukeshak/WindowsLiveWriter/IIS7MobileAdmin_F0B7/clip_image002_thumb.jpg" width=314 border=0 mce_src="http://blogs.msdn.com/blogfiles/sukeshak/WindowsLiveWriter/IIS7MobileAdmin_F0B7/clip_image002_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8070818" width="1" height="1"&gt;</content><author><name>sukeshak</name><uri>http://blogs.msdn.com/members/sukeshak.aspx</uri></author><category term="IIS7" scheme="http://blogs.msdn.com/sukeshak/archive/tags/IIS7/default.aspx" /><category term="Cool Stuff" scheme="http://blogs.msdn.com/sukeshak/archive/tags/Cool+Stuff/default.aspx" /><category term="Hostable Web Core" scheme="http://blogs.msdn.com/sukeshak/archive/tags/Hostable+Web+Core/default.aspx" /><category term="HWC" scheme="http://blogs.msdn.com/sukeshak/archive/tags/HWC/default.aspx" /></entry><entry><title>IIS7 Hostable Web Core Custom Service (WebCoreService)</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/sukeshak/archive/2007/12/24/iis7-hosted-web-core-custom-service-webcoreservice.aspx" /><id>http://blogs.msdn.com/sukeshak/archive/2007/12/24/iis7-hosted-web-core-custom-service-webcoreservice.aspx</id><published>2007-12-24T12:28:00Z</published><updated>2007-12-24T12:28:00Z</updated><content type="html">&lt;P&gt;Hostable Web Core (known as HWC) is a new concept in IIS7 to host a website/webservice inside your own process. In short a smaller hosted version of IIS (an IIS7 express edition?). &lt;BR&gt;This is accomplished by making a LoadLibrary call to load hwebcore.dll (%systemdrive%\Windows\System32\inetsrv\hwebcore.dll)&lt;/P&gt;
&lt;P&gt;From IIS7 onwards you can administer IIS7 remotely using IIS Manager (through HTTPS). When you connect remotely you are actually connecting to a "Web Management Service" called WMSVC. This service uses HWC so that it's not dependent on IIS7 services directly. &lt;/P&gt;
&lt;P&gt;I had some idea around building alternative UI for IIS7, but since WMSVC service calls are not publicly documented I didn't want to start using it since my application might break anytime. So HWC was a surprise to me but with a glitch. I'm too used to managed code that I haven't written C++ code from last 6years. During 1996-2000 C/C++ was my favorite language and then got into languages which are less fussy (VB/VB.net &amp;amp; C#).&lt;/P&gt;
&lt;P&gt;But I had multiple challenges 1) Writing something in a language which I've not used for last 6 years. 2) Writing a windows service which I haven't done before.&lt;/P&gt;
&lt;P&gt;Before diving into the code let's see limitations of HWC (Calling it limitation is wrong so let's say it's by design)&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Only one application pool &lt;/LI&gt;
&lt;LI&gt;Only one website/webservice &lt;/LI&gt;
&lt;LI&gt;Separate configuration file &lt;/LI&gt;
&lt;LI&gt;No monitoring like available for IIS7 application pools &lt;/LI&gt;
&lt;LI&gt;Require IIS7 to be installed &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;PS: Project files are in VS2008 but the application doesn't have any dependency with newer versions.&lt;/P&gt;
&lt;P&gt;Ingredients of my &lt;STRONG&gt;WebCoreService&lt;/STRONG&gt;.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Native Windows Service which host HWC which provides install/uninstall options &lt;/LI&gt;
&lt;LI&gt;Good IIS7 configuration file (applicationHost.config) which contains all configuration required to run ASP/ASPX/ASMX... pages &lt;/LI&gt;
&lt;LI&gt;TODO: Web/WCF service hosted inside this service which publishes all the management API's for consumption &lt;/LI&gt;
&lt;LI&gt;TODO: Alternate client for managing IIS7 &lt;/LI&gt;&lt;/OL&gt;
&lt;OL&gt;
&lt;LI&gt;Native Windows Service which host HWC. Below is a screenshot to see the options available using command-line &lt;BR&gt;&amp;nbsp;&lt;A href="http://blogs.msdn.com/blogfiles/sukeshak/WindowsLiveWriter/IIS7HostedWebCoreandRemoteAdministration_A4DB/help_2.png" mce_href="http://blogs.msdn.com/blogfiles/sukeshak/WindowsLiveWriter/IIS7HostedWebCoreandRemoteAdministration_A4DB/help_2.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=208 alt=help src="http://blogs.msdn.com/blogfiles/sukeshak/WindowsLiveWriter/IIS7HostedWebCoreandRemoteAdministration_A4DB/help_thumb.png" width=552 border=0 mce_src="http://blogs.msdn.com/blogfiles/sukeshak/WindowsLiveWriter/IIS7HostedWebCoreandRemoteAdministration_A4DB/help_thumb.png"&gt;&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;All the configuration including where the website points to and what port it's hosting the site etc are mentioned in the configuration file called "WebCoreService.config". This is nothing but the actual applicationHost.config file after few of those things removed from it. &lt;/LI&gt;
&lt;LI&gt;This could be a good managed Webservice or WCF service which would expose management API's. &lt;/LI&gt;
&lt;LI&gt;How about a Mobile Client? which supports SMS (Texting). Just imagine sending a text message to recycle one of the application pool ? &lt;BR&gt;Hosting management site running inside this? &lt;BR&gt;These are only few of those possibilities though :) think crazy stuff and let me know. &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;STRONG&gt;How to RUN the service?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Extract the zip files with source and the binary files. &lt;BR&gt;Follow these steps to setup the service (&lt;FONT color=#ff0000&gt;make sure you are doing&amp;nbsp;this from an elevated command prompt&lt;/FONT&gt;)&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Create a folder called "TestPath" inside your "C:\inetpub\" folder &lt;/LI&gt;
&lt;LI&gt;Create 2 folder inside called "wwwroot" and "Logs" &lt;/LI&gt;
&lt;LI&gt;Drop "time.asp" and "time.aspx" pages inside the "wwwroot" folder &lt;/LI&gt;
&lt;LI&gt;Enable event logs notification from the service&lt;BR&gt;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\WebCoreService]&lt;BR&gt;Create a string key "EventMessageFile" and set value as full path to "sample.dll" under the bin folder&lt;BR&gt;Create a DWORD key "TypesSupported" and give value of "00000007"&lt;/LI&gt;
&lt;LI&gt;Goto the folder where the EXE file resides "WebCoreService.EXE" &lt;/LI&gt;
&lt;LI&gt;Install the service using the following command &lt;BR&gt;&lt;STRONG&gt;WebCoreService install&lt;/STRONG&gt; &lt;/LI&gt;
&lt;LI&gt;Start the service using the following command &lt;BR&gt;&lt;STRONG&gt;net start WebCoreService&lt;/STRONG&gt; &lt;/LI&gt;
&lt;LI&gt;Browse to the page &lt;A href="http://localhost:8080/time.asp" mce_href="http://localhost:8080/time.asp"&gt;http://localhost:8080/time.asp&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;FONT color=#008000 size=3&gt;Bingo! Hostable webcore service is ready.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;All the configuration mentioned above like folder path, port number etc can be modified inside the configuration file "WebCoreService.exe.config"&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Do let me know if you have any questions or suggestions or even ideas !!!&lt;BR&gt;&lt;EM&gt;Source &amp;amp; binary =&amp;gt; &lt;A href="http://code.msdn.com/hwc/"&gt;http://code.msdn.com/hwc/&lt;/A&gt;&lt;/EM&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=6852020" width="1" height="1"&gt;</content><author><name>sukeshak</name><uri>http://blogs.msdn.com/members/sukeshak.aspx</uri></author><category term="IIS7" scheme="http://blogs.msdn.com/sukeshak/archive/tags/IIS7/default.aspx" /><category term="Hostable Web Core" scheme="http://blogs.msdn.com/sukeshak/archive/tags/Hostable+Web+Core/default.aspx" /><category term="HWC" scheme="http://blogs.msdn.com/sukeshak/archive/tags/HWC/default.aspx" /></entry><entry><title>Hotfix - After installing MS07-045 Cumulative Security Update for Internet Explorer - CreateObject call fails with 8000ffff</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/sukeshak/archive/2007/12/20/IE_2D00_Fix_2D00_945701.aspx" /><id>http://blogs.msdn.com/sukeshak/archive/2007/12/20/IE_2D00_Fix_2D00_945701.aspx</id><published>2007-12-20T12:16:00Z</published><updated>2007-12-20T12:16:00Z</updated><content type="html">&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-IN; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;I had reported an issue which happens after installing MS07-045 IE security update.&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-IN; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;A class="" title="After installing MS07-045 Cumulative Security Update for Internet Explorer - CreateObject call fails with 8000ffff" href="http://blogs.msdn.com/sukeshak/archive/2007/09/18/installing-ms07-045-cumulative-security-update-for-internet-explorer-createobject-call-fails-with-8000ffff.aspx" mce_href="http://blogs.msdn.com/sukeshak/archive/2007/09/18/installing-ms07-045-cumulative-security-update-for-internet-explorer-createobject-call-fails-with-8000ffff.aspx"&gt;"After installing MS07-045 Cumulative Security Update for Internet Explorer - CreateObject call fails with 8000ffff&amp;nbsp;"&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-IN; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;We have a hotfix available for the same and it's &lt;STRONG&gt;KB 945701&lt;/STRONG&gt;. KB is not yet available (as of today) and it might take a while to be public.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-IN; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;If you are struggling with this issue you can call PSS and request for the hotfix. It should be publically available during next IE patch schedule.&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6815116" width="1" height="1"&gt;</content><author><name>sukeshak</name><uri>http://blogs.msdn.com/members/sukeshak.aspx</uri></author><category term="Issue" scheme="http://blogs.msdn.com/sukeshak/archive/tags/Issue/default.aspx" /><category term="IE" scheme="http://blogs.msdn.com/sukeshak/archive/tags/IE/default.aspx" /><category term="KB945701" scheme="http://blogs.msdn.com/sukeshak/archive/tags/KB945701/default.aspx" /></entry><entry><title>Kernel mode authentication in IIS7</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/sukeshak/archive/2007/11/27/kernel-mode-authentication-in-iis7.aspx" /><id>http://blogs.msdn.com/sukeshak/archive/2007/11/27/kernel-mode-authentication-in-iis7.aspx</id><published>2007-11-27T14:42:48Z</published><updated>2007-11-27T14:42:48Z</updated><content type="html">&lt;p&gt;Here is another featured moved to kernel mode. Yea it's Windows Authentication which is by default configured to run in kernel mode.&lt;/p&gt; &lt;p&gt;To see the dialog right click on "Windows Authentication" and select "Advanced Settings..."&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/sukeshak/WindowsLiveWriter/KernelmodeauthenticationinIIS7_F031/KernelAuth_2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="392" alt="KernelAuth" src="http://blogs.msdn.com/blogfiles/sukeshak/WindowsLiveWriter/KernelmodeauthenticationinIIS7_F031/KernelAuth_thumb.png" width="563" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;This applies to Windows 2008 build and not Vista RTM.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6548912" width="1" height="1"&gt;</content><author><name>sukeshak</name><uri>http://blogs.msdn.com/members/sukeshak.aspx</uri></author><category term="IIS7" scheme="http://blogs.msdn.com/sukeshak/archive/tags/IIS7/default.aspx" /></entry><entry><title>Differences in SSL request/response flow on IIS6 vs IIS7 (Kernel mode SSL)</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/sukeshak/archive/2007/11/26/differences-in-ssl-request-response-flow-on-iis6-vs-iis7-kernel-mode-ssl.aspx" /><id>http://blogs.msdn.com/sukeshak/archive/2007/11/26/differences-in-ssl-request-response-flow-on-iis6-vs-iis7-kernel-mode-ssl.aspx</id><published>2007-11-26T18:08:00Z</published><updated>2007-11-26T18:08:00Z</updated><content type="html">&lt;P&gt;There are so many things which has changed in IIS7 for the better and one of them is about the way SSL works. Although IIS6 allowed kernel mode SSL (starting with Windows 2003 SP1) that wasn't the default option. As far as I know (AFAIK) not many customers used it or knew about it. &lt;/P&gt;
&lt;P&gt;Starting with IIS7 kernel mode SSL is going to be the default setting and the only setting. This was primarily for performance reasons. So let us see how it differs.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;IIS6 SSL request/response flow&lt;/STRONG&gt;&lt;/P&gt;
&lt;TABLE class="" cellSpacing=0 cellPadding=2 width=562 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="" width=146&gt;1. Request &lt;BR&gt;2. HTTP.SYS &lt;BR&gt;3. HTTPFilter &lt;BR&gt;4. HTTP.SYS &lt;BR&gt;5. Worker process &lt;BR&gt;6. HTTP.SYS &lt;BR&gt;7. HTTPFilter &lt;BR&gt;8. HTTP.SYS &lt;BR&gt;9. Response&lt;/TD&gt;
&lt;TD class="" width=413&gt;(Encrypted Request from client)&lt;BR&gt;(Kernel Mode driver for HTTP accepts the request)&lt;BR&gt;(Sent to user mode service to decrypt)&lt;BR&gt;(Decrypted request comes back)&lt;BR&gt;(Sent decrypted request to W3Wp =&amp;gt; IIS)&lt;BR&gt;(Response comes back from IIS)&lt;BR&gt;(Sent again to user mode to encrypt response)&lt;BR&gt;(Encrypted response arrives from user mode)&lt;BR&gt;(Encrypted response sent back to client)&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;IIS7 SSL request/response flow&lt;/STRONG&gt;&lt;/P&gt;
&lt;TABLE class="" cellSpacing=0 cellPadding=2 width=606 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="" width=148&gt;1. Request &lt;BR&gt;2. HTTP.SYS &lt;BR&gt;3. Worker process &lt;BR&gt;4. HTTP.SYS &lt;BR&gt;5. Response&lt;/TD&gt;
&lt;TD class="" width=456&gt;(Encrypted Request from client)&lt;BR&gt;(Kernel Mode driver for HTTP accepts and decrypts using SChannel)&lt;BR&gt;(Sent decrypted request to W3Wp =&amp;gt; IIS)&lt;BR&gt;(Response from IIS is encrypted using SChannel)&lt;BR&gt;(Encrypted Response sent back to client)&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;You know that context switching between kernel mode and user mode is expensive and this new design of how SSL processing is done inside kernel mode increases performance on IIS7.&lt;/P&gt;
&lt;P&gt;IIS7 Rocks!!!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6531643" width="1" height="1"&gt;</content><author><name>sukeshak</name><uri>http://blogs.msdn.com/members/sukeshak.aspx</uri></author><category term="IIS7" scheme="http://blogs.msdn.com/sukeshak/archive/tags/IIS7/default.aspx" /></entry><entry><title>After installing MS07-045 Cumulative Security Update for Internet Explorer - CreateObject call fails with 8000ffff</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/sukeshak/archive/2007/09/18/installing-ms07-045-cumulative-security-update-for-internet-explorer-createobject-call-fails-with-8000ffff.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="11519" href="http://blogs.msdn.com/sukeshak/attachment/4990202.ashx" /><id>http://blogs.msdn.com/sukeshak/archive/2007/09/18/installing-ms07-045-cumulative-security-update-for-internet-explorer-createobject-call-fails-with-8000ffff.aspx</id><published>2007-09-19T04:38:00Z</published><updated>2007-09-19T04:38:00Z</updated><content type="html">&lt;P&gt;We have noticed an issue of CreateObject call failure after installing MS07-045 IE update. This issues goes away if you uninstall the patch.&amp;nbsp; As per the information available it's happening only when .NET managed component (using interop) is called from an ASP page. &lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff0000&gt;&lt;FONT color=#000000&gt;&lt;U&gt;Error shown in the browser looks like below&lt;/U&gt;&lt;/FONT&gt; &lt;/FONT&gt;
&lt;P&gt;&lt;FONT color=#ff0000&gt;Server object error 'ASP 0177 : 8000ffff' &lt;BR&gt;Server.CreateObject Failed &lt;BR&gt;/hellocom.asp, line 2 &lt;BR&gt;8000ffff &lt;/FONT&gt;
&lt;P mce_keep="true"&gt;Repro steps given below&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Install MS07-045 security patch 
&lt;LI&gt;Create a .NET managed component (helloworld.dll) 
&lt;LI&gt;Make it COM visible and register it using "regasm helloworld.dll /codebase" 
&lt;LI&gt;Create an ASP page (inside your website folder) which calls this component using CreateObject (hellocom.asp) 
&lt;LI&gt;The page fails with the error mentioned above&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;For repro and testing I'm attaching following repro files&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;helloworld.dll (managed component) 
&lt;LI&gt;hellocom.asp (which uses the above component using CreateObject call)&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;&lt;U&gt;Code inside helloworld.dll&lt;/U&gt;&lt;/P&gt;
&lt;DIV&gt;&lt;PRE style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none"&gt;&lt;SPAN style="COLOR: #0000ff"&gt;using&lt;/SPAN&gt; System;
&lt;SPAN style="COLOR: #0000ff"&gt;using&lt;/SPAN&gt; System.Collections.Generic;
&lt;SPAN style="COLOR: #0000ff"&gt;using&lt;/SPAN&gt; System.Text;

    &lt;SPAN style="COLOR: #0000ff"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;class&lt;/SPAN&gt; HelloWorldClass
    {
        &lt;SPAN style="COLOR: #0000ff"&gt;public&lt;/SPAN&gt; HelloWorldClass() 
        {}

        &lt;SPAN style="COLOR: #0000ff"&gt;public&lt;/SPAN&gt; String SayHello()
        {
            &lt;SPAN style="COLOR: #0000ff"&gt;return&lt;/SPAN&gt; &lt;SPAN style="COLOR: #006080"&gt;"Hello World!"&lt;/SPAN&gt;;
        }
    }
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;U&gt;Code inside hellocom.asp&lt;/U&gt;&lt;/P&gt;
&lt;DIV&gt;&lt;PRE style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none"&gt;&lt;SPAN style="BACKGROUND-COLOR: #ffff00"&gt;&amp;lt;%&lt;/SPAN&gt;&lt;PRE style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; BORDER-BOTTOM-STYLE: none"&gt;&lt;SPAN style="COLOR: #606060"&gt;   1:&lt;/SPAN&gt;&amp;nbsp; &lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none"&gt;&lt;SPAN style="COLOR: #606060"&gt;   2:&lt;/SPAN&gt; Set hello = Server.CreateObject(&lt;SPAN style="COLOR: #006080"&gt;"HelloWorldClass"&lt;/SPAN&gt;)&lt;/PRE&gt;&lt;PRE style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; BORDER-BOTTOM-STYLE: none"&gt;&lt;SPAN style="COLOR: #606060"&gt;   3:&lt;/SPAN&gt; Response.Write hello.SayHello()&lt;/PRE&gt;&lt;SPAN style="BACKGROUND-COLOR: #ffff00"&gt;%&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;
&lt;P mce_keep="true"&gt;&lt;U&gt;In my repro I get access denied for these registry keys for IUSR account&lt;/U&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;A href="http://blogs.msdn.com/blogfiles/sukeshak/WindowsLiveWriter/InstallingMS07045CumulativeSecurityUpdat_61E9/Accessdenied.jpg" mce_href="http://blogs.msdn.com/blogfiles/sukeshak/WindowsLiveWriter/InstallingMS07045CumulativeSecurityUpdat_61E9/Accessdenied.jpg"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=197 alt=Accessdenied src="http://blogs.msdn.com/blogfiles/sukeshak/WindowsLiveWriter/InstallingMS07045CumulativeSecurityUpdat_61E9/Accessdenied_thumb.jpg" width=405 border=0 mce_src="http://blogs.msdn.com/blogfiles/sukeshak/WindowsLiveWriter/InstallingMS07045CumulativeSecurityUpdat_61E9/Accessdenied_thumb.jpg"&gt;&lt;/A&gt;&amp;nbsp; &lt;/P&gt;
&lt;P mce_keep="true"&gt;Till an official update is available on this issue, please run regmon and fix the permission issues shown in the logs. &lt;FONT color=#ff0000&gt;Please give permission to only the user account shown in regmon logs and not for everyone group since it would increase security risk.&lt;/FONT&gt; &lt;/P&gt;
&lt;P&gt;For testing if the permission requirement is only for IUSR account, add IUSR account to administrators group and test. In my case it works and confirms that it's missing permission only for IUSR. This step is for only for testing and needs to be reverted immediately.&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;Uninstalling this patch is not recommended since it's a security update.&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4990202" width="1" height="1"&gt;</content><author><name>sukeshak</name><uri>http://blogs.msdn.com/members/sukeshak.aspx</uri></author><category term="Debugging (User Mode)" scheme="http://blogs.msdn.com/sukeshak/archive/tags/Debugging+_2800_User+Mode_2900_/default.aspx" /><category term="Issue" scheme="http://blogs.msdn.com/sukeshak/archive/tags/Issue/default.aspx" /><category term="IE" scheme="http://blogs.msdn.com/sukeshak/archive/tags/IE/default.aspx" /><category term="945701" scheme="http://blogs.msdn.com/sukeshak/archive/tags/945701/default.aspx" /><category term="HTTP" scheme="http://blogs.msdn.com/sukeshak/archive/tags/HTTP/default.aspx" /><category term="IIS &amp;amp;amp" scheme="http://blogs.msdn.com/sukeshak/archive/tags/IIS+_2600_amp_3B00_amp/default.aspx" /></entry><entry><title>How to Check certificate expiry for webserver (IIS) certificates using script</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/sukeshak/archive/2007/09/12/how-to-check-certificate-expiry-for-webserver-iis-certificates-using-script.aspx" /><id>http://blogs.msdn.com/sukeshak/archive/2007/09/12/how-to-check-certificate-expiry-for-webserver-iis-certificates-using-script.aspx</id><published>2007-09-13T08:40:00Z</published><updated>2007-09-13T08:40:00Z</updated><content type="html">&lt;P&gt;Although the title says webserver certificates the script is not limited to webserver certificates only.&lt;/P&gt;
&lt;P&gt;This script is useful for admins to check expiry dates of server certificates and be prepared to renew or change them. In case if you have ideas of using this in your server environment and you need help in tweaking this script do let me know.&lt;/P&gt;
&lt;P&gt;Please copy &amp;amp; paste script below into a file called "CertExpiryCheck.vbs" and run the script from command line like&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#0000ff&gt;C:\&amp;gt; cscript certexpirycheck.vbs [SubjectName]&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;C:\&amp;gt; cscript certexpirycheck.vbs sukak&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/sukeshak/WindowsLiveWriter/HowtoCheckcertificateexpiryforwebserverc_98F4/CertExpirycheck.jpg" mce_href="http://blogs.msdn.com/blogfiles/sukeshak/WindowsLiveWriter/HowtoCheckcertificateexpiryforwebserverc_98F4/CertExpirycheck.jpg"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=65 alt=CertExpirycheck src="http://blogs.msdn.com/blogfiles/sukeshak/WindowsLiveWriter/HowtoCheckcertificateexpiryforwebserverc_98F4/CertExpirycheck_thumb.jpg" width=480 border=0 mce_src="http://blogs.msdn.com/blogfiles/sukeshak/WindowsLiveWriter/HowtoCheckcertificateexpiryforwebserverc_98F4/CertExpirycheck_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;* here "sukak" is subject name which usually would be your domain name (FQDN)&lt;BR&gt;* Issued by also shows "sukak" in my case since the test was done using self issued certificate created using selfSSL.exe&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;PRE style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none"&gt;&lt;SPAN style="COLOR: #008000"&gt;'**************************************************&lt;/SPAN&gt;
&lt;SPAN style="COLOR: #008000"&gt;'* CertExpiryCheck.vbs&lt;/SPAN&gt;
&lt;SPAN style="COLOR: #008000"&gt;'* Enumerate certificates with day left for expiry &lt;/SPAN&gt;
&lt;SPAN style="COLOR: #008000"&gt;'**************************************************&lt;/SPAN&gt;

&lt;SPAN style="COLOR: #0000ff"&gt;Option&lt;/SPAN&gt; Explicit
&lt;SPAN style="COLOR: #0000ff"&gt;Dim&lt;/SPAN&gt; SubjectName
&lt;SPAN style="COLOR: #0000ff"&gt;If&lt;/SPAN&gt; WScript.Arguments.Count &amp;gt; 0 &lt;SPAN style="COLOR: #0000ff"&gt;Then&lt;/SPAN&gt;
    SubjectName = LCase(WScript.Arguments(0))
&lt;SPAN style="COLOR: #0000ff"&gt;Else&lt;/SPAN&gt;
    CommandUsage
&lt;SPAN style="COLOR: #0000ff"&gt;End&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;If&lt;/SPAN&gt;

&lt;SPAN style="COLOR: #0000ff"&gt;Dim&lt;/SPAN&gt; Store, Certificates, Certificate
&lt;SPAN style="COLOR: #0000ff"&gt;Const&lt;/SPAN&gt; CAPICOM_LOCAL_MACHINE_STORE = 1
&lt;SPAN style="COLOR: #0000ff"&gt;Const&lt;/SPAN&gt; CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME = 1        
&lt;SPAN style="COLOR: #0000ff"&gt;Const&lt;/SPAN&gt; CAPICOM_STORE_OPEN_READ_ONLY = 0

&lt;SPAN style="COLOR: #0000ff"&gt;Set&lt;/SPAN&gt; Store = CreateObject(&lt;SPAN style="COLOR: #006080"&gt;"CAPICOM.Store"&lt;/SPAN&gt;)
Store.Open CAPICOM_LOCAL_MACHINE_STORE, &lt;SPAN style="COLOR: #006080"&gt;"MY"&lt;/SPAN&gt; ,CAPICOM_STORE_OPEN_READ_ONLY
&lt;SPAN style="COLOR: #0000ff"&gt;Set&lt;/SPAN&gt; Certificates = Store.Certificates.Find(CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME, SubjectName, 0)

&lt;SPAN style="COLOR: #0000ff"&gt;If&lt;/SPAN&gt; Certificates.Count &amp;gt;0 &lt;SPAN style="COLOR: #0000ff"&gt;Then&lt;/SPAN&gt;
   &lt;SPAN style="COLOR: #0000ff"&gt;For&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;Each&lt;/SPAN&gt; Certificate &lt;SPAN style="COLOR: #0000ff"&gt;in&lt;/SPAN&gt; Certificates
    &lt;SPAN style="COLOR: #008000"&gt;'Certificate.display()    'If you want to see the Cert in UI&lt;/SPAN&gt;
    WScript.Echo &lt;SPAN style="COLOR: #006080"&gt;"*** Subject "&lt;/SPAN&gt; &amp;amp; Certificate.SubjectName &amp;amp; &lt;SPAN style="COLOR: #006080"&gt;" ***"&lt;/SPAN&gt;
    WScript.Echo &lt;SPAN style="COLOR: #006080"&gt;"Issued by "&lt;/SPAN&gt; &amp;amp; Certificate.IssuerName 
    WScript.Echo &lt;SPAN style="COLOR: #006080"&gt;"Valid from "&lt;/SPAN&gt; &amp;amp; Certificate.ValidFromDate &amp;amp; &lt;SPAN style="COLOR: #006080"&gt;" to "&lt;/SPAN&gt; &amp;amp; Certificate.ValidToDate 
    WScript.Echo &lt;SPAN style="COLOR: #006080"&gt;"Days to expiry "&lt;/SPAN&gt; &amp;amp; DateDiff(&lt;SPAN style="COLOR: #006080"&gt;"d"&lt;/SPAN&gt;,now(),Certificate.ValidToDate)
    WScript.Echo 
   &lt;SPAN style="COLOR: #0000ff"&gt;Next&lt;/SPAN&gt;
 &lt;SPAN style="COLOR: #0000ff"&gt;Else&lt;/SPAN&gt;
  WScript.Echo &lt;SPAN style="COLOR: #006080"&gt;"No certificates with SubjectName =&amp;gt; '"&lt;/SPAN&gt; &amp;amp; SubjectName &amp;amp; &lt;SPAN style="COLOR: #006080"&gt;"'"&lt;/SPAN&gt;
&lt;SPAN style="COLOR: #0000ff"&gt;End&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;If&lt;/SPAN&gt;

&lt;SPAN style="COLOR: #0000ff"&gt;Set&lt;/SPAN&gt; Certificates = &lt;SPAN style="COLOR: #0000ff"&gt;Nothing&lt;/SPAN&gt;
&lt;SPAN style="COLOR: #0000ff"&gt;Set&lt;/SPAN&gt; Store = &lt;SPAN style="COLOR: #0000ff"&gt;Nothing&lt;/SPAN&gt;

&lt;SPAN style="COLOR: #0000ff"&gt;Sub&lt;/SPAN&gt; CommandUsage
  MsgBox &lt;SPAN style="COLOR: #006080"&gt;"Usage: CertExpiryCheck.vbs  [SubjectName] "&lt;/SPAN&gt;, vbInformation,&lt;SPAN style="COLOR: #006080"&gt;"CertExpiryCheck"&lt;/SPAN&gt;
  WScript.Quit(1)
&lt;SPAN style="COLOR: #0000ff"&gt;End&lt;/SPAN&gt; Sub&lt;/PRE&gt;&lt;/DIV&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Just keep in mind you need capicom.dll to use this script. This comes default on Windows 2003 (I guess) but might need to be downloaded and registered on other platforms like Vista. Use &lt;STRONG&gt;regsvr32 capicom.dll &lt;/STRONG&gt;to register it first before using the script.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4889098" width="1" height="1"&gt;</content><author><name>sukeshak</name><uri>http://blogs.msdn.com/members/sukeshak.aspx</uri></author><category term="IIS &amp;amp; HTTP" scheme="http://blogs.msdn.com/sukeshak/archive/tags/IIS+_2600_amp_3B00_+HTTP/default.aspx" /><category term="IIS7" scheme="http://blogs.msdn.com/sukeshak/archive/tags/IIS7/default.aspx" /><category term="Cool Stuff" scheme="http://blogs.msdn.com/sukeshak/archive/tags/Cool+Stuff/default.aspx" /></entry><entry><title>Redirecting from http to https in IIS7 (http2https Updated)</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/sukeshak/archive/2007/09/05/redirecting-from-http-to-https-in-iis7-http2https-updated.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="200372" href="http://blogs.msdn.com/sukeshak/attachment/4759266.ashx" /><id>http://blogs.msdn.com/sukeshak/archive/2007/09/05/redirecting-from-http-to-https-in-iis7-http2https-updated.aspx</id><published>2007-09-05T13:07:00Z</published><updated>2007-09-05T13:07:00Z</updated><content type="html">&lt;P&gt;I had written a sample to redirect all http traffic to https (secure) in September 2006 &lt;A title=http://blogs.msdn.com/sukeshak/archive/2006/09/03/http2https.aspx href="http://blogs.msdn.com/sukeshak/archive/2006/09/03/http2https.aspx" mce_href="http://blogs.msdn.com/sukeshak/archive/2006/09/03/http2https.aspx"&gt;http://blogs.msdn.com/sukeshak/archive/2006/09/03/http2https.aspx&lt;/A&gt; 
&lt;P&gt;In one of our internal discussion alias the question came up that this method does not work when SSL is forced on the website. Step 5 below handles that scenario by checking the "403.4 SSL required" response and handling it during OnEndRequest event. 
&lt;P&gt;&lt;STRONG&gt;So let us get into action (I'm using C# for this sample)&lt;/STRONG&gt; 
&lt;OL&gt;
&lt;LI&gt;Download and Install &lt;A href="http://www.iis.net/handlers/871/ItemPermaLink.ashx" mce_href="http://www.iis.net/handlers/871/ItemPermaLink.ashx"&gt;IIS7 Managed Module Starter Kit&lt;/A&gt;&lt;BR&gt;(Not really a requirement but it would make developing IIS7 modules easier) 
&lt;LI&gt;Rename the default class name created to "redir.cs" and rename project/solution/namespace to "http2https" 
&lt;LI&gt;Add the following code in "Init" method &lt;BR&gt;
&lt;DIV&gt;&lt;PRE style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none"&gt;&lt;SPAN style="COLOR: #008000"&gt;// register for the BeginRequest event&lt;/SPAN&gt;
application.BeginRequest += &lt;SPAN style="COLOR: #0000ff"&gt;new&lt;/SPAN&gt; EventHandler(OnBeginRequest); 
application.EndRequest += &lt;SPAN style="COLOR: #0000ff"&gt;new&lt;/SPAN&gt; EventHandler(OnEndRequest);&lt;/PRE&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;LI&gt;Add the following method to implement "BeginRequest" event &lt;BR&gt;
&lt;DIV&gt;&lt;PRE style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none"&gt;&lt;SPAN style="COLOR: #008000"&gt;//BeginRequest implementation&lt;/SPAN&gt;
&lt;SPAN style="COLOR: #0000ff"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;void&lt;/SPAN&gt; OnBeginRequest(Object sender, EventArgs e)
{
HttpApplication app = (HttpApplication)sender;
&lt;SPAN style="COLOR: #0000ff"&gt;string&lt;/SPAN&gt; HttpUrl = app.Request.Url.ToString(); 

   &lt;SPAN style="COLOR: #0000ff"&gt;if&lt;/SPAN&gt; (HttpUrl.StartsWith(&lt;SPAN style="COLOR: #006080"&gt;"http:"&lt;/SPAN&gt;))                           &lt;SPAN style="COLOR: #008000"&gt;//Redirection done only if URL starts with http:&lt;/SPAN&gt;
   {
   HttpUrl = HttpUrl.Replace(&lt;SPAN style="COLOR: #006080"&gt;"http:"&lt;/SPAN&gt;, &lt;SPAN style="COLOR: #006080"&gt;"https:"&lt;/SPAN&gt;);
   app.Response.Redirect(HttpUrl.ToString(), &lt;SPAN style="COLOR: #0000ff"&gt;true&lt;/SPAN&gt;);           &lt;SPAN style="COLOR: #008000"&gt;//Redirecting (http 302) to the same URL but with https&lt;/SPAN&gt;
   app.Response.End();                                        &lt;SPAN style="COLOR: #008000"&gt;//We don't want to any further so end&lt;/SPAN&gt;
   }
} 
&lt;/PRE&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;P&gt;Add the following method to implement "OnEndRequest" event&lt;BR&gt;&lt;/P&gt;
&lt;DIV&gt;&lt;PRE style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none"&gt;&lt;SPAN style="COLOR: #008000"&gt;//This is for scenario where SSL is forced on the site&lt;/SPAN&gt;
&lt;SPAN style="COLOR: #0000ff"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;void&lt;/SPAN&gt; OnEndRequest(Object sender, EventArgs e)
{
  HttpApplication app = (HttpApplication)sender;
  &lt;SPAN style="COLOR: #0000ff"&gt;if&lt;/SPAN&gt; (app.Response.StatusCode == 403 &amp;amp;&amp;amp; app.Response.SubStatusCode == 4)
  { 
    &lt;SPAN style="COLOR: #0000ff"&gt;string&lt;/SPAN&gt; HttpUrl = app.Request.Url.ToString();

    &lt;SPAN style="COLOR: #0000ff"&gt;if&lt;/SPAN&gt; (HttpUrl.StartsWith(&lt;SPAN style="COLOR: #006080"&gt;"http:"&lt;/SPAN&gt;))
    {
        HttpUrl = HttpUrl.Replace(&lt;SPAN style="COLOR: #006080"&gt;"http:"&lt;/SPAN&gt;, &lt;SPAN style="COLOR: #006080"&gt;"https:"&lt;/SPAN&gt;);
        app.Response.Redirect(HttpUrl.ToString(), &lt;SPAN style="COLOR: #0000ff"&gt;true&lt;/SPAN&gt;);
        app.Response.End();
    }
}

&lt;/PRE&gt;&lt;BR&gt;&lt;/DIV&gt;
&lt;LI&gt;Make sure you have the following in your web.config inside configuration tag &lt;BR&gt;
&lt;DIV&gt;&lt;PRE style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none"&gt;&amp;lt;system.webServer&amp;gt;
&amp;lt;modules&amp;gt;
   &amp;lt;add name=&lt;SPAN style="COLOR: #006080"&gt;"redir"&lt;/SPAN&gt; type=&lt;SPAN style="COLOR: #006080"&gt;"http2https.redir"&lt;/SPAN&gt; /&amp;gt;
&amp;lt;/modules&amp;gt;
&amp;lt;/system.webServer&amp;gt; 
&lt;/PRE&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;Your http to https redirection sample is ready and also works if you force SSL!!! 
&lt;P&gt;&lt;STRONG&gt;&lt;BR&gt;How to deploy the HttpModule&lt;BR&gt;&lt;/STRONG&gt;There are multiple ways you can deploy this component (I'm assuming that it's being deployed for "default website") 
&lt;P&gt;&lt;U&gt;Method 1&lt;BR&gt;&lt;/U&gt;Create a folder called "App_Code" inside "%systemdrive%\inetpub\wwwroot"&lt;BR&gt;Copy "redir.cs" file into "App_Code" folder&lt;BR&gt;Copy "web.config" file inside "%systemdrive%\inetpub\wwwroot" 
&lt;P&gt;&lt;U&gt;Method 2&lt;BR&gt;&lt;/U&gt;Create a folder called "bin" inside "%systemdrive%\inetpub\wwwroot"&lt;BR&gt;Compile&amp;nbsp;"redir.cs" into "redir.dll" and copy&amp;nbsp;it into "bin" folder (to compile -&amp;gt; csc.exe /out:redir.dll /target:library redir.cs)&lt;BR&gt;Copy "web.config" file inside "%systemdrive%\inetpub\wwwroot" 
&lt;P&gt;If you open IIS7 UI and go to Modules you can see your HttpModule listed there.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Source code attached with this post&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4759266" width="1" height="1"&gt;</content><author><name>sukeshak</name><uri>http://blogs.msdn.com/members/sukeshak.aspx</uri></author><category term="IIS7" scheme="http://blogs.msdn.com/sukeshak/archive/tags/IIS7/default.aspx" /></entry><entry><title>MSN Cartoon Beta (cool way to create smiley's from photos)</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/sukeshak/archive/2007/07/15/msn-cartoon-beta-cool-way-to-create-smiley-s-from-photos.aspx" /><id>http://blogs.msdn.com/sukeshak/archive/2007/07/15/msn-cartoon-beta-cool-way-to-create-smiley-s-from-photos.aspx</id><published>2007-07-15T12:55:23Z</published><updated>2007-07-15T12:55:23Z</updated><content type="html">&lt;p&gt;Recently I stumbled upon a discussion on facial recognition and creating models from them. Came to know that MSN China had lunched a service called "MSN Cartoon Beta".&lt;/p&gt; &lt;p&gt;Chinese is like French to me; I know neither :)&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;But I thought it would be an awesome feature to have for all Windows Live Services so tried my predict &amp;amp; clicking skills to get it working!&lt;/p&gt; &lt;p&gt;The following video demonstrates how to use the web based page to create MSN Cartoon without learning Chinese :)&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Before beginning with the application there is a small web based install which pops-up but you know which buttons to click if you have used Windows for long enough!&lt;/p&gt; &lt;p&gt;The last button click on the page gives you a zip file containing the newly created smiley's for all&amp;nbsp; your cool expressions... Now stop reading and check the video and the site ;)&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt; &lt;div class="wlWriterSmartContent" id="53357c8b-5919-4e32-8c25-305d27c17a37:1ab528f9-04f4-41dd-a80c-6a3d9bb9aabf" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;embed src="http://images.soapbox.msn.com/flash/soapbox1_1.swf" quality="high" width="432" height="364" wmode="transparent" type="application/x-shockwave-flash" pluginspage="http://macromedia.com/go/getflashplayer" flashvars="c=v&amp;v=b5c947a4-e593-44ef-b3a1-ca566fe192ef"&gt;&lt;/embed&gt;&lt;/div&gt;&lt;/p&gt; &lt;p&gt;URL =&amp;gt; &lt;a title="http://cartoon.msn.com.cn/" href="http://cartoon.msn.com.cn/"&gt;http://cartoon.msn.com.cn/&lt;/a&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;If there is enough demand for audio commentary I will add voice to explain the different buttons and it's options.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3875832" width="1" height="1"&gt;</content><author><name>sukeshak</name><uri>http://blogs.msdn.com/members/sukeshak.aspx</uri></author><category term="Cool Stuff" scheme="http://blogs.msdn.com/sukeshak/archive/tags/Cool+Stuff/default.aspx" /></entry><entry><title>How to reuse contacts from Live Messenger in Vista?</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/sukeshak/archive/2007/07/15/how-to-reuse-contacts-from-live-messenger-in-vista.aspx" /><id>http://blogs.msdn.com/sukeshak/archive/2007/07/15/how-to-reuse-contacts-from-live-messenger-in-vista.aspx</id><published>2007-07-15T12:35:32Z</published><updated>2007-07-15T12:35:32Z</updated><content type="html">&lt;p&gt;Assume that you have a lot of contacts on Live Messenger which you would like to use in different applications provided in Vista.&amp;nbsp; By default you won't have direct access to contact due to security settings (encryption) to protect that information.&lt;/p&gt; &lt;p&gt;There is an easy tweak/option to enable this information. &lt;/p&gt; &lt;p&gt;In Windows Live Messenger go to&lt;br&gt;Tools -&amp;gt; Options -&amp;gt; Security (Uncheck the box shown below)&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/sukeshak/WindowsLiveWriter/HowtoreusecontactsfromLiveMessengerinVis_D435/image.png" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="97" alt="image" src="http://blogs.msdn.com/blogfiles/sukeshak/WindowsLiveWriter/HowtoreusecontactsfromLiveMessengerinVis_D435/image_thumb.png" width="485" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Now check your "C:\users\&amp;lt;login Name&amp;gt;\Contacts" folder, you will find a folder with your Live ID name and all your Messenger contacts inside that folder...&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3875347" width="1" height="1"&gt;</content><author><name>sukeshak</name><uri>http://blogs.msdn.com/members/sukeshak.aspx</uri></author><category term="Cool Stuff" scheme="http://blogs.msdn.com/sukeshak/archive/tags/Cool+Stuff/default.aspx" /><category term="Vista" scheme="http://blogs.msdn.com/sukeshak/archive/tags/Vista/default.aspx" /></entry><entry><title>Understanding Vector Graphics</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/sukeshak/archive/2007/03/21/understanding-vector-graphics.aspx" /><id>http://blogs.msdn.com/sukeshak/archive/2007/03/21/understanding-vector-graphics.aspx</id><published>2007-03-21T19:22:42Z</published><updated>2007-03-21T19:22:42Z</updated><content type="html">&lt;p&gt;During multimedia era (Windows 3.1 to Windows 95) I had conducted several talks on different elements of multimedia and vector graphics was one of them. Explanation provided below is tweaked to make sure everyone can understand easily.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;What does this sample do?&lt;br&gt;&lt;/strong&gt;Draw a circle with 100 pixel radius with a mid-point of (200,200)&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;Non-vector graphics scenario&lt;br&gt;&lt;/font&gt;So in the case of bitmap graphics (bmp/jpg etc) you draw the circle and then save the entire square area pixel-by-pixel (I'm leaving out compression related differences to not make this sample complicated)&amp;nbsp;inside the file. When you zoom the image since it's increasing pixel resolution, so you see the clarity going from good =&amp;gt; bad =&amp;gt; worse.&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;Vector Graphics scenario&lt;br&gt;&lt;/font&gt;In the case of Vector graphics, you save (usually) formula and values required for implementing the formula. In our sample&lt;/p&gt; &lt;p&gt;&lt;u&gt;Formula&lt;br&gt;&lt;/u&gt;x1 = x + r * Sin (angle)&lt;br&gt;y1 = y + r * Cos (angle)&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div&gt; &lt;div class="csharpcode"&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   1:&lt;/span&gt; &lt;span class="rem"&gt;//Sample code snippet&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; centerX = 200;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   3:&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; centerY = 200;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; radius = 100; &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   5:&lt;/span&gt; &amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:&lt;/span&gt; &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; i=0; i&amp;lt; 360;i++)  &lt;span class="rem"&gt;//move point from 0 to 360 degree&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   7:&lt;/span&gt; { &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; x1 = centerX + radius * sin(i); &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   9:&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; y1 = centerY + radius * cos(i);  &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:&lt;/span&gt; &amp;nbsp;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  11:&lt;/span&gt; DrawPixel(x1,y1); &lt;span class="rem"&gt;//drawing pixel on the screen&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  12:&lt;/span&gt; }&lt;/pre&gt;&lt;/div&gt;
&lt;style type="text/css"&gt;.csharpcode-wrapper, .csharpcode-wrapper pre {
  background-color: #f4f4f4;
  border: solid 1px gray;
  cursor: text;
  font-family: consolas, 'Courier New', courier, monospace;
  font-size: 8pt;
  line-height: 12pt;
  margin: 20px 0px 10px 0px;
  max-height: 200px;
  overflow: auto;
  padding: 4px 4px 4px 4px;
  width: 97.5%;
}
.csharpcode-wrapper pre {
  border-style: none;
  margin: 0px 0px 0px 0px;
  overflow: visible;
  padding: 0px 0px 0px 0px;
}
.csharpcode, .csharpcode pre, .csharpcode .alt {
  background-color: #f4f4f4;
  border-style: none;
  color: black;
  font-family: consolas, 'Courier New', courier, monospace;
  font-size: 8pt;
  line-height: 12pt;
  overflow: visible;
  padding: 0px 0px 0px 0px;
  width: 100%;
}
.csharpcode pre {
  margin: 0em;
}
.csharpcode .alt {
  background-color: white;
}
.csharpcode .asp {
  background-color: #ffff00;
}
.csharpcode .attr {
  color: #ff0000;
}
.csharpcode .html {
  color: #800000;
}
.csharpcode .kwrd {
  color: #0000ff;
}
.csharpcode .lnum {
  color: #606060;
}
.csharpcode .op {
  color: #0000c0;
}
.csharpcode .preproc {
  color: #cc6633;
}
.csharpcode .rem {
  color: #008000;
}
.csharpcode .str {
  color: #006080;
}
&lt;/style&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://blogs.msdn.com/blogfiles/sukeshak/WindowsLiveWriter/UnderstandingVectorGraphics_DC87/circle%5B5%5D.gif" atomicselection="true"&gt;&lt;img height="228" src="http://blogs.msdn.com/blogfiles/sukeshak/WindowsLiveWriter/UnderstandingVectorGraphics_DC87/circle_thumb%5B3%5D.gif" width="245" border="0"&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;So going to&amp;nbsp;XAML and&amp;nbsp;lets see how we can implement this simple sample&lt;br&gt;&lt;/strong&gt;This sample rotates a red circle around a circular path defined by "p_rot"&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;div class="csharpcode"&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   1:&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Canvas&lt;/span&gt; &lt;span class="attr"&gt;xmlns&lt;/span&gt;&lt;span class="kwrd"&gt;="http://schemas.microsoft.com/client/2007"&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:&lt;/span&gt;         &lt;span class="attr"&gt;xmlns:x&lt;/span&gt;&lt;span class="kwrd"&gt;="http://schemas.microsoft.com/winfx/2006/xaml"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   3:&lt;/span&gt;   &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Canvas.Triggers&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:&lt;/span&gt;     &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;EventTrigger&lt;/span&gt; &lt;span class="attr"&gt;RoutedEvent&lt;/span&gt;&lt;span class="kwrd"&gt;="Canvas.Loaded"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   5:&lt;/span&gt;       &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;EventTrigger.Actions&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:&lt;/span&gt;         &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;BeginStoryboard&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   7:&lt;/span&gt;           &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Storyboard&lt;/span&gt; &lt;span class="attr"&gt;BeginTime&lt;/span&gt;&lt;span class="kwrd"&gt;="0"&lt;/span&gt; &lt;span class="attr"&gt;Duration&lt;/span&gt;&lt;span class="kwrd"&gt;="Forever"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:&lt;/span&gt;             &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;DoubleAnimation&lt;/span&gt; &lt;span class="attr"&gt;Storyboard&lt;/span&gt;.&lt;span class="attr"&gt;TargetName&lt;/span&gt;&lt;span class="kwrd"&gt;="p_rot"&lt;/span&gt; &lt;span class="attr"&gt;Storyboard&lt;/span&gt;.&lt;span class="attr"&gt;TargetProperty&lt;/span&gt;&lt;span class="kwrd"&gt;="Angle"&lt;/span&gt; &lt;span class="attr"&gt;From&lt;/span&gt;&lt;span class="kwrd"&gt;="0"&lt;/span&gt; &lt;span class="attr"&gt;To&lt;/span&gt;&lt;span class="kwrd"&gt;="360"&lt;/span&gt; &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   9:&lt;/span&gt;                                                             &lt;span class="attr"&gt;BeginTime&lt;/span&gt;&lt;span class="kwrd"&gt;="0:0:0"&lt;/span&gt; &lt;span class="attr"&gt;Duration&lt;/span&gt;&lt;span class="kwrd"&gt;="0:0:5"&lt;/span&gt; &lt;span class="attr"&gt;RepeatBehavior&lt;/span&gt;&lt;span class="kwrd"&gt;="Forever"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:&lt;/span&gt;           &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Storyboard&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  11:&lt;/span&gt;         &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;BeginStoryboard&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  12:&lt;/span&gt;       &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;EventTrigger.Actions&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  13:&lt;/span&gt;     &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;EventTrigger&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  14:&lt;/span&gt;   &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Canvas.Triggers&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  15:&lt;/span&gt;   &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Canvas&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  16:&lt;/span&gt;     &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;UIElement.RenderTransform&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  17:&lt;/span&gt;       &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;TransformGroup&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  18:&lt;/span&gt;         &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;TransformGroup.Children&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  19:&lt;/span&gt;           &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;RotateTransform&lt;/span&gt; &lt;span class="attr"&gt;x:Name&lt;/span&gt;&lt;span class="kwrd"&gt;="p_rot"&lt;/span&gt; &lt;span class="attr"&gt;CenterX&lt;/span&gt;&lt;span class="kwrd"&gt;="200"&lt;/span&gt; &lt;span class="attr"&gt;CenterY&lt;/span&gt;&lt;span class="kwrd"&gt;="200"&lt;/span&gt; &lt;span class="attr"&gt;Angle&lt;/span&gt;&lt;span class="kwrd"&gt;="0"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  20:&lt;/span&gt;         &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;TransformGroup.Children&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  21:&lt;/span&gt;       &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;TransformGroup&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  22:&lt;/span&gt;     &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;UIElement.RenderTransform&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  23:&lt;/span&gt;     &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Ellipse&lt;/span&gt; &lt;span class="attr"&gt;Canvas&lt;/span&gt;.&lt;span class="attr"&gt;Top&lt;/span&gt;&lt;span class="kwrd"&gt;="50"&lt;/span&gt; &lt;span class="attr"&gt;Canvas&lt;/span&gt;.&lt;span class="attr"&gt;Left&lt;/span&gt;&lt;span class="kwrd"&gt;="100"&lt;/span&gt; &lt;span class="attr"&gt;Fill&lt;/span&gt;&lt;span class="kwrd"&gt;="Red"&lt;/span&gt; &lt;span class="attr"&gt;Width&lt;/span&gt;&lt;span class="kwrd"&gt;="50"&lt;/span&gt; &lt;span class="attr"&gt;Height&lt;/span&gt;&lt;span class="kwrd"&gt;="50"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  24:&lt;/span&gt;   &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Canvas&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  25:&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Canvas&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;style type="text/css"&gt;.csharpcode-wrapper, .csharpcode-wrapper pre {
  background-color: #f4f4f4;
  border: solid 1px gray;
  cursor: text;
  font-family: consolas, 'Courier New', courier, monospace;
  font-size: 8pt;
  line-height: 12pt;
  margin: 20px 0px 10px 0px;
  max-height: 200px;
  overflow: auto;
  padding: 4px 4px 4px 4px;
  width: 97.5%;
}
.csharpcode-wrapper pre {
  border-style: none;
  margin: 0px 0px 0px 0px;
  overflow: visible;
  padding: 0px 0px 0px 0px;
}
.csharpcode, .csharpcode pre, .csharpcode .alt {
  background-color: #f4f4f4;
  border-style: none;
  color: black;
  font-family: consolas, 'Courier New', courier, monospace;
  font-size: 8pt;
  line-height: 12pt;
  overflow: visible;
  padding: 0px 0px 0px 0px;
  width: 100%;
}
.csharpcode pre {
  margin: 0em;
}
.csharpcode .alt {
  background-color: white;
}
.csharpcode .asp {
  background-color: #ffff00;
}
.csharpcode .attr {
  color: #ff0000;
}
.csharpcode .html {
  color: #800000;
}
.csharpcode .kwrd {
  color: #0000ff;
}
.csharpcode .lnum {
  color: #606060;
}
.csharpcode .op {
  color: #0000c0;
}
.csharpcode .preproc {
  color: #cc6633;
}
.csharpcode .rem {
  color: #008000;
}
.csharpcode .str {
  color: #006080;
}
&lt;/style&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;font color="#0000ff"&gt;You can download the sample in &lt;strong&gt;Flash&lt;/strong&gt; and &lt;strong&gt;WPF/E&lt;/strong&gt; from the following URL&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="http://www.awesomeideas.net/community/Download/tabid/54/Default.aspx" href="http://www.awesomeideas.net/community/Download/tabid/54/Default.aspx"&gt;http://www.awesomeideas.net/community/Download/tabid/54/Default.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1926484" width="1" height="1"&gt;</content><author><name>sukeshak</name><uri>http://blogs.msdn.com/members/sukeshak.aspx</uri></author><category term="WinFX" scheme="http://blogs.msdn.com/sukeshak/archive/tags/WinFX/default.aspx" /><category term="Cool Stuff" scheme="http://blogs.msdn.com/sukeshak/archive/tags/Cool+Stuff/default.aspx" /></entry><entry><title>Creating video of your cool application</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/sukeshak/archive/2007/03/16/creating-video-of-your-cool-application.aspx" /><id>http://blogs.msdn.com/sukeshak/archive/2007/03/16/creating-video-of-your-cool-application.aspx</id><published>2007-03-16T14:09:00Z</published><updated>2007-03-16T14:09:00Z</updated><content type="html">&lt;P&gt;I have seen people using a number of tools to create screen captures of thier cool application for demos, blogs posting on video sites etc...&lt;/P&gt;
&lt;P&gt;I have been using&amp;nbsp;this tool for a long time, but it's existense is unknown to many. So here are the details &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Windows Media Encoder&lt;/STRONG&gt; &lt;/P&gt;
&lt;P&gt;Home Page : &lt;A title=http://www.microsoft.com/windows/windowsmedia/forpros/encoder/default.mspx href="http://www.microsoft.com/windows/windowsmedia/forpros/encoder/default.mspx" mce_href="http://www.microsoft.com/windows/windowsmedia/forpros/encoder/default.mspx"&gt;http://www.microsoft.com/windows/windowsmedia/forpros/encoder/default.mspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Download Page : &lt;A title=http://www.microsoft.com/downloads/details.aspx?FamilyID=5691ba02-e496-465a-bba9-b2f1182cdf24&amp;amp;DisplayLang=en href="http://www.microsoft.com/downloads/details.aspx?FamilyID=5691ba02-e496-465a-bba9-b2f1182cdf24&amp;amp;DisplayLang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=5691ba02-e496-465a-bba9-b2f1182cdf24&amp;amp;DisplayLang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=5691ba02-e496-465a-bba9-b2f1182cdf24&amp;amp;DisplayLang=en&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;How much does it cost?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;It's &lt;STRONG&gt;FREE&lt;/STRONG&gt; !!!&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Glimpse of the options in the wizard 1st page (loads of options more...)&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/sukeshak/WindowsLiveWriter/Creatingvideoofyourcoolapplication_EA2F/mediaencoder%5B8%5D.png" mce_href="http://blogs.msdn.com/blogfiles/sukeshak/WindowsLiveWriter/Creatingvideoofyourcoolapplication_EA2F/mediaencoder%5B8%5D.png" atomicselection="true"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=144 src="http://blogs.msdn.com/blogfiles/sukeshak/WindowsLiveWriter/Creatingvideoofyourcoolapplication_EA2F/mediaencoder_thumb%5B6%5D.png" width=304 border=0 mce_src="http://blogs.msdn.com/blogfiles/sukeshak/WindowsLiveWriter/Creatingvideoofyourcoolapplication_EA2F/mediaencoder_thumb%5B6%5D.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Is this tool only for screen capturing?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;No way, go ahead and explore yourself&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The output file is either WMA or WMV, and you can&amp;nbsp;also select target&amp;nbsp;profile like desktop, pocket pc etc...&lt;/P&gt;
&lt;P&gt;Go ahead and showcase your applications &amp;amp;&amp;nbsp;mashups live on those video sites :)&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1893831" width="1" height="1"&gt;</content><author><name>sukeshak</name><uri>http://blogs.msdn.com/members/sukeshak.aspx</uri></author><category term="Cool Stuff" scheme="http://blogs.msdn.com/sukeshak/archive/tags/Cool+Stuff/default.aspx" /></entry><entry><title>What is Windows Vista Sideshow?</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/sukeshak/archive/2007/01/28/sideshow.aspx" /><id>http://blogs.msdn.com/sukeshak/archive/2007/01/28/sideshow.aspx</id><published>2007-01-29T10:33:00Z</published><updated>2007-01-29T10:33:00Z</updated><content type="html">&lt;P&gt;I read a lot of news and comments about Windows Vista Sideshow. Several comments are in the lines of saying... hmmm what is the big deal about this new feature? Why&amp;nbsp;would I need a small display on my laptop to see my meeting room or tasks, I already have them on my mobile... So I thought I'll just add some of my dreams and some reality about Windows Vista Sideshow since the above thoughts are from people who are not ready to dream about the usage scenarios. &lt;/P&gt;
&lt;P&gt;First of all Windows Vista Sideshow is not a feature but a technology powered by Windows Vista. 
&lt;P&gt;For more proof of another use of this technology you can see the new Windows Vista MCE remotes launched during CES. 
&lt;P&gt;&lt;A href="http://www.engadget.com/search/?q=vista+side+show+remotes" mce_href="http://www.engadget.com/search/?q=vista+side+show+remotes"&gt;&lt;U&gt;http://www.engadget.com/search/?q=vista+side+show+remotes&lt;/U&gt;&lt;/A&gt; 
&lt;P&gt;Now is this only for laptops and Media Center Remotes? I don't think so! 
&lt;P&gt;&lt;FONT color=#0000ff&gt;Lets dream a little and see what else can be done or how this technology can be taken to the next level... &lt;/FONT&gt;
&lt;P&gt;Lets say in next couple of years we get to buy&amp;nbsp;these mini devices powered by Wifi/Bluetooth and have support for Windows Vista Sideshow. Assume that by year 2009, these mini devices become dirt cheap like 5 devices for $100 or so. So people (like me) would go and buy 5 or 10 or more&amp;nbsp;of these devices and would fix it everywhere in the house 
&lt;UL&gt;
&lt;LI&gt;On the refrigerator 
&lt;LI&gt;On the main door 
&lt;LI&gt;In the bed room 
&lt;LI&gt;In the car 
&lt;LI&gt;obviously in my MCE remote also and anywhere else you prefer...&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;and all these devices are being connected to the same computer running Windows Vista so that all the information required would be at your finger-tip anytime.&lt;/P&gt;
&lt;P&gt;One of the differences with Microsoft Technologies is that you get a platform to develop and enhance it further. Which means that there are no bounds to how these mini devices can be used... for example these mini devices can be used in these scenarios (and many more which is limited by your ideas) 
&lt;UL&gt;
&lt;LI&gt;Home automation, to an extend of replacing all the switches in the house 
&lt;LI&gt;Outlook calendar/tasks 
&lt;LI&gt;Windows Live Email/Calendar/Messenger Buddies 
&lt;LI&gt;Controlling music from your home theatre system (maybe Windows Vista MCE) 
&lt;LI&gt;Stock Quotes&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;After reading the above do you really think Windows Vista Sideshow is &lt;STRONG&gt;just &lt;/STRONG&gt;a small little display attached to one of those expensive laptops?&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Don't forget to check my blog website &lt;/STRONG&gt;&lt;A href="http://blogs.awesomeideas.net/" mce_href="http://blogs.awesomeideas.net"&gt;&lt;STRONG&gt;http://blogs.awesomeideas.net&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1547756" width="1" height="1"&gt;</content><author><name>sukeshak</name><uri>http://blogs.msdn.com/members/sukeshak.aspx</uri></author><category term="Cool Stuff" scheme="http://blogs.msdn.com/sukeshak/archive/tags/Cool+Stuff/default.aspx" /><category term="Vista" scheme="http://blogs.msdn.com/sukeshak/archive/tags/Vista/default.aspx" /></entry></feed>