Adam Nathan's Old Blog

Please visit https://adamnathan.net instead!

Gotcha with STAThreadAttribute and Managed C++

Managed thread objects have an ApartmentState property that can be set to STA or MTA. But setting...

Author: Adam Nathan [MSFT] Date: 07/18/2003

CLR SPY and Customer Debug Probes: The Disconnected Context and Unmarshalable Interface Probes

When managed code interacts with COM objects via RCWs, the CLR handles the COM plumbing for you. An...

Author: Adam Nathan [MSFT] Date: 07/01/2003

Quiz: Gotcha with Exceptions and HRESULTs

The C# code below, when executed, prints the following: 0x80004002 0x80004002 Who can figure out why...

Author: Adam Nathan [MSFT] Date: 06/13/2003

CLR SPY and Customer Debug Probes: The Invalid IUnknown and Invalid VARIANT Probes

Whereas probes like Collected Delegate or Object Not Kept Alive catch coding mistakes in managed...

Author: Adam Nathan [MSFT] Date: 06/11/2003

CLR SPY and Customer Debug Probes: The Object Not Kept Alive and Buffer Overrun Probes (A Quiz)

The Object Not Kept Alive and Buffer Overrun probes are unlike any other CDPs, because they do not...

Author: Adam Nathan [MSFT] Date: 06/05/2003

TechEd Book Signing

I'll be doing a book signing (for .NET and COM: The Complete Interoperability Guide) at the TechEd...

Author: Adam Nathan [MSFT] Date: 06/03/2003

CLR SPY and Customer Debug Probes: The Collected Delegate Probe

The most common mistake made when passing a delegate to unmanaged code (marshaled as a function...

Author: Adam Nathan [MSFT] Date: 06/01/2003

TechEd Bloggers

Tomorrow morning I'm headed for Dallas, Texas to speak at TechEd 2003. Sonja Keserovic and I are...

Author: Adam Nathan [MSFT] Date: 05/30/2003

CLR SPY and Customer Debug Probes: The PInvoke Calling Convention Mismatch Probe

Defining a PInvoke signature and using DllImportAttribute correctly can be difficult to do, and you...

Author: Adam Nathan [MSFT] Date: 05/21/2003

Blogging troubles resolved

I've fixed this posting, so read on!

Author: Adam Nathan [MSFT] Date: 05/15/2003

CLR SPY and Customer Debug Probes: The Marshaling Probe

As promised, here's my first entry with more details about Customer Debug Probes and CLR SPY. The...

Author: Adam Nathan [MSFT] Date: 05/15/2003

Introducing Customer Debug Probes and CLR SPY

Version 1.1 of the .NET Framework introduces a handy feature called Customer Debug Probes (CDP)....

Author: Adam Nathan [MSFT] Date: 05/13/2003

Structures with embedded string fields

Tuesday's quiz used character arrays to represent string fields of the DEVMODE structure. Why not...

Author: Adam Nathan [MSFT] Date: 05/09/2003

Quiz: What's wrong with the following code?

The following C# code has the goal of enabling managed code to call CreateDC, but it's incorrect....

Author: Adam Nathan [MSFT] Date: 05/06/2003

size_is in managed code?

IDL has a size_is attribute (as well as length_is, first_is, last_is, max_is, ...) that decorates a...

Author: Adam Nathan [MSFT] Date: 05/06/2003

PreserveSig

For managed signatures that represent unmanaged functions, the PreserveSig pseudo custom attribute...

Author: Adam Nathan [MSFT] Date: 04/30/2003

Pseudo custom attributes

Tomorrow I'd like to talk about the PreserveSig pseudo custom attribute, but first I thought I'd...

Author: Adam Nathan [MSFT] Date: 04/29/2003

GetLastError and managed code

In the Win32 world, calling the GetLastError API is often the mechanism to get additional error...

Author: Adam Nathan [MSFT] Date: 04/25/2003

UnmanagedType.Struct and VARIANT marshaling

Continuing yesterday's theme of marshaling directives, today I'll talk about UnmanagedType.Struct,...

Author: Adam Nathan [MSFT] Date: 04/24/2003

The confusing UnmanagedType.LPStruct marshaling directive

MarshalAsAttribute controls marshaling behavior for managed data types that can have multiple...

Author: Adam Nathan [MSFT] Date: 04/23/2003

Disclaimer

These postings are provided "AS IS" with no warranties, and confer no rights.

Author: Adam Nathan [MSFT] Date: 04/04/2003

<Previous