<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://summsoft.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>VSTA Q &amp; A Blog : C#, CLR, VSTA</title><link>http://summsoft.com/blogs/vstaqa/archive/tags/C_2300_/CLR/VSTA/default.aspx</link><description>Tags: C#, CLR, VSTA</description><dc:language>en</dc:language><generator>CommunityServer 2008 SP1 (Build: 30619.63)</generator><item><title>dllexport in C#</title><link>http://summsoft.com/blogs/vstaqa/archive/2009/06/03/dllexport-in-c.aspx</link><pubDate>Wed, 03 Jun 2009 15:17:00 GMT</pubDate><guid isPermaLink="false">ff090588-e3d7-4538-8ee9-e75ea04444bb:1835</guid><dc:creator>BillL</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://summsoft.com/blogs/vstaqa/rsscomments.aspx?PostID=1835</wfw:commentRss><comments>http://summsoft.com/blogs/vstaqa/archive/2009/06/03/dllexport-in-c.aspx#comments</comments><description>&lt;p&gt;&lt;span style="line-height:200%;font-family:Consolas;color:#000000;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;
&lt;p class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;Because C# does not provide a dllexport equivalent, you&amp;#39;ll need to add a CPP shim into the mix that &lt;i&gt;can&lt;/i&gt; get an instance of the managed class from the CLR. Here&amp;#39;s the quick walkthrough:&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;1. Add a cpp library to the VSTA integration solution &lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;2. Reference the VSTA Integration assembly from the cpp library project &lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;3. Define a dllexport &lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;4. Implement the dllexport &lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;5. LoadLibrary on the cppdll &lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;6. GetProcAddress of the exported func &lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;7. Create a typedeclaration for the exported func signature &lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;8. Call it&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;span style="font-family:Calibri;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;b&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;Here is the unmanaged CPP app code:&lt;/span&gt;&lt;/b&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;&lt;span style="mso-tab-count:1;"&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;typedef void *(__stdcall _CreateInstance)(void);&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;&lt;span style="mso-tab-count:1;"&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;typedef _CreateInstance *RTCCREATEINSTANCEPROC;&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;&lt;span style="mso-tab-count:1;"&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;static RTCCREATEINSTANCEPROC lpfnRtcCreateInstance = NULL;&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;&lt;span style="mso-tab-count:1;"&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;HMODULE hm = LoadLibrary(OLESTR(&amp;quot;CppClassLibrary1.dll&amp;quot;));&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;&lt;span style="mso-tab-count:1;"&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;if (hm != N ULL)&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;&lt;span style="mso-tab-count:1;"&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="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;lpfnRtcCreateInstance = (RTCCREATEINSTANCEPROC)GetProcAddress(hm, &amp;quot;CreateInstance&amp;quot;);&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;void *managedinterface = (*lpfnRtcCreateInstance)();&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;FreeLibrary(hm);&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;&lt;span style="mso-tab-count:1;"&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="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;b&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;Here&amp;#39;s the C# code:&lt;/span&gt;&lt;/b&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;using System;&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;using System.Collections.Generic;&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;using System.Text;&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;using System.Runtime.InteropServices;&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;namespace ClassLibrary1&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;{&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[ComVisible(true)]&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;public interface Interface1&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&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;string HelloWorld { get; }&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[ComVisible(true)]&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;public class Class1 : Interface1&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&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 Interface1 Members&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&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;public string HelloWorld&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&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="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&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;get &lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&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 style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&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;return &amp;quot;Hello World!&amp;quot;;&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&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 style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&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="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&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;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&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;public static IntPtr CreateInstance()&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&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="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;&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;return Marshal.GetComInterfaceForObject(new Class1(), typeof(Interface1));&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&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="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;&lt;span style="font-family:Calibri;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;span style="font-family:Calibri;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;b&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;Here&amp;#39;s the CPP shim code (that matters):&lt;/span&gt;&lt;/b&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;void *CreateInstance()&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;{&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;&lt;span style="mso-tab-count:1;"&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;return (void *)ClassLibrary1::Class1().CreateInstance();&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;}&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;b&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;Here&amp;#39;s the .def code:&lt;/span&gt;&lt;/b&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;LIBRARY&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;quot;CppClassLibrary1&amp;quot;&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;EXPORTS&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;&lt;span style="mso-tab-count:1;"&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;CreateInstance&lt;span style="mso-tab-count:2;"&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; &lt;/span&gt;@1&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&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 class="MsoNormal" style="line-height:200%;margin:0in 0in 10pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;&lt;span style="font-family:Calibri;"&gt;Make sure that the C# types are marked ComVisible(True). You should be able to cast the void * to the interface definition (they should be the same on either side...)&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height:200%;color:black;font-size:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;font face="Consolas" color="#000000" style="LINE-HEIGHT:200%;FONT-SIZE:12pt;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:DE-AT;"&gt;
&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://summsoft.com/aggbug.aspx?PostID=1835" width="1" height="1"&gt;</description><category domain="http://summsoft.com/blogs/vstaqa/archive/tags/VSTA/default.aspx">VSTA</category><category domain="http://summsoft.com/blogs/vstaqa/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://summsoft.com/blogs/vstaqa/archive/tags/CLR/default.aspx">CLR</category><category domain="http://summsoft.com/blogs/vstaqa/archive/tags/c_2B002B00_/default.aspx">c++</category><category domain="http://summsoft.com/blogs/vstaqa/archive/tags/dllexport/default.aspx">dllexport</category></item></channel></rss>