update for HEAD-2003021201
[reactos.git] / lib / kernel32 / misc / error.c
1 /* $Id$
2  *
3  * reactos/lib/kernel32/misc/error.c
4  *
5  */
6
7 #include <k32.h>
8
9 #define NDEBUG
10 #include <kernel32/kernel32.h>
11
12
13 /* INTERNAL */
14 DWORD
15 STDCALL
16 SetLastErrorByStatus (
17         NTSTATUS        Status
18         )
19 {
20         DWORD Error = RtlNtStatusToDosError (Status);
21         SetLastError (Error);
22         return (Error);
23 }
24
25
26 VOID
27 STDCALL
28 SetLastError (
29         DWORD   dwErrorCode
30         )
31 {
32         NtCurrentTeb ()->LastErrorValue = (ULONG) dwErrorCode;
33 }
34
35 DWORD
36 STDCALL
37 GetLastError (VOID)
38 {
39         return (DWORD) (NtCurrentTeb ()->LastErrorValue);
40 }
41
42
43 WINBOOL
44 STDCALL
45 Beep (DWORD dwFreq, DWORD dwDuration)
46 {
47     HANDLE hBeep;
48     BEEP_SET_PARAMETERS BeepSetParameters;
49     DWORD dwReturned;
50
51     hBeep = CreateFile("\\\\.\\Beep",
52                        FILE_GENERIC_READ | FILE_GENERIC_WRITE,
53                        0,
54                        NULL,
55                        OPEN_EXISTING,
56                        0,
57                        NULL);
58     if (hBeep == INVALID_HANDLE_VALUE)
59         return FALSE;
60
61     /* Set beep data */
62     BeepSetParameters.Frequency = dwFreq;
63     BeepSetParameters.Duration  = dwDuration;
64
65     DeviceIoControl(hBeep,
66                     IOCTL_BEEP_SET,
67                     &BeepSetParameters,
68                     sizeof(BEEP_SET_PARAMETERS),
69                     NULL,
70                     0,
71                     &dwReturned,
72                     NULL);
73
74     CloseHandle (hBeep);
75
76     return TRUE;
77 }
78
79
80 /* EOF */