1 /***********************************************************************\ 2 * rapi.d * 3 * * 4 * Windows API header module * 5 * * 6 * Translated from MinGW Windows headers * 7 * by Stewart Gordon * 8 * * 9 * Placed into public domain * 10 \***********************************************************************/ 11 module win32.rapi; 12 13 /* Comment from MinGW 14 NOTE: This strictly does not belong in the Win32 API since it's 15 really part of Platform SDK. 16 */ 17 18 private import win32.winbase, win32.windef; 19 20 struct IRAPIStream { 21 IRAPIStreamVtbl* lpVtbl; 22 } 23 24 enum RAPISTREAMFLAG { 25 STREAM_TIMEOUT_READ 26 } 27 28 extern (Windows) { 29 alias HRESULT function(IRAPIStream*, RAPISTREAMFLAG, DWORD) _SetRapiStat; 30 alias HRESULT function(IRAPIStream*, RAPISTREAMFLAG, DWORD*) _GetRapiStat; 31 } 32 33 struct IRAPIStreamVtbl { 34 _SetRapiStat SetRapiStat; 35 _GetRapiStat GetRapiStat; 36 } 37 38 // FIXME: what's this? 39 //typedef HRESULT(STDAPICALLTYPE RAPIEXT)(DWORD, BYTE, DWORD, BYTE, IRAPIStream*); 40 41 struct RAPIINIT { 42 DWORD cbSize = this.sizeof; 43 HANDLE heRapiInit; 44 HRESULT hrRapiInit; 45 } 46 47 extern (Windows) { 48 HRESULT CeRapiInit(); 49 HRESULT CeRapiInitEx(RAPIINIT*); 50 BOOL CeCreateProcess(LPCWSTR, LPCWSTR, LPSECURITY_ATTRIBUTES, 51 LPSECURITY_ATTRIBUTES, BOOL, DWORD, LPVOID, LPWSTR, LPSTARTUPINFO, 52 LPPROCESS_INFORMATION); 53 HRESULT CeRapiUninit(); 54 BOOL CeWriteFile(HANDLE, LPCVOID, DWORD, LPDWORD, LPOVERLAPPED); 55 HANDLE CeCreateFile(LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, 56 DWORD, HANDLE); 57 BOOL CeCreateDirectory(LPCWSTR, LPSECURITY_ATTRIBUTES); 58 DWORD CeGetLastError(); 59 BOOL CeGetFileTime(HANDLE, LPFILETIME, LPFILETIME, LPFILETIME); 60 BOOL CeCloseHandle(HANDLE); 61 }