Merge pull request #5714 from alexischr/update_bockbuild
[mono.git] / mono / metadata / icall-windows-uwp.c
1 /**
2  * \file
3  * UWP icall support for Mono.
4  *
5  * Copyright 2016 Microsoft
6  * Licensed under the MIT license. See LICENSE file in the project root for full license information.
7 */
8 #include <config.h>
9 #include <glib.h>
10 #include "mono/utils/mono-compiler.h"
11
12 #if G_HAVE_API_SUPPORT(HAVE_UWP_WINAPI_SUPPORT)
13 #include <windows.h>
14 #include "mono/metadata/icall-windows-internals.h"
15
16 MonoStringHandle
17 mono_icall_get_machine_name (MonoError *error)
18 {
19         g_unsupported_api ("GetComputerName");
20         return mono_string_new_handle (mono_domain_get (), "mono", error);
21 }
22
23 MonoStringHandle
24 mono_icall_get_windows_folder_path (int folder, MonoError *error)
25 {
26         error_init (error);
27         g_unsupported_api ("SHGetFolderPath");
28         return mono_string_new_handle (mono_domain_get (), "", error);
29 }
30
31 MonoArray *
32 mono_icall_get_logical_drives (void)
33 {
34         MonoError mono_error;
35         error_init (&mono_error);
36
37         g_unsupported_api ("GetLogicalDriveStrings");
38
39         mono_error_set_not_supported (&mono_error, G_UNSUPPORTED_API, "GetLogicalDriveStrings");
40         mono_error_set_pending_exception (&mono_error);
41
42         SetLastError (ERROR_NOT_SUPPORTED);
43
44         return NULL;
45 }
46
47 MonoBoolean
48 mono_icall_broadcast_setting_change (MonoError *error)
49 {
50         error_init (error);
51
52         g_unsupported_api ("SendMessageTimeout");
53
54         mono_error_set_not_supported (error, G_UNSUPPORTED_API, "SendMessageTimeout");
55
56         SetLastError (ERROR_NOT_SUPPORTED);
57
58         return is_ok (error);
59 }
60
61 guint32
62 mono_icall_drive_info_get_drive_type (MonoString *root_path_name)
63 {
64         MonoError mono_error;
65         error_init (&mono_error);
66
67         g_unsupported_api ("GetDriveType");
68
69         mono_error_set_not_supported (&mono_error, G_UNSUPPORTED_API, "GetDriveType");
70         mono_error_set_pending_exception (&mono_error);
71
72         return DRIVE_UNKNOWN;
73 }
74
75 gint32
76 mono_icall_wait_for_input_idle (gpointer handle, gint32 milliseconds)
77 {
78         MonoError mono_error;
79         error_init (&mono_error);
80
81         g_unsupported_api ("WaitForInputIdle");
82
83         mono_error_set_not_supported (&mono_error, G_UNSUPPORTED_API, "WaitForInputIdle");
84         mono_error_set_pending_exception (&mono_error);
85
86         return WAIT_TIMEOUT;
87 }
88
89 #else /* G_HAVE_API_SUPPORT(HAVE_UWP_WINAPI_SUPPORT) */
90
91 MONO_EMPTY_SOURCE_FILE (icall_windows_uwp);
92 #endif /* G_HAVE_API_SUPPORT(HAVE_UWP_WINAPI_SUPPORT) */