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

<channel>
	<title>AeroXperience</title>
	<atom:link href="http://www.aeroxp.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.aeroxp.org</link>
	<description>Windows Enthusiast Community</description>
	<pubDate>Wed, 27 Aug 2008 22:14:21 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>Tweak DWM from your programs, Part 2</title>
		<link>http://www.aeroxp.org/2008/08/tweak-dwm-part-2/</link>
		<comments>http://www.aeroxp.org/2008/08/tweak-dwm-part-2/#comments</comments>
		<pubDate>Wed, 27 Aug 2008 18:00:14 +0000</pubDate>
		<dc:creator>Stan</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[Windows]]></category>

		<category><![CDATA[.net]]></category>

		<category><![CDATA[api]]></category>

		<category><![CDATA[C#]]></category>

		<category><![CDATA[dwm]]></category>

		<category><![CDATA[wrapper]]></category>

		<guid isPermaLink="false">http://www.aeroxp.org/?p=146</guid>
		<description><![CDATA[Following the first part of the Tweak DWM from your programs series, we are going to explore the actual usage of the Desktop Window Manager API in a Windows Forms-based program. The test application&#8211;included in the source package&#8211;also makes use of GlassBar, an extension to the existing control set.
Using GlassLib in your program
GlassLib is going [...]]]></description>
			<content:encoded><![CDATA[<div class=""><p>Following the <a title="Tweak DWM from your programs, Part 1" href="/2008/07/tweak-dwm-part-1/">first part</a> of the <strong>Tweak DWM from your programs</strong> series, we are going to explore the actual usage of the <strong>Desktop Window Manager API</strong> in a Windows Forms-based program. The test application&#8211;included in the <a href="http://stoyanoff.info/code/dwm/GlassLib_pub.zip">source package</a>&#8211;also makes use of <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/08/glassbar.png" border="0" alt="glassbar" width="16" height="16" /><strong>GlassBar</strong>, an extension to the existing control set.</p>
<p><span id="more-146"></span>Using GlassLib in your program</p>
<p><span style="font-family: courier new;"><a href="http://www.aeroxp.org/wp-content/uploads/2008/08/project.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/08/project24.png" border="0" alt="project" width="16" height="15" /></a>GlassLib </span>is going to be main focus of this part of the series. It supersedes <span style="font-family: courier new;"><a href="http://www.aeroxp.org/wp-content/uploads/2008/08/project.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/08/project24.png" border="0" alt="project" width="16" height="15" /></a>DwmWrapper </span>by implementing a framework around <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/08/glassbar.png" border="0" alt="glassbar" width="16" height="16" /><span style="font-family: Courier New;">GlassBar</span> which can be used as a complement to your visually-rich forms. In order to use this library in your project, you have to do the following:</p>
<ol>
<li>Include <strong>a)</strong> a reference to the DLL in your project from Visual Studio: <em>Project</em> menu =&gt;<em> Add reference</em>, or <strong>b)</strong> the actual code files to your C# project (adding them as links (shortcuts) as opposed to copying them is more suitable if you wish include the files in multiple projects and/or wish to make changes to the code yourself).</li>
<li>Remember that all of the functionality lies in the <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/08/namespace-thumb.png" border="0" alt="namespace_" width="15" height="15" /><span style="font-family: courier new;">GlassLib </span>namespace. You can use the <span style="font-family: courier new;"><span style="color: #0000ff;">using</span> </span>or <span style="color: #0000ff;">Imports</span> clause in the beginning of your C# or VB.NET code file, respectively, or the global imports if you code exclusively in VB.NET.</li>
</ol>
<h3>Exploring the GlassLib Test app</h3>
<p>Let&#8217;s begin exploring the framework by opening the project file for <span style="font-family: courier new;"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/08/project24.png" border="0" alt="project" width="16" height="15" />GlassLibTest</span>. Included in the GlassLib solution, it depends on the <span style="font-family: courier new;"><a href="http://www.aeroxp.org/wp-content/uploads/2008/08/project.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/08/project24.png" border="0" alt="project" width="16" height="15" /></a>GlassLib </span>project reference, which on its part has all the <span style="font-family: courier new;"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/08/project24.png" border="0" alt="project" width="16" height="15" />DwmWrapper</span> code.</p>
<p>Open the <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/08/form.png" border="0" alt="form" width="15" height="15" />frmMain.cs file which is the form which is to be executed right at start up. As described in the first part, the first thing the class constructor <span style=""><span style="font-family: Courier New;"><span style="color: #0000ff;">public</span> frmMain()</span></span> should do is to set <span style="font-family: courier new;"><span style="color: #2b91af;">Dwm</span>.ThrowExceptionTypes</span> to <span style=""><span style="font-family: Courier New;"><span style="color: #2b91af;">DwmExceptionTypes</span>.None</span></span> in order to avoid any exceptions from being raised when DWM is not enabled or available on the OS, or if any function failed. The next thing the program does is to enable dragging from the Glass-extended area.</p>
<p><span style="font-family: Courier New;"><span style="color: #2b91af;">Dwm</span>.Glass[<span style="color: #0000ff;">this</span>].DragExtendedArea = <span style="color: #0000ff;">true</span>; </span>is useful if you want the extended area to act as the caption bar does, like in Windows Media Player. This is what the <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/08/glassbar.png" border="0" alt="glassbar" width="16" height="16" /><span style="font-family: Courier New;">GlassBar </span>toolbar does as well (more on this later in this part).</p>
<p><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/08/toolbox.png" border="0" alt="toolbox" width="216" height="99" align="right" /> Switch to Designer mode (<em>View</em> <em>=&gt; Designer</em>) and you can see the layout of the form: the usual Windows Forms buttons, combo and text boxes et cetera, but also <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/08/glassbar.png" border="0" alt="glassbar" width="16" height="16" /><span style="font-family: Courier New;">GlassBar</span>. To add the latter to your own forms, open the Toolbox (<em>View =&gt; Toolbox</em>) and drag it to your form (see figure on right). The toolbar will automatically dock to the bottom of it and extend Glass from this side of the form. You are free to dock it to the whole form (or container for that matter) or one of the other sides.</p>
<p>Because DWM only supports Glass on top-level windows, in designer mode <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/08/glassbar.png" border="0" alt="glassbar" width="16" height="16" /><span style="font-family: Courier New;">GlassBar</span> falls back to UXTheme API in order to get the theme-specific background image or brush which is suitable for all non-Aero Glass themes such as Aero Basic, Luna (on Windows XP) or Windows Classic on any supported Windows version. On top of this, you can choose to write your own <a href="http://www.aeroxp.org/wp-content/uploads/2008/08/class.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/08/class-thumb.png" border="0" alt="class" width="15" height="15" /></a><span style="font-family: Courier New;">GlassBarRenderer</span>.</p>
<p>This feature provides two key benefits to your application&#8217;s design:</p>
<ul>
<li>For Windows Vista systems and future OS with support for Glass: <em>rich, seamless Glass UI</em></li>
<li>For Windows Vista systems where DWM is disabled or unavailable, <strong>and</strong> all previous Windows releases: <em>seamless UI deriving from the appropriate Windows</em> <em>theme, including custom themes</em> <em>created with software such as </em><a href="http://www.windowblinds.net/"><em>WindowBlinds</em></a>.</li>
</ul>
<p align="center"><a href="http://www.aeroxp.org/wp-content/uploads/2008/08/glassbar-themes.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/08/glassbar-themes-thumb.png" border="0" alt="GlassBar &quot;dressed up&quot; in various Windows themes, including a custom GlassBarRenderer" width="700" height="267" /></a></p>
<h3>Managing the GlassBar items</h3>
<p>Adding your items to GlassBar is quite easy. While in Design Mode, make sure that the Properties pane is visible (<em>View </em>menu =&gt;<em> Properties Window </em>to invoke it), select <span style="font-family: courier new;">Items </span>and expand the Collection Editor. You can add, remove and rearrange the items. For each one of them you can customize their:</p>
<table style="width: auto;" border="0" cellspacing="2" cellpadding="2" width="1010">
<tbody>
<tr width="auto">
<td width="10" valign="top"> </td>
<td width="188" valign="top"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/08/property-thumb1.png" border="0" alt="property_thumb1" width="16" height="15" /><span style="font-family: courier new;">Name</span></td>
<td width="802" valign="top">Used in code only (does not appear in UI)</td>
</tr>
<tr>
<td width="10" valign="top"> </td>
<td width="188" valign="top"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/08/property-thumb11.png" border="0" alt="property_thumb1" width="16" height="15" /><span style="font-family: courier new;">Enabled</span></td>
<td width="794" valign="top">Enables/disables the item from the UI</td>
</tr>
<tr>
<td width="10" valign="top"> </td>
<td width="188" valign="top"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/08/property-thumb12.png" border="0" alt="property_thumb1" width="16" height="15" /><span style="font-family: courier new;">Icon</span></td>
<td width="787" valign="top">Preferably translucent PNG image 25&#215;25 pixels in size</td>
</tr>
<tr>
<td width="10" valign="top"> </td>
<td width="188" valign="top"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/08/property-thumb12.png" border="0" alt="property_thumb1" width="16" height="15" /><span style="font-family: courier new;">IsSeparator</span></td>
<td width="782" valign="top">Denotes whether the item is a separator (its Icon will be disregarded)</td>
</tr>
<tr>
<td width="10" valign="top"> </td>
<td width="188" valign="top"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/08/property-thumb12.png" border="0" alt="property_thumb1" width="16" height="15" /><span style="font-family: courier new;">Overlay</span></td>
<td width="777" valign="top">Image, useful for &#8216;hover&#8217; effects</td>
</tr>
<tr>
<td width="10" valign="top"> </td>
<td width="188" valign="top"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/08/property-thumb12.png" border="0" alt="property_thumb1" width="16" height="15" /><span style="font-family: courier new;">Text</span></td>
<td width="773" valign="top">Alternative text shown when the item is hovered</td>
</tr>
<tr>
<td width="10" valign="top"> </td>
<td width="188" valign="top"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/08/property-thumb12.png" border="0" alt="property_thumb1" width="16" height="15" /><span style="font-family: courier new;">Visible</span></td>
<td width="770" valign="top">Shows/hides the item</td>
</tr>
</tbody>
</table>
<p>You can of course manage items programmatically using the <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/08/property-thumb1.png" border="0" alt="property_thumb1" width="16" height="15" /><span style="font-family: courier new;">Items </span>property, for example adding one:</p>
<p><span style=""><span style="font-family: Courier New;"><span style="color: #2b91af;">Image</span> img = <span style="color: #2b91af;">Image</span>.FromFile(<span style="color: #a31515;">&#8220;someFile.png&#8221;</span>);</span></span></p>
<p><span style=""><span style="font-family: Courier New;"><span style="color: #2b91af;">GlassBarItem</span> gbi = <span style="color: #0000ff;">new</span> <span style="color: #2b91af;">GlassBarItem</span>(<span style="color: #a31515;">&#8220;Sample Text&#8221;</span> + i, img);</span></span></p>
<p><span style="font-family: Courier New;">glassBar.Items.Add(gbi);</span></p>
<p>When the logic of your program requires an item be disabled or hidden, e.g. an unavailable feature, you can use <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/08/property-thumb11.png" border="0" alt="property_thumb1" width="16" height="15" /><span style="font-family: courier new;">Enabled </span>or <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/08/property-thumb12.png" border="0" alt="property_thumb1" width="16" height="15" /><span style="font-family: courier new;">Visible </span>to prevent users from clicking it.</p>
<h3>Custom renderers</h3>
<p>Internally GlassBar defines a standard renderer which on Windows Vista with Aero Glass enables draws on a translucent surface and otherwise falls back to the system-defined theme. If you wish to code a custom renderer for your needs, what you have to do is:</p>
<ol>
<li>Create a class deriving from (inheriting) from one of the following classes:
<ul>
<li><a href="http://www.aeroxp.org/wp-content/uploads/2008/08/class.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/08/class-thumb.png" border="0" alt="class" width="15" height="15" /></a><span style="font-family: Courier New;">GlassLib.Rendering.DefaultGlassBarRenderer</span> if you wish to customize only specific parts of the default renderer (images, background etc)</li>
<li><a href="http://www.aeroxp.org/wp-content/uploads/2008/08/class.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/08/class-thumb.png" border="0" alt="class" width="15" height="15" /></a><span style="font-family: Courier New;">GlassLib.Rendering.GlassBarRenderer</span> if you wish to build one from the ground up. This requires you to implement all of the methods and properties and is unlikely to be your choice.</li>
</ul>
</li>
<li>Decide which functions or images you would like to change. You can assign any image to <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/08/property-thumb12.png" border="0" alt="property_thumb1" width="16" height="15" /><span style="font-family: Courier New;">MainPiece, RightSecondaryStates, AnimationStrip etc.</span></li>
<li>The <img style="border-right: 0px; border-top: 0px; margin: 0px 3px 0px 0px; border-left: 0px; border-bottom: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/08/method-thumb1.png" border="0" alt="method_thumb1" width="16" height="15" /><span style="font-family: courier new;">DrawBarBackground </span>function is called every time the UI changes and needs to be redrawn. It is here where you can change most of the behavior of the default renderer and implement your own features.</li>
<li>Assign an instance of your custom renderer to <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/08/glassbar.png" border="0" alt="glassbar" width="16" height="16" /><span style="font-family: Courier New;">GlassBar</span>
<ul>
<li><span style="font-family: Courier New;">glassBar.Renderer = <span style="color: #0000ff;">new</span> <span style="color: #2b91af;">CustomRenderer</span>();</span> or to revert to default:</li>
<li><span style="font-family: Courier New;">glassBar.Renderer = <span style="color: #0000ff;">new</span> GlassLib.Rendering.<span style="color: #2b91af;">DefaultGlassBarRenderer</span>();</span></li>
</ul>
</li>
</ol>
<h3>The test app</h3>
<p>There is a test program added to the package, <a href="file:///C:/Users/Stan/AppData/Roaming/Windows Live Writer/PostSupportingFiles/746266d3-e326-4c4e-8fb9-15492f646457/project3.png"><strong><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/08/project-thumb12.png" border="0" alt="project_thumb1" width="16" height="15" /></strong></a><span style="font-family: courier new;">GlassLibTest</span>, whose code and compiled binary you can explore and experiment with GlassBar and DWM.</p>
<p>If you have any comments, questions, wishes or just an opinion, I would be happy to hear it.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.aeroxp.org/2008/08/tweak-dwm-part-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Windows 7/Server 2008 R2 Versioning (and other tidbits)</title>
		<link>http://www.aeroxp.org/2008/08/windows-7server-2008-r2-versioning-confirmed/</link>
		<comments>http://www.aeroxp.org/2008/08/windows-7server-2008-r2-versioning-confirmed/#comments</comments>
		<pubDate>Tue, 26 Aug 2008 17:49:55 +0000</pubDate>
		<dc:creator>Devin</dc:creator>
		
		<category><![CDATA[Microsoft]]></category>

		<category><![CDATA[Windows]]></category>

		<category><![CDATA[server 2008]]></category>

		<category><![CDATA[Windows 7]]></category>

		<category><![CDATA[windows server]]></category>

		<guid isPermaLink="false">http://www.aeroxp.org/?p=194</guid>
		<description><![CDATA[Mary-Jo Foley posted an entry saying that Microsoft was planning to skip the next logical in-band server release, Windows Server 2008 R2, and go straight to Windows Server 7.  This created quite a discussion among some techies, wondering why they would skip this release.
I personally had mixed feelings on this situation. I said on [...]]]></description>
			<content:encoded><![CDATA[<div class=""><p>Mary-Jo Foley posted an entry saying that Microsoft was planning to skip the next logical in-band server release, Windows Server 2008 R2, and go straight to Windows Server 7.  This created quite a discussion among some techies, wondering why they would skip this release.</p>
<p>I personally had mixed feelings on this situation. I said on one of the tech forums I visit,</p>
<blockquote><p>There&#8217;s only ever been one R2 release, and that was for Windows Server 2003 (and all it&#8217;s various sub-SKUs). That was because they had features to release, but no major platform to build it on. Consider that when WS2003 R2 was released, the latest build was the Pre-Beta 2 5259. There were also several other large platform launches that year - Visual Studio 2005 and SQL Server 2005. Now in 2008, this &#8220;big-three&#8221; was revived - Windows Server 2008, Visual Studio 2008, and recently, SQL Server 2008.</p>
<p>Also, I think 2010 seems to be on track for Server 7, as that would follow their schedule they&#8217;ve kept for a while now, and would confirm the late-2009 client release.</p></blockquote>
<p>Apparently, Mary-Jo was later told by Microsoft that Windows Server 2008 R2 is on track to become the next version of Windows Server. Supposedly this release is on track for 2010, immediately parallel to the next client release, Windows 7. Then another version, &#8220;which may or may not be called Windows Server 7&#8243; is expected in 2012. This would leave Microsoft in a somewhat regular pattern, as seen in the below timeline.</p>
<div id="attachment_195" class="wp-caption alignnone" style="width: 310px"><a href="http://www.aeroxp.org/wp-content/uploads/2008/08/ms-timeline-full.png"><img class="size-medium wp-image-195" src="http://www.aeroxp.org/wp-content/uploads/2008/08/ms-timeline-full-300x118.png" alt="Timeline of Windows, Windows Sever, Visual Studio, and SQL Server 2002-2012" width="300" height="118" /></a><p class="wp-caption-text">Timeline of Windows, Windows Sever, Visual Studio, and SQL Server 2002-2012</p></div>
<p>More of my own analysis of the recent events, along with a quick versioning primer, comes after the break.</p>
<p><span id="more-194"></span></p>
<h2>Updates Here, There, Everywhere: A Review</h2>
<p>Near the beginning of the decade, Windows Server 2000 and SQL Server 2000 were holding steady in their own markets. Windows XP had just been released on the Windows Client side. Then there was the release of the .NET framework.</p>
<p>In 2003, two important systems were updated - Windows Server and Visual Studio. They both contained the year &#8220;2003&#8243; in their title. 2004 became an off year (at least in terms of major releases, since XP SP2 did release to web in 2004), though as many AeroXperience readers may remember, Longhorn was originally slated for a possible 2004 release. Then in 2005, developers got a large update with both Visual Studio and SQL Server releasing new versions, again versioned by year. No major Windows updates were shipped that year.</p>
<p>Things changed in 2006, with no updates coming to the developer tools, but Windows Server 2003 R2 coming in early February and Windows Vista RTM&#8217;ing in November. Windows Server 2003 R2 became basically, the &#8220;2005&#8243; update to Windows Server, matching it with the other two &#8220;2005&#8243; products.</p>
<p>The developer trio reunited in late 2007-early 2008 with the release of Visual Studio 2008, then Windows Server 2008, and finally SQL Server 2008 last month.</p>
<p>So by now, you&#8217;re surely wondering, &#8220;Why is this important?&#8221; Because, by looking to the past, you can also see the future.  Graphically, we can see that Windows Server is on a regular release schedule, as is Windows client (although it seems to be nearly twice as long). The next meeting of those two has been confirmed by Microsoft, and is set for 2010, many guessing early in that year. So that also means, don&#8217;t be surprised to see the next version of Visual Studio (VS10 or &#8220;Hawaii&#8221;) and/or SQL Server. However, don&#8217;t be surprised if they don&#8217;t come out until later in the year and are named with the year &#8220;2011&#8243; as to fit with the last three big launches.</p>
<h2>Windows 7 Not As Important?</h2>
<p>A Microsoft spokesperson has also confirmed several things about Windows 7 and <span style="text-decoration: line-through;">Windows Server 2008 R2</span> <span style="line-through;">Windows 7 Server</span>. For one thing, he says that Windows 7 is not actually Windows <em>version</em> 7, but actually version 6.1. So basically,  Windows 7 (NT 6.1) is to Windows Vista (6.0) as Windows XP (NT 5.1) was to Windows 2000 (5.0). The architecture changes aren&#8217;t too great (though from what it sounds like, there may be less in Vista-&gt;7 compared to 2000-&gt;XP. This also explains why in the few leaked screenshots we&#8217;ve seen, WinVer lists Windows as Version 6.1. The confusion comes from the codename &#8220;Windows 7&#8243;, since there appears there&#8217;s going to be <em>another, true</em> Windows 7 at some point. It may just end up confusing geeks who care about numbers, but it has the potential to confuse more than that (you know what technological leaks can turn into in mainstream media).</p>
<p><em>Editor&#8217;s note: while the kernel revision numbers are important, they&#8217;re mostly used for application compatibility purposes. More significant revisions are more likely to break older applications, so the major revision number is generally updated in the event of significant change. It&#8217;s possible to have a kernel with many added features while only being a minor revision increment (6.1 as opposed to 7) simply because not enough old features were changed or scrapped.</em></p>
<h2>Big Bang, Minor Maintenence</h2>
<p>It also appears that Microsoft may be wanting to make their Windows client more like their Windows Server in more ways than one. This seems to be a good thing; many people have sang high praises for Server Core, so a similarly modularized Windows client operating system will likely receive the same approval. They also seem to want to bridge together Client/Server release timings, which in my mind makes a lot of sense. Sure, giving it more time to bake ensures some more errors get worked out, but if you release a new client and then put it on an old server, it may not necessarily work as well on the old server as it would on the new one. (Note that I haven&#8217;t done enough testing with Vista+WS2003 vs Vista+WS2008 to say if that applies here. If you do have an opinion on that, duke it out in the comments.)</p>
<p>It also seems they may be doing this to keep it on a major/minor release cycle. We had Win 2000/Win XP, and now we&#8217;ll have Win Vista/Win 7. As mentioned earlier, this same thing happens in the Server world under the guise of R2 releases.  All in all, the numbers aren&#8217;t important, and really, not even the dates as much, if what we get is a quality product. It&#8217;s fun to follow all the small stuff, but remember, it&#8217;s the big stuff that sells.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.aeroxp.org/2008/08/windows-7server-2008-r2-versioning-confirmed/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Tweak DWM from your programs, Part 1</title>
		<link>http://www.aeroxp.org/2008/07/tweak-dwm-part-1/</link>
		<comments>http://www.aeroxp.org/2008/07/tweak-dwm-part-1/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 16:13:39 +0000</pubDate>
		<dc:creator>Stan</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[Windows]]></category>

		<category><![CDATA[.net]]></category>

		<category><![CDATA[api]]></category>

		<category><![CDATA[C#]]></category>

		<category><![CDATA[dwm]]></category>

		<category><![CDATA[wrapper]]></category>

		<guid isPermaLink="false">http://www.aeroxp.org/?p=80</guid>
		<description><![CDATA[With Windows Vista, Microsoft introduced a whole new window manager which provides a better experience to the user and an independent graphics surface to us developers by taking advantage of graphics acceleration hardware (your graphics card or integrated GPU).
In a three-part blog post, I will show you how to use a wrapper around the Desktop [...]]]></description>
			<content:encoded><![CDATA[<div class=""><p>With Windows Vista, Microsoft introduced a whole new window manager which provides a better experience to the user and an independent graphics surface to us developers by taking advantage of graphics acceleration hardware (your graphics card or integrated GPU).</p>
<p>In a three-part blog post, I will show you how to use a wrapper around the <strong>Desktop Window Manager</strong> Application Programming Interface in order to control its state, change colorization, or change the rendering policy of windows from your Windows Forms and .NET 3 Presentation Foundation programs.</p>
<p><span id="more-80"></span></p>
<h2>Getting Started</h2>
<p><em>Windows Forms and Windows Presentation Foundation will be referred to in these posts as WF and WPF respectively.</em></p>
<p>The code you will need can be <a href="http://stoyanoff.info/code/dwm/GlassLib_pub.zip" target="_blank">downloaded from here</a> and is written in C# (as are the code samples in this post). That being said, you can use it in projects of any other .NET language &#8212; you can include the compiled libraries as references. Otherwise (if you code in C#), you also have the option to include the files in your project and not distribute a separate library. The solution is for use in Visual Studio 2005 but is also compatible with version 2008.</p>
<p>The whole framework is located under the <strong><a href="http://www.aeroxp.org/wp-content/uploads/2008/07/namespace.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/07/namespace-thumb.png" border="0" alt="namespace_" width="15" height="15" /></a></strong><span style="font-family: courier new;">GlassLib</span> namespace and is the source to three main types of projects:</p>
<ul>
<li><strong><a href="http://www.aeroxp.org/wp-content/uploads/2008/07/project.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/07/project-thumb.png" border="0" alt="project" width="16" height="15" /></a></strong><span style="font-family: courier new;">DwmWrapper</span> is a .NET wrapper around the DWM API, which can be compiled in the following flavors:
<ul>
<li><strong>No dependency</strong> on WF or WPF. It can be used to avoid DLL clutter when coding command-line applications to manipulate the DWM.</li>
<li>Solely <strong>WF</strong> or <strong>WPF</strong></li>
<li><strong>Both</strong> for mixed-framework projects.</li>
</ul>
</li>
<li><a href="http://www.aeroxp.org/wp-content/uploads/2008/07/project.png"><strong><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/07/project-thumb.png" border="0" alt="project" width="16" height="15" /></strong></a><span style="font-family: courier new;">GlassLib</span> is a WF-powered layer above <strong><a href="http://www.aeroxp.org/wp-content/uploads/2008/07/project.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/07/project-thumb.png" border="0" alt="project" width="16" height="15" /></a></strong><span style="font-family: courier new;">DwmWrapper</span> and provides a set of classes, including the <a href="http://www.aeroxp.org/wp-content/uploads/2008/07/class.png"><strong><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 4px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/07/class-thumb.png" border="0" alt="class" width="15" height="15" /></strong></a><span style="font-family: courier new;">GlassBar</span> control for use in your forms</li>
<li><strong><strong><a href="http://www.aeroxp.org/wp-content/uploads/2008/07/project.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/07/project-thumb.png" border="0" alt="project" width="16" height="15" /></a></strong></strong>The <span style="font-family: courier new;">Test Projects</span> you can use to try the various features that the two other projects have. They will be used here ad hoc.</li>
</ul>
<p><img style="border-top-width: 0px; border-left-width: 0px; float: right; border-bottom-width: 0px; margin: 8px 4px 8px 8px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/07/dwm-test-app1.png" border="0" alt="DWM test app" width="200" height="109" />In this first part, we will explore the architecture of the wrapper, its core functionality and application in Windows Forms programs.</p>
<p><a href="http://msdn.microsoft.com/en-us/library/aa969540.aspx" target="_blank">Microsoft provides an API for DWM</a> in the equivocal DwmApi library. Encapsulating it for easier use in .NET programs is the wrapper&#8217;s main purpose.</p>
<p>Since all necessary classes are located under the <a href="http://www.aeroxp.org/wp-content/uploads/2008/07/namespace.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/07/namespace-thumb.png" border="0" alt="namespace_" width="15" height="15" /></a><span style="font-family: courier new;">GlassLib</span> namespace, in order to avoid writing it every time, I would suggest that you insert it in your C# or VB code file&#8217;s &#8220;imports&#8221; or, if you are working exclusively with VB, in your project&#8217;s &#8220;Imported Namespaces&#8221; list in order to avoid doing the first as well.</p>
<p>The most important class is <a href="http://www.aeroxp.org/wp-content/uploads/2008/07/class.png"><strong><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/07/class-thumb.png" border="0" alt="class" width="15" height="15" /></strong></a><span style="font-family: courier new;">Dwm</span> and can be used to control virtually any aspect of DWM as long as the public API allows it. The various features are available via the following properties of <a href="http://www.aeroxp.org/wp-content/uploads/2008/07/class.png"><strong><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/07/class-thumb.png" border="0" alt="class" width="15" height="15" /></strong></a><span style="font-family: courier new;">Dwm</span>:</p>
<table style="width: auto;" border="0" cellspacing="2" cellpadding="2" width="1019">
<tbody>
<tr width="auto">
<td width="10" valign="top"> </td>
<td width="188" valign="top"><a href="http://www.aeroxp.org/wp-content/uploads/2008/07/property.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/07/property-thumb.png" border="0" alt="property" width="16" height="15" /></a><span style="font-family: courier new;">Blur</span></td>
<td width="802" valign="top">Enables/disables the black background transition when a window (not necessarily <em>your</em> window) is maximized, sets custom blur region</td>
</tr>
<tr>
<td width="10" valign="top"> </td>
<td width="188" valign="top"><a href="http://www.aeroxp.org/wp-content/uploads/2008/07/property.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/07/property-thumb.png" border="0" alt="property" width="16" height="15" /></a><span style="font-family: courier new;">Colorization</span></td>
<td width="794" valign="top">Gets/sets the Aero Glass colorization</td>
</tr>
<tr>
<td width="10" valign="top"> </td>
<td width="188" valign="top"><a href="http://www.aeroxp.org/wp-content/uploads/2008/07/property.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/07/property-thumb.png" border="0" alt="property" width="16" height="15" /></a><span style="font-family: courier new;">Composition</span></td>
<td width="787" valign="top">Enable/disable DWM, check if running and if the system is DWM-capable</td>
</tr>
<tr>
<td width="10" valign="top"> </td>
<td width="188" valign="top"><a href="http://www.aeroxp.org/wp-content/uploads/2008/07/property.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/07/property-thumb.png" border="0" alt="property" width="16" height="15" /></a><span style="font-family: courier new;">Events</span></td>
<td width="782" valign="top">Used to set up notifications for colorization, composition, non-client rendering or window-maximized changes</td>
</tr>
<tr>
<td width="10" valign="top"> </td>
<td width="188" valign="top"><a href="http://www.aeroxp.org/wp-content/uploads/2008/07/property.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/07/property-thumb.png" border="0" alt="property" width="16" height="15" /></a><span style="font-family: courier new;">Flip3D</span></td>
<td width="777" valign="top">Start/Stop Windows Flip3D or Flip</td>
</tr>
<tr>
<td width="10" valign="top"> </td>
<td width="188" valign="top"><a href="http://www.aeroxp.org/wp-content/uploads/2008/07/property.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/07/property-thumb.png" border="0" alt="property" width="16" height="15" /></a><span style="font-family: courier new;">Glass</span></td>
<td width="773" valign="top">Enable/disable Glass on a given form (via its instance, e.g. <span style="color: #0000ff; font-family: courier new;">this</span>) or window (via its handle/hWnd, an <span style="font-family: courier new;"><a href="http://www.aeroxp.org/wp-content/uploads/2008/07/class.png"><strong><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/07/class-thumb.png" border="0" alt="class" width="15" height="15" /></strong></a>IntPtr</span>)</td>
</tr>
<tr>
<td width="10" valign="top"> </td>
<td width="188" valign="top"><a href="http://www.aeroxp.org/wp-content/uploads/2008/07/property.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/07/property-thumb.png" border="0" alt="property" width="16" height="15" /></a><span style="font-family: courier new;">NonClientArea</span></td>
<td width="770" valign="top">For advanced users only, gets or sets how DWM is handing the painting of a given form or window (see <a href="http://www.aeroxp.org/wp-content/uploads/2008/07/property.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/07/property-thumb.png" border="0" alt="property" width="16" height="15" /></a><span style="font-family: courier new;">Glass</span> above)</td>
</tr>
</tbody>
</table>
<h2>Using the Wrapper</h2>
<p>Note that DWM is only available on Windows Vista, so I would suggest that you select how to handle the wrapper&#8217;s behavior on earlier operating systems. Otherwise, exceptions will be raised which you will have to catch.</p>
<p>The first option is to limit the exceptions the wrapper will raise by setting <a href="http://www.aeroxp.org/wp-content/uploads/2008/07/property.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/07/property-thumb.png" border="0" alt="property" width="16" height="15" /></a><span style="font-family: courier new;"><span style="color: #2b91af;">Dwm</span>.ThrowExceptionTypes</span> to one of the available <a href="http://www.aeroxp.org/wp-content/uploads/2008/07/options.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/07/options-thumb.png" border="0" alt="options" width="15" height="15" /></a><span style="font-family: courier new;">DwmExceptionTypes</span></p>
<table style="width: auto;" border="0" cellspacing="2" cellpadding="2" width="1019">
<tbody>
<tr width="auto">
<td width="10" valign="top"> </td>
<td width="995" valign="top"><a href="http://www.aeroxp.org/wp-content/uploads/2008/07/property.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/07/property-thumb.png" border="0" alt="property" width="16" height="15" /></a><span style="font-family: courier new;">None</span></td>
</tr>
<tr>
<td width="10" valign="top"> </td>
<td width="995" valign="top"><a href="http://www.aeroxp.org/wp-content/uploads/2008/07/property.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/07/property-thumb.png" border="0" alt="property" width="16" height="15" /></a><span style="font-family: courier new;">UnsupportedFeatures</span></td>
</tr>
<tr>
<td width="10" valign="top"> </td>
<td width="995" valign="top"><a href="http://www.aeroxp.org/wp-content/uploads/2008/07/property.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/07/property-thumb.png" border="0" alt="property" width="16" height="15" /></a><span style="font-family: courier new;">DesktopWindowManager</span></td>
</tr>
</tbody>
</table>
<p>Raising no exception will most likely suit your needs best so adjust this property before you make any other changes to DWM, preferably at program startup or in the form&#8217;s constructor.</p>
<p><span style="font-family: courier new;"><span style="color: #2b91af;">Dwm</span>.ThrowExceptionTypes = <span style="color: #2b91af;">DwmExceptionTypes</span>.None;</span></p>
<p>Now you can make any changes you want to your form&#8217;s state in the DWM, for example enable Glass&#8211;it is as easy as writing</p>
<p><span style="font-family: courier new;"><span style="color: #2b91af;">Dwm</span>.Glass[<span style="color: #0000ff;">this</span>] = <span style="color: #0000ff;">new</span> <span style="color: #2b91af;">DwmMargins</span>(100, 4, 8, 20);</span></p>
<p>where <span style="color: #0000ff; font-family: courier new;">this</span> is the instance of the form (you can replace this with any other form instance you would like) and the margins are defined as left-right-top-bottom. You can use <a href="http://www.aeroxp.org/wp-content/uploads/2008/07/property.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/07/property-thumb.png" border="0" alt="property" width="16" height="15" /></a><span style="font-family: courier new;"><span style="color: #2b91af;">DwmMargins</span>.EntireWindow</span> instead to extend glass in the whole window client area, like Mobility Center does in Windows Vista.</p>
<p>Restoring the default borders is done by calling the <a href="http://www.aeroxp.org/wp-content/uploads/2008/07/method.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/07/method-thumb.png" border="0" alt="method" width="16" height="15" /></a><span style="font-family: courier new;">Restore</span> method.</p>
<p><span style="font-family: courier new;"><span style="color: #2b91af;">Dwm</span>.Glass[<span style="color: #0000ff;">this</span>].Restore();</span></p>
<p>Receiving notifications on the global DWM state or on your forms&#8217; is important in order to know how you should handle painting backgrounds or the non-client area. You can choose to get notified when the Aero Glass colorization is changed or DWM starts up or shuts down. In GlassLib this is straightforward: each form that you wish to be notification-aware, GlassLib will include in its list and you have to attach your handlers to the colorization, composition, non-client rendering or window-maximized changes.</p>
<p><span><span style="font-family: courier new;"><span style="color: #2b91af;"><img style="border-top-width: 0px; border-left-width: 0px; float: right; border-bottom-width: 0px; margin: 8px 4px 8px 8px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/07/dwm-colorizations1.png" border="0" alt="DWM colorizations" width="200" height="140" /> Dwm</span>.Events[<span style="color: #0000ff;">this</span>].AddHandlers(); // Notifying GlassLib&#8230;</span></span></p>
<p><span style="font-family: courier new;">// Add our handlers</span></p>
<p><span><span style="font-family: courier new;"><span style="color: #2b91af;">Dwm</span>.Events[<span style="color: #0000ff;">this</span>].CompositionChanged += new <span style="color: #2b91af;">DwmEventHandler</span>(OnCompositionChanged);<br />
<span style="color: #2b91af;">Dwm</span>.Events[<span style="color: #0000ff;">this</span>].ColorizationChanged += new <span style="color: #2b91af;">DwmEventHandler</span>(OnColorizationChanged);</span></span></p>
<p><span style="font-family: courier new;">&#8230;</span></p>
<p><span><span style="font-family: courier new;"><span style="color: #0000ff;">private void </span>OnCompositionChanged(object sender, DwmEventArgs e)<br />
{<br />
// Update the UI on composition change (extend glass if DWM is enabled, otherwise restore)<br />
if (<span style="color: #2b91af;">Dwm</span>.Glass[<span style="color: #0000ff;">this</span>].Enabled)<br />
<span style="color: #2b91af;">Dwm</span>.Glass[<span style="color: #0000ff;">this</span>].Margins = new <span style="color: #2b91af;">DwmMargins</span>(100, 4, 8, 20);<br />
else<br />
<span style="color: #2b91af;">Dwm</span>.Glass[<span style="color: #0000ff;">this</span>].Restore();<br />
}</span></span></p>
<p><span><span style="font-family: courier new;"><span style="color: #0000ff;">private void</span> OnColorizationChanged(object sender, DwmEventArgs e)<br />
{<br />
<span style="color: #2b91af;">MessageBox</span>.Show(e.Colorization.ToString());<br />
}</span></span></p>
<p><span><span style="font-family: courier new;"><span style="color: #2b91af;"><img style="border-top-width: 0px; border-left-width: 0px; float: right; border-bottom-width: 0px; margin: 8px 4px 8px 8px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/07/flip3d1.png" border="0" alt="Flip 3D" width="200" height="134" /></span></span></span>Although the public DWM API does not make it easy for one to change the colorization programmatically, DwmWrapper exposes this functionality through the <a href="http://www.aeroxp.org/wp-content/uploads/2008/07/property.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/07/property-thumb.png" border="0" alt="property" width="16" height="15" /></a><span style="font-family: courier new;"><span style="color: #2b91af;">Dwm</span>.Colorization </span>property. Controlling the Desktop Window Manager is also as easy as setting <a href="http://www.aeroxp.org/wp-content/uploads/2008/07/property.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/07/property-thumb.png" border="0" alt="property" width="16" height="15" /></a><span style="font-family: courier new;"><span style="color: #2b91af;">Dwm</span>.Composition.Enabled </span>to the desired value, either <span style="color: #0000ff; font-family: courier new;">true</span> or <span style="color: #0000ff; font-family: courier new;">false</span>. Other useful &#8220;one-liners&#8221; include invoking Windows Flip and Flip 3D: <a href="http://www.aeroxp.org/wp-content/uploads/2008/07/method.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/07/method-thumb.png" border="0" alt="method" width="16" height="15" /></a><span style="font-family: courier new;">Dwm.Flip3D.EnterAltTab(); </span>and <a href="http://www.aeroxp.org/wp-content/uploads/2008/07/method.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 3px 0px 0px; border-right-width: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/07/method-thumb.png" border="0" alt="method" width="16" height="15" /></a><span style="font-family: courier new;">Dwm.Flip3D.Enter();</span>, respectively.</p>
<p>You can tinker with the <a href="http://stoyanoff.info/code/dwm/GlassLib_pub.zip" target="_blank">full GlassLib source code</a> and the included test projects to see how all of the aforementioned features work in a real environment. In the next part I am going to cover the more advanced functionality of the wrapper, the Windows Forms test app and how it manages DWM thumbnails.</p>
<p>If you have any comments, questions, wishes or just an opinion, feel free to post it here.</p>
<p><strong>Part 2 coming soon&#8230;</strong></p>
<p><strong><em>You are free to use GlassLib in your freeware programs, but please at least acknowledge it in your release notes/about dialog/website. In case your program is commercial/shareware, I would appreciate it if you could <a href="http://stoyanoff.info/contact/" target="_blank">contact</a> me beforehand. Thanks.</em></strong></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.aeroxp.org/2008/07/tweak-dwm-part-1/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Windows 7: Introducing WinFX, minus .NET?</title>
		<link>http://www.aeroxp.org/2008/06/windows-7-introducing-winfx-minus-net/</link>
		<comments>http://www.aeroxp.org/2008/06/windows-7-introducing-winfx-minus-net/#comments</comments>
		<pubDate>Mon, 30 Jun 2008 15:16:38 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[Windows]]></category>

		<category><![CDATA[OMG]]></category>

		<category><![CDATA[PDC 2008]]></category>

		<category><![CDATA[What's Next]]></category>

		<category><![CDATA[Windows 7]]></category>

		<category><![CDATA[WinFX]]></category>

		<guid isPermaLink="false">http://www.aeroxp.org/?p=77</guid>
		<description><![CDATA[(This is the first in an ongoing series about PDC 2008)
While perusing the PDC 2008 website’s preliminary agenda, I came across two sessions that really caught my attention:
Windows 7: Graphics Advances
Windows 7 enables you to advance the graphics capabilities of your applications while carrying forward existing investments in your Win32 codebase, including GDI and GDI+. [...]]]></description>
			<content:encoded><![CDATA[<div class=""><p><span style="font-size: 8pt; line-height: 100%;">(This is the first in an ongoing series about PDC 2008)<!--sizec--></span><!--/sizec--></p>
<p>While perusing the <a href="http://www.microsoftpdc.com/Agenda/Sessions.aspx" target="_blank">PDC 2008 website’s preliminary agenda</a>, I came across two sessions that really caught my attention:</p>
<blockquote><p><strong>Windows 7: Graphics Advances</strong><br />
<strong></strong>Windows 7 enables you to advance the graphics capabilities of your applications while carrying forward existing investments in your Win32 codebase, including GDI and GDI+. New enhancements to DirectX let Win32 applications harness the latest innovations in GPUs and LCD displays, including support for scalable, high-performance, 2D and 3D graphics, text, and images. Also learn how to leverage the GPU&#8217;s parallelism for general-purpose computation such as image processing.</p></blockquote>
<p>and</p>
<blockquote><p><strong>Windows 7: Web Services in Native Code</strong><br />
<strong></strong>Windows 7 introduces a new networking API with support for building SOAP based web services in native code. This session will discuss the programming model, interoperability aspects with other implementations of WS-* protocols and demonstrate various services and applications built using this API.</p></blockquote>
<p>After reading these, I could come to only one conclusion: Microsoft is building an unmanaged version of WinFX (at least the WPF and WCF components of it), currently known as .NET Framework 3.0.</p>
<p>This isn’t the first we’ve heard of this. Long <a href="http://www.istartedsomething.com/20080322/ribbon-in-windows-7-application-near-you/" target="_blank">first revealed</a> a job description back in March that related to a new, native UI framework for Windows 7. The PDC session overview doesn’t add much (outside of the WCF component) to what was revealed there, but it does seem to indicate that this framework hasn’t been cut from Windows 7.</p>
<p>A native WinFX excites me for many reasons. One reason is that it opens up the robustness of the Windows Presentation Foundation (WPF) to native developers, most likely with a significant performance gain versus the current managed WPF developers use now.</p>
<p>Also, according to the job description, this framework will use a markup language to define user interfaces (Most likely XAML or something extremely similar), which means designers will be able to use their knowledge (and code) across Win32, .NET and Silverlight now. This could speed adoption of all three technologies, which is nice.</p>
<p>Perhaps the most exciting things to the average user are the possibilities this offers up to Microsoft for Windows 7 itself. Microsoft jettisoned most of its vision for a graphically rich shell when it reset Longhorn development and realized that building Explorer in .NET and on top of a framework that was still in development was a bad idea. Now that this framework (milcore) is done, Microsoft should be able to harness its power rather easily through this new unmanaged WinFX framework without having to completely rewrite Explorer.</p>
<p>In other words, much of <a href="http://www.youtube.com/watch?v=b9ifQvQCO7Y" target="_blank">the UI goodness from the early Longhorn prototypes </a>could wind up in 7.</p>
<p>Here’s hoping, anyway.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.aeroxp.org/2008/06/windows-7-introducing-winfx-minus-net/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Vista Style Builder</title>
		<link>http://www.aeroxp.org/2008/06/vista-style-builder/</link>
		<comments>http://www.aeroxp.org/2008/06/vista-style-builder/#comments</comments>
		<pubDate>Thu, 26 Jun 2008 17:37:25 +0000</pubDate>
		<dc:creator>Andreas</dc:creator>
		
		<category><![CDATA[Software]]></category>

		<category><![CDATA[Tips/Tricks/Hacks]]></category>

		<category><![CDATA[Windows]]></category>

		<category><![CDATA[Ave]]></category>

		<category><![CDATA[hax]]></category>

		<category><![CDATA[themes]]></category>

		<guid isPermaLink="false">http://www.aeroxp.org/?p=71</guid>
		<description><![CDATA[The last couple of weeks, I have been working incredibly hard on a tool to create Vista Style Builder. Vista Style Builder supports everything that is needed to create Visual Styles for Vista:

Import and export images
Change, add or remove properties
Import and export STREAM images
Compile into a totally new MsStyles-file

In this post I will highlight some details [...]]]></description>
			<content:encoded><![CDATA[<div class=""><p>The last couple of weeks, I have been working incredibly hard on a tool to create Vista Style Builder. Vista Style Builder supports everything that is needed to create Visual Styles for Vista:</p>
<ul>
<li>Import and export images</li>
<li>Change, add or remove properties</li>
<li>Import and export <em>STREAM</em> images</li>
<li>Compile into a totally new MsStyles-file</li>
</ul>
<p>In this post I will highlight some details of Vista Style Builder (VSB) which show how much easier this application makes it to edit MsStyles.</p>
<p><span id="more-71"></span></p>
<h3>The Main Window</h3>
<p style="text-align: center;"><a href="http://www.aeroxp.org/wp-content/uploads/2008/06/main.png"><img class="alignnone size-full wp-image-72 aligncenter" src="http://www.aeroxp.org/wp-content/uploads/2008/06/main.png" alt="" width="500" height="396" /></a></p>
<p>Most of the time when creating Visual Styles, you will be looking at the main window of VSB. This main window exists basically of four parts:</p>
<ul>
<li>The command bar in the top of the window to do things</li>
<li>The UI parts browser on the left which displays every UI part in a MsStyle neatly grouped into categories</li>
<li>The Preview pane, which will show the images used in a UI part</li>
<li>The property view in the bottomright, showing an editable list of all properties for a UI part</li>
</ul>
<p>As you might notice, there is no menu bar anymore. In line with most Vista applications, VSB uses a commandbar for all possible actions that can be done.</p>
<h3>Importing Images</h3>
<p>VSB allows a user to export the images used in a Visual Style in order to edited the images in an external application, such as Adobe Photoshop. It is possible to export a strip of images (e.g. all different button states in one image), but it is also possible to just export one state of an image (e.g. the button-pressed image).</p>
<p>Importing is done in a similar fashion: you can import an image with all states or just one state directly. VSB always provides a default name for importing and exporting, so if you follow that naming schemes, you can quickly import and export images.</p>
<p>VSB will notice it if you try to import an image of different dimensions than the original; it will actually ask you what you want to do:</p>
<p style="text-align: center;"><a href="http://www.aeroxp.org/wp-content/uploads/2008/06/resize.png"><img class="alignnone size-full wp-image-73 aligncenter" src="http://www.aeroxp.org/wp-content/uploads/2008/06/resize.png" alt="" width="500" height="268" /></a></p>
<h3>Alpha Channel Importing</h3>
<p>One of the problems people are currently facing with Vista Styles is that photoshop and Vista uses a slightly - or so it seems - different format: the alpha channel comes out wrong in MsStyles for files imported manually.<br />
Vista Style Builder fixes this incompatibility when importing images.</p>
<h3>Adding Properties</h3>
<p>Another feature in VSB is the possibility to add new properties to UI parts. This makes it possible, for example, to give the taskbar fonts a glow or even make the breadcrumb bar glow.</p>
<p style="text-align: center;"><a href="http://www.aeroxp.org/wp-content/uploads/2008/06/addprop.png"><img class="alignnone size-full wp-image-74 aligncenter" src="http://www.aeroxp.org/wp-content/uploads/2008/06/addprop.png" alt="" width="500" height="197" /></a></p>
<p>Properties are added through a easy to use dialog which allows you to select the type of property (e.g. enum or color), the name (e.g. iconeffect or textcolor) and the value. For enumeration-types, such as Iconeffect, a listbox will automatically show all possible values.</p>
<h3>StyleHacks</h3>
<p>People often want to change the same things in their Visual Styles. Some good examples are a thinner taskbar and a small startmenu. Most of the time, these things involve editing a number of properties in some unexpected way.</p>
<p>To make it easier for everyone to use often done things in their styles we invented StyleHacks in VSB. A StyleHack is an easy way to apply an often done thing (a`hack`) to your Visual Style. For example, there is a StyleHack to change the height of the taskbar to 18px.</p>
<p>Visual Style Builder provides an in-application menu to browse the available StyleHacks with a preview image and apply them with a click of the mouse:</p>
<p style="text-align: center;"><a href="http://www.aeroxp.org/wp-content/uploads/2008/06/stylehacks.png"><img class="alignnone size-full wp-image-75 aligncenter" src="http://www.aeroxp.org/wp-content/uploads/2008/06/stylehacks.png" alt="" width="500" height="389" /></a></p>
<h3>Import XP Styles</h3>
<p>A featue of Visual Style Builder that has been secret until now is the ability to <strong>Import XP MsStyles.</strong><br />
That&#8217;s right, VSB makes it possible to use your favorite XP Styles on Vista! Most XP Styles only need some small modifications after importing to work correctly on Vista .</p>
<p>Here&#8217;s an example of XP Luna after having it converted to a Vista Style after importing:</p>
<p><a href="http://www.aeroxp.org/wp-content/uploads/2008/06/lunaxp.png"></a><br />
As you can see, the dialog uses the Luna window borders as well as Luna buttons. As a bonus, the Luna theme got dropshadows and is rendered by the DWM. For this theme, I opted to keep the Aero buttons because I personally think they look great on the Luna theme.</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-76 aligncenter" src="http://www.aeroxp.org/wp-content/uploads/2008/06/lunaxp.png" alt="" width="410" height="207" /></p>
<p>Of course, not all themes can be imported 100% correctly: Vista has some more restrictions on the window frames than XP had. However, it will make porting much easier and it works for a lot of themes without modifications.</p>
<h3>Availability and price</h3>
<p>The big question is now when will VSB be available? Unfortunately, I can&#8217;t really give a date yet. The technical side of the application is completely done; the business side, however, is not.</p>
<p>I know a lot of people expect this application to be free, but I can tell you that it will not be free. There went a lot of work in VSB and, at the very least, I need to earn the invested time back.</p>
<p><em><strong>Editor&#8217;s Note:</strong> A distribution policy for Vista Style Builder and AeroXperience members is currently being researched</em></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.aeroxp.org/2008/06/vista-style-builder/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Windows 7 6519.1 - The Leak</title>
		<link>http://www.aeroxp.org/2008/06/windows-7-65191-the-leak/</link>
		<comments>http://www.aeroxp.org/2008/06/windows-7-65191-the-leak/#comments</comments>
		<pubDate>Sun, 15 Jun 2008 20:41:09 +0000</pubDate>
		<dc:creator>Chris Holmes</dc:creator>
		
		<category><![CDATA[Microsoft]]></category>

		<category><![CDATA[Windows]]></category>

		<category><![CDATA[7]]></category>

		<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">http://www.aeroxp.org/?p=70</guid>
		<description><![CDATA[I can give a pretty interesting perspective on the Windows 7 leak, considering said perspective is coming from someone who has had this build for 3+ months as of the writing of this post.
Before I really jump in, I should explain why leaks of this magnitude are bad.  Believe it or not, these leaks [...]]]></description>
			<content:encoded><![CDATA[<div class=""><p>I can give a pretty interesting perspective on the Windows 7 leak, considering said perspective is coming from someone who has had this build for 3+ months as of the writing of this post.</p>
<p>Before I really jump in, I should explain why leaks of this magnitude are bad.  Believe it or not, these leaks do hurt Microsoft and the dev process of the operating system, especially this early in the cycle.  When a leak happens, Microsoft has to devote time to investigating the leak and trying to pin down a source, ultimately the internal source or OEM who leaked it.  Leaks are also bad because there are just some things that aren&#8217;t ready to be seen outside of Redmond yet, especially by the average Joe user.  Say a build leaks, and average Joe doesn&#8217;t like a certain feature, or even more realistic, finds a real nasty bug.  He blogs about that and next thing you know everyone is jumping on the slingfest bandwagon and presto, bad image before the product is even out of the gate.</p>
<p>The main thing about the 6519 leak that gets me is the fact that it leaked after so much time.  I can only assume that it came from someone in the group that got the build about a month ago, and for some reason was looking for a &#8220;15 minutes of fame&#8221; moment.  There is, however, a silver lining to all of this.  The build is hard coded to expire on June 6th, after which date the activation system will lock you out of the system.  Why someone would leak after expiration, you ask?  Well it&#8217;s actually a pretty simple answer.  They get their little moment of fame and (they think) cause little damage to Microsoft since Joe user can&#8217;t use it on a daily basis.  The fact is though, the beta community is rather unique, we take builds of OS&#8217;s and actually use them on our machines to tinker with and see the direction that Microsoft is going with the future of Windows.  With 6519, running on the current date is now impossible, but the OS can be used if you set the date back before expiration, which some will probably be willing to do, just for bragging rights.</p>
<p>I guess the point I am trying to make with all of this is 6519 never should have been leaked, but it is the unfortunate fact that we have some people in this community that just can&#8217;t seem to keep anything under wraps and thinks that leaking a build will gain them some kind of celebrity status.  That could not be more inaccurate.  Within the last few years leakers have been looked upon as the black sheep in the community, for the exact reasons that I mentioned earlier.  The fact is that these people will never learn, and will likely continue to do things like this.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.aeroxp.org/2008/06/windows-7-65191-the-leak/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Yahoo&#8217;s most valuable assets (literally) walk out the door</title>
		<link>http://www.aeroxp.org/2008/06/yahoos-most-valuable-assets-literally-walk-out-the-door/</link>
		<comments>http://www.aeroxp.org/2008/06/yahoos-most-valuable-assets-literally-walk-out-the-door/#comments</comments>
		<pubDate>Fri, 13 Jun 2008 16:40:27 +0000</pubDate>
		<dc:creator>Bryant</dc:creator>
		
		<category><![CDATA[Microsoft]]></category>

		<category><![CDATA[Google]]></category>

		<category><![CDATA[Oops]]></category>

		<category><![CDATA[What’s Done]]></category>

		<category><![CDATA[Yahoo!]]></category>

		<guid isPermaLink="false">http://www.aeroxp.org/?p=67</guid>
		<description><![CDATA[
News broke this week that a number of senior Yahoo engineers are leaving. Despite the fact that all of them stressed that their walkouts have nothing to do with the now-failed Microsoft merger, there&#8217;s a good chance that that&#8217;s probably what it is. Let&#8217;s take a quick look at why the departures of Jeremy Zawodny, [...]]]></description>
			<content:encoded><![CDATA[<div class=""><p align="center"><a href="http://www.aeroxp.org/wp-content/uploads/2008/06/haha.jpg"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://www.aeroxp.org/wp-content/uploads/2008/06/haha-thumb.jpg" border="0" alt="haHA" width="508" height="250" /></a></p>
<p><a href="http://valleywag.com/5015924/bleeding-purple" target="_blank">News</a> <a href="http://bits.blogs.nytimes.com/2008/06/12/more-top-yahoos-heading-for-the-exits/index.html" target="_blank">broke</a> this week that a number of senior Yahoo engineers are leaving. Despite the fact that all of them stressed that their walkouts have nothing to do with the now-failed Microsoft merger, there&#8217;s a good chance that that&#8217;s probably what it is. Let&#8217;s take a quick look at why the departures of Jeremy Zawodny, Jeff Weiner, and others are related to the fallout of a failed Microsoft buyout and the problems Google poses to some of Yahoo&#8217;s best engineers.</p>
<p><span id="more-67"></span></p>
<p>Yahoo is well known as a popular web property. While many people in the United States and Europe have Google set as their homepage, Yahoo is a hot landing spot for many non-western nations such as China. Yahoo also knows how to maintain the communities formed by the Web 2.0 startups they pick up. One good example is Flickr; it&#8217;s is still popular with <em>many </em>photographers despite being owned by a monolithic and arguably uncool parent company. Del.icio.us is also roughly as popular as a social bookmarking service as it was when it was purchased by Yahoo. The engineers which Yahoo picked up with these acquisitions have also been put towards a number of other projects, which may have been part of the reason for the acquisitions in the first place besides expanding the Yahoo brand name.</p>
<p>Picking up knowledgeable engineers may have also been part of the reason behind the Microsoft-Yahoo merger. Besides the engineers which would come along with such a buyout, name placement in those eastern markets as well as popular and well-maintained Web 2.0 services serve as a very healthy set of bonus reasons for a rather expensive merger.</p>
<p>A number of analysts and commentators have also speculated that the buyout offer may have been put forward as a means of pushing the company towards disarray and, subsequently, towards a mismanaged doomsday. Microsoft has used buyout proposals for this purpose before, and Yahoo&#8217;s board might have kept this (and ego) in mind when trying to negotiate a higher per-share price.</p>
<p>How does this relate to the engineers? Microsoft has a number of interesting <a href="http://research.microsoft.com/" target="_blank">research programs</a>. While Yahoo&#8217;s engineers might loathe the idea of working for a &#8220;mundane&#8221; product such as Windows or Office, Microsoft&#8217;s research programs offer new opportunities for developers to branch out into brand new fields and markets, something which Yahoo currently doesn&#8217;t have in place. On the other hand, Google has let a number of their acquisitions stagnate (blogger, now nothing more than a spampool, is the largest example.) without any significant overhauls, and their research programs remain mostly on the web as opposed to spreading into new fields.</p>
<p>Creativity isn&#8217;t often a word associated with Microsoft, but Microsoft is much more well established in a multitude of fields than both Google and Yahoo. This may be the primary reason behind the departures of some of Yahoo&#8217;s best minds. <a href="http://jeremy.zawodny.com/blog/" target="_blank">Jeremy Zawodny</a>, after all, is one of the most well-respected R&amp;D engineers Yahoo ever had, and and his attraction towards a small up-and-coming firm is representative of the new environments many of Yahoo&#8217;s engineers are interested in.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.aeroxp.org/2008/06/yahoos-most-valuable-assets-literally-walk-out-the-door/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How Long Can XP Last?</title>
		<link>http://www.aeroxp.org/2008/06/how-long-can-xp-last/</link>
		<comments>http://www.aeroxp.org/2008/06/how-long-can-xp-last/#comments</comments>
		<pubDate>Tue, 10 Jun 2008 16:43:44 +0000</pubDate>
		<dc:creator>Devin</dc:creator>
		
		<category><![CDATA[Windows]]></category>

		<category><![CDATA[Dell]]></category>

		<category><![CDATA[What’s Done]]></category>

		<category><![CDATA[Windows Vista]]></category>

		<category><![CDATA[Windows XP]]></category>

		<guid isPermaLink="false">http://www.aeroxp.org/?p=65</guid>
		<description><![CDATA[It&#8217;s been roughly seven and a half years since Microsoft released Windows XP to the masses in October 2001. Meanwhile, it&#8217;s been a little short of a year and a half since Vista first became widely available. However, many people, myself included, are still running Windows XP. Some people don&#8217;t like the changes in the [...]]]></description>
			<content:encoded><![CDATA[<div class=""><p>It&#8217;s been roughly seven and a half years since Microsoft released Windows XP to the masses in October 2001. Meanwhile, it&#8217;s been a little short of a year and a half since Vista first became widely available. However, many people, myself included, are still running Windows XP. Some people don&#8217;t like the changes in the new OS, while others like me just see no reason to shell out the money and buy it. Windows XP has served us well, and many would like to keep it that way.</p>
<p>I personally have always maintained that I would jump to Vista in a heartbeat if we got a machine, but that time hasn&#8217;t come yet, and frankly, for my pocketbook&#8217;s sake, I&#8217;m glad. There are some, though, who still want to get Windows XP when they buy a new machine. I&#8217;m not about to jump into a big debate on the topic – it&#8217;s just the way it is.</p>
<p>Many computer manufacturers took to expected approach in early 2007 of going &#8220;Vista-only&#8221;. People asked to get XP back, and many companies (Dell especially comes to mind) went and offered it up again. Microsoft then came out at a later time and said that they would continue offering XP to OEMs and at retail until June 30, 2008 – the end of the month. <a href="http://www.savexp.com/" target="_blank">Some</a> were maddened by this, wanting still to stick with XP.</p>
<p>While I was browsing around last week, I came across this interesting gem on a local computer shop&#8217;s web site:</p>
<p><a href="http://www.aeroxp.org/wp-content/uploads/2008/06/windowsxpdell.jpg"><img class="alignnone size-full wp-image-66" src="http://www.aeroxp.org/wp-content/uploads/2008/06/windowsxpdell.jpg" alt="" width="400" height="203" /></a></p>
<p>Now as the image says, this shop is no small little thing, they are Microsoft Gold Partner and have close ties with Intel as well. However, I found it interesting that one of the biggest computer manufacturers, Dell, would stop selling XP on new systems on June 18, while this small shop could sell it until January 2009. It now appears that Dell figured it out, and mooted the point made in the above image.</p>
<p>According to <a href="http://www.neowin.net/news/main/08/06/09/dell-to-sell-windows-xp-professional-with-pcs-through-2009">a story</a> on Neowin, Dell is now going to offer Windows XP Professional on new computers through &#8220;at least 2009 and likely longer.&#8221; The story mentioned that this means either Dell stocked up on a &#8220;year&#8217;s worth&#8221; of licenses, or is preceding an announcement by Microsoft saying that XP Pro will continue to live on. Note that Dell is not forgetting Vista here – they are including both media so that users can upgrade when they&#8217;re ready. Is it a smart move on Dell&#8217;s part? It would appear so at first. I mean, it will surely make people happy, at least those not sure if they&#8217;re ready to take the plunge yet</p>
<p>But come on, it&#8217;s been 16 months since Vista hit the shelves and some people are still not ready to give up XP? If you&#8217;re going to miss a car 16 months after you sell it, or call your son or daughter every day, twice a day, for 16 months after they move out of the house, people will: a) think you&#8217;re crazy, and b) in the case of the children, probably hurt you, or at least get rather irritated. However, it&#8217;s a completely different story here, and I&#8217;m not convinced it should be. Service Pack 1 is here, and although it&#8217;s not a huge &#8220;life saver&#8221;, it is a service pack. This is the magic milestone many people wait for (just look back over comments concerning Vista&#8217;s launch). And then look back further. I&#8217;m sure there was a transfer period with 2000/98/Me to XP, but was it over a year long? It surely wouldn&#8217;t seem to make sense.</p>
<p>The &#8220;magic&#8221; Service Pack 1 for Windows XP was delivered on September 9, 2002, about 11 months after it became generally available. For Vista, SP1 came on February 4, 2008, literally just 5 days after its one-year anniversary of general availability. So while it was a little longer development time, it still launched five months before XP is to &#8220;die&#8221;. I think that&#8217;s plenty of time to get adjusted.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.aeroxp.org/2008/06/how-long-can-xp-last/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Windows Mobile through Apple&#8217;s iCrystalBall</title>
		<link>http://www.aeroxp.org/2008/06/windows-mobile-through-apples-icrystalball/</link>
		<comments>http://www.aeroxp.org/2008/06/windows-mobile-through-apples-icrystalball/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 19:20:34 +0000</pubDate>
		<dc:creator>Bryant</dc:creator>
		
		<category><![CDATA[Apple]]></category>

		<category><![CDATA[Microsoft]]></category>

		<category><![CDATA[Windows]]></category>

		<category><![CDATA[7]]></category>

		<category><![CDATA[Designed for Services]]></category>

		<category><![CDATA[iPhone]]></category>

		<category><![CDATA[Specialized for Laptops]]></category>

		<category><![CDATA[What's Next]]></category>

		<category><![CDATA[Windows Mobile]]></category>

		<guid isPermaLink="false">http://www.aeroxp.org/?p=64</guid>
		<description><![CDATA[

Wired has an interesting article on how the iPhone boosted smartphone sales for other manufacturers (most notably RIM and Palm). With the next version of the iPhone now released, you might be asking yourself

What will Microsoft do to keep Apple from breaking into the enterprise smartphone market?
Why haven&#8217;t I bought this new iPhone yet?
What&#8217;s that [...]]]></description>
			<content:encoded><![CDATA[<div class=""><p><a href="http://www.aeroxp.org/wp-content/uploads/2008/06/icrystalball.jpg"></a></p>
<p style="text-align: center;"><img class="aligncenter" style="border: 0px none;" src="http://www.aeroxp.org/wp-content/uploads/2008/06/icrystalball-thumb.jpg" border="0" alt="iCrystalBall" width="462" height="480" /></p>
<p><a href="http://www.wired.com/gadgets/wireless/news/2008/06/iphone_smartphones" target="_blank">Wired</a> has an interesting article on how the iPhone boosted smartphone sales for other manufacturers (most notably RIM and Palm). With the next version of the iPhone now released, you might be asking yourself</p>
<ul>
<li>What will Microsoft do to keep Apple from breaking into the enterprise smartphone market?</li>
<li>Why haven&#8217;t I bought this new iPhone yet?</li>
<li>What&#8217;s that pretty thing in the Crystal Ball?</li>
</ul>
<p>Now might be a good time to analyze the potential impact Apple&#8217;s iPhone might have on Windows Mobile.</p>
<p><span id="more-64"></span></p>
<p>The current version of Windows Mobile is version 6.1&#8230; which is still based on Windows CE 5.2 despite the release of Windows CE 6.0 back in November of 2006, which is well over a year ago. Windows Mobile 7 will be based on either Windows CE 6 or a later version of Windows CE judging by its anticipated mid-to-late 2009 release. Since the last major Windows CE release, <em>two</em> iPhones have come along and, according to the people watching today&#8217;s WWDC keynote, eclipsed every smartphone in existence (we&#8217;ll disregard the argument that the iPhone is not a suitable enterprise tool for now).</p>
<p>Since the moment news of the first iPhone broke two Januarys ago, companies such as Meizu and HTC have tried to revamp the Windows Mobile interface with their own code, though only HTC has actually managed to push anything to the market. A number of <a href="http://www.engadget.com/2008/06/04/the-htc-touch-pro/" target="_blank">threads</a> discussing the new HTC Touch Pro have come and gone, with many people as-yet-unaffected by Mr. Jobs&#8217; Reality Distortion Field seriously weighing the unreleased Touch (less so with its Diamond sibling) against the new iPhone and another HTC project, the Sony Ericsson XPERIA X1.</p>
<p><a href="http://www.engadget.com/2008/06/09/steve-jobs-keynote-live-from-wwdc-2008/" target="_blank"><img style="margin: 10px" src="http://www.blogsmithmedia.com/www.engadget.com/media/2008/06/wwdc-keynote_124.jpg" alt="Sorry, Ryan!" width="240" height="160" align="left" /></a>The impact of the iPhone is already visible in the preparation of new user interfaces for both Windows Mobile and RIM&#8217;s Blackberry (the Bold UI). However, with the announcement that iPhone v2 will carry full Exchange support, the latest iPhone is also making an attempt to invade the enterprise smartphone realm, and third party innovations for smartphones in this department typically have a high FAIL rate in catching on, so it&#8217;s up to Microsoft to keep itself awake and running. HTC pulled a lucky rabbit from its proverbial top-hat, but HTC&#8217;s experience lies in what most people in the Orient prefer with their phones: glitz, glamour, and lots of overly pretty animated functions, menus, spinning icons, and other similar user interface <span style="text-decoration: line-through;">clutterings</span> enhancements which missed the Longhorn boat back in 2004.</p>
<p>This gets me to what I think Microsoft might be forced to do with Apple&#8217;s growling 2ft-tall-and-growing-<em>fast</em> presence in front of it.</p>
<p><strong>Background Applications won&#8217;t go away. </strong> Even though Apple had a fun jab at how background applications eat battery power and performance, I personally don&#8217;t believe Microsoft will let background applications go the way of the dodo. Instead, Microsoft will likely make enhancements to how Windows Mobile manages background applications. This will save battery power (good!) while making it less likely that your phone will be infected with spyware (good!), while also preserving backwards compatibility (good, but not as enthusiastically good).</p>
<p><strong>A revamped user interface </strong>will likely be issued with Windows Mobile 7. While this has already been discussed many times in the past, I personally think the new UI will be developed in tandem with Windows 7&#8217;s User Interface. We&#8217;ve seen Windows 7&#8217;s poorly executed touch demo at D6 (I&#8217;ll keep my 50 cents Steve, thank you), but I think that Microsoft will keep a similar but highly condensed touch-centric user experience for Windows Mobile 7 for two reasons:</p>
<ol>
<li>The iPhone has already made touch look cool, and with companies such as HTC pulling off some of the most ingenious touch interfaces , touch and gestures won&#8217;t be going away.</li>
<li>Microsoft has a history of keeping things looking alike (and yet <a href="http://www.istartedsomething.com/taskforce/view.php?id=77" target="_blank">disjointedly different</a> at the same time) for the sake of branding. Windows Mobile 6 had this mildly Vista-esque feel through the use of gradients and glossed elements. On the other hand, this is a phone. One of the problems some people have with the iPhone is that while the user interface is great, the time it takes to go from one place to another (despite the presence of the home button) can get a bit annoying with the animations and other UI tidbits in place. In consumer environments, a glitzy UI is great, but in snappy business environments when CEOs are jumping from cabs and limousines to business meetings in skyscrapers while trying to arrange that multi-million (or billion) dollar merger during the only 30 second time slot available in the elevator trip to the top floor, the last thing that is needed are animations which eat time.</li>
</ol>
<p>With that in mind, Windows 7 might be less of a festival of motion than Windows Mobile 6.1 with HTC&#8217;s TouchFLO, with a new interface likely catering to both businessmen and consumers alike.</p>
<p><strong>Accelerated Development</strong> might split priority between Windows 7 and Windows Mobile 7. Should the two systems share a similar user interface, seeing Microsoft split its resources down the middle for both Windows and Windows Mobile might not be the largest surprise. One of Microsoft&#8217;s most successful areas is within the corporate sector, and with the iPhone trying to barge in, Microsoft might be much more inclined than before to put more emphasis on Windows Mobile development. With connectivity becoming the ultimate focus for Windows 7, seeing a heavy emphasis on connectivity between Windows Mobile,  7 and Windows 7 might be less of a shock now than it might&#8217;ve been, say, three to six months ago. This doesn&#8217;t mean we&#8217;ll see Windows 7 launch in 2009, nor does it mean that Windows 7 will come before the second half of next year (but it might). All it means is that more teams might be devoted to Windows Mobile 7, with collaboration between both Windows and Windows Mobile development climbing much higher than ever before. This could also mean that a number of Microsoft&#8217;s Windows 7 &#8220;pillars&#8221; will carry over into Windows Mobile.</p>
<p>Mind you, all of this is my own mindless speculation. The iPhone is not a crystal ball, I can&#8217;t see into the future, and the phone in the ball is an HTC Touch Pro. If you have any other ideas as to which directions Microsoft might take with Windows Mobile, post! Comments are below, but before you post, here&#8217;s a dose of irony, courtesy of Paul Thurrott.</p>
<p style="text-align: center;"><a href="http://community.winsupersite.com/blogs/paul/archive/2008/06/09/separated-at-birth.aspx"><img src="http://www.winsupersite.com/images/blog/mobileme_separated.jpg" alt="mobileMe" /></a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.aeroxp.org/2008/06/windows-mobile-through-apples-icrystalball/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Adding custom buttons to the Explorer command bar</title>
		<link>http://www.aeroxp.org/2008/06/custom-explorer-buttons/</link>
		<comments>http://www.aeroxp.org/2008/06/custom-explorer-buttons/#comments</comments>
		<pubDate>Sun, 08 Jun 2008 01:26:56 +0000</pubDate>
		<dc:creator>Andreas</dc:creator>
		
		<category><![CDATA[Tips/Tricks/Hacks]]></category>

		<category><![CDATA[Windows]]></category>

		<category><![CDATA[Ave]]></category>

		<category><![CDATA[customization]]></category>

		<category><![CDATA[hax]]></category>

		<category><![CDATA[Windows Vista]]></category>

		<guid isPermaLink="false">http://www.aeroxp.org/?p=58</guid>
		<description><![CDATA[With Vista, Microsoft redesigned Windows Explorer a lot. One of the biggest changes was the removal of the customizable toolbar. Up to Windows XP, adding or removing the buttons that were displayed in Explorer was a simple chore.
With Vista, this customization ability is gone; the toolbar is replaced by a so-called green shaded &#8220;commandbar,&#8221; and [...]]]></description>
			<content:encoded><![CDATA[<div class=""><p>With Vista, Microsoft redesigned Windows Explorer a lot. One of the biggest changes was the removal of the customizable toolbar. Up to Windows XP, adding or removing the buttons that were displayed in Explorer was a simple chore.<br />
With Vista, this customization ability is gone; the toolbar is replaced by a so-called green shaded &#8220;commandbar,&#8221; and none of it can be customized unless you are willing to take a dive into the registry.</p>
<p><img src="http://www.aeroxp.org/wp-content/uploads/2008/06/naamloos.jpg" alt="" /></p>
<p>In this post, I will show you a way to add custom buttons &#8212; like in the above image &#8212; to the commandbar by adding items to the registry. Unfortunately, not all buttons (e.g. New Folder) are possible via this way.</p>
<p><span id="more-58"></span></p>
<h3>The registry key</h3>
<p>We start by opening up regedit as administrator (start, type regedit and hit enter. Accept the UAC prompt if you have UAC enabled). Once inside regedit, we navigate to the following key:</p>
<pre style="font-size: 12px; padding-left: 30px;">HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\FolderTypes</pre>
<p>Under this key, you&#8217;ll see a list of numbers in the format of {de2b70ec-9bf7-4a93-bd3d-243f7881d492}. These numbers are CLSIDs and represent the special folders such as Documents, Music, Drives in Explorer.<br />
Most of the CLSIDs can be figured out by clicking the registry key and looking at the <em>CanonicalName</em>. For example, {de2b70ec-9bf7-4a93-bd3d-243f7881d492} has its CanonicalName set to Directory.Contacts, so it is likely that these CLSID refers to the Contacts folder.</p>
<h3>TaskNoItemsSelected</h3>
<p>Under some of the CLSID registry keys, you&#8217;ll see another key named <strong>TaskNoItemsSelected</strong>. For example, {de2b70ec-9bf7-4a93-bd3d-243f7881d492} (the Contacts folder) has this subkey. If you further expand this key, you will see that it has numbered subkeys 0, 1, 2 and 3.<br />
These subkeys actually contain a description of the buttons that are added to the commandbar when no item is selected in the Contacts folder.</p>
<h3>Editing TaskNoItemsSelected</h3>
<p>Before we can edit this registry key, you need to make sure you have the proper rights to do so. On a fresh install, only the installer can write or modify these registry keys.<br />
If you plan on editing some of the button, take ownership of the FolderTypes registry key by right-clicking it and selecting <strong>Permissions</strong>. Next, click <strong>Advanced</strong> and go to the <strong>Owner</strong> tab. In here, you can select your own user or the Administrators group as the new owner. Before hitting OK, tick the bottom-most checkbox saying something along the lines of &#8216;Replace owner of the underlying objects&#8217;.<br />
After doing this, you now have the proper rights to edit the FolderTypes.</p>
<p>We start by adding a new key under the  {de2b70ec-9bf7-4a93-bd3d-243f7881d492}\TaskNoItemsSelected key. We name it <strong>4</strong>, since 0 to 3 already exists.</p>
<p>The next thing we need to do is add another subkey under the 4 key, which needs to be a unique and long number (called a GUID). For generating GUIDs, we use the following tool: <a href="http://www.somacon.com/p113.php">http://www.somacon.com/p113.php</a> . Hit the Generate UUID/GUID button and copy the GUID to the clipboard. We got the {61C0D9CB-BB72-4013-8769-EC628B50C351} GUID from this tool.<br />
Now we got a GUID, we add it under TaskNoItemsSelected\4 as a subkey, so we end up with the key:</p>
<pre style="font-size: 12px; padding-left: 30px;">\TasksNoItemsSelected\4\{61C0D9CB-BB72-4013-8769-EC628B50C351}</pre>
<p>In this key, we add the following values in the right pane:</p>
<ul>
<li>(default), Character string, with a value of <em>MyButton</em></li>
<li>Icon, Expendable Character string, with a value of <em>c:\windows\system32\calc.exe, 0</em></li>
<li>InfoTip, Character string, with a value of <em>My Custom Tooltip</em></li>
<li>Title, Character string, with a value of <em>My Custom Item</em></li>
</ul>
<p>When done right, you&#8217;ll end up with:<br />
<img src="http://www.aeroxp.org/wp-content/uploads/2008/06/customregvalues.jpg" alt="" /></p>
<p>These values let Explorer know how our button should look like. They are self-explanatory, except for Icon, which takes a string in the form of PathToExeOrDllFile, iconNumber. In our example, we tell Explorer to use the first Icon from the Calculator.</p>
<p>We now have told Explorer what our custom button looks like, but not what it should do. We do this by adding a the following subkeys to our custom-button key: <strong>shell\InvokeTask\command</strong>. In the command key, we change the (Default) value to the application we want to launch when the button is clicked. Let&#8217;s put in c:\windows\system32\calc.exe to launch calc.</p>
<p>If you did everything right, you ended up with the following key structure under FolderTypes:<br />
<img src="http://www.aeroxp.org/wp-content/uploads/2008/06/custombuttonreg.jpg" alt="" /></p>
<p>Now, if you go into the Contacts folder, you will see a <strong><em>My Custom Item</em></strong> button, which, when clicked, will launch the Calculator.</p>
<p>Next time we will delve into the TasksItemsSelected list, which has some additional properties!</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.aeroxp.org/2008/06/custom-explorer-buttons/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
