<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" version="2.0">
    <channel>
        <title>Developer's Notes</title>
        <link>http://blog.stpworks.com/Default.aspx</link>
        <description>Philip Patrick's personal blog</description>
        <language>en-US</language>
        <copyright>Philip Patrick</copyright>
        <generator>Subtext Version 2.1.1.1</generator>
        <image><link>http://creativecommons.org/licenses/by/2.0/</link><url>http://creativecommons.org/images/public/somerights20.gif</url><title>Some Rights Reserved</title></image>
        <creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/PhilipPatrick" type="application/rss+xml" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">PhilipPatrick</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><item>
            <title>Setting WPF Dialog owner from within WinForms application</title>
            <category>Developer</category>
            <link>http://blog.stpworks.com/archive/2009/07/02/setting-wpf-dialog-owner-from-within-winforms-application.aspx</link>
            <description>&lt;p&gt;I had some WPF dialog that I need to show from older WinForms application, or more precisely from some WinForms UserControl. The problem was to set Owner of that dialog, GetWindow() didn’t work (of course) and leaving dialog without an owner, made it possible to disappear when user switch from application to application. And I didn’t want to show it in task bar either.&lt;/p&gt;  &lt;p&gt;Thankfully, there is a very easy way, which, for some reason, I didn’t find quite fast – use &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.interop.windowinterophelper.aspx" target="_blank"&gt;WindowInteropHelper&lt;/a&gt; class. Here is an example:&lt;/p&gt;  &lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;   &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; MyWpfDialog dialog = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; MyWpfDialog();&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt;  &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum3"&gt;   3:&lt;/span&gt; &lt;span style="color: #008000"&gt;//remember, this is WinForms UserControl and its Handle property is&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum4"&gt;   4:&lt;/span&gt; &lt;span style="color: #008000"&gt;//actually IntPtr containing Win32 HWND.&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum5"&gt;   5:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; System.Windows.Interop.WindowInteropHelper(dialog).Owner = &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.Handle;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum6"&gt;   6:&lt;/span&gt; dialog.ShowDialog();&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:b0e83f9c-699b-4382-9be2-b4294896acce" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/WPF" rel="tag"&gt;WPF&lt;/a&gt;, &lt;a href="http://technorati.com/tags/WinForms" rel="tag"&gt;WinForms&lt;/a&gt;, &lt;a href="http://technorati.com/tags/C%23" rel="tag"&gt;C#&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blog.stpworks.com/aggbug/45.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/vZD7PiXxIsr9nmo5GXh4SZtQuAY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vZD7PiXxIsr9nmo5GXh4SZtQuAY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/vZD7PiXxIsr9nmo5GXh4SZtQuAY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vZD7PiXxIsr9nmo5GXh4SZtQuAY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/PhilipPatrick?a=lfamf3MeVsw:0QlaGq6Ck8E:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PhilipPatrick?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PhilipPatrick?a=lfamf3MeVsw:0QlaGq6Ck8E:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PhilipPatrick?i=lfamf3MeVsw:0QlaGq6Ck8E:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PhilipPatrick?a=lfamf3MeVsw:0QlaGq6Ck8E:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PhilipPatrick?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PhilipPatrick/~4/lfamf3MeVsw" height="1" width="1"/&gt;</description>
            <dc:creator>Philip Patrick</dc:creator>
            <guid>http://blog.stpworks.com/archive/2009/07/02/setting-wpf-dialog-owner-from-within-winforms-application.aspx</guid>
            <pubDate>Thu, 02 Jul 2009 13:20:02 GMT</pubDate>
            <wfw:comment>http://blog.stpworks.com/comments/45.aspx</wfw:comment>
            <comments>http://blog.stpworks.com/archive/2009/07/02/setting-wpf-dialog-owner-from-within-winforms-application.aspx#feedback</comments>
            <wfw:commentRss>http://blog.stpworks.com/comments/commentRss/45.aspx</wfw:commentRss>
            <trackback:ping>http://blog.stpworks.com/services/trackbacks/45.aspx</trackback:ping>
        </item>
        <item>
            <title>iPhone 3GS</title>
            <category>Technology</category>
            <link>http://blog.stpworks.com/archive/2009/06/22/iphone-3gs.aspx</link>
            <description>&lt;p&gt;Go ahead and read it - &lt;a target="_blank" href="http://www.stephenfry.com/"&gt;Stephen Fry&lt;/a&gt;’s review at &lt;a target="_blank" href="http://www.guardian.co.uk/technology/2009/jun/19/stephen-fry-iphone-3gs-review" title="http://www.guardian.co.uk/technology/2009/jun/19/stephen-fry-iphone-3gs-review"&gt;http://www.guardian.co.uk/technology/2009/jun/19/stephen-fry-iphone-3gs-review&lt;/a&gt;. Pay attention to the title of the review: “iPhone, therefore I am” – brilliant :)&lt;/p&gt;
