1 /** 2 * \file 3 * COM Interop Support 4 * 5 * 6 * (C) 2002 Ximian, Inc. http://www.ximian.com 7 * 8 */ 9 10 #ifndef __MONO_COMINTEROP_H__ 11 #define __MONO_COMINTEROP_H__ 12 13 #include <mono/metadata/method-builder.h> 14 #include <mono/metadata/marshal.h> 15 16 void 17 mono_cominterop_init (void); 18 19 void 20 mono_cominterop_cleanup (void); 21 22 void 23 mono_mb_emit_cominterop_get_function_pointer (MonoMethodBuilder *mb, MonoMethod* method); 24 25 void 26 mono_mb_emit_cominterop_call_function_pointer (MonoMethodBuilder *mb, MonoMethodSignature *sig); 27 28 void 29 mono_mb_emit_cominterop_call (MonoMethodBuilder *mb, MonoMethodSignature *sig, MonoMethod* method); 30 31 void 32 mono_cominterop_emit_ptr_to_object_conv (MonoMethodBuilder *mb, MonoType *type, MonoMarshalConv conv, MonoMarshalSpec *mspec); 33 34 void 35 mono_cominterop_emit_object_to_ptr_conv (MonoMethodBuilder *mb, MonoType *type, MonoMarshalConv conv, MonoMarshalSpec *mspec); 36 37 MonoMethod * 38 mono_cominterop_get_native_wrapper (MonoMethod *method); 39 40 MonoMethod * 41 mono_cominterop_get_invoke (MonoMethod *method); 42 43 int 44 mono_cominterop_emit_marshal_com_interface (EmitMarshalContext *m, int argnum, 45 MonoType *t, 46 MonoMarshalSpec *spec, 47 int conv_arg, MonoType **conv_arg_type, 48 MarshalAction action); 49 50 int 51 mono_cominterop_emit_marshal_safearray (EmitMarshalContext *m, int argnum, 52 MonoType *t, 53 MonoMarshalSpec *spec, 54 int conv_arg, MonoType **conv_arg_type, 55 MarshalAction action); 56 57 MONO_RT_EXTERNAL_ONLY 58 MONO_API MonoString * 59 mono_string_from_bstr (gpointer bstr); 60 61 MonoString * 62 mono_string_from_bstr_icall (gpointer bstr); 63 64 MonoString * 65 mono_string_from_bstr_checked (gpointer bstr, MonoError *error); 66 67 MONO_API void 68 mono_free_bstr (gpointer bstr); 69 70 MonoClass* 71 mono_class_try_get_com_object_class (void); 72 73 void* 74 mono_cominterop_get_com_interface (MonoObject* object, MonoClass* ic, MonoError *error); 75 76 #endif /* __MONO_COMINTEROP_H__ */ 77