Format: application/octet-stream
1 from ctypes import (
2 Array,
3 Structure,
4 _SimpleCData,
5 c_byte,
6 c_char,
7 c_char_p,
8 c_double,
9 c_float,
10 c_int,
11 c_long,
12 c_longlong,
13 c_short,
14 c_uint,
15 c_ulong,
16 c_ulonglong,
17 c_ushort,
18 c_void_p,
19 c_wchar,
20 c_wchar_p,
21 pointer,
22 )
23
24 BYTE = c_byte
25 WORD = c_ushort
26 DWORD = c_ulong
27 CHAR = c_char
28 WCHAR = c_wchar
29 UINT = c_uint
30 INT = c_int
31 DOUBLE = c_double
32 FLOAT = c_float
33 BOOLEAN = BYTE
34 BOOL = c_long
35
36 class VARIANT_BOOL(_SimpleCData[bool]): ...
37
38 ULONG = c_ulong
39 LONG = c_long
40 USHORT = c_ushort
41 SHORT = c_short
42 LARGE_INTEGER = c_longlong
43 _LARGE_INTEGER = c_longlong
44 ULARGE_INTEGER = c_ulonglong
45 _ULARGE_INTEGER = c_ulonglong
46
47 OLESTR = c_wchar_p
48 LPOLESTR = c_wchar_p
49 LPCOLESTR = c_wchar_p
50 LPWSTR = c_wchar_p
51 LPCWSTR = c_wchar_p
52 LPSTR = c_char_p
53 LPCSTR = c_char_p
54 LPVOID = c_void_p
55 LPCVOID = c_void_p
56
57 # These two types are pointer-sized unsigned and signed ints, respectively.
58 # At runtime, they are either c_[u]long or c_[u]longlong, depending on the host's pointer size
59 # (they are not really separate classes).
60 class WPARAM(_SimpleCData[int]): ...
61 class LPARAM(_SimpleCData[int]): ...
62
63 ATOM = WORD
64 LANGID = WORD
65 COLORREF = DWORD
66 LGRPID = DWORD
67 LCTYPE = DWORD
68 LCID = DWORD
69
70 HANDLE = c_void_p
71 HACCEL = HANDLE
72 HBITMAP = HANDLE
73 HBRUSH = HANDLE
74 HCOLORSPACE = HANDLE
75 HDC = HANDLE
76 HDESK = HANDLE
77 HDWP = HANDLE
78 HENHMETAFILE = HANDLE
79 HFONT = HANDLE
80 HGDIOBJ = HANDLE
81 HGLOBAL = HANDLE
82 HHOOK = HANDLE
83 HICON = HANDLE
84 HINSTANCE = HANDLE
85 HKEY = HANDLE
86 HKL = HANDLE
87 HLOCAL = HANDLE
88 HMENU = HANDLE
89 HMETAFILE = HANDLE
90 HMODULE = HANDLE
91 HMONITOR = HANDLE
92 HPALETTE = HANDLE
93 HPEN = HANDLE
94 HRGN = HANDLE
95 HRSRC = HANDLE
96 HSTR = HANDLE
97 HTASK = HANDLE
98 HWINSTA = HANDLE
99 HWND = HANDLE
100 SC_HANDLE = HANDLE
101 SERVICE_STATUS_HANDLE = HANDLE
102
103 class RECT(Structure):
104 left: LONG
105 top: LONG
106 right: LONG
107 bottom: LONG
108
109 RECTL = RECT
110 _RECTL = RECT
111 tagRECT = RECT
112
113 class _SMALL_RECT(Structure):
114 Left: SHORT
115 Top: SHORT
116 Right: SHORT
117 Bottom: SHORT
118
119 SMALL_RECT = _SMALL_RECT
120
121 class _COORD(Structure):
122 X: SHORT
123 Y: SHORT
124
125 class POINT(Structure):
126 x: LONG
127 y: LONG
128
129 POINTL = POINT
130 _POINTL = POINT
131 tagPOINT = POINT
132
133 class SIZE(Structure):
134 cx: LONG
135 cy: LONG
136
137 SIZEL = SIZE
138 tagSIZE = SIZE
139
140 def RGB(red: int, green: int, blue: int) -> int: ...
141
142 class FILETIME(Structure):
143 dwLowDateTime: DWORD
144 dwHighDateTime: DWORD
145
146 _FILETIME = FILETIME
147
148 class MSG(Structure):
149 hWnd: HWND
150 message: UINT
151 wParam: WPARAM
152 lParam: LPARAM
153 time: DWORD
154 pt: POINT
155
156 tagMSG = MSG
157 MAX_PATH: int
158
159 class WIN32_FIND_DATAA(Structure):
160 dwFileAttributes: DWORD
161 ftCreationTime: FILETIME
162 ftLastAccessTime: FILETIME
163 ftLastWriteTime: FILETIME
164 nFileSizeHigh: DWORD
165 nFileSizeLow: DWORD
166 dwReserved0: DWORD
167 dwReserved1: DWORD
168 cFileName: Array[CHAR]
169 cAlternateFileName: Array[CHAR]
170
171 class WIN32_FIND_DATAW(Structure):
172 dwFileAttributes: DWORD
173 ftCreationTime: FILETIME
174 ftLastAccessTime: FILETIME
175 ftLastWriteTime: FILETIME
176 nFileSizeHigh: DWORD
177 nFileSizeLow: DWORD
178 dwReserved0: DWORD
179 dwReserved1: DWORD
180 cFileName: Array[WCHAR]
181 cAlternateFileName: Array[WCHAR]
182
183 # These pointer type definitions use pointer[...] instead of POINTER(...), to allow them
184 # to be used in type annotations.
185 PBOOL = pointer[BOOL]
186 LPBOOL = pointer[BOOL]
187 PBOOLEAN = pointer[BOOLEAN]
188 PBYTE = pointer[BYTE]
189 LPBYTE = pointer[BYTE]
190 PCHAR = pointer[CHAR]
191 LPCOLORREF = pointer[COLORREF]
192 PDWORD = pointer[DWORD]
193 LPDWORD = pointer[DWORD]
194 PFILETIME = pointer[FILETIME]
195 LPFILETIME = pointer[FILETIME]
196 PFLOAT = pointer[FLOAT]
197 PHANDLE = pointer[HANDLE]
198 LPHANDLE = pointer[HANDLE]
199 PHKEY = pointer[HKEY]
200 LPHKL = pointer[HKL]
201 PINT = pointer[INT]
202 LPINT = pointer[INT]
203 PLARGE_INTEGER = pointer[LARGE_INTEGER]
204 PLCID = pointer[LCID]
205 PLONG = pointer[LONG]
206 LPLONG = pointer[LONG]
207 PMSG = pointer[MSG]
208 LPMSG = pointer[MSG]
209 PPOINT = pointer[POINT]
210 LPPOINT = pointer[POINT]
211 PPOINTL = pointer[POINTL]
212 PRECT = pointer[RECT]
213 LPRECT = pointer[RECT]
214 PRECTL = pointer[RECTL]
215 LPRECTL = pointer[RECTL]
216 LPSC_HANDLE = pointer[SC_HANDLE]
217 PSHORT = pointer[SHORT]
218 PSIZE = pointer[SIZE]
219 LPSIZE = pointer[SIZE]
220 PSIZEL = pointer[SIZEL]
221 LPSIZEL = pointer[SIZEL]
222 PSMALL_RECT = pointer[SMALL_RECT]
223 PUINT = pointer[UINT]
224 LPUINT = pointer[UINT]
225 PULARGE_INTEGER = pointer[ULARGE_INTEGER]
226 PULONG = pointer[ULONG]
227 PUSHORT = pointer[USHORT]
228 PWCHAR = pointer[WCHAR]
229 PWIN32_FIND_DATAA = pointer[WIN32_FIND_DATAA]
230 LPWIN32_FIND_DATAA = pointer[WIN32_FIND_DATAA]
231 PWIN32_FIND_DATAW = pointer[WIN32_FIND_DATAW]
232 LPWIN32_FIND_DATAW = pointer[WIN32_FIND_DATAW]
233 PWORD = pointer[WORD]
234 LPWORD = pointer[WORD]
235