Subversion Repositories Kolibri OS

Rev

Rev 7983 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
7983 leency 1
(*
2
    BSD 2-Clause License
3
 
4
    Copyright (c) 2019-2020, Anton Krotov
5
    All rights reserved.
6
*)
7
 
8
MODULE WINAPI;
9
 
10
IMPORT SYSTEM, API;
11
 
12
 
13
CONST
14
 
15
    OFS_MAXPATHNAME* = 128;
16
 
8097 maxcodehac 17
    KERNEL = "kernel32.dll";
18
    USER   = "user32.dll";
19
    MSVCRT = "msvcrt.dll";
7983 leency 20
 
8097 maxcodehac 21
 
7983 leency 22
TYPE
23
 
24
    DLL_ENTRY* = API.DLL_ENTRY;
25
 
26
    STRING = ARRAY 260 OF CHAR;
27
 
28
    TCoord* = RECORD
29
 
30
        X*, Y*: WCHAR
31
 
32
    END;
33
 
34
    TSmallRect* = RECORD
35
 
36
        Left*, Top*, Right*, Bottom*: WCHAR
37
 
38
    END;
39
 
40
    TConsoleScreenBufferInfo* = RECORD
41
 
42
        dwSize*:               TCoord;
43
        dwCursorPosition*:     TCoord;
44
        wAttributes*:          WCHAR;
45
        srWindow*:             TSmallRect;
46
        dwMaximumWindowSize*:  TCoord
47
 
48
    END;
49
 
50
    TSystemTime* = RECORD
51
 
52
        Year*,
53
        Month*,
54
        DayOfWeek*,
55
        Day*,
56
        Hour*,
57
        Min*,
58
        Sec*,
59
        MSec*:  WCHAR
60
 
61
    END;
62
 
8097 maxcodehac 63
    tm* = RECORD
64
 
65
        sec*,
66
        min*,
67
        hour*,
68
        mday*,
69
        mon*,
70
        year*,
71
        wday*,
72
        yday*,
73
        isdst*: SYSTEM.CARD32
74
 
75
    END;
76
 
7983 leency 77
    PSecurityAttributes* = POINTER TO TSecurityAttributes;
78
 
79
    TSecurityAttributes* = RECORD
80
 
8097 maxcodehac 81
        nLength*:               SYSTEM.CARD32;
7983 leency 82
        lpSecurityDescriptor*:  INTEGER;
8097 maxcodehac 83
        bInheritHandle*:        SYSTEM.CARD32 (* BOOL *)
7983 leency 84
 
85
    END;
86
 
87
    TFileTime* = RECORD
88
 
89
        dwLowDateTime*,
8097 maxcodehac 90
        dwHighDateTime*: SYSTEM.CARD32
7983 leency 91
 
92
    END;
93
 
8097 maxcodehac 94
    TWin32FindData* = RECORD
95
 
96
        dwFileAttributes*:    SYSTEM.CARD32;
97
        ftCreationTime*:      TFileTime;
98
        ftLastAccessTime*:    TFileTime;
99
        ftLastWriteTime*:     TFileTime;
100
        nFileSizeHigh*:       SYSTEM.CARD32;
101
        nFileSizeLow*:        SYSTEM.CARD32;
102
        dwReserved0*:         SYSTEM.CARD32;
103
        dwReserved1*:         SYSTEM.CARD32;
104
        cFileName*:           STRING;
105
        cAlternateFileName*:  ARRAY 14 OF CHAR;
106
        dwFileType*:          SYSTEM.CARD32;
107
        dwCreatorType*:       SYSTEM.CARD32;
108
        wFinderFlags*:        WCHAR
109
 
110
    END;
111
 
7983 leency 112
    OFSTRUCT* = RECORD
113
 
8097 maxcodehac 114
        cBytes*:      BYTE;
115
        fFixedDisk*:  BYTE;
7983 leency 116
        nErrCode*:    WCHAR;
117
        Reserved1*:   WCHAR;
118
        Reserved2*:   WCHAR;
119
        szPathName*:  ARRAY OFS_MAXPATHNAME OF CHAR
120
 