&lt;p&gt;From my side, I’m sitting here, in Israel and waiting for iPhone to be officially supported by local operators. Seems that at least 2 of them have conformed that in a few months they are getting 3GS version, so we’ll see what the prices will be and maybe I’ll get one for myself too – getting tired of my current Sony-Ericsson P1i.&lt;/p&gt;
&lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:69056a3d-2531-4195-9aed-1aaa24ec2230" style="margin: 0px; padding: 0px; display: inline; float: none;"&gt;Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tags/iPhone"&gt;iPhone&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/Stephen+Fry"&gt;Stephen Fry&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/Mobile"&gt;Mobile&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/Review"&gt;Review&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blog.stpworks.com/aggbug/44.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/mEy8iuAxJG9NjIoECJ6ArhYK7cE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mEy8iuAxJG9NjIoECJ6ArhYK7cE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/mEy8iuAxJG9NjIoECJ6ArhYK7cE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mEy8iuAxJG9NjIoECJ6ArhYK7cE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/PhilipPatrick?a=Jhi31_CtSMg:ESkML9PzWRE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PhilipPatrick?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PhilipPatrick?a=Jhi31_CtSMg:ESkML9PzWRE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PhilipPatrick?i=Jhi31_CtSMg:ESkML9PzWRE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PhilipPatrick?a=Jhi31_CtSMg:ESkML9PzWRE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PhilipPatrick?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PhilipPatrick/~4/Jhi31_CtSMg" height="1" width="1"/&gt;</description>
            <dc:creator>Philip Patrick</dc:creator>
            <guid>http://blog.stpworks.com/archive/2009/06/22/iphone-3gs.aspx</guid>
            <pubDate>Mon, 22 Jun 2009 15:59:02 GMT</pubDate>
            <wfw:comment>http://blog.stpworks.com/comments/44.aspx</wfw:comment>
            <comments>http://blog.stpworks.com/archive/2009/06/22/iphone-3gs.aspx#feedback</comments>
            <wfw:commentRss>http://blog.stpworks.com/comments/commentRss/44.aspx</wfw:commentRss>
            <trackback:ping>http://blog.stpworks.com/services/trackbacks/44.aspx</trackback:ping>
        </item>
        <item>
            <title>Sending E-mail From PowerShell v1.0</title>
            <category>Developer</category>
            <category>Technology</category>
            <link>http://blog.stpworks.com/archive/2009/06/08/sending-e-mail-from-powershell-v1.0.aspx</link>
            <description>&lt;p&gt;While in PowerShell 2 there will be a “Send-Mail” cmdlet (as I heard), I needed something for current version. Here is the self-explaining PowerShell script for sending mails with optional attachments and multiple recipients.&lt;/p&gt;  &lt;p&gt;Remember to change the hard-coded “mail.server.com” to your own mail server, otherwise nothing will work :).&lt;/p&gt;  &lt;div style="border-bottom: gray 1px solid; border-left: gray 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: consolas, 'Courier New', courier, monospace; max-height: 200px; font-size: 8pt; overflow: auto; border-top: gray 1px solid; cursor: text; border-right: gray 1px solid; padding-top: 4px"&gt;   &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #008000"&gt;##############################################################&lt;/span&gt;
