[Mono-dev] COM Interop Patch

Jon Chambers joncham at gmail.com
Fri Sep 29 23:27:39 EDT 2006


Another patch for COM Interop. Details from ChangeLog:

    * domain.c, class-internals.h: Added ComInteropProxy class to
MonoDefaults.
    * marshal.c: Return correct unmanaged size for object when
MarshalAs.Struct.
    Emit exception rather than crash in case of COM Callable Wrapper (not
yet implemented).
    Handle marshalling of interfaces and VARIANTs contained in structs.

    Code is contributed under MIT/X11 license.

Just an update, at this point I'm hoping to start working on COM Callable
Wrappers (exposing managed objects to unmanaged code as COM objects). The
only other thing I was considering was moving as much COM Interop code as
possible to seperate files (cominterop.c/.h) and add a
marshal-internals.hfor some functionality that is needed. Is this
worthwhile? If not, I'm glad
to just continue working as is.

The code to marshal VARIANTs and interfaces is duplicated for within structs
and in emit_marshal_object. Any advice on the best way to have this code in
one place; perhaps a routine that assumes source/dest addresses are on the
stack, similar to what is done for struct marshalling? Or is the code
duplication just not that big of an issue?

Thanks,
Jonathan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-devel-list/attachments/20060929/06a68e7f/attachment.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: compatch.diff
Type: application/octet-stream
Size: 13337 bytes
Desc: not available
Url : http://lists.ximian.com/pipermail/mono-devel-list/attachments/20060929/06a68e7f/attachment.obj 


More information about the Mono-devel-list mailing list