|
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 */ |