4e2933c620 2015-04-21 kinaba: /***********************************************************************\ 4e2933c620 2015-04-21 kinaba: * rapi.d * 4e2933c620 2015-04-21 kinaba: * * 4e2933c620 2015-04-21 kinaba: * Windows API header module * 4e2933c620 2015-04-21 kinaba: * * 4e2933c620 2015-04-21 kinaba: * Translated from MinGW Windows headers * 4e2933c620 2015-04-21 kinaba: * by Stewart Gordon * 4e2933c620 2015-04-21 kinaba: * * 4e2933c620 2015-04-21 kinaba: * Placed into public domain * 4e2933c620 2015-04-21 kinaba: \***********************************************************************/ 4e2933c620 2015-04-21 kinaba: module win32.rapi; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: /* Comment from MinGW 4e2933c620 2015-04-21 kinaba: NOTE: This strictly does not belong in the Win32 API since it's 4e2933c620 2015-04-21 kinaba: really part of Platform SDK. 4e2933c620 2015-04-21 kinaba: */ 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: private import win32.winbase, win32.windef; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct IRAPIStream { 4e2933c620 2015-04-21 kinaba: IRAPIStreamVtbl* lpVtbl; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum RAPISTREAMFLAG { 4e2933c620 2015-04-21 kinaba: STREAM_TIMEOUT_READ 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: extern (Windows) { 4e2933c620 2015-04-21 kinaba: alias HRESULT function(IRAPIStream*, RAPISTREAMFLAG, DWORD) _SetRapiStat; 4e2933c620 2015-04-21 kinaba: alias HRESULT function(IRAPIStream*, RAPISTREAMFLAG, DWORD*) _GetRapiStat; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct IRAPIStreamVtbl { 4e2933c620 2015-04-21 kinaba: _SetRapiStat SetRapiStat; 4e2933c620 2015-04-21 kinaba: _GetRapiStat GetRapiStat; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: // FIXME: what's this? 4e2933c620 2015-04-21 kinaba: //typedef HRESULT(STDAPICALLTYPE RAPIEXT)(DWORD, BYTE, DWORD, BYTE, IRAPIStream*); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct RAPIINIT { 4e2933c620 2015-04-21 kinaba: DWORD cbSize = this.sizeof; 4e2933c620 2015-04-21 kinaba: HANDLE heRapiInit; 4e2933c620 2015-04-21 kinaba: HRESULT hrRapiInit; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: extern (Windows) { 4e2933c620 2015-04-21 kinaba: HRESULT CeRapiInit(); 4e2933c620 2015-04-21 kinaba: HRESULT CeRapiInitEx(RAPIINIT*); 4e2933c620 2015-04-21 kinaba: BOOL CeCreateProcess(LPCWSTR, LPCWSTR, LPSECURITY_ATTRIBUTES, 4e2933c620 2015-04-21 kinaba: LPSECURITY_ATTRIBUTES, BOOL, DWORD, LPVOID, LPWSTR, LPSTARTUPINFO, 4e2933c620 2015-04-21 kinaba: LPPROCESS_INFORMATION); 4e2933c620 2015-04-21 kinaba: HRESULT CeRapiUninit(); 4e2933c620 2015-04-21 kinaba: BOOL CeWriteFile(HANDLE, LPCVOID, DWORD, LPDWORD, LPOVERLAPPED); 4e2933c620 2015-04-21 kinaba: HANDLE CeCreateFile(LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, 4e2933c620 2015-04-21 kinaba: DWORD, HANDLE); 4e2933c620 2015-04-21 kinaba: BOOL CeCreateDirectory(LPCWSTR, LPSECURITY_ATTRIBUTES); 4e2933c620 2015-04-21 kinaba: DWORD CeGetLastError(); 4e2933c620 2015-04-21 kinaba: BOOL CeGetFileTime(HANDLE, LPFILETIME, LPFILETIME, LPFILETIME); 4e2933c620 2015-04-21 kinaba: BOOL CeCloseHandle(HANDLE); 4e2933c620 2015-04-21 kinaba: }