&lt;span style="color: #008000"&gt;# Send e-mail with optional attachments&lt;/span&gt;
&lt;span style="color: #008000"&gt;#&lt;/span&gt;
&lt;span style="color: #0000ff"&gt;function&lt;/span&gt; SendEmail
{
    &lt;span style="color: #0000ff"&gt;param&lt;/span&gt;(
        $From,
        $To,
        $Subject,
        $Body,
        $Attach = $null
    )
    
    $msg = New-Object Net.Mail.MailMessage
    $msg.From = $From
    
    &lt;span style="color: #008000"&gt;#Recipient address can be an array as well&lt;/span&gt;
    $addresses = $To
    &lt;span style="color: #0000ff"&gt;if&lt;/span&gt;($To -isnot [Object[]])
    {
        $addresses = ([string]$To).Split(&lt;span style="color: #006080"&gt;";"&lt;/span&gt;)
    }
    
    &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt;($singleAddress &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; $addresses)
    {
        $msg.To.Add($singleAddress)
    }
    
    $msg.Body = $Body
    $msg.Subject = $Subject
    
    &lt;span style="color: #0000ff"&gt;if&lt;/span&gt;($Attach &lt;span style="color: #cc6633"&gt;-ne&lt;/span&gt; $null)
    {
        &lt;span style="color: #0000ff"&gt;if&lt;/span&gt;($Attach &lt;span style="color: #cc6633"&gt;-is&lt;/span&gt; [String[]] -or $Attach &lt;span style="color: #cc6633"&gt;-is&lt;/span&gt; [Object[]])
        {
            &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt;($filePath &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; $Attach)
            {
                $att = New-Object Net.Mail.Attachment($filePath, &lt;span style="color: #006080"&gt;"text/plain"&lt;/span&gt;)
                $msg.Attachments.Add($att)
                Write-Output ([String]::Format(&lt;span style="color: #006080"&gt;"{0} attached"&lt;/span&gt;, $filePath))
            }
        }
        &lt;span style="color: #0000ff"&gt;elseif&lt;/span&gt;($Attach &lt;span style="color: #cc6633"&gt;-is&lt;/span&gt; [string])
        {
            $att = New-Object Net.Mail.Attachment($Attach, &lt;span style="color: #006080"&gt;"text/plain"&lt;/span&gt;)
            $msg.Attachments.Add($att)
            Write-Output ([String]::Format(&lt;span style="color: #006080"&gt;"{0} attached"&lt;/span&gt;, $Attach))
        }
        &lt;span style="color: #0000ff"&gt;else&lt;/span&gt;
        {
            Write-Warning ([String]::Format(&lt;span style="color: #006080"&gt;"Attachment is of unknown type: {0}. Please use string or string/object arrays only"&lt;/span&gt;, $Attach.GetType().Name))
        }
    }
    
    $client = New-Object net.Mail.SmtpClient(&lt;span style="color: #006080"&gt;"mail.server.com"&lt;/span&gt;)
    $client.Send($msg)
    Write-Output &lt;span style="color: #006080"&gt;"E-mail message sent"&lt;/span&gt;
}&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:0166af82-0de7-4c55-9398-d1cb7fca6ca1" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/PowerShell" rel="tag"&gt;PowerShell&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Script" rel="tag"&gt;Script&lt;/a&gt;, &lt;a href="http://technorati.com/tags/e-mail" rel="tag"&gt;e-mail&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blog.stpworks.com/aggbug/43.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/sZHbq1YeVr6jnEnzrao0uu2rDj8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sZHbq1YeVr6jnEnzrao0uu2rDj8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/sZHbq1YeVr6jnEnzrao0uu2rDj8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sZHbq1YeVr6jnEnzrao0uu2rDj8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/PhilipPatrick?a=bDGrRIA1zJM:G7USKa-0o-U:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PhilipPatrick?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PhilipPatrick?a=bDGrRIA1zJM:G7USKa-0o-U:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PhilipPatrick?i=bDGrRIA1zJM:G7USKa-0o-U:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PhilipPatrick?a=bDGrRIA1zJM:G7USKa-0o-U:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PhilipPatrick?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PhilipPatrick/~4/bDGrRIA1zJM" height="1" width="1"/&gt;</description>
            <dc:creator>Philip Patrick</dc:creator>
            <guid>http://blog.stpworks.com/archive/2009/06/08/sending-e-mail-from-powershell-v1.0.aspx</guid>
            <pubDate>Mon, 08 Jun 2009 07:52:52 GMT</pubDate>
            <wfw:comment>http://blog.stpworks.com/comments/43.aspx</wfw:comment>
            <comments>http://blog.stpworks.com/archive/2009/06/08/sending-e-mail-from-powershell-v1.0.aspx#feedback</comments>
            <wfw:commentRss>http://blog.stpworks.com/comments/commentRss/43.aspx</wfw:commentRss>
            <trackback:ping>http://blog.stpworks.com/services/trackbacks/43.aspx</trackback:ping>
        </item>
        <item>
            <title>Visual Studio 2008 template for Prototype console application</title>
            <category>Developer</category>
            <link>http://blog.stpworks.com/archive/2009/04/28/visual-studio-2008-template-for-prototype-console-application.aspx</link>
            <description>&lt;p&gt;There have been several occurrences where I needed to have something quick UI, to check some set of classes. Building a whole Windows Forms or WPF application seemed to be overkill, specially when I will not be responsible for building UI later, or application will not need UI at all. So what we usually do? Right, create a command line utility, than another one and another one.. Most of them look exactly the same. &lt;/p&gt;  &lt;p&gt;So some time ago I have created a Visual Studio project template, that will contain all I need in such console applications, and all I need – just put the code (or calls to another code) for your business logic and check it. Now I have decided to publish it as well, as I’ve been asked to send it few times by mail and people found it useful.&lt;/p&gt;  &lt;p&gt;For more info and download link, see full article &lt;a href="http://blog.stpworks.com/archive/2009/04/24/prototype-visual-studio-2008-project-template.aspx"&gt;Prototype Project Template&lt;/a&gt;.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:9ef4c2e6-e010-4f02-a447-b52a1acca7fc" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/C%23" rel="tag"&gt;C#&lt;/a&gt;, &lt;a href="http://technorati.com/tags/.NET" rel="tag"&gt;.NET&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Visual+Studio" rel="tag"&gt;Visual Studio&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blog.stpworks.com/aggbug/42.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Wlhu-EnO4d6j0l7575v2Y-mY_68/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Wlhu-EnO4d6j0l7575v2Y-mY_68/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Wlhu-EnO4d6j0l7575v2Y-mY_68/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Wlhu-EnO4d6j0l7575v2Y-mY_68/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/PhilipPatrick?a=o8_KyWWRr0M:5QKxMu5IK8w:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PhilipPatrick?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PhilipPatrick?a=o8_KyWWRr0M:5QKxMu5IK8w:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PhilipPatrick?i=o8_KyWWRr0M:5QKxMu5IK8w:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PhilipPatrick?a=o8_KyWWRr0M:5QKxMu5IK8w:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PhilipPatrick?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PhilipPatrick/~4/o8_KyWWRr0M" height="1" width="1"/&gt;</description>
            <dc:creator>Philip Patrick</dc:creator>
            <guid>http://blog.stpworks.com/archive/2009/04/28/visual-studio-2008-template-for-prototype-console-application.aspx</guid>
            <pubDate>Tue, 28 Apr 2009 09:54:14 GMT</pubDate>
            <wfw:comment>http://blog.stpworks.com/comments/42.aspx</wfw:comment>
            <comments>http://blog.stpworks.com/archive/2009/04/28/visual-studio-2008-template-for-prototype-console-application.aspx#feedback</comments>
            <wfw:commentRss>http://blog.stpworks.com/comments/commentRss/42.aspx</wfw:commentRss>
            <trackback:ping>http://blog.stpworks.com/services/trackbacks/42.aspx</trackback:ping>
        </item>
        <item>
            <title>Replacing passwords on application logs</title>
            <category>Developer</category>
            <link>http://blog.stpworks.com/archive/2009/03/24/replacing-passwords-on-application-logs.aspx</link>
            <description>&lt;p&gt;Many applications write various information into log files and sometimes this information is sensitive, e.g. contains user passwords. In my case, I knew that we are logging &lt;strong&gt;SQL statements&lt;/strong&gt; with stored procedures calls and one of the parameters may contain user’s password. So I have been asked to replace such passwords with something neutral.&lt;/p&gt;  &lt;p&gt;I’ve ended with following regular expression string (works only for stored procedures and alike call logs!):&lt;/p&gt; &lt;code&gt;   &lt;p&gt;(?&amp;lt;Pre&amp;gt;(pass(word)?|pwd)[^=']*=[^']*'?)(?&amp;lt;Target&amp;gt;[^']+)(?&amp;lt;Post&amp;gt;'?)&lt;/p&gt; &lt;/code&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:4438f1f6-6617-46e9-ad9d-b6ce3df4e341" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Regular+Expressions" rel="tag"&gt;Regular Expressions&lt;/a&gt;, &lt;a href="http://technorati.com/tags/CSHarp" rel="tag"&gt;CSHarp&lt;/a&gt;, &lt;a href="http://technorati.com/tags/C%23" rel="tag"&gt;C#&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blog.stpworks.com/aggbug/40.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/6xhrPw6P6Ts1InHHZ5I6vwJNr14/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6xhrPw6P6Ts1InHHZ5I6vwJNr14/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/6xhrPw6P6Ts1InHHZ5I6vwJNr14/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6xhrPw6P6Ts1InHHZ5I6vwJNr14/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/PhilipPatrick?a=6sET6OyrE-w:arz1Lb8YQHM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PhilipPatrick?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PhilipPatrick?a=6sET6OyrE-w:arz1Lb8YQHM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PhilipPatrick?i=6sET6OyrE-w:arz1Lb8YQHM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PhilipPatrick?a=6sET6OyrE-w:arz1Lb8YQHM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PhilipPatrick?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PhilipPatrick/~4/6sET6OyrE-w" height="1" width="1"/&gt;</description>
            <dc:creator>Philip Patrick</dc:creator>
            <guid>http://blog.stpworks.com/archive/2009/03/24/replacing-passwords-on-application-logs.aspx</guid>
            <pubDate>Tue, 24 Mar 2009 12:14:14 GMT</pubDate>
            <wfw:comment>http://blog.stpworks.com/comments/40.aspx</wfw:comment>
            <comments>http://blog.stpworks.com/archive/2009/03/24/replacing-passwords-on-application-logs.aspx#feedback</comments>
            <wfw:commentRss>http://blog.stpworks.com/comments/commentRss/40.aspx</wfw:commentRss>
            <trackback:ping>http://blog.stpworks.com/services/trackbacks/40.aspx</trackback:ping>
        </item>
        <item>
            <title>Everquest II News iGoogle gadget updated</title>
            <category>Games</category>
            <category>Everquest</category>
            <link>http://blog.stpworks.com/archive/2008/10/19/everquest-ii-news-igoogle-gadget-updated.aspx</link>
            <description>&lt;p&gt;I have updated my &lt;a target="_blank" href="http://www.google.com/ig/directory?url=saint.patricius.googlepages.com/eq2news.xml"&gt;Everquest II News gadget&lt;/a&gt; to strip off all images that were breaking the view. Now the gadget looks more like a regular news feed – all text with a link to full article. Now I probably need to create such feed really and submit it to FeedBurner or something.&lt;/p&gt;
&lt;p&gt;&lt;a rel="lightbox" href="http://blog.stpworks.com/images/blog_stpworks_com/WindowsLiveWriter/EverquestIINewsiGooglegadgetupdated_87D3/image_2.png"&gt;&lt;img height="171" width="244" border="0" src="http://blog.stpworks.com/images/blog_stpworks_com/WindowsLiveWriter/EverquestIINewsiGooglegadgetupdated_87D3/image_thumb.png" alt="image" style="border: 0px none ; display: inline;" title="image" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;span style="font-weight: bold;"&gt;Update October 25&lt;/span&gt;: Go figure - just after I have updated the gadget, SOE made their news available via standard RSS. So I do not need the gadget anymore, woohoo! :)&lt;br /&gt;
&lt;div style="margin: 0px; padding: 0px; display: inline; float: none;" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:2c73d97c-2cbe-4371-bbda-2988151e3af2" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tags/Everquest"&gt;Everquest&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/Games"&gt;Games&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/Gadget"&gt;Gadget&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/iGoogle"&gt;iGoogle&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/Everquest+II"&gt;Everquest II&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blog.stpworks.com/aggbug/39.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4RSr-1ico1BJ7V6eiv9Q86f1YE4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4RSr-1ico1BJ7V6eiv9Q86f1YE4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4RSr-1ico1BJ7V6eiv9Q86f1YE4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4RSr-1ico1BJ7V6eiv9Q86f1YE4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/PhilipPatrick?a=AuJhPPDK3aE:QyYGbFRs48w:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PhilipPatrick?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PhilipPatrick?a=AuJhPPDK3aE:QyYGbFRs48w:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PhilipPatrick?i=AuJhPPDK3aE:QyYGbFRs48w:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PhilipPatrick?a=AuJhPPDK3aE:QyYGbFRs48w:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PhilipPatrick?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PhilipPatrick/~4/AuJhPPDK3aE" height="1" width="1"/&gt;</description>
            <dc:creator>Philip Patrick</dc:creator>
            <guid>http://blog.stpworks.com/archive/2008/10/19/everquest-ii-news-igoogle-gadget-updated.aspx</guid>
            <pubDate>Sun, 19 Oct 2008 07:39:46 GMT</pubDate>
            <wfw:comment>http://blog.stpworks.com/comments/39.aspx</wfw:comment>
            <comments>http://blog.stpworks.com/archive/2008/10/19/everquest-ii-news-igoogle-gadget-updated.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blog.stpworks.com/comments/commentRss/39.aspx</wfw:commentRss>
            <trackback:ping>http://blog.stpworks.com/services/trackbacks/39.aspx</trackback:ping>
        </item>
        <item>
            <title>Access Violation in DsBrowseForContainer on Windows Vista. The code</title>
            <category>Developer</category>
            <link>http://blog.stpworks.com/archive/2008/10/06/access-violation-in-dsbrowseforcontainer-on-windows-vista.-part-2.aspx</link>
            <description>&lt;p&gt;Since my post &lt;a target="_blank" href="http://blog.stpworks.com/archive/2008/09/05/access-violation-in-dsbrowseforcontainer-on-windows-vista.aspx"&gt;about DsBrowseForContainer problem in Vista&lt;/a&gt;, I have been asked several times to provide the code on solution. So here we go – below is the class that I use to browse for OU container, it is written to .NET 3.5, but can be easily adapted to earlier versions as well:&lt;/p&gt;
