2010-05-14 Rodrigo Kumpera <rkumpera@novell.com>
[mono-project.git] / mono / metadata / cominterop.h
blobd3da2d93f4675af84daaa1843246e117fe898994
1 /*
2 * cominterop.h: COM Interop Support
3 *
5 * (C) 2002 Ximian, Inc. http://www.ximian.com
7 */
9 #ifndef __MONO_COMINTEROP_H__
10 #define __MONO_COMINTEROP_H__
12 #include <mono/metadata/method-builder.h>
13 #include <mono/metadata/marshal.h>
15 void
16 mono_cominterop_init (void) MONO_INTERNAL;
18 void
19 mono_cominterop_cleanup (void) MONO_INTERNAL;
21 void
22 mono_mb_emit_cominterop_call (MonoMethodBuilder *mb, MonoMethodSignature *sig, MonoMethod* method) MONO_INTERNAL;
24 void
25 mono_cominterop_emit_ptr_to_object_conv (MonoMethodBuilder *mb, MonoType *type, MonoMarshalConv conv, MonoMarshalSpec *mspec) MONO_INTERNAL;
27 void
28 mono_cominterop_emit_object_to_ptr_conv (MonoMethodBuilder *mb, MonoType *type, MonoMarshalConv conv, MonoMarshalSpec *mspec) MONO_INTERNAL;
30 MonoMethod *
31 mono_cominterop_get_native_wrapper (MonoMethod *method) MONO_INTERNAL;
33 MonoMethod *
34 mono_cominterop_get_invoke (MonoMethod *method) MONO_INTERNAL;
36 int
37 mono_cominterop_emit_marshal_com_interface (EmitMarshalContext *m, int argnum,
38 MonoType *t,
39 MonoMarshalSpec *spec,
40 int conv_arg, MonoType **conv_arg_type,
41 MarshalAction action) MONO_INTERNAL;
43 int
44 mono_cominterop_emit_marshal_safearray (EmitMarshalContext *m, int argnum,
45 MonoType *t,
46 MonoMarshalSpec *spec,
47 int conv_arg, MonoType **conv_arg_type,
48 MarshalAction action) MONO_INTERNAL;
50 MonoString *
51 mono_string_from_bstr (gpointer bstr);
53 void
54 mono_free_bstr (gpointer bstr);
56 #endif /* __MONO_COMINTEROP_H__ */