<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.summsoft.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>VSTA Samples</title><link>http://blogs.summsoft.com/media/g/vsta_samples/default.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2008 SP1 (Build: 30619.63)</generator><item><title>ShapeAppBasicMFC with Document Entry Point</title><link>http://blogs.summsoft.com/media/p/1903.aspx</link><pubDate>Mon, 06 Jul 2009 19:04:50 GMT</pubDate><guid isPermaLink="false">ff090588-e3d7-4538-8ee9-e75ea04444bb:1903</guid><dc:creator>BillL</dc:creator><slash:comments>0</slash:comments><description>&lt;p class="MsoNormal"&gt;&lt;span style="line-height:200%;color:#1f497d;font-size:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:#1f497d;font-size:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span style="font-family:Calibri;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="line-height:200%;color:#1f497d;font-size:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:#1f497d;font-size:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span style="font-family:Calibri;"&gt;In this sample,&amp;nbsp;Melody modified the proxy to include an entry point for the CDocDrawing class (the CDocDrawing class was also modified to include events which become disassociated with ProxyGen- &lt;/span&gt;&lt;a href="http://www.summsoft.com/blogs/vstaqa/archive/2009/06/22/proxygen-has-an-inheritance-issue-with-com-hosts.aspx"&gt;&lt;span style="color:#800080;"&gt;&lt;span style="font-family:Calibri;"&gt;see this blog for related info on this bug&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Calibri;"&gt;) and the HostItemProvider to expose the CDocDrawing type.&amp;nbsp;&amp;nbsp;Melody also created a template for document level add-ins and used the template to create a sample add-in, ShapeAppMFCDocAddIn1.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="line-height:200%;color:#1f497d;font-size:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span style="font-family:Calibri;"&gt;To use this sample:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="line-height:200%;color:#1f497d;font-size:12pt;mso-fareast-font-family:Calibri;mso-bidi-font-family:Calibri;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span style="font-family:Calibri;"&gt;1)&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height:200%;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;color:#1f497d;font-size:12pt;mso-fareast-font-family:Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="line-height:200%;color:#1f497d;font-size:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span style="font-family:Calibri;"&gt;Remove the old proxy from the GAC by deleting or uninstalling C:\Windows\assembly\Proxy&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="line-height:200%;color:#1f497d;font-size:12pt;mso-fareast-font-family:Calibri;mso-bidi-font-family:Calibri;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span style="font-family:Calibri;"&gt;2)&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height:200%;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;color:#1f497d;font-size:12pt;mso-fareast-font-family:Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="line-height:200%;color:#1f497d;font-size:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span style="font-family:Calibri;"&gt;Remove any VSTA v 1 add-in assemblies by deleting %MyDocuments%\ShapeAppMFC&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="line-height:200%;color:#1f497d;font-size:12pt;mso-fareast-font-family:Calibri;mso-bidi-font-family:Calibri;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span style="font-family:Calibri;"&gt;3)&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height:200%;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;color:#1f497d;font-size:12pt;mso-fareast-font-family:Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="line-height:200%;color:#1f497d;font-size:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span style="font-family:Calibri;"&gt;Run the included setup file to register the host and updated templates (SetupShapeAppAdvancedMFC.js)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="line-height:200%;color:#1f497d;font-size:12pt;mso-fareast-font-family:Calibri;mso-bidi-font-family:Calibri;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span style="font-family:Calibri;"&gt;4)&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height:200%;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;color:#1f497d;font-size:12pt;mso-fareast-font-family:Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="line-height:200%;color:#1f497d;font-size:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span style="font-family:Calibri;"&gt;Build the ShapeAppAdvancedMFC.sln solution, this includes the document level sample add-in.&amp;nbsp; This will register the updated proxy in the GAC and build the add-in assembly.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="line-height:200%;color:#1f497d;font-size:12pt;mso-fareast-font-family:Calibri;mso-bidi-font-family:Calibri;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span style="font-family:Calibri;"&gt;5)&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height:200%;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;color:#1f497d;font-size:12pt;mso-fareast-font-family:Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="line-height:200%;color:#1f497d;font-size:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span style="font-family:Calibri;"&gt;Run the sample and notice the message box and shape added from the document level add-in.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="line-height:200%;color:#1f497d;font-size:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span style="font-family:Calibri;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="line-height:200%;color:#1f497d;font-size:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span style="font-family:Calibri;"&gt;Here are the changes I made to add this functionality:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="line-height:200%;color:#1f497d;font-size:12pt;mso-fareast-font-family:Calibri;mso-bidi-font-family:Calibri;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span style="font-family:Calibri;"&gt;1)&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height:200%;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;color:#1f497d;font-size:12pt;mso-fareast-font-family:Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="line-height:200%;color:#1f497d;font-size:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span style="font-family:Calibri;"&gt;HostItemProvider&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="line-height:200%;color:#1f497d;font-size:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span style="font-family:Calibri;"&gt;Unchanged code excluded&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;internal&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;class&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#2b91af;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;HostItemProvider&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; : &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#2b91af;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;IHostItemProvider&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;span style="font-size:small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;public&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; HostItemProvider(ShapeApp.Proxy.&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#2b91af;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Application&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; application)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;span style="font-size:small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#008000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;//SUMMIT- add drawing level HIP&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#008000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;//store the active drawing&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;this&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;.drawing = application.ActiveDrawing;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;span style="font-size:small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;span style="font-size:small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;public&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;object&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; GetHostObject(&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#2b91af;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Type&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; primaryType, &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;string&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; primaryCookie)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;span style="font-size:small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#008000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;//Check if primaryType is supported.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;else&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;if&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; (primaryType == &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;typeof&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;(ShapeApp.Proxy.&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#2b91af;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;CDrawingDoc&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;span style="font-size:small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#008000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;//SUMMIT- add drawing level HIP&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#008000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;// update the drawing to ensure the current active drawing is returned&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;this&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;.drawing = application.ActiveDrawing;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;return&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;this&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;.drawing;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;span style="font-size:small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;span style="font-size:small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;span style="font-size:small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#008000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;//SUMMIT- add drawing level HIP&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#008000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;//store the active drawing&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;private&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; ShapeApp.Proxy.&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#2b91af;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;CDrawingDoc&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; drawing;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;span style="font-size:small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;}&lt;/span&gt;&lt;span style="color:#1f497d;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="line-height:200%;color:#1f497d;font-size:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span style="font-family:Calibri;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="line-height:200%;color:#1f497d;font-size:12pt;mso-fareast-font-family:Calibri;mso-bidi-font-family:Calibri;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span style="font-family:Calibri;"&gt;2)&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height:200%;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;color:#1f497d;font-size:12pt;mso-fareast-font-family:Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="line-height:200%;color:#1f497d;font-size:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span style="font-family:Calibri;"&gt;Proxy and descriptor file&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="line-height:200%;color:#1f497d;font-size:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span style="font-family:Calibri;"&gt;Descriptor file:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="line-height:200%;font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;font-size:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;Class&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#ff0000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;originalFullyQualifiedName&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;=&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;ShapeApp.Proxy.CDrawingDoc&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#ff0000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;GUID&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;=&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;6CBD1873-21F4-4386-B9BA-62555B7BCC12&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#ff0000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;SourceInterfaceGUID&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;=&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;CB42B8DA-44B1-4AAA-AFCC-7AFF84A5A481&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#ff0000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;isExcluded&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;=&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;false&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="text-decoration:underline;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#ff0000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;isAddInEntryPoint&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="text-decoration:underline;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="text-decoration:underline;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="text-decoration:underline;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;true&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="text-decoration:underline;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="line-height:200%;font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;font-size:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="line-height:200%;color:#1f497d;font-size:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span style="font-family:Calibri;"&gt;Proxy File:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="line-height:200%;font-family:&amp;#39;Courier New&amp;#39;;color:#000000;font-size:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;public&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;partial&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;class&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#2b91af;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;CDrawingDocEntryPoint&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; : &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;global&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;::Microsoft.VisualStudio.Tools.Applications.Runtime.&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#2b91af;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;IExtendedEntryPoint&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#008000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;/*entry point class code*/&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;}&lt;/span&gt;&lt;span style="color:#1f497d;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="line-height:200%;color:#1f497d;font-size:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span style="font-family:Calibri;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="line-height:200%;color:#1f497d;font-size:12pt;mso-fareast-font-family:Calibri;mso-bidi-font-family:Calibri;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span style="font-family:Calibri;"&gt;3)&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height:200%;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;color:#1f497d;font-size:12pt;mso-fareast-font-family:Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="line-height:200%;color:#1f497d;font-size:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span style="font-family:Calibri;"&gt;Template&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="line-height:200%;color:#1f497d;font-size:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span style="font-family:Calibri;"&gt;AppAddIn.designer.xml:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#ff0000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;hostitem:baseType&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;=&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;ShapeApp.Proxy.CDrawingDocEntryPoint&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="line-height:200%;color:#1f497d;font-size:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span style="font-family:Calibri;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="line-height:200%;color:#1f497d;font-size:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span style="font-family:Calibri;"&gt;misc changes to vstemplate file for updated project name and description&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="line-height:200%;color:#1f497d;font-size:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span style="font-family:Calibri;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="line-height:200%;color:#1f497d;font-size:12pt;mso-fareast-font-family:Calibri;mso-bidi-font-family:Calibri;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span style="font-family:Calibri;"&gt;4)&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height:200%;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;color:#1f497d;font-size:12pt;mso-fareast-font-family:Calibri;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="line-height:200%;color:#1f497d;font-size:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span style="font-family:Calibri;"&gt;Add-in&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="line-height:200%;color:#1f497d;font-size:12pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span style="font-family:Calibri;"&gt;No code changes required based on updated template, here is the code from the add-in&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;private&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;void&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; AppAddIn_Startup(&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;object&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; sender, &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#2b91af;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;EventArgs&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt; e)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;span style="font-size:small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Windows.Forms.&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#2b91af;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;MessageBox&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;.Show(&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;quot;Document level add-in loaded&amp;quot;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;this&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;.Shapes.Add(&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;this&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;.Application.AvailableShapes[0].Clone());&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#000000;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style="color:#1f497d;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description><enclosure url="http://blogs.summsoft.comftp://ftp.summsoft.com/vsta/ShapeAppBasicMFC_w_DocEP.zip" length="-1" type="application/x-compressed" /></item><item><title>ShapeApp_DynamicProgrammingModel_Packaging_SeamlessNonDestructiveDebugging_CSharp Sample</title><link>http://blogs.summsoft.com/media/p/1725.aspx</link><pubDate>Tue, 07 Apr 2009 18:18:26 GMT</pubDate><guid isPermaLink="false">ff090588-e3d7-4538-8ee9-e75ea04444bb:1725</guid><dc:creator>Melody</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;span style="font-size:small;font-family:arial,helvetica,sans-serif;"&gt;Based on the SDK ShapeAppDynamicProgrammingModelCSharp sample, this updated sample demonstrates packaging VSTA DPM add-ins in the associated document including both the source code and compiled add-in.&amp;nbsp; This sample also features the same Seamless Non-Destructive Debugging experience as seen in the ShapeAppMacroRecordingCSharp sample.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;font-family:Arial;"&gt;Related Links:&lt;br /&gt;&lt;a href="http://www.summsoft.com/blogs/videos/archive/2009/04/07/vsta-and-packaging.aspx" title="Summit Video Blog"&gt;Summit:&amp;nbsp; Packaging Video&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;font-family:Arial;"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc175731.aspx" title="MSDN VSTA SDK"&gt;MSDN:&amp;nbsp; Add-in Debugging&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;font-family:Arial;"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc175988.aspx" title="MSDN VSTA SDK"&gt;MSDN:&amp;nbsp; DPM Walkthrough&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;font-family:Arial;"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.io.packaging.aspx" title="MSDN Library"&gt;MSDN:&amp;nbsp; System.IO.Packaging&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;font-family:Arial;"&gt;&lt;a href="http://blogs.msdn.com/brian_jones/archive/2005/06/06/425750.aspx" title="MSDN Blog"&gt;MSDN:&amp;nbsp; Office Packaging&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;font-family:Arial;"&gt;&lt;/span&gt;&lt;span style="font-size:small;font-family:Arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;</description><enclosure url="http://blogs.summsoft.com/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.00.17.25/ShapeApp_5F00_DPM_5F00_Packaging_5F00_SNDD_5F00_CSharp.zip" length="988863" type="application/x-zip-compressed" /></item><item><title>MyAppVB6_VSTA2_Integration</title><link>http://blogs.summsoft.com/media/p/1721.aspx</link><pubDate>Mon, 06 Apr 2009 17:38:49 GMT</pubDate><guid isPermaLink="false">ff090588-e3d7-4538-8ee9-e75ea04444bb:1721</guid><dc:creator>Melody</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;span style="font-size:small;font-family:arial,helvetica,sans-serif;"&gt;This sample demonstrates a VB6 VSTA v 2.0&amp;nbsp;integration using a VB.Net integration library.&amp;nbsp; Below is from the included READ ME.doc&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;font-family:arial,helvetica,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; There are many ways to integrate VSTA v 2.0 with a VB6 application.&amp;nbsp; This sample demonstrates an advanced integration option (with seamless non-destructive debugging but no macro management) which closely follows the integration code from the SDK samples.&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;font-family:arial,helvetica,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A COM visible library, VSTA2_Integration, is referenced by the VB6 host application, MyAppVB6.&amp;nbsp; The VSTA2_Integration library exposes the classes VSTARunTimeIntegration and VstaDesignTimeIntegration.&amp;nbsp; The VB6 host first creates and connects to its VSTARunTimeIntegration instance passing in the object to be used as an entry point (see definition below) for add-ins through the VSTARunTimeIntegration.Connect method.&amp;nbsp; Then the VB6 host creates and connects to its VSTADesignTimeIntegration instance passing in the VSTARunTimeIntegration instance through the VSTADesignTimeIntegration.Connect method.&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;font-family:arial,helvetica,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This host object (passed in through the VSTARunTimeIntegration.Connect method) is stored in the internal VSTA2_Integration.HostItemProvider (see definition below) which is passed into the add-ins through the VSTA pipeline.&amp;nbsp; Once the host object is passed through the pipeline, it is stored in the add-in in a hidden code file and accessed through &amp;ldquo;Me&amp;rdquo; or &amp;ldquo;Me.Application&amp;rdquo; (see section on templates below).&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;font-family:arial,helvetica,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The VSTARunTimeIntegration.Connect method makes calls to load add-ins and the VSTARunTimeIntegration.Disconnect method makes calls to unload add-ins.&amp;nbsp; The VB6 host calls the VSTARunTimeIntegration.Connect method on form load, and VSTARunTimeIntegration.Disconnect on form unload.&amp;nbsp; This can easily be changed so that add-ins can be loaded and unloaded by selecting a button on the host.&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;font-family:arial,helvetica,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The DesignTimeIntegration.Connect method takes in and stores the VSTARunTimeIntegration instance and prepares for IDE management.&amp;nbsp; The DesignTimeIntegration.ShowIDE method displays the IDE with a new or existing VSTA project open.&amp;nbsp; The DesignTimeIntegration.Disconnect method disposes of the IDE.&amp;nbsp; The VB6 host calls the DesignTimeIntegration.Connect on form load and the DesignTimeIntegration.Disconnect on form unload.&amp;nbsp; It is not advisable to change this.&amp;nbsp; The ShowIDE method is called through a button on the VB6 host.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;font-family:arial,helvetica,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This sample does not use a proxy or HostTypeMapProvider, instead a &amp;ldquo;proxy shim&amp;quot; is included in the add-in to provide a MyAppVB6 entry point.&amp;nbsp; This class is defined in the hidden AppAddIn.designer2.xx file included with the project templates.&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;font-family:arial,helvetica,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Two sets of templates are included with this sample.&amp;nbsp; The &amp;ldquo;MyAppVB6_VSTA2_Template_Robust.zip&amp;rdquo; templates allow the add-in to access the host object through &amp;ldquo;Me&amp;rdquo; or &amp;ldquo;this&amp;rdquo;.&amp;nbsp; The &amp;ldquo;MyAppVB6_VSTA2_Template.zip&amp;rdquo; templates allow the add-in to access the host object through &amp;ldquo;Me.Application&amp;rdquo; or &amp;ldquo;this.Application&amp;rdquo;.&amp;nbsp; For the robust templates, the hidden file AppAddIn.designer2.xx contains code which re-implements/exposes some or all of the entry point type from the VB6 host.&amp;nbsp; The only benefit to this additional code is it allows the host object to be accessed more directly through &amp;ldquo;Me&amp;rdquo; or &amp;ldquo;this&amp;rdquo; instead less directly through &amp;ldquo;Me.Application&amp;rdquo; or &amp;ldquo;this.Application&amp;rdquo;.&amp;nbsp; Which type of template to use is a design decision.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;font-family:arial,helvetica,sans-serif;"&gt;To use this sample:&lt;br /&gt;&amp;nbsp;&amp;nbsp; 1)&amp;nbsp;&amp;nbsp; Extract the sample to C:\VSTA.&amp;nbsp; If a different location is used the GeneratePIA files will need to be altered.&lt;br /&gt;&amp;nbsp;&amp;nbsp; 2)&amp;nbsp;&amp;nbsp; Run the included setup file Setup_MyAppVB6_VSTA2.js. This registers the host with VSTA and extracts the project templates.&lt;br /&gt;&amp;nbsp;&amp;nbsp; 3)&amp;nbsp;&amp;nbsp; Open and build the VSTA2_Integration solution.&amp;nbsp; Building this will register the library in the GAC.&lt;br /&gt;&amp;nbsp;&amp;nbsp; 4)&amp;nbsp;&amp;nbsp; Open the MyAppVB6 solution and build the MyAppVB6.exe.&lt;br /&gt;&amp;nbsp;&amp;nbsp; 5)&amp;nbsp;&amp;nbsp; Run the GeneratePIA.bat file to generate a PIA for the MyAppVB6.exe created above.&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; 6)&amp;nbsp;&amp;nbsp; Open and build the sample add-ins included.&lt;br /&gt;&amp;nbsp;&amp;nbsp; 7)&amp;nbsp;&amp;nbsp; Run the host from the exe, a sample add-in, or the VSTA2_Integration solution.&lt;br /&gt;&amp;nbsp;&amp;nbsp; 8)&amp;nbsp;&amp;nbsp; Select ShowIDE to launch the IDE.&lt;br /&gt;&amp;nbsp;&amp;nbsp; 9)&amp;nbsp;&amp;nbsp;&amp;nbsp;Add code to the start-up method of the macro project and set a break point.&lt;br /&gt;&amp;nbsp;&amp;nbsp; 10)&amp;nbsp; Begin debugging to hit the break point set above.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;font-family:arial,helvetica,sans-serif;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;font-family:arial,helvetica,sans-serif;"&gt;To use this sample to integrate VSTA v 2 into your VB6 host, you will need to:&lt;br /&gt;&amp;nbsp;&amp;nbsp; 1)&amp;nbsp;Update your host to reference and use the VSTA2_Integration library.&lt;br /&gt;&amp;nbsp;&amp;nbsp; 2)&amp;nbsp;Generate a PIA for your host.&amp;nbsp; This must be regenerated every time the exe is recreated because VB6 reassigns GUID&amp;rsquo;s with each build.&lt;br /&gt;&amp;nbsp;&amp;nbsp; 3)&amp;nbsp;Register your host with VSTA by adding registry values (see SDK)&lt;br /&gt;&amp;nbsp;&amp;nbsp; 4)&amp;nbsp;Update the project templates.&amp;nbsp; The minimum update required includes:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a.&amp;nbsp;HostID- in the xxproj files update the HostID&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b.&amp;nbsp;Debug location- in the xxproj files update the DebugInfoExeName with the location of your host&amp;rsquo;s exe.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c.&amp;nbsp;Reference- in the xxproj files update the reference to MyAppVB6.dll with your host&amp;rsquo;s PIA.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d.&amp;nbsp;Entry point-&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i.&amp;nbsp;the types in AppAddIn.designer2.xx files&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ii.&amp;nbsp;basetype node in the AppAddIn.designer.xml file with the EntryPoint type used in the AppAddIn.designer2.xx file.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *once all project template updates are complete re-zip the template using no subfolders.&lt;br /&gt;&amp;nbsp;&amp;nbsp; 5)&amp;nbsp;Move the updated project templates to the ProjectTemplatesLocation used to register your host with VSTA.&lt;br /&gt;&amp;nbsp;&amp;nbsp; 6)&amp;nbsp;Run vsta setup for the host.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;font-family:arial,helvetica,sans-serif;"&gt;Definitions:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:small;font-family:arial,helvetica,sans-serif;"&gt;&lt;br /&gt;Entry Point-&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; An entry point is a type that is instantiated when the host application loads an add-in. The entry point also contains methods that can be called by the host application to initialize the add-in. Typically, the entry point is a host type that lives at the top of the object model hierarchy, such as an Application class that represents the host application, or a Document class that represents a document in the application.&lt;br /&gt;An entry point is also the base class for a host item in the add-in developer&amp;#39;s project. A host item is a class that provides a starting point for add-in developers to write their code, and is the class that add-in developers use to obtain all other objects that they use to automate the host application. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;font-family:arial,helvetica,sans-serif;"&gt;HostItemProvider-&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A host item provider is a class that exposes host objects to add-ins. This class implements the IHostItemProvider interface in the host application. This interface defines a single method, GetHostObject. This method returns an instance of a type in the object model of the host application that corresponds to an entry point in the add-in. &lt;br /&gt;When the host application loads an add-in, each entry point in the add-in calls the GetHostObject method to obtain an instance of its corresponding type in the host application. Each time the add-in calls a member of the entry point, the member uses this object to call into the corresponding member of the object in the host application. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:small;font-family:arial,helvetica,sans-serif;"&gt;*KNOWN ISSUES&lt;br /&gt;1)&amp;nbsp;VB6 event hook-ups can be lost through garbage collection as well as creating or showing a System.Windows.Forms object when the event is triggered.&amp;nbsp; We are working with Microsoft to resolve this issue.&amp;nbsp; For more information see the thread &amp;ldquo;&lt;a href="http://social.msdn.microsoft.com/Forums/en-US/vbinterop/thread/423e96bc-fdc7-4a74-a5e6-a63d64b3584b/" title="MSDN Forum Post"&gt;VB6 event hookups dissappearing after X iterations, then throwing RCW error on event disconnect&lt;/a&gt;&amp;rdquo; on the &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/vbinterop/threads" title="MSDN Forum"&gt;MSDN Visual Basic Interop and Upgrade forum&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style="font-size:small;font-family:arial,helvetica,sans-serif;"&gt;This issue was resolved by keeping a local instance of the source of the event. For details refer to the thread mentioned above or the blog &lt;a title="Summit Blog:  Saving DTE and other COM Event Hook-ups" href="http://www.summsoft.com/blogs/melodys_vsta_blog/archive/2009/04/29/saving-dte-and-other-com-event-hook-ups.aspx"&gt;Saving DTE and other COM Event Hook-ups&lt;/a&gt;.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;font-family:arial,helvetica,sans-serif;"&gt;2)&amp;nbsp;After performing actions in the IDE such as building the host application&amp;rsquo;s exe will stay up after the host is closed.&amp;nbsp; We are working to resolve this issue and will post an update on &lt;/span&gt;&lt;a href="http://www.summsoft.com/" title="Summit Software"&gt;&lt;span style="font-size:small;font-family:arial,helvetica,sans-serif;"&gt;www.Summsoft.com&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:small;font-family:arial,helvetica,sans-serif;"&gt; when a workaround is available.&lt;/span&gt;&lt;/p&gt;</description><enclosure url="http://blogs.summsoft.com/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.00.17.21/MyAppVB6_5F00_VSTA2_5F00_Integration.zip" length="393805" type="application/x-zip-compressed" /></item><item><title>In Process Host Demo Sample</title><link>http://blogs.summsoft.com/media/p/1711.aspx</link><pubDate>Wed, 11 Mar 2009 17:40:18 GMT</pubDate><guid isPermaLink="false">ff090588-e3d7-4538-8ee9-e75ea04444bb:1711</guid><dc:creator>Melody</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;span style="font-size:small;font-family:arial,helvetica,sans-serif;"&gt;
&lt;p&gt;This IPH sample is designed to work with the included modified ShapeAppMacroRecordingCSharp sample. This modified sample uses the &amp;ldquo;ShapeAppCSharp-AppLevel IPH&amp;rdquo; template instead of the &amp;ldquo;ShapeAppCSharp-AppLevel&amp;rdquo; template included with the SDK.&lt;/p&gt;
&lt;p&gt;To use this sample:&lt;/p&gt;
&lt;p&gt;1) Extract the files to C:\ShapeAppSamplesCSharp (any location may be used).&lt;/p&gt;
&lt;p&gt;2) Run the included setup file &amp;ldquo;SetupShapeAppMacroRecordingCSharp.js&amp;rdquo;, this will register the IPH and project templates.&lt;/p&gt;
&lt;p&gt;3) Open and build the &amp;ldquo;ShapeAppMacroRecordingCSharp IPH.sln&amp;rdquo; solution.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;This will register the proxy and IPH in the GAC.&lt;/p&gt;
&lt;p&gt;4) Remove any existing macro projects from %MyDocuments%\ShapeAppCSharp, this will force the sample to create a new macro project based on the IPH enabled project template.&lt;/p&gt;
&lt;p&gt;5) Save a copy of the CurrentSettings.vssettings file under %MyDocuments%\ShapeAppCSharp\Settings. This step is optional, the IPH does return most the IDE settings to the previous state, but you may want to return to all of the previous settings.&lt;/p&gt;
&lt;p&gt;6) Run the host and launch the IDE.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Use the custom toolbar to add a macro, build the macro project, and switch to the host and run the macro; add code to the startup method and debug.&lt;/p&gt;
&lt;p&gt;To use this IPH with your host:&lt;/p&gt;
&lt;p&gt;1) Register the IPH under the VSTAHostConfig\%HostID%. &lt;br /&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VSTAHostConfig\%HostID%\2.0\VSTA\InProcHost\{6E7D6667-7F30-4058-8F83-E5772B831217}] &lt;br /&gt;&amp;quot;FullClassName&amp;quot;=&amp;quot;IPH_Demo.IPH_Demo&amp;quot; &lt;br /&gt;&amp;quot;Assembly&amp;quot;=&amp;quot;IPH_Demo, Version=1.0.0.0, Culture=neutral, PublicKeyToken=4b82402396be3cb2&amp;quot;&lt;/p&gt;
&lt;p&gt;2) Update a project or project template to use the IPH by specifying the GUID as below in the xxproj file.&lt;br /&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;"&gt;InProcHost&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="font-size:small;"&gt;{6E7D6667-7F30-4058-8F83-E5772B831217}&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;InProcHost&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-size:small;"&gt;&amp;gt;&lt;br style="mso-special-character:line-break;" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;3) Register the IPH in the GAC- building the solution should register it.&lt;/p&gt;
&lt;p&gt;Note: This IPH &lt;i&gt;greatly&lt;/i&gt; simplifies the IDE to demonstrate the customizations which are possible. These simplifications include removing the standard and debug toolbars as well as closing all windows including the errors pane.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;These modifications are made to demonstrate the possibilities, not to actually suggest you should limit the IDE to this extent- without these toolbars and windows it is very difficult to work in the IDE&lt;/p&gt;
&lt;p&gt;&lt;a title="Summit Video:  IPH Demo" href="http://www.summsoft.com/blogs/videos/archive/2009/03/11/IPH-Demo_3A00_-Simplifying-the-IDE.aspx"&gt;Video for this sample&lt;/a&gt;&lt;/p&gt;
&lt;span&gt;***Updated 4/2/09&amp;nbsp;for bug fix.&amp;nbsp; Call to&amp;nbsp;ClostAllWindows moved to beginning of SimplifyIDE method to avoid a &amp;quot;Ghost pane&amp;quot; on first IDE launch.&amp;nbsp; For more information this, see&amp;nbsp;this &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/vsx/thread/34f245d6-3800-4954-a94d-a6a2a3404f0c" title="MSDN VSX Forum Post"&gt;VSX forum post&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description><enclosure url="http://blogs.summsoft.com/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.00.17.11/ShapeAppMacroRecordingCSharp-IPH-Demo.zip" length="1380255" type="application/x-zip-compressed" /></item><item><title>ShapeAppBasicCSharp AddInDiscoveryAlternative</title><link>http://blogs.summsoft.com/media/p/1660.aspx</link><pubDate>Tue, 27 Jan 2009 19:18:00 GMT</pubDate><guid isPermaLink="false">ff090588-e3d7-4538-8ee9-e75ea04444bb:1660</guid><dc:creator>Melody</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;span style="font-size:small;font-family:arial,helvetica,sans-serif;"&gt;This sample is a modified version of the SDK ShapeAppBasicCSharp sample demonstrating a different add-ins discovery scenario.&amp;nbsp; No add-ins are loaded automatically, instead the default add-in location (%MyDocs%\ShapeAppCSharp\AppAddIns) is searched and any add-ins found are added to a list.&amp;nbsp; This list of discovered add-ins is displayed on a form which the user can load or unload the add-ins from.&amp;nbsp; The user may also use this form to discover add-ins from other locations.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;font-family:arial,helvetica,sans-serif;"&gt;Three add-ins are included with this sample- two use the default post build event which copies the add-in assemblies to the default search location, the other uses a modified post build event to copy the add-in assembly to an alternate location (%MyDocs%\ShapeAppCSharp\AppAddIns).&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;font-family:arial,helvetica,sans-serif;"&gt;&lt;br /&gt;To use this sample, run the included setup file then open and build ShapeAppBasicCSharp.sln.&amp;nbsp; This will take care of registering the ShapeAppCSharp host with VSTA, registering the proxy, and building/moving the add-ins.&lt;/span&gt;&lt;span style="font-size:small;font-family:arial,helvetica,sans-serif;"&gt;&lt;/span&gt;&lt;/p&gt;</description><enclosure url="http://blogs.summsoft.com/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.00.16.60/ShapeAppBasicCSharp-AddInDiscoveryAlternative.zip" length="690295" type="application/x-zip-compressed" /></item><item><title>ShapeAppBasicCSharpGenericCollectionIndexAdapter  Sample</title><link>http://blogs.summsoft.com/media/p/1658.aspx</link><pubDate>Mon, 26 Jan 2009 21:28:14 GMT</pubDate><guid isPermaLink="false">ff090588-e3d7-4538-8ee9-e75ea04444bb:1658</guid><dc:creator>Gary</dc:creator><slash:comments>0</slash:comments><description>&lt;p style="margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;" class="MsoNormal"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="font-size:12pt;color:black;line-height:115%;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;mso-no-proof:yes;"&gt;Continuing from our previous ShapeAppBasicCSharpGenericCollectionAdapter sample, we will demonstrate how to pass a&lt;/span&gt;&lt;span style="font-size:small;"&gt; System.Collections.Generic.IList&amp;lt;ShapeAppCSharp.&lt;span style="color:#2b91af;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt; Document&lt;/span&gt; &lt;span style="font-size:12pt;line-height:115%;font-family:&amp;#39;;"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:12pt;color:black;line-height:115%;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;mso-no-proof:yes;"&gt;instance, as a &amp;lsquo;by reference&amp;rsquo; parameter, from an AddIn to&amp;nbsp; ShapeAppBasicCSharp host application.&amp;nbsp; This is accomplished by extending the VSTA pipeline with generic list adapters and converters that provide Host application with a (cross-AppDomain) reference to a generic collection passed from a VSTA AddIn.&amp;nbsp; The host application will, in-turn, populate the AddIn collection parameter with host-side Document objects (as RemoteObject instances).&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="font-size:12pt;color:black;line-height:115%;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;mso-no-proof:yes;"&gt;
&lt;p style="margin:0in 0in 10pt;line-height:normal;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;" class="MsoNormal"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="font-size:12pt;color:black;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;mso-no-proof:yes;"&gt;To illustrate, here&amp;#39;s an add-in example calling&lt;/span&gt;&lt;span style="font-size:12pt;font-family:&amp;#39;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:blue;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;this&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;[&lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;Document&lt;/span&gt;), doctypedocs];:&lt;/span&gt;&lt;span style="font-size:7.5pt;color:black;font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt;line-height:normal;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-size:12pt;color:black;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; AppAddIn_Startup(&lt;span style="color:blue;"&gt;object&lt;/span&gt; sender, &lt;span style="color:#2b91af;"&gt;EventArgs&lt;/span&gt; e)&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt;line-height:normal;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt;line-height:normal;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt;line-height:normal;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;IList&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;Document&lt;/span&gt;&amp;gt; doctypedocs = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;Document&lt;/span&gt;&amp;gt;();&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt;line-height:normal;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;strong&gt;&lt;span style="color:blue;"&gt;int&lt;/span&gt; count = &lt;span style="color:blue;"&gt;this&lt;/span&gt;[&lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;Document&lt;/span&gt;), doctypedocs];&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt;line-height:normal;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;testdoc = doctypedocs[0];&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt;line-height:normal;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;string&lt;/span&gt; dwgName2 = doctypedocs[0].Drawings[0].Name;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt;line-height:normal;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;span style="font-size:7.5pt;color:black;font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt;line-height:normal;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;" class="MsoNormal"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="font-size:12pt;color:black;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;mso-no-proof:yes;"&gt;Our&amp;nbsp;design goal is for the Add-in author to pass a generic collection parameter to the host application and receive it back populated with host elements.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;In this case, we&amp;rsquo;re using the generic collection&lt;/span&gt;&lt;span style="font-size:7.5pt;font-family:&amp;#39;;"&gt; ( &lt;/span&gt;&lt;span style="font-size:12pt;font-family:&amp;#39;;"&gt;System.Collections.Generic.&lt;/span&gt;&lt;span style="font-size:12pt;font-family:&amp;#39;;"&gt;IList&lt;/span&gt;&lt;span style="font-size:12pt;font-family:&amp;#39;;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size:12pt;font-family:&amp;#39;;"&gt;Document&lt;/span&gt;&lt;span style="font-size:12pt;color:black;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;mso-no-proof:yes;"&gt;&amp;gt;) as the parameter passed to the host.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description><enclosure url="http://blogs.summsoft.com/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.00.16.58/ShapeAppCSharpGenericCollectionIndexAdapter.zip" length="747115" type="application/x-zip-compressed" /></item><item><title>ShapeAppBasicCSharpGenericCollectionAdapter  sample hooks VSTA pipeline to pass custom type: IList&lt;Document&gt;</title><link>http://blogs.summsoft.com/media/p/1640.aspx</link><pubDate>Mon, 19 Jan 2009 21:33:16 GMT</pubDate><guid isPermaLink="false">ff090588-e3d7-4538-8ee9-e75ea04444bb:1640</guid><dc:creator>Gary</dc:creator><slash:comments>0</slash:comments><description>&lt;p style="margin:0in 0in 0pt;line-height:normal;" class="MsoNormal"&gt;&lt;span style="font-size:12pt;font-family:&amp;#39;;"&gt;&lt;span style="font-family:Calibri;"&gt;Based on The MS VSTA architects&amp;#39;&amp;nbsp;&lt;/span&gt;&lt;a href="http://blogs.msdn.com/sandeep_bhatia/"&gt;&lt;span style="color:#800080;font-family:Calibri;"&gt;blog post&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Calibri;"&gt;, this sample (created from ShapeAppBasicCSharp) uses custom adapters&amp;nbsp;in the VSTA pipeline, to pass generic collections of documents to the add-in:&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:12pt;color:black;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt;line-height:normal;" class="MsoNormal"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="font-size:12pt;font-family:&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size:12pt;color:black;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt;line-height:normal;" class="MsoNormal"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;;"&gt;IList&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;;"&gt;Document&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;;"&gt;&amp;gt; documents = &lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;;"&gt;this&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;;"&gt;.GetDocuments();&lt;/span&gt;&lt;span style="font-size:12pt;color:black;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt;line-height:normal;" class="MsoNormal"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size:12pt;color:black;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt;line-height:normal;" class="MsoNormal"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="font-size:12pt;font-family:&amp;#39;;"&gt;The sample is fairly straightforward and comes with a walk-through&amp;nbsp;document supplement (ShapeAppBasicCSharpGenericCollectionAdapter.doc) to help you understand, install, and run the sample and to point out interesting parts in the sample.&lt;/span&gt;&lt;span style="font-size:small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description><enclosure url="http://blogs.summsoft.com/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.00.16.40/ShapeAppCSharpGenericCollectionAdapter.zip" length="729267" type="application/x-zip-compressed" /></item><item><title>Simple C# Sample HelloWorld_VSTA2</title><link>http://blogs.summsoft.com/media/p/1614.aspx</link><pubDate>Wed, 07 Jan 2009 15:49:21 GMT</pubDate><guid isPermaLink="false">ff090588-e3d7-4538-8ee9-e75ea04444bb:1614</guid><dc:creator>Melody</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;This is a very simple &amp;quot;Hello World&amp;quot; style applicaiton written in C# with a basic VSTA v 2 integration.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;From the READ ME.txt file:&lt;/p&gt;
&lt;p&gt;To Use This Sample:&lt;br /&gt;1)&amp;nbsp; Extract the zip file in C:\VSTA\Summit Software\Samples- if a different location is used the templates must be updated with the locatoin of HelloWorld_VSTA2.exe&lt;br /&gt;2)&amp;nbsp; Run the included setup file&lt;br /&gt;3)&amp;nbsp; Build the host- this will install the proxy in the GAC&lt;br /&gt;4)&amp;nbsp; Build the sample add-ins&lt;br /&gt;5)&amp;nbsp; Run the host- note &amp;quot;Hello:&amp;nbsp; From VSTA&amp;quot; appears from both sample add-ins&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Basic Integration Steps using tools from Summsoft.com&lt;br /&gt;1)&amp;nbsp; Compile host&lt;br /&gt;2)&amp;nbsp; Create Proxy&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Run host through AutoProxyGen- input file included&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Specify EntryPont&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Create Proxy project (from project template) adding proxy file created with AutoProxyGen&lt;br /&gt;3)&amp;nbsp; Register host&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Add registry entries- registration file included&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Run VSTA setup to complete registration&lt;br /&gt;4)&amp;nbsp; Create ProjectTemplate with ProjectGen- input file included&lt;br /&gt;5)&amp;nbsp; Modify host to discover and load add-ins&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Add VstaRunTimeIntegration from item template- update type and add-in location&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Add HostItemProvider from item template- update type&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Add HostTypeMapProvider created by AutoProxyGen&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;For BasicIntegrations without using tools from Summsoft.com refer to the SDK&lt;/p&gt;</description><enclosure url="http://blogs.summsoft.com/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.00.16.14/HelloWorld_5F00_VSTA2.zip" length="363598" type="application/x-zip-compressed" /></item><item><title>UpgradeHelper Sample</title><link>http://blogs.summsoft.com/media/p/1536.aspx</link><pubDate>Thu, 04 Dec 2008 19:51:48 GMT</pubDate><guid isPermaLink="false">ff090588-e3d7-4538-8ee9-e75ea04444bb:1536</guid><dc:creator>Melody</dc:creator><slash:comments>0</slash:comments><description>&lt;p class="MsoNormal"&gt;&lt;span style="color:#1f497d;"&gt;&lt;span style="font-size:small;font-family:Calibri;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="color:#1f497d;"&gt;&lt;span style="font-size:small;font-family:Calibri;"&gt;To support VSTA v 1 projects in VSTA v 2 you need to create and register an &lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc175886.aspx" title="MSDN:  Migrating Add-in Projects"&gt;&lt;span style="font-size:small;font-family:Calibri;"&gt;UpgradeHelper&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;This helper is triggered when a VSTA v 1 project is opened in the VSTA v 2 IDE.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;If VSTA v 1 is installed, VSTA v 1 projects will still open normally in the VSTA v 1 IDE when doubled clicked.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Projects must be opened through the VSTA v 2 IDE to trigger the UpgradeHelper and once upgraded will open in the VSTA v 2 IDE when double clicked.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="color:#1f497d;"&gt;&lt;span style="font-size:small;font-family:Calibri;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="color:#1f497d;"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;A couple of notes about using an UpgradeHelper:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:6pt 0in 0pt;color:#1f497d;mso-list:l0 level1 lfo2;" class="MsoNormal"&gt;&lt;span style="font-size:small;font-family:Calibri;"&gt;1)&amp;nbsp; You must use two unique HostID&amp;rsquo;s in order to use an UpgradeHelper.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Using the same HostID for VSTA v 1 and VSTA v 2 will cause the UpgradeHelper not to be triggered.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Related topic:&amp;nbsp; &lt;/span&gt;&lt;a href="http://www.summsoft.com/blogs/melodys_vsta_blog/archive/2008/08/25/How-to-Update-a-Host_1920_s-Folder-in-_2500_My-Documents_2500_-.aspx" title="Summit Blog"&gt;&lt;span style="font-size:small;font-family:Calibri;"&gt;How to Update a Host&amp;rsquo;s Folder in %My Documents%.&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:6pt 0in 0pt;color:#1f497d;mso-list:l0 level1 lfo2;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;2)&amp;nbsp; In the RemovedReferences section use only the name of the reference to removed- including any other information like the version or public key token will result in the reference not being removed.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:6pt 0in 0pt;color:#1f497d;mso-list:l0 level1 lfo2;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;3)&amp;nbsp; Only valid projects will trigger the UpgradeHelper.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Projects missing the AppAddIn.designer.cs file from the list of compilable files will not trigger the UpgradeHelper.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:6pt 0in 0pt;color:#1f497d;mso-list:l0 level1 lfo2;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;4)&amp;nbsp; To be sure that the correct version of a reference is added, you may want to use the full GAC information for the reference since you cannot specify SpecificVersion=true.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Related topic:&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.summsoft.com/blogs/melodys_vsta_blog/archive/2008/08/15/Proxy-Versioning-Options-for-Project-Templates.aspx" title="Summit Blog"&gt;&lt;span style="font-size:small;font-family:Calibri;"&gt;Proxy Versioning Options for Project Templates&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Example:&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&amp;quot;ShapeAppCSharpProxy, Version=2.0.0.0, Culture=neutral, PublicKeyToken=3c3c0c46dd27dbcf, processorArchitecture=MSIL&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:6pt 0in 0pt;color:#1f497d;mso-list:l0 level1 lfo2;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;5)&amp;nbsp; VSTA v 1 projects cannot be opened programmatically through VSTA v 2.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Using dte.Solution.AddFromFile or dte.Solution.Open will throw an error if the project has not been previously upgraded.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;We are looking for a workaround for this (add a comment if you know of one please).&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:6pt 0in 0pt;color:#1f497d;mso-list:l0 level1 lfo2;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;The UpgradeHelper is triggered at the end of the normal Visual Studio conversion wizard.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:6pt 0in 0pt;color:#1f497d;mso-list:l0 level1 lfo2;" class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;The VSTA registries required for the UpgradeHelper are a little tricky- you may want to base yours off the included example&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;"&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#1f497d;"&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;br /&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VSTAHostConfig\ShapeAppCSharpV2\2.0]&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:10pt;color:#1f497d;"&gt;&lt;span style="font-family:Times New Roman;"&gt;@=&amp;quot;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:10pt;color:#1f497d;"&gt;&lt;span style="font-family:Times New Roman;"&gt;&amp;quot;AppName&amp;quot;=&amp;quot;ShapeAppCSharp&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:10pt;color:#1f497d;"&gt;&lt;span style="font-family:Times New Roman;"&gt;&amp;quot;ProjectTemplatesLocation&amp;quot;=&amp;quot;C:\\ShapeAppSamples\\ShapeAppMacroRecordingCSharp\\Templates&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:10pt;color:#1f497d;"&gt;&lt;span style="font-family:Times New Roman;"&gt;&amp;quot;VSTAVersion&amp;quot;=&amp;quot;9.0&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="font-size:10pt;color:#1f497d;"&gt;&lt;span style="font-family:Times New Roman;"&gt;&amp;quot;UpgradeFrom&amp;quot;=&amp;quot;ShapeAppCSharp&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="font-size:10pt;color:#1f497d;"&gt;&lt;span style="font-family:Times New Roman;"&gt;&amp;quot;UpgradeHelper&amp;quot;=&amp;quot;{10B201D5-F806-4385-8DED-7E785DD66946}&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:10pt;color:#1f497d;"&gt;&lt;span style="font-family:Times New Roman;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:10pt;color:#1f497d;"&gt;&lt;span style="font-family:Times New Roman;"&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VSTAHostConfig\ShapeAppCSharpV2\2.0\VSTA]&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:10pt;color:#1f497d;"&gt;&lt;span style="font-family:Times New Roman;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:10pt;color:#1f497d;"&gt;&lt;span style="font-family:Times New Roman;"&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VSTAHostConfig\ShapeAppCSharpV2\2.0\VSTA\UpgradeHelper]&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:10pt;color:#1f497d;"&gt;&lt;span style="font-family:Times New Roman;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:10pt;color:#1f497d;"&gt;&lt;span style="font-family:Times New Roman;"&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VSTAHostConfig\ShapeAppCSharpV2\2.0\VSTA\UpgradeHelper\&lt;b style="mso-bidi-font-weight:normal;"&gt;{10B201D5-F806-4385-8DED-7E785DD66946}&lt;/b&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="font-size:10pt;color:#1f497d;"&gt;&lt;span style="font-family:Times New Roman;"&gt;&amp;quot;Assembly&amp;quot;=&amp;quot;ShapeAppCSharp_UpgradeHelper, Version=1.0.0.0, Culture=neutral, PublicKeyToken=27e4196f25ea49b1&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="font-size:10pt;color:#1f497d;"&gt;&lt;span style="font-family:Times New Roman;"&gt;&amp;quot;Class&amp;quot;=&amp;quot;ShapeAppCSharp_UpgradeHelper.ShapeAppCSharp_UpgradeHelper&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:11pt;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;
&lt;p&gt;&lt;br style="page-break-before:always;" /&gt;&lt;/p&gt;
&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;span style="color:#1f497d;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;span style="text-decoration:underline;"&gt;&lt;span style="color:#1f497d;"&gt;To use &lt;/span&gt;&lt;span style="font-size:12pt;color:#1f497d;"&gt;this&lt;/span&gt;&lt;span style="color:#1f497d;"&gt; sample:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpFirst"&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;1)&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;&lt;span style="font-size:small;"&gt;Remove the ShapeAppCSharp folder from %MyDocuments%&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph"&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;2)&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;&lt;span style="font-size:small;"&gt;Remove the ShapeAppCSharp registry hives from the config and context registry hives&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph"&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;3)&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;&lt;span style="font-size:small;"&gt;Remove all ShapeAppCSharpProxies registered in the GAC&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph"&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;&lt;span style="font-size:small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph"&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;4)&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;&lt;span style="font-size:small;"&gt;Open and build the ShapeAppAdvancedCSharp sample- this registers ShapeAppCSharpProxy Version = 1.0.0.0.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph"&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;5)&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;&lt;span style="font-size:small;"&gt;Run the setup file SetupShapeAppAdvancedCSharp.js (templates use proxy v 1)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph"&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;6)&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;&lt;span style="font-size:small;"&gt;Move the folders contained in the MyDocs folder to %MyDocuments%- this includes macro projects and sample add-in assemblies&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph"&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;7)&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;&lt;span style="font-size:small;"&gt;Open and build the modified sample add-in for ShapeAppAdvancedCSharp (optional but you may want to see what the add-in does)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph"&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;8)&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;&lt;span style="font-size:small;"&gt;Run the ShapeAppAdvancedCSharp sample, launch the IDE and build the macro project to confirm the macro startup method runs.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph"&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;&lt;span style="font-size:small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph"&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;9)&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;&lt;span style="font-size:small;"&gt;Open and build the ShapeAppCSharp_UpgradeHelper.&amp;nbsp; This will register the upgrade helper in the GAC, it will be registered with the host in step 11 below.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph"&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;&lt;span style="font-size:small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph"&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;10)&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;&lt;span style="font-size:small;"&gt;Open and build the ShapeAppMacroRecording sample- this registers ShapeAppCSharpProxy Version = 2.0.0.0.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph"&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;11)&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;&lt;span style="font-size:small;"&gt;Run the modified setup file SetupShapeAppMacroRecordingCSharp_v2.js.&amp;nbsp; This uses the HostID ShapeAppCSharp_v2, registers the UpgradeHelper and registers templates which use proxy v 2.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph"&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;12)&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;&lt;span style="font-size:small;"&gt;The macro and sample add-in assembly should have been moved in step 6 above.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph"&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;13)&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;&lt;span style="font-size:small;"&gt;Open and build the modified sample add-in for ShapeAppMacroRecordingCSharp (optional but you may want to see what the add-in does)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph"&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;14)&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;&lt;span style="font-size:small;"&gt;Run the ShapeAppMacroRecordingCSharp sample, &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph"&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;a.&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;&lt;span style="font-size:small;"&gt;launch the IDE (as normal for VSTA v 2) and build the macro project to confirm the macro startup method runs.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph"&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;b.&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;&lt;span style="font-size:small;"&gt;Launch the IDE for the VSTA v 1 macro project, &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph"&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size:small;"&gt;i.&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;&lt;span style="font-size:small;"&gt;follow the prompts to navigate to the project and open it (C:\Documents and Settings\Administrator\My Documents\ShapeAppCSharp\Macros.sln)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph"&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size:small;"&gt;ii.&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;"&gt;&lt;span style="font-size:small;"&gt;build the macro project to confirm the macro startup method runs.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;"&gt;&lt;span style="text-decoration:underline;"&gt;The Code:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;"&gt;namespace&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt; ShapeAppCSharp_UpgradeHelper&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;class&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;ShapeAppCSharp_UpgradeHelper&lt;/span&gt;&lt;span style="color:#000000;"&gt; : &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;IVstaUpgradeHelper&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#region&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt; IVstaUpgradeHelper Members&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#2b91af;"&gt;List&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#2b91af;"&gt;AddedReference&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;gt; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;IVstaUpgradeHelper&lt;/span&gt;&lt;span style="color:#000000;"&gt;.AddedReferences&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;get&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#008000;"&gt;//SUGGESTION:&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;use the full GAC information for tight versioning&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#2b91af;"&gt;List&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#2b91af;"&gt;AddedReference&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;gt; addedReferencesList = &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;List&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#2b91af;"&gt;AddedReference&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;gt;();&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;addedReferencesList.Add(&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;AddedManagedReference&lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;span style="color:#a31515;"&gt;&amp;quot;ShapeAppCSharpProxy, Version=2.0.0.0, Culture=neutral, PublicKeyToken=3c3c0c46dd27dbcf, processorArchitecture=MSIL&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;));&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;return&lt;/span&gt;&lt;span style="color:#000000;"&gt; addedReferencesList;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;IVstaUpgradeHelper&lt;/span&gt;&lt;span style="color:#000000;"&gt;.DebugInfoCommandLine&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;get&lt;/span&gt;&lt;span style="color:#000000;"&gt;{&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;return&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#a31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;IVstaUpgradeHelper&lt;/span&gt;&lt;span style="color:#000000;"&gt;.DebugInfoExeName&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;get&lt;/span&gt;&lt;span style="color:#000000;"&gt; { &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;return&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#a31515;"&gt;&amp;quot;#HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\ShapeAppCSharp_v2\\InstallPath#\\ShapeAppCSharp.exe&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;IVstaUpgradeHelper&lt;/span&gt;&lt;span style="color:#000000;"&gt;.IconImageList&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;get&lt;/span&gt;&lt;span style="color:#000000;"&gt;{&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;return&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#a31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Guid&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;IVstaUpgradeHelper&lt;/span&gt;&lt;span style="color:#000000;"&gt;.InProcessHostGuid&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;get&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Guid&lt;/span&gt;&lt;span style="color:#000000;"&gt; newG = &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Guid&lt;/span&gt;&lt;span style="color:#000000;"&gt;();&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;return&lt;/span&gt;&lt;span style="color:#000000;"&gt; newG;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#2b91af;"&gt;List&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#2b91af;"&gt;RemovedReference&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;gt; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;IVstaUpgradeHelper&lt;/span&gt;&lt;span style="color:#000000;"&gt;.RemovedReferences&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;get&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#008000;"&gt;//NOTE:&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;use only the reference name, not the version or any other information&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#008000;"&gt;//&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;or the reference will not be removed.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#2b91af;"&gt;List&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#2b91af;"&gt;RemovedReference&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;gt; removedReferencesList = &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;List&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#2b91af;"&gt;RemovedReference&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;gt;();&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;removedReferencesList.Add(&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;RemovedReference&lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;span style="color:#a31515;"&gt;&amp;quot;ShapeAppCSharpProxy&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;));&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;return&lt;/span&gt;&lt;span style="color:#000000;"&gt; removedReferencesList;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;IVstaUpgradeHelper&lt;/span&gt;&lt;span style="color:#000000;"&gt;.TemplatesPath&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;get&lt;/span&gt;&lt;span style="color:#000000;"&gt; {&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;return&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#a31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#2b91af;"&gt;UpdatedBaseType&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;IVstaUpgradeHelper&lt;/span&gt;&lt;span style="color:#000000;"&gt;.UpdateBaseType(&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;&lt;span style="color:#000000;"&gt; oldBaseType)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;&lt;span style="color:#000000;"&gt; newBaseType = &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;&lt;span style="color:#000000;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;&lt;span style="color:#000000;"&gt; newBaseInterfaceType = &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;&lt;span style="color:#000000;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;if&lt;/span&gt;&lt;span style="color:#000000;"&gt; (oldBaseType == &lt;/span&gt;&lt;span style="color:#a31515;"&gt;&amp;quot;Microsoft.VisualStudio.Tools.Applications.Samples.ShapeApp.Application&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;newBaseType = &lt;/span&gt;&lt;span style="color:#a31515;"&gt;&amp;quot;Microsoft.VisualStudio.Tools.Applications.Samples.ShapeApp.ApplicationEntryPoint&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;newBaseInterfaceType = &lt;/span&gt;&lt;span style="color:#a31515;"&gt;&amp;quot;Microsoft.VisualStudio.Tools.Applications.Runtime.IEntryPoint&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;return&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;UpdatedBaseType&lt;/span&gt;&lt;span style="color:#000000;"&gt;(newBaseType, newBaseInterfaceType);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;color:#0000ff;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#endregion&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#000000;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-size:x-small;color:#0000ff;"&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description><enclosure url="http://blogs.summsoft.com/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.00.15.36/Upgrade_5F00_Helper_5F00_ShapeAppSamples.zip" length="1775633" type="application/x-zip-compressed" /></item><item><title>Two Applications Share a HostID Sample</title><link>http://blogs.summsoft.com/media/p/1470.aspx</link><pubDate>Tue, 18 Nov 2008 21:29:51 GMT</pubDate><guid isPermaLink="false">ff090588-e3d7-4538-8ee9-e75ea04444bb:1470</guid><dc:creator>Melody</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;span style="font-size:small;font-family:Times New Roman;"&gt;
&lt;p class="MsoNormalCxSpFirst"&gt;This sample demonstrates how two applications can share one host ID.&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;There are two applications which share a common base type library:&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Applicatoin_A and Application_B share the SharedLib library.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Application_B is based on Application_A with additional methods.&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;Each application has its own entry point type, Applicatoin_A .ApplicationA and Applicatoin_B.ApplicationB, and the shared base type library has an entry point type SharedLib.SharedApplication.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Both applications have a HostItemProvider which can return the entry point for its application or the SharedLib.SharedApplication.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;There are three proxies- one for only the shared library, then one for each application including the shared library.&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;Each proxy exposes one entry point and is exposed to VSTA add-ins through its own template.&lt;br /&gt;
&lt;table cellpadding="0" cellspacing="0" style="border-collapse:collapse;mso-border-alt:solid black .5pt;mso-yfti-tbllook:1184;mso-padding-alt:0in 5.4pt 0in 5.4pt;mso-border-insideh:.5pt solid black;mso-border-insidev:.5pt solid black;" class="MsoNormalTable"&gt;

