| 1 | #ifndef __CUSTOMBUILD_H__ | 
|---|
| 2 | #define __CUSTOMBUILD_H__ | 
|---|
| 3 |  | 
|---|
| 4 | //HKEY_LOCAL_MACHINE | 
|---|
| 5 | #define CUSTOM_BUILD_OPTIONS_KEY  "System\\CustomBuild" | 
|---|
| 6 | #define DISABLE_AUDIO_KEY         "DisableAudio" | 
|---|
| 7 |  | 
|---|
| 8 | extern BOOL fCustomBuild; | 
|---|
| 9 |  | 
|---|
| 10 | void InitDirectoriesCustom(char *szSystemDir, char *szWindowsDir); | 
|---|
| 11 |  | 
|---|
| 12 | void DisableOdinIni(); | 
|---|
| 13 | void DisableOdinSysMenuItems(); | 
|---|
| 14 |  | 
|---|
| 15 |  | 
|---|
| 16 | typedef HANDLE (* WIN32API PFNDRVOPEN)(LPVOID lpDriverData, DWORD dwAccess, DWORD dwShare, DWORD dwFlags, PVOID *ppHandleData); | 
|---|
| 17 | typedef void   (* WIN32API PFNDRVCLOSE)(LPVOID lpDriverData, HANDLE hDevice, DWORD dwFlags, PVOID lpHandleData); | 
|---|
| 18 | typedef BOOL   (* WIN32API PFNDRVIOCTL)(LPVOID lpDriverData, HANDLE hDevice, DWORD dwFlags, DWORD dwIoControlCode, | 
|---|
| 19 | LPVOID lpInBuffer, DWORD nInBufferSize, | 
|---|
| 20 | LPVOID lpOutBuffer, DWORD nOutBufferSize, | 
|---|
| 21 | LPDWORD lpBytesReturned, LPOVERLAPPED lpOverlapped, | 
|---|
| 22 | LPVOID lpHandleData); | 
|---|
| 23 |  | 
|---|
| 24 | typedef BOOL   (* WIN32API PFNDRVREAD)(LPVOID        lpDriverData, | 
|---|
| 25 | HANDLE        hDevice, | 
|---|
| 26 | DWORD         dwFlags, | 
|---|
| 27 | LPCVOID       lpBuffer, | 
|---|
| 28 | DWORD         nNumberOfBytesToRead, | 
|---|
| 29 | LPDWORD       lpNumberOfBytesRead, | 
|---|
| 30 | LPOVERLAPPED  lpOverlapped, | 
|---|
| 31 | LPOVERLAPPED_COMPLETION_ROUTINE  lpCompletionRoutine, | 
|---|
| 32 | LPVOID        lpHandleData); | 
|---|
| 33 |  | 
|---|
| 34 | typedef BOOL   (* WIN32API PFNDRVWRITE)(LPVOID        lpDriverData, | 
|---|
| 35 | HANDLE        hDevice, | 
|---|
| 36 | DWORD         dwFlags, | 
|---|
| 37 | LPCVOID       lpBuffer, | 
|---|
| 38 | DWORD         nNumberOfBytesToWrite, | 
|---|
| 39 | LPDWORD       lpNumberOfBytesWrite, | 
|---|
| 40 | LPOVERLAPPED  lpOverlapped, | 
|---|
| 41 | LPOVERLAPPED_COMPLETION_ROUTINE  lpCompletionRoutine, | 
|---|
| 42 | LPVOID        lpHandleData); | 
|---|
| 43 |  | 
|---|
| 44 | typedef BOOL   (* WIN32API PFNDRVCANCELIO)(LPVOID lpDriverData, HANDLE hDevice, DWORD dwFlags, PVOID lpHandleData); | 
|---|
| 45 | typedef DWORD  (* WIN32API PFNDRVGETOVERLAPPEDRESULT)(LPVOID        lpDriverData, | 
|---|
| 46 | HANDLE        hDevice, | 
|---|
| 47 | DWORD         dwFlags, | 
|---|
| 48 | LPOVERLAPPED  lpOverlapped, | 
|---|
| 49 | LPDWORD       lpcbTransfer, | 
|---|
| 50 | BOOL          fWait, | 
|---|
| 51 | LPVOID        lpHandleData); | 
|---|
| 52 |  | 
|---|
| 53 | BOOL WIN32API RegisterCustomDriver(PFNDRVOPEN pfnDriverOpen, PFNDRVCLOSE pfnDriverClose, | 
|---|
| 54 | PFNDRVIOCTL pfnDriverIOCtl, PFNDRVREAD pfnDriverRead, | 
|---|
| 55 | PFNDRVWRITE pfnDriverWrite, PFNDRVCANCELIO pfnDriverCancelIo, | 
|---|
| 56 | PFNDRVGETOVERLAPPEDRESULT pfnDriverGetOverlappedResult, | 
|---|
| 57 | LPCSTR lpDriverName, LPVOID lpDriverData); | 
|---|
| 58 |  | 
|---|
| 59 | BOOL WIN32API UnRegisterCustomDriver(LPCSTR lpDriverName); | 
|---|
| 60 |  | 
|---|
| 61 |  | 
|---|
| 62 | //SetDialogHook can be used by a custom Odin build to register a hook procedure | 
|---|
| 63 | //that gets called before or after dialog creation | 
|---|
| 64 |  | 
|---|
| 65 | #define HCUSTOM_PREDIALOGCREATION       0 | 
|---|
| 66 | #define HCUSTOM_POSTDIALOGCREATION      1 | 
|---|
| 67 |  | 
|---|
| 68 | BOOL WIN32API SetDialogHook(HOOKPROC pfnDialogProc); | 
|---|
| 69 | BOOL WIN32API ClearDialogHook(); | 
|---|
| 70 |  | 
|---|
| 71 |  | 
|---|
| 72 | //Set the default language in kernel32 | 
|---|
| 73 | void WIN32API SetDefaultLanguage(DWORD deflang); | 
|---|
| 74 |  | 
|---|
| 75 | //Override pm keyboard hook dll name | 
|---|
| 76 | void WIN32API SetCustomPMHookDll(LPSTR pszKbdDllName); | 
|---|
| 77 |  | 
|---|
| 78 | //Turn off wave audio in winmm | 
|---|
| 79 | void WIN32API DisableWaveAudio(); | 
|---|
| 80 |  | 
|---|
| 81 | #endif  /*__CUSTOMBUILD_H__*/ | 
|---|
| 82 |  | 
|---|