Merge pull request #2831 from razzfazz/fix_dllimport
[mono.git] / mono / metadata / cominterop.h
1 /*
2  * cominterop.h: COM Interop Support
3  * 
4  *
5  * (C) 2002 Ximian, Inc.  http://www.ximian.com
6  *
7  */
8
9 #ifndef __MONO_COMINTEROP_H__
10 #define __MONO_COMINTEROP_H__
11
12 #include <mono/metadata/method-builder.h>
13 #include <mono/metadata/marshal.h>
14
15 void
16 mono_cominterop_init (void);
17
18 void
19 mono_cominterop_cleanup (void);
20
21 void
22 mono_mb_emit_cominterop_call (MonoMethodBuilder *mb, MonoMethodSignature *sig, MonoMethod* method);
23
24 void
25 mono_cominterop_emit_ptr_to_object_conv (MonoMethodBuilder *mb, MonoType *type, MonoMarshalConv conv, MonoMarshalSpec *mspec);
26
27 void
28 mono_cominterop_emit_object_to_ptr_conv (MonoMethodBuilder *mb, MonoType *type, MonoMarshalConv conv, MonoMarshalSpec *mspec);
29
30 MonoMethod *
31 mono_cominterop_get_native_wrapper (MonoMethod *method);
32
33 MonoMethod *
34 mono_cominterop_get_invoke (MonoMethod *method);
35
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);
42
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);
49
50 MONO_API MonoString * 
51 mono_string_from_bstr (gpointer bstr);
52
53 MONO_API void 
54 mono_free_bstr (gpointer bstr);
55
56 MonoClass*
57 mono_class_try_get_com_object_class (void);
58
59 #endif /* __MONO_COMINTEROP_H__ */