121
    END;
122
 
123
    POverlapped* = POINTER TO OVERLAPPED;
124
 
125
    OVERLAPPED* = RECORD
126
 
127
        Internal*:      INTEGER;
128
        InternalHigh*:  INTEGER;
8097 maxcodehac 129
        Offset*:        SYSTEM.CARD32;
130
        OffsetHigh*:    SYSTEM.CARD32;
7983 leency 131
        hEvent*:        INTEGER
132
 
133
    END;
134
 
135
 
8097 maxcodehac 136
PROCEDURE [windows-, KERNEL, ""] SetConsoleCursorPosition* (hConsoleOutput, dwCursorPosition: INTEGER): INTEGER;
7983 leency 137
 
8097 maxcodehac 138
PROCEDURE [windows-, KERNEL, ""] GetConsoleScreenBufferInfo* (hConsoleOutput: INTEGER; ConsoleScreenBufferInfo: TConsoleScreenBufferInfo): INTEGER;
7983 leency 139
 
8097 maxcodehac 140
PROCEDURE [windows-, KERNEL, ""] FillConsoleOutputCharacterA* (hConsoleOutput, cCaracter, nLength, dwWriteCoord, lpNumberOfCharsWritten: INTEGER): INTEGER;
7983 leency 141
 
8097 maxcodehac 142
PROCEDURE [windows-, KERNEL, ""] FillConsoleOutputAttribute* (hConsoleOutput, wAttribute, nLength, dwWriteCoord, lpNumberOfAttrsWritten: INTEGER): INTEGER;
7983 leency 143
 
8097 maxcodehac 144
PROCEDURE [windows-, KERNEL, ""] SetConsoleTextAttribute* (hConsoleOutput, wAttributes: INTEGER): INTEGER;
7983 leency 145
 
8097 maxcodehac 146
PROCEDURE [windows-, KERNEL, ""] GetStdHandle* (nStdHandle: INTEGER): INTEGER;
7983 leency 147
 
8097 maxcodehac 148
PROCEDURE [windows-, KERNEL, ""] CloseHandle* (hObject: INTEGER): INTEGER;
7983 leency 149
 
8097 maxcodehac 150
PROCEDURE [windows-, KERNEL, ""] WriteFile* (hFile, Buffer, nNumberOfBytesToRead, lpNumberOfBytesRead: INTEGER; lpOverlapped: POverlapped): INTEGER;
7983 leency 151
 
8097 maxcodehac 152
PROCEDURE [windows-, KERNEL, ""] ReadFile* (hFile, Buffer, nNumberOfBytesToRead, lpNumberOfBytesRead: INTEGER; lpOverlapped: POverlapped): INTEGER;
7983 leency 153
 
8097 maxcodehac 154
PROCEDURE [windows-, KERNEL, ""] GetCommandLineA* (): INTEGER;
7983 leency 155
 
8097 maxcodehac 156
PROCEDURE [windows-, KERNEL, ""] GlobalAlloc* (uFlags, dwBytes: INTEGER): INTEGER;
7983 leency 157
 
8097 maxcodehac 158
PROCEDURE [windows-, KERNEL, ""] GlobalFree* (hMem: INTEGER): INTEGER;
7983 leency 159
 
8097 maxcodehac 160
PROCEDURE [windows-, KERNEL, ""] ExitProcess* (code: INTEGER);
7983 leency 161
 
8097 maxcodehac 162
PROCEDURE [windows-, KERNEL, ""] GetTickCount* (): INTEGER;
7983 leency 163
 
8097 maxcodehac 164
PROCEDURE [windows-, KERNEL, ""] Sleep* (dwMilliseconds: INTEGER);
7983 leency 165
 
8097 maxcodehac 166
PROCEDURE [windows-, KERNEL, ""] FreeLibrary* (hLibModule: INTEGER): INTEGER;
7983 leency 167
 
8097 maxcodehac 168
PROCEDURE [windows-, KERNEL, ""] GetProcAddress* (hModule, name: INTEGER): INTEGER;
7983 leency 169
 
