Merge pull request #4540 from kumpera/android-changes-part1
[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 MonoString *
17 mono_icall_get_machine_name (void)
18 {
19         g_unsupported_api ("GetComputerName");
20         return mono_string_new (mono_domain_get (), "mono");
21 }
22
23 MonoString *
24 mono_icall_get_windows_folder_path (int folder)
25 {
26         g_unsupported_api ("SHGetFolderPath");
27         return mono_string_new (mono_domain_get (), "");
28 }
29
30 MonoArray *
31 mono_icall_get_logical_drives (void)
32 {
33         MonoError mono_error;
34         error_init (&mono_error);
35
36         g_unsupported_api ("GetLogicalDriveStrings");
37
38         mono_error_set_not_supported (&mono_error, G_UNSUPPORTED_API, "GetLogicalDriveStrings");
39         mono_error_set_pending_exception (&mono_error);
40
41         SetLastError (ERROR_NOT_SUPPORTED);
42
43         return NULL;
44 }
45
46 void
47 mono_icall_broadcast_setting_change (void)
48 {
49         MonoError mono_error;
50         error_init (&mono_error);
51
52         g_unsupported_api ("SendMessageTimeout");
53
54         mono_error_set_not_supported (&mono_error, G_UNSUPPORTED_API, "SendMessageTimeout");
55         mono_error_set_pending_exception (&mono_error);
56
57         SetLastError (ERROR_NOT_SUPPORTED);
58
59         return;
60 }
61
62 guint32
63 mono_icall_drive_info_get_drive_type (MonoString *root_path_name)
64 {
65         MonoError mono_error;
66         error_init (&mono_error);
67
68         g_unsupported_api ("GetDriveType");
69
70         mono_error_set_not_supported (&mono_error, G_UNSUPPORTED_API, "GetDriveType");
71         mono_error_set_pending_exception (&mono_error);
72
73         return DRIVE_UNKNOWN;
74 }
75
76 gint32
77 mono_icall_wait_for_input_idle (gpointer handle, gint32 milliseconds)
78 {
79         MonoError mono_error;
80         error_init (&mono_error);
81
82         g_unsupported_api ("WaitForInputIdle");
83
84         mono_error_set_not_supported (&mono_error, G_UNSUPPORTED_API, "WaitForInputIdle");
85         mono_error_set_pending_exception (&mono_error);
86
87         return WAIT_TIMEOUT;
88 }
89
90 #else /* G_HAVE_API_SUPPORT(HAVE_UWP_WINAPI_SUPPORT) */
91
92 MONO_EMPTY_SOURCE_FILE (icall_windows_uwp);
93 #endif /* G_HAVE_API_SUPPORT(HAVE_UWP_WINAPI_SUPPORT) */