<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="http://www.codeplex.com/rss.xsl"?><rss version="2.0"><channel><title>Managed, Native, and COM Interop Team</title><link>http://www.codeplex.com/clrinterop/Project/ProjectRss.aspx</link><description>Welcome to the CodePlex site for CLR Interop Team, where tools and samples designed by the team are released. We hope the things we deliver here will help you make best use of Interop and boost dev...</description><item><title>Created Issue: TlbImp: Replace well known interfaces like IStream with their existing managed definition</title><link>http://www.codeplex.com/clrinterop/WorkItem/View.aspx?WorkItemId=2565</link><description>Many of our interfaces use IStream to interchange data. &lt;br /&gt;Now MIDL generates a copy of the IStream interface in every TLB - which are translated into a different RCWs, so you can&amp;#39;t use the IStream provided by one interface to pass the data to another interface defined in a different TLB since the interfaces RCWs refer to different IStream RCWs. &lt;br /&gt;Also this makes it impossible to generate a generic Stream adapter since this would need to derive from all possible IStream definitions to work.&lt;br /&gt;We currently solve this by disassembling the interop and replacing all references to an IStream with the System.Runtime.InteropServices.ComTypes.IStream, so this would be a perfect candidate to make it into TlbImp&amp;#33;&lt;br /&gt;&lt;br /&gt;Since this problem applies to all types defined in System.Runtime.InteropServices.ComTypes they all should be translated properly by TlbImp.&lt;br /&gt;</description><author>tomenglert</author><pubDate>Tue, 11 Nov 2008 09:33:26 GMT</pubDate><guid isPermaLink="false">Created Issue: TlbImp: Replace well known interfaces like IStream with their existing managed definition 20081111093326A</guid></item><item><title>Commented Issue: 'Data4' section of GUID incorrectly generated as a string</title><link>http://www.codeplex.com/clrinterop/WorkItem/View.aspx?WorkItemId=2453</link><description>When converting a GUID, the interop assistant thinks that Data4 should be a string&amp;#58;&lt;br /&gt;&lt;br /&gt;&amp;#91;System.Runtime.InteropServices.StructLayoutAttribute&amp;#40;System.Runtime.InteropServices.LayoutKind.Sequential, CharSet&amp;#61;System.Runtime.InteropServices.CharSet.Ansi&amp;#41;&amp;#93;&lt;br /&gt;public struct GUID&lt;br /&gt;&amp;#123;&lt;br /&gt;    &amp;#47;&amp;#47;&amp;#47; unsigned int&lt;br /&gt;    public uint Data1&amp;#59;&lt;br /&gt;    &lt;br /&gt;    &amp;#47;&amp;#47;&amp;#47; unsigned short&lt;br /&gt;    public ushort Data2&amp;#59;&lt;br /&gt;    &lt;br /&gt;    &amp;#47;&amp;#47;&amp;#47; unsigned short&lt;br /&gt;    public ushort Data3&amp;#59;&lt;br /&gt;    &lt;br /&gt;    &amp;#47;&amp;#47;&amp;#47; unsigned char&amp;#91;8&amp;#93;&lt;br /&gt;    &amp;#91;System.Runtime.InteropServices.MarshalAsAttribute&amp;#40;System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst&amp;#61;8&amp;#41;&amp;#93;&lt;br /&gt;    public string Data4&amp;#59;&lt;br /&gt;&amp;#125;&lt;br /&gt;&lt;br /&gt;It&amp;#8217;s really an array of bytes, and even calling System.Text.Encoding.Unicode.GetString&amp;#40;bytes&amp;#41; or System.Text.Encoding.ASCII.GetString&amp;#40;bytes&amp;#41; didn&amp;#8217;t create the correct string. Changing the marshalling definition to an array of bytes worked&amp;#58;&lt;br /&gt;&lt;br /&gt;            &amp;#91;MarshalAs&amp;#40;UnmanagedType.ByValArray, SizeConst &amp;#61; 8&amp;#41;&amp;#93; &lt;br /&gt;            internal byte&amp;#91;&amp;#93; Data4&amp;#59;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This came from generating the definition for WINTRUST_BLOB_INFO from the SDK &amp;#40;by pasting it in.&amp;#41;&lt;br /&gt;Comments: ** Comment from web user: jaredp110680 ** &lt;p&gt;Yes.  The intention of this part of the tool is to not display a native type when there is a better equivalent managed type.  &lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description><author>jaredp110680</author><pubDate>Thu, 06 Nov 2008 16:21:58 GMT</pubDate><guid isPermaLink="false">Commented Issue: 'Data4' section of GUID incorrectly generated as a string 20081106042158P</guid></item><item><title>Commented Issue: TlbImp: converting enum without prefixes.</title><link>http://www.codeplex.com/clrinterop/WorkItem/View.aspx?WorkItemId=2527</link><description>It would be good if tlbimp can remove useless enum prefixes. For exmample, this IDL code&amp;#58;&lt;br /&gt;&lt;br /&gt;enum RGB&lt;br /&gt;&amp;#123;&lt;br /&gt;  RGB_Red &amp;#61; 0,&lt;br /&gt;  RGB_Green &amp;#61; 1,&lt;br /&gt;  RGB_Blue &amp;#61; 2,&lt;br /&gt;&amp;#125;&amp;#59;&lt;br /&gt;&lt;br /&gt;has to be converted to .NET enum as&lt;br /&gt;&lt;br /&gt;enum RGB&lt;br /&gt;&amp;#123;&lt;br /&gt;  Red &amp;#61; 0,&lt;br /&gt;  Green &amp;#61; 1,&lt;br /&gt;  Blue &amp;#61; 2,&lt;br /&gt;&amp;#125;&amp;#59;&lt;br /&gt;&lt;br /&gt;The enumeration items in COM are global, in .NET they are local so the transformation would be logical. Also tlbexp converting .NET enum to COM enum with added prefixes.&lt;br /&gt;Comments: ** Comment from web user: sergey_shandar ** &lt;p&gt;I could commit the changes myself if I have access.&lt;/p&gt;</description><author>sergey_shandar</author><pubDate>Thu, 06 Nov 2008 01:27:16 GMT</pubDate><guid isPermaLink="false">Commented Issue: TlbImp: converting enum without prefixes. 20081106012716A</guid></item><item><title>Commented Issue: 'Data4' section of GUID incorrectly generated as a string</title><link>http://www.codeplex.com/clrinterop/WorkItem/View.aspx?WorkItemId=2453</link><description>When converting a GUID, the interop assistant thinks that Data4 should be a string&amp;#58;&lt;br /&gt;&lt;br /&gt;&amp;#91;System.Runtime.InteropServices.StructLayoutAttribute&amp;#40;System.Runtime.InteropServices.LayoutKind.Sequential, CharSet&amp;#61;System.Runtime.InteropServices.CharSet.Ansi&amp;#41;&amp;#93;&lt;br /&gt;public struct GUID&lt;br /&gt;&amp;#123;&lt;br /&gt;    &amp;#47;&amp;#47;&amp;#47; unsigned int&lt;br /&gt;    public uint Data1&amp;#59;&lt;br /&gt;    &lt;br /&gt;    &amp;#47;&amp;#47;&amp;#47; unsigned short&lt;br /&gt;    public ushort Data2&amp;#59;&lt;br /&gt;    &lt;br /&gt;    &amp;#47;&amp;#47;&amp;#47; unsigned short&lt;br /&gt;    public ushort Data3&amp;#59;&lt;br /&gt;    &lt;br /&gt;    &amp;#47;&amp;#47;&amp;#47; unsigned char&amp;#91;8&amp;#93;&lt;br /&gt;    &amp;#91;System.Runtime.InteropServices.MarshalAsAttribute&amp;#40;System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst&amp;#61;8&amp;#41;&amp;#93;&lt;br /&gt;    public string Data4&amp;#59;&lt;br /&gt;&amp;#125;&lt;br /&gt;&lt;br /&gt;It&amp;#8217;s really an array of bytes, and even calling System.Text.Encoding.Unicode.GetString&amp;#40;bytes&amp;#41; or System.Text.Encoding.ASCII.GetString&amp;#40;bytes&amp;#41; didn&amp;#8217;t create the correct string. Changing the marshalling definition to an array of bytes worked&amp;#58;&lt;br /&gt;&lt;br /&gt;            &amp;#91;MarshalAs&amp;#40;UnmanagedType.ByValArray, SizeConst &amp;#61; 8&amp;#41;&amp;#93; &lt;br /&gt;            internal byte&amp;#91;&amp;#93; Data4&amp;#59;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This came from generating the definition for WINTRUST_BLOB_INFO from the SDK &amp;#40;by pasting it in.&amp;#41;&lt;br /&gt;Comments: ** Comment from web user: jaredp110680 ** &lt;p&gt;Yes it should.  The tool attempts to map a set of native types into the corresponding managed type.  It looks like GUID slipped through in this case.  &lt;/p&gt;</description><author>jaredp110680</author><pubDate>Wed, 05 Nov 2008 16:15:10 GMT</pubDate><guid isPermaLink="false">Commented Issue: 'Data4' section of GUID incorrectly generated as a string 20081105041510P</guid></item><item><title>Commented Issue: 'Data4' section of GUID incorrectly generated as a string</title><link>http://www.codeplex.com/clrinterop/WorkItem/View.aspx?WorkItemId=2453</link><description>When converting a GUID, the interop assistant thinks that Data4 should be a string&amp;#58;&lt;br /&gt;&lt;br /&gt;&amp;#91;System.Runtime.InteropServices.StructLayoutAttribute&amp;#40;System.Runtime.InteropServices.LayoutKind.Sequential, CharSet&amp;#61;System.Runtime.InteropServices.CharSet.Ansi&amp;#41;&amp;#93;&lt;br /&gt;public struct GUID&lt;br /&gt;&amp;#123;&lt;br /&gt;    &amp;#47;&amp;#47;&amp;#47; unsigned int&lt;br /&gt;    public uint Data1&amp;#59;&lt;br /&gt;    &lt;br /&gt;    &amp;#47;&amp;#47;&amp;#47; unsigned short&lt;br /&gt;    public ushort Data2&amp;#59;&lt;br /&gt;    &lt;br /&gt;    &amp;#47;&amp;#47;&amp;#47; unsigned short&lt;br /&gt;    public ushort Data3&amp;#59;&lt;br /&gt;    &lt;br /&gt;    &amp;#47;&amp;#47;&amp;#47; unsigned char&amp;#91;8&amp;#93;&lt;br /&gt;    &amp;#91;System.Runtime.InteropServices.MarshalAsAttribute&amp;#40;System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst&amp;#61;8&amp;#41;&amp;#93;&lt;br /&gt;    public string Data4&amp;#59;&lt;br /&gt;&amp;#125;&lt;br /&gt;&lt;br /&gt;It&amp;#8217;s really an array of bytes, and even calling System.Text.Encoding.Unicode.GetString&amp;#40;bytes&amp;#41; or System.Text.Encoding.ASCII.GetString&amp;#40;bytes&amp;#41; didn&amp;#8217;t create the correct string. Changing the marshalling definition to an array of bytes worked&amp;#58;&lt;br /&gt;&lt;br /&gt;            &amp;#91;MarshalAs&amp;#40;UnmanagedType.ByValArray, SizeConst &amp;#61; 8&amp;#41;&amp;#93; &lt;br /&gt;            internal byte&amp;#91;&amp;#93; Data4&amp;#59;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This came from generating the definition for WINTRUST_BLOB_INFO from the SDK &amp;#40;by pasting it in.&amp;#41;&lt;br /&gt;Comments: ** Comment from web user: sergey_shandar ** &lt;p&gt;Should be this whole structure converted to System.Guid&amp;#63;&lt;/p&gt;</description><author>sergey_shandar</author><pubDate>Wed, 05 Nov 2008 01:07:58 GMT</pubDate><guid isPermaLink="false">Commented Issue: 'Data4' section of GUID incorrectly generated as a string 20081105010758A</guid></item><item><title>New Post: How does this tool work?</title><link>http://www.codeplex.com/clrinterop/Thread/View.aspx?ThreadId=39142</link><description>&lt;div style="line-height: normal;"&gt;New to me.  How do these tools work?  If I understood sessions from PDC 08, these tools will allow a wrapper to be created for C++ and/or ANSI C to C#/VB ( and vise versa )?  If so, what do you do to create wrapper?  Do you load a DLL compiled and created from C++ and/or ANSI C and will create a .NET class?  Let's say I have a DLL developed in C++ that includes a few functions to interface/communicate with a vendor's module via serial port.  If I run this tool, will it create a class including the same functions and data types ( enums, structs, etc. )?
&lt;/div&gt;</description><author>shaggygi</author><pubDate>Tue, 04 Nov 2008 01:00:55 GMT</pubDate><guid isPermaLink="false">New Post: How does this tool work? 20081104010055A</guid></item><item><title>Reviewed: PInvoke Interop Assistant (Nov 02, 2008)</title><link>http://www.codeplex.com/clrinterop/Release/ProjectReleases.aspx?ReleaseId=14120</link><description>Rated 4 Stars (out of 5) - Really neat stuff.  This is new to me.  I tried opening a few DLLs I believe were originally written in ANSI C (or C++).  When opening, I received an error that mentions the Assembly Manifest was missing from file.  What needs to be done to correct this.  Thanks.</description><author>shaggygi</author><pubDate>Sun, 02 Nov 2008 19:54:48 GMT</pubDate><guid isPermaLink="false">Reviewed: PInvoke Interop Assistant (Nov 02, 2008) 20081102075448P</guid></item><item><title>Commented Issue: TlbImp: converting enum without prefixes.</title><link>http://www.codeplex.com/clrinterop/WorkItem/View.aspx?WorkItemId=2527</link><description>It would be good if tlbimp can remove useless enum prefixes. For exmample, this IDL code&amp;#58;&lt;br /&gt;&lt;br /&gt;enum RGB&lt;br /&gt;&amp;#123;&lt;br /&gt;  RGB_Red &amp;#61; 0,&lt;br /&gt;  RGB_Green &amp;#61; 1,&lt;br /&gt;  RGB_Blue &amp;#61; 2,&lt;br /&gt;&amp;#125;&amp;#59;&lt;br /&gt;&lt;br /&gt;has to be converted to .NET enum as&lt;br /&gt;&lt;br /&gt;enum RGB&lt;br /&gt;&amp;#123;&lt;br /&gt;  Red &amp;#61; 0,&lt;br /&gt;  Green &amp;#61; 1,&lt;br /&gt;  Blue &amp;#61; 2,&lt;br /&gt;&amp;#125;&amp;#59;&lt;br /&gt;&lt;br /&gt;The enumeration items in COM are global, in .NET they are local so the transformation would be logical. Also tlbexp converting .NET enum to COM enum with added prefixes.&lt;br /&gt;Comments: ** Comment from web user: sergey_shandar ** &lt;p&gt;Proposed patch.&lt;/p&gt;</description><author>sergey_shandar</author><pubDate>Thu, 30 Oct 2008 02:55:39 GMT</pubDate><guid isPermaLink="false">Commented Issue: TlbImp: converting enum without prefixes. 20081030025539A</guid></item><item><title>Created Issue: TlbImp: converting enum without prefixes.</title><link>http://www.codeplex.com/clrinterop/WorkItem/View.aspx?WorkItemId=2527</link><description>It would be good if tlbimp can remove useless enum prefixes. For exmample, this IDL code&amp;#58;&lt;br /&gt;&lt;br /&gt;enum RGB&lt;br /&gt;&amp;#123;&lt;br /&gt;  RGB_Red &amp;#61; 0,&lt;br /&gt;  RGB_Green &amp;#61; 1,&lt;br /&gt;  RGB_Blue &amp;#61; 2,&lt;br /&gt;&amp;#125;&amp;#59;&lt;br /&gt;&lt;br /&gt;has to be converted to .NET enum as&lt;br /&gt;&lt;br /&gt;enum RGB&lt;br /&gt;&amp;#123;&lt;br /&gt;  Red &amp;#61; 0,&lt;br /&gt;  Green &amp;#61; 1,&lt;br /&gt;  Blue &amp;#61; 2,&lt;br /&gt;&amp;#125;&amp;#59;&lt;br /&gt;&lt;br /&gt;The enumeration items in COM are global, in .NET they are local so the transformation would be logical. Also tlbexp converting .NET enum to COM enum with added prefixes.&lt;br /&gt;</description><author>sergey_shandar</author><pubDate>Thu, 30 Oct 2008 00:26:30 GMT</pubDate><guid isPermaLink="false">Created Issue: TlbImp: converting enum without prefixes. 20081030122630A</guid></item><item><title>Reviewed: Type Library Importer in Managed Code (Oct 27, 2008)</title><link>http://www.codeplex.com/clrinterop/Release/ProjectReleases.aspx?ReleaseId=17579</link><description>Rated 5 Stars (out of 5) - Thank you for fast bug fixing.</description><author>sergey_shandar</author><pubDate>Tue, 28 Oct 2008 04:47:18 GMT</pubDate><guid isPermaLink="false">Reviewed: Type Library Importer in Managed Code (Oct 27, 2008) 20081028044718A</guid></item><item><title>Reviewed: PInvoke Interop Assistant (Oct 27, 2008)</title><link>http://www.codeplex.com/clrinterop/Release/ProjectReleases.aspx?ReleaseId=14120</link><description>Rated 5 Stars (out of 5) - fast bug fixing.</description><author>sergey_shandar</author><pubDate>Tue, 28 Oct 2008 04:45:17 GMT</pubDate><guid isPermaLink="false">Reviewed: PInvoke Interop Assistant (Oct 27, 2008) 20081028044517A</guid></item><item><title>Updated Release: Type Library Importer in Managed Code (Oct 14, 2008)</title><link>http://www.codeplex.com/clrinterop/Release/ProjectReleases.aspx?ReleaseId=17579</link><description>&lt;div&gt;
TLBIMP is a .NET SDK tool that creates an Interop assembly from a COM type library. This project is a managed code implementation of TLBIMP. We have released this tool so developers can see what TLBIMP does and if necessary extend the tool for their specific requirements.&lt;br&gt; &lt;br&gt;This is the second Tlbimp release on CodePlex. It adds two command-line switches beyond the same functionality as the existing TLBIMP in .NET 3.5 SDK:&lt;br&gt; &lt;br&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;/v2&lt;/b&gt;: When this switch is on, the Tlbimp applies new rules when importing native types so as to get the output more as expected result. The new rule in this release is to convert &lt;i&gt;VARIANT_BOOL&lt;/i&gt; in structures to &lt;i&gt;bool&lt;/i&gt; instead of &lt;i&gt;short&lt;/i&gt;.&lt;/li&gt;
&lt;/ul&gt; &lt;br&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;/PreserveSig&lt;/b&gt;: If this swtich is applied, the Tlbimp doesn't apply [out, retval] parameter transformation but adds &lt;i&gt;PreserveSigAttribute&lt;/i&gt; to the imported method.&lt;/li&gt;
&lt;/ul&gt; &lt;br&gt;To get the help for this tool, please type in &amp;quot;tlbimp /?&amp;quot; in the command line, or check MSDN document library for the features in .NET 3.5 SDK.&lt;br&gt;
&lt;/div&gt;</description><author>XiaoyingGuo</author><pubDate>Tue, 14 Oct 2008 06:15:00 GMT</pubDate><guid isPermaLink="false">Updated Release: Type Library Importer in Managed Code (Oct 14, 2008) 20081014061500A</guid></item><item><title>Released: Type Library Importer in Managed Code (Oct 14, 2008)</title><link>http://www.codeplex.com/clrinterop/Release/ProjectReleases.aspx?ReleaseId=17579</link><description>&lt;div&gt;
TLBIMP is a .NET SDK tool that creates an Interop assembly from a COM type library. This project is a managed code implementation of TLBIMP. We have released this tool so developers can see what TLBIMP does and if necessary extend the tool for their specific requirements.&lt;br&gt; &lt;br&gt;This is the second Tlbimp release on CodePlex. It adds two command-line switches beyond the same functionality as the existing TLBIMP in .NET 3.5 SDK:&lt;br&gt; &lt;br&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;/v2&lt;/b&gt;: When this switch is on, the Tlbimp applies new rules when importing native types so as to get the output more as expected result. The new rule in this release is to convert &lt;i&gt;VARIANT_BOOL&lt;/i&gt; in structures to &lt;i&gt;bool&lt;/i&gt; instead of &lt;i&gt;short&lt;/i&gt;.&lt;/li&gt;
&lt;/ul&gt; &lt;br&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;/PreserveSig&lt;/b&gt;: If this swtich is applied, the Tlbimp doesn't apply [out, retval] parameter transformation but adds &lt;i&gt;PreserveSigAttribute&lt;/i&gt; to the imported method.&lt;/li&gt;
&lt;/ul&gt; &lt;br&gt;To get the help for this tool, please type in &amp;quot;tlbimp /?&amp;quot; in the command line, or check MSDN document library for the features in .NET 3.5 SDK.&lt;br&gt;
&lt;/div&gt;</description><author></author><pubDate>Tue, 14 Oct 2008 06:15:00 GMT</pubDate><guid isPermaLink="false">Released: Type Library Importer in Managed Code (Oct 14, 2008) 20081014061500A</guid></item><item><title>Source code checked in, #17108</title><link>http://www.codeplex.com/clrinterop/SourceControl/ListDownloadableCommits.aspx</link><description>Remove unnecessary Resource.Designer.cs</description><author>EricFu</author><pubDate>Tue, 14 Oct 2008 06:09:19 GMT</pubDate><guid isPermaLink="false">Source code checked in, #17108 20081014060919A</guid></item><item><title>Source code checked in, #17107</title><link>http://www.codeplex.com/clrinterop/SourceControl/ListDownloadableCommits.aspx</link><description>&amp;#47;v2 support</description><author>EricFu</author><pubDate>Tue, 14 Oct 2008 06:06:42 GMT</pubDate><guid isPermaLink="false">Source code checked in, #17107 20081014060642A</guid></item><item><title>Updated Release: Type Library Importer in Managed Code (Sep 25, 2008)</title><link>http://www.codeplex.com/clrinterop/Release/ProjectReleases.aspx?ReleaseId=17579</link><description>&lt;div&gt;
TLBIMP is a .NET SDK tool that creates an Interop assembly from a COM type library. This project is a managed code implementation of TLBIMP. We have released this tool so developers can see what TLBIMP does and if necessary extend the tool for their specific requirements.&lt;br&gt; &lt;br&gt;This is the second Tlbimp release on CodePlex. It adds two command-line switches beyond the same functionality as the existing TLBIMP in .NET 3.5 SDK:&lt;br&gt; &lt;br&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;/v2&lt;/b&gt;: When this switch is on, the Tlbimp applies new rules when importing native types so as to get the output more as expected result. The new rule in this release is to convert &lt;i&gt;VARIANT_BOOL&lt;/i&gt; in structures to &lt;i&gt;bool&lt;/i&gt; instead of &lt;i&gt;short&lt;/i&gt;.&lt;/li&gt;
&lt;/ul&gt; &lt;br&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;/PreserveSig&lt;/b&gt;: If this swtich is applied, the Tlbimp doesn't apply [out, retval] parameter transformation but adds &lt;i&gt;PreserveSigAttribute&lt;/i&gt; to the imported method.&lt;/li&gt;
&lt;/ul&gt; &lt;br&gt;To get the help for this tool, please type in &amp;quot;tlbimp /?&amp;quot; in the command line, or check MSDN document library for the features in .NET 3.5 SDK.&lt;br&gt;
&lt;/div&gt;</description><author>XiaoyingGuo</author><pubDate>Tue, 14 Oct 2008 06:01:32 GMT</pubDate><guid isPermaLink="false">Updated Release: Type Library Importer in Managed Code (Sep 25, 2008) 20081014060132A</guid></item><item><title>Created Issue: 'Data4' section of GUID incorrectly generated as a string</title><link>http://www.codeplex.com/clrinterop/WorkItem/View.aspx?WorkItemId=2453</link><description>When converting a GUID, the interop assistant thinks that Data4 should be a string&amp;#58;&lt;br /&gt;&lt;br /&gt;&amp;#91;System.Runtime.InteropServices.StructLayoutAttribute&amp;#40;System.Runtime.InteropServices.LayoutKind.Sequential, CharSet&amp;#61;System.Runtime.InteropServices.CharSet.Ansi&amp;#41;&amp;#93;&lt;br /&gt;public struct GUID&lt;br /&gt;&amp;#123;&lt;br /&gt;    &amp;#47;&amp;#47;&amp;#47; unsigned int&lt;br /&gt;    public uint Data1&amp;#59;&lt;br /&gt;    &lt;br /&gt;    &amp;#47;&amp;#47;&amp;#47; unsigned short&lt;br /&gt;    public ushort Data2&amp;#59;&lt;br /&gt;    &lt;br /&gt;    &amp;#47;&amp;#47;&amp;#47; unsigned short&lt;br /&gt;    public ushort Data3&amp;#59;&lt;br /&gt;    &lt;br /&gt;    &amp;#47;&amp;#47;&amp;#47; unsigned char&amp;#91;8&amp;#93;&lt;br /&gt;    &amp;#91;System.Runtime.InteropServices.MarshalAsAttribute&amp;#40;System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst&amp;#61;8&amp;#41;&amp;#93;&lt;br /&gt;    public string Data4&amp;#59;&lt;br /&gt;&amp;#125;&lt;br /&gt;&lt;br /&gt;It&amp;#8217;s really an array of bytes, and even calling System.Text.Encoding.Unicode.GetString&amp;#40;bytes&amp;#41; or System.Text.Encoding.ASCII.GetString&amp;#40;bytes&amp;#41; didn&amp;#8217;t create the correct string. Changing the marshalling definition to an array of bytes worked&amp;#58;&lt;br /&gt;&lt;br /&gt;            &amp;#91;MarshalAs&amp;#40;UnmanagedType.ByValArray, SizeConst &amp;#61; 8&amp;#41;&amp;#93; &lt;br /&gt;            internal byte&amp;#91;&amp;#93; Data4&amp;#59;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This came from generating the definition for WINTRUST_BLOB_INFO from the SDK &amp;#40;by pasting it in.&amp;#41;&lt;br /&gt;</description><author>LeeHolmes</author><pubDate>Mon, 13 Oct 2008 17:55:38 GMT</pubDate><guid isPermaLink="false">Created Issue: 'Data4' section of GUID incorrectly generated as a string 20081013055538P</guid></item><item><title>Updated Release: Type Library Importer in Managed Code (Sep 25, 2008)</title><link>http://www.codeplex.com/clrinterop/Release/ProjectReleases.aspx?ReleaseId=17579</link><description>&lt;div&gt;
TLBIMP is a .NET SDK tool that creates an Interop assembly from a COM type library. This project is a managed code implementation of TLBIMP. We have released this tool so developers can see what TLBIMP does and if necessary extend the tool for their specific requirements.&lt;br&gt; &lt;br&gt;This initial release provides the same functionality as the existing TLBIMP in .NET 3.5 SDK. Future versions of this project will extend this tool.&lt;br&gt; &lt;br&gt;To get the help for this tool, please type in &amp;quot;tlbimp /?&amp;quot; in the command line, or check MSDN document library.&lt;br&gt;
&lt;/div&gt;</description><author>XiaoyingGuo</author><pubDate>Thu, 25 Sep 2008 03:03:02 GMT</pubDate><guid isPermaLink="false">Updated Release: Type Library Importer in Managed Code (Sep 25, 2008) 20080925030302A</guid></item><item><title>Released: Type Library Importer in Managed Code (Sep 25, 2008)</title><link>http://www.codeplex.com/clrinterop/Release/ProjectReleases.aspx?ReleaseId=17579</link><description>&lt;div&gt;
TLBIMP is a .NET SDK tool that creates an Interop assembly from a COM type library. This project is a managed code implementation of TLBIMP. We have released this tool so developers can see what TLBIMP does and if necessary extend the tool for their specific requirements.&lt;br&gt; &lt;br&gt;This initial release provides the same functionality as the existing TLBIMP in .NET 3.5 SDK. Future versions of this project will extend this tool.&lt;br&gt; &lt;br&gt;To get the help for this tool, please type in &amp;quot;tlbimp /?&amp;quot; in the command line, or check MSDN document library.&lt;br&gt;
&lt;/div&gt;</description><author></author><pubDate>Thu, 25 Sep 2008 03:03:02 GMT</pubDate><guid isPermaLink="false">Released: Type Library Importer in Managed Code (Sep 25, 2008) 20080925030302A</guid></item><item><title>Updated Wiki: Home</title><link>http://www.codeplex.com/clrinterop/Wiki/View.aspx?title=Home&amp;version=10</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Introduction&lt;/b&gt;&lt;br /&gt;Welcome to the CodePlex site for CLR Interop Team, where tools and samples designed by the team are released! We hope the things delivered here will help you make best use of Interop and boost development in your work. You are welcome to share your concerns, comments or feedback about Interop with us through this site. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Project Description: &lt;a href="http://www.codeplex.com/clrinterop/Release/ProjectReleases.aspx?ReleaseId=14120" class="externalLink"&gt;P/Invoke Interop Assistant&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;In marshalling, there are a bunch of attributes and rules. Understanding all those attributes and rules seem a bit daunting. In order to make developing work more efficient and easier on those attributes and the rules, P/Invoke Interop Assistant comes out. It is a toolkit that helps developers to efficiently convert from C to managed P/Invoke signatures or verse visa. This is conceptually similar to TlbImp for COM Interop which generates managed proxy entry points based on some formal description of the unmanaged side but it works for P/Invoke. The toolkit was first released on &lt;a href="http://msdn.microsoft.com/en-us/magazine/cc164193.aspx" class="externalLink"&gt;MSDN Magazine website&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; in Jan, 2008. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Project Description: &lt;a href="http://www.codeplex.com/clrinterop/Release/ProjectReleases.aspx?ReleaseId=17579" class="externalLink"&gt;Type Library Importer in Managed Code&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/b&gt; &lt;br /&gt;Yes, this is the Tlbimp you may be familiar with, which import a type library into interop assembly. Different from the one you may use in .NET Framework 3.5 (or before) SDK, the CodePlex release of Tlbimp is completely implemented in managed code, which is easier to explore and extend its features. The first release of Tlbimp in CodePlex obtains the same functionality of the one in SDK, while more appealing new features are planned to add into the following releases to make it more customizable for specific needs.&lt;br /&gt;
&lt;/div&gt;</description><author>XiaoyingGuo</author><pubDate>Thu, 25 Sep 2008 01:29:22 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20080925012922A</guid></item></channel></rss>