Reactos
at master 189 lines 3.7 kB view raw
1/* 2 vfdlib.h 3 4 Virtual Floppy Drive for Windows 5 Driver control library local header 6 7 Copyright (C) 2003-2005 Ken Kato 8*/ 9 10#ifndef _VFDLIB_H_ 11#define _VFDLIB_H_ 12 13#ifdef __REACTOS__ 14#define DWL_USER DWLP_USER 15#endif 16 17#define VFD_LIBRARY_FILENAME "vfd.dll" 18 19#ifdef VFD_EMBED_DRIVER 20#define VFD_DRIVER_NAME_ID VFD_DRIVER 21#define VFD_DRIVER_TYPE_ID BINARY 22#endif 23 24#ifndef RC_INVOKED 25 26#ifdef __cplusplus 27extern "C" { 28#endif // __cplusplus 29 30// 31// DLL instance handle 32// 33extern HINSTANCE g_hDllModule; 34 35// 36// Reference count for the DLL 37// 38extern UINT g_cDllRefCnt; 39 40// 41// VFD notification message value 42// 43extern UINT g_nNotifyMsg; 44 45// 46// VFD notification message register string 47// 48#define VFD_NOTIFY_MESSAGE "VfdNotifyMessage" 49 50// 51// Message box title string 52// 53#define VFD_MSGBOX_TITLE "Virtual Floppy Drive" 54 55// 56// shell extention string constants 57// 58#define VFDEXT_DESCRIPTION "VFD shell extension" 59#define VFDEXT_MENU_REGKEY "Drive\\shellex\\ContextMenuHandlers\\VFD" 60#define VFDEXT_DND_REGKEY "Drive\\shellex\\DragDropHandlers\\VFD" 61#define VFDEXT_PROP_REGKEY "Drive\\shellex\\PropertySheetHandlers\\VFD" 62#define VFDEXT_INFO_REGKEY "Drive\\shellex\\{00021500-0000-0000-C000-000000000046}" 63 64//===================================== 65// Image handling functions 66//===================================== 67 68// Format a buffer with FAT12 69 70DWORD FormatBufferFat( 71 PUCHAR pBuffer, 72 ULONG nSectors); 73 74// Extract image information from a zip compressed file 75 76DWORD ExtractZipInfo( 77 HANDLE hFile, 78 ULONG *pSize); 79 80// Extract original image from a zip compressed file 81 82DWORD ExtractZipImage( 83 HANDLE hFile, 84 PUCHAR *pBuffer, 85 PULONG pLength); 86 87//===================================== 88// GUI utility functions 89//===================================== 90 91typedef struct _SAVE_PARAM { 92 HANDLE hDevice; 93 VFD_DISKTYPE DiskType; 94 VFD_MEDIA MediaType; 95 VFD_FLAGS MediaFlags; 96 VFD_FILETYPE FileType; 97 ULONG ImageSize; 98 PSTR ImageName; 99} SAVE_PARAM, PSAVE_PARAM; 100 101typedef const SAVE_PARAM CSAVE_PARAM, *PCSAVE_PARAM; 102 103DWORD GuiSaveParam( 104 HWND hParent, 105 PCSAVE_PARAM pParam); 106 107void ShowContextMenu( 108 HWND hDlg, 109 HWND hCtl, 110 LPARAM lParam); 111 112void ShowHelpWindow( 113 HWND hDlg, 114 UINT nCtl); 115 116// 117// Set a message to a control window 118// 119void SetControlText( 120 HWND hWnd, 121 UINT nCtrl, 122 DWORD nMsg); 123 124//============================== 125// Message extract functions 126//============================== 127 128// Return a system error message 129 130PCSTR SystemMessage( 131 DWORD nError); 132 133// Return a message from this DLL module 134 135PSTR ModuleMessage( 136 DWORD nFormat, ...); 137 138//============================== 139// utility macros 140//============================== 141 142#define IS_WINDOWS_NT() ((GetVersion() & 0xff) < 5) 143 144//============================== 145// Debug functions 146//============================== 147 148#ifdef _DEBUG 149extern ULONG TraceFlags; 150#ifndef __REACTOS__ 151extern PCHAR TraceFile; 152#else 153extern CHAR const * TraceFile; 154#endif 155extern ULONG TraceLine; 156 157#define VFDTRACE(LEVEL,STRING) \ 158 if ((TraceFlags & (LEVEL)) == (LEVEL)) { \ 159 TraceFile = __FILE__; \ 160 TraceLine = __LINE__; \ 161 DebugTrace STRING; \ 162 } 163 164void DebugTrace(PCSTR sFormat, ...); 165 166#else // _DEBUG 167#define VFDTRACE(LEVEL,STRING) 168#endif // _DEBUG 169 170// 171// supplement old system headers 172// 173#ifndef INVALID_FILE_ATTRIBUTES 174#define INVALID_FILE_ATTRIBUTES ((DWORD)-1) 175#endif // INVALID_FILE_ATTRIBUTES 176 177#if defined(_INC_COMMDLG) && !defined(OPENFILENAME_SIZE_VERSION_400) 178// Pre Win2K system header is used 179// OPENFILENAME is defined without extra fields. 180#define OPENFILENAME_SIZE_VERSION_400 sizeof(OPENFILENAME) 181#endif // __INC_COMMDLG && !OPENFILENAME_SIZE_VERSION_400 182 183#ifdef __cplusplus 184} 185#endif // __cplusplus 186 187#endif // RC_INVOKED 188 189#endif // _VFDLIB_H_