8097 maxcodehac 170
PROCEDURE [windows-, KERNEL, ""] LoadLibraryA* (name: INTEGER): INTEGER;
7983 leency 171
 
8097 maxcodehac 172
PROCEDURE [windows-, KERNEL, ""] AllocConsole* (): BOOLEAN;
7983 leency 173
 
8097 maxcodehac 174
PROCEDURE [windows-, KERNEL, ""] FreeConsole* (): BOOLEAN;
7983 leency 175
 
8097 maxcodehac 176
PROCEDURE [windows-, KERNEL, ""] GetLocalTime* (T: TSystemTime);
7983 leency 177
 
8097 maxcodehac 178
PROCEDURE [windows-, KERNEL, ""] RemoveDirectoryA* (lpPathName: INTEGER): INTEGER;
7983 leency 179
 
8097 maxcodehac 180
PROCEDURE [windows-, KERNEL, ""] GetFileAttributesA* (lpPathName: INTEGER): SET;
181
 
182
PROCEDURE [windows-, KERNEL, ""] CreateDirectoryA* (lpPathName: INTEGER; lpSecurityAttributes: PSecurityAttributes): INTEGER;
183
 
184
PROCEDURE [windows-, KERNEL, ""] FindFirstFileA* (lpFileName: INTEGER; lpFindFileData: TWin32FindData): INTEGER;
185
 
186
PROCEDURE [windows-, KERNEL, ""] DeleteFileA* (lpFileName: INTEGER): INTEGER;
187
 
188
PROCEDURE [windows-, KERNEL, ""] FindClose* (hFindFile: INTEGER): INTEGER;
189
 
190
PROCEDURE [windows-, KERNEL, ""] CreateFileA* (
191
        lpFileName, dwDesiredAccess, dwShareMode: INTEGER;
192
        lpSecurityAttributes: PSecurityAttributes;
193
        dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile: INTEGER): INTEGER;
194
 
195
PROCEDURE [windows-, KERNEL, ""] OpenFile* (lpFileName: INTEGER; lpReOpenBuff: OFSTRUCT; uStyle: INTEGER): INTEGER;
196
 
197
PROCEDURE [windows-, KERNEL, ""] SetFilePointer* (hFile, lDistanceToMove, lpDistanceToMoveHigh, dwMoveMethod: INTEGER): INTEGER;
198
 
199
PROCEDURE [windows-, KERNEL, ""] ReadConsoleA* (hConsoleInput, lpBuffer, nNumberOfCharsToRead, lpNumberOfCharsRead, lpReserved: INTEGER): INTEGER;
200
 
201
PROCEDURE [windows-, KERNEL, ""] WriteConsoleW* (hConsoleOutput, lpBuffer, nNumberOfCharsToWrite, lpNumberOfCharsWritten, lpReserved: INTEGER): INTEGER;
202
 
203
PROCEDURE [windows-, KERNEL, ""] WriteConsoleA* (hConsoleOutput, lpBuffer, nNumberOfCharsToWrite, lpNumberOfCharsWritten, lpReserved: INTEGER): INTEGER;
204
 
205
PROCEDURE [windows-, USER,   ""] MessageBoxA* (hWnd, lpText, lpCaption, uType: INTEGER): INTEGER;
206
 
207
PROCEDURE [windows-, USER,   ""] MessageBoxW* (hWnd, lpText, lpCaption, uType: INTEGER): INTEGER;
208
 
209
PROCEDURE [windows-, USER,   ""] CreateWindowExA* (
210
        dwExStyle, lpClassName, lpWindowName, dwStyle, X, Y,
211
        nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam: INTEGER): INTEGER;
212
 
213
PROCEDURE [windows-, MSVCRT, ""] time* (ptr: INTEGER): INTEGER;
214
 
215
PROCEDURE [windows-, MSVCRT, ""] mktime* (time: tm): INTEGER;
216
 
217
 
7983 leency 218
PROCEDURE SetDllEntry* (process_detach, thread_detach, thread_attach: DLL_ENTRY);
219
BEGIN
220
    API.SetDll(process_detach, thread_detach, thread_attach)
221
END SetDllEntry;
222
 
223
 
224
END WINAPI.