Enabled possibility to exclude SafeArray implementation on Windows.
[mono.git] / mono / metadata / cominterop-win32-internals.h
1 /*
2  * Copyright 2016 Microsoft
3  * Licensed under the MIT license. See LICENSE file in the project root for full license information.
4  */
5 #ifndef __MONO_METADATA_COMINTEROP_WIN32_INTERNALS_H__
6 #define __MONO_METADATA_COMINTEROP_WIN32_INTERNALS_H__
7
8 #include <config.h>
9 #include <glib.h>
10
11 // On some Windows platforms the implementation of below methods are hosted
12 // in separate source files like cominterop-win32-*.c. On other platforms,
13 // the implementation is kept in cominterop.c and declared as static and in some
14 // cases even inline.
15 #if defined(HOST_WIN32) && !G_HAVE_API_SUPPORT(HAVE_CLASSIC_WINAPI_SUPPORT | HAVE_UWP_WINAPI_SUPPORT)
16
17 guint32
18 mono_marshal_win_safearray_get_dim (gpointer safearray);
19
20 int
21 mono_marshal_win_safe_array_get_lbound (gpointer psa, guint nDim, glong* plLbound);
22
23 int
24 mono_marshal_win_safe_array_get_ubound (gpointer psa, guint nDim, glong* plUbound);
25
26 int
27 mono_marshal_win_safearray_get_value (gpointer safearray, gpointer indices, gpointer *result);
28
29 void
30 mono_marshal_win_safearray_end (gpointer safearray, gpointer indices);
31
32 gboolean
33 mono_marshal_win_safearray_create_internal (UINT cDims, SAFEARRAYBOUND *rgsabound, gpointer *newsafearray);
34
35 int
36 mono_marshal_win_safearray_set_value (gpointer safearray, gpointer indices, gpointer value);
37
38 #endif /* HOST_WIN32 && !G_HAVE_API_SUPPORT(HAVE_CLASSIC_WINAPI_SUPPORT | HAVE_UWP_WINAPI_SUPPORT) */
39
40 #endif /* __MONO_METADATA_COMINTEROP_WIN32_INTERNALS_H__ */