Build mono runtime under none desktop Windows API family, adjustments and cleanup.
[mono.git] / mono / metadata / icall-windows-uwp.c
1 /*
2  * icall-windows-uwp.c: UWP icall support for Mono.
3  *
4  * Copyright 2016 Microsoft
5  * Licensed under the MIT license. See LICENSE file in the project root for full license information.
6 */
7 #include <config.h>
8 #include <glib.h>
9 #include "mono/utils/mono-compiler.h"
10
11 #if G_HAVE_API_SUPPORT(HAVE_UWP_WINAPI_SUPPORT)
12 #include <windows.h>
13 #include "mono/metadata/icall-windows-internals.h"
14
15 MonoString *
16 mono_icall_get_machine_name (void)
17 {
18         g_unsupported_api ("GetComputerName");
19         return mono_string_new (mono_domain_get (), "mono");
20 }
21
22 MonoString *
23 mono_icall_get_windows_folder_path (int folder)
24 {
25         g_unsupported_api ("SHGetFolderPath");
26         return mono_string_new (mono_domain_get (), "");
27 }
28
29 MonoArray *
30 mono_icall_get_logical_drives (void)
31 {
32         MonoError mono_error;
33         mono_error_init (&mono_error);
34
35         g_unsupported_api ("GetLogicalDriveStrings");
36
37         mono_error_set_not_supported (&mono_error, G_UNSUPPORTED_API, "GetLogicalDriveStrings");
38         mono_error_set_pending_exception (&mono_error);
39
40         SetLastError (ERROR_NOT_SUPPORTED);
41
42         return NULL;
43 }
44
45 void
46 mono_icall_broadcast_setting_change (void)
47 {
48         MonoError mono_error;
49         mono_error_init (&mono_error);
50
51         g_unsupported_api ("SendMessageTimeout");
52
53         mono_error_set_not_supported (&mono_error, G_UNSUPPORTED_API, "SendMessageTimeout");
54         mono_error_set_pending_exception (&mono_error);
55
56         SetLastError (ERROR_NOT_SUPPORTED);
57
58         return;
59 }
60
61 guint32
62 mono_icall_drive_info_get_drive_type (MonoString *root_path_name)
63 {
64         MonoError mono_error;
65         mono_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         mono_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) */