| 1 |
/* rapi.h - main header file for the RAPI API |
| 2 |
|
| 3 |
NOTE: This strictly does not belong in the Win32 API since it's |
| 4 |
really part of Platform SDK. |
| 5 |
|
| 6 |
*/ |
| 7 |
|
| 8 |
#ifndef _RAPI_H |
| 9 |
#define _RAPI_H |
| 10 |
#if __GNUC__ >=3 |
| 11 |
#pragma GCC system_header |
| 12 |
#endif |
| 13 |
|
| 14 |
typedef struct IRAPIStream |
| 15 |
{ |
| 16 |
struct IRAPIStreamVtbl * lpVtbl; |
| 17 |
} IRAPIStream; |
| 18 |
|
| 19 |
typedef struct IRAPIStreamVtbl IRAPIStreamVtbl; |
| 20 |
|
| 21 |
typedef enum tagRAPISTREAMFLAG |
| 22 |
{ |
| 23 |
STREAM_TIMEOUT_READ |
| 24 |
} RAPISTREAMFLAG; |
| 25 |
|
| 26 |
struct IRAPIStreamVtbl |
| 27 |
{ |
| 28 |
HRESULT (__stdcall * SetRapiStat)( IRAPIStream *, RAPISTREAMFLAG, DWORD); |
| 29 |
HRESULT (__stdcall * GetRapiStat)( IRAPIStream *, RAPISTREAMFLAG, DWORD *); |
| 30 |
}; |
| 31 |
|
| 32 |
typedef HRESULT (STDAPICALLTYPE RAPIEXT)(DWORD, BYTE, DWORD, BYTE, IRAPIStream *); |
| 33 |
|
| 34 |
typedef struct _RAPIINIT |
| 35 |
{ |
| 36 |
DWORD cbSize; |
| 37 |
HANDLE heRapiInit; |
| 38 |
HRESULT hrRapiInit; |
| 39 |
} RAPIINIT; |
| 40 |
|
| 41 |
STDAPI CeRapiInit (void); |
| 42 |
STDAPI CeRapiInitEx (RAPIINIT*); |
| 43 |
STDAPI_(BOOL) CeCreateProcess (LPCWSTR, LPCWSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, |
| 44 |
BOOL, DWORD, LPVOID, LPWSTR, LPSTARTUPINFO, LPPROCESS_INFORMATION); |
| 45 |
STDAPI CeRapiUninit (void); |
| 46 |
|
| 47 |
STDAPI_(BOOL) CeWriteFile (HANDLE, LPCVOID, DWORD, LPDWORD, LPOVERLAPPED); |
| 48 |
STDAPI_(HANDLE) CeCreateFile (LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE); |
| 49 |
STDAPI_(BOOL) CeCreateDirectory (LPCWSTR, LPSECURITY_ATTRIBUTES); |
| 50 |
STDAPI_(DWORD) CeGetLastError (void); |
| 51 |
STDAPI_(BOOL) CeGetFileTime (HANDLE, LPFILETIME, LPFILETIME, LPFILETIME); |
| 52 |
STDAPI_(BOOL) CeCloseHandle (HANDLE); |
| 53 |
|
| 54 |
#endif /* _RAPI_H */ |