mmiscapi.h (7974B) - Raw
1 /** 2 * This file has no copyright assigned and is placed in the Public Domain. 3 * This file is part of the mingw-w64 runtime package. 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package. 5 */ 6 7 #ifndef _MMISCAPI_H_ 8 #define _MMISCAPI_H_ 9 10 #include <apiset.h> 11 #include <apisetcconv.h> 12 13 #include <mmsyscom.h> 14 15 #ifdef __cplusplus 16 extern "C" { 17 #endif 18 19 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) 20 21 #ifndef MMNODRV 22 23 typedef struct DRVCONFIGINFOEX { 24 DWORD dwDCISize; 25 LPCWSTR lpszDCISectionName; 26 LPCWSTR lpszDCIAliasName; 27 DWORD dnDevNode; 28 } DRVCONFIGINFOEX, *PDRVCONFIGINFOEX, *NPDRVCONFIGINFOEX, *LPDRVCONFIGINFOEX; 29 30 #ifndef DRV_LOAD 31 32 #define DRV_LOAD 0x0001 33 #define DRV_ENABLE 0x0002 34 #define DRV_OPEN 0x0003 35 #define DRV_CLOSE 0x0004 36 #define DRV_DISABLE 0x0005 37 #define DRV_FREE 0x0006 38 #define DRV_CONFIGURE 0x0007 39 #define DRV_QUERYCONFIGURE 0x0008 40 #define DRV_INSTALL 0x0009 41 #define DRV_REMOVE 0x000A 42 #define DRV_EXITSESSION 0x000B 43 #define DRV_POWER 0x000F 44 #define DRV_RESERVED 0x0800 45 #define DRV_USER 0x4000 46 47 typedef struct tagDRVCONFIGINFO { 48 DWORD dwDCISize; 49 LPCWSTR lpszDCISectionName; 50 LPCWSTR lpszDCIAliasName; 51 } DRVCONFIGINFO, *PDRVCONFIGINFO, *NPDRVCONFIGINFO, *LPDRVCONFIGINFO; 52 53 #define DRVCNF_CANCEL 0x0000 54 #define DRVCNF_OK 0x0001 55 #define DRVCNF_RESTART 0x0002 56 57 typedef LRESULT (CALLBACK* DRIVERPROC)(DWORD_PTR, HDRVR, UINT, LPARAM, LPARAM); 58 59 WINMMAPI LRESULT WINAPI CloseDriver(HDRVR hDriver, LPARAM lParam1, LPARAM lParam2); 60 WINMMAPI HDRVR WINAPI OpenDriver(LPCWSTR szDriverName, LPCWSTR szSectionName, LPARAM lParam2); 61 WINMMAPI LRESULT WINAPI SendDriverMessage(HDRVR hDriver, UINT message, LPARAM lParam1, LPARAM lParam2); 62 WINMMAPI HMODULE WINAPI DrvGetModuleHandle(HDRVR hDriver); 63 WINMMAPI HMODULE WINAPI GetDriverModuleHandle(HDRVR hDriver); 64 WINMMAPI LRESULT WINAPI DefDriverProc(DWORD_PTR dwDriverIdentifier, HDRVR hdrvr, UINT uMsg, LPARAM lParam1, LPARAM lParam2); 65 #endif 66 67 #define DRV_CANCEL DRVCNF_CANCEL 68 #define DRV_OK DRVCNF_OK 69 #define DRV_RESTART DRVCNF_RESTART 70 71 #define DRV_MCI_FIRST DRV_RESERVED 72 #define DRV_MCI_LAST (DRV_RESERVED + 0xFFF) 73 74 WINBOOL APIENTRY DriverCallback(DWORD_PTR dwCallback, DWORD dwFlags, HDRVR hDevice, DWORD dwMsg, DWORD_PTR dwUser, DWORD_PTR dwParam1, DWORD_PTR dwParam2); 75 LONG WINAPI sndOpenSound(LPCWSTR EventName, LPCWSTR AppName, INT32 Flags, PHANDLE FileHandle); 76 77 typedef DWORD (APIENTRY *DRIVERMSGPROC)(DWORD, DWORD, DWORD_PTR, DWORD_PTR, DWORD_PTR); 78 79 UINT APIENTRY mmDrvInstall(HDRVR hDriver, LPCWSTR wszDrvEntry, DRIVERMSGPROC drvMessage, UINT wFlags); 80 81 #endif 82 83 #ifndef MMNOMMIO 84 85 #define MMIOERR_BASE 256 86 #define MMIOERR_FILENOTFOUND (MMIOERR_BASE + 1) 87 #define MMIOERR_OUTOFMEMORY (MMIOERR_BASE + 2) 88 #define MMIOERR_CANNOTOPEN (MMIOERR_BASE + 3) 89 #define MMIOERR_CANNOTCLOSE (MMIOERR_BASE + 4) 90 #define MMIOERR_CANNOTREAD (MMIOERR_BASE + 5) 91 #define MMIOERR_CANNOTWRITE (MMIOERR_BASE + 6) 92 #define MMIOERR_CANNOTSEEK (MMIOERR_BASE + 7) 93 #define MMIOERR_CANNOTEXPAND (MMIOERR_BASE + 8) 94 #define MMIOERR_CHUNKNOTFOUND (MMIOERR_BASE + 9) 95 #define MMIOERR_UNBUFFERED (MMIOERR_BASE + 10) 96 #define MMIOERR_PATHNOTFOUND (MMIOERR_BASE + 11) 97 #define MMIOERR_ACCESSDENIED (MMIOERR_BASE + 12) 98 #define MMIOERR_SHARINGVIOLATION (MMIOERR_BASE + 13) 99 #define MMIOERR_NETWORKERROR (MMIOERR_BASE + 14) 100 #define MMIOERR_TOOMANYOPENFILES (MMIOERR_BASE + 15) 101 #define MMIOERR_INVALIDFILE (MMIOERR_BASE + 16) 102 103 #define CFSEPCHAR '+' 104 105 typedef DWORD FOURCC; 106 typedef char _huge *HPSTR; 107 DECLARE_HANDLE(HMMIO); 108 typedef LRESULT (CALLBACK MMIOPROC)(LPSTR lpmmioinfo, UINT uMsg, LPARAM lParam1, LPARAM lParam2); 109 typedef MMIOPROC *LPMMIOPROC; 110 111 typedef struct _MMIOINFO { 112 DWORD dwFlags; 113 FOURCC fccIOProc; 114 LPMMIOPROC pIOProc; 115 UINT wErrorRet; 116 HTASK htask; 117 LONG cchBuffer; 118 HPSTR pchBuffer; 119 HPSTR pchNext; 120 HPSTR pchEndRead; 121 HPSTR pchEndWrite; 122 LONG lBufOffset; 123 LONG lDiskOffset; 124 DWORD adwInfo[3]; 125 DWORD dwReserved1; 126 DWORD dwReserved2; 127 HMMIO hmmio; 128 } MMIOINFO, *PMMIOINFO, *NPMMIOINFO, *LPMMIOINFO; 129 typedef const MMIOINFO *LPCMMIOINFO; 130 131 typedef struct _MMCKINFO { 132 FOURCC ckid; 133 DWORD cksize; 134 FOURCC fccType; 135 DWORD dwDataOffset; 136 DWORD dwFlags; 137 } MMCKINFO, *PMMCKINFO, *NPMMCKINFO, *LPMMCKINFO; 138 typedef const MMCKINFO *LPCMMCKINFO; 139 140 #define MMIO_RWMODE 0x00000003 141 #define MMIO_SHAREMODE 0x00000070 142 143 #define MMIO_CREATE 0x00001000 144 #define MMIO_PARSE 0x00000100 145 #define MMIO_DELETE 0x00000200 146 #define MMIO_EXIST 0x00004000 147 #define MMIO_ALLOCBUF 0x00010000 148 #define MMIO_GETTEMP 0x00020000 149 150 #define MMIO_DIRTY 0x10000000 151 152 #define MMIO_READ 0x00000000 153 #define MMIO_WRITE 0x00000001 154 #define MMIO_READWRITE 0x00000002 155 156 #define MMIO_COMPAT 0x00000000 157 #define MMIO_EXCLUSIVE 0x00000010 158 #define MMIO_DENYWRITE 0x00000020 159 #define MMIO_DENYREAD 0x00000030 160 #define MMIO_DENYNONE 0x00000040 161 162 #define MMIO_FHOPEN 0x0010 163 #define MMIO_EMPTYBUF 0x0010 164 #define MMIO_TOUPPER 0x0010 165 #define MMIO_INSTALLPROC 0x00010000 166 #define MMIO_GLOBALPROC 0x10000000 167 #define MMIO_REMOVEPROC 0x00020000 168 #define MMIO_UNICODEPROC 0x01000000 169 #define MMIO_FINDPROC 0x00040000 170 #define MMIO_FINDCHUNK 0x0010 171 #define MMIO_FINDRIFF 0x0020 172 #define MMIO_FINDLIST 0x0040 173 #define MMIO_CREATERIFF 0x0020 174 #define MMIO_CREATELIST 0x0040 175 176 #define MMIOM_READ MMIO_READ 177 #define MMIOM_WRITE MMIO_WRITE 178 #define MMIOM_SEEK 2 179 #define MMIOM_OPEN 3 180 #define MMIOM_CLOSE 4 181 #define MMIOM_WRITEFLUSH 5 182 183 #define MMIOM_RENAME 6 184 185 #define MMIOM_USER 0x8000 186 187 #define FOURCC_RIFF mmioFOURCC('R', 'I', 'F', 'F') 188 #define FOURCC_LIST mmioFOURCC('L', 'I', 'S', 'T') 189 190 #define FOURCC_DOS mmioFOURCC('D', 'O', 'S', ' ') 191 #define FOURCC_MEM mmioFOURCC('M', 'E', 'M', ' ') 192 193 #ifndef SEEK_SET 194 #define SEEK_SET 0 195 #define SEEK_CUR 1 196 #define SEEK_END 2 197 #endif 198 199 #define MMIO_DEFAULTBUFFER 8192 200 201 #define mmioFOURCC(ch0, ch1, ch2, ch3) MAKEFOURCC(ch0, ch1, ch2, ch3) 202 203 WINMMAPI FOURCC WINAPI mmioStringToFOURCCA(LPCSTR sz, UINT uFlags); 204 WINMMAPI FOURCC WINAPI mmioStringToFOURCCW(LPCWSTR sz, UINT uFlags); 205 #define mmioStringToFOURCC __MINGW_NAME_AW(mmioStringToFOURCC) 206 207 WINMMAPI LPMMIOPROC WINAPI mmioInstallIOProcA(FOURCC fccIOProc, LPMMIOPROC pIOProc, DWORD dwFlags); 208 WINMMAPI LPMMIOPROC WINAPI mmioInstallIOProcW(FOURCC fccIOProc, LPMMIOPROC pIOProc, DWORD dwFlags); 209 #define mmioInstallIOProc __MINGW_NAME_AW(mmioInstallIOProc) 210 211 WINMMAPI HMMIO WINAPI mmioOpenA(LPSTR pszFileName, LPMMIOINFO pmmioinfo, DWORD fdwOpen); 212 WINMMAPI HMMIO WINAPI mmioOpenW(LPWSTR pszFileName, LPMMIOINFO pmmioinfo, DWORD fdwOpen); 213 #define mmioOpen __MINGW_NAME_AW(mmioOpen) 214 215 WINMMAPI MMRESULT WINAPI mmioRenameA(LPCSTR pszFileName, LPCSTR pszNewFileName, LPCMMIOINFO pmmioinfo, DWORD fdwRename); 216 WINMMAPI MMRESULT WINAPI mmioRenameW(LPCWSTR pszFileName, LPCWSTR pszNewFileName, LPCMMIOINFO pmmioinfo, DWORD fdwRename); 217 #define mmioRename __MINGW_NAME_AW(mmioRename) 218 219 WINMMAPI MMRESULT WINAPI mmioClose(HMMIO hmmio, UINT fuClose); 220 WINMMAPI LONG WINAPI mmioRead(HMMIO hmmio, HPSTR pch, LONG cch); 221 WINMMAPI LONG WINAPI mmioWrite(HMMIO hmmio, const char _huge * pch, LONG cch); 222 WINMMAPI LONG WINAPI mmioSeek(HMMIO hmmio, LONG lOffset, int iOrigin); 223 WINMMAPI MMRESULT WINAPI mmioGetInfo(HMMIO hmmio, LPMMIOINFO pmmioinfo, UINT fuInfo); 224 WINMMAPI MMRESULT WINAPI mmioSetInfo(HMMIO hmmio, LPCMMIOINFO pmmioinfo, UINT fuInfo); 225 WINMMAPI MMRESULT WINAPI mmioSetBuffer(HMMIO hmmio, LPSTR pchBuffer, LONG cchBuffer, UINT fuBuffer); 226 WINMMAPI MMRESULT WINAPI mmioFlush(HMMIO hmmio, UINT fuFlush); 227 WINMMAPI MMRESULT WINAPI mmioAdvance(HMMIO hmmio, LPMMIOINFO pmmioinfo, UINT fuAdvance); 228 WINMMAPI LRESULT WINAPI mmioSendMessage(HMMIO hmmio, UINT uMsg, LPARAM lParam1, LPARAM lParam2); 229 WINMMAPI MMRESULT WINAPI mmioDescend(HMMIO hmmio, LPMMCKINFO pmmcki, const MMCKINFO *pmmckiParent, UINT fuDescend); 230 WINMMAPI MMRESULT WINAPI mmioAscend(HMMIO hmmio, LPMMCKINFO pmmcki, UINT fuAscend); 231 WINMMAPI MMRESULT WINAPI mmioCreateChunk(HMMIO hmmio, LPMMCKINFO pmmcki, UINT fuCreate); 232 233 #endif /* MMNOMMIO */ 234 235 #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ 236 237 #ifdef __cplusplus 238 } 239 #endif 240 241 #endif /* _MMISCAPI_H_ */