My article on MSDN about COM interop

My article “Introduction to COM interop” got published in MSDN magazine this month. This article gives an overview of what is possible with COM interop and how you can accomplish it. It has good working samples for Pinvoke, Reverse Pinvoke etc. Please read through the article and provide your suggestion and feedback on the same….


Type forwarding using TypeForwardedTo attribute in Runtime.CompilerServices

We used this feature to solve a problem internally and I was tempted to blog about this cool feature. Type forwarding allows you to move a type from one assembly to another without having to recompile the application that uses the original assembly.   Here is how this works:   Writing the original library (original.cs)…


Managed Debugging Assistants (MDA’s)

When I read through the responses for the questionnaire below I saw that many users were not aware of MDA’s and that drove the topic for this post. I had written a small sample for a simple MDA which I thought that I will share with everyone.   MDA’s can help you diagnose problems that…


Tell us about your experience with COM interop

COM interoperability is a very powerful feature in the CLR that bridges the gap between native and managed code. It lets you reuse your existing COM and non-COM native DLL in the managed environment easily. It also lets native code call back to managed code in a seamless way.   It provides a wealth of…


Lang.NET Symposium 2006 Videos available

The videos of the presentations from Lang.NET symposium 2006 which was held in Redmond from July 31st – August 2 is available now at  


Using CodeDOM to generate CSharp (C#) and VB code

I spent sometime to understand CodeDOM and in the process wrote a sample which will help me understand this technology better. I wanted to share the sample I wrote with everyone so that it can be helpful for people getting introduced to this powerful technology. A good starting point for CodeDOM will be to start…


Accessing CreateProcess from C# and VB.NET

I came across this issue recently. I was trying to access CreateProcess using DLLImport from managed code using C# and VB.Net. Here is my code from C#:   using System; using System.Diagnostics; using System.Runtime.InteropServices;   public struct PROCESS_INFORMATION {     public IntPtr hProcess;     public IntPtr hThread;     public uint dwProcessId;     public uint dwThreadId;…


Lang.NET Symposium 2006

I still remember us planning for this event a few months back. It started off as a small group of people wanting to reinvent the then compiler labs into something bigger. The goal was to get all the right people in a room and have great speakers talk.   From where we started, I feel…


Passing Generic List and inheritance …

I came across this interesting scenario when I was looking into some issues. In a normal method you can pass the derived class instance when a base class instance is expected. In the example below passing dc1 to Method1 shows that you can indeed pass a derived class when a BaseClass was expected. But when…


Lang .Net 2006 Compiler Symposium

Registration is now open for the Lang .Net 2006 Compiler Symposium which will be held July 31st through August 2nd on the Microsoft Campus in Redmond, Washington. We welcome technologists from all platforms (CLR, Java, etc.) who want to come and share their research and implementation experiences. Lang .Net 2006 is a forum for discussion…