&lt;div style="border: 1px solid gray; margin: 20px 0px 10px; padding: 4px; overflow: auto; font-size: 8pt; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: rgb(244, 244, 244);"&gt;
&lt;pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: rgb(244, 244, 244);"&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;sealed&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;class&lt;/span&gt; OUPickerDialog&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; OUPickerDialog()&lt;br /&gt;    {&lt;br /&gt;        Caption = &lt;span style="color: rgb(0, 96, 128);"&gt;"The container picker"&lt;/span&gt;;&lt;br /&gt;        Title = &lt;span style="color: rgb(0, 96, 128);"&gt;"Select a container:"&lt;/span&gt;;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: rgb(204, 102, 51);"&gt;#region&lt;/span&gt; Imports&lt;br /&gt;    &lt;span style="color: rgb(0, 128, 0);"&gt;// all strings in structure will be marshaled as LPWStr&lt;/span&gt;     [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]     &lt;span style="color: rgb(0, 0, 255);"&gt;private&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;struct&lt;/span&gt; DSBrowseInfo&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt; structSize;&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; IntPtr dlgOwner;&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt; dlgCaption;&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt; treeViewTitle;&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; IntPtr rootPath;&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: rgb(0, 128, 0);"&gt;// in/out string must be declared as String in struct/class, &lt;/span&gt;         &lt;span style="color: rgb(0, 128, 0);"&gt;// not as StringBuilder&lt;/span&gt;         &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt; path;&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt; pathSize;&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt; flags;&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; IntPtr callback;&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; IntPtr lParam;&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt; returnFormat;&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt; userName;&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt; password;&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt; objectClass;&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt; objectClassSize;&lt;br /&gt;    };&lt;br /&gt;&lt;br /&gt;    [DllImport(&lt;span style="color: rgb(0, 96, 128);"&gt;"dsuiext.dll"&lt;/span&gt;, CharSet = CharSet.Unicode)]&lt;br /&gt;    &lt;span style="color: rgb(0, 0, 255);"&gt;private&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;extern&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt; DsBrowseForContainerW(&lt;span style="color: rgb(0, 0, 255);"&gt;ref&lt;/span&gt; DSBrowseInfo info);&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: rgb(0, 0, 255);"&gt;private&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;const&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt; DSBI_ENTIREDIRECTORY = 0x00090000;&lt;br /&gt;    &lt;span style="color: rgb(0, 0, 255);"&gt;private&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;const&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt; MAX_PATH = 256;&lt;br /&gt;    &lt;span style="color: rgb(204, 102, 51);"&gt;#endregion&lt;/span&gt;      &lt;span style="color: rgb(204, 102, 51);"&gt;#region&lt;/span&gt; Properties&lt;br /&gt;    &lt;span style="color: rgb(0, 128, 0);"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;     &lt;span style="color: rgb(0, 128, 0);"&gt;/// Gets or sets text to display on dialog box caption&lt;/span&gt;     &lt;span style="color: rgb(0, 128, 0);"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;     &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt; Caption { get; set; }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: rgb(0, 128, 0);"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;     &lt;span style="color: rgb(0, 128, 0);"&gt;/// Gets or sets title displayed above directory tree&lt;/span&gt;     &lt;span style="color: rgb(0, 128, 0);"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;     &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt; Title { get; set; }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: rgb(0, 128, 0);"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;     &lt;span style="color: rgb(0, 128, 0);"&gt;/// Gets or sets path to start browsing from&lt;/span&gt;     &lt;span style="color: rgb(0, 128, 0);"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;     &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt; RootPath { get; set; }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: rgb(0, 128, 0);"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;     &lt;span style="color: rgb(0, 128, 0);"&gt;/// Gets path selected by user or empty string if nothing has been selected&lt;/span&gt;     &lt;span style="color: rgb(0, 128, 0);"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;     &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt; SelectedPath { get; &lt;span style="color: rgb(0, 0, 255);"&gt;private&lt;/span&gt; set; }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: rgb(0, 128, 0);"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;     &lt;span style="color: rgb(0, 128, 0);"&gt;/// Gets name selected by user or empty string if nothing has been selected&lt;/span&gt;     &lt;span style="color: rgb(0, 128, 0);"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;     &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt; SelectedName { get; &lt;span style="color: rgb(0, 0, 255);"&gt;private&lt;/span&gt; set; }&lt;br /&gt;    &lt;span style="color: rgb(204, 102, 51);"&gt;#endregion&lt;/span&gt;      &lt;span style="color: rgb(204, 102, 51);"&gt;#region&lt;/span&gt; Methods&lt;br /&gt;    &lt;span style="color: rgb(0, 128, 0);"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;     &lt;span style="color: rgb(0, 128, 0);"&gt;/// Displays a modal picker dialog and returns OU path as selected by user or empty string if nothing&lt;/span&gt;     &lt;span style="color: rgb(0, 128, 0);"&gt;/// has been selected&lt;/span&gt;     &lt;span style="color: rgb(0, 128, 0);"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;     &lt;span style="color: rgb(0, 128, 0);"&gt;/// &amp;lt;returns&amp;gt;&amp;lt;c&amp;gt;true&amp;lt;/c&amp;gt; if user selected a unit or &amp;lt;c&amp;gt;false&amp;lt;/c&amp;gt; otherwise&amp;lt;/returns&amp;gt;&lt;/span&gt;     &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;bool&lt;/span&gt;? ShowDialog()&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: rgb(0, 128, 0);"&gt;// initialize all members&lt;/span&gt;         SelectedPath = String.Empty;         SelectedName = String.Empty;          DSBrowseInfo dsbi = &lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt; DSBrowseInfo();&lt;br /&gt;&lt;br /&gt;        dsbi.structSize = Marshal.SizeOf(dsbi);&lt;br /&gt;        dsbi.dlgCaption = Caption;&lt;br /&gt;        dsbi.treeViewTitle = Title;&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt; (RootPath != &lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;)&lt;br /&gt;            dsbi.rootPath = Marshal.StringToHGlobalAuto(RootPath);&lt;br /&gt;&lt;br /&gt;        dsbi.path = &lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;(&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;char&lt;/span&gt;[MAX_PATH]);&lt;br /&gt;        dsbi.pathSize = MAX_PATH;&lt;br /&gt;        dsbi.flags = DSBI_ENTIREDIRECTORY;&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt; status = DsBrowseForContainerW(&lt;span style="color: rgb(0, 0, 255);"&gt;ref&lt;/span&gt; dsbi);&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 255);"&gt;bool&lt;/span&gt;? ret = &lt;span style="color: rgb(0, 0, 255);"&gt;false&lt;/span&gt;;&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt; (status == 1)&lt;br /&gt;        {&lt;br /&gt;            ret = &lt;span style="color: rgb(0, 0, 255);"&gt;true&lt;/span&gt;;&lt;br /&gt;            SelectedPath = dsbi.path;&lt;br /&gt;            SelectedName = CalcOUName(SelectedPath);&lt;br /&gt;            RootPath = Marshal.PtrToStringAuto(dsbi.rootPath);&lt;br /&gt;        }&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt; ret;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: rgb(0, 0, 255);"&gt;private&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt; CalcOUName(&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt; ou)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt; idx = 0;&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 255);"&gt;do&lt;/span&gt;         {             idx = ou.IndexOf(&lt;span style="color: rgb(0, 96, 128);"&gt;@","&lt;/span&gt;, idx + 1);&lt;br /&gt;        } &lt;span style="color: rgb(0, 0, 255);"&gt;while&lt;/span&gt; (idx &amp;gt; 0 &amp;amp;&amp;amp; ou[idx - 1] == '\\');&lt;br /&gt;        ou = ou.Substring(0, idx);&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt; ou;&lt;br /&gt;    }&lt;br /&gt;    &lt;span style="color: rgb(204, 102, 51);"&gt;#endregion&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;I have also uploaded a testing application I’ve been using. The code can be downloaded from &lt;a target="_blank" href="Downloads/FormsOUTester.zip"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;div style="margin: 0px; padding: 0px; display: inline; float: none;" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:cdef56a8-d116-41ce-a083-04cd3f6e10cb" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tags/.NET"&gt;.NET&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/Vista"&gt;Vista&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blog.stpworks.com/aggbug/38.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/rvMHQqSK6mRMjGGTkNxRxLDbzUs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rvMHQqSK6mRMjGGTkNxRxLDbzUs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/rvMHQqSK6mRMjGGTkNxRxLDbzUs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rvMHQqSK6mRMjGGTkNxRxLDbzUs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/PhilipPatrick?a=6uaVslzdzQY:5RNDSByLq1U:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PhilipPatrick?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PhilipPatrick?a=6uaVslzdzQY:5RNDSByLq1U:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PhilipPatrick?i=6uaVslzdzQY:5RNDSByLq1U:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PhilipPatrick?a=6uaVslzdzQY:5RNDSByLq1U:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PhilipPatrick?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PhilipPatrick/~4/6uaVslzdzQY" height="1" width="1"/&gt;</description>
            <dc:creator>Philip Patrick</dc:creator>
            <guid>http://blog.stpworks.com/archive/2008/10/06/access-violation-in-dsbrowseforcontainer-on-windows-vista.-part-2.aspx</guid>
            <pubDate>Mon, 06 Oct 2008 13:22:07 GMT</pubDate>
            <wfw:comment>http://blog.stpworks.com/comments/38.aspx</wfw:comment>
            <comments>http://blog.stpworks.com/archive/2008/10/06/access-violation-in-dsbrowseforcontainer-on-windows-vista.-part-2.aspx#feedback</comments>
            <wfw:commentRss>http://blog.stpworks.com/comments/commentRss/38.aspx</wfw:commentRss>
            <trackback:ping>http://blog.stpworks.com/services/trackbacks/38.aspx</trackback:ping>
        </item>
        <item>
            <title>Blog is back</title>
            <category>General</category>
            <link>http://blog.stpworks.com/archive/2008/10/02/blog-is-back.aspx</link>
            <description>&lt;p&gt;Due to several errors during upgrade of blog software, the site was inaccessible in the last few days. After waiting some time for a fix to be available, I have decided to rollback all changes and return to previous version. Now everything should work fine, as usual :)&lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:fc3db8ea-93f2-4664-b55f-0e1b23f832e5" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Blog" rel="tag"&gt;Blog&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blog.stpworks.com/aggbug/37.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/YXPm1l0CxYjNzYVIgt-lJA6pH_4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YXPm1l0CxYjNzYVIgt-lJA6pH_4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/YXPm1l0CxYjNzYVIgt-lJA6pH_4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YXPm1l0CxYjNzYVIgt-lJA6pH_4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/PhilipPatrick?a=y7kb5MgHWSo:TREf9jWVI9k:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PhilipPatrick?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PhilipPatrick?a=y7kb5MgHWSo:TREf9jWVI9k:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PhilipPatrick?i=y7kb5MgHWSo:TREf9jWVI9k:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PhilipPatrick?a=y7kb5MgHWSo:TREf9jWVI9k:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PhilipPatrick?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PhilipPatrick/~4/y7kb5MgHWSo" height="1" width="1"/&gt;</description>
            <dc:creator>Philip Patrick</dc:creator>
            <guid>http://blog.stpworks.com/archive/2008/10/02/blog-is-back.aspx</guid>
            <pubDate>Thu, 02 Oct 2008 10:51:27 GMT</pubDate>
            <wfw:comment>http://blog.stpworks.com/comments/37.aspx</wfw:comment>
            <comments>http://blog.stpworks.com/archive/2008/10/02/blog-is-back.aspx#feedback</comments>
            <wfw:commentRss>http://blog.stpworks.com/comments/commentRss/37.aspx</wfw:commentRss>
            <trackback:ping>http://blog.stpworks.com/services/trackbacks/37.aspx</trackback:ping>
        </item>
        <item>
            <title>Aggressive Installers</title>
            <category>Technology</category>
            <link>http://blog.stpworks.com/archive/2008/07/26/aggressive-installers.aspx</link>
            <description>&lt;p&gt;Aggressive installer is just like aggressive marketing (or &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Guerrilla_marketing"&gt;guerilla marketing&lt;/a&gt;) - it uses inconvenient way to promote some other products. This is what I've been thinking for last few times I've been installing Java updates. When you click on that orange icon notifying you that update is available, you get an installation wizard which "will guide you though the setup process". At some point you are prompted to install OpenOffice or Google Toolbar along with Java, although I don't understand how they are related and why it is already selected by default. As I do not need nor use any of those tools, I unselect it and continue. But imaging an average user, who knows nothing about computers and only uses his own for e-mails or researching online. Speaking of such user, I have several perfect examples - one of them is my mother, who is a psychiatrist and often searching Google (or different online resources) for something she needs. Second is my girlfriend, who just uses mails, sometimes online in-browser games and chats. &lt;/p&gt;
&lt;p&gt;Now what they would do when they are going though setup? Right, they just click Next button a couple of times and vu-a-la, the system is up-to-date. With an addition to useless (to my mom and g-friend) OpenOffice and Google toolbar, which make Internet Explorer look like garbage collection and Word documents are now opened in strange-looking application that none of my relatives know about.&lt;/p&gt;
&lt;p&gt;What next? Maybe wizard will prompt to install Linux instead of MS Windows? Why not? What is the difference, right? Isn't that the same tactics that EU and Open Source organizations &lt;a target="_blank" href="http://en.wikipedia.org/wiki/European_Union_Microsoft_antitrust_case"&gt;claimed&lt;/a&gt; to be used by Microsoft? Microsoft at least added they own software, which is an added value to operating system as a whole - Windows Media Player is an example, without it the system would not be able to play media files, but what we see here? Some organization sneaks another software which adds another piece of junk and makes my system unstable. And I do NOT want to say that OpenOffice or Google toolbar is a piece of junk as is. But in my environment - they do not add anything valuable and instead interfere with already installer programs, which makes them just a plain junk.&lt;/p&gt;
&lt;div style="margin: 0px; padding: 0px; display: inline;" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:065b8e70-1c3d-4b5a-9ffa-e7bb91da4105" class="wlWriterSmartContent"&gt;Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tags/OpenOffice"&gt;OpenOffice&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/Java%20Update"&gt;Java Update&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/Sun"&gt;Sun&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/Installer"&gt;Installer&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blog.stpworks.com/aggbug/36.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/lyiBKNOjpw2EETomaGdJcuoe2mA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lyiBKNOjpw2EETomaGdJcuoe2mA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/lyiBKNOjpw2EETomaGdJcuoe2mA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lyiBKNOjpw2EETomaGdJcuoe2mA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/PhilipPatrick?a=QP8xthGpEzI:KiydKrCAIbA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PhilipPatrick?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PhilipPatrick?a=QP8xthGpEzI:KiydKrCAIbA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PhilipPatrick?i=QP8xthGpEzI:KiydKrCAIbA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PhilipPatrick?a=QP8xthGpEzI:KiydKrCAIbA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PhilipPatrick?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PhilipPatrick/~4/QP8xthGpEzI" height="1" width="1"/&gt;</description>
            <dc:creator>Philip Patrick</dc:creator>
            <guid>http://blog.stpworks.com/archive/2008/07/26/aggressive-installers.aspx</guid>
            <pubDate>Sat, 26 Jul 2008 08:44:28 GMT</pubDate>
            <wfw:comment>http://blog.stpworks.com/comments/36.aspx</wfw:comment>
            <comments>http://blog.stpworks.com/archive/2008/07/26/aggressive-installers.aspx#feedback</comments>
            <wfw:commentRss>http://blog.stpworks.com/comments/commentRss/36.aspx</wfw:commentRss>
            <trackback:ping>http://blog.stpworks.com/services/trackbacks/36.aspx</trackback:ping>
        </item>
        <item>
            <title>Chinese Simplified is available for DBAdmin</title>
            <category>Developer</category>
            <category>Technology</category>
            <link>http://blog.stpworks.com/archive/2008/07/24/chinese-simplified-is-available-for-dbadmin.aspx</link>
            <description>&lt;p&gt;Thanks to George J. Sun (&lt;a href="http://www.kspoint.cn" target="_blank"&gt;web&lt;/a&gt;), Chinese Simplified language pack is available for &lt;a href="http://blog.stpworks.com/archive/2008/04/30/database-administrator-for-ms-access.aspx" target="_blank"&gt;Database Administrator&lt;/a&gt;. The ZIP file containing all languages is updated with the new file. I have to admit - I couldn't test it, as my system don't even display Chinese, so if anyone sees any problem in with the language file (not displayed properly and such), contact me or George to get it fixed :)&lt;/p&gt;  &lt;p&gt;As a reminder - &lt;a href="http://blog.stpworks.com/archive/2008/04/30/database-administrator-for-ms-access.aspx" target="_blank"&gt;DBAdmin&lt;/a&gt; is a tool for online managing your MS Access databases, written by me some time ago and using plain ASP (not .NET).&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:5339cf38-1a41-4f82-b6d8-9db1af2f0eca" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/DBAdmin" rel="tag"&gt;DBAdmin&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Database" rel="tag"&gt;Database&lt;/a&gt;, &lt;a href="http://technorati.com/tags/StpWorks" rel="tag"&gt;StpWorks&lt;/a&gt;, &lt;a href="http://technorati.com/tags/MS%20Access" rel="tag"&gt;MS Access&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blog.stpworks.com/aggbug/35.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/u3jX4jOd_H_tWCbzrgdxjZHpy60/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/u3jX4jOd_H_tWCbzrgdxjZHpy60/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/u3jX4jOd_H_tWCbzrgdxjZHpy60/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/u3jX4jOd_H_tWCbzrgdxjZHpy60/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/PhilipPatrick?a=ai3SyrXxjz0:EJ4LkykSH-8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PhilipPatrick?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PhilipPatrick?a=ai3SyrXxjz0:EJ4LkykSH-8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PhilipPatrick?i=ai3SyrXxjz0:EJ4LkykSH-8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PhilipPatrick?a=ai3SyrXxjz0:EJ4LkykSH-8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PhilipPatrick?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PhilipPatrick/~4/ai3SyrXxjz0" height="1" width="1"/&gt;</description>
            <dc:creator>Philip Patrick</dc:creator>
            <guid>http://blog.stpworks.com/archive/2008/07/24/chinese-simplified-is-available-for-dbadmin.aspx</guid>
            <pubDate>Thu, 24 Jul 2008 07:09:17 GMT</pubDate>
            <wfw:comment>http://blog.stpworks.com/comments/35.aspx</wfw:comment>
            <comments>http://blog.stpworks.com/archive/2008/07/24/chinese-simplified-is-available-for-dbadmin.aspx#feedback</comments>
            <wfw:commentRss>http://blog.stpworks.com/comments/commentRss/35.aspx</wfw:commentRss>
            <trackback:ping>http://blog.stpworks.com/services/trackbacks/35.aspx</trackback:ping>
        </item>
    </channel>
</rss>
