typedef unsigned __int32 Dword; typedef unsigned __int16 Word; typedef unsigned __int8 Byte; //typedef unsigned __int32 size_t; #define NULL 0 #define MAX_PATH 256 #define FO_READ 0 #define FO_WRITE 2 #define EM_WINDOW_REDRAW 1 #define EM_KEY_PRESS 2 #define EM_BUTTON_CLICK 4 #define EM_APP_CLOSE 8 #define EM_DRAW_BACKGROUND 16 #define EM_MOUSE_EVENT 32 #define EM_IPC 64 #define EM_NETWORK 256 #define KM_CHARS 0 #define KM_SCANS 1 #define WRS_BEGIN 1 #define WRS_END 2 #define PROCESS_ID_SELF -1 //#define abs(a) (a<0?0-a:a) extern "C" double acos(double x); extern "C" double asin(double x); extern "C" double floor(double x); extern "C" double round(double x); #pragma function(acos,asin) #if _MSC_VER > 1200 #pragma function(floor) #endif struct kosFileInfo { Dword rwMode; Dword OffsetLow; Dword OffsetHigh; Dword dataCount; Byte *bufferPtr; char fileURL[MAX_PATH]; }; struct RGB { Byte b; Byte g; Byte r; // RGB() {}; // RGB( Dword value ) { r = (Byte)(value >> 16); g = (Byte)(value >> 8); b = (Byte)value; }; // bool operator != ( RGB &another ) { return this->b != another.b || this->g != another.g || this->r != another.r; }; // bool operator == ( RGB &another ) { return this->b == another.b && this->g == another.g && this->r == another.r; }; }; union sProcessInfo { Byte rawData[1024]; #pragma pack(push, 1) struct { Dword cpu_usage; Word window_stack_position; Word window_stack_value; Word reserved1; char process_name[12]; Dword memory_start; Dword used_memory; Dword PID; Dword left; Dword top; Dword width; Dword height; Word slot_state; Word reserved2; Dword work_left; Dword work_top; Dword work_width; Dword work_height; Byte window_state; } processInfo; #pragma pack(pop) }; // extern char *kosExePath; // int abs(int value); // void crtStartUp(); // int __cdecl _purecall(); // int __cdecl atexit( void (__cdecl *func )( void )); // void rtlSrand( Dword seed ); Dword rtlRand( void ); // char * __cdecl strcpy( char *target, const char *source ); int __cdecl strlen( const char *line ); char * __cdecl strrchr( const char * string, int c ); void lcase(char* string); int strcmp(char* string1, char* string2); #if _MSC_VER < 1400 extern "C" void * __cdecl memcpy( void *dst, const void *src, size_t bytesCount ); extern "C" void memset( Byte *dst, Byte filler, Dword count ); #pragma intrinsic(memcpy,memset) #else void * __cdecl memcpy( void *dst, const void *src, size_t bytesCount ); void memset( Byte *dst, Byte filler, Dword count ); #endif void sprintf( char *Str, char* Format, ... ); // Dword rtlInterlockedExchange(Dword *target, Dword value); // функция -1 завершения процесса void kos_ExitApp(); // функция 0 void kos_DefineAndDrawWindow(Word x, Word y, Word sizeX, Word sizeY,Byte mainAreaType, Dword mainAreaColour,Byte headerType, Dword headerColour, Dword borderColour); // функция 1 поставить точку void kos_PutPixel( Dword x, Dword y, Dword colour); // функция 2 получить код нажатой клавиши bool kos_GetKey(Byte &keyCode); // функция 3 получить время Dword kos_GetSystemClock(); // функция 4 void kos_WriteTextToWindow(Word x, Word y,Byte fontType,Dword textColour,char *textPtr,Dword textLen); // функция 7 нарисовать изображение void kos_PutImage( RGB * imagePtr, Word sizeX, Word sizeY, Word x, Word y); // функция 8 определить кнопку void kos_DefineButton(Word x, Word y, Word sizeX, Word sizeY, Dword buttonID, Dword colour); // функция 5 пауза, в сотых долях секунды void kos_Pause(Dword value); // функция 9 - информация о процессе Dword kos_ProcessInfo(sProcessInfo *targetPtr, Dword processID = PROCESS_ID_SELF); // функция 10 Dword kos_WaitForEvent(); // функция 11 Dword kos_CheckForEvent(); // функция 12 void kos_WindowRedrawStatus(Dword status ); // функция 13 нарисовать полосу void kos_DrawBar(Word x, Word y, Word sizeX, Word sizeY, Dword colour); // функция 17 bool kos_GetButtonID(Dword &buttonID); // функция 23 Dword kos_WaitForEvent(Dword timeOut); // enum eNumberBase { nbDecimal = 0, nbHex, nbBin }; // получение информации о состоянии "мыши" функция 37 void kos_GetMouseState(Dword & buttons, int & cursorX, int & cursorY); // функция 40 установить маску событий void kos_SetMaskForEvents(Dword mask); // функция 47 вывести в окно приложения число void kos_DisplayNumberToWindow(Dword value, Dword digitsNum, Word x, Word y, Dword colour, eNumberBase nBase = nbDecimal, bool valueIsPointer = false); // функция 58 доступ к файловой системе Dword kos_FileSystemAccess(kosFileInfo *fileInfo); // функция 63 void kos_DebugOutChar(char ccc); // void rtlDebugOutString(char *str); // функция 64 изменить параметры окна, параметр == -1 не меняется void kos_ChangeWindow(Dword x, Dword y, Dword sizeX, Dword sizeY); // функция 67 изменение количества памяти, выделенной для программы bool kos_ApplicationMemoryResize(Dword targetSize); // функция 66 режим получения данных от клавиатуры void kos_SetKeyboardDataMode(Dword mode); // Byte* kos_GetMemory(Dword count); // Dword kos_FreeMemory(Byte* pMemory); // void kos_Main();