xref: /netbsd-src/external/gpl3/gcc/dist/libphobos/libdruntime/core/sys/windows/rapi.d (revision 0a3071956a3a9fdebdbf7f338cf2d439b45fc728)
1 /**
2  * Windows API header module
3  *
4  * Translated from MinGW Windows headers
5  *
6  * Authors: Stewart Gordon
7  * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
8  * Source: $(DRUNTIMESRC core/sys/windows/_rapi.d)
9  */
10 module core.sys.windows.rapi;
11 version (Windows):
12 @system:
13 
14 /* Comment from MinGW
15    NOTE: This strictly does not belong in the Win32 API since it's
16    really part of Platform SDK.
17  */
18 
19 import core.sys.windows.winbase, core.sys.windows.windef;
20 
21 extern (Windows):
22 
23 enum RAPISTREAMFLAG
24 {
25     STREAM_TIMEOUT_READ
26 }
27 
28 interface IRAPIStream
29 {
30     HRESULT SetRapiStat(RAPISTREAMFLAG, DWORD);
31     HRESULT GetRapiStat(RAPISTREAMFLAG, DWORD*);
32 }
33 
34 alias HRESULT function(DWORD, BYTE, DWORD, BYTE, IRAPIStream) RAPIEXT;
35 
36 struct RAPIINIT
37 {
38     DWORD   cbSize = this.sizeof;
39     HANDLE  heRapiInit;
40     HRESULT hrRapiInit;
41 }
42 
43 HRESULT CeRapiInit();
44 HRESULT CeRapiInitEx(RAPIINIT*);
45 BOOL CeCreateProcess(LPCWSTR, LPCWSTR, LPSECURITY_ATTRIBUTES,
46   LPSECURITY_ATTRIBUTES, BOOL, DWORD, LPVOID, LPWSTR, LPSTARTUPINFO,
47   LPPROCESS_INFORMATION);
48 HRESULT CeRapiUninit();
49 BOOL CeWriteFile(HANDLE, LPCVOID, DWORD, LPDWORD, LPOVERLAPPED);
50 HANDLE CeCreateFile(LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD,
51   DWORD, HANDLE);
52 BOOL CeCreateDirectory(LPCWSTR, LPSECURITY_ATTRIBUTES);
53 DWORD CeGetLastError();
54 BOOL CeGetFileTime(HANDLE, LPFILETIME, LPFILETIME, LPFILETIME);
55 BOOL CeCloseHandle(HANDLE);
56