O'Reilly logo

C# Essentials by Peter Drayton, Ben Albahari, Brad Merrill

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Appendix D. Data Marshaling

When calling between the runtime environment and existing COM interfaces, the CLR performs automatic data marshaling for CLR types into compatible COM types.

Table 4.1 describes the C# to COM default data type mapping.

Table D-1. C# Type to COM Type Mapping

C# Type

COM Type

                        bool
VARIANT_BOOL
                        char
unsigned short
                        sbyte
Char
                        byte
Unsigned char
                        short
Short
                        ushort
Unsigned short
                        int
Int
                        uint
Unsigned int
                        long
Hyper
                        ulong
Unsigned hyper
                        float
Single
                        double
Double
                        decimal
DECIMAL
                        object
VARIANT
                        string
BSTR
System.DateTime

DATE [a]

                        System.Guid
GUID
                        System.Currency
CURRENCY
                        1-dimensional arrays
SAFEARRAY
                        Value types

Equivalently named struct

                        enum

Equivalently named enum

                        interface

Equivalently named interface

                        class

Equivalently named CoClass

[a] COM dates are less precise, causing comparison problems.

Table 4.2 shows the mapping of the C# modifiers to their equivalent COM interface attributes.

Table D-2. C# Modifier/COM Attribute Mapping

C# Modifier

COM Attribute

<no modifier>

[in]
                        out
[out]
                        ref
[in, out]

<return value>

[out, retval]

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required