<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Steven Pratschner's .Net CF WebLog : Custominzing the CLR book</title><link>http://blogs.msdn.com/stevenpr/archive/tags/Custominzing+the+CLR+book/default.aspx</link><description>Tags: Custominzing the CLR book</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>More book updates for Customizing the CLR</title><link>http://blogs.msdn.com/stevenpr/archive/2006/12/07/more-book-updates-for-customizing-the-clr.aspx</link><pubDate>Thu, 07 Dec 2006 22:24:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1233949</guid><dc:creator>stevenpr</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/stevenpr/comments/1233949.aspx</comments><wfw:commentRss>http://blogs.msdn.com/stevenpr/commentrss.aspx?PostID=1233949</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Verdana','sans-serif'"&gt;I’ve recently been made aware of two more updates I need to provide for my book on &lt;A href="http://www.microsoft.com/mspress/books/6895.aspx"&gt;Customizing the .Net Framework CLR&lt;/A&gt;.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;As always, I apologize for any inconvenience these discrepancies may have caused.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Verdana','sans-serif'"&gt;Chapter 2, Page 7.&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Verdana','sans-serif'"&gt; The table which lists the methods on &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #003399; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'"&gt;ICLRRuntimeHost&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Verdana','sans-serif'"&gt; indicates that more information about &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #003399; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'"&gt;ExecuteInDomain&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Verdana','sans-serif'"&gt; is available in Chapter 7.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I had not intended to cover this method at all in the book, but the forward reference still exists.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If you’d like information on &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #003399; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'"&gt;ExecuteInDomain&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Verdana','sans-serif'"&gt; I’d be happy to provide you with a sample.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Verdana','sans-serif'"&gt;Chapter 5, Page 90.&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #003399; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'"&gt;SetAppDomainManagerType&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Verdana','sans-serif'"&gt; method on &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #003399; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'"&gt;ICLRControl&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Verdana','sans-serif'"&gt; is used to inform the CLR of the assembly and type that implements your domain manager.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The code sample on page 90 calls &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #003399; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'"&gt;SetAppDomainManagerType&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Verdana','sans-serif'"&gt; after the CLR has been initialized by a call to &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #003399; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'"&gt;ICLRRuntimeHost::Start&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Verdana','sans-serif'"&gt;:&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;int main(int argc, wchar_t* argv[])&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// Initialize the CLR using CorBindToRuntimeEx.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This gets us &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// the ICLRRuntimeHost pointer we’ll need to call Start.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;ICLRRuntimeHost *pCLR = NULL;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;HRESULT hr = CorBindToRuntimeEx(&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;L"v2.0.31113", &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;L"wks",&lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;STARTUP_CONCURRENT_GC, &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;CLSID_CLRRuntimeHost, &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;IID_ICLRRuntimeHost, &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;(PVOID*) &amp;amp;pCLR);&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// Start the CLR&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;hr = pCLR-&amp;gt;Start();&lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// Get a pointer to the ICLRControl interface&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in; TEXT-INDENT: 0.25in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;ICLRControl *pCLRControl = NULL;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in; TEXT-INDENT: 0.25in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;hr = pCLR-&amp;gt;GetCLRControl(&amp;amp;pCLRControl);&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in; TEXT-INDENT: 0.25in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;// Call SetAppDomainManagerType to associate our domain manager with &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in; TEXT-INDENT: 0.25in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;// the process&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in; TEXT-INDENT: 0.25in"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;pCLRControl-&amp;gt;SetAppDomainManagerType(&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 153pt; TEXT-INDENT: -9pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;L”BoatRaceHostRuntime, Version=1.0.0.0, &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;PublicKeyToken=5cf360b40180107c, culture=neutral”, &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;L"BoatRaceHostRuntime.BoatRaceDomainManager"&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 3.75in; TEXT-INDENT: 0.25in"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;// rest of main() omitted…&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Verdana','sans-serif'"&gt;This is incorrect.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #003399; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'"&gt;SetAppDomainManagerType&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Verdana','sans-serif'"&gt; must be called &lt;B style="mso-bidi-font-weight: normal"&gt;before&lt;/B&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #003399; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'"&gt;ICLRRuntimeHost::Start&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Verdana','sans-serif'"&gt;.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Here’ the corrected code sample:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;int main(int argc, wchar_t* argv[])&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// Initialize the CLR using CorBindToRuntimeEx.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This gets us &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;// the ICLRRuntimeHost pointer we’ll need to call Start.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;ICLRRuntimeHost *pCLR = NULL;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;HRESULT hr = CorBindToRuntimeEx(&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;L"v2.0.31113", &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;L"wks",&lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;STARTUP_CONCURRENT_GC, &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;CLSID_CLRRuntimeHost, &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;IID_ICLRRuntimeHost, &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;(PVOID*) &amp;amp;pCLR);&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&lt;/SPAN&gt;// Get a pointer to the ICLRControl interface&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in; TEXT-INDENT: 0.25in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;ICLRControl *pCLRControl = NULL;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in; TEXT-INDENT: 0.25in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;hr = pCLR-&amp;gt;GetCLRControl(&amp;amp;pCLRControl);&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in; TEXT-INDENT: 0.25in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;// Call SetAppDomainManagerType to associate our domain manager with &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in; TEXT-INDENT: 0.25in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;// the process&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in; TEXT-INDENT: 0.25in"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;pCLRControl-&amp;gt;SetAppDomainManagerType(&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 153pt; TEXT-INDENT: -9pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;L”BoatRaceHostRuntime, Version=1.0.0.0, &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;PublicKeyToken=5cf360b40180107c, culture=neutral”, &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;L"BoatRaceHostRuntime.BoatRaceDomainManager"&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 3.75in; TEXT-INDENT: 0.25in"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;// Start the CLR&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;hr = pCLR-&amp;gt;Start();&lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;o:p&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;// rest of main() omitted…&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=ProgList style="MARGIN: 0in -59.75pt 3pt 0.75in"&gt;&lt;SPAN style="COLOR: #003399"&gt;&lt;FONT face="Courier New"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Verdana','sans-serif'"&gt;Thanks,&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Verdana','sans-serif'"&gt;Steven&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN lang=EN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Rockwell','serif'; mso-ansi-language: EN"&gt;This posting is provided "AS IS" with no warranties, and confers no rights.&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Verdana','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1233949" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/stevenpr/archive/tags/Custominzing+the+CLR+book/default.aspx">Custominzing the CLR book</category></item><item><title>Book updates for Customizing the CLR</title><link>http://blogs.msdn.com/stevenpr/archive/2006/03/28/book-updates-for-customizing-the-clr.aspx</link><pubDate>Wed, 29 Mar 2006 04:53:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:563599</guid><dc:creator>stevenpr</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/stevenpr/comments/563599.aspx</comments><wfw:commentRss>http://blogs.msdn.com/stevenpr/commentrss.aspx?PostID=563599</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Releasing a book before the product on which it is based ships is always a risky proposition as product changes are inevitable, which may invalidate some of what you've written.&amp;nbsp; My situation is no exception.&amp;nbsp; I finished writing my &lt;A href="http://www.microsoft.com/MSPress/books/6895.asp" mce_href="http://www.microsoft.com/MSPress/books/6895.asp"&gt;book on advanced CLR programming techniques&lt;/A&gt; almost a year before version 2.0 of the .Net Framework was released.&amp;nbsp; Over time, various readers have pointed out places where the book is now inaccurate.&amp;nbsp; This post summarizes what's different and provides updated versions of all the book's samples.&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;&lt;B&gt;Chapter 7, Page 187.&lt;/B&gt; &lt;/FONT&gt;&lt;FONT face="Courier New" color=#000080 size=2&gt;System.Configuration&lt;/FONT&gt;&lt;FONT face=Verdana size=2&gt; should be in the list of assemblies the CLR unifies when an application is run.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;&lt;B&gt;Chapter 8, 196.&lt;/B&gt;&amp;nbsp; The &lt;/FONT&gt;&lt;FONT face="Courier New" color=#000080 size=2&gt;GetTextualIdentityFromFile&lt;/FONT&gt;&lt;FONT face=Verdana size=2&gt; and &lt;/FONT&gt;&lt;FONT face="Courier New" color=#000080 size=2&gt;GetTextualIdentityFromStream&lt;/FONT&gt;&lt;FONT face=Verdana size=2&gt; methods on &lt;/FONT&gt;&lt;FONT face="Courier New" color=#000080 size=2&gt;ICLRAssemblyIdentityManager&lt;/FONT&gt;&lt;FONT face=Verdana size=2&gt; are now called &lt;/FONT&gt;&lt;FONT face="Courier New" color=#000080 size=2&gt;GetBindingIdentityFromFile&lt;/FONT&gt;&lt;FONT face=Verdana size=2&gt; and &lt;/FONT&gt;&lt;FONT face="Courier New" color=#000080 size=2&gt;GetBindingIdentityFromStream&lt;/FONT&gt;&lt;FONT face=Verdana size=2&gt;.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;&lt;B&gt;Chapter 8, 209.&lt;/B&gt;&amp;nbsp; I suggest that the managed portion of the Cocoon host (the &lt;I&gt;CocoonHostRuntime&lt;/I&gt; assembly) could be included in the cocoon along with the files that constitute the application.&amp;nbsp;&amp;nbsp; While this is true, it's probably more of a hassle than it's worth because of security and evidence.&amp;nbsp; As described in Chapter 10, assemblies loaded from the cocoon are granted no evidence by default.&amp;nbsp; In order for them to run, the sample includes an implementation of &lt;/FONT&gt;&lt;FONT face="Courier New" color=#000080 size=2&gt;HostSecurityManager&lt;/FONT&gt;&lt;FONT face=Verdana size=2&gt; that assigns a custom piece of evidence which causes the Application Domain's security policy to grant at least enough permissions to allow the assemblies in the cocoon to execute.&amp;nbsp; The problem is the implementation of &lt;/FONT&gt;&lt;FONT face="Courier New" color=#000080 size=2&gt;HostSecurityManager&lt;/FONT&gt;&lt;FONT face=Verdana size=2&gt; that assigns the evidence and evaluates policy is contained in &lt;I&gt;CocoonHostRuntime&lt;/I&gt;.&amp;nbsp; As a result, when &lt;I&gt;CocoonHostRuntime&lt;/I&gt; is contained in the cocoon, it doesn't get permission to load.&amp;nbsp; Your classic "chicken and egg" problem....&amp;nbsp; You can work around this by modifying the machine's security policy to grant appropriate permissions to &lt;I&gt;CocoonHostRuntime&lt;/I&gt;, but this complicates the deployment of your host.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face=Verdana size=2&gt;&lt;B&gt;Chapter 14.&lt;/B&gt;&amp;nbsp; This chapter describes a set of hosting APIs you can use to integrate the CLR with an existing cooperative scheduling mechanism.&amp;nbsp; SQLServer 2005 is described as a host that has done this type of integration.&amp;nbsp; However, the SQLServer and CLR teams cut the ability to schedule the CLR onto SQL's fibers.&amp;nbsp; The hosting APIs described in the chapter still exist, but SQLServer doesn't use them.&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;In addition to these content changes, the book's samples could also use an update.&amp;nbsp; The updates can be found &lt;A href="http://www.airjockeys.com/msdn%20blog/booksamples.zip" mce_href="http://www.airjockeys.com/msdn%20blog/booksamples.zip"&gt;here&lt;/A&gt;.&amp;nbsp; Most of the samples are just rebuilt with the released version of Visual Studio 2005, which was generally straightforward.&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;However, one sample, the &lt;I&gt;AppDomainViewer&lt;/I&gt; sample from Chapter 5, has some worthwhile code changes.&amp;nbsp; There was a bug in the sample that caused the UI to not always be updated properly (I missed a case of &lt;/FONT&gt;&lt;FONT face="Courier New" color=#000080 size=2&gt;Control.Invoke&lt;/FONT&gt;&lt;FONT face=Verdana size=2&gt;!).&amp;nbsp; Also, there are some cases where the profiling APIs which are used to attach to processes sometimes fail to attach.&amp;nbsp; Thanks to &lt;A href="http://fasterbetter.weblogs.us/archives/035863.html" mce_href="http://fasterbetter.weblogs.us/archives/035863.html"&gt;Paul Perry&lt;/A&gt;, most of those cases have been identified and some better error handling code now catches these.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Thanks,&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Steven&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Rockwell size=2&gt;This posting is provided "AS IS" with no warranties, and confers no rights.&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=563599" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/stevenpr/archive/tags/Custominzing+the+CLR+book/default.aspx">Custominzing the CLR book</category></item></channel></rss>