&lt;tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes;"&gt;
&lt;td style="padding-right:5.4pt;padding-left:5.4pt;padding-bottom:0in;width:159.6pt;padding-top:0in;background-color:transparent;mso-border-alt:solid black .5pt;border:black 1pt solid;"&gt;
&lt;p class="MsoNormalCxSpMiddle" align="center"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Times New Roman;"&gt;Template&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-right:black 1pt solid;padding-right:5.4pt;border-top:black 1pt solid;padding-left:5.4pt;padding-bottom:0in;border-left:#ece9d8;width:159.6pt;padding-top:0in;border-bottom:black 1pt solid;background-color:transparent;mso-border-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p class="MsoNormalCxSpMiddle" align="center"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Times New Roman;"&gt;Proxy&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-right:black 1pt solid;padding-right:5.4pt;border-top:black 1pt solid;padding-left:5.4pt;padding-bottom:0in;border-left:#ece9d8;width:159.6pt;padding-top:0in;border-bottom:black 1pt solid;background-color:transparent;mso-border-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;"&gt;
&lt;p class="MsoNormalCxSpMiddle" align="center"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Times New Roman;"&gt;EntryPoint&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:1;"&gt;
&lt;td style="border-right:black 1pt solid;padding-right:5.4pt;border-top:#ece9d8;padding-left:5.4pt;padding-bottom:0in;border-left:black 1pt solid;width:159.6pt;padding-top:0in;border-bottom:black 1pt solid;background-color:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:small;font-family:Times New Roman;"&gt;SharedApplication_Template&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-right:black 1pt solid;padding-right:5.4pt;border-top:#ece9d8;padding-left:5.4pt;padding-bottom:0in;border-left:#ece9d8;width:159.6pt;padding-top:0in;border-bottom:black 1pt solid;background-color:transparent;mso-border-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:small;font-family:Times New Roman;"&gt;ApplicationSharedProxy&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-right:black 1pt solid;padding-right:5.4pt;border-top:#ece9d8;padding-left:5.4pt;padding-bottom:0in;border-left:#ece9d8;width:159.6pt;padding-top:0in;border-bottom:black 1pt solid;background-color:transparent;mso-border-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:small;font-family:Times New Roman;"&gt;SharedApplication&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:2;"&gt;
&lt;td style="border-right:black 1pt solid;padding-right:5.4pt;border-top:#ece9d8;padding-left:5.4pt;padding-bottom:0in;border-left:black 1pt solid;width:159.6pt;padding-top:0in;border-bottom:black 1pt solid;background-color:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:small;font-family:Times New Roman;"&gt;ApplicationA_Template&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-right:black 1pt solid;padding-right:5.4pt;border-top:#ece9d8;padding-left:5.4pt;padding-bottom:0in;border-left:#ece9d8;width:159.6pt;padding-top:0in;border-bottom:black 1pt solid;background-color:transparent;mso-border-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:small;font-family:Times New Roman;"&gt;ApplicationAProxy&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-right:black 1pt solid;padding-right:5.4pt;border-top:#ece9d8;padding-left:5.4pt;padding-bottom:0in;border-left:#ece9d8;width:159.6pt;padding-top:0in;border-bottom:black 1pt solid;background-color:transparent;mso-border-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:small;font-family:Times New Roman;"&gt;ApplicationA&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:3;mso-yfti-lastrow:yes;"&gt;
&lt;td style="border-right:black 1pt solid;padding-right:5.4pt;border-top:#ece9d8;padding-left:5.4pt;padding-bottom:0in;border-left:black 1pt solid;width:159.6pt;padding-top:0in;border-bottom:black 1pt solid;background-color:transparent;mso-border-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:small;font-family:Times New Roman;"&gt;ApplicatoinB_Template&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-right:black 1pt solid;padding-right:5.4pt;border-top:#ece9d8;padding-left:5.4pt;padding-bottom:0in;border-left:#ece9d8;width:159.6pt;padding-top:0in;border-bottom:black 1pt solid;background-color:transparent;mso-border-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:small;font-family:Times New Roman;"&gt;ApplicationBProxy&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-right:black 1pt solid;padding-right:5.4pt;border-top:#ece9d8;padding-left:5.4pt;padding-bottom:0in;border-left:#ece9d8;width:159.6pt;padding-top:0in;border-bottom:black 1pt solid;background-color:transparent;mso-border-alt:solid black .5pt;mso-border-left-alt:solid black .5pt;mso-border-top-alt:solid black .5pt;"&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:small;font-family:Times New Roman;"&gt;ApplicationB&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;/table&gt;
&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;To&amp;nbsp;use the sample, &lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle" style="padding-left:30px;"&gt;1.&amp;nbsp; Extract the sample to C:\VSTA (if using a different location the registry file will need to be updated for the ProjectTemplatesLocation and add-ins will not run).&lt;br /&gt;2.&amp;nbsp; Run the included registration file Application_AB HostConfig Hive.reg.&lt;br /&gt;3.&amp;nbsp; Run vsta setup for Application_AB.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;This will register the included templates.&lt;br /&gt;4.&amp;nbsp; Open and build the Application_A.sln, Application_B.sln, and SharedLib.sln solutions.&lt;br /&gt;5.&amp;nbsp; Run the Application_A and Application_B samples, both will launch macro projects.&lt;br /&gt;6.&amp;nbsp; For both macro projects, add the code below to the startup method, set a breakpoint and start debugging.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Both macros will hit the break point and can continue execution.&lt;br /&gt;&lt;span style="color:#0000ff;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;this&lt;/span&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;.AddMessage(&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.MakeSharedType(100, &lt;span style="color:#a31515;"&gt;&amp;quot;message from macro X&amp;quot;&lt;/span&gt;));&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;Application_A can load and run add-ins written for the entry points ApplicationA and SharedApplication, but not ApplicationB add-ins.&lt;br /&gt;Application_B can load and run add-ins written for the entry points ApplicationB and SharedApplication, but not Application_A add-ins.&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;Application_A&amp;nbsp; and Application_B can both debug at the same time (using different macro projects) using the same HostID.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Application_A uses a macro project based on the ApplicationA_Template.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Application_B uses a macro project based on the ApplicationB_Template.&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;Results:&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family:Wingdings;mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings;"&gt;&lt;span style="mso-list:Ignore;"&gt;&amp;Oslash;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;It is possible to use the same hostID for different applications and debug them concurrently&lt;/p&gt;
&lt;p class="MsoNormalCxSpLast"&gt;&lt;span style="font-family:Wingdings;mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings;"&gt;&lt;span style="mso-list:Ignore;"&gt;&amp;Oslash;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;It is possible for an application to load and run add-ins, so long as the add-in is compatible with the host (the HostItemProvider must return the entry point type of the add-in).&lt;/p&gt;
&lt;p class="MsoNormalCxSpFirst"&gt;&lt;b&gt;&lt;span style="font-size:16pt;font-family:&amp;#39;Cambria&amp;#39;,&amp;#39;serif&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-font-kerning:16.0pt;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;br style="page-break-before:always;" /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;h1 align="center" style="margin:12pt 0in 3pt;text-align:center;"&gt;&lt;span style="font-size:large;font-family:Cambria;"&gt;Modified Sample:&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;One Application use two HostIDs&lt;/span&gt;&lt;/h1&gt;
&lt;p class="MsoNormalCxSpFirst"&gt;Using the above sample where two applications share one hostID, modifications can easily be made so that each application may&amp;nbsp;use its own hostID or one application can use two hostIDs.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;These modifications are intended to demonstrate the flexibility of using multiple hostId&amp;rsquo;s with one or more applications.&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle" style="padding-left:30px;"&gt;To use two different hostID&amp;rsquo;s for one application &lt;br /&gt;1.&amp;nbsp; Complete the steps above to setup the sample.&lt;br /&gt;2.&amp;nbsp; Add the hostID for Application_B- run the included registration file &amp;ldquo;Application_B HostConfig Hive.reg&amp;rdquo;.&lt;br /&gt;3.&amp;nbsp; Run vsta setup for Applicatoin_B.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;This will register the included templates.&lt;br /&gt;4.&amp;nbsp; Change which macro project Appliation_B uses to the Application_B_HostID_B_Template project by:&lt;br /&gt;&lt;span style="mso-bidi-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;i.&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Uncomment the below line in Application_B.Program.Main &amp;ldquo;&lt;i style="mso-bidi-font-style:normal;"&gt;Two applications using one hostID&amp;#39;s section&lt;/i&gt;&amp;rdquo; region:&lt;br /&gt;&lt;span style="color:#008000;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //app.VstaDTE_HostIdB.ShowIde(true);&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;//HostID Application_B&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle" style="padding-left:30px;"&gt;&lt;span style="mso-bidi-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;ii.&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Comment the below line in Application_B.Program.Main &amp;ldquo;&lt;em&gt;One application using two hostID&amp;#39;s section&lt;/em&gt;&amp;rdquo; region:&lt;br /&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; app.VstaDTE.ShowIde(&lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;);&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#008000;"&gt;//HostID Application_AB&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;span style="font-size:small;font-family:Times New Roman;"&gt;
&lt;p style="padding-left:30px;mso-list:l3 level1 lfo4;" class="MsoNormalCxSpMiddle"&gt;5.&amp;nbsp; Build the Application_B_AddIn_HostID_B_1 project under SampleAddIns&lt;br /&gt;6.&amp;nbsp; Build and run the Application_A and Application_B samples.&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;br /&gt;Application_B can still load and run add-ins based on the old template ApplicationB_Template and the shared template SharedApplication_Template (hostID&amp;rsquo;s do not come into play here, only entry points).&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;Application_A and Application_B can both debug at the same time using different HostID&amp;rsquo;s&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;Application_B can debug using macro projects for either hostID so long as the project loaded is based on a template for the HostID used in RegisterAsDebugHost and EnsureIDE.&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;Application_B can only debug under one hostID at a time- it cannot RegisterAsDebugHost for two HostID&amp;rsquo;s concurrently&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;Results:&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family:Wingdings;mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings;"&gt;&lt;span style="mso-list:Ignore;"&gt;&amp;Oslash;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;It is possible to use two hostIDs for one application but only one can be registered for debugging at a time&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family:Wingdings;mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings;"&gt;&lt;span style="mso-list:Ignore;"&gt;&amp;Oslash;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;It is not possible to open a project based on a template registered under one hostID in the IDE of another hostID, the IDE is hostID specific.&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family:Wingdings;mso-fareast-font-family:Wingdings;mso-bidi-font-family:Wingdings;"&gt;&lt;span style="mso-list:Ignore;"&gt;&amp;Oslash;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;It is possible for an application to load and run add-ins for different HostIDs, so long as the add-in is compatible with the host regardless of the HostID (the HostItemProvider must return the entry point type of the add-in).&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&amp;nbsp;&lt;/p&gt;
&lt;/p&gt;</description><enclosure url="http://blogs.summsoft.com/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.00.14.70/Share-HostID-Sample.zip" length="943335" type="application/x-zip-compressed" /></item><item><title>AutoProxyGen Video:  From ProxyGen to AutoProxyGen</title><link>http://blogs.summsoft.com/media/p/1376.aspx</link><pubDate>Wed, 15 Oct 2008 18:29:06 GMT</pubDate><guid isPermaLink="false">ff090588-e3d7-4538-8ee9-e75ea04444bb:1376</guid><dc:creator>Melody</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Due to compression for msn videos the text and code in the From ProxyGen to AutoProxyGen video may be difficult to read.&amp;nbsp; The attached download is the same video uploaded; however, with less compression so the text and code are easier to read&lt;/p&gt;</description><enclosure url="http://blogs.summsoft.comftp://ftp.summsoft.com/vsta/FromProxyGen_to_AutoProxyGen.zip" length="-1" type="application/x-compressed" /></item><item><title>EventSample VB v2.1 – Exposing Generic Events in Entry Point classes</title><link>http://blogs.summsoft.com/media/p/1368.aspx</link><pubDate>Wed, 08 Oct 2008 19:51:28 GMT</pubDate><guid isPermaLink="false">ff090588-e3d7-4538-8ee9-e75ea04444bb:1368</guid><dc:creator>Melody</dc:creator><slash:comments>0</slash:comments><description>&lt;p class="MsoNormalCxSpFirst"&gt;&lt;span style="font-size:small;font-family:Times New Roman;"&gt;At this time there is no direct way to expose an EventHandler&amp;lt;T&amp;gt; in the host to VSTA add-ins.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;This sample uses a workaround which involves using non-generic event handling between the host and proxy, and generic event handling between the proxy and add-in.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;This is accomplished by raising the non-generic events in the host and adding methods to the proxy to translate the events and event args.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;The host and proxy must be modified; however, the host item provider and host type map provider do not require any alterations.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:small;font-family:Times New Roman;"&gt;This workaround only works for generic events raised by the entry point class the add-in is based on.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;There is a separate workaround for generic events raised by other classes which is more involved.&lt;/span&gt;&lt;span style="font-size:small;font-family:Times New Roman;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:small;font-family:Times New Roman;"&gt;This sample is a modified version of the Event Sample VB v 2.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;To run this sample, extract the zip file and run the included setup file SetupEventSample VB v 2.1.js.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Build the solution to move the proxy to the GAC and build the included sample add-in to load the assembly.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Both events hooked into the by the add-in will be triggered by entering a message into the input box and selecting &amp;ldquo;Add&amp;rdquo;.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:small;font-family:Times New Roman;"&gt;The proxy and add-ins use tight versioning, the proxy assembly is marked as version 2.1 and the project templates included use this assembly as version specific.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;To use the included AutoProxyGen Input.xml file to regenerate the main proxy file, update the file locations (the proxy included will work so this is not necessary).&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Only one modification was done to the auto-generated proxy file, in the entry point class and it&amp;rsquo;s base the non-generic events were changed from public to private so that only the generic events are visible to add-ins.&lt;/span&gt;&lt;span style="font-size:small;font-family:Times New Roman;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:small;font-family:Times New Roman;"&gt;Workaround Components:&lt;/span&gt;&lt;/p&gt;
&lt;ul style="margin-top:0in;"&gt;
&lt;li style="mso-list:l4 level1 lfo2;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:small;font-family:Times New Roman;"&gt;Host&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="margin:auto auto auto 0.75in;text-indent:-0.25in;mso-list:l1 level1 lfo1;mso-add-space:auto;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;span style="mso-bidi-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;1)&lt;/span&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:small;"&gt;Define custom event args.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:auto auto auto 0.75in;text-indent:-0.25in;mso-list:l1 level1 lfo1;mso-add-space:auto;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;span style="mso-bidi-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;2)&lt;/span&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:small;"&gt;Define an EventHandler&amp;lt;T&amp;gt; in the EntryPoint class using the custom event args (must be the entry point the add-in will be based on).&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:auto auto auto 0.75in;text-indent:-0.25in;mso-list:l1 level1 lfo1;mso-add-space:auto;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;span style="mso-bidi-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;3)&lt;/span&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:small;"&gt;Define a delegate using the custom event args.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;This will be used to communicate between the host and proxy.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:auto auto auto 0.75in;text-indent:-0.25in;mso-list:l1 level1 lfo1;mso-add-space:auto;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;span style="mso-bidi-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;4)&lt;/span&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:small;"&gt;Define an event based on the delegate defined in 3 above.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;This will be used to communicate between the host and proxy.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:auto auto auto 0.75in;text-indent:-0.25in;mso-list:l1 level1 lfo1;mso-add-space:auto;" class="MsoNormalCxSpLast"&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;span style="mso-bidi-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;5)&lt;/span&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:small;"&gt;Anytime the EventHandler&amp;lt;T&amp;gt; is raised, raise the event based on the delegate, this event will trigger the EventHandler&amp;lt;T&amp;gt; in the proxy/add-in.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt 0.5in;" class="MsoListParagraph"&gt;&lt;span style="font-size:x-small;font-family:Calibri;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ul style="margin-top:0in;"&gt;
&lt;li style="mso-list:l4 level1 lfo2;" class="MsoNormalCxSpFirst"&gt;&lt;span style="font-size:small;font-family:Times New Roman;"&gt;Proxy&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="margin:auto auto auto 0.75in;text-indent:-0.25in;mso-list:l1 level1 lfo1;mso-add-space:auto;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;span style="mso-bidi-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;6)&lt;/span&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:small;"&gt;Create the proxy as normal.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;This will define in the proxy:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:auto auto auto 1.25in;text-indent:-0.25in;mso-list:l2 level2 lfo3;mso-add-space:auto;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;span style="mso-bidi-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;a.&lt;/span&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:small;"&gt;The custom event args from 1.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:auto auto auto 1.25in;text-indent:-0.25in;mso-list:l2 level2 lfo3;mso-add-space:auto;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;span style="mso-bidi-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;b.&lt;/span&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:small;"&gt;The delegate using the custom event args from 3.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:auto auto auto 1.25in;text-indent:-0.25in;mso-list:l2 level2 lfo3;mso-add-space:auto;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;span style="mso-bidi-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;c.&lt;/span&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:small;"&gt;The event based on the delegate from 4 in both the class and the entry point class.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:auto auto auto 1in;mso-add-space:auto;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:small;font-family:Times New Roman;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:auto auto auto 1in;mso-add-space:auto;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:small;font-family:Times New Roman;"&gt;This will skip:&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:auto auto auto 1.25in;text-indent:-0.25in;mso-list:l3 level1 lfo4;mso-add-space:auto;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;span style="mso-bidi-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;a.&lt;/span&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:small;"&gt;The EventHandler&amp;lt;T&amp;gt; (all generics are skipped).&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:auto auto auto 1.25in;mso-add-space:auto;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:small;font-family:Times New Roman;"&gt;ProxyGen.exe Warning: 21040 : The following event type MainApplication contains generic type information and will not be parsed: cEventT.&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:auto auto auto 1.25in;mso-add-space:auto;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:small;font-family:Times New Roman;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:auto auto auto 0.75in;text-indent:-0.25in;mso-list:l1 level1 lfo1;mso-add-space:auto;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;span style="mso-bidi-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;7)&lt;/span&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:small;"&gt;Re-implement the custom EventArgs in the proxy while keeping the auto-generated custom EventArgs.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Do this by using a different name for the re-implemented custom event args, or nesting them in a class.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:auto auto auto 0.75in;mso-add-space:auto;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:small;font-family:Times New Roman;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:auto auto auto 0.75in;text-indent:-0.25in;mso-list:l1 level1 lfo1;mso-add-space:auto;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;span style="mso-bidi-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;8)&lt;/span&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:small;"&gt;Expand the partially defined entry point class in the proxy (suggest to do this is a separate code file) adding:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:auto auto auto 1.25in;text-indent:-0.25in;mso-list:l0 level1 lfo5;mso-add-space:auto;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;span style="mso-bidi-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;a.&lt;/span&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:small;"&gt;A private event EventHandler&amp;lt;T&amp;gt; for the custom event args for internal use by the proxy.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Do not define the add and remove methods for this event.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:auto auto auto 1.25in;text-indent:-0.25in;mso-list:l0 level1 lfo5;mso-add-space:auto;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;span style="mso-bidi-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;b.&lt;/span&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:small;"&gt;A flag for the private event defined above initialized to false.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:auto auto auto 1.25in;text-indent:-0.25in;mso-list:l0 level1 lfo5;mso-add-space:auto;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;span style="mso-bidi-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;c.&lt;/span&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:small;"&gt;The EventHandler&amp;lt;T&amp;gt; defined in the host skipped by ProxyGen using the re-implemented event args deined in 7 above.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Define the add and remove methods for this event.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;In the Add method, hook the value passed in to the private event defined in 8a above.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Then, if the flag defined in 8b is false, hook the auto-generated generic event handler defined in the main proxy file to a new method to be defined in the expanded entry point class (defined below) and set the flag to true.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;In the remove method, remove the value from the private event defined in 8a above.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:auto auto auto 1.25in;text-indent:-0.25in;mso-list:l0 level1 lfo5;mso-add-space:auto;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;span style="mso-bidi-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;d.&lt;/span&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:small;"&gt;Add a method which satisfies the signature for the generic event handling, using the original event args.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;In this method, translate the original event args to the re-implemented event args.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Use the re-implemented event args to raise the private event defined in 3a.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:auto auto auto 1.25in;mso-add-space:auto;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:small;font-family:Times New Roman;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:auto auto auto 0.75in;text-indent:-0.25in;mso-list:l1 level1 lfo1;mso-add-space:auto;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;span style="mso-bidi-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;span style="font-size:small;"&gt;9)&lt;/span&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:small;"&gt;Expand the partially defined class in the proxy adding the EventHandler&amp;lt;T&amp;gt; (suggest to do this in the same separate code file).&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:small;font-family:Times New Roman;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:small;font-family:Times New Roman;"&gt;Code sample Host:&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;color:green;font-family:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt;&amp;#39;1) Define the custom event args&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;color:blue;font-family:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt;Public&lt;/span&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt; &lt;span style="color:blue;"&gt;Class&lt;/span&gt; cEventArgs&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;Inherits&lt;/span&gt; System.EventArgs&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;Private&lt;/span&gt; _myObject &lt;span style="color:blue;"&gt;As&lt;/span&gt; MainObject&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;Public&lt;/span&gt; &lt;span style="color:blue;"&gt;Property&lt;/span&gt; MyObject() &lt;span style="color:blue;"&gt;As&lt;/span&gt; MainObject&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;Get&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;Return&lt;/span&gt; _myObject&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;End&lt;/span&gt; &lt;span style="color:blue;"&gt;Get&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;Set&lt;/span&gt;(&lt;span style="color:blue;"&gt;ByVal&lt;/span&gt; value &lt;span style="color:blue;"&gt;As&lt;/span&gt; MainObject)&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_myObject = value&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;End&lt;/span&gt; &lt;span style="color:blue;"&gt;Set&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;End&lt;/span&gt; &lt;span style="color:blue;"&gt;Property&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;color:blue;font-family:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;Public&lt;/span&gt; &lt;span style="color:blue;"&gt;Sub&lt;/span&gt; &lt;span style="color:blue;"&gt;New&lt;/span&gt;(&lt;span style="color:blue;"&gt;ByVal&lt;/span&gt; nObject &lt;span style="color:blue;"&gt;As&lt;/span&gt; MainObject)&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_myObject = nObject&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;End&lt;/span&gt; &lt;span style="color:blue;"&gt;Sub&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;color:blue;font-family:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;color:blue;font-family:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt;End&lt;/span&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt; &lt;span style="color:blue;"&gt;Class&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;color:blue;font-family:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;color:green;font-family:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt;&amp;#39;3) Define a delegate using the custom event args.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;color:green;font-family:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt;&amp;#39;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;This will be used to communicate between the host and proxy.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;color:blue;font-family:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt;Public&lt;/span&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt; &lt;span style="color:blue;"&gt;Delegate&lt;/span&gt; &lt;span style="color:blue;"&gt;Sub&lt;/span&gt; cEventHandler(&lt;span style="color:blue;"&gt;ByVal&lt;/span&gt; sender &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Object&lt;/span&gt;, &lt;span style="color:blue;"&gt;ByVal&lt;/span&gt; e &lt;span style="color:blue;"&gt;As&lt;/span&gt; cEventArgs)&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;color:blue;font-family:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;color:blue;font-family:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt;Public&lt;/span&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt; &lt;span style="color:blue;"&gt;Class&lt;/span&gt; MainApplication&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;&amp;#39;2) Define an EventHandler&amp;lt;T&amp;gt; in the EntryPoint class using the custom event args &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;Public&lt;/span&gt; &lt;span style="color:blue;"&gt;Event&lt;/span&gt; cEventT &lt;span style="color:blue;"&gt;As&lt;/span&gt; EventHandler(&lt;span style="color:blue;"&gt;Of&lt;/span&gt; cEventArgs)&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;mso-bidi-font-size:10.0pt;"&gt;&lt;span style="font-family:Times New Roman;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;&amp;#39;4) Define an event based on the delegate defined above.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;&amp;#39;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;This will be used to communicate between the host and proxy.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;Public&lt;/span&gt; &lt;span style="color:blue;"&gt;Event&lt;/span&gt; cEventX &lt;span style="color:blue;"&gt;As&lt;/span&gt; cEventHandler&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;&amp;#39; 5) Anytime the EventHandler&amp;lt;T&amp;gt; is raised, raise the event based on the delegate.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;&amp;#39;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;This event will trigger the EventHandler&amp;lt;T&amp;gt; in the proxy/add-in.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;Public&lt;/span&gt; &lt;span style="color:blue;"&gt;Sub&lt;/span&gt; HookUpEvents()&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;AddHandler&lt;/span&gt; &lt;span style="color:blue;"&gt;Me&lt;/span&gt;.cEventT, &lt;span style="color:blue;"&gt;AddressOf&lt;/span&gt; RaiseGenericEventForVSTA_cEventT&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;End&lt;/span&gt; &lt;span style="color:blue;"&gt;Sub&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;color:blue;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;Private&lt;/span&gt; &lt;span style="color:blue;"&gt;Sub&lt;/span&gt; RaiseGenericEventForVSTA_cEventT(&lt;span style="color:blue;"&gt;ByVal&lt;/span&gt; sender &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Object&lt;/span&gt;, &lt;span style="color:blue;"&gt;ByVal&lt;/span&gt; e &lt;span style="color:blue;"&gt;As&lt;/span&gt; cEventArgs)&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 0pt;mso-layout-grid-align:none;" class="MsoNormal"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;RaiseEvent&lt;/span&gt; cEventX(&lt;span style="color:blue;"&gt;Me&lt;/span&gt;, e)&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;End&lt;/span&gt; &lt;span style="color:blue;"&gt;Sub&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;color:blue;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;color:blue;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;End&lt;/span&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; &lt;span style="color:blue;"&gt;Class&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:small;font-family:Times New Roman;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:small;font-family:Times New Roman;"&gt;Code sample Auto-generated Proxy (attributes and delayed event hookups removed):&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;color:blue;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;namespace&lt;/span&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; EventSample&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;//6a) auto-generated custom event args from 1&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;abstract&lt;/span&gt; &lt;span style="color:blue;"&gt;partial&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;cEventArgs&lt;/span&gt; : &lt;span style="color:blue;"&gt;global&lt;/span&gt;::System.&lt;span style="color:#2b91af;"&gt;MarshalByRefObject&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:blue;"&gt;global&lt;/span&gt;::EventSample.&lt;span style="color:#2b91af;"&gt;MainObject&lt;/span&gt; MyObject&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{ &lt;span style="color:green;"&gt;//auto-generated not implemented code&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;//6b) auto-generated delegate using the event args from 3&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;delegate&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;cEventHandler&lt;/span&gt;(&lt;span style="color:blue;"&gt;object&lt;/span&gt; sender, &lt;span style="color:blue;"&gt;global&lt;/span&gt;::EventSample.&lt;span style="color:#2b91af;"&gt;cEventArgs&lt;/span&gt; e);&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;color:green;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;//6c) auto-generated event based on the delegate from 4&lt;/span&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;abstract&lt;/span&gt; &lt;span style="color:blue;"&gt;partial&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MainApplication&lt;/span&gt; : &lt;span style="color:blue;"&gt;global&lt;/span&gt;::System.&lt;span style="color:#2b91af;"&gt;MarshalByRefObject&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;event&lt;/span&gt; &lt;span style="color:blue;"&gt;global&lt;/span&gt;::EventSample.&lt;span style="color:#2b91af;"&gt;cEventHandler&lt;/span&gt; cEventX&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;add&lt;/span&gt; { &lt;span style="color:blue;"&gt;throw&lt;/span&gt; &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:blue;"&gt;global&lt;/span&gt;::System.&lt;span style="color:#2b91af;"&gt;NotImplementedException&lt;/span&gt;(); }&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;remove&lt;/span&gt; { &lt;span style="color:blue;"&gt;throw&lt;/span&gt; &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:blue;"&gt;global&lt;/span&gt;::System.&lt;span style="color:#2b91af;"&gt;NotImplementedException&lt;/span&gt;(); }&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;color:green;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;//6c) auto-generated event based on the delegate from 4&lt;/span&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;partial&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MainApplicationEntryPoint&lt;/span&gt; : &lt;span style="color:blue;"&gt;global&lt;/span&gt;::Microsoft.VisualStudio.Tools.Applications.Runtime.&lt;span style="color:#2b91af;"&gt;IExtendedEntryPoint&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;event&lt;/span&gt; &lt;span style="color:blue;"&gt;global&lt;/span&gt;::EventSample.&lt;span style="color:#2b91af;"&gt;cEventHandler&lt;/span&gt; cEventX&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;add&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;if&lt;/span&gt; (&lt;span style="color:blue;"&gt;this&lt;/span&gt;.remoteObject != &lt;span style="color:blue;"&gt;null&lt;/span&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;((EventSample.&lt;span style="color:#2b91af;"&gt;MainApplication&lt;/span&gt;)(&lt;span style="color:blue;"&gt;this&lt;/span&gt;.remoteObject)).cEventX += &lt;span style="color:blue;"&gt;value&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;remove&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;if&lt;/span&gt; (&lt;span style="color:blue;"&gt;this&lt;/span&gt;.remoteObject != &lt;span style="color:blue;"&gt;null&lt;/span&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;((EventSample.&lt;span style="color:#2b91af;"&gt;MainApplication&lt;/span&gt;)(&lt;span style="color:blue;"&gt;this&lt;/span&gt;.remoteObject)).cEventX -= &lt;span style="color:blue;"&gt;value&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:small;font-family:Times New Roman;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:small;font-family:Times New Roman;"&gt;Code sample Expanded Proxy:&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;//7) Re-implemnted custom event args for internal use by the proxy.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;color:green;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Defined in as a nested class to avoid naming collision&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;partial&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; &lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="color:#2b91af;"&gt;EventSampleEventArgs&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#2b91af;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;partial&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;cEventArgs&lt;/span&gt; : System.&lt;span style="color:#2b91af;"&gt;EventArgs&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MainObject&lt;/span&gt; MyObject { &lt;span style="color:blue;"&gt;get&lt;/span&gt;; &lt;span style="color:blue;"&gt;set&lt;/span&gt;; }&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; cEventArgs(&lt;span style="color:#2b91af;"&gt;MainObject&lt;/span&gt; inObject)&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;MyObject = inObject;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;"&gt;&lt;span style="font-family:Times New Roman;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;//8) Expand the partially defined entry point class&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;partial&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MainApplicationEntryPoint&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;//8a) Add a private EventHandler&amp;lt;T&amp;gt; for internal use&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;event&lt;/span&gt; System.&lt;span style="color:#2b91af;"&gt;EventHandler&lt;/span&gt;&amp;lt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="color:#2b91af;"&gt;EventSampleEventArgs&lt;/span&gt;&lt;/b&gt;.&lt;span style="color:#2b91af;"&gt;cEventArgs&lt;/span&gt;&amp;gt; _cEventT;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;//8b) Add a flag to determine if the private event has been hooked up yet&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;bool&lt;/span&gt; cEventArgsHookedFlag = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;//8c) Add a public EventHandler&amp;lt;T&amp;gt; skipped by ProxyGen&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;//&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;In the add method, hook the value to the private EventHandler&amp;lt;T&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;color:green;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Hook the auto-generated non-generic event handler to method which&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;color:green;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;translates the event args and raises the private EventHandler&amp;lt;T&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;event&lt;/span&gt; System.&lt;span style="color:#2b91af;"&gt;EventHandler&lt;/span&gt;&amp;lt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="color:#2b91af;"&gt;EventSampleEventArgs&lt;/span&gt;&lt;/b&gt;.&lt;span style="color:#2b91af;"&gt;cEventArgs&lt;/span&gt;&amp;gt; cEventT&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;add&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;//add the add-in hookup to the private event handler&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;this&lt;/span&gt;. _cEventT += &lt;span style="color:blue;"&gt;value&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;//If the non-generic event isn&amp;rsquo;t hooked into yet, hook into it&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;if&lt;/span&gt; (!cEventArgsHookedFlag)&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;cEventArgsHookedFlag = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;this&lt;/span&gt;.&lt;/span&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt;cEventX&lt;/span&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; += &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MessageAddedEventHandler&lt;/span&gt;(MainApplicationEntryPoint_&lt;/span&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt; cEventX&lt;/span&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;);&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color:blue;"&gt;remove&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;//remove the add-in hookup from the private event handler&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;this&lt;/span&gt;. _cEventT -= &lt;span style="color:blue;"&gt;value&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;//8d) Add method with the signature for the generic event handling, &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;color:green;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;using the auto-generated custom event args. &lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;void&lt;/span&gt; MainApplicationEntryPoint_ cEventX (&lt;span style="color:blue;"&gt;object&lt;/span&gt; sender, &lt;b style="mso-bidi-font-weight:normal;"&gt;EventSample&lt;/b&gt;.&lt;span style="color:#2b91af;"&gt;MessageAddedEventArgs&lt;/span&gt; e)&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;//Raise the private generic event&lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;if&lt;/span&gt; (&lt;span style="color:blue;"&gt;this&lt;/span&gt;. _cEventT != &lt;span style="color:blue;"&gt;null&lt;/span&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="color:#2b91af;"&gt;EventSampleEventArgs&lt;/span&gt;&lt;/b&gt;.&lt;span style="color:#2b91af;"&gt;MessageAddedEventArgs&lt;/span&gt; args = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span style="color:#2b91af;"&gt;EventSampleEventArgs&lt;/span&gt;&lt;/b&gt;.&lt;span style="color:#2b91af;"&gt;MessageAddedEventArgs&lt;/span&gt;(e.MyObject);&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_cEventT (sender, args);&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;color:green;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//9) Expand the partially defined entry point class base class&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;color:green;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;//&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Adding the EventHandler&amp;lt;T&amp;gt; event.&lt;/span&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;abstract&lt;/span&gt; &lt;span style="color:blue;"&gt;partial&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MainApplication&lt;/span&gt; : &lt;span style="color:blue;"&gt;global&lt;/span&gt;::System.&lt;span style="color:#2b91af;"&gt;MarshalByRefObject&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="mso-layout-grid-align:none;" class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;virtual&lt;/span&gt; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;event&lt;/span&gt; System.&lt;span style="color:#2b91af;"&gt;EventHandler&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;EventSampleEventArgs&lt;/span&gt;.&lt;span style="color:#2b91af;"&gt;cEventArgs&lt;/span&gt;&amp;gt; cEventT;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormalCxSpMiddle"&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="font-size:x-small;"&gt;&lt;/span&gt;&lt;/span&gt;
&lt;p&gt;&lt;span style="font-size:9pt;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;</description><enclosure url="http://blogs.summsoft.com/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.00.13.68/EventSample_5F00_VB_5F00_v2.1-EntryPoint-EventHandlerT.zip" length="281934" type="application/x-zip-compressed" /></item><item><title>VSTA Integration templates</title><link>http://blogs.summsoft.com/media/p/1356.aspx</link><pubDate>Mon, 29 Sep 2008 20:51:35 GMT</pubDate><guid isPermaLink="false">ff090588-e3d7-4538-8ee9-e75ea04444bb:1356</guid><dc:creator>Melody</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Templates to help automate VSTA v 2.0 integrations are now available.&amp;nbsp; Run the included setup file to move the templates to the Visual Studio 2008 template caches (may need to restart Visual Studio for templates to work).&lt;/p&gt;
&lt;p&gt;Proxy Project- inlcude all files and post build event necessary to place the proxy assembly in the GAC and rebuild the VSTA pipeline.&amp;nbsp; C# only.&amp;nbsp; (may want to create a new or use existing key.snk file)&lt;/p&gt;
&lt;p&gt;Host Item Provider- Use Find&amp;amp;Replace to replace &amp;quot;YourEntryPointType&amp;quot; with the type of the host entry point.&amp;nbsp; Includes necessary references. Item template.&amp;nbsp; VB &amp;amp; C#&lt;/p&gt;
&lt;p&gt;VstaRunTimeIntegration- Update the variables in the &amp;quot;Variables to update&amp;quot; section including the host entry point type, start-up class for add-ins, and the folder in %MyDocuments% to find add-ins in.&amp;nbsp; Includes necessary references. Item Template.&amp;nbsp; VB &amp;amp; C#&lt;/p&gt;</description><enclosure url="http://blogs.summsoft.com/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.00.13.56/VstaIntegrationTemplates.zip" length="40198" type="application/zip" /></item><item><title>AutoProxyGen v 2.0.0.2</title><link>http://blogs.summsoft.com/media/p/1355.aspx</link><pubDate>Mon, 29 Sep 2008 20:28:44 GMT</pubDate><guid isPermaLink="false">ff090588-e3d7-4538-8ee9-e75ea04444bb:1355</guid><dc:creator>Melody</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;This download includes the executable program and source code for AutoProxyGen as well as a guide for use.&amp;nbsp; To use VSTA with AutoProxyGen run the included setup file (SetupAutoProxyGen.js).&amp;nbsp; A sample add-in which corrects the inheritence bug ProxyGen has with the ShapeAppBasicMFC sample is also included. &lt;/p&gt;
&lt;p&gt;Related Links:&lt;/p&gt;
&lt;p&gt;Blog- &lt;a href="http://www.summsoft.com/blogs/melodys_vsta_blog/archive/2008/10/01/tools-to-automate-vsta-2-0-integrations-autoproxygen-amp-templates.aspx"&gt;Tools to Automate VSTA 2.0 Integrations- AutoProxyGen &amp;amp; Templates&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Video on MSN Videos-&amp;nbsp; &lt;a href="http://www.summsoft.com/blogs/videos/archive/2008/10/01/autoproxygen-from-proxygen-to-autoproxygen.aspx"&gt;From ProxyGen to AutoProxyGen&amp;nbsp;&lt;/a&gt; (text and code may be difficult to read due to compression)&lt;/p&gt;
&lt;p&gt;Video for downloand- &lt;a href="http://www.summsoft.com/media/p/1376.aspx"&gt;From ProxyGen to AutoProxyGen&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Exert from AutoProxyGen Guide.doc:&lt;/p&gt;
&lt;h1&gt;&lt;a name="_Toc210457981"&gt;Overview&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;The AutoProxyGen tool is designed to automate the process of using the ProxyGen tool included with the VSTA v 2.0 SDK.&amp;nbsp; AutoProxyGen inputs file locations and uses these to create and run commands through ProxyGen to ultimately produce the proxy and HostTypeMapProvider (HTMP) files.&amp;nbsp; Once the files locations have been input and the host consumed, you can use AutoProxyGen to specify entry points and exclude items, then save these specification in an input file.&amp;nbsp; AutoProxyGen can be incorporated in build events and includes a basic VSTA v 2 integration to allow for customizations.&lt;/p&gt;
&lt;h1&gt;&lt;a name="_Toc210457982"&gt;ProxyGen&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;What is ProxyGen?&amp;nbsp; &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tool included in the SDK to create the proxy and host type map provider files necessary for a VSTRA v 2.0 integration&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;How does ProxyGen work?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The integrator first designs an OM in their host application and builds the exe, dll, or tlb to expose.&lt;/li&gt;
&lt;li&gt;Through the command prompt enter commands to expose the host application to ProxyGen and create a descriptor file.&lt;/li&gt;
&lt;li&gt;Modify the xml descriptor file specifying entry points and excluded items. Other changes may be necessary.&lt;/li&gt;
&lt;li&gt;Through the command prompt enter commands to expose the updated descriptor file and create the proxy and host type map provider files.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;What are some problems with ProxyGen that AutoProxyGen fixes?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ProxyGen requires manual steps to create the descriptor file, update it, and use it to create the proxy and host type map provider files. AutoProxyGen can do all of these in a build event, through a single command, or through a GUI.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;There are known bugs with ProxyGen including:&lt;/li&gt;
&lt;li&gt;Methods, properties, and events not marked as excluded being excluded&lt;/li&gt;
&lt;li&gt;Structs are created as classes&lt;/li&gt;
&lt;li&gt;Inheritance issues with COM object models&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AutoProxyGen includes workarounds for the first bug, items not marked as excluded are excluded, it automatically excludes structs to prevent them from being created as classes for the 2nd bug, and includes a basic VSTA integration which allows add-ins to be used to correct the inheritance issue in the 3rd bug.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Many hosts require changes to the descriptor and proxy files which must be repeated every time the host changes. AutoProxyGen includes a basic VSTA integration so add-ins may be used to automate these repetitive changes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;h1&gt;&lt;a name="_Toc210457983"&gt;Quick Guide&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;The user enters file locations and selects &amp;quot;Consume Host&amp;quot;.&amp;nbsp; AutoProxyGen creates and runs the 1&lt;sup&gt;st&lt;/sup&gt; ProxyGen command which consumes the host application and creates the descriptor file.&amp;nbsp; Once the descriptor file is created or the user indicates to use an existing file, the descriptor file is consumed and all types and ProxyGen messages are displayed.&amp;nbsp; Once the user has finished specifying entry points and excluded items, the user selects &amp;quot;Create Proxy&amp;quot;.&amp;nbsp; The descriptor file is then updated with the entry points and excluded items, then the 2&lt;sup&gt;nd&lt;/sup&gt; ProxyGen command, which consumes the descriptor file and creates the proxy and HTMP files, is run.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;This can be automated by selecting &amp;quot;Create Input File&amp;quot; once all file locations, entry points and excluded items are specified.&amp;nbsp; Once an input file has been created it can be run by selecting &amp;quot;Consume Input File&amp;quot; or through the command prompt or build event.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Further customizations are possible through VSTA.&amp;nbsp; AutoProxyGen exposes only file locations and 4 events indicating when files have been created.&lt;/p&gt;
&lt;p&gt;Only the entry points and excluded items specified through the AutoProxyGen GUI or input file will be excluded or marked as an entry point in the proxy and HTMP files.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Steps:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1) Enter file locations.&lt;/li&gt;
&lt;li&gt;2) Select &amp;quot;Consume Host&amp;quot;.&lt;/li&gt;
&lt;li&gt;3) Specify entry points and excluded items.&lt;/li&gt;
&lt;li&gt;4) Select &amp;quot;Create Proxy&amp;quot;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Automate AutoProxyGen with input files:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Once step 3 above is complete, select &amp;quot;Create Input File&amp;quot;.&lt;/li&gt;
&lt;li&gt;Use the input file by selecting &amp;quot;Consume Input File&amp;quot; to automate steps 1-4 above.&lt;/li&gt;
&lt;li&gt;Use the input file by running a command through the command prompt.&lt;/li&gt;
&lt;li&gt;Use the input file in a build event (see section on &amp;quot;Using AutoProxyGen as a Build Event&amp;quot;).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Customize AutoProxyGen with VSTA add-ins:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Register AutoProxyGen as a VSTA host by running the included setup file.&lt;/li&gt;
&lt;li&gt;Create and build add-ins.&lt;/li&gt;
&lt;li&gt;Run AutoProxyGen as normal (GUI or build event).&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;&lt;a name="_Toc210457985"&gt;VSTA in AutoProxyGen&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;To allow for customizations AutoProxyGen includes a basic VSTA v 2.0 integration.&amp;nbsp; The object model includes only the file locations and events triggered by files being created or updated.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The templates included use the same post build event as the ShapeAppSamples included with the VSTA v 2.0 SDK which moves the add-in assemblies to %MyDocuments%\AutoProxyGen\AppAddIns.&amp;nbsp; All add-in assemblies found at this location are loaded.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;To use VSTA with AutoProxyGen build the solution file (AutoProxyGen.sln) and run the included setup file (SetupAutoProxyGen.js).&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Events:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;BeforeConsumeHostEvent- Raised prior to executing the 1&lt;sup&gt;st&lt;/sup&gt; ProxyGen command.&lt;/li&gt;
&lt;li&gt;DescriptorFileCreatedEvent- Raised once the descriptor file ready to be consumed. Triggered if the file is created with ProxyGen or if an existing file is used.&lt;/li&gt;
&lt;li&gt;DescriptorFileUpdatedEvent- Raised once the descriptor file is updated with entry points and excluded items but prior to running it through ProxyGen.&lt;/li&gt;
&lt;li&gt;ProxyfileCreatedEvent- Raised once the proxy and HTMP files have been created.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;A sample add-in is included which implements a workaround for COM hosts, correcting their inheritance.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If using VSTA add-ins to work directly with the descriptor file it is strongly recommended that your use the VB.Net template because it includes intellesence for the ProxyGen schema.&amp;nbsp; This feature is not available in C#.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;&lt;a name="_Toc210457986"&gt;Using AutoProxyGen as a Build Event&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;AutoProxyGen may be used from the command line or as a build event.&amp;nbsp; An input file created by AutoProxyGen is required for this and is the only parameter.&amp;nbsp; Within this input file all file locations, entry points, and excluded items are specified. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;When using AutoProxyGen as a build event keep in mind that the HTMP will be created when run.&amp;nbsp; If this file is contained within the host project the host will need to be re-built.&amp;nbsp; A possible work around for this is to build the host twice:&amp;nbsp; first using an input file with the final location for the HTMP (this will move the HTMP into the solution for the second build), the second build should use an input file without the final location for the HTMP.&amp;nbsp; The HTMP only needs to be updated if a new type is being exposed to VSTA.&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Example command:&lt;/p&gt;
&lt;p&gt;AutoProxyGen /i:&amp;quot;C:\ShapeAppSamples\ShapeAppBasicCSharp\AutoProxyGen_Input.xml&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;*Notice the input command is &amp;quot;/i:&amp;quot; immediately followed by the file location with no space.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;&lt;a name="_Toc210457987"&gt;ProxyGen bugs fixed by AutoProxyGen&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;All excluded methods, properties, and events (MPEs) are moved to the end of the parent type automatically to work around a ProxyGen bug which excludes additional MPEs after encountering an excluded MPE.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;There is an &amp;quot;Exclude All Structs&amp;quot; option available which automatically excludes all structs, to work around a ProxyGen bug which creates classes in the proxy file for structs in the host.&amp;nbsp; Once the proxy is generated with all structs included, the structs must be manually added to the proxy project.&amp;nbsp; For more information on this please see the &lt;a href="http://msdn.microsoft.com/en-us/library/cc747850.aspx"&gt;on-line VSTA 2.0 SDK&lt;/a&gt; (&lt;a href="http://msdn.microsoft.com/en-us/library/cc747850.aspx"&gt;http://msdn.microsoft.com/en-us/library/cc747850.aspx&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The sample add-in included demonstrates how to correct the inheritance for COM hosts.&amp;nbsp; ProxyGen does not expose events for COM objects without adding the implementation of the event interfaces.&lt;/p&gt;
&lt;h1&gt;&lt;a name="_Toc210457989"&gt;Tips&lt;/a&gt;&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Base types- ProxyGen does not support external base types an error that the type is not remotable. An easy workaround for this is to exclude the base type. This will allow the type to inherit MarshalByRefObject and pass through the proxy layer; however, it will not pass with its base type functionality. To expose it with this functionality explicitly implement the methods, properties, and events of the base type to expose.&lt;/li&gt;
&lt;/ul&gt;</description><enclosure url="http://blogs.summsoft.com/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.00.13.55/AutoProxyGen-v-2.0.0.2.zip" length="1571388" type="application/zip" /></item><item><title>ShapeAppMacroRecordingCSharp With IPHTerminateOrphanedVSTA observer thread</title><link>http://blogs.summsoft.com/media/p/1292.aspx</link><pubDate>Wed, 10 Sep 2008 02:37:37 GMT</pubDate><guid isPermaLink="false">ff090588-e3d7-4538-8ee9-e75ea04444bb:1292</guid><dc:creator>Gary</dc:creator><slash:comments>5</slash:comments><description>&lt;FONT color=#000080 size=2&gt;
&lt;P&gt;This IPH sample, &lt;/FONT&gt;&lt;B&gt;&lt;FONT size=2&gt;IPHTerminateOrphanedVSTA,&lt;/B&gt;&lt;/FONT&gt;&lt;FONT color=#000080 size=2&gt; uses a global mutext to start one, and only one, simple observer thread. The observer thread continues to execute while the vsta&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#000080 size=2&gt;process is alive, whether or not a project is open..&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#000080 size=2&gt;The observer thread periodically checks for existence of the hostProcess. If there is no hostProcess running, and there is an orphaned vsta.exe, the observer thread shuts down the orphan vsta process before exiting. The IPH allows opening the VSTA as a standlone IDE (observer thread is not started). &lt;/P&gt;
&lt;P&gt;You should even be able to lift the code from IPH.cs and use it almost directly in your vsta projects' existing IPH:&lt;/P&gt;
&lt;P&gt;hostProcessName = &lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;"ShapeAppCSharp"&lt;/FONT&gt;&lt;FONT color=#000080 size=2&gt;; &lt;/P&gt;
&lt;P&gt;is the only thing you'll need to change in IPH.cs to work with your host process.&lt;/P&gt;
&lt;P&gt;To run the attached sample, follow these 5 steps. The steps assume 1. ShapeAppMacroRecordingCSharp is the host; 2. that you have already installed, run ShapeAppMacroRecordingCSharp (from VSTA 2.0 SDK Release bits) and launched the IDE at least once; And 3. that you will move out or rename the original ShapeAppMacroRecordingCSharp solution folder tree and drop this solution in its place (preserving registered name and folderpath):&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;1. Build IPHTerminateOrphanedVSTA project along with the ShapeAppMacroRecordingCSharp solution. This should create the assembly:&lt;/P&gt;
&lt;P&gt;ShapeAppMacroRecordingCSharp\IPHTerminateOrphanedVSTA\IPHTerminateOrphanedVSTA\bin\Debug\&lt;B&gt;IPHTerminateOrphanedVSTA.dll&lt;/P&gt;&lt;/B&gt;
&lt;P&gt;and should also install it into the GAC (via InstallInGAC.bat), listing the asembly info in the VS output window:&lt;/P&gt;
&lt;P&gt;"The Global Assembly Cache contains the following assemblies:&lt;/P&gt;
&lt;P&gt;IPHTerminateOrphanedVSTA, Version=1.0.0.0, Culture=neutral, PublicKeyToken=5993c97a24fb6aa3, processorArchitecture=MSIL"&lt;/P&gt;
&lt;P&gt;2. Run the IPHTerminateOrphanedVSTA.IHP.reg file (double-click on it from Windows Explorer) included in the IPHTerminateOrphanedVSTA project to add IPH to registry.&lt;/P&gt;
&lt;P&gt;3. Explore the ShapeAppMacroRecordingCSharp\templates\CSharp\ShapeAppCSharp-AppLevel.zip, and confirm that ShapeAppCSharpAppAddInProject.csproj includes the IPH entry:&lt;/P&gt;
&lt;P&gt;&amp;lt;InProcHost&amp;gt;{2CD68381-5859-4afe-88AC-42D13CD4B335}&amp;lt;/InProcHost&amp;gt; &lt;/P&gt;
&lt;P&gt;4. Update the HKEY_LOCAL_MACHINE\Software\Microsoft\VSTAHost\&lt;B&gt;ShapeAppCSharp&lt;/B&gt; registry hive so host app will use newly registered IPH (from step 2):&lt;/P&gt;
&lt;P&gt;Delete the 9.0 key under the ShapeAppCSharp key, HKEY_LOCAL_MACHINE\Software\Microsoft\VSTAHost\ShapeAppCSharp\9.0, &lt;/P&gt;
&lt;P&gt;then, run vsta /hostid ShapeAppCSharp /setupfrom the command line&lt;/P&gt;
&lt;P&gt;5. Finally, follow the instructions in IPH.cs to run ShapeAppCSharp and test the IPH:&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;
&lt;P&gt;//To debug this IPH follow this sequence:&lt;/P&gt;
&lt;P&gt;//1. start ShapeAppMacroRecordingCSharp sample directly from .exe or select 'Debug | Start Without Debugging' in VS &lt;/P&gt;
&lt;P&gt;//2. Show VSTA IDE (Alt + F11), should load a macro project with no IPH&lt;/P&gt;
&lt;P&gt;// (if macro project has IPH, just remove entry &amp;lt;InProcHost&amp;gt;{2CD68381-5859-4afe-88AC-42D13CD4B335}&amp;lt;/InProcHost&amp;gt; from ShapeAppMacros.csproj before 'Tools | ShowIDE' opens it).&lt;/P&gt;
&lt;P&gt;//3. In VS, 'Debug | Attach To Process...' select vsta.exe&lt;/P&gt;
&lt;P&gt;//4. In VSTA IDE, 'File | New Project', select CSharp template, discard open project and this IPH (IPHTerminateOrphanedVSTA.IPH.SetAdapter() should be called.&lt;/P&gt;
&lt;P&gt;//5. From 'Task Manager', kill ShapeAppCSharp.exe and the CheckForHostObserverThread.CheckforHostProcess should drop into section where this call is made:&lt;/P&gt;
&lt;P&gt;// System.Diagnostics.Process vstaProc = System.Diagnostics.Process.GetCurrentProcess(); so that vsta.exe can be terminated.&lt;/P&gt;&lt;/FONT&gt;</description><enclosure url="http://blogs.summsoft.com/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.00.12.92/ShapeAppMacroRecordingCSharp_2D00_WithIPHTerminateOrphanedVSTA.zip" length="253856" type="application/x-zip-compressed" /></item></channel></rss>
