0b5afa2624bbf1b11bf6898ff4922bf55b909896
[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
10 #if G_HAVE_API_SUPPORT(HAVE_UWP_WINAPI_SUPPORT)
11 #include <Windows.h>
12 #include "mono/metadata/icall-windows-internals.h"
13
14 MonoString *
15 mono_icall_get_machine_name (void)
16 {
17         g_unsupported_api ("GetComputerName");
18         return mono_string_new (mono_domain_get (), "mono");
19 }
20
21 MonoString *
22 mono_icall_get_windows_folder_path (int folder)
23 {
24         g_unsupported_api ("SHGetFolderPath");
25         return mono_string_new (mono_domain_get (), "");
26 }
27
28 MonoArray *
29 mono_icall_get_logical_drives (void)
30 {
31         MonoError mono_error;
32         mono_error_init (&mono_error);
33
34         g_unsupported_api ("GetLogicalDriveStrings");
35
36         mono_error_set_not_supported (&mono_error, G_UNSUPPORTED_API, "GetLogicalDriveStrings");
37         mono_error_set_pending_exception (&mono_error);
38
39         SetLastError (ERROR_NOT_SUPPORTED);
40
41         return NULL;
42 }
43
44 void
45 mono_icall_broadcast_setting_change (void)
46 {
47         MonoError mono_error;
48         mono_error_init (&mono_error);
49
50         g_unsupported_api ("SendMessageTimeout");
51
52         mono_error_set_not_supported (&mono_error, G_UNSUPPORTED_API, "SendMessageTimeout");
53         mono_error_set_pending_exception (&mono_error);
54
55         SetLastError (ERROR_NOT_SUPPORTED);
56
57         return;
58 }
59
60 guint32
61 mono_icall_drive_info_get_drive_type (MonoString *root_path_name)
62 {
63         MonoError mono_error;
64         mono_error_init (&mono_error);
65
66         g_unsupported_api ("GetDriveType");
67
68         mono_error_set_not_supported (&mono_error, G_UNSUPPORTED_API, "GetDriveType");
69         mono_error_set_pending_exception (&mono_error);
70
71         return DRIVE_UNKNOWN;
72 }
73
74 gint32
75 mono_icall_wait_for_input_idle (gpointer handle, gint32 milliseconds)
76 {
77         MonoError mono_error;
78         mono_error_init (&mono_error);
79
80         g_unsupported_api ("WaitForInputIdle");
81
82         mono_error_set_not_supported (&mono_error, G_UNSUPPORTED_API, "WaitForInputIdle");
83         mono_error_set_pending_exception (&mono_error);
84
85         return WAIT_TIMEOUT;
86 }
87
88 #else /* G_HAVE_API_SUPPORT(HAVE_UWP_WINAPI_SUPPORT) */
89
90 #ifdef _MSC_VER
91 // Quiet Visual Studio linker warning, LNK4221, in cases when this source file intentional ends up empty.
92 void __mono_win32_icall_windows_uwp_quiet_lnk4221(void) {}
93 #endif
94 #endif /* G_HAVE_API_SUPPORT(HAVE_UWP_WINAPI_SUPPORT) */