mirror of
https://github.com/reactos/reactos.git
synced 2025-07-28 17:01:49 +00:00
Resuscitate OS/2 subsystem from revision 24496.
svn path=/trunk/; revision=65459
This commit is contained in:
parent
ace5ce5329
commit
9f2787eb32
36 changed files with 15524 additions and 0 deletions
165
rossubsys/os2/lib/doscalls/misc/error.cpp
Normal file
165
rossubsys/os2/lib/doscalls/misc/error.cpp
Normal file
|
@ -0,0 +1,165 @@
|
|||
/* $Id$
|
||||
*/
|
||||
/*
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS OS/2 sub system
|
||||
* PART: doscalls.dll
|
||||
* FILE: error.cpp
|
||||
* CONTAINS: Error related CP-functions.
|
||||
* PURPOSE: Kernelservices for OS/2 apps
|
||||
* PROGRAMMER: Robert K. nonvolatil@yahoo.de
|
||||
* REVISION HISTORY:
|
||||
* 13-03-2002 Created
|
||||
* 25-07-2002 Work to make it compile
|
||||
*/
|
||||
|
||||
|
||||
#define INCL_DOSPROCESS
|
||||
#define INCL_DOSERRORS
|
||||
#include "ros2.h"
|
||||
// we need the extra definitions of this file
|
||||
namespace NT {
|
||||
#include <ddk/ntddbeep.h>
|
||||
}
|
||||
|
||||
|
||||
/*******************************************
|
||||
DosBeep generates sound from the
|
||||
speaker.
|
||||
|
||||
freq (ULONG) - input
|
||||
Cycles per second (Hertz) in the range of 0x25 to
|
||||
0x7FFF.
|
||||
|
||||
dur (ULONG) - input
|
||||
The length of the sound in milliseconds.
|
||||
|
||||
ulrc (APIRET) - returns
|
||||
Return Code.
|
||||
|
||||
DosBeep returns one of the following values:
|
||||
|
||||
0 NO_ERROR
|
||||
395 ERROR_INVALID_FREQUENCY
|
||||
*******************************************/
|
||||
APIRET STDCALL DosBeep(ULONG freq, ULONG dur)
|
||||
{
|
||||
NT::BEEP_SET_PARAMETERS BeepSetParameters;
|
||||
NT::HANDLE hBeep;
|
||||
NT::IO_STATUS_BLOCK ComplStatus;
|
||||
NT::UNICODE_STRING unistr;
|
||||
NT::NTSTATUS stat;
|
||||
NT::OBJECT_ATTRIBUTES oa = {sizeof oa, 0, &unistr, NT::OBJ_CASE_INSENSITIVE, 0, 0};
|
||||
|
||||
// init String still bevore use.
|
||||
NT::RtlInitUnicodeString( &unistr, (NT::PWSTR)L"\\\\.\\Beep" );
|
||||
|
||||
if( freq<0x25 || freq>0x7FFF )
|
||||
return ERROR_INVALID_FREQUENCY; //395; //
|
||||
|
||||
/* Set beep data */
|
||||
BeepSetParameters.Frequency = freq;
|
||||
BeepSetParameters.Duration = dur;
|
||||
|
||||
/* open the beep dirver */
|
||||
stat = NT::ZwOpenFile( &hBeep,
|
||||
FILE_READ_DATA | FILE_WRITE_DATA,
|
||||
&oa,
|
||||
&ComplStatus,
|
||||
0, // no sharing
|
||||
FILE_OPEN );
|
||||
|
||||
if ( stat<0 )
|
||||
{
|
||||
return ERROR_NOT_READY;
|
||||
}
|
||||
|
||||
/* actually beep */
|
||||
NT::ZwDeviceIoControlFile(hBeep, 0, // Event
|
||||
0, // APC-routine
|
||||
0, // UserAPCContext
|
||||
&ComplStatus, IOCTL_BEEP_SET,
|
||||
&BeepSetParameters,
|
||||
sizeof(NT::BEEP_SET_PARAMETERS),
|
||||
NULL,
|
||||
0 );
|
||||
NT::ZwClose(hBeep);
|
||||
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
|
||||
/******************************************
|
||||
DosError disables or enables error
|
||||
notification to end users.
|
||||
|
||||
error (ULONG) - input
|
||||
Error and Exception pop-up flags.
|
||||
|
||||
The unused high-order bits are reserved, and must be zero. The following values can be specified
|
||||
for this parameter. They can be combined using the "logical or" ( | ) operator.
|
||||
|
||||
FERR_DISABLEHARDERR (0x00000000)
|
||||
Disable hard error pop-ups.
|
||||
|
||||
FERR_ENABLEHARDERR (0x00000001)
|
||||
Enable hard error pop-ups.
|
||||
|
||||
FERR_ENABLEEXCEPTION (0x00000000)
|
||||
Enable program exception and untrapped numeric-processor exception pop-ups.
|
||||
|
||||
FERR_DISABLEEXCEPTION (0x00000002)
|
||||
Disable program exception and untrapped numeric-processor exception pop-ups.
|
||||
|
||||
ulrc (APIRET) - returns
|
||||
Return Code.
|
||||
|
||||
DosError returns one of the following values:
|
||||
|
||||
0 NO_ERROR
|
||||
87 ERROR_INVALID_PARAMETER
|
||||
*******************************************/
|
||||
APIRET DosError( ULONG error)
|
||||
{
|
||||
return ERROR_CALL_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
/*******************************************
|
||||
DosMove moves a file object to another
|
||||
location, and changes its name.
|
||||
|
||||
pszOld (PSZ) - input
|
||||
Address of the old path name of the file or
|
||||
subdirectory to be moved.
|
||||
|
||||
pszNew (PSZ) - input
|
||||
Address of the new path name of the file or
|
||||
subdirectory.
|
||||
|
||||
ulrc (APIRET) - returns
|
||||
Return Code.
|
||||
|
||||
DosMove returns the one of following values:
|
||||
|
||||
0 NO_ERROR
|
||||
2 ERROR_FILE_NOT_FOUND
|
||||
3 ERROR_PATH_NOT_FOUND
|
||||
5 ERROR_ACCESS_DENIED
|
||||
17 ERROR_NOT_SAME_DEVICE
|
||||
26 ERROR_NOT_DOS_DISK
|
||||
32 ERROR_SHARING_VIOLATION
|
||||
36 ERROR_SHARING_BUFFER_EXCEEDED
|
||||
87 ERROR_INVALID_PARAMETER
|
||||
108 ERROR_DRIVE_LOCKED
|
||||
206 ERROR_FILENAME_EXCED_RANGE
|
||||
250 ERROR_CIRCULARITY_REQUESTED
|
||||
251 ERROR_DIRECTORY_IN_CDS
|
||||
*******************************************/
|
||||
APIRET DosMove(PSZ pszOld, PSZ pszNew)
|
||||
{
|
||||
return ERROR_CALL_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* EOF */
|
Loading…
Add table
Add a link
Reference in a new issue