Release 940420 Wed Apr 20 14:53:35 1994 Bob Amstadt (bob@pooh) * [tools/build.c] [if1632/call.S] [if1632/Imakefile] Fixed bug for non-Linux systems. Apr 18, 94 martin2@trgcorp.solucorp.qc.ca (Martin Ayotte) * [windows/win.c] Bug fixed in CreateWindowEx() : Now use SetMenu() for menubar setup. New empty stub for function SetSysModalWindow(). * [misc/exec.c] New empty stub for function ExitWindows(). * [objects/font.c] New empty stub for function EnumFonts(). * New file [misc/property.c] New functions RemoveProp(), GetProp(), SetProp() & EnumProps(). * New file [misc/shell.c] New empty stubs for function RegisterShellProc(), ShellExecute() & ShellProc(). * New files [loader/task.c] & [include/task.h] Move functions GetWindowTask(), GetNumTask(), EnumTaskWindows() from 'loader/library.c'. * [if1632/user.c] [if1632/kernel.c] Put Atoms functions entries. * [controls/combo.c] New functions DirDlgSelectComboBox() & DirDlgListComboBox(). * [controls/listbox.c] New functions DirDlgSelect() & DirDlgList(). Sun Apr 17 20:57:59 1994 Erik Bos (erik@trashcan.hacktic.nl) * [objects/test.c] GrayString() added. * [if1632/callback.c] CallGrayStringProc() added. * [if1632/relay.c] [if1632/mmsystem.spec] Added. * [if1632/kernel.spec] [if1632/user.spec] Added forgotten specs for atom functions. Tue Apr 12 00:05:31 1994 Bob Amstadt (bob@pooh) * misc/spy.c (SpyInit): Added more message types * [windows/mdi.c] [include/mdi.h] Maximizing and restoring child windows. Tiling of child windows. Mon Apr 11 20:48:28 1994 Alexandre Julliard (julliard@lamisun.epfl.ch) * [windows/winpos.c] Revert focus and activation to previous window when hiding a window. * [windows/syscolor.c] Implemented system color objects (brushes and pens created at SetSysColor() time for better performance). * [windows/graphics.c] [windows/nonclient.c] [controls/button.c] Changed painting code to use system color objects. * [windows/message.c] New function MSG_InternalGetMessage() for internal messages loops (e.g. for dialogs or menus). * [windows/hook.c] [include/hook.h] (New files) Beginning of the window hooks implementation. * [windows/dialog.c] Use new function MSG_InternalGetMessage() in DialogBox(). * [if1632/callback.c] Added function CallHookProc(). Apr 11, 94 martin2@trgcorp.solucorp.qc.ca (Martin Ayotte) * [windows/event.c] Bug fix : WM_CHARs are sent to focused window like WM_KEY???. * [misc/exec.c] Nothing much more than a stub for LoadModule(), I saw there a lot to be done in that corner, I will come back later ... * [loader/library.c] New functions GetWindowTask(), GetNumTask(), EnumTaskWindows() and associated modules & tasks linked-lists. (it's only an 'emerging bud', more to come next weeks). * [loader/wine.c] Use LoadLibrary() instead of LoadImage() for 'sysres.dll'. * [control/menu.c] You can now click outside menu region without problem. Keyboard navig more smootly, even if a child has the focus. Bug fix in InsertItem(), (bad linklist when insert point not found). change Realloc for Free & Alloc in ModifyItem(). MF_STRING now set BLACK_PEN to fix bug of bad color of the underscores done by DrawText(), (maybe it should done in DrawText() itself ?). Sun Apr 10 14:06:08 1994 Erik Bos (erik@trashcan.hacktic.nl) * [misc/profile.c] .INI files will now be stored in / loaded from the windows dir if no path is supplied. * [if1632/kernel.spec] Fixed GetDriveType's prototype. * [if1632/winsock.spec] [include/winsock.h] [misc/winsocket.c] Fixed prototypes: winsock uses a word as socket handle not an int. * [misc/winsocket.c] Added heap allocation for returned structures. Added non-blocking WSAAsyncGetXbyY() functions as blocking ones. * [loader/wine.c] Added IsDLLLoaded(), used in LoadImage() to prevent loading a dll multiple times. Directory is added to wine's path when a fullpath is supplied when starting wine. LoadImage(): DLL filename used instead DLL's own internal name, fixes 'Bad DLL name' errors. Sat Apr 9 08:26:03 1994 David Metcalfe <david@prism.demon.co.uk> * [controls/edit.c] [controls/widgets.c] First release of edit control.
diff --git a/include/driver.h b/include/driver.h new file mode 100644 index 0000000..efc1f0b --- /dev/null +++ b/include/driver.h
@@ -0,0 +1,70 @@ +/* + * Drivers definitions + */ + +#define DRV_LOAD 0x0001 +#define DRV_ENABLE 0x0002 +#define DRV_OPEN 0x0003 +#define DRV_CLOSE 0x0004 +#define DRV_DISABLE 0x0005 +#define DRV_FREE 0x0006 +#define DRV_CONFIGURE 0x0007 +#define DRV_QUERYCONFIGURE 0x0008 +#define DRV_INSTALL 0x0009 +#define DRV_REMOVE 0x000A +#define DRV_EXITSESSION 0x000B +#define DRV_EXITAPPLICATION 0x000C +#define DRV_POWER 0x000F + +#define DRV_RESERVED 0x0800 +#define DRV_USER 0x4000 + +#define DRVCNF_CANCEL 0x0000 +#define DRVCNF_OK 0x0001 +#define DRVCNF_RESTART 0x0002 + +#define DRVEA_NORMALEXIT 0x0001 +#define DRVEA_ABNORMALEXIT 0x0002 + +#define GND_FIRSTINSTANCEONLY 0x00000001 + +#define GND_FORWARD 0x00000000 +#define GND_REVERSE 0x00000002 + +typedef struct { + DWORD dwDCISize; + LPCSTR lpszDCISectionName; + LPCSTR lpszDCIAliasName; + } DRVCONFIGINFO; +typedef DRVCONFIGINFO FAR* LPDRVCONFIGINFO; + +typedef struct { + UINT length; + HDRVR hDriver; + HINSTANCE hModule; + char szAliasName[128]; + } DRIVERINFOSTRUCT; +typedef DRIVERINFOSTRUCT FAR* LPDRIVERINFOSTRUCT; + +typedef LRESULT (CALLBACK* DRIVERPROC)(DWORD, HDRVR, UINT, LPARAM, LPARAM); + +typedef struct { + DRIVERINFOSTRUCT dis; + WORD count; + void *lpPrevItem; + void *lpNextItem; + DRIVERPROC lpDrvProc; + } DRIVERITEM; +typedef DRIVERITEM FAR* LPDRIVERITEM; + +LRESULT DefDriverProc(DWORD dwDevID, HDRVR hDriv, WORD wMsg, + DWORD dwParam1, DWORD dwParam2); +HDRVR WINAPI OpenDriver(LPSTR szDriverName, LPSTR szSectionName, LPARAM lParam2); +LRESULT WINAPI CloseDriver(HDRVR hDriver, LPARAM lParam1, LPARAM lParam2); +LRESULT WINAPI SendDriverMessage(HDRVR hDriver, WORD message, LPARAM lParam1, LPARAM lParam2); +HINSTANCE WINAPI GetDriverModuleHandle(HDRVR hDriver); +HDRVR WINAPI GetNextDriver(HDRVR, DWORD); +BOOL WINAPI GetDriverInfo(HDRVR, DRIVERINFOSTRUCT FAR*); + + +
diff --git a/include/gdi.h b/include/gdi.h index 3ec95ea..27b4d3d 100644 --- a/include/gdi.h +++ b/include/gdi.h
@@ -290,8 +290,9 @@ extern MDESC *GDI_Heap; #define GDI_HEAP_ALLOC(f,size) ((int)HEAP_Alloc(&GDI_Heap,f,size) & 0xffff) -#define GDI_HEAP_ADDR(handle) ((void *)((handle)|((int)GDI_Heap & 0xffff0000))) #define GDI_HEAP_FREE(handle) (HEAP_Free(&GDI_Heap,GDI_HEAP_ADDR(handle))) +#define GDI_HEAP_ADDR(handle) \ + ((void *)((handle) ? ((handle) | ((int)GDI_Heap & 0xffff0000)) : 0)) #endif
diff --git a/include/hook.h b/include/hook.h new file mode 100644 index 0000000..94f23f8 --- /dev/null +++ b/include/hook.h
@@ -0,0 +1,42 @@ +/* + * Windows hook definitions + * + * Copyright 1994 Alexandre Julliard + */ + +#ifndef HOOK_H +#define HOOK_H + +#include "windows.h" +#include "user.h" + + /* Hook data (pointed to by a HHOOK) */ +typedef struct +{ + HHOOK next; /* Next hook in chain */ + HOOKPROC proc; /* Hook procedure */ + short id; /* Hook id (WH_???) */ + HTASK htask; /* Task owning this hook */ +} HOOKDATA; + + +#define FIRST_HOOK WH_MSGFILTER +#define LAST_HOOK WH_SHELL + +#define SYSTEM_HOOK(id) (systemHooks[(id)-FIRST_HOOK]) +#define TASK_HOOK(id) (taskHooks[(id)-FIRST_HOOK]) +#define INTERNAL_CALL_HOOK(hhook,code,wparam,lparam) \ + ((hhook) ? CallHookProc(((HOOKDATA*)(hhook))->proc,code,wparam,lparam) : 0) + +#define CALL_SYSTEM_HOOK(id,code,wparam,lparam) \ + INTERNAL_CALL_HOOK(SYSTEM_HOOK(id),code,wparam,lparam) +#define CALL_TASK_HOOK(id,code,wparam,lparam) \ + INTERNAL_CALL_HOOK(TASK_HOOK(id),code,wparam,lparam) + +extern DWORD CallHookProc( HOOKPROC func, short code, + WPARAM wParam, LPARAM lParam ); /* callback.c */ + +extern HHOOK systemHooks[]; +extern HHOOK taskHooks[]; + +#endif /* HOOK_H */
diff --git a/include/mdi.h b/include/mdi.h index b6d179e..40f4399 100644 --- a/include/mdi.h +++ b/include/mdi.h
@@ -28,6 +28,8 @@ HWND hwndHitTest; BOOL flagMenuAltered; BOOL flagChildMaximized; + RECT rectMaximize; + RECT rectRestore; } MDICLIENTINFO; #endif /* MDI_H */
diff --git a/include/menu.h b/include/menu.h index 19a6644..c5f513a 100644 --- a/include/menu.h +++ b/include/menu.h
@@ -65,7 +65,8 @@ char item_text[1]; /* Text for menu item */ } MENUITEMTEMPLATE; -void StdDrawMenuBar(HDC hDC, LPRECT lprect, LPPOPUPMENU lppop); +void StdDrawMenuBar(HDC hDC, LPRECT lprect, LPPOPUPMENU lppop, + BOOL suppress_draw); BOOL MenuButtonDown(HWND hWnd, LPPOPUPMENU lppop, int x, int y); void MenuButtonUp(HWND hWnd, LPPOPUPMENU lppop, int x, int y); void MenuMouseMove(HWND hWnd, LPPOPUPMENU lppop, WORD wParam, int x, int y);
diff --git a/include/message.h b/include/message.h index 905d182..5e6e9e8 100644 --- a/include/message.h +++ b/include/message.h
@@ -53,5 +53,7 @@ extern void hardware_event( WORD message, WORD wParam, LONG lParam, int xPos, int yPos, DWORD time, DWORD extraInfo ); extern BOOL MSG_GetHardwareMessage( LPMSG msg ); +extern BOOL MSG_InternalGetMessage( LPMSG msg, HWND hwnd, + short code, BOOL sendIdle ); #endif /* MESSAGE_H */
diff --git a/include/metafile.h b/include/metafile.h new file mode 100644 index 0000000..0a3e5e9 --- /dev/null +++ b/include/metafile.h
@@ -0,0 +1,45 @@ +/* + * Metafile definitions + * + * Copyright David W. Metcalfe, 1994 + */ + +#ifndef METAFILE_H +#define METAFILE_H + +#include "windows.h" + +#define MFHEADERSIZE (sizeof(METAHEADER)) +#define MFVERSION 0x300 +#define META_EOF 0x0000 + +typedef struct tagMETAFILE +{ + WORD wMagic; /* `PO' */ + char Filename[80]; /* metafile name, if disk based */ + int hFile; /* MSDOS file handle for metafile */ + HANDLE hMetaHdr; /* handle of metafile header */ + int MetaOffset; /* offset of current record in metafile */ + HANDLE hBuffer; /* handle of buffer for disk based metafiles */ +} METAFILE; +typedef METAFILE *LPMETAFILE; + + +BOOL MF_WriteRecord(HMETAFILE hmf, METARECORD *mr, WORD rlen); +BOOL MF_MetaParam1(DC *dc, short func, short param1); +BOOL MF_MetaParam2(DC *dc, short func, short param1, short param2); +BOOL MF_MetaParam4(DC *dc, short func, short param1, short param2, + short param3, short param4); +BOOL MF_MetaParam6(DC *dc, short func, short param1, short param2, + short param3, short param4, short param5, short param6); +BOOL MF_MetaParam8(DC *dc, short func, short param1, short param2, + short param3, short param4, short param5, + short param6, short param7, short param8); +BOOL MF_CreateBrushIndirect(DC *dc, LOGBRUSH *logbrush); +BOOL MF_CreatePatternBrush(DC *dc, LOGBRUSH *logbrush); +BOOL MF_CreatePenIndirect(DC *dc, LOGPEN *logpen); +BOOL MF_TextOut(DC *dc, short x, short y, LPSTR str, short count); +BOOL MF_MetaPoly(DC *dc, short func, LPPOINT pt, short count); + +#endif /* METAFILE_H */ +
diff --git a/include/mmsystem.h b/include/mmsystem.h new file mode 100644 index 0000000..ac6dd22 --- /dev/null +++ b/include/mmsystem.h
@@ -0,0 +1,1390 @@ +/* + * MMSYSTEM - Multimedia Wine Extension ... :-) + */ + +#ifndef MMSYSTEM_H +#define MMSYSTEM_H + +typedef LPSTR HPSTR; /* a huge version of LPSTR */ +typedef LPCSTR HPCSTR; /* a huge version of LPCSTR */ + +#define MAXPNAMELEN 32 /* max product name length (including NULL) */ +#define MAXERRORLENGTH 128 /* max error text length (including NULL) */ + +typedef WORD VERSION; /* major (high byte), minor (low byte) */ + +typedef struct { + UINT wType; /* indicates the contents of the union */ + union { + DWORD ms; /* milliseconds */ + DWORD sample; /* samples */ + DWORD cb; /* byte count */ + struct { /* SMPTE */ + BYTE hour; /* hours */ + BYTE min; /* minutes */ + BYTE sec; /* seconds */ + BYTE frame; /* frames */ + BYTE fps; /* frames per second */ + BYTE dummy; /* pad */ + } smpte; + struct { /* MIDI */ + DWORD songptrpos; /* song pointer position */ + } midi; + } u; + } MMTIME; +typedef MMTIME FAR *LPMMTIME; + +#define TIME_MS 0x0001 /* time in milliseconds */ +#define TIME_SAMPLES 0x0002 /* number of wave samples */ +#define TIME_BYTES 0x0004 /* current byte offset */ +#define TIME_SMPTE 0x0008 /* SMPTE time */ +#define TIME_MIDI 0x0010 /* MIDI time */ + +#define MM_JOY1MOVE 0x3A0 /* joystick */ +#define MM_JOY2MOVE 0x3A1 +#define MM_JOY1ZMOVE 0x3A2 +#define MM_JOY2ZMOVE 0x3A3 +#define MM_JOY1BUTTONDOWN 0x3B5 +#define MM_JOY2BUTTONDOWN 0x3B6 +#define MM_JOY1BUTTONUP 0x3B7 +#define MM_JOY2BUTTONUP 0x3B8 + +#define MM_MCINOTIFY 0x3B9 /* MCI */ + +#define MM_WOM_OPEN 0x3BB /* waveform output */ +#define MM_WOM_CLOSE 0x3BC +#define MM_WOM_DONE 0x3BD + +#define MM_WIM_OPEN 0x3BE /* waveform input */ +#define MM_WIM_CLOSE 0x3BF +#define MM_WIM_DATA 0x3C0 + +#define MM_MIM_OPEN 0x3C1 /* MIDI input */ +#define MM_MIM_CLOSE 0x3C2 +#define MM_MIM_DATA 0x3C3 +#define MM_MIM_LONGDATA 0x3C4 +#define MM_MIM_ERROR 0x3C5 +#define MM_MIM_LONGERROR 0x3C6 + +#define MM_MOM_OPEN 0x3C7 /* MIDI output */ +#define MM_MOM_CLOSE 0x3C8 +#define MM_MOM_DONE 0x3C9 + + +#define MMSYSERR_BASE 0 +#define WAVERR_BASE 32 +#define MIDIERR_BASE 64 +#define TIMERR_BASE 96 +#define JOYERR_BASE 160 +#define MCIERR_BASE 256 + +#define MCI_STRING_OFFSET 512 +#define MCI_VD_OFFSET 1024 +#define MCI_CD_OFFSET 1088 +#define MCI_WAVE_OFFSET 1152 +#define MCI_SEQ_OFFSET 1216 + +#define MMSYSERR_NOERROR 0 /* no error */ +#define MMSYSERR_ERROR (MMSYSERR_BASE + 1) /* unspecified error */ +#define MMSYSERR_BADDEVICEID (MMSYSERR_BASE + 2) /* device ID out of range */ +#define MMSYSERR_NOTENABLED (MMSYSERR_BASE + 3) /* driver failed enable */ +#define MMSYSERR_ALLOCATED (MMSYSERR_BASE + 4) /* device already allocated */ +#define MMSYSERR_INVALHANDLE (MMSYSERR_BASE + 5) /* device handle is invalid */ +#define MMSYSERR_NODRIVER (MMSYSERR_BASE + 6) /* no device driver present */ +#define MMSYSERR_NOMEM (MMSYSERR_BASE + 7) /* memory allocation error */ +#define MMSYSERR_NOTSUPPORTED (MMSYSERR_BASE + 8) /* function isn't supported */ +#define MMSYSERR_BADERRNUM (MMSYSERR_BASE + 9) /* error value out of range */ +#define MMSYSERR_INVALFLAG (MMSYSERR_BASE + 10) /* invalid flag passed */ +#define MMSYSERR_INVALPARAM (MMSYSERR_BASE + 11) /* invalid parameter passed */ +#define MMSYSERR_LASTERROR (MMSYSERR_BASE + 11) /* last error in range */ + +#define CALLBACK_TYPEMASK 0x00070000l /* callback type mask */ +#define CALLBACK_NULL 0x00000000l /* no callback */ +#define CALLBACK_WINDOW 0x00010000l /* dwCallback is a HWND */ +#define CALLBACK_TASK 0x00020000l /* dwCallback is a HTASK */ +#define CALLBACK_FUNCTION 0x00030000l /* dwCallback is a FARPROC */ + +typedef void (CALLBACK DRVCALLBACK) (HDRVR h, UINT uMessage, DWORD dwUser, DWORD dw1, DWORD dw2); + +typedef DRVCALLBACK FAR *LPDRVCALLBACK; + +#define MM_MICROSOFT 1 /* Microsoft Corp. */ + +#define MM_MIDI_MAPPER 1 /* MIDI Mapper */ +#define MM_WAVE_MAPPER 2 /* Wave Mapper */ + +#define MM_SNDBLST_MIDIOUT 3 /* Sound Blaster MIDI output port */ +#define MM_SNDBLST_MIDIIN 4 /* Sound Blaster MIDI input port */ +#define MM_SNDBLST_SYNTH 5 /* Sound Blaster internal synthesizer */ +#define MM_SNDBLST_WAVEOUT 6 /* Sound Blaster waveform output */ +#define MM_SNDBLST_WAVEIN 7 /* Sound Blaster waveform input */ + +#define MM_ADLIB 9 /* Ad Lib-compatible synthesizer */ + +#define MM_MPU401_MIDIOUT 10 /* MPU401-compatible MIDI output port */ +#define MM_MPU401_MIDIIN 11 /* MPU401-compatible MIDI input port */ + +#define MM_PC_JOYSTICK 12 /* Joystick adapter */ + + +WORD WINAPI mmsystemGetVersion(void); +void WINAPI OutputDebugStr(LPCSTR); + +BOOL WINAPI sndPlaySound(LPCSTR lpszSoundName, UINT uFlags); + +#define SND_SYNC 0x0000 /* play synchronously (default) */ +#define SND_ASYNC 0x0001 /* play asynchronously */ +#define SND_NODEFAULT 0x0002 /* don't use default sound */ +#define SND_MEMORY 0x0004 /* lpszSoundName points to a memory file */ +#define SND_LOOP 0x0008 /* loop the sound until next sndPlaySound */ +#define SND_NOSTOP 0x0010 /* don't stop any currently playing sound */ + +/* waveform audio error return values */ +#define WAVERR_BADFORMAT (WAVERR_BASE + 0) /* unsupported wave format */ +#define WAVERR_STILLPLAYING (WAVERR_BASE + 1) /* still something playing */ +#define WAVERR_UNPREPARED (WAVERR_BASE + 2) /* header not prepared */ +#define WAVERR_SYNC (WAVERR_BASE + 3) /* device is synchronous */ +#define WAVERR_LASTERROR (WAVERR_BASE + 3) /* last error in range */ + +DECLARE_HANDLE(HWAVE); +DECLARE_HANDLE(HWAVEIN); +DECLARE_HANDLE(HWAVEOUT); +typedef HWAVEIN FAR *LPHWAVEIN; +typedef HWAVEOUT FAR *LPHWAVEOUT; +typedef DRVCALLBACK WAVECALLBACK; +typedef WAVECALLBACK FAR *LPWAVECALLBACK; + +#define WOM_OPEN MM_WOM_OPEN +#define WOM_CLOSE MM_WOM_CLOSE +#define WOM_DONE MM_WOM_DONE +#define WIM_OPEN MM_WIM_OPEN +#define WIM_CLOSE MM_WIM_CLOSE +#define WIM_DATA MM_WIM_DATA + +#define WAVE_MAPPER (-1) + +#define WAVE_FORMAT_QUERY 0x0001 +#define WAVE_ALLOWSYNC 0x0002 + +typedef struct { + LPSTR lpData; /* pointer to locked data buffer */ + DWORD dwBufferLength; /* length of data buffer */ + DWORD dwBytesRecorded; /* used for input only */ + DWORD dwUser; /* for client's use */ + DWORD dwFlags; /* assorted flags (see defines) */ + DWORD dwLoops; /* loop control counter */ + struct wavehdr_tag FAR *lpNext; /* reserved for driver */ + DWORD reserved; /* reserved for driver */ +} WAVEHDR; +typedef WAVEHDR FAR *LPWAVEHDR; + +#define WHDR_DONE 0x00000001 /* done bit */ +#define WHDR_PREPARED 0x00000002 /* set if this header has been prepared */ +#define WHDR_BEGINLOOP 0x00000004 /* loop start block */ +#define WHDR_ENDLOOP 0x00000008 /* loop end block */ +#define WHDR_INQUEUE 0x00000010 /* reserved for driver */ + +typedef struct { + UINT wMid; /* manufacturer ID */ + UINT wPid; /* product ID */ + VERSION vDriverVersion; /* version of the driver */ + char szPname[MAXPNAMELEN]; /* product name (NULL terminated string) */ + DWORD dwFormats; /* formats supported */ + UINT wChannels; /* number of sources supported */ + DWORD dwSupport; /* functionality supported by driver */ +} WAVEOUTCAPS; +typedef WAVEOUTCAPS FAR *LPWAVEOUTCAPS; + +#define WAVECAPS_PITCH 0x0001 /* supports pitch control */ +#define WAVECAPS_PLAYBACKRATE 0x0002 /* supports playback rate control */ +#define WAVECAPS_VOLUME 0x0004 /* supports volume control */ +#define WAVECAPS_LRVOLUME 0x0008 /* separate left-right volume control */ +#define WAVECAPS_SYNC 0x0010 + +typedef struct { + UINT wMid; /* manufacturer ID */ + UINT wPid; /* product ID */ + VERSION vDriverVersion; /* version of the driver */ + char szPname[MAXPNAMELEN]; /* product name (NULL terminated string) */ + DWORD dwFormats; /* formats supported */ + UINT wChannels; /* number of channels supported */ +} WAVEINCAPS; +typedef WAVEINCAPS FAR *LPWAVEINCAPS; + +#define WAVE_INVALIDFORMAT 0x00000000 /* invalid format */ +#define WAVE_FORMAT_1M08 0x00000001 /* 11.025 kHz, Mono, 8-bit */ +#define WAVE_FORMAT_1S08 0x00000002 /* 11.025 kHz, Stereo, 8-bit */ +#define WAVE_FORMAT_1M16 0x00000004 /* 11.025 kHz, Mono, 16-bit */ +#define WAVE_FORMAT_1S16 0x00000008 /* 11.025 kHz, Stereo, 16-bit */ +#define WAVE_FORMAT_2M08 0x00000010 /* 22.05 kHz, Mono, 8-bit */ +#define WAVE_FORMAT_2S08 0x00000020 /* 22.05 kHz, Stereo, 8-bit */ +#define WAVE_FORMAT_2M16 0x00000040 /* 22.05 kHz, Mono, 16-bit */ +#define WAVE_FORMAT_2S16 0x00000080 /* 22.05 kHz, Stereo, 16-bit */ +#define WAVE_FORMAT_4M08 0x00000100 /* 44.1 kHz, Mono, 8-bit */ +#define WAVE_FORMAT_4S08 0x00000200 /* 44.1 kHz, Stereo, 8-bit */ +#define WAVE_FORMAT_4M16 0x00000400 /* 44.1 kHz, Mono, 16-bit */ +#define WAVE_FORMAT_4S16 0x00000800 /* 44.1 kHz, Stereo, 16-bit */ + +/* general format structure common to all formats */ +typedef struct { + WORD wFormatTag; /* format type */ + WORD nChannels; /* number of channels (i.e. mono, stereo, etc.) */ + DWORD nSamplesPerSec; /* sample rate */ + DWORD nAvgBytesPerSec; /* for buffer estimation */ + WORD nBlockAlign; /* block size of data */ +} WAVEFORMAT; +typedef WAVEFORMAT FAR *LPWAVEFORMAT; + +#define WAVE_FORMAT_PCM 1 + +typedef struct { + WAVEFORMAT wf; + WORD wBitsPerSample; +} PCMWAVEFORMAT; +typedef PCMWAVEFORMAT FAR *LPPCMWAVEFORMAT; + +UINT WINAPI waveOutGetNumDevs(void); +UINT WINAPI waveOutGetDevCaps(UINT uDeviceID, WAVEOUTCAPS FAR* lpCaps, + UINT uSize); +UINT WINAPI waveOutGetVolume(UINT uDeviceID, DWORD FAR* lpdwVolume); +UINT WINAPI waveOutSetVolume(UINT uDeviceID, DWORD dwVolume); +UINT WINAPI waveOutGetErrorText(UINT uError, LPSTR lpText, UINT uSize); +UINT WINAPI waveGetErrorText(UINT uError, LPSTR lpText, UINT uSize); +UINT WINAPI waveOutOpen(HWAVEOUT FAR* lphWaveOut, UINT uDeviceID, + const WAVEFORMAT FAR* lpFormat, DWORD dwCallback, DWORD dwInstance, DWORD dwFlags); +UINT WINAPI waveOutClose(HWAVEOUT hWaveOut); +UINT WINAPI waveOutPrepareHeader(HWAVEOUT hWaveOut, + WAVEHDR FAR* lpWaveOutHdr, UINT uSize); +UINT WINAPI waveOutUnprepareHeader(HWAVEOUT hWaveOut, + WAVEHDR FAR* lpWaveOutHdr, UINT uSize); +UINT WINAPI waveOutWrite(HWAVEOUT hWaveOut, WAVEHDR FAR* lpWaveOutHdr, + UINT uSize); +UINT WINAPI waveOutPause(HWAVEOUT hWaveOut); +UINT WINAPI waveOutRestart(HWAVEOUT hWaveOut); +UINT WINAPI waveOutReset(HWAVEOUT hWaveOut); +UINT WINAPI waveOutBreakLoop(HWAVEOUT hWaveOut); +UINT WINAPI waveOutGetPosition(HWAVEOUT hWaveOut, MMTIME FAR* lpInfo, + UINT uSize); +UINT WINAPI waveOutGetPitch(HWAVEOUT hWaveOut, DWORD FAR* lpdwPitch); +UINT WINAPI waveOutSetPitch(HWAVEOUT hWaveOut, DWORD dwPitch); +UINT WINAPI waveOutGetPlaybackRate(HWAVEOUT hWaveOut, DWORD FAR* lpdwRate); +UINT WINAPI waveOutSetPlaybackRate(HWAVEOUT hWaveOut, DWORD dwRate); +UINT WINAPI waveOutGetID(HWAVEOUT hWaveOut, UINT FAR* lpuDeviceID); + +DWORD WINAPI waveOutMessage(HWAVEOUT hWaveOut, UINT uMessage, DWORD dw1, DWORD dw2); + +UINT WINAPI waveInGetNumDevs(void); +UINT WINAPI waveInGetDevCaps(UINT uDeviceID, WAVEINCAPS FAR* lpCaps, + UINT uSize); +UINT WINAPI waveInGetErrorText(UINT uError, LPSTR lpText, UINT uSize); +UINT WINAPI waveInOpen(HWAVEIN FAR* lphWaveIn, UINT uDeviceID, + const WAVEFORMAT FAR* lpFormat, DWORD dwCallback, DWORD dwInstance, DWORD dwFlags); +UINT WINAPI waveInClose(HWAVEIN hWaveIn); +UINT WINAPI waveInPrepareHeader(HWAVEIN hWaveIn, + WAVEHDR FAR* lpWaveInHdr, UINT uSize); +UINT WINAPI waveInUnprepareHeader(HWAVEIN hWaveIn, + WAVEHDR FAR* lpWaveInHdr, UINT uSize); +UINT WINAPI waveInAddBuffer(HWAVEIN hWaveIn, + WAVEHDR FAR* lpWaveInHdr, UINT uSize); +UINT WINAPI waveInStart(HWAVEIN hWaveIn); +UINT WINAPI waveInStop(HWAVEIN hWaveIn); +UINT WINAPI waveInReset(HWAVEIN hWaveIn); +UINT WINAPI waveInGetPosition(HWAVEIN hWaveIn, MMTIME FAR* lpInfo, + UINT uSize); +UINT WINAPI waveInGetID(HWAVEIN hWaveIn, UINT FAR* lpuDeviceID); + +DWORD WINAPI waveInMessage(HWAVEIN hWaveIn, UINT uMessage, DWORD dw1, DWORD dw2); + +#define MIDIERR_UNPREPARED (MIDIERR_BASE + 0) /* header not prepared */ +#define MIDIERR_STILLPLAYING (MIDIERR_BASE + 1) /* still something playing */ +#define MIDIERR_NOMAP (MIDIERR_BASE + 2) /* no current map */ +#define MIDIERR_NOTREADY (MIDIERR_BASE + 3) /* hardware is still busy */ +#define MIDIERR_NODEVICE (MIDIERR_BASE + 4) /* port no longer connected */ +#define MIDIERR_INVALIDSETUP (MIDIERR_BASE + 5) /* invalid setup */ +#define MIDIERR_LASTERROR (MIDIERR_BASE + 5) /* last error in range */ + +DECLARE_HANDLE(HMIDI); +DECLARE_HANDLE(HMIDIIN); +DECLARE_HANDLE(HMIDIOUT); +typedef HMIDIIN FAR *LPHMIDIIN; +typedef HMIDIOUT FAR *LPHMIDIOUT; +typedef DRVCALLBACK MIDICALLBACK; +typedef MIDICALLBACK FAR *LPMIDICALLBACK; +#define MIDIPATCHSIZE 128 +typedef WORD PATCHARRAY[MIDIPATCHSIZE]; +typedef WORD FAR *LPPATCHARRAY; +typedef WORD KEYARRAY[MIDIPATCHSIZE]; +typedef WORD FAR *LPKEYARRAY; + +#define MIM_OPEN MM_MIM_OPEN +#define MIM_CLOSE MM_MIM_CLOSE +#define MIM_DATA MM_MIM_DATA +#define MIM_LONGDATA MM_MIM_LONGDATA +#define MIM_ERROR MM_MIM_ERROR +#define MIM_LONGERROR MM_MIM_LONGERROR +#define MOM_OPEN MM_MOM_OPEN +#define MOM_CLOSE MM_MOM_CLOSE +#define MOM_DONE MM_MOM_DONE + +#define MIDIMAPPER (-1) +#define MIDI_MAPPER (-1) + +/* flags for wFlags parm of + midiOutCachePatches(), + midiOutCacheDrumPatches() */ +#define MIDI_CACHE_ALL 1 +#define MIDI_CACHE_BESTFIT 2 +#define MIDI_CACHE_QUERY 3 +#define MIDI_UNCACHE 4 + +typedef struct { + UINT wMid; /* manufacturer ID */ + UINT wPid; /* product ID */ + VERSION vDriverVersion; /* version of the driver */ + char szPname[MAXPNAMELEN]; /* product name (NULL terminated string) */ + UINT wTechnology; /* type of device */ + UINT wVoices; /* # of voices (internal synth only) */ + UINT wNotes; /* max # of notes (internal synth only) */ + UINT wChannelMask; /* channels used (internal synth only) */ + DWORD dwSupport; /* functionality supported by driver */ +} MIDIOUTCAPS; +typedef MIDIOUTCAPS FAR *LPMIDIOUTCAPS; + +#define MOD_MIDIPORT 1 /* output port */ +#define MOD_SYNTH 2 /* generic internal synth */ +#define MOD_SQSYNTH 3 /* square wave internal synth */ +#define MOD_FMSYNTH 4 /* FM internal synth */ +#define MOD_MAPPER 5 /* MIDI mapper */ + +#define MIDICAPS_VOLUME 0x0001 /* supports volume control */ +#define MIDICAPS_LRVOLUME 0x0002 /* separate left-right volume control */ +#define MIDICAPS_CACHE 0x0004 + +typedef struct { + UINT wMid; /* manufacturer ID */ + UINT wPid; /* product ID */ + VERSION vDriverVersion; /* version of the driver */ + char szPname[MAXPNAMELEN]; /* product name (NULL terminated string) */ +} MIDIINCAPS; +typedef MIDIINCAPS FAR *LPMIDIINCAPS; + +typedef struct { + LPSTR lpData; /* pointer to locked data block */ + DWORD dwBufferLength; /* length of data in data block */ + DWORD dwBytesRecorded; /* used for input only */ + DWORD dwUser; /* for client's use */ + DWORD dwFlags; /* assorted flags (see defines) */ + struct midihdr_tag FAR *lpNext; /* reserved for driver */ + DWORD reserved; /* reserved for driver */ +} MIDIHDR; +typedef MIDIHDR FAR *LPMIDIHDR; + +#define MHDR_DONE 0x00000001 /* done bit */ +#define MHDR_PREPARED 0x00000002 /* set if header prepared */ +#define MHDR_INQUEUE 0x00000004 /* reserved for driver */ + +UINT WINAPI midiOutGetNumDevs(void); +UINT WINAPI midiOutGetDevCaps(UINT uDeviceID, + MIDIOUTCAPS FAR* lpCaps, UINT uSize); +UINT WINAPI midiOutGetVolume(UINT uDeviceID, DWORD FAR* lpdwVolume); +UINT WINAPI midiOutSetVolume(UINT uDeviceID, DWORD dwVolume); +UINT WINAPI midiOutGetErrorText(UINT uError, LPSTR lpText, UINT uSize); +UINT WINAPI midiGetErrorText(UINT uError, LPSTR lpText, UINT uSize); +UINT WINAPI midiOutOpen(HMIDIOUT FAR* lphMidiOut, UINT uDeviceID, + DWORD dwCallback, DWORD dwInstance, DWORD dwFlags); +UINT WINAPI midiOutClose(HMIDIOUT hMidiOut); +UINT WINAPI midiOutPrepareHeader(HMIDIOUT hMidiOut, + MIDIHDR FAR* lpMidiOutHdr, UINT uSize); +UINT WINAPI midiOutUnprepareHeader(HMIDIOUT hMidiOut, + MIDIHDR FAR* lpMidiOutHdr, UINT uSize); +UINT WINAPI midiOutShortMsg(HMIDIOUT hMidiOut, DWORD dwMsg); +UINT WINAPI midiOutLongMsg(HMIDIOUT hMidiOut, + MIDIHDR FAR* lpMidiOutHdr, UINT uSize); +UINT WINAPI midiOutReset(HMIDIOUT hMidiOut); +UINT WINAPI midiOutCachePatches(HMIDIOUT hMidiOut, + UINT uBank, WORD FAR* lpwPatchArray, UINT uFlags); +UINT WINAPI midiOutCacheDrumPatches(HMIDIOUT hMidiOut, + UINT uPatch, WORD FAR* lpwKeyArray, UINT uFlags); +UINT WINAPI midiOutGetID(HMIDIOUT hMidiOut, UINT FAR* lpuDeviceID); + +DWORD WINAPI midiOutMessage(HMIDIOUT hMidiOut, UINT uMessage, DWORD dw1, DWORD dw2); + +UINT WINAPI midiInGetNumDevs(void); +UINT WINAPI midiInGetDevCaps(UINT uDeviceID, + LPMIDIINCAPS lpCaps, UINT uSize); +UINT WINAPI midiInGetErrorText(UINT uError, LPSTR lpText, UINT uSize); +UINT WINAPI midiInOpen(HMIDIIN FAR* lphMidiIn, UINT uDeviceID, + DWORD dwCallback, DWORD dwInstance, DWORD dwFlags); +UINT WINAPI midiInClose(HMIDIIN hMidiIn); +UINT WINAPI midiInPrepareHeader(HMIDIIN hMidiIn, + MIDIHDR FAR* lpMidiInHdr, UINT uSize); +UINT WINAPI midiInUnprepareHeader(HMIDIIN hMidiIn, + MIDIHDR FAR* lpMidiInHdr, UINT uSize); +UINT WINAPI midiInAddBuffer(HMIDIIN hMidiIn, + MIDIHDR FAR* lpMidiInHdr, UINT uSize); +UINT WINAPI midiInStart(HMIDIIN hMidiIn); +UINT WINAPI midiInStop(HMIDIIN hMidiIn); +UINT WINAPI midiInReset(HMIDIIN hMidiIn); +UINT WINAPI midiInGetID(HMIDIIN hMidiIn, UINT FAR* lpuDeviceID); + +DWORD WINAPI midiInMessage(HMIDIIN hMidiIn, UINT uMessage, DWORD dw1, DWORD dw2); + +#define AUX_MAPPER (-1) + +typedef struct { + UINT wMid; /* manufacturer ID */ + UINT wPid; /* product ID */ + VERSION vDriverVersion; /* version of the driver */ + char szPname[MAXPNAMELEN]; /* product name (NULL terminated string) */ + UINT wTechnology; /* type of device */ + DWORD dwSupport; /* functionality supported by driver */ +} AUXCAPS; +typedef AUXCAPS FAR *LPAUXCAPS; + +#define AUXCAPS_CDAUDIO 1 /* audio from internal CD-ROM drive */ +#define AUXCAPS_AUXIN 2 /* audio from auxiliary input jacks */ + +#define AUXCAPS_VOLUME 0x0001 /* supports volume control */ +#define AUXCAPS_LRVOLUME 0x0002 /* separate left-right volume control */ + +UINT WINAPI auxGetNumDevs(void); +UINT WINAPI auxGetDevCaps(UINT uDeviceID, AUXCAPS FAR* lpCaps, UINT uSize); +UINT WINAPI auxSetVolume(UINT uDeviceID, DWORD dwVolume); +UINT WINAPI auxGetVolume(UINT uDeviceID, DWORD FAR* lpdwVolume); + +DWORD WINAPI auxOutMessage(UINT uDeviceID, UINT uMessage, DWORD dw1, DWORD dw2); + +#define TIMERR_NOERROR (0) /* no error */ +#define TIMERR_NOCANDO (TIMERR_BASE+1) /* request not completed */ +#define TIMERR_STRUCT (TIMERR_BASE+33) /* time struct size */ + +typedef void (CALLBACK TIMECALLBACK) (UINT uTimerID, UINT uMessage, DWORD dwUser, DWORD dw1, DWORD dw2); + +typedef TIMECALLBACK FAR *LPTIMECALLBACK; + +#define TIME_ONESHOT 0 /* program timer for single event */ +#define TIME_PERIODIC 1 /* program for continuous periodic event */ + +typedef struct { + UINT wPeriodMin; /* minimum period supported */ + UINT wPeriodMax; /* maximum period supported */ + } TIMECAPS; +typedef TIMECAPS FAR *LPTIMECAPS; + +UINT WINAPI timeGetSystemTime(MMTIME FAR* lpTime, UINT uSize); +DWORD WINAPI timeGetTime(void); +UINT WINAPI timeSetEvent(UINT uDelay, UINT uResolution, + LPTIMECALLBACK lpFunction, DWORD dwUser, UINT uFlags); +UINT WINAPI timeKillEvent(UINT uTimerID); +UINT WINAPI timeGetDevCaps(TIMECAPS FAR* lpTimeCaps, UINT uSize); +UINT WINAPI timeBeginPeriod(UINT uPeriod); +UINT WINAPI timeEndPeriod(UINT uPeriod); + +#define JOYERR_NOERROR (0) /* no error */ +#define JOYERR_PARMS (JOYERR_BASE+5) /* bad parameters */ +#define JOYERR_NOCANDO (JOYERR_BASE+6) /* request not completed */ +#define JOYERR_UNPLUGGED (JOYERR_BASE+7) /* joystick is unplugged */ + +#define JOY_BUTTON1 0x0001 +#define JOY_BUTTON2 0x0002 +#define JOY_BUTTON3 0x0004 +#define JOY_BUTTON4 0x0008 +#define JOY_BUTTON1CHG 0x0100 +#define JOY_BUTTON2CHG 0x0200 +#define JOY_BUTTON3CHG 0x0400 +#define JOY_BUTTON4CHG 0x0800 + +#define JOYSTICKID1 0 +#define JOYSTICKID2 1 + +typedef struct { + UINT wMid; /* manufacturer ID */ + UINT wPid; /* product ID */ + char szPname[MAXPNAMELEN]; /* product name (NULL terminated string) */ + UINT wXmin; /* minimum x position value */ + UINT wXmax; /* maximum x position value */ + UINT wYmin; /* minimum y position value */ + UINT wYmax; /* maximum y position value */ + UINT wZmin; /* minimum z position value */ + UINT wZmax; /* maximum z position value */ + UINT wNumButtons; /* number of buttons */ + UINT wPeriodMin; /* minimum message period when captured */ + UINT wPeriodMax; /* maximum message period when captured */ + } JOYCAPS; +typedef JOYCAPS FAR *LPJOYCAPS; + +typedef struct { + UINT wXpos; /* x position */ + UINT wYpos; /* y position */ + UINT wZpos; /* z position */ + UINT wButtons; /* button states */ + } JOYINFO; +typedef JOYINFO FAR *LPJOYINFO; + +UINT WINAPI joyGetDevCaps(UINT uJoyID, JOYCAPS FAR* lpCaps, UINT uSize); +UINT WINAPI joyGetNumDevs(void); +UINT WINAPI joyGetPos(UINT uJoyID, JOYINFO FAR* lpInfo); +UINT WINAPI joyGetThreshold(UINT uJoyID, UINT FAR* lpuThreshold); +UINT WINAPI joyReleaseCapture(UINT uJoyID); +UINT WINAPI joySetCapture(HWND hwnd, UINT uJoyID, UINT uPeriod, + BOOL bChanged); +UINT WINAPI joySetThreshold(UINT uJoyID, UINT uThreshold); + +#define MMIOERR_BASE 256 +#define MMIOERR_FILENOTFOUND (MMIOERR_BASE + 1) /* file not found */ +#define MMIOERR_OUTOFMEMORY (MMIOERR_BASE + 2) /* out of memory */ +#define MMIOERR_CANNOTOPEN (MMIOERR_BASE + 3) /* cannot open */ +#define MMIOERR_CANNOTCLOSE (MMIOERR_BASE + 4) /* cannot close */ +#define MMIOERR_CANNOTREAD (MMIOERR_BASE + 5) /* cannot read */ +#define MMIOERR_CANNOTWRITE (MMIOERR_BASE + 6) /* cannot write */ +#define MMIOERR_CANNOTSEEK (MMIOERR_BASE + 7) /* cannot seek */ +#define MMIOERR_CANNOTEXPAND (MMIOERR_BASE + 8) /* cannot expand file */ +#define MMIOERR_CHUNKNOTFOUND (MMIOERR_BASE + 9) /* chunk not found */ +#define MMIOERR_UNBUFFERED (MMIOERR_BASE + 10) /* file is unbuffered */ + +#define CFSEPCHAR '+' /* compound file name separator char. */ + +typedef DWORD FOURCC; /* a four character code */ +DECLARE_HANDLE(HMMIO); /* a handle to an open file */ +typedef LRESULT (CALLBACK MMIOPROC)(LPSTR lpmmioinfo, UINT uMessage, + LPARAM lParam1, LPARAM lParam2); +typedef MMIOPROC FAR *LPMMIOPROC; + +typedef struct { + DWORD dwFlags; /* general status flags */ + FOURCC fccIOProc; /* pointer to I/O procedure */ + LPMMIOPROC pIOProc; /* pointer to I/O procedure */ + UINT wErrorRet; /* place for error to be returned */ + HTASK htask; /* alternate local task */ + /* fields maintained by MMIO functions during buffered I/O */ + LONG cchBuffer; /* size of I/O buffer (or 0L) */ + HPSTR pchBuffer; /* start of I/O buffer (or NULL) */ + HPSTR pchNext; /* pointer to next byte to read/write */ + HPSTR pchEndRead; /* pointer to last valid byte to read */ + HPSTR pchEndWrite; /* pointer to last byte to write */ + LONG lBufOffset; /* disk offset of start of buffer */ + /* fields maintained by I/O procedure */ + LONG lDiskOffset; /* disk offset of next read or write */ + DWORD adwInfo[3]; /* data specific to type of MMIOPROC */ + /* other fields maintained by MMIO */ + DWORD dwReserved1; /* reserved for MMIO use */ + DWORD dwReserved2; /* reserved for MMIO use */ + HMMIO hmmio; /* handle to open file */ +} MMIOINFO; +typedef MMIOINFO FAR *LPMMIOINFO; + +typedef struct _MMCKINFO +{ + FOURCC ckid; /* chunk ID */ + DWORD cksize; /* chunk size */ + FOURCC fccType; /* form type or list type */ + DWORD dwDataOffset; /* offset of data portion of chunk */ + DWORD dwFlags; /* flags used by MMIO functions */ +} MMCKINFO; +typedef MMCKINFO FAR *LPMMCKINFO; + +#define MMIO_RWMODE 0x00000003 /* open file for reading/writing/both */ +#define MMIO_SHAREMODE 0x00000070 /* file sharing mode number */ + +#define MMIO_CREATE 0x00001000 /* create new file (or truncate file) */ +#define MMIO_PARSE 0x00000100 /* parse new file returning path */ +#define MMIO_DELETE 0x00000200 /* create new file (or truncate file) */ +#define MMIO_EXIST 0x00004000 /* checks for existence of file */ +#define MMIO_ALLOCBUF 0x00010000 /* mmioOpen() should allocate a buffer */ +#define MMIO_GETTEMP 0x00020000 /* mmioOpen() should retrieve temp name */ + +#define MMIO_DIRTY 0x10000000 /* I/O buffer is dirty */ + +#define MMIO_READ 0x00000000 /* open file for reading only */ +#define MMIO_WRITE 0x00000001 /* open file for writing only */ +#define MMIO_READWRITE 0x00000002 /* open file for reading and writing */ + +#define MMIO_COMPAT 0x00000000 /* compatibility mode */ +#define MMIO_EXCLUSIVE 0x00000010 /* exclusive-access mode */ +#define MMIO_DENYWRITE 0x00000020 /* deny writing to other processes */ +#define MMIO_DENYREAD 0x00000030 /* deny reading to other processes */ +#define MMIO_DENYNONE 0x00000040 /* deny nothing to other processes */ + +#define MMIO_FHOPEN 0x0010 /* mmioClose: keep file handle open */ +#define MMIO_EMPTYBUF 0x0010 /* mmioFlush: empty the I/O buffer */ +#define MMIO_TOUPPER 0x0010 /* mmioStringToFOURCC: to u-case */ +#define MMIO_INSTALLPROC 0x00010000 /* mmioInstallIOProc: install MMIOProc */ +#define MMIO_GLOBALPROC 0x10000000 /* mmioInstallIOProc: install globally */ +#define MMIO_REMOVEPROC 0x00020000 /* mmioInstallIOProc: remove MMIOProc */ +#define MMIO_FINDPROC 0x00040000 /* mmioInstallIOProc: find an MMIOProc */ +#define MMIO_FINDCHUNK 0x0010 /* mmioDescend: find a chunk by ID */ +#define MMIO_FINDRIFF 0x0020 /* mmioDescend: find a LIST chunk */ +#define MMIO_FINDLIST 0x0040 /* mmioDescend: find a RIFF chunk */ +#define MMIO_CREATERIFF 0x0020 /* mmioCreateChunk: make a LIST chunk */ +#define MMIO_CREATELIST 0x0040 /* mmioCreateChunk: make a RIFF chunk */ + +#define MMIOM_READ MMIO_READ /* read */ +#define MMIOM_WRITE MMIO_WRITE /* write */ +#define MMIOM_SEEK 2 /* seek to a new position in file */ +#define MMIOM_OPEN 3 /* open file */ +#define MMIOM_CLOSE 4 /* close file */ +#define MMIOM_WRITEFLUSH 5 /* write and flush */ + +#define MMIOM_RENAME 6 /* rename specified file */ + +#define MMIOM_USER 0x8000 /* beginning of user-defined messages */ + +#define FOURCC_RIFF mmioFOURCC('R', 'I', 'F', 'F') +#define FOURCC_LIST mmioFOURCC('L', 'I', 'S', 'T') + +#define FOURCC_DOS mmioFOURCC('D', 'O', 'S', ' ') +#define FOURCC_MEM mmioFOURCC('M', 'E', 'M', ' ') + +#define MMIO_DEFAULTBUFFER 8192 /* default buffer size */ + +#define mmioFOURCC( ch0, ch1, ch2, ch3 ) \ + ( (DWORD)(BYTE)(ch0) | ( (DWORD)(BYTE)(ch1) << 8 ) | \ + ( (DWORD)(BYTE)(ch2) << 16 ) | ( (DWORD)(BYTE)(ch3) << 24 ) ) + +FOURCC WINAPI mmioStringToFOURCC(LPCSTR sz, UINT uFlags); +LPMMIOPROC WINAPI mmioInstallIOProc(FOURCC fccIOProc, LPMMIOPROC pIOProc, + DWORD dwFlags); +HMMIO WINAPI mmioOpen(LPSTR szFileName, MMIOINFO FAR* lpmmioinfo, + DWORD dwOpenFlags); + +UINT WINAPI mmioRename(LPCSTR szFileName, LPCSTR szNewFileName, + MMIOINFO FAR* lpmmioinfo, DWORD dwRenameFlags); + +UINT WINAPI mmioClose(HMMIO hmmio, UINT uFlags); +LONG WINAPI mmioRead(HMMIO hmmio, HPSTR pch, LONG cch); +LONG WINAPI mmioWrite(HMMIO hmmio, HPCSTR pch, LONG cch); +LONG WINAPI mmioSeek(HMMIO hmmio, LONG lOffset, int iOrigin); +UINT WINAPI mmioGetInfo(HMMIO hmmio, MMIOINFO FAR* lpmmioinfo, UINT uFlags); +UINT WINAPI mmioSetInfo(HMMIO hmmio, const MMIOINFO FAR* lpmmioinfo, UINT uFlags); +UINT WINAPI mmioSetBuffer(HMMIO hmmio, LPSTR pchBuffer, LONG cchBuffer, + UINT uFlags); +UINT WINAPI mmioFlush(HMMIO hmmio, UINT uFlags); +UINT WINAPI mmioAdvance(HMMIO hmmio, MMIOINFO FAR* lpmmioinfo, UINT uFlags); +LRESULT WINAPI mmioSendMessage(HMMIO hmmio, UINT uMessage, + LPARAM lParam1, LPARAM lParam2); +UINT WINAPI mmioDescend(HMMIO hmmio, MMCKINFO FAR* lpck, + const MMCKINFO FAR* lpckParent, UINT uFlags); +UINT WINAPI mmioAscend(HMMIO hmmio, MMCKINFO FAR* lpck, UINT uFlags); +UINT WINAPI mmioCreateChunk(HMMIO hmmio, MMCKINFO FAR* lpck, UINT uFlags); + +typedef UINT (CALLBACK *YIELDPROC) (UINT uDeviceID, DWORD dwYieldData); + +DWORD WINAPI mciSendCommand (UINT uDeviceID, UINT uMessage, + DWORD dwParam1, DWORD dwParam2); +DWORD WINAPI mciSendString (LPCSTR lpstrCommand, + LPSTR lpstrReturnString, UINT uReturnLength, HWND hwndCallback); +UINT WINAPI mciGetDeviceID (LPCSTR lpstrName); +UINT WINAPI mciGetDeviceIDFromElementID (DWORD dwElementID, + LPCSTR lpstrType); +BOOL WINAPI mciGetErrorString (DWORD wError, LPSTR lpstrBuffer, + UINT uLength); +BOOL WINAPI mciSetYieldProc (UINT uDeviceID, YIELDPROC fpYieldProc, + DWORD dwYieldData); + +HTASK WINAPI mciGetCreatorTask(UINT uDeviceID); +YIELDPROC WINAPI mciGetYieldProc (UINT uDeviceID, DWORD FAR* lpdwYieldData); + +#define MCIERR_INVALID_DEVICE_ID (MCIERR_BASE + 1) +#define MCIERR_UNRECOGNIZED_KEYWORD (MCIERR_BASE + 3) +#define MCIERR_UNRECOGNIZED_COMMAND (MCIERR_BASE + 5) +#define MCIERR_HARDWARE (MCIERR_BASE + 6) +#define MCIERR_INVALID_DEVICE_NAME (MCIERR_BASE + 7) +#define MCIERR_OUT_OF_MEMORY (MCIERR_BASE + 8) +#define MCIERR_DEVICE_OPEN (MCIERR_BASE + 9) +#define MCIERR_CANNOT_LOAD_DRIVER (MCIERR_BASE + 10) +#define MCIERR_MISSING_COMMAND_STRING (MCIERR_BASE + 11) +#define MCIERR_PARAM_OVERFLOW (MCIERR_BASE + 12) +#define MCIERR_MISSING_STRING_ARGUMENT (MCIERR_BASE + 13) +#define MCIERR_BAD_INTEGER (MCIERR_BASE + 14) +#define MCIERR_PARSER_INTERNAL (MCIERR_BASE + 15) +#define MCIERR_DRIVER_INTERNAL (MCIERR_BASE + 16) +#define MCIERR_MISSING_PARAMETER (MCIERR_BASE + 17) +#define MCIERR_UNSUPPORTED_FUNCTION (MCIERR_BASE + 18) +#define MCIERR_FILE_NOT_FOUND (MCIERR_BASE + 19) +#define MCIERR_DEVICE_NOT_READY (MCIERR_BASE + 20) +#define MCIERR_INTERNAL (MCIERR_BASE + 21) +#define MCIERR_DRIVER (MCIERR_BASE + 22) +#define MCIERR_CANNOT_USE_ALL (MCIERR_BASE + 23) +#define MCIERR_MULTIPLE (MCIERR_BASE + 24) +#define MCIERR_EXTENSION_NOT_FOUND (MCIERR_BASE + 25) +#define MCIERR_OUTOFRANGE (MCIERR_BASE + 26) +#define MCIERR_FLAGS_NOT_COMPATIBLE (MCIERR_BASE + 28) +#define MCIERR_FILE_NOT_SAVED (MCIERR_BASE + 30) +#define MCIERR_DEVICE_TYPE_REQUIRED (MCIERR_BASE + 31) +#define MCIERR_DEVICE_LOCKED (MCIERR_BASE + 32) +#define MCIERR_DUPLICATE_ALIAS (MCIERR_BASE + 33) +#define MCIERR_BAD_CONSTANT (MCIERR_BASE + 34) +#define MCIERR_MUST_USE_SHAREABLE (MCIERR_BASE + 35) +#define MCIERR_MISSING_DEVICE_NAME (MCIERR_BASE + 36) +#define MCIERR_BAD_TIME_FORMAT (MCIERR_BASE + 37) +#define MCIERR_NO_CLOSING_QUOTE (MCIERR_BASE + 38) +#define MCIERR_DUPLICATE_FLAGS (MCIERR_BASE + 39) +#define MCIERR_INVALID_FILE (MCIERR_BASE + 40) +#define MCIERR_NULL_PARAMETER_BLOCK (MCIERR_BASE + 41) +#define MCIERR_UNNAMED_RESOURCE (MCIERR_BASE + 42) +#define MCIERR_NEW_REQUIRES_ALIAS (MCIERR_BASE + 43) +#define MCIERR_NOTIFY_ON_AUTO_OPEN (MCIERR_BASE + 44) +#define MCIERR_NO_ELEMENT_ALLOWED (MCIERR_BASE + 45) +#define MCIERR_NONAPPLICABLE_FUNCTION (MCIERR_BASE + 46) +#define MCIERR_ILLEGAL_FOR_AUTO_OPEN (MCIERR_BASE + 47) +#define MCIERR_FILENAME_REQUIRED (MCIERR_BASE + 48) +#define MCIERR_EXTRA_CHARACTERS (MCIERR_BASE + 49) +#define MCIERR_DEVICE_NOT_INSTALLED (MCIERR_BASE + 50) +#define MCIERR_GET_CD (MCIERR_BASE + 51) +#define MCIERR_SET_CD (MCIERR_BASE + 52) +#define MCIERR_SET_DRIVE (MCIERR_BASE + 53) +#define MCIERR_DEVICE_LENGTH (MCIERR_BASE + 54) +#define MCIERR_DEVICE_ORD_LENGTH (MCIERR_BASE + 55) +#define MCIERR_NO_INTEGER (MCIERR_BASE + 56) + +#define MCIERR_WAVE_OUTPUTSINUSE (MCIERR_BASE + 64) +#define MCIERR_WAVE_SETOUTPUTINUSE (MCIERR_BASE + 65) +#define MCIERR_WAVE_INPUTSINUSE (MCIERR_BASE + 66) +#define MCIERR_WAVE_SETINPUTINUSE (MCIERR_BASE + 67) +#define MCIERR_WAVE_OUTPUTUNSPECIFIED (MCIERR_BASE + 68) +#define MCIERR_WAVE_INPUTUNSPECIFIED (MCIERR_BASE + 69) +#define MCIERR_WAVE_OUTPUTSUNSUITABLE (MCIERR_BASE + 70) +#define MCIERR_WAVE_SETOUTPUTUNSUITABLE (MCIERR_BASE + 71) +#define MCIERR_WAVE_INPUTSUNSUITABLE (MCIERR_BASE + 72) +#define MCIERR_WAVE_SETINPUTUNSUITABLE (MCIERR_BASE + 73) + +#define MCIERR_SEQ_DIV_INCOMPATIBLE (MCIERR_BASE + 80) +#define MCIERR_SEQ_PORT_INUSE (MCIERR_BASE + 81) +#define MCIERR_SEQ_PORT_NONEXISTENT (MCIERR_BASE + 82) +#define MCIERR_SEQ_PORT_MAPNODEVICE (MCIERR_BASE + 83) +#define MCIERR_SEQ_PORT_MISCERROR (MCIERR_BASE + 84) +#define MCIERR_SEQ_TIMER (MCIERR_BASE + 85) +#define MCIERR_SEQ_PORTUNSPECIFIED (MCIERR_BASE + 86) +#define MCIERR_SEQ_NOMIDIPRESENT (MCIERR_BASE + 87) + +#define MCIERR_NO_WINDOW (MCIERR_BASE + 90) +#define MCIERR_CREATEWINDOW (MCIERR_BASE + 91) +#define MCIERR_FILE_READ (MCIERR_BASE + 92) +#define MCIERR_FILE_WRITE (MCIERR_BASE + 93) + +#define MCIERR_CUSTOM_DRIVER_BASE (MCIERR_BASE + 256) + +#define MCI_OPEN 0x0803 +#define MCI_CLOSE 0x0804 +#define MCI_ESCAPE 0x0805 +#define MCI_PLAY 0x0806 +#define MCI_SEEK 0x0807 +#define MCI_STOP 0x0808 +#define MCI_PAUSE 0x0809 +#define MCI_INFO 0x080A +#define MCI_GETDEVCAPS 0x080B +#define MCI_SPIN 0x080C +#define MCI_SET 0x080D +#define MCI_STEP 0x080E +#define MCI_RECORD 0x080F +#define MCI_SYSINFO 0x0810 +#define MCI_BREAK 0x0811 +#define MCI_SOUND 0x0812 +#define MCI_SAVE 0x0813 +#define MCI_STATUS 0x0814 +#define MCI_CUE 0x0830 +#define MCI_REALIZE 0x0840 +#define MCI_WINDOW 0x0841 +#define MCI_PUT 0x0842 +#define MCI_WHERE 0x0843 +#define MCI_FREEZE 0x0844 +#define MCI_UNFREEZE 0x0845 +#define MCI_LOAD 0x0850 +#define MCI_CUT 0x0851 +#define MCI_COPY 0x0852 +#define MCI_PASTE 0x0853 +#define MCI_UPDATE 0x0854 +#define MCI_RESUME 0x0855 +#define MCI_DELETE 0x0856 + +#define MCI_USER_MESSAGES (0x400 + DRV_MCI_FIRST) + +#define MCI_ALL_DEVICE_ID 0xFFFF + +#define MCI_DEVTYPE_VCR (MCI_STRING_OFFSET + 1) +#define MCI_DEVTYPE_VIDEODISC (MCI_STRING_OFFSET + 2) +#define MCI_DEVTYPE_OVERLAY (MCI_STRING_OFFSET + 3) +#define MCI_DEVTYPE_CD_AUDIO (MCI_STRING_OFFSET + 4) +#define MCI_DEVTYPE_DAT (MCI_STRING_OFFSET + 5) +#define MCI_DEVTYPE_SCANNER (MCI_STRING_OFFSET + 6) +#define MCI_DEVTYPE_ANIMATION (MCI_STRING_OFFSET + 7) +#define MCI_DEVTYPE_DIGITAL_VIDEO (MCI_STRING_OFFSET + 8) +#define MCI_DEVTYPE_OTHER (MCI_STRING_OFFSET + 9) +#define MCI_DEVTYPE_WAVEFORM_AUDIO (MCI_STRING_OFFSET + 10) +#define MCI_DEVTYPE_SEQUENCER (MCI_STRING_OFFSET + 11) + +#define MCI_DEVTYPE_FIRST MCI_DEVTYPE_VCR +#define MCI_DEVTYPE_LAST MCI_DEVTYPE_SEQUENCER + +#define MCI_MODE_NOT_READY (MCI_STRING_OFFSET + 12) +#define MCI_MODE_STOP (MCI_STRING_OFFSET + 13) +#define MCI_MODE_PLAY (MCI_STRING_OFFSET + 14) +#define MCI_MODE_RECORD (MCI_STRING_OFFSET + 15) +#define MCI_MODE_SEEK (MCI_STRING_OFFSET + 16) +#define MCI_MODE_PAUSE (MCI_STRING_OFFSET + 17) +#define MCI_MODE_OPEN (MCI_STRING_OFFSET + 18) + +#define MCI_FORMAT_MILLISECONDS 0 +#define MCI_FORMAT_HMS 1 +#define MCI_FORMAT_MSF 2 +#define MCI_FORMAT_FRAMES 3 +#define MCI_FORMAT_SMPTE_24 4 +#define MCI_FORMAT_SMPTE_25 5 +#define MCI_FORMAT_SMPTE_30 6 +#define MCI_FORMAT_SMPTE_30DROP 7 +#define MCI_FORMAT_BYTES 8 +#define MCI_FORMAT_SAMPLES 9 +#define MCI_FORMAT_TMSF 10 + +#define MCI_MSF_MINUTE(msf) ((BYTE)(msf)) +#define MCI_MSF_SECOND(msf) ((BYTE)(((WORD)(msf)) >> 8)) +#define MCI_MSF_FRAME(msf) ((BYTE)((msf)>>16)) + +#define MCI_MAKE_MSF(m, s, f) ((DWORD)(((BYTE)(m) | \ + ((WORD)(s)<<8)) | \ + (((DWORD)(BYTE)(f))<<16))) + +#define MCI_TMSF_TRACK(tmsf) ((BYTE)(tmsf)) +#define MCI_TMSF_MINUTE(tmsf) ((BYTE)(((WORD)(tmsf)) >> 8)) +#define MCI_TMSF_SECOND(tmsf) ((BYTE)((tmsf)>>16)) +#define MCI_TMSF_FRAME(tmsf) ((BYTE)((tmsf)>>24)) + +#define MCI_MAKE_TMSF(t, m, s, f) ((DWORD)(((BYTE)(t) | \ + ((WORD)(m)<<8)) | \ + (((DWORD)(BYTE)(s) | \ + ((WORD)(f)<<8))<<16))) + +#define MCI_HMS_HOUR(hms) ((BYTE)(hms)) +#define MCI_HMS_MINUTE(hms) ((BYTE)(((WORD)(hms)) >> 8)) +#define MCI_HMS_SECOND(hms) ((BYTE)((hms)>>16)) + +#define MCI_MAKE_HMS(h, m, s) ((DWORD)(((BYTE)(h) | \ + ((WORD)(m)<<8)) | \ + (((DWORD)(BYTE)(s))<<16))) + +#define MCI_NOTIFY_SUCCESSFUL 0x0001 +#define MCI_NOTIFY_SUPERSEDED 0x0002 +#define MCI_NOTIFY_ABORTED 0x0004 +#define MCI_NOTIFY_FAILURE 0x0008 + +#define MCI_NOTIFY 0x00000001L +#define MCI_WAIT 0x00000002L +#define MCI_FROM 0x00000004L +#define MCI_TO 0x00000008L +#define MCI_TRACK 0x00000010L + +#define MCI_OPEN_SHAREABLE 0x00000100L +#define MCI_OPEN_ELEMENT 0x00000200L +#define MCI_OPEN_ALIAS 0x00000400L +#define MCI_OPEN_ELEMENT_ID 0x00000800L +#define MCI_OPEN_TYPE_ID 0x00001000L +#define MCI_OPEN_TYPE 0x00002000L + +#define MCI_SEEK_TO_START 0x00000100L +#define MCI_SEEK_TO_END 0x00000200L + +#define MCI_STATUS_ITEM 0x00000100L +#define MCI_STATUS_START 0x00000200L + +#define MCI_STATUS_LENGTH 0x00000001L +#define MCI_STATUS_POSITION 0x00000002L +#define MCI_STATUS_NUMBER_OF_TRACKS 0x00000003L +#define MCI_STATUS_MODE 0x00000004L +#define MCI_STATUS_MEDIA_PRESENT 0x00000005L +#define MCI_STATUS_TIME_FORMAT 0x00000006L +#define MCI_STATUS_READY 0x00000007L +#define MCI_STATUS_CURRENT_TRACK 0x00000008L + +#define MCI_INFO_PRODUCT 0x00000100L +#define MCI_INFO_FILE 0x00000200L + +#define MCI_GETDEVCAPS_ITEM 0x00000100L + +#define MCI_GETDEVCAPS_CAN_RECORD 0x00000001L +#define MCI_GETDEVCAPS_HAS_AUDIO 0x00000002L +#define MCI_GETDEVCAPS_HAS_VIDEO 0x00000003L +#define MCI_GETDEVCAPS_DEVICE_TYPE 0x00000004L +#define MCI_GETDEVCAPS_USES_FILES 0x00000005L +#define MCI_GETDEVCAPS_COMPOUND_DEVICE 0x00000006L +#define MCI_GETDEVCAPS_CAN_EJECT 0x00000007L +#define MCI_GETDEVCAPS_CAN_PLAY 0x00000008L +#define MCI_GETDEVCAPS_CAN_SAVE 0x00000009L + +#define MCI_SYSINFO_QUANTITY 0x00000100L +#define MCI_SYSINFO_OPEN 0x00000200L +#define MCI_SYSINFO_NAME 0x00000400L +#define MCI_SYSINFO_INSTALLNAME 0x00000800L + +#define MCI_SET_DOOR_OPEN 0x00000100L +#define MCI_SET_DOOR_CLOSED 0x00000200L +#define MCI_SET_TIME_FORMAT 0x00000400L +#define MCI_SET_AUDIO 0x00000800L +#define MCI_SET_VIDEO 0x00001000L +#define MCI_SET_ON 0x00002000L +#define MCI_SET_OFF 0x00004000L + +#define MCI_SET_AUDIO_ALL 0x00000000L +#define MCI_SET_AUDIO_LEFT 0x00000001L +#define MCI_SET_AUDIO_RIGHT 0x00000002L + +#define MCI_BREAK_KEY 0x00000100L +#define MCI_BREAK_HWND 0x00000200L +#define MCI_BREAK_OFF 0x00000400L + +#define MCI_RECORD_INSERT 0x00000100L +#define MCI_RECORD_OVERWRITE 0x00000200L + +#define MCI_SOUND_NAME 0x00000100L + +#define MCI_SAVE_FILE 0x00000100L + +#define MCI_LOAD_FILE 0x00000100L + +typedef struct { + DWORD dwCallback; + } MCI_GENERIC_PARMS; +typedef MCI_GENERIC_PARMS FAR *LPMCI_GENERIC_PARMS; + +typedef struct { + DWORD dwCallback; + UINT wDeviceID; + UINT wReserved0; + LPCSTR lpstrDeviceType; + LPCSTR lpstrElementName; + LPCSTR lpstrAlias; + } MCI_OPEN_PARMS; +typedef MCI_OPEN_PARMS FAR *LPMCI_OPEN_PARMS; + +typedef struct { + DWORD dwCallback; + DWORD dwFrom; + DWORD dwTo; + } MCI_PLAY_PARMS; +typedef MCI_PLAY_PARMS FAR *LPMCI_PLAY_PARMS; + +typedef struct { + DWORD dwCallback; + DWORD dwTo; + } MCI_SEEK_PARMS; +typedef MCI_SEEK_PARMS FAR *LPMCI_SEEK_PARMS; + +typedef struct { + DWORD dwCallback; + DWORD dwReturn; + DWORD dwItem; + DWORD dwTrack; + } MCI_STATUS_PARMS; +typedef MCI_STATUS_PARMS FAR * LPMCI_STATUS_PARMS; + +typedef struct { + DWORD dwCallback; + LPSTR lpstrReturn; + DWORD dwRetSize; + } MCI_INFO_PARMS; +typedef MCI_INFO_PARMS FAR * LPMCI_INFO_PARMS; + +typedef struct { + DWORD dwCallback; + DWORD dwReturn; + DWORD dwItem; + } MCI_GETDEVCAPS_PARMS; +typedef MCI_GETDEVCAPS_PARMS FAR * LPMCI_GETDEVCAPS_PARMS; + +typedef struct { + DWORD dwCallback; + LPSTR lpstrReturn; + DWORD dwRetSize; + DWORD dwNumber; + UINT wDeviceType; + UINT wReserved0; + } MCI_SYSINFO_PARMS; +typedef MCI_SYSINFO_PARMS FAR * LPMCI_SYSINFO_PARMS; + +typedef struct { + DWORD dwCallback; + DWORD dwTimeFormat; + DWORD dwAudio; + } MCI_SET_PARMS; +typedef MCI_SET_PARMS FAR *LPMCI_SET_PARMS; + +typedef struct { + DWORD dwCallback; + int nVirtKey; + UINT wReserved0; + HWND hwndBreak; + UINT wReserved1; + } MCI_BREAK_PARMS; +typedef MCI_BREAK_PARMS FAR * LPMCI_BREAK_PARMS; + +typedef struct { + DWORD dwCallback; + LPCSTR lpstrSoundName; + } MCI_SOUND_PARMS; +typedef MCI_SOUND_PARMS FAR * LPMCI_SOUND_PARMS; + +typedef struct { + DWORD dwCallback; + LPCSTR lpfilename; + } MCI_SAVE_PARMS; +typedef MCI_SAVE_PARMS FAR * LPMCI_SAVE_PARMS; + +typedef struct { + DWORD dwCallback; + LPCSTR lpfilename; + } MCI_LOAD_PARMS; +typedef MCI_LOAD_PARMS FAR * LPMCI_LOAD_PARMS; + +typedef struct { + DWORD dwCallback; + DWORD dwFrom; + DWORD dwTo; + } MCI_RECORD_PARMS; +typedef MCI_RECORD_PARMS FAR *LPMCI_RECORD_PARMS; + +#define MCI_VD_MODE_PARK (MCI_VD_OFFSET + 1) + +#define MCI_VD_MEDIA_CLV (MCI_VD_OFFSET + 2) +#define MCI_VD_MEDIA_CAV (MCI_VD_OFFSET + 3) +#define MCI_VD_MEDIA_OTHER (MCI_VD_OFFSET + 4) + +#define MCI_VD_FORMAT_TRACK 0x4001 + +#define MCI_VD_PLAY_REVERSE 0x00010000L +#define MCI_VD_PLAY_FAST 0x00020000L +#define MCI_VD_PLAY_SPEED 0x00040000L +#define MCI_VD_PLAY_SCAN 0x00080000L +#define MCI_VD_PLAY_SLOW 0x00100000L + +#define MCI_VD_SEEK_REVERSE 0x00010000L + +#define MCI_VD_STATUS_SPEED 0x00004002L +#define MCI_VD_STATUS_FORWARD 0x00004003L +#define MCI_VD_STATUS_MEDIA_TYPE 0x00004004L +#define MCI_VD_STATUS_SIDE 0x00004005L +#define MCI_VD_STATUS_DISC_SIZE 0x00004006L + +#define MCI_VD_GETDEVCAPS_CLV 0x00010000L +#define MCI_VD_GETDEVCAPS_CAV 0x00020000L + +#define MCI_VD_SPIN_UP 0x00010000L +#define MCI_VD_SPIN_DOWN 0x00020000L + +#define MCI_VD_GETDEVCAPS_CAN_REVERSE 0x00004002L +#define MCI_VD_GETDEVCAPS_FAST_RATE 0x00004003L +#define MCI_VD_GETDEVCAPS_SLOW_RATE 0x00004004L +#define MCI_VD_GETDEVCAPS_NORMAL_RATE 0x00004005L + +#define MCI_VD_STEP_FRAMES 0x00010000L +#define MCI_VD_STEP_REVERSE 0x00020000L + +#define MCI_VD_ESCAPE_STRING 0x00000100L + +typedef struct { + DWORD dwCallback; + DWORD dwFrom; + DWORD dwTo; + DWORD dwSpeed; + } MCI_VD_PLAY_PARMS; +typedef MCI_VD_PLAY_PARMS FAR *LPMCI_VD_PLAY_PARMS; + +typedef struct { + DWORD dwCallback; + DWORD dwFrames; + } MCI_VD_STEP_PARMS; +typedef MCI_VD_STEP_PARMS FAR *LPMCI_VD_STEP_PARMS; + +typedef struct { + DWORD dwCallback; + LPCSTR lpstrCommand; + } MCI_VD_ESCAPE_PARMS; +typedef MCI_VD_ESCAPE_PARMS FAR *LPMCI_VD_ESCAPE_PARMS; + +#define MCI_WAVE_OPEN_BUFFER 0x00010000L + +#define MCI_WAVE_SET_FORMATTAG 0x00010000L +#define MCI_WAVE_SET_CHANNELS 0x00020000L +#define MCI_WAVE_SET_SAMPLESPERSEC 0x00040000L +#define MCI_WAVE_SET_AVGBYTESPERSEC 0x00080000L +#define MCI_WAVE_SET_BLOCKALIGN 0x00100000L +#define MCI_WAVE_SET_BITSPERSAMPLE 0x00200000L + +#define MCI_WAVE_INPUT 0x00400000L +#define MCI_WAVE_OUTPUT 0x00800000L + +#define MCI_WAVE_STATUS_FORMATTAG 0x00004001L +#define MCI_WAVE_STATUS_CHANNELS 0x00004002L +#define MCI_WAVE_STATUS_SAMPLESPERSEC 0x00004003L +#define MCI_WAVE_STATUS_AVGBYTESPERSEC 0x00004004L +#define MCI_WAVE_STATUS_BLOCKALIGN 0x00004005L +#define MCI_WAVE_STATUS_BITSPERSAMPLE 0x00004006L +#define MCI_WAVE_STATUS_LEVEL 0x00004007L + +#define MCI_WAVE_SET_ANYINPUT 0x04000000L +#define MCI_WAVE_SET_ANYOUTPUT 0x08000000L + +#define MCI_WAVE_GETDEVCAPS_INPUTS 0x00004001L +#define MCI_WAVE_GETDEVCAPS_OUTPUTS 0x00004002L + +typedef struct { + DWORD dwCallback; + UINT wDeviceID; + UINT wReserved0; + LPCSTR lpstrDeviceType; + LPCSTR lpstrElementName; + LPCSTR lpstrAlias; + DWORD dwBufferSeconds; + } MCI_WAVE_OPEN_PARMS; +typedef MCI_WAVE_OPEN_PARMS FAR *LPMCI_WAVE_OPEN_PARMS; + +typedef struct { + DWORD dwCallback; + DWORD dwFrom; + DWORD dwTo; + } MCI_WAVE_DELETE_PARMS; +typedef MCI_WAVE_DELETE_PARMS FAR *LPMCI_WAVE_DELETE_PARMS; + +typedef struct { + DWORD dwCallback; + DWORD dwTimeFormat; + DWORD dwAudio; + UINT wInput; + UINT wReserved0; + UINT wOutput; + UINT wReserved1; + UINT wFormatTag; + UINT wReserved2; + UINT nChannels; + UINT wReserved3; + DWORD nSamplesPerSec; + DWORD nAvgBytesPerSec; + UINT nBlockAlign; + UINT wReserved4; + UINT wBitsPerSample; + UINT wReserved5; + } MCI_WAVE_SET_PARMS; +typedef MCI_WAVE_SET_PARMS FAR * LPMCI_WAVE_SET_PARMS; + +#define MCI_SEQ_DIV_PPQN (0 + MCI_SEQ_OFFSET) +#define MCI_SEQ_DIV_SMPTE_24 (1 + MCI_SEQ_OFFSET) +#define MCI_SEQ_DIV_SMPTE_25 (2 + MCI_SEQ_OFFSET) +#define MCI_SEQ_DIV_SMPTE_30DROP (3 + MCI_SEQ_OFFSET) +#define MCI_SEQ_DIV_SMPTE_30 (4 + MCI_SEQ_OFFSET) + +#define MCI_SEQ_FORMAT_SONGPTR 0x4001 +#define MCI_SEQ_FILE 0x4002 +#define MCI_SEQ_MIDI 0x4003 +#define MCI_SEQ_SMPTE 0x4004 +#define MCI_SEQ_NONE 65533 + +#define MCI_SEQ_STATUS_TEMPO 0x00004002L +#define MCI_SEQ_STATUS_PORT 0x00004003L +#define MCI_SEQ_STATUS_SLAVE 0x00004007L +#define MCI_SEQ_STATUS_MASTER 0x00004008L +#define MCI_SEQ_STATUS_OFFSET 0x00004009L +#define MCI_SEQ_STATUS_DIVTYPE 0x0000400AL + +#define MCI_SEQ_SET_TEMPO 0x00010000L +#define MCI_SEQ_SET_PORT 0x00020000L +#define MCI_SEQ_SET_SLAVE 0x00040000L +#define MCI_SEQ_SET_MASTER 0x00080000L +#define MCI_SEQ_SET_OFFSET 0x01000000L + +typedef struct { + DWORD dwCallback; + DWORD dwTimeFormat; + DWORD dwAudio; + DWORD dwTempo; + DWORD dwPort; + DWORD dwSlave; + DWORD dwMaster; + DWORD dwOffset; + } MCI_SEQ_SET_PARMS; +typedef MCI_SEQ_SET_PARMS FAR * LPMCI_SEQ_SET_PARMS; + +#define MCI_ANIM_OPEN_WS 0x00010000L +#define MCI_ANIM_OPEN_PARENT 0x00020000L +#define MCI_ANIM_OPEN_NOSTATIC 0x00040000L + +#define MCI_ANIM_PLAY_SPEED 0x00010000L +#define MCI_ANIM_PLAY_REVERSE 0x00020000L +#define MCI_ANIM_PLAY_FAST 0x00040000L +#define MCI_ANIM_PLAY_SLOW 0x00080000L +#define MCI_ANIM_PLAY_SCAN 0x00100000L + +#define MCI_ANIM_STEP_REVERSE 0x00010000L +#define MCI_ANIM_STEP_FRAMES 0x00020000L + +#define MCI_ANIM_STATUS_SPEED 0x00004001L +#define MCI_ANIM_STATUS_FORWARD 0x00004002L +#define MCI_ANIM_STATUS_HWND 0x00004003L +#define MCI_ANIM_STATUS_HPAL 0x00004004L +#define MCI_ANIM_STATUS_STRETCH 0x00004005L + +#define MCI_ANIM_INFO_TEXT 0x00010000L + +#define MCI_ANIM_GETDEVCAPS_CAN_REVERSE 0x00004001L +#define MCI_ANIM_GETDEVCAPS_FAST_RATE 0x00004002L +#define MCI_ANIM_GETDEVCAPS_SLOW_RATE 0x00004003L +#define MCI_ANIM_GETDEVCAPS_NORMAL_RATE 0x00004004L +#define MCI_ANIM_GETDEVCAPS_PALETTES 0x00004006L +#define MCI_ANIM_GETDEVCAPS_CAN_STRETCH 0x00004007L +#define MCI_ANIM_GETDEVCAPS_MAX_WINDOWS 0x00004008L + +#define MCI_ANIM_REALIZE_NORM 0x00010000L +#define MCI_ANIM_REALIZE_BKGD 0x00020000L + +#define MCI_ANIM_WINDOW_HWND 0x00010000L +#define MCI_ANIM_WINDOW_STATE 0x00040000L +#define MCI_ANIM_WINDOW_TEXT 0x00080000L +#define MCI_ANIM_WINDOW_ENABLE_STRETCH 0x00100000L +#define MCI_ANIM_WINDOW_DISABLE_STRETCH 0x00200000L + +#define MCI_ANIM_WINDOW_DEFAULT 0x00000000L + +#define MCI_ANIM_RECT 0x00010000L +#define MCI_ANIM_PUT_SOURCE 0x00020000L +#define MCI_ANIM_PUT_DESTINATION 0x00040000L + +#define MCI_ANIM_WHERE_SOURCE 0x00020000L +#define MCI_ANIM_WHERE_DESTINATION 0x00040000L + +#define MCI_ANIM_UPDATE_HDC 0x00020000L + +typedef struct { + DWORD dwCallback; + UINT wDeviceID; + UINT wReserved0; + LPCSTR lpstrDeviceType; + LPCSTR lpstrElementName; + LPCSTR lpstrAlias; + DWORD dwStyle; + HWND hWndParent; + UINT wReserved1; + } MCI_ANIM_OPEN_PARMS; +typedef MCI_ANIM_OPEN_PARMS FAR *LPMCI_ANIM_OPEN_PARMS; + +typedef struct { + DWORD dwCallback; + DWORD dwFrom; + DWORD dwTo; + DWORD dwSpeed; + } MCI_ANIM_PLAY_PARMS; +typedef MCI_ANIM_PLAY_PARMS FAR *LPMCI_ANIM_PLAY_PARMS; + +typedef struct { + DWORD dwCallback; + DWORD dwFrames; + } MCI_ANIM_STEP_PARMS; +typedef MCI_ANIM_STEP_PARMS FAR *LPMCI_ANIM_STEP_PARMS; + +typedef struct { + DWORD dwCallback; + HWND hWnd; + UINT wReserved1; + UINT nCmdShow; + UINT wReserved2; + LPCSTR lpstrText; + } MCI_ANIM_WINDOW_PARMS; +typedef MCI_ANIM_WINDOW_PARMS FAR * LPMCI_ANIM_WINDOW_PARMS; + +typedef struct { + DWORD dwCallback; +#ifdef MCI_USE_OFFEXT + POINT ptOffset; + POINT ptExtent; +#else /* ifdef MCI_USE_OFFEXT */ + RECT rc; +#endif /* ifdef MCI_USE_OFFEXT */ + } MCI_ANIM_RECT_PARMS; +typedef MCI_ANIM_RECT_PARMS FAR * LPMCI_ANIM_RECT_PARMS; + +typedef struct { + DWORD dwCallback; + RECT rc; + HDC hDC; + } MCI_ANIM_UPDATE_PARMS; +typedef MCI_ANIM_UPDATE_PARMS FAR * LPMCI_ANIM_UPDATE_PARMS; + +#define MCI_OVLY_OPEN_WS 0x00010000L +#define MCI_OVLY_OPEN_PARENT 0x00020000L + +#define MCI_OVLY_STATUS_HWND 0x00004001L +#define MCI_OVLY_STATUS_STRETCH 0x00004002L + +#define MCI_OVLY_INFO_TEXT 0x00010000L + +#define MCI_OVLY_GETDEVCAPS_CAN_STRETCH 0x00004001L +#define MCI_OVLY_GETDEVCAPS_CAN_FREEZE 0x00004002L +#define MCI_OVLY_GETDEVCAPS_MAX_WINDOWS 0x00004003L + +#define MCI_OVLY_WINDOW_HWND 0x00010000L +#define MCI_OVLY_WINDOW_STATE 0x00040000L +#define MCI_OVLY_WINDOW_TEXT 0x00080000L +#define MCI_OVLY_WINDOW_ENABLE_STRETCH 0x00100000L +#define MCI_OVLY_WINDOW_DISABLE_STRETCH 0x00200000L + +#define MCI_OVLY_WINDOW_DEFAULT 0x00000000L + +#define MCI_OVLY_RECT 0x00010000L +#define MCI_OVLY_PUT_SOURCE 0x00020000L +#define MCI_OVLY_PUT_DESTINATION 0x00040000L +#define MCI_OVLY_PUT_FRAME 0x00080000L +#define MCI_OVLY_PUT_VIDEO 0x00100000L + +#define MCI_OVLY_WHERE_SOURCE 0x00020000L +#define MCI_OVLY_WHERE_DESTINATION 0x00040000L +#define MCI_OVLY_WHERE_FRAME 0x00080000L +#define MCI_OVLY_WHERE_VIDEO 0x00100000L + +typedef struct { + DWORD dwCallback; + UINT wDeviceID; + UINT wReserved0; + LPCSTR lpstrDeviceType; + LPCSTR lpstrElementName; + LPCSTR lpstrAlias; + DWORD dwStyle; + HWND hWndParent; + UINT wReserved1; + } MCI_OVLY_OPEN_PARMS; +typedef MCI_OVLY_OPEN_PARMS FAR *LPMCI_OVLY_OPEN_PARMS; + +typedef struct { + DWORD dwCallback; + HWND hWnd; + UINT wReserved1; + UINT nCmdShow; + UINT wReserved2; + LPCSTR lpstrText; + } MCI_OVLY_WINDOW_PARMS; +typedef MCI_OVLY_WINDOW_PARMS FAR * LPMCI_OVLY_WINDOW_PARMS; + +typedef struct { + DWORD dwCallback; +#ifdef MCI_USE_OFFEXT + POINT ptOffset; + POINT ptExtent; +#else /* ifdef MCI_USE_OFFEXT */ + RECT rc; +#endif /* ifdef MCI_USE_OFFEXT */ + } MCI_OVLY_RECT_PARMS; +typedef MCI_OVLY_RECT_PARMS FAR * LPMCI_OVLY_RECT_PARMS; + +typedef struct { + DWORD dwCallback; + LPCSTR lpfilename; + RECT rc; + } MCI_OVLY_SAVE_PARMS; +typedef MCI_OVLY_SAVE_PARMS FAR * LPMCI_OVLY_SAVE_PARMS; + +typedef struct { + DWORD dwCallback; + LPCSTR lpfilename; + RECT rc; + } MCI_OVLY_LOAD_PARMS; +typedef MCI_OVLY_LOAD_PARMS FAR * LPMCI_OVLY_LOAD_PARMS; + + +#endif /* MMSYSTEM_H */ + +
diff --git a/include/msdos.h b/include/msdos.h index b06d56c..b394555 100644 --- a/include/msdos.h +++ b/include/msdos.h
@@ -15,6 +15,7 @@ }; #define DOSVERSION 0x0330; +#define MAX_DOS_DRIVES 26 #define EAX context->sc_eax #define EBX context->sc_ebx
diff --git a/include/regfunc.h b/include/regfunc.h index 96f2fef..d68a2d7 100644 --- a/include/regfunc.h +++ b/include/regfunc.h
@@ -4,19 +4,21 @@ #ifndef REGFUNC_H #define REGFUNC_H +#include "wine.h" + extern unsigned short *Stack16Frame; -#define _CONTEXT &Stack16Frame[12] -#define _AX Stack16Frame[34] -#define _BX Stack16Frame[28] -#define _CX Stack16Frame[32] -#define _DX Stack16Frame[30] -#define _SP Stack16Frame[26] -#define _BP Stack16Frame[24] -#define _SI Stack16Frame[22] -#define _DI Stack16Frame[20] -#define _DS Stack16Frame[18] -#define _ES Stack16Frame[16] +#define _CONTEXT ((struct sigcontext_struct *) &Stack16Frame[12]) +#define _AX (_CONTEXT->sc_eax) +#define _BX (_CONTEXT->sc_ebx) +#define _CX (_CONTEXT->sc_ecx) +#define _DX (_CONTEXT->sc_edx) +#define _SP (_CONTEXT->sc_esp) +#define _BP (_CONTEXT->sc_ebp) +#define _SI (_CONTEXT->sc_esi) +#define _DI (_CONTEXT->sc_edi) +#define _DS (_CONTEXT->sc_ds) +#define _ES (_CONTEXT->sc_es) extern void ReturnFromRegisterFunc(void);
diff --git a/include/shell.h b/include/shell.h new file mode 100644 index 0000000..6a30151 --- /dev/null +++ b/include/shell.h
@@ -0,0 +1,40 @@ +/* + * Shell Library definitions + */ + +#define ERROR_SUCCESS 0L +#define ERROR_BADDB 1L +#define ERROR_BADKEY 2L +#define ERROR_CANTOPEN 3L +#define ERROR_CANTREAD 4L +#define ERROR_CANTWRITE 5L +#define ERROR_OUTOFMEMORY 6L +#define ERROR_INVALID_PARAMETER 7L +#define ERROR_ACCESS_DENIED 8L + +#define REG_SZ 1 /* string type */ + +#define HKEY_CLASSES_ROOT 1 + +typedef DWORD HKEY; +typedef HKEY FAR* LPHKEY; + +typedef struct tagKEYSTRUCT { + HKEY hKey; + LPSTR lpSubKey; + DWORD dwType; + LPSTR lpValue; + struct tagKEYSTRUCT *lpPrevKey; + struct tagKEYSTRUCT *lpNextKey; + struct tagKEYSTRUCT *lpSubLvl; + } KEYSTRUCT; +typedef KEYSTRUCT *LPKEYSTRUCT; + +#define SE_ERR_SHARE 26 +#define SE_ERR_ASSOCINCOMPLETE 27 +#define SE_ERR_DDETIMEOUT 28 +#define SE_ERR_DDEFAIL 29 +#define SE_ERR_DDEBUSY 30 +#define SE_ERR_NOASSOC 31 + +
diff --git a/include/syscolor.h b/include/syscolor.h new file mode 100644 index 0000000..9bd12d5 --- /dev/null +++ b/include/syscolor.h
@@ -0,0 +1,39 @@ +/* + * System color objects + * + * Copyright Alexandre Julliard, 1994 + */ + +#ifndef SYSCOLOR_H +#define SYSCOLOR_H + +#include "gdi.h" + +struct SysColorObjects +{ + HBRUSH hbrushScrollbar; /* COLOR_SCROLLBAR */ + /* COLOR_BACKGROUND */ + HBRUSH hbrushActiveCaption; /* COLOR_ACTIVECAPTION */ + HBRUSH hbrushInactiveCaption; /* COLOR_INACTIVECAPTION */ + /* COLOR_MENU */ + HBRUSH hbrushWindow; /* COLOR_WINDOW */ + HPEN hpenWindowFrame; /* COLOR_WINDOWFRAME */ + /* COLOR_MENUTEXT */ + HPEN hpenWindowText; /* COLOR_WINDOWTEXT */ + /* COLOR_CAPTIONTEXT */ + HBRUSH hbrushActiveBorder; /* COLOR_ACTIVEBORDER */ + HBRUSH hbrushInactiveBorder; /* COLOR_INACTIVEBORDER */ + /* COLOR_APPWORKSPACE */ + /* COLOR_HIGHLIGHT */ + /* COLOR_HIGHLIGHTTEXT */ + HBRUSH hbrushBtnFace; /* COLOR_BTNFACE */ + HBRUSH hbrushBtnShadow; /* COLOR_BTNSHADOW */ + /* COLOR_GRAYTEXT */ + /* COLOR_BTNTEXT */ + /* COLOR_INACTIVECAPTIONTEXT */ + HBRUSH hbrushBtnHighlight; /* COLOR_BTNHIGHLIGHT */ +}; + +extern struct SysColorObjects sysColorObjects; + +#endif /* SYSCOLOR_H */
diff --git a/include/task.h b/include/task.h new file mode 100644 index 0000000..05aba51 --- /dev/null +++ b/include/task.h
@@ -0,0 +1,27 @@ +/* + * Task definitions + */ + +#ifndef TASK_H +#define TASK_H + +typedef struct { + HANDLE hTask; + HANDLE hModule; + HINSTANCE hInst; + int unix_pid; + HICON hIcon; + HWND *lpWndList; + void *lpPrevTask; + void *lpNextTask; +} TASKENTRY; +typedef TASKENTRY *LPTASKENTRY; + +#define MAXWIN_PER_TASK 256 + +HANDLE CreateNewTask(HINSTANCE hInst); +BOOL RemoveWindowFromTask(HTASK hTask, HWND hWnd); +BOOL AddWindowToTask(HTASK hTask, HWND hWnd); + +#endif /* TASK_H */ +
diff --git a/include/user.h b/include/user.h index 166a707..990428c 100644 --- a/include/user.h +++ b/include/user.h
@@ -25,8 +25,9 @@ #define USER_HEAP_ALLOC(f,size) ((int)HEAP_Alloc(&USER_Heap,f,size) & 0xffff) #define USER_HEAP_REALLOC(handle,size,f) ((int)HEAP_ReAlloc(&USER_Heap, \ USER_HEAP_ADDR(handle),size,f) & 0xffff) -#define USER_HEAP_ADDR(handle) ((void *)((handle)|((int)USER_Heap&0xffff0000))) #define USER_HEAP_FREE(handle) (HEAP_Free(&USER_Heap,USER_HEAP_ADDR(handle))) +#define USER_HEAP_ADDR(handle) \ + ((void *)((handle) ? ((handle) | ((int)USER_Heap & 0xffff0000)) : 0)) #endif /* WINELIB */
diff --git a/include/win.h b/include/win.h index 2631911..0a4a566 100644 --- a/include/win.h +++ b/include/win.h
@@ -36,19 +36,21 @@ POINT ptMaxPos; /* Maximized window position */ HANDLE hmemTaskQ; /* Task queue global memory handle */ HRGN hrgnUpdate; /* Update region */ + HWND hwndPrevActive; /* Previous active top-level window */ HWND hwndLastActive; /* Last active popup hwnd */ FARPROC lpfnWndProc; /* Window procedure */ DWORD dwStyle; /* Window style (from CreateWindow) */ DWORD dwExStyle; /* Extended style (from CreateWindowEx) */ HANDLE hdce; /* Window DCE (if CS_OWNDC or CS_CLASSDC) */ - HMENU hmenuSystem; /* System menu */ - void *VScroll; /* Vertical ScrollBar Struct Pointer */ - void *HScroll; /* Horizontal ScrollBar Struct Pointer */ + void *VScroll; /* Vertical ScrollBar Struct Pointer */ + void *HScroll; /* Horizontal ScrollBar Struct Pointer */ WORD wIDmenu; /* ID or hmenu (from CreateWindow) */ HANDLE hText; /* Handle of window text */ WORD flags; /* Misc. flags (see below) */ Window window; /* X window */ - HMENU hSysMenu; /* window's copy of System Menu */ + HMENU hSysMenu; /* window's copy of System Menu */ + HANDLE hProp; /* Handle of Properties List */ + HTASK hTask; /* Task Handle of the owner */ WORD wExtra[1]; /* Window extra bytes */ } WND;
diff --git a/include/windows.h b/include/windows.h index 7986183..6d92ddd 100644 --- a/include/windows.h +++ b/include/windows.h
@@ -9,15 +9,24 @@ typedef unsigned short UINT; typedef unsigned short WORD; typedef unsigned long DWORD; -#ifndef _WINMAIN typedef unsigned short BOOL; typedef unsigned char BYTE; -#endif +typedef char *LPSTR; +typedef const char *LPCSTR; +typedef char *NPSTR; +typedef INT *LPINT; +typedef void *LPVOID; +typedef long (*FARPROC)(); +typedef FARPROC DLGPROC; +typedef int CATCHBUF[9]; +typedef int *LPCATCHBUF; +typedef FARPROC HOOKPROC; typedef long LONG; typedef UINT WPARAM; typedef LONG LPARAM; typedef LONG LRESULT; typedef WORD HANDLE; +typedef DWORD HHOOK; #define DECLARE_HANDLE(a) typedef HANDLE a; DECLARE_HANDLE(HTASK); @@ -37,19 +46,10 @@ DECLARE_HANDLE(HBRUSH); DECLARE_HANDLE(LOCALHANDLE); -typedef char *LPSTR; -typedef const char *LPCSTR; -typedef char *NPSTR; -typedef short *LPINT; -typedef void *LPVOID; -typedef long (*FARPROC)(); -typedef FARPROC DLGPROC; -typedef int CATCHBUF[9]; -typedef int *LPCATCHBUF; #define TRUE 1 #define FALSE 0 -#define CW_USEDEFAULT ((short)0x8000) +#define CW_USEDEFAULT ((INT)0x8000) #define FAR #define NEAR #define PASCAL @@ -113,15 +113,15 @@ #endif */ -typedef struct { short x, y; } POINT; +typedef struct { INT x, y; } POINT; typedef POINT *PPOINT; typedef POINT *NPPOINT; typedef POINT *LPPOINT; typedef struct { - short cx; - short cy; + INT cx; + INT cy; } SIZE, *LPSIZE; #define MAKEPOINT(l) (*((POINT *)&(l))) @@ -129,7 +129,7 @@ #define MAKELPARAM(low, high) ((LONG)(((WORD)(low)) | \ (((DWORD)((WORD)(high))) << 16))) -typedef struct { short left, top, right, bottom; } RECT; +typedef struct { INT left, top, right, bottom; } RECT; typedef RECT *LPRECT; typedef RECT *NPRECT; typedef RECT *PRECT; @@ -167,7 +167,7 @@ #else LONG (*lpfnWndProc)() WINE_PACKED; #endif - short cbClsExtra, cbWndExtra; + INT cbClsExtra, cbWndExtra; HANDLE hInstance; HICON hIcon; HCURSOR hCursor; @@ -209,10 +209,10 @@ HINSTANCE hInstance; HMENU hMenu; HWND hwndParent; - short cy; - short cx; - short y; - short x; + INT cy; + INT cx; + INT y; + INT x; LONG style WINE_PACKED; char * lpszName WINE_PACKED; char * lpszClass WINE_PACKED; @@ -230,10 +230,10 @@ LPSTR szClass; LPSTR szTitle; HANDLE hOwner; - short x; - short y; - short cx; - short cy; + INT x; + INT y; + INT cx; + INT cy; LONG style WINE_PACKED; LONG lParam WINE_PACKED; } MDICREATESTRUCT, *LPMDICREATESTRUCT; @@ -380,7 +380,118 @@ #define SC_SCREENSAVE 0xf140 #define SC_HOTKEY 0xf150 - /* Dialogs */ +/***** Window hooks *****/ + + /* Hook values */ +#define WH_JOURNALRECORD 0 +#define WH_JOURNALPLAYBACK 1 +#define WH_KEYBOARD 2 +#define WH_GETMESSAGE 3 +#define WH_CALLWNDPROC 4 +#define WH_CBT 5 +#define WH_SYSMSGFILTER 6 +#define WH_MOUSE 7 +#define WH_HARDWARE 8 +#define WH_DEBUG 9 +#define WH_SHELL 10 +#define WH_MSGFILTER (-1) + + /* Hook action codes */ +#define HC_ACTION 0 +#define HC_GETNEXT 1 +#define HC_SKIP 2 +#define HC_NOREMOVE 3 +#define HC_NOREM HC_NOREMOVE +#define HC_SYSMODALON 4 +#define HC_SYSMODALOFF 5 + + /* CallMsgFilter() values */ +#define MSGF_DIALOGBOX 0 +#define MSGF_MENU 2 +#define MSGF_MOVE 3 +#define MSGF_SIZE 4 +#define MSGF_SCROLLBAR 5 +#define MSGF_NEXTWINDOW 6 +#define MSGF_MAINLOOP 8 +#define MSGF_USER 4096 + + /* Journalling hook values */ +#define HC_GETNEXT 1 +#define HC_SKIP 2 +#define HC_NOREMOVE 3 +#define HC_NOREM HC_NOREMOVE +#define HC_SYSMODALON 4 +#define HC_SYSMODALOFF 5 + + /* Journalling hook structure */ +typedef struct tagEVENTMSG +{ + UINT message; + UINT paramL; + UINT paramH; + DWORD time WINE_PACKED; +} EVENTMSG, *LPEVENTMSG; + + /* Mouse hook structure */ +typedef struct tagMOUSEHOOKSTRUCT +{ + POINT pt; + HWND hwnd; + WORD wHitTestCode; + DWORD dwExtraInfo; +} MOUSEHOOKSTRUCT, *LPMOUSEHOOKSTRUCT; + + /* Hardware hook structure */ +typedef struct tagHARDWAREHOOKSTRUCT +{ + HWND hWnd; + UINT wMessage; + WPARAM wParam; + LPARAM lParam WINE_PACKED; +} HARDWAREHOOKSTRUCT; + + /* CBT hook values */ +#define HCBT_MOVESIZE 0 +#define HCBT_MINMAX 1 +#define HCBT_QS 2 +#define HCBT_CREATEWND 3 +#define HCBT_DESTROYWND 4 +#define HCBT_ACTIVATE 5 +#define HCBT_CLICKSKIPPED 6 +#define HCBT_KEYSKIPPED 7 +#define HCBT_SYSCOMMAND 8 +#define HCBT_SETFOCUS 9 + + /* CBT hook structures */ +typedef struct tagCBT_CREATEWND +{ + CREATESTRUCT *lpcs; + HWND hwndInsertAfter; +} CBT_CREATEWND, *LPCBT_CREATEWND; + +typedef struct tagCBTACTIVATESTRUCT +{ + BOOL fMouse; + HWND hWndActive; +} CBTACTIVATESTRUCT; + + /* Shell hook values */ +#define HSHELL_WINDOWCREATED 1 +#define HSHELL_WINDOWDESTROYED 2 +#define HSHELL_ACTIVATESHELLWINDOW 3 + + /* Debug hook structure */ +typedef struct tagDEBUGHOOKINFO +{ + HANDLE hModuleHook; + LPARAM reserved WINE_PACKED; + LPARAM lParam WINE_PACKED; + WPARAM wParam; + short code; +} DEBUGHOOKINFO, *LPDEBUGHOOKINFO; + + +/***** Dialogs *****/ /* cbWndExtra bytes for dialog class */ #define DLGWINDOWEXTRA 30 @@ -529,10 +640,10 @@ typedef struct tagBITMAP { - short bmType; - short bmWidth; - short bmHeight; - short bmWidthBytes; + INT bmType; + INT bmWidth; + INT bmHeight; + INT bmWidthBytes; BYTE bmPlanes; BYTE bmBitsPixel; void * bmBits WINE_PACKED; @@ -548,7 +659,7 @@ { WORD lbStyle; COLORREF lbColor WINE_PACKED; - short lbHatch; + INT lbHatch; } LOGBRUSH, *PLOGBRUSH, *NPLOGBRUSH, *LPLOGBRUSH; /* Brush styles */ @@ -573,7 +684,7 @@ #define LF_FACESIZE 32 typedef struct tagLOGFONT { - short lfHeight, lfWidth, lfEscapement, lfOrientation, lfWeight; + INT lfHeight, lfWidth, lfEscapement, lfOrientation, lfWeight; BYTE lfItalic, lfUnderline, lfStrikeOut, lfCharSet; BYTE lfOutPrecision, lfClipPrecision, lfQuality, lfPitchAndFamily; BYTE lfFaceName[LF_FACESIZE] WINE_PACKED; @@ -640,14 +751,14 @@ typedef struct tagTEXTMETRIC { - short tmHeight; - short tmAscent; - short tmDescent; - short tmInternalLeading; - short tmExternalLeading; - short tmAveCharWidth; - short tmMaxCharWidth; - short tmWeight; + INT tmHeight; + INT tmAscent; + INT tmDescent; + INT tmInternalLeading; + INT tmExternalLeading; + INT tmAveCharWidth; + INT tmMaxCharWidth; + INT tmWeight; BYTE tmItalic; BYTE tmUnderlined; BYTE tmStruckOut; @@ -657,9 +768,9 @@ BYTE tmBreakChar; BYTE tmPitchAndFamily; BYTE tmCharSet; - short tmOverhang; - short tmDigitizedAspectX; - short tmDigitizedAspectY; + INT tmOverhang; + INT tmDigitizedAspectX; + INT tmDigitizedAspectY; } TEXTMETRIC, *PTEXTMETRIC, *NPTEXTMETRIC, *LPTEXTMETRIC; /* tmPitchAndFamily values */ @@ -966,10 +1077,10 @@ typedef struct tagBITMAPCOREHEADER { unsigned long bcSize; - unsigned short bcWidth; - unsigned short bcHeight; - unsigned short bcPlanes; - unsigned short bcBitCount; + UINT bcWidth; + UINT bcHeight; + UINT bcPlanes; + UINT bcBitCount; } BITMAPCOREHEADER; #define DIB_RGB_COLORS 0 @@ -2214,9 +2325,9 @@ Fa(BOOL,TranslateMessage,LPMSG,a) Fa(void,PostQuitMessage,int,a) Fa(BOOL,SetMessageQueue,int,a) -Fa(int,_lclose,int,a) -Fb(int,_lopen,LPSTR,a,int,b) -Fa(int,lstrlen,LPCSTR,a) +Fa(INT,_lclose,INT,a) +Fb(INT,_lopen,LPSTR,a,INT,b) +Fa(INT,lstrlen,LPCSTR,a) Fa(LONG,DispatchMessage,LPMSG,msg) Fa(void,UpdateWindow,HWND,a) Fa(ATOM,AddAtom,LPCSTR,a) @@ -2257,6 +2368,7 @@ Fa(BOOL,SetDeskWallPaper,LPSTR,a) Fa(BOOL,SetErrorMode,WORD,a) Fa(BOOL,SwapMouseButton,BOOL,a) +Fa(BOOL,UnhookWindowsHookEx,HHOOK,a) Fa(BOOL,UnrealizeObject,HBRUSH,a) Fa(BYTE,GetTempDrive,BYTE,a) Fa(DWORD,GetAspectRatioFilter,HDC,a) @@ -2351,7 +2463,7 @@ Fa(WORD,ArrangeIconicWindows,HWND,a) Fa(WORD,EnumClipboardFormats,WORD,a) Fa(WORD,FreeSelector,WORD,a) -Fa(WORD,GetDriveType,int,a) +Fa(WORD,GetDriveType,INT,a) Fa(WORD,GetMenuItemCount,HMENU,a) Fa(WORD,GetTaskQueue,HANDLE,a) Fa(WORD,GetTextAlign,HDC,a) @@ -2423,14 +2535,14 @@ Fb(HDC,BeginPaint,HWND,a,LPPAINTSTRUCT,b) Fb(LPSTR,lstrcat,LPSTR,a,LPCSTR,b ) Fb(LPSTR,lstrcpy,LPSTR,a,LPCSTR,b ) -Fb(int,_lcreat,LPSTR,a,int,b) -Fb(int,lstrcmp,LPCSTR,a,LPCSTR,b ) -Fb(int,lstrcmpi,LPCSTR,a,LPCSTR,b ) +Fb(INT,_lcreat,LPSTR,a,INT,b) +Fb(INT,lstrcmp,LPCSTR,a,LPCSTR,b ) +Fb(INT,lstrcmpi,LPCSTR,a,LPCSTR,b ) Fb(void,EndPaint,HWND,a,LPPAINTSTRUCT,b) Fb(void,GetClientRect,HWND,a,LPRECT,b) Fb(void,SetDCState,HDC,a,HDC,b) Fb(BOOL,UnregisterClass,LPSTR,a,HANDLE,b) -Fb(BOOL,CallMsgFilter,LPMSG,a,int,b) +Fb(BOOL,CallMsgFilter,LPMSG,a,short,b) Fb(BOOL,ChangeClipboardChain,HWND,a,HWND,b) Fb(BOOL,EnableWindow,HWND,a,BOOL,b) Fb(BOOL,EnumWindows,FARPROC,a,LONG,b) @@ -2454,14 +2566,14 @@ Fb(BOOL,SetConvertParams,int,a,int,b) Fb(BOOL,SetMenu,HWND,a,HMENU,b) Fb(BOOL,TranslateMDISysAccel,HWND,a,LPMSG,b) -Fb(BOOL,UnhookWindowsHook,int,a,FARPROC,b) +Fb(BOOL,UnhookWindowsHook,short,a,HHOOK,b) Fb(DWORD,GetNearestColor,HDC,a,DWORD,b) Fb(DWORD,SetBkColor,HDC,a,COLORREF,b) Fb(DWORD,SetMapperFlags,HDC,a,DWORD,b) Fb(DWORD,SetTextColor,HDC,a,DWORD,b) Fb(FARPROC,GetProcAddress,HANDLE,a,LPSTR,b) Fb(FARPROC,MakeProcInstance,FARPROC,a,HANDLE,b) -Fb(FARPROC,SetWindowsHook,int,a,FARPROC,b) +Fb(HHOOK,SetWindowsHook,short,a,HOOKPROC,b) Fb(HANDLE,CopyMetaFile,HANDLE,a,LPSTR,b) Fb(HANDLE,GetProp,HWND,a,LPSTR,b) #ifndef GLOBAL_SOURCE @@ -2524,7 +2636,7 @@ Fb(WORD,SizeofResource,HANDLE,a,HANDLE,b) Fb(WORD,WinExec,LPSTR,a,WORD,b) Fb(int,AccessResource,HANDLE,a,HANDLE,b) -Fb(int,AnsiToOem,LPSTR,a,LPSTR,b) +Fb(INT,AnsiToOem,LPSTR,a,LPSTR,b) Fb(int,BuildCommDCB,LPSTR,a,DCB*,b) Fb(int,ConvertRequest,HWND,a,LPKANJISTRUCT,b) Fb(void,CopyRect,LPRECT,a,LPRECT,b) @@ -2567,9 +2679,9 @@ Fb(void,ValidateRgn,HWND,a,HRGN,b) Fc(BOOL,LineTo,HDC,a,short,b,short,c) Fc(WORD,GetInternalWindowPos,HWND,a,LPRECT,b,LPPOINT,c) -Fc(LONG,_llseek,int,a,long,b,int,c) -Fc(WORD,_lread,int,a,LPSTR,b,int,c) -Fc(WORD,_lwrite,int,a,LPSTR,b,int,c) +Fc(LONG,_llseek,INT,a,LONG,b,INT,c) +Fc(WORD,_lread,INT,a,LPSTR,b,INT,c) +Fc(WORD,_lwrite,INT,a,LPSTR,b,INT,c) Fc(int,FillRect,HDC,a,LPRECT,b,HBRUSH,c) Fc(DWORD,MoveTo,HDC,a,short,b,short,c) Fc(BOOL,CheckMenuItem,HMENU,a,WORD,b,WORD,c) @@ -2645,7 +2757,7 @@ Fc(int,OffsetClipRgn,HDC,a,short,b,short,c) Fc(int,OffsetRgn,HRGN,a,short,b,short,c) Fc(int,OpenComm,LPSTR,a,WORD,b,WORD,c) -Fc(int,OpenFile,LPSTR,a,LPOFSTRUCT,b,WORD,c) +Fc(INT,OpenFile,LPSTR,a,LPOFSTRUCT,b,WORD,c) Fc(int,ReadComm,int,a,LPSTR,b,int,c) Fc(int,SetEnvironment,LPSTR,a,LPSTR,b,WORD,c) Fc(int,SetVoiceEnvelope,int,a,int,b,int,c) @@ -2655,12 +2767,12 @@ Fc(int,wvsprintf,LPSTR,a,LPSTR,b,LPSTR,c) Fc(short,SetTextJustification,HDC,a,short,b,short,c) Fc(void,AdjustWindowRect,LPRECT,a,DWORD,b,BOOL,c) -Fc(void,AnsiToOemBuff,LPSTR,a,LPSTR,b,int,c) +Fc(void,AnsiToOemBuff,LPSTR,a,LPSTR,b,INT,c) Fc(void,CheckDlgButton,HWND,a,WORD,b,WORD,c) Fc(void,InflateRect,LPRECT,a,short,b,short,c) Fc(void,InvalidateRect,HWND,a,LPRECT,b,BOOL,c) Fc(void,InvalidateRgn,HWND,a,HRGN,b,BOOL,c) -Fc(void,OemToAnsiBuff,LPSTR,a,LPSTR,b,int,c) +Fc(void,OemToAnsiBuff,LPSTR,a,LPSTR,b,INT,c) Fc(void,OffsetRect,LPRECT,a,short,b,short,c) Fc(void,SetDlgItemText,HWND,a,WORD,b,LPSTR,c) Fc(void,SetSysColors,int,a,LPINT,b,COLORREF*,c) @@ -2683,10 +2795,12 @@ Fd(BOOL,SetBitmapDimensionEx,HBITMAP,a,short,b,short,c,LPSIZE,d) Fd(BOOL,WinHelp,HWND,hwndMain,LPSTR,lpszHelp,WORD,usCommand,DWORD,ulData) Fd(BOOL,WritePrivateProfileString,LPSTR,a,LPSTR,b,LPSTR,c,LPSTR,d) -Fd(DWORD,DefHookProc,int,a,WORD,b,DWORD,c,FARPROC FAR*,d) +Fd(DWORD,DefHookProc,short,a,WORD,b,DWORD,c,HHOOK FAR*,d) +Fd(DWORD,CallNextHookEx,HHOOK,a,short,b,WPARAM,c,LPARAM,d) Fd(COLORREF,SetPixel,HDC,a,short,b,short,c,COLORREF,d) Fd(HDC,CreateDC,LPSTR,a,LPSTR,b,LPSTR,c,LPSTR,d) Fd(HDC,CreateIC,LPSTR,a,LPSTR,b,LPSTR,c,LPSTR,d) +Fd(HHOOK,SetWindowsHookEx,short,a,HOOKPROC,b,HINSTANCE,c,HTASK,d) Fd(HRGN,CreateEllipticRgn,short,a,short,b,short,c,short,d) Fd(HRGN,CreatePolyPolygonRgn,LPPOINT,a,LPINT,b,short,c,short,d) Fd(HRGN,CreateRectRgn,short,a,short,b,short,c,short,d) @@ -2713,7 +2827,7 @@ Fd(int,EnumFonts,HDC,a,LPSTR,b,FARPROC,c,LPSTR,d) Fd(int,EnumObjects,HDC,a,int,b,FARPROC,c,LPSTR,d) Fd(int,GetDlgItemText,HWND,a,WORD,b,LPSTR,c,WORD,d) -Fd(int,GetTempFileName,BYTE,a,LPCSTR,b,UINT,c,LPSTR,d) +Fd(INT,GetTempFileName,BYTE,a,LPCSTR,b,UINT,c,LPSTR,d) Fd(int,LoadString,HANDLE,a,WORD,b,LPSTR,c,int,d) Fd(int,MessageBox,HWND,a,LPSTR,b,LPSTR,c,WORD,d) Fd(int,SetScrollPos,HWND,a,int,b,int,c,BOOL,d) @@ -2789,7 +2903,7 @@ Fi(BOOL,Arc,HDC,a,int,xLeft,int,yTop,int,xRight,int,yBottom,int,xStart,int,yStart,int,xEnd,int,yEnd) Fi(BOOL,Chord,HDC,a,int,xLeft,int,yTop,int,xRight,int,yBottom,int,xStart,int,yStart,int,xEnd,int,yEnd) Fi(BOOL,BitBlt,HDC,a,short,b,short,c,short,d,short,e,HDC,f,short,g,short,h,DWORD,i) -Fi(BOOL,GrayString,HDC,a,HBRUSH,b,FARPROC,c,DWORD,d,int,e,int,f,int,g,int,h,int,i) +Fi(BOOL,GrayString,HDC,a,HBRUSH,b,FARPROC,gsprc,LPARAM,lParam,INT,cch,INT,x,INT,y,INT,cx,INT,cy) Fi(BOOL,Pie,HDC,a,int,xLeft,int,yTop,int,xRight,int,yBottom,int,xStart,int,yStart,int,xEnd,int,yEnd) Fk(HWND,CreateWindow,LPSTR,szAppName,LPSTR,Label,DWORD,ol,short,x,short,y,short,w,short,h,HWND,d,HMENU,e,,HANDLE i,LPSTR,g) Fk(BOOL,StretchBlt,HDC,a,short,b,short,c,short,d,short,e,HDC,f,short,g,short,h,short,i,short,j,DWORD,k)
diff --git a/include/wine.h b/include/wine.h index 28cda57..69505e6 100644 --- a/include/wine.h +++ b/include/wine.h
@@ -32,7 +32,8 @@ extern struct w_files * wine_files; -#define MAX_DOS_DRIVES 26 +extern char *WineIniFileName(void); +extern char *WinIniFileName(void); #define WINE_INI WineIniFileName() #define WIN_INI WinIniFileName()
diff --git a/include/winsock.h b/include/winsock.h index c36be06..3429f4a 100644 --- a/include/winsock.h +++ b/include/winsock.h
@@ -79,7 +79,9 @@ * Maximum queue length specifiable by listen. */ #define SOMAXCONN 5 + #define MSG_DONTROUTE 0x4 /* send without using routing tables */ + #define MSG_MAXIOVLEN 16 /* @@ -188,51 +190,6 @@ /* no address, look for MX record */ #define WSANO_ADDRESS WSANO_DATA -/* - * Windows Sockets errors redefined as regular Berkeley error constants - - * AAARGH! * - -#define EWOULDBLOCK WSAEWOULDBLOCK -#define EINPROGRESS WSAEINPROGRESS -#define EALREADY WSAEALREADY -#define ENOTSOCK WSAENOTSOCK -#define EDESTADDRREQ WSAEDESTADDRREQ -#define EMSGSIZE WSAEMSGSIZE -#define EPROTOTYPE WSAEPROTOTYPE -#define ENOPROTOOPT WSAENOPROTOOPT -#define EPROTONOSUPPORT WSAEPROTONOSUPPORT -#define ESOCKTNOSUPPORT WSAESOCKTNOSUPPORT -#define EOPNOTSUPP WSAEOPNOTSUPP -#define EPFNOSUPPORT WSAEPFNOSUPPORT -#define EAFNOSUPPORT WSAEAFNOSUPPORT -#define EADDRINUSE WSAEADDRINUSE -#define EADDRNOTAVAIL WSAEADDRNOTAVAIL -#define ENETDOWN WSAENETDOWN -#define ENETUNREACH WSAENETUNREACH -#define ENETRESET WSAENETRESET -#define ECONNABORTED WSAECONNABORTED -#define ECONNRESET WSAECONNRESET -#define ENOBUFS WSAENOBUFS -#define EISCONN WSAEISCONN -#define ENOTCONN WSAENOTCONN -#define ESHUTDOWN WSAESHUTDOWN -#define ETOOMANYREFS WSAETOOMANYREFS -#define ETIMEDOUT WSAETIMEDOUT -#define ECONNREFUSED WSAECONNREFUSED -#define ELOOP WSAELOOP -#define ENAMETOOLONG WSAENAMETOOLONG -#define EHOSTDOWN WSAEHOSTDOWN -#define EHOSTUNREACH WSAEHOSTUNREACH -#define ENOTEMPTY WSAENOTEMPTY -#define EPROCLIM WSAEPROCLIM -#define EUSERS WSAEUSERS -#define EDQUOT WSAEDQUOT -#define ESTALE WSAESTALE -#define EREMOTE WSAEREMOTE - -*/ - /* Socket function prototypes */ #ifdef __cplusplus @@ -241,51 +198,50 @@ /* Microsoft Windows Extension function prototypes */ -int PASCAL FAR WSAStartup(WORD wVersionRequired, LPWSADATA lpWSAData); +INT PASCAL FAR WSAStartup(WORD wVersionRequired, LPWSADATA lpWSAData); -int PASCAL FAR WSACleanup(void); +INT PASCAL FAR WSACleanup(void); -void PASCAL FAR WSASetLastError(int iError); +void PASCAL FAR WSASetLastError(INT iError); -int PASCAL FAR WSAGetLastError(void); +INT PASCAL FAR WSAGetLastError(void); BOOL PASCAL FAR WSAIsBlocking(void); -int PASCAL FAR WSAUnhookBlockingHook(void); +INT PASCAL FAR WSAUnhookBlockingHook(void); FARPROC PASCAL FAR WSASetBlockingHook(FARPROC lpBlockFunc); -int PASCAL FAR WSACancelBlockingCall(void); +INT PASCAL FAR WSACancelBlockingCall(void); HANDLE PASCAL FAR WSAAsyncGetServByName(HWND hWnd, u_int wMsg, - const char FAR * name, - const char FAR * proto, - char FAR * buf, int buflen); + const char FAR *name, + const char FAR *proto, + char FAR *buf, INT buflen); -HANDLE PASCAL FAR WSAAsyncGetServByPort(HWND hWnd, u_int wMsg, int port, - const char FAR * proto, char FAR * buf, - int buflen); +HANDLE PASCAL FAR WSAAsyncGetServByPort(HWND hWnd, u_int wMsg, INT port, + const char FAR *proto, char FAR *buf, + INT buflen); HANDLE PASCAL FAR WSAAsyncGetProtoByName(HWND hWnd, u_int wMsg, - const char FAR * name, char FAR * buf, - int buflen); + const char FAR *name, char FAR *buf, + INT buflen); HANDLE PASCAL FAR WSAAsyncGetProtoByNumber(HWND hWnd, u_int wMsg, - int number, char FAR * buf, - int buflen); + INT number, char FAR *buf, + INT buflen); HANDLE PASCAL FAR WSAAsyncGetHostByName(HWND hWnd, u_int wMsg, - const char FAR * name, char FAR * buf, - int buflen); + const char FAR *name, char FAR *buf, + INT buflen); HANDLE PASCAL FAR WSAAsyncGetHostByAddr(HWND hWnd, u_int wMsg, - const char FAR * addr, int len, int type, - const char FAR * buf, int buflen); + const char FAR *addr, INT len, INT type, + char FAR *buf, INT buflen); -int PASCAL FAR WSACancelAsyncRequest(HANDLE hAsyncTaskHandle); +INT PASCAL FAR WSACancelAsyncRequest(HANDLE hAsyncTaskHandle); -int PASCAL FAR WSAAsyncSelect(SOCKET s, HWND hWnd, u_int wMsg, - long lEvent); +INT PASCAL FAR WSAAsyncSelect(SOCKET s, HWND hWnd, u_int wMsg, long lEvent); #ifdef __cplusplus }