<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://vsip.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>Summit Software</title><link>http://vsip.summsoft.com/media/</link><description /><dc:language>en-US</dc:language><generator>CommunityServer 2008 SP1 (Build: 30619.63)</generator><item><title>MSDN: VSTA 2.0 Brings Power to the People</title><link>http://vsip.summsoft.com/media/p/2363.aspx</link><pubDate>Wed, 01 Dec 2010 20:28:09 GMT</pubDate><guid isPermaLink="false">ff090588-e3d7-4538-8ee9-e75ea04444bb:2363</guid><dc:creator>Gary</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Author: Gary Depue&lt;/p&gt;
&lt;p&gt;Published: MSDN Magazine March 2008&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description><enclosure url="http://vsip.summsoft.com/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.00.23.63/MSDN_5F00_LaunchGuide.pdf" length="905339" type="application/pdf" /></item><item><title>vbe6.dll 6.5.1053 Debug</title><link>http://vsip.summsoft.com/media/p/2136.aspx</link><pubDate>Tue, 11 May 2010 18:33:01 GMT</pubDate><guid isPermaLink="false">ff090588-e3d7-4538-8ee9-e75ea04444bb:2136</guid><dc:creator>jimg</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;This security update resolves a privately reported vulnerability in Microsoft Visual Basic for Applications. The vulnerability could allow remote code execution if a host application opens and passes a specially crafted file to the Visual Basic for Applications runtime. If a user is logged on with administrative user rights, an attacker who successfully exploited this vulnerability could take complete control of an affected system. An attacker could then install programs; view, change, or delete data; or create new accounts with full user rights. Users whose accounts are configured to have fewer user rights on the system could be less impacted than users who operate with administrative user rights.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;font-size:11pt;mso-fareast-font-family:&amp;#39;MS Mincho&amp;#39;;mso-fareast-theme-font:minor-fareast;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:EN-US;mso-fareast-language:JA;mso-bidi-language:AR-SA;"&gt;&lt;a href="http://www.microsoft.com/technet/security/Bulletin/MS10-031.mspx"&gt;&lt;span style="color:#800080;"&gt;http://www.microsoft.com/technet/security/Bulletin/MS10-031.mspx&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description><enclosure url="http://vsip.summsoft.comftp://ftp.summsoft.com/vba/debug/vbe6.dll" length="-1" type="application/octet-stream" /></item><item><title>VBAOF11.msi Debug</title><link>http://vsip.summsoft.com/media/p/2135.aspx</link><pubDate>Tue, 11 May 2010 18:31:29 GMT</pubDate><guid isPermaLink="false">ff090588-e3d7-4538-8ee9-e75ea04444bb:2135</guid><dc:creator>jimg</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;This security update resolves a privately reported vulnerability in Microsoft Visual Basic for Applications. The vulnerability could allow remote code execution if a host application opens and passes a specially crafted file to the Visual Basic for Applications runtime. If a user is logged on with administrative user rights, an attacker who successfully exploited this vulnerability could take complete control of an affected system. An attacker could then install programs; view, change, or delete data; or create new accounts with full user rights. Users whose accounts are configured to have fewer user rights on the system could be less impacted than users who operate with administrative user rights.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;font-size:11pt;mso-fareast-font-family:&amp;#39;MS Mincho&amp;#39;;mso-fareast-theme-font:minor-fareast;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:EN-US;mso-fareast-language:JA;mso-bidi-language:AR-SA;"&gt;&lt;a href="http://www.microsoft.com/technet/security/Bulletin/MS10-031.mspx"&gt;&lt;span style="color:#800080;"&gt;http://www.microsoft.com/technet/security/Bulletin/MS10-031.mspx&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description><enclosure url="http://vsip.summsoft.comftp://ftp.summsoft.com/vba/debug/vbaof11.msi" length="-1" type="application/octet-stream" /></item><item><title>VBAOF11.msi Release</title><link>http://vsip.summsoft.com/media/p/2134.aspx</link><pubDate>Tue, 11 May 2010 18:25:19 GMT</pubDate><guid isPermaLink="false">ff090588-e3d7-4538-8ee9-e75ea04444bb:2134</guid><dc:creator>jimg</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;This security update resolves a privately reported vulnerability in Microsoft Visual Basic for Applications. The vulnerability could allow remote code execution if a host application opens and passes a specially crafted file to the Visual Basic for Applications runtime. If a user is logged on with administrative user rights, an attacker who successfully exploited this vulnerability could take complete control of an affected system. An attacker could then install programs; view, change, or delete data; or create new accounts with full user rights. Users whose accounts are configured to have fewer user rights on the system could be less impacted than users who operate with administrative user rights.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#1f497d;font-size:11pt;mso-fareast-font-family:&amp;#39;MS Mincho&amp;#39;;mso-fareast-theme-font:minor-fareast;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:EN-US;mso-fareast-language:JA;mso-bidi-language:AR-SA;"&gt;&lt;a href="http://www.microsoft.com/technet/security/Bulletin/MS10-031.mspx"&gt;&lt;span style="color:#800080;"&gt;http://www.microsoft.com/technet/security/Bulletin/MS10-031.mspx&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description><enclosure url="http://vsip.summsoft.comftp://ftp.summsoft.com/vba/vbaof11.msi" length="-1" type="application/octet-stream" /></item><item><title>vbe6.dll 6.5.1053 Release</title><link>http://vsip.summsoft.com/media/p/2132.aspx</link><pubDate>Tue, 11 May 2010 18:21:48 GMT</pubDate><guid isPermaLink="false">ff090588-e3d7-4538-8ee9-e75ea04444bb:2132</guid><dc:creator>jimg</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;This security update resolves a privately reported vulnerability in Microsoft Visual Basic for Applications. The vulnerability could allow remote code execution if a host application opens and passes a specially crafted file to the Visual Basic for Applications runtime. If a user is logged on with administrative user rights, an attacker who successfully exploited this vulnerability could take complete control of an affected system. An attacker could then install programs; view, change, or delete data; or create new accounts with full user rights. Users whose accounts are configured to have fewer user rights on the system could be less impacted than users who operate with administrative user rights.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.microsoft.com/technet/security/Bulletin/MS10-031.mspx"&gt;http://www.microsoft.com/technet/security/Bulletin/MS10-031.mspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description><enclosure url="http://vsip.summsoft.comftp://ftp.summsoft.com/vba/vbe6.dll" length="-1" type="application/octet-stream" /></item><item><title>ShapeAppBasicMFC with Document Entry Point</title><link>http://vsip.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;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description><enclosure url="http://vsip.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://vsip.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;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description><enclosure url="http://vsip.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://vsip.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;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description><enclosure url="http://vsip.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://vsip.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;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description><enclosure url="http://vsip.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://vsip.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;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description><enclosure url="http://vsip.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://vsip.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;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description><enclosure url="http://vsip.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>Autodesk Revit VSTA Case Study</title><link>http://vsip.summsoft.com/media/p/1651.aspx</link><pubDate>Fri, 23 Jan 2009 14:47:33 GMT</pubDate><guid isPermaLink="false">ff090588-e3d7-4538-8ee9-e75ea04444bb:1651</guid><dc:creator>dschneid</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;A case study outlining Autodesk Revit&amp;#39;s integration of VSTA and the benefits derived from the integration of VSTA into Revit.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description><enclosure url="http://vsip.summsoft.com/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.00.16.51/Autodesk-Revit-Case-Study.pdf" length="467885" type="application/pdf" /></item><item><title>ShapeAppBasicCSharpGenericCollectionAdapter  sample hooks VSTA pipeline to pass custom type: IList&lt;Document&gt;</title><link>http://vsip.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;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description><enclosure url="http://vsip.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://vsip.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;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description><enclosure url="http://vsip.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://vsip.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;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description><enclosure url="http://vsip.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://vsip.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;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description><enclosure url="http://vsip.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>EventSample VB v2.1 – Exposing Generic Events in Entry Point classes</title><link>http://vsip.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;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description><enclosure url="http://vsip.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://vsip.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;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description><enclosure url="http://vsip.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://vsip.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;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description><enclosure url="http://vsip.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://vsip.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://vsip.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><item><title>EventSample VB for VSTA v 2</title><link>http://vsip.summsoft.com/media/p/1258.aspx</link><pubDate>Tue, 02 Sep 2008 21:01:03 GMT</pubDate><guid isPermaLink="false">ff090588-e3d7-4538-8ee9-e75ea04444bb:1258</guid><dc:creator>Melody</dc:creator><slash:comments>0</slash:comments><description>&lt;h3&gt;Overview:&lt;/h3&gt;

&lt;p class="MsoNormal"&gt;This sample is intended to expose several common tasks in
VSTA, including: declaring an object, using and manipulating a form, and handling
form events and event args.&lt;span&gt;&amp;nbsp; &lt;/span&gt;This sample
contains a very simple object, form, application with a basic VSTA integration,
and an add-in.&lt;span&gt;&amp;nbsp; &lt;/span&gt;An EventHelper is used to
prevent any errors in add-in event handling.&lt;/p&gt;

&lt;p class="MsoNormal"&gt;To run the sample, extract the files, open and build the
EventSample solution, then run the setup file included (double click or use the
command “cscript SetupEventSample.js” from a command prompt).&lt;span&gt;&amp;nbsp; &lt;/span&gt;Next, open and build the add-in solution
included in the Samples folder.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Run the
EventSample application, which should now automatically find and load the sample
add-in included.&lt;/p&gt;

&lt;p class="MsoNormal"&gt;The EventSample application records button clicks and input
from a text box in a list box.&lt;span&gt;&amp;nbsp; &lt;/span&gt;The
sample add-in responds to mouse clicks on any of the buttons on the form, to adding
input through the add button, clearing the display, and selecting the Open
button.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Event handling for the Save and
Close buttons in the add-in is not implemented.&lt;/p&gt;

&lt;p class="MsoNormal"&gt;Included in this sample:&lt;/p&gt;

&lt;table class="MsoNormalTable" style="border:medium none;border-collapse:collapse;" cellpadding="0" cellspacing="0"&gt;
 &lt;tr style="height:0.2in;"&gt;
  &lt;td style="border:1pt solid black;padding:0in 5.4pt;width:106.3pt;height:0.2in;"&gt;
  &lt;p class="MsoNormal" style="margin:3pt 0in;text-align:center;line-height:normal;" align="center"&gt;&lt;b&gt;Item&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-style:solid solid solid none;border-color:black black black -moz-use-text-color;border-width:1pt 1pt 1pt medium;padding:0in 5.4pt;width:372.5pt;height:0.2in;"&gt;
  &lt;p class="MsoNormal" style="margin:3pt 0in;text-align:center;line-height:normal;" align="center"&gt;&lt;b&gt;Description&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="height:0.2in;"&gt;
  &lt;td style="border-style:none solid solid;border-color:-moz-use-text-color black black;border-width:medium 1pt 1pt;padding:0in 5.4pt;width:106.3pt;height:0.2in;"&gt;
  &lt;p class="MsoNormal" style="margin:3pt 0in;line-height:normal;"&gt;MainForm&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color black black -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:372.5pt;height:0.2in;"&gt;
  &lt;p class="MsoNormal" style="margin:3pt 0in;line-height:normal;"&gt;Main user form and empty code class.&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="height:0.2in;"&gt;
  &lt;td style="border-style:none solid solid;border-color:-moz-use-text-color black black;border-width:medium 1pt 1pt;padding:0in 5.4pt;width:106.3pt;height:0.2in;"&gt;
  &lt;p class="MsoNormal" style="margin:3pt 0in;line-height:normal;"&gt;Program&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color black black -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:372.5pt;height:0.2in;"&gt;
  &lt;p class="MsoNormal" style="margin:3pt 0in;line-height:normal;"&gt;Starting point in the host
  application.&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="height:0.2in;"&gt;
  &lt;td style="border-style:none solid solid;border-color:-moz-use-text-color black black;border-width:medium 1pt 1pt;padding:0in 5.4pt;width:106.3pt;height:0.2in;"&gt;
  &lt;p class="MsoNormal" style="margin:3pt 0in;line-height:normal;"&gt;MainApplication&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color black black -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:372.5pt;height:0.2in;"&gt;
  &lt;p class="MsoNormal" style="margin:3pt 0in;line-height:normal;"&gt;Main application class.&lt;span&gt;&amp;nbsp; &lt;/span&gt;All application specific code is here.&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="height:0.2in;"&gt;
  &lt;td style="border-style:none solid solid;border-color:-moz-use-text-color black black;border-width:medium 1pt 1pt;padding:0in 5.4pt;width:106.3pt;height:0.2in;"&gt;
  &lt;p class="MsoNormal" style="margin:3pt 0in;line-height:normal;"&gt;MainObject&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color black black -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:372.5pt;height:0.2in;"&gt;
  &lt;p class="MsoNormal" style="margin:3pt 0in;line-height:normal;"&gt;Main object used by the
  MainApplication class.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Consists of a
  string.&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="height:0.2in;"&gt;
  &lt;td style="border-style:none solid solid;border-color:-moz-use-text-color black black;border-width:medium 1pt 1pt;padding:0in 5.4pt;width:106.3pt;height:0.2in;"&gt;
  &lt;p class="MsoNormal" style="margin:3pt 0in;line-height:normal;"&gt;EventArgs&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color black black -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:372.5pt;height:0.2in;"&gt;
  &lt;p class="MsoNormal" style="margin:3pt 0in;line-height:normal;"&gt;Contains class definitions for
  custom event used by the MainApplication.&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="height:0.2in;"&gt;
  &lt;td style="border-style:none solid solid;border-color:-moz-use-text-color black black;border-width:medium 1pt 1pt;padding:0in 5.4pt;width:106.3pt;height:0.2in;"&gt;
  &lt;p class="MsoNormal" style="margin:3pt 0in;line-height:normal;"&gt;EventHelper&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color black black -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:372.5pt;height:0.2in;"&gt;
  &lt;p class="MsoNormal" style="margin:3pt 0in;line-height:normal;"&gt;Class taken from ShapeApp samples
  to manage events from the host application and add-ins.&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="height:0.2in;"&gt;
  &lt;td style="border-style:none solid solid;border-color:-moz-use-text-color black black;border-width:medium 1pt 1pt;padding:0in 5.4pt;width:106.3pt;height:0.2in;"&gt;
  &lt;p class="MsoNormal" style="margin:3pt 0in;line-height:normal;"&gt;VstaRunTimeIntegration&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color black black -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:372.5pt;height:0.2in;"&gt;
  &lt;p class="MsoNormal" style="margin:3pt 0in;line-height:normal;"&gt;Class based on the ShapeApp samples
  which uses the VSTA pipeline to load and manage add-ins.&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="height:0.2in;"&gt;
  &lt;td style="border-style:none solid solid;border-color:-moz-use-text-color black black;border-width:medium 1pt 1pt;padding:0in 5.4pt;width:106.3pt;height:0.2in;"&gt;
  &lt;p class="MsoNormal" style="margin:3pt 0in;line-height:normal;"&gt;HostItemProvider&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color black black -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:372.5pt;height:0.2in;"&gt;
  &lt;p class="MsoNormal" style="margin:3pt 0in;line-height:normal;"&gt;Class based on the ShapeApp samples
  which allows add-ins to access the host object model.&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="height:0.2in;"&gt;
  &lt;td style="border-style:none solid solid;border-color:-moz-use-text-color black black;border-width:medium 1pt 1pt;padding:0in 5.4pt;width:106.3pt;height:0.2in;"&gt;
  &lt;p class="MsoNormal" style="margin:3pt 0in;line-height:normal;"&gt;HostTypeMapProvider&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color black black -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:372.5pt;height:0.2in;"&gt;
  &lt;p class="MsoNormal" style="margin:3pt 0in;line-height:normal;"&gt;HTMP file generated by ProxyGen and
  translated into Visual Basic.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Maps the
  types to canocial names for translation between the host and add-ins.&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="height:0.2in;"&gt;
  &lt;td style="border-style:none solid solid;border-color:-moz-use-text-color black black;border-width:medium 1pt 1pt;padding:0in 5.4pt;width:106.3pt;height:0.2in;"&gt;
  &lt;p class="MsoNormal" style="margin:3pt 0in;line-height:normal;"&gt;EventSampleProxy&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color black black -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:372.5pt;height:0.2in;"&gt;
  &lt;p class="MsoNormal" style="margin:3pt 0in;line-height:normal;"&gt;Proxy file generated by ProxyGen
  and updated to allow generic event handling.&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="height:0.2in;"&gt;
  &lt;td style="border-style:none solid solid;border-color:-moz-use-text-color black black;border-width:medium 1pt 1pt;padding:0in 5.4pt;width:106.3pt;height:0.2in;"&gt;
  &lt;p class="MsoNormal" style="margin:3pt 0in;line-height:normal;"&gt;EventSampleProject1&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color black black -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:372.5pt;height:0.2in;"&gt;
  &lt;p class="MsoNormal" style="margin:3pt 0in;line-height:normal;"&gt;A sample add-in that interacts with
  the events of the host application.&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
&lt;/table&gt;

&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;b&gt;&lt;span style="font-size:10pt;line-height:115%;font-family:'Tahoma','sans-serif';color:black;"&gt;&lt;br style="page-break-before:always;"&gt;
&lt;/span&gt;&lt;/b&gt;

&lt;h3&gt;I)&lt;span&gt;&amp;nbsp; &lt;/span&gt;Declaring Objects in VSTA&lt;/h3&gt;

&lt;p class="MsoNormal"&gt;VSTA cannot access constructors from the host application.&lt;span&gt;&amp;nbsp; &lt;/span&gt;The constructors included in the proxy file
are for internal use only.&lt;span&gt;&amp;nbsp; &lt;/span&gt;To create an
object in VSTA, a public method must be available in the add-in entry point, in
this case the MainApplication class, which constructs the object, then returns
it.&lt;span&gt;&amp;nbsp; &lt;/span&gt;The code below shows an object
class, MainObject, the MainApplication class, and an add-in.&lt;span&gt;&amp;nbsp; &lt;/span&gt;In the MainApplication class, the method
NewObject is used by the add-in to create a MainObject in the add-in.&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' HOST&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' &lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:gray;"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' Simple
object used by the main application.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' &lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;Public&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;span style="color:blue;"&gt;Class&lt;/span&gt; MainObject&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' &lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' Holds a
message which is displayed on the main form.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' &lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;Private&lt;/span&gt;
mMessage &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;String&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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; Message() &lt;span style="color:blue;"&gt;As&lt;/span&gt;
&lt;span style="color:blue;"&gt;String&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;
mMessage&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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; &lt;span style="color:blue;"&gt;String&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;mMessage = value&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' &lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' Creates a new
MainObject with the message passed in.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' &lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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; messageIn &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;String&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Message = messageIn&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;End&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;span style="color:blue;"&gt;Class&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' HOST&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' &lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:gray;"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' Main class
of the application.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' VSTA entry
point.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' &lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;Public&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;span style="color:blue;"&gt;Class&lt;/span&gt; MainApplication&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' &lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' Factory
method used to create a new MainObject.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' &lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' &lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;remarks&amp;gt;&lt;/span&gt;&lt;span style="color:green;"&gt;VSTA
requires objects to be created on the host side&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' using a
factory method instead of using the "New" operator&lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;/remarks&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;Function&lt;/span&gt; NewObject(&lt;span style="color:blue;"&gt;ByVal&lt;/span&gt;
inMessage &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;String&lt;/span&gt;)
&lt;span style="color:blue;"&gt;As&lt;/span&gt; MainObject&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&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; &lt;span style="color:blue;"&gt;New&lt;/span&gt; MainObject(inMessage)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="margin:0in 0in 0.0001pt;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;Function&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="margin:0in 0in 0.0001pt;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&lt;span&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;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="margin:0in 0in 0.0001pt;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;End&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;span style="color:blue;"&gt;Class&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="margin:0in 0in 0.0001pt;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;''' ADD-IN&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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; AppAddIn_Startup(&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;
System.EventArgs) &lt;span style="color:blue;"&gt;Handles&lt;/span&gt; &lt;span style="color:blue;"&gt;Me&lt;/span&gt;.Startup&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;'create a new
MainObject&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;Dim&lt;/span&gt;
myObject &lt;span style="color:blue;"&gt;As&lt;/span&gt; MainObject = &lt;span style="color:blue;"&gt;Me&lt;/span&gt;.NewObject(&lt;span&gt;"New
MainObject for VSTA add-in"&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h3&gt;&lt;span style="font-size:10pt;line-height:115%;font-family:'Courier New';"&gt;&lt;span&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;span style="font-size:10pt;line-height:115%;font-family:'Tahoma','sans-serif';color:black;"&gt;&lt;br style="page-break-before:always;"&gt;
&lt;/span&gt;II)&lt;span&gt;&amp;nbsp; &lt;/span&gt;Using Forms in VSTA&lt;/h3&gt;

&lt;p class="MsoNormal"&gt;Forms and other objects under System.Windows.Forms cannot be
passed through the proxy layer because they are not serializable.&lt;span&gt;&amp;nbsp; &lt;/span&gt;To include a form, or any
System.Windows.Forms object, make it an internal property in the main
application and exclude the form’s class in the descriptor file.&lt;span&gt;&amp;nbsp; &lt;/span&gt;The code below demonstrates how to start a
windows form based application.&lt;span&gt;&amp;nbsp; &lt;/span&gt;The
starting point of the host application, the Program class, contains a
MainApplication property.&lt;span&gt;&amp;nbsp; &lt;/span&gt;The
MainApplication class contains a MyForm property which is run by the Program
class.&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' HOST&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' &lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:gray;"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' Startup
object of the host application.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' &lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;Public&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;span style="color:blue;"&gt;Class&lt;/span&gt; Program&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;STAThread()&amp;gt; _&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;Shared&lt;/span&gt; &lt;span style="color:blue;"&gt;Sub&lt;/span&gt; Main()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;'prepare to
use forms&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Application.EnableVisualStyles()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;Application.SetCompatibleTextRenderingDefault(&lt;span style="color:blue;"&gt;False&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;'create the
application&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;Dim&lt;/span&gt;
thisApplication &lt;span style="color:blue;"&gt;As&lt;/span&gt; MainApplication = &lt;span style="color:blue;"&gt;New&lt;/span&gt; MainApplication()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;'run the form&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Application.Run(thisApplication.MyForm)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&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;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;End&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;span style="color:blue;"&gt;Class&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' HOST&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' &lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:gray;"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' Main class
of the application.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' VSTA entry
point.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' &lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;Public&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;span style="color:blue;"&gt;Class&lt;/span&gt; MainApplication&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' &lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' Form used
internally only.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' &lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;Private&lt;/span&gt;
mMyForm &lt;span style="color:blue;"&gt;As&lt;/span&gt; MainForm&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;Friend&lt;/span&gt; &lt;span style="color:blue;"&gt;ReadOnly&lt;/span&gt; &lt;span style="color:blue;"&gt;Property&lt;/span&gt;
MyForm() &lt;span style="color:blue;"&gt;As&lt;/span&gt; MainForm&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;
mMyForm&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;End&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;span style="color:blue;"&gt;Class&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;b&gt;&lt;span style="font-size:10pt;line-height:115%;font-family:'Tahoma','sans-serif';color:black;"&gt;&lt;br style="page-break-before:always;"&gt;
&lt;/span&gt;&lt;/b&gt;

&lt;h3&gt;III)&lt;span&gt;&amp;nbsp; &lt;/span&gt;Manipulating a form in VSTA&lt;/h3&gt;

&lt;p class="MsoNormal"&gt;With the form set as an internal property in the
MainApplication class, VSTA cannot directly interact with the form or its
controls.&lt;span&gt;&amp;nbsp; &lt;/span&gt;To interact with these, the
AddInEntryPoint (in this case the MainApplication class) must contain public
methods which handle these interactions.&lt;span&gt;&amp;nbsp;
&lt;/span&gt;The code below shows the MainApplication’s addTextToListBox method which
takes in a string and adds it to the list box lstDisplay contained on the
form.&lt;span&gt;&amp;nbsp; &lt;/span&gt;The add-in calls this method and
the string passed in from the add-in is displayed in the list box on the form.&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' HOST&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' &lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:gray;"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' Main class
of the host application.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' VSTA entry
point.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' &lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;Public&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;span style="color:blue;"&gt;Class&lt;/span&gt; MainApplication&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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; addTextToListBox(&lt;span style="color:blue;"&gt;ByVal&lt;/span&gt;
message &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;String&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;'display the
message in the list box&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;MyForm.lstDisplay.Items.Add(message)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;End&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;span style="color:blue;"&gt;Class&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="margin:0in 0in 0.0001pt;"&gt;&lt;span style="font-size:10pt;font-family:'Tahoma','sans-serif';color:black;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;''' ADD-IN&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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; AppAddIn_Startup(&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;
System.EventArgs) &lt;span style="color:blue;"&gt;Handles&lt;/span&gt; &lt;span style="color:blue;"&gt;Me&lt;/span&gt;.Startup&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;'add a
message to the list box&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;addTextToListBox(&lt;span&gt;"Message from VSTA add-in"&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h3&gt;&lt;span style="font-size:10pt;line-height:115%;font-family:'Courier New';"&gt;&lt;span&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;span style="font-size:10pt;line-height:115%;font-family:'Tahoma','sans-serif';color:black;"&gt;&lt;br style="page-break-before:always;"&gt;
&lt;/span&gt;IV)&lt;span&gt;&amp;nbsp; &lt;/span&gt;Form Events in VSTA&lt;/h3&gt;

&lt;p class="MsoNormal"&gt;In order for an add-in to catch an event on a form, the host
application must catch the event and fire a public event that VSTA can
see.&lt;span&gt;&amp;nbsp; &lt;/span&gt;In the code below, the constructor
of the MainApplication calls the method HookUpEvents which associates a method
in the host application, DisplayClear, with an event generated by the form, a
button click.&lt;span&gt;&amp;nbsp; &lt;/span&gt;The method in the host
application hooked up to this form event, DisplayClear, fires the public event,
DisplayClearedEvent, which VSTA can see.&lt;span&gt;&amp;nbsp;
&lt;/span&gt;The add-in hooks up a method, AddIn_DisplayClear, with the event and
displays a line of text on the form.&lt;/p&gt;

&lt;p class="MsoNormal"&gt;Note: When firing events accessible from VSTA it is
important to use the host application (or object within the host application)
as the sender, by specifying “me” (“this” in C#).&lt;span&gt;&amp;nbsp; &lt;/span&gt;Using the original sender will not work.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' HOST&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' &lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:gray;"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' Main class
of the host application.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' VSTA entry
point.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' &lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;Public&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;span style="color:blue;"&gt;Class&lt;/span&gt; MainApplication&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' &lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' Prepares the
host application to run.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' Sets up the
list of objects and the form.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' Hooks up form
events to methods that will raise VSTA visible events.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' &lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;'instantiate
the form and lis tof messages&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;mMyForm = &lt;span style="color:blue;"&gt;New&lt;/span&gt;
MainForm&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;mMyObjects = &lt;span style="color:blue;"&gt;New&lt;/span&gt;
List(&lt;span style="color:blue;"&gt;Of&lt;/span&gt; MainObject)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;'hook up the
event handling to the form&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;HookUpEvents()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' &lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' Event raised
when the display is cleared&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' &lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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; DisplayClearedEvent &lt;span style="color:blue;"&gt;As&lt;/span&gt;
EventHandler&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' &lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' Associates
form events with methods that will raise &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;'''&lt;span&gt;&amp;nbsp;
&lt;/span&gt;VSTA visible events.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' &lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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; HookUpEvents()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;'Event
handling for the form, not exposed to VSTA&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;VSTA accessable events are raised in the methods
hooked into&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;
MyForm.cmdClear.Click, &lt;span style="color:blue;"&gt;AddressOf&lt;/span&gt;
RaiseDisplayClear&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' &lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' Raises the
DisplayClearedEvent visible to VSTA&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' &lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' &lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;remarks&amp;gt;&lt;/span&gt;&lt;span style="color:green;"&gt;Notice the
event delegate passed to the EventHelper is EventNameEvent not EventName.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' This is due
to VB syntax.&lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;/remarks&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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; RaiseDisplayClear()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;EventHelper.Invoke(DisplayClearedEventEvent, &lt;span style="color:blue;"&gt;Me&lt;/span&gt;,
EventArgs.Empty)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;End&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;span style="color:blue;"&gt;Class&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="margin:0in 0in 0.0001pt;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;''' ADD-IN&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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; AppAddIn_Startup(&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;
System.EventArgs) &lt;span style="color:blue;"&gt;Handles&lt;/span&gt; &lt;span style="color:blue;"&gt;Me&lt;/span&gt;.Startup&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;
DisplayClearedEvent, &lt;span style="color:blue;"&gt;AddressOf&lt;/span&gt; &lt;b&gt;AddIn_DisplayClear&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;'manually added
event handling&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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; &lt;b&gt;AddIn_DisplayClear&lt;/b&gt;()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;addTextToListBox(&lt;span&gt;"Add-in saw display clear"&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;'event handling
added through the drop down menus&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;Private&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;span style="color:blue;"&gt;Sub&lt;/span&gt; AppAddIn_DisplayClearedEvent(&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; System.EventArgs) &lt;b&gt;&lt;span style="color:blue;"&gt;Handles&lt;/span&gt;&lt;/b&gt; &lt;span style="color:blue;"&gt;Me&lt;/span&gt;.DisplayClearedEvent&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;addTextToListBox(&lt;span&gt;"Add-in saw display clear (twice)"&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;span style="font-size:10pt;font-family:'Tahoma','sans-serif';color:black;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;span style="font-size:16pt;line-height:115%;font-family:'Cambria','serif';"&gt;&lt;/span&gt;&lt;br&gt;&lt;h3&gt;V)&lt;span&gt;&amp;nbsp; &lt;/span&gt;Using EventArgs in VSTA&lt;/h3&gt;

&lt;p class="MsoNormal"&gt;Like forms, EventArgs based on the System.Windows.Forms
class cannot be passed between the host application and add-ins because they
are not serializable.&lt;span&gt;&amp;nbsp; &lt;/span&gt;One work around
for this is to use custom event args.&lt;span&gt;&amp;nbsp;
&lt;/span&gt;The custom event args should have serializable public properties to hold
information from the event args based on System.Windows.Forms.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Below is the ButtonClickEventArgs class is
used in place of System.Windows.Forms.MouseEventArgs to pass information about
button clicks on the form to the add-ins.&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' HOST&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' &lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:gray;"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' Custom event
args to hold button click information&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' to expose to
VSTA.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' &lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' &lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:gray;"&gt;&amp;lt;remarks&amp;gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;This wrapper class is used to pass information instead of &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;'''&lt;span&gt;&amp;nbsp; &lt;/span&gt;passing the MouseEventArgs directly because
System.Windows.Forms is&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;'''&lt;span&gt;&amp;nbsp; &lt;/span&gt;not serializable therefore cannot be passed.&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:gray;"&gt;&amp;lt;/remarks&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;Public&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;span style="color:blue;"&gt;Class&lt;/span&gt; ButtonClickEventArgs&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;Inherits&lt;/span&gt;
EventArgs&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' &lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' Name of the
button which was clicked&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' &lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;ReadOnly&lt;/span&gt; &lt;span style="color:blue;"&gt;Property&lt;/span&gt;
ButtonName() &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;String&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;
mButtonName&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;Private&lt;/span&gt;
mButtonName &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;String&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' &lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' Which mouse
button was used- right or left.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' &lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;ReadOnly&lt;/span&gt; &lt;span style="color:blue;"&gt;Property&lt;/span&gt;
MouseButton() &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;String&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;
mMouseButton&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;Private&lt;/span&gt;
mMouseButton &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;String&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' &lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' Creates a new
ButtonClickEventArgs storing which button was clicked&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;'''&lt;span&gt;&amp;nbsp; &lt;/span&gt;and which mouse button was used.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' &lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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; 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; System.Windows.Forms.MouseEventArgs)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;'determine
which button was clicked and with which mouse button&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;Dim&lt;/span&gt;
Button &lt;span style="color:blue;"&gt;As&lt;/span&gt; System.Windows.Forms.Button = &lt;span style="color:blue;"&gt;CType&lt;/span&gt;(sender, System.Windows.Forms.Button)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;mButtonName = Button.Name&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;mMouseButton = e.Button.ToString()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;line-height:115%;font-family:'Courier New';color:blue;"&gt;End&lt;/span&gt;&lt;span style="font-size:10pt;line-height:115%;font-family:'Courier New';"&gt; &lt;span style="color:blue;"&gt;Class&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' HOST&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' &lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:gray;"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' An event
handler type for button clicks.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' &lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;Public&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;span style="color:blue;"&gt;Delegate&lt;/span&gt; &lt;span style="color:blue;"&gt;Sub&lt;/span&gt;
ButtonClickEventHandler(&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;
ButtonClickEventArgs)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' HOST&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' &lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:gray;"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' Main class
of the host application.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' VSTA entry
point.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' &lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;Public&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;span style="color:blue;"&gt;Class&lt;/span&gt; MainApplication&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' &lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' Prepares the
host application to run.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' Sets up the
list of objects and the form.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' Hooks up form
events to methods that will raise VSTA visible events.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' &lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;'instantiate
the form and lis tof messages&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;mMyForm = &lt;span style="color:blue;"&gt;New&lt;/span&gt;
MainForm&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;mMyObjects = &lt;span style="color:blue;"&gt;New&lt;/span&gt;
List(&lt;span style="color:blue;"&gt;Of&lt;/span&gt; MainObject)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;'hook up the
event handling to the form&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;HookUpEvents()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' &lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' Event raised
when any button is selected&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' &lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' &lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;remarks&amp;gt;&lt;/span&gt;&lt;span style="color:green;"&gt;Exposed to
VSTA and not used by the host&lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;/remarks&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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; ButtonClickEvent &lt;span style="color:blue;"&gt;As&lt;/span&gt;
ButtonClickEventHandler&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' &lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' Associates
form events with methods that will raise &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;'''&lt;span&gt;&amp;nbsp;
&lt;/span&gt;VSTA visible events.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' &lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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; HookUpEvents()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;'Event
handling for all buttons- any button click raises &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;'the ButtonClickEvent which is exposed to
VSTA and called&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;'in RecordClick&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;
MyForm.cmdOpen.Click, &lt;span style="color:blue;"&gt;AddressOf&lt;/span&gt; RecordClick&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' &lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' Records any
button clicks in the display.&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' &lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' &lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;remarks&amp;gt;&lt;/span&gt;&lt;span style="color:green;"&gt;Raises the
ButtonClickEvent which is &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;''' visible to
VSTA.&lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;/remarks&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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; RecordClick(&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;
EventArgs)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&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
event exposed to VSTA for any button click&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;EventHelper.Invoke(ButtonClickEventEvent, &lt;span style="color:blue;"&gt;Me&lt;/span&gt;,
_&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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 style="color:blue;"&gt;New&lt;/span&gt;
ButtonClickEventArgs(sender, &lt;span style="color:blue;"&gt;CType&lt;/span&gt;(e, _&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;&amp;nbsp;&lt;/span&gt;System.Windows.Forms.MouseEventArgs)))&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;End&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;span style="color:blue;"&gt;Class&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;''' ADD-IN&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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; AppAddIn_Startup(&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;
System.EventArgs) &lt;span style="color:blue;"&gt;Handles&lt;/span&gt; &lt;span style="color:blue;"&gt;Me&lt;/span&gt;.Startup&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;
ButtonClickEvent, &lt;span style="color:blue;"&gt;AddressOf&lt;/span&gt; AddIn_ButtonClick&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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; AddIn_ButtonClick(&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;
ButtonClickEventArgs)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;'determine
which button was pressed&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;Dim&lt;/span&gt;
buttonName &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;String&lt;/span&gt;
= e.ButtonName&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;'determine
the mouse button that was used&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;Dim&lt;/span&gt;
mouseButton &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;String&lt;/span&gt;
= e.MouseButton&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;'display a
message that shows the add-in found the above info&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;addTextToListBox(&lt;span&gt;"VSTA add-in caught button click"&lt;/span&gt; &amp;amp;
vbNewLine &amp;amp; _&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;"Button:
"&lt;/span&gt; &amp;amp; buttonName &amp;amp; vbNewLine &amp;amp; _&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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; &lt;/span&gt;&lt;span&gt;"Mouse Button: "&lt;/span&gt; &amp;amp; mouseButton)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="margin:0in 0in 0.0001pt;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Tahoma','sans-serif';color:black;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="margin:0in 0in 0.0001pt;"&gt;&lt;span style="font-size:10pt;font-family:'Tahoma','sans-serif';color:black;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description><enclosure url="http://vsip.summsoft.com/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.00.12.58/EventSample_5F00_VB_5F00_v2.zip" length="240663" type="application/zip" /></item><item><title>ShapeAppBasicMFC with ObjectModelAgent sample</title><link>http://vsip.summsoft.com/media/p/1254.aspx</link><pubDate>Tue, 02 Sep 2008 16:14:08 GMT</pubDate><guid isPermaLink="false">ff090588-e3d7-4538-8ee9-e75ea04444bb:1254</guid><dc:creator>Gary</dc:creator><slash:comments>0</slash:comments><description>&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;LINE-HEIGHT:115%;"&gt;&lt;SPAN style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:'Calibri','sans-serif';mso-bidi-font-family:Calibri;"&gt;This ShapeAppBasicMFC sample, adapted from the VSTA 2.0 SDK, is altered to demonstrate the COM ObjectModelAgent.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;The COM ObjectModelAgent component allows the host application to simply pass an instance of its COM object model to VSTA for automation, rather than generating a managed proxy for the entire surface of the existing, COM object model.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;The VSTA add-in/macro project will include a reference to the object model types, via an interop assembly (or PIA), to provide full intellisense for the object model at design time.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;LINE-HEIGHT:115%;"&gt;&lt;SPAN style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:'Calibri','sans-serif';mso-bidi-font-family:Calibri;"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 10pt;LINE-HEIGHT:115%;"&gt;&lt;SPAN style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:'Calibri','sans-serif';mso-bidi-font-family:Calibri;"&gt;For further information, see ShapeAppBasicMFCWithOMAgent.doc in zip file.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;</description><enclosure url="http://vsip.summsoft.com/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.00.12.54/ShapeAppBasicMFCWithOMAgent.zip" length="802598" type="application/x-zip-compressed" /></item><item><title>ShapeAppMFC with Multi-Macro Storage</title><link>http://vsip.summsoft.com/media/p/1253.aspx</link><pubDate>Tue, 02 Sep 2008 16:04:07 GMT</pubDate><guid isPermaLink="false">ff090588-e3d7-4538-8ee9-e75ea04444bb:1253</guid><dc:creator>Gary</dc:creator><slash:comments>0</slash:comments><description>&lt;P class=MsoTitle style="MARGIN:12pt 0in 3pt;"&gt;&lt;STRONG&gt;&lt;FONT face=Cambria size=5&gt;Macro storage and deployment investigation sample&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpFirst style="MARGIN:0in 0in 0pt 0.25in;TEXT-INDENT:-0.25in;mso-add-space:auto;mso-list:l1 level1 lfo2;"&gt;&lt;SPAN style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&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;FONT face=Calibri size=3&gt;Demonstrates a clean way to create, load, save and unload VSTA projects, and built assemblies, from/to a single .VCF (VSTA Cab file) compressed file store located in any user-accessible folder on the local hard drive. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.25in;mso-add-space:auto;"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.25in;TEXT-INDENT:-0.25in;mso-add-space:auto;mso-list:l1 level1 lfo2;"&gt;&lt;SPAN style="FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&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;FONT face=Calibri size=3&gt;Native C++, VSTA-enabled, sample host application that programmatically :&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="mso-bidi-font-family:Calibri;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT face=Calibri size=3&gt;1.&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Creates, loads, unloads, and saves VSTA projects and related addin assembly (save/load both debug and release addin assemblies as needed) using the file described in #2.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="mso-bidi-font-family:Calibri;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT face=Calibri size=3&gt;2.&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Uses a single file (with .drwmacros extension) for persistence of a single VSTA project and its addins .&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN:0in 0in 0pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="mso-bidi-font-family:Calibri;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT face=Calibri size=3&gt;3.&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Shows the VSTA IDE with current project loaded for editing&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast style="MARGIN:0in 0in 10pt 0.5in;TEXT-INDENT:-0.25in;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="mso-bidi-font-family:Calibri;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;&lt;FONT face=Calibri size=3&gt;4.&lt;/FONT&gt;&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Removes VSTA IDE Menu items: File | New project, File | Open Project, File | Close Project, File | Save All&lt;/FONT&gt;&lt;/P&gt;
&lt;OL style="MARGIN-TOP:0in;"&gt;
&lt;LI class=MsoNormal style="MARGIN:0in 0in 10pt;mso-list:l0 level1 lfo1;"&gt;&lt;FONT face=Calibri size=3&gt;Out of process&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;debugging (VBA-style debugging)&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;of a loaded Macro project&lt;/FONT&gt;&lt;/LI&gt;&lt;/OL&gt;</description><enclosure url="http://vsip.summsoft.com/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.00.12.53/ShapeAppMFC_2D00_MultiMacroStorageV3.zip" length="2708372" type="application/x-zip-compressed" /></item><item><title>Proxy Versioning for Templates Sample</title><link>http://vsip.summsoft.com/media/p/1236.aspx</link><pubDate>Fri, 15 Aug 2008 17:19:44 GMT</pubDate><guid isPermaLink="false">ff090588-e3d7-4538-8ee9-e75ea04444bb:1236</guid><dc:creator>Melody</dc:creator><slash:comments>0</slash:comments><description>This sample illustrates how to use &lt;a href="http://www.summsoft.com/blogs/melodys_vsta_blog/archive/2008/08/15/proxy-versioning-options-for-project-templates.aspx"&gt;Tight Versioning&lt;/a&gt; to specify which version of the proxy a project template should use.&lt;br&gt;&lt;br&gt;&lt;hr&gt;

&lt;p class="MsoNormalCxSpFirst" style="margin-bottom:0.0001pt;line-height:normal;"&gt;Goal:&lt;span&gt;&amp;nbsp;
&lt;/span&gt;load add-ins which use a proxy from a previous OM after changing the OM.&lt;/p&gt;

&lt;p class="MsoNormalCxSpMiddle" style="margin:0in 0in 0.0001pt 0.25in;line-height:normal;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;OM version changes (using same VSTA version):&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;Example- ShapeAppBasicCSharp&lt;span&gt; &lt;/span&gt;from
VSTA v 2&lt;/p&gt;



&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;text-align:center;line-height:normal;" align="center"&gt;&lt;o:p&gt;&lt;/o:p&gt;Object Model Changes&lt;/p&gt;

&lt;table class="MsoNormalTable" style="border:medium none;margin-left:75pt;border-collapse:collapse;" cellpadding="0" cellspacing="0"&gt;
 &lt;tr&gt;
  &lt;td style="border:1pt solid black;padding:0in 5.4pt;width:159.6pt;"&gt;
  &lt;p class="MsoNormal" style="margin-bottom:0.0001pt;text-align:center;line-height:normal;" align="center"&gt;Version 2.1&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-style:solid solid solid none;border-color:black black black -moz-use-text-color;border-width:1pt 1pt 1pt medium;padding:0in 5.4pt;width:159.6pt;"&gt;
  &lt;p class="MsoNormal" style="margin-bottom:0.0001pt;text-align:center;line-height:normal;" align="center"&gt;Version 2.2&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td style="border-style:none solid solid;border-color:-moz-use-text-color black black;border-width:medium 1pt 1pt;padding:0in 5.4pt;width:159.6pt;"&gt;
  &lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;SDK Sample from VSTA v 2&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color black black -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:159.6pt;"&gt;
  &lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;SDK Sample from VSTA v 2 with new method added:&lt;span&gt;&amp;nbsp; &lt;/span&gt;Application.ActiveDrawingHasShapes&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
&lt;/table&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;Instructions to run sample:&lt;/p&gt;

&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 0.5in;text-indent:-0.25in;line-height:normal;"&gt;&lt;span&gt;&lt;span&gt;1)&lt;span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Build the Versioning Sample\ShapeAppCSharp v 2.1
sample.&lt;/p&gt;

&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 0.5in;text-indent:-0.25in;line-height:normal;"&gt;&lt;span&gt;&lt;span&gt;2)&lt;span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Run the Versioning Sample\ShapeAppCSharp v 2.1
setup file.&lt;/p&gt;

&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 0.5in;text-indent:-0.25in;line-height:normal;"&gt;&lt;span&gt;&lt;span&gt;3)&lt;span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Build the Versioning Sample\ShapeAppCSharp v 2.1
sample add-in.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Add-in hooks into the document
created event, creates a document and adds a shape.&lt;/p&gt;

&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 0.5in;text-indent:-0.25in;line-height:normal;"&gt;&lt;span&gt;&lt;span&gt;4)&lt;span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Run the Versioning Sample\ShapeAppCSharp v 2.1
sample host- verify that the add-in loaded and correctly executed.&lt;/p&gt;

&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 0.5in;line-height:normal;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 0.5in;text-indent:-0.25in;line-height:normal;"&gt;&lt;span&gt;&lt;span&gt;5)&lt;span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Build the Versioning Sample\ShapeAppBasicCSharp
v 2.2sample.&lt;/p&gt;

&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 0.5in;text-indent:-0.25in;line-height:normal;"&gt;&lt;span&gt;&lt;span&gt;6)&lt;span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Run the Versioning Sample\ShapeAppBasicCSharp v 2.2
setup file.&lt;/p&gt;

&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 0.5in;text-indent:-0.25in;line-height:normal;"&gt;&lt;span&gt;&lt;span&gt;7)&lt;span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Build the Versioning Sample\ShapeAppBasicCSharp
v 2.2 sample add-in.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Add-in hooks into
the document created event, creates a document and adds a shape if none are
present in the current drawing.&lt;/p&gt;

&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 0.5in;text-indent:-0.25in;line-height:normal;"&gt;&lt;span&gt;&lt;span&gt;8)&lt;span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Run the Versioning Sample\ShapeAppBasicCSharp v 2.2-
verify that both v2.1 and v2.2 add-ins load and correctly execute.&lt;/p&gt;

&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 0.5in;line-height:normal;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 0.5in;text-indent:-0.25in;line-height:normal;"&gt;&lt;span&gt;&lt;span&gt;9)&lt;span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Run the Versioning Sample \ShapeAppCSharp v 2.1
sample host- verify that the v2.1 loads and executes correctly; however, the v2.2
add-ins will load but not execute because it uses an OM feature not supported
by the v2.1 host.&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;









&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 0.5in;line-height:normal;"&gt;In the Versioning
Sample\MyDocuments folder the AppAddins folder contains the assemblies for the
v2.1 and v2.2 add-ins.&lt;span&gt;&amp;nbsp; &lt;/span&gt;The AppAddins
folder can be placed in %MyDocuments%\ShapeAppCSharp_Versioning instead of
building the sample add-ins.&lt;br style="page-break-before:always;"&gt;
Instructions to Implement:&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 1.25in;text-indent:-0.25in;line-height:normal;"&gt;&lt;span&gt;&lt;span&gt;1)&lt;span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Version the host exe.&amp;nbsp; (see doc in zip file for screenshots)&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 1.25in;text-indent:-0.25in;line-height:normal;"&gt;&lt;br&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 0.75in;line-height:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;span&gt;&lt;span&gt;2)&lt;span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Version the proxy assemblies.&amp;nbsp; (see doc in zip file for screenshots)&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 0.75in;line-height:normal;"&gt;&lt;br&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 0.5in;text-indent:-0.25in;line-height:normal;"&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; 3)&amp;nbsp; In the project templates, use version specific
proxy references. (see doc in zip file for screenshots)&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 0.5in;text-indent:-0.25in;line-height:normal;"&gt;&lt;br&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 0.5in;text-indent:-0.25in;line-height:normal;"&gt;&lt;span&gt;&lt;span&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; 4)&lt;span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;So that add-ins will run the current exe, use a
registry instead of literal location to specify the host exe. (see doc in zip file for screenshots)&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 0.5in;text-indent:-0.25in;line-height:normal;"&gt;&lt;br&gt;&lt;/p&gt;
 
&lt;o:p&gt;&lt;/o:p&gt;

&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 0.5in;text-indent:-0.25in;line-height:normal;"&gt;&lt;span&gt;&lt;span&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; 5)&lt;span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Installation:&lt;/p&gt;

&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 0.5in;line-height:normal;"&gt;To run and build
add-ins, the version of the proxy that the add-in uses must be installed on the
end users machine.&lt;/p&gt;

&lt;table class="MsoNormalTable" style="border:medium none;margin-left:0.5in;border-collapse:collapse;" cellpadding="0" cellspacing="0"&gt;
 &lt;tr&gt;
  &lt;td style="border:1pt solid black;padding:0in 5.4pt;width:121.35pt;"&gt;
  &lt;p class="MsoNormal" style="margin-bottom:0.0001pt;text-align:center;line-height:normal;" align="center"&gt;Required Proxy Assembly to build and
  run add-ins&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-style:solid solid solid none;border-color:black black black -moz-use-text-color;border-width:1pt 1pt 1pt medium;padding:0in 5.4pt;width:112.35pt;"&gt;
  &lt;p class="MsoNormal" style="margin-bottom:0.0001pt;text-align:center;line-height:normal;" align="center"&gt;Add-in v 2.1&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-style:solid solid solid none;border-color:black black black -moz-use-text-color;border-width:1pt 1pt 1pt medium;padding:0in 5.4pt;width:112.35pt;"&gt;
  &lt;p class="MsoNormal" style="margin-bottom:0.0001pt;text-align:center;line-height:normal;" align="center"&gt;Add-in v 2.2&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-style:solid solid solid none;border-color:black black black -moz-use-text-color;border-width:1pt 1pt 1pt medium;padding:0in 5.4pt;width:96.75pt;"&gt;
  &lt;p class="MsoNormal" style="margin-bottom:0.0001pt;text-align:center;line-height:normal;" align="center"&gt;Add-ins v 2.1 &amp;amp; 2.2&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td style="border-style:none solid solid;border-color:-moz-use-text-color black black;border-width:medium 1pt 1pt;padding:0in 5.4pt;width:121.35pt;"&gt;
  &lt;p class="MsoNormal" style="margin-bottom:0.0001pt;text-align:center;line-height:normal;" align="center"&gt;Host v 2.1&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color black black -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:112.35pt;"&gt;
  &lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;Proxy 2.1&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color black black -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:112.35pt;"&gt;
  &lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;Proxy 2.2*&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color black black -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:96.75pt;"&gt;
  &lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;Proxy 2.1 &amp;amp; 2.2*&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td style="border-style:none solid solid;border-color:-moz-use-text-color black black;border-width:medium 1pt 1pt;padding:0in 5.4pt;width:121.35pt;"&gt;
  &lt;p class="MsoNormal" style="margin-bottom:0.0001pt;text-align:center;line-height:normal;" align="center"&gt;Host v 2.2&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color black black -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:112.35pt;"&gt;
  &lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;Proxy 2.1&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color black black -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:112.35pt;"&gt;
  &lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;Proxy 2.2&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-style:none solid solid none;border-color:-moz-use-text-color black black -moz-use-text-color;border-width:medium 1pt 1pt medium;padding:0in 5.4pt;width:96.75pt;"&gt;
  &lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;Proxy 2.1 &amp;amp; 2.2&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
&lt;/table&gt;

&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 0.5in;line-height:normal;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 0.5in;line-height:normal;"&gt;Examples:&lt;/p&gt;

&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 1.25in;text-indent:-0.25in;line-height:normal;"&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span&gt;·&lt;span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&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;For users who have the 2.1 and/or the 2.2 version
of the host, to build and run only v 2.1 add-ins only the v 2.1 proxy is
required.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 1.25in;text-indent:-0.25in;line-height:normal;"&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span&gt;·&lt;span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&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;For users who have the 2.1 and/or 2.2 version of
the host, to build and run only v 2.2 add-ins only the v 2.2 proxy is required.*&lt;/p&gt;

&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 1.25in;text-indent:-0.25in;line-height:normal;"&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span&gt;·&lt;span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&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;For users who have the 2.1 and/or 2.2 version of
the host, to build and run both v 2.1 and v 2.2. add-ins, both the v 2.1 and v
2.2. proxies are required.*&lt;/p&gt;

&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 1.25in;line-height:normal;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin:0in 0in 0.0001pt 1.25in;line-height:normal;"&gt;*Note:&lt;span&gt;&amp;nbsp; &lt;/span&gt;The host v 2.1 can load and execute v 2.2
add-ins, unless the v 2.2 add-in uses OM features that were not present in v
2.1.&lt;span&gt;&amp;nbsp; &lt;/span&gt;For example, the v2.1 host loading
a v2.2 add-in calling Application.ActiveDrawingHasShapes will fail.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description><enclosure url="http://vsip.summsoft.com/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.00.12.36/Proxy-Versioning-for-Templates-Sample.zip" length="1302703" type="application/zip" /></item><item><title>ShapeAppCSharp v 2 Office Add-ins using XML</title><link>http://vsip.summsoft.com/media/p/1152.aspx</link><pubDate>Tue, 17 Jun 2008 17:32:08 GMT</pubDate><guid isPermaLink="false">ff090588-e3d7-4538-8ee9-e75ea04444bb:1152</guid><dc:creator>Melody</dc:creator><slash:comments>0</slash:comments><description>

&lt;p class="MsoNormal"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Office 2007 introduced a new storage method for Office
document.&lt;span&gt;&amp;nbsp; &lt;/span&gt;The new documents are actually
packages- they are zip files of xml documents.&lt;span&gt;&amp;nbsp;
&lt;/span&gt;To explore one of these packages, change the extension to .zip and
explore it like any other zip file, or download &lt;a href="http://www.codeplex.com/PackageExplorer/Release/ProjectReleases.aspx?ReleaseId=4373"&gt;the
package explorer tool from CodePlex&lt;/a&gt; to explore and edit the package without
unzipping or using Office.&lt;span&gt;&amp;nbsp; &lt;/span&gt;This new
document packaging format makes it very easy to import or export data between a
host and an Office document.&lt;/p&gt;



&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/o:p&gt;Two add-ins for ShapeAppCSharp (VSTA v 2) are available
demonstrating how to save ShapeApp data into a Word or Excel document.&lt;span&gt;&amp;nbsp; &lt;/span&gt;The SaveToWord add-in uses the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=AD0B72FB-4A1D-4C52-BDB5-7DD7E816D046&amp;amp;displaylang=en"&gt;Open
Xml Format SDK&lt;/a&gt; to add data to the main document (document.xml) of the Word package
(System.IO.Packaging could be used instead with minor modifications).&lt;span&gt;&amp;nbsp; &lt;/span&gt;The SaveToExcel add-in uses straight Xml
instead of OpenXml to get data into Excel because it is far easier to work with
straight Xml in Excel.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Excel can save
and open Xml documents without worrying about packaging.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Visual Basic was used to write both add-ins
because Visual Basic works better than C# with LINQ to XML.&lt;/p&gt;



&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/o:p&gt;Both add-ins can be used without having any version of
Office installed.&lt;span&gt;&amp;nbsp; &lt;/span&gt;To open the Word
document created by the SaveInWord add-in you will need Word 2007; however, the
document.xml file where the data is stored can be viewed without Word.&lt;span&gt;&amp;nbsp; &lt;/span&gt;For the SaveInExcel add-in you can use Excel
2003 or 2007 (or an Xml viewer) to view the document because the data is stored
in an Xml document using excel schema.&lt;span&gt;&amp;nbsp;
&lt;/span&gt;Both add-ins are application level and hook into the document closing
event.&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;To use these add-ins:&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-left:0.5in;text-indent:-0.25in;"&gt;&lt;span&gt;1)&lt;span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Download
the zip file containing both add-ins and the Open Xml Format SDK and extract
the files.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-left:0.5in;text-indent:-0.25in;"&gt;&lt;span&gt;2)&lt;span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Ensure
a VSTA v 2 ShapeAppCSharp sample is built and registered.&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-left:0.5in;text-indent:-0.25in;"&gt;&lt;span&gt;3)&lt;span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;For
the SaveToWord add-in, install the Open Xml Format SDK then build the add-in.&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-left:0.5in;text-indent:-0.25in;"&gt;&lt;span&gt;4)&lt;span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;For
the SaveToExcel add-in, build the add-in.&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-left:0.5in;text-indent:-0.25in;"&gt;&lt;span&gt;5)&lt;span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Run
the basic or macro recording ShapeAppCSharp sample.&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-left:0.5in;text-indent:-0.25in;"&gt;&lt;span&gt;6)&lt;span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Add
shapes to the 1&lt;sup&gt;st&lt;/sup&gt; drawing.&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-left:0.5in;text-indent:-0.25in;"&gt;&lt;span&gt;7)&lt;span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Close
the document- answer yes to the message boxes prompting to save in Word and
Excel.&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;To create these add-ins I used the following resources:&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-left:0.75in;text-indent:-0.25in;"&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span&gt;·&lt;span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=AD0B72FB-4A1D-4C52-BDB5-7DD7E816D046&amp;amp;displaylang=en"&gt;
&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=AD0B72FB-4A1D-4C52-BDB5-7DD7E816D046&amp;amp;displaylang=en"&gt;Open
Xml Format SDK&lt;/a&gt;

&lt;/p&gt;&lt;p class="MsoNormal" style="margin-left:0.75in;text-indent:-0.25in;"&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span&gt;·&lt;span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;The &lt;a href="http://www.codeplex.com/PackageExplorer/Release/ProjectReleases.aspx?ReleaseId=4373"&gt;PackageExplorer
tool from CodePlex&lt;/a&gt;.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Click on the
V3.0.0 RC1 link to start the download.&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-left:0.75in;text-indent:-0.25in;"&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span&gt;·&lt;span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;The MSDN article &lt;a href="http://msdn.microsoft.com/en-us/library/bb497758.aspx"&gt;"How to:
Create an Office Open XML Package by Using the Open XML API"&lt;/a&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-left:0.75in;text-indent:-0.25in;"&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span&gt;·&lt;span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;The MSN video &lt;a href="http://video.msn.com/video.aspx?vid=67c56f3c-a6a9-4b19-878d-f64b8296bfbd"&gt;“How
Do I Create Excel Spreadsheets using LINQ to XML?”&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description><enclosure url="http://vsip.summsoft.com/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.00.11.52/XmlOfficeAdd_2D00_ins.zip" length="3059272" type="application/zip" /></item></channel></rss>
