- README update
- add offsets to ASPI struct defines - spelling
This commit is contained in:
parent
5448c534f3
commit
1af53cbb2a
16
README
16
README
|
@ -69,16 +69,12 @@ To build Wine, run the following commands:
|
|||
make depend
|
||||
make
|
||||
|
||||
This will build the library "libwine.a" and the program "wine".
|
||||
This will build the program "wine" and numerous support libraries/binaries.
|
||||
The program "wine" will load and run Windows executables.
|
||||
The library "libwine.a" can be used to compile and link Windows source
|
||||
code under Unix.
|
||||
The library "libwine" ("Winelib") can be used to compile and link
|
||||
Windows source code under Unix.
|
||||
|
||||
If you do not intend to compile Windows source code, use
|
||||
"./configure --disable-lib" to skip building the library and reduce disk
|
||||
space requirements. If you have an ELF compiler (which you probably do),
|
||||
you can use "./configure --enable-dll" to build a shared library instead.
|
||||
To see other configuration options, do ./configure --help.
|
||||
To see compile configuration options, do ./configure --help.
|
||||
|
||||
To upgrade to a new release by using a patch file, first cd to the
|
||||
top-level directory of the release (the one containing this README
|
||||
|
@ -145,7 +141,7 @@ FAQ: The Wine FAQ is located at http://www.winehq.com/faq.html.
|
|||
WWW: A great deal of information about Wine is available from WineHQ at
|
||||
http://www.winehq.com/. Untested patches against the current release
|
||||
are available on the wine-patches mailing list; see
|
||||
http://www.winehq.com/dev.html#ml for more information.
|
||||
http://www.winehq.com/dev.shtml#ml for more information.
|
||||
|
||||
HOWTO: The Wine HOWTO is available at
|
||||
http://www.westfalen.de/witch/wine-HOWTO.txt .
|
||||
|
@ -162,7 +158,7 @@ Usenet: Please browse old messages on http://www.dejanews.com/ to check whether
|
|||
IRC: Online help is available at channel #WineHQ on IRCnet.
|
||||
|
||||
CVS: The current Wine development tree is available through CVS.
|
||||
Go to http://www.winehq.com/dev.html for more information.
|
||||
Go to http://www.winehq.com/dev.shtml for more information.
|
||||
|
||||
If you add something, or fix a bug, please send a patch ('diff -u'
|
||||
format preferred) to julliard@winehq.com for inclusion in the next
|
||||
|
|
|
@ -136,7 +136,7 @@ BSTR16 WINAPI SysAllocStringLen16(const char *in, int len)
|
|||
* SysAllocStringLen [OLEAUT32.4]
|
||||
*
|
||||
* In "Inside OLE, second edition" by Kraig Brockshmidt. In the Automation
|
||||
* section, he describes the DWORD value placed before the BSTR data type.
|
||||
* section, he describes the DWORD value placed *before* the BSTR data type.
|
||||
* he describes it as a "DWORD count of characters". By experimenting with
|
||||
* a windows application, this count seems to be a DWORD count of bytes in
|
||||
* the string. Meaning that the count is double the number of wide
|
||||
|
@ -149,13 +149,13 @@ BSTR WINAPI SysAllocStringLen(const OLECHAR *in, unsigned int len)
|
|||
WCHAR* stringBuffer;
|
||||
|
||||
/*
|
||||
* Find the lenth of the buffer passed-in in bytes.
|
||||
* Find the length of the buffer passed-in in bytes.
|
||||
*/
|
||||
bufferSize = len * sizeof (WCHAR);
|
||||
|
||||
/*
|
||||
* Allocate a new buffer to hold the string.
|
||||
* dont't forget to keep an empty spot at the begining of the
|
||||
* dont't forget to keep an empty spot at the beginning of the
|
||||
* buffer for the character count and an extra character at the
|
||||
* end for the NULL.
|
||||
*/
|
||||
|
|
|
@ -63,7 +63,7 @@ static BOOL MIX_GetVal(int chn, int* val)
|
|||
WARN("mixer device not available !\n");
|
||||
} else {
|
||||
if (ioctl(mixer, MIXER_READ(chn), val) >= 0) {
|
||||
TRACE("Reading %x on %d\n", *val, chn);
|
||||
TRACE("Reading volume %x on %d\n", *val, chn);
|
||||
ret = TRUE;
|
||||
}
|
||||
close(mixer);
|
||||
|
@ -79,7 +79,7 @@ static BOOL MIX_SetVal(int chn, int val)
|
|||
int mixer;
|
||||
BOOL ret = FALSE;
|
||||
|
||||
TRACE("Writing %x on %d\n", val, chn);
|
||||
TRACE("Writing volume %x on %d\n", val, chn);
|
||||
|
||||
if ((mixer = open(MIXER_DEV, O_RDWR)) < 0) {
|
||||
/* FIXME: ENXIO => no mixer installed */
|
||||
|
@ -199,7 +199,7 @@ static DWORD MIX_GetLineInfo(WORD wDevID, LPMIXERLINEA lpMl, DWORD fdwInfo)
|
|||
TRACE("SOURCE (%08lx)\n", lpMl->dwSource);
|
||||
i = lpMl->dwSource;
|
||||
for (j = 1; j < SOUND_MIXER_NRDEVICES; j++) {
|
||||
if (WINE_CHN_SUPPORTS(MIX_DevMask, j) && (i-- == 0))
|
||||
if (WINE_CHN_SUPPORTS(MIX_DevMask, j) && (i-- == 0))
|
||||
break;
|
||||
}
|
||||
if (j >= SOUND_MIXER_NRDEVICES)
|
||||
|
|
|
@ -40,7 +40,7 @@ typedef struct tagSMSG
|
|||
HQUEUE16 hSrcQueue; /* sending Queue, (NULL if it didn't wait) */
|
||||
HQUEUE16 hDstQueue; /* destination Queue */
|
||||
|
||||
HWND hWnd; /* destinantion window */
|
||||
HWND hWnd; /* destination window */
|
||||
UINT msg; /* message sent */
|
||||
WPARAM wParam; /* wParam of the sent message */
|
||||
LPARAM lParam; /* lParam of the sent message */
|
||||
|
@ -65,7 +65,7 @@ typedef struct tagSMSG
|
|||
#define SMSG_EARLY_REPLY 0x0080
|
||||
/* set when sender is Win32 thread */
|
||||
#define SMSG_WIN32 0x1000
|
||||
/* set when sender is a unnicode thread */
|
||||
/* set when sender is a unicode thread */
|
||||
#define SMSG_UNICODE 0x2000
|
||||
|
||||
/* Per-queue data for the message queue
|
||||
|
|
|
@ -90,105 +90,105 @@ extern "C" {
|
|||
|
||||
/* SRB - HOST ADAPTER INQUIRY - SC_HA_INQUIRY */
|
||||
typedef struct tagSRB32_HaInquiry {
|
||||
BYTE SRB_Cmd; /* ASPI command code = SC_HA_INQUIRY */
|
||||
BYTE SRB_Status; /* ASPI command status byte */
|
||||
BYTE SRB_HaId; /* ASPI host adapter number */
|
||||
BYTE SRB_Flags; /* ASPI request flags */
|
||||
DWORD SRB_Hdr_Rsvd; /* Reserved, MUST = 0 */
|
||||
BYTE HA_Count; /* Number of host adapters present */
|
||||
BYTE HA_SCSI_ID; /* SCSI ID of host adapter */
|
||||
BYTE HA_ManagerId[16]; /* String describing the manager */
|
||||
BYTE HA_Identifier[16]; /* String describing the host adapter */
|
||||
BYTE HA_Unique[16]; /* Host Adapter Unique parameters */
|
||||
BYTE SRB_Cmd; /* 00 ASPI command code = SC_HA_INQUIRY */
|
||||
BYTE SRB_Status; /* 01 ASPI command status byte */
|
||||
BYTE SRB_HaId; /* 02 ASPI host adapter number */
|
||||
BYTE SRB_Flags; /* 03 ASPI request flags */
|
||||
DWORD SRB_Hdr_Rsvd; /* 04 Reserved, MUST = 0 */
|
||||
BYTE HA_Count; /* 08 Number of host adapters present */
|
||||
BYTE HA_SCSI_ID; /* 09 SCSI ID of host adapter */
|
||||
BYTE HA_ManagerId[16]; /* 0A String describing the manager */
|
||||
BYTE HA_Identifier[16]; /* 1A String describing the host adapter */
|
||||
BYTE HA_Unique[16]; /* 2A Host Adapter Unique parameters */
|
||||
WORD HA_Rsvd1;
|
||||
} SRB_HaInquiry, *PSRB_HaInquiry;
|
||||
|
||||
/* SRB - GET DEVICE TYPE - SC_GET_DEV_TYPE */
|
||||
typedef struct tagSRB32_GDEVBlock {
|
||||
BYTE SRB_Cmd; /* ASPI command code = SC_GET_DEV_TYPE */
|
||||
BYTE SRB_Status; /* ASPI command status byte */
|
||||
BYTE SRB_HaId; /* ASPI host adapter number */
|
||||
BYTE SRB_Flags; /* Reserved */
|
||||
DWORD SRB_Hdr_Rsvd; /* Reserved */
|
||||
BYTE SRB_Target; /* Target's SCSI ID */
|
||||
BYTE SRB_Lun; /* Target's LUN number */
|
||||
BYTE SRB_DeviceType; /* Target's peripheral device type */
|
||||
BYTE SRB_Cmd; /* 00 ASPI command code = SC_GET_DEV_TYPE */
|
||||
BYTE SRB_Status; /* 01 ASPI command status byte */
|
||||
BYTE SRB_HaId; /* 02 ASPI host adapter number */
|
||||
BYTE SRB_Flags; /* 03 Reserved */
|
||||
DWORD SRB_Hdr_Rsvd; /* 04 Reserved */
|
||||
BYTE SRB_Target; /* 08 Target's SCSI ID */
|
||||
BYTE SRB_Lun; /* 09 Target's LUN number */
|
||||
BYTE SRB_DeviceType; /* 0A Target's peripheral device type */
|
||||
BYTE SRB_Rsvd1;
|
||||
} SRB_GDEVBlock, *PSRB_GDEVBlock;
|
||||
|
||||
/* SRB - EXECUTE SCSI COMMAND - SC_EXEC_SCSI_CMD */
|
||||
typedef struct tagSRB32_ExecSCSICmd {
|
||||
BYTE SRB_Cmd; /* ASPI command code = SC_EXEC_SCSI_CMD */
|
||||
BYTE SRB_Status; /* ASPI command status byte */
|
||||
BYTE SRB_HaId; /* ASPI host adapter number */
|
||||
BYTE SRB_Flags; /* ASPI request flags */
|
||||
DWORD SRB_Hdr_Rsvd; /* Reserved */
|
||||
BYTE SRB_Target; /* Target's SCSI ID */
|
||||
BYTE SRB_Lun; /* Target's LUN number */
|
||||
WORD SRB_Rsvd1; /* Reserved for Alignment */
|
||||
DWORD SRB_BufLen; /* Data Allocation Length */
|
||||
BYTE *SRB_BufPointer; /* Data Buffer Point */
|
||||
BYTE SRB_SenseLen; /* Sense Allocation Length */
|
||||
BYTE SRB_CDBLen; /* CDB Length */
|
||||
BYTE SRB_HaStat; /* Host Adapter Status */
|
||||
BYTE SRB_TargStat; /* Target Status */
|
||||
void (*SRB_PostProc)(); /* Post routine */
|
||||
void *SRB_Rsvd2; /* Reserved */
|
||||
BYTE SRB_Rsvd3[16]; /* Reserved for expansion */
|
||||
BYTE CDBByte[16]; /* SCSI CDB */
|
||||
BYTE SenseArea[SENSE_LEN+2]; /* Request sense buffer - var length */
|
||||
BYTE SRB_Cmd; /* 00 ASPI command code = SC_EXEC_SCSI_CMD */
|
||||
BYTE SRB_Status; /* 01 ASPI command status byte */
|
||||
BYTE SRB_HaId; /* 02 ASPI host adapter number */
|
||||
BYTE SRB_Flags; /* 03 ASPI request flags */
|
||||
DWORD SRB_Hdr_Rsvd; /* 04 Reserved */
|
||||
BYTE SRB_Target; /* 08 Target's SCSI ID */
|
||||
BYTE SRB_Lun; /* 09 Target's LUN number */
|
||||
WORD SRB_Rsvd1; /* 0A Reserved for Alignment */
|
||||
DWORD SRB_BufLen; /* 0C Data Allocation Length */
|
||||
BYTE *SRB_BufPointer; /* 10 Data Buffer Point */
|
||||
BYTE SRB_SenseLen; /* 14 Sense Allocation Length */
|
||||
BYTE SRB_CDBLen; /* 15 CDB Length */
|
||||
BYTE SRB_HaStat; /* 16 Host Adapter Status */
|
||||
BYTE SRB_TargStat; /* 17 Target Status */
|
||||
void (*SRB_PostProc)(); /* 18 Post routine */
|
||||
void *SRB_Rsvd2; /* 1C Reserved */
|
||||
BYTE SRB_Rsvd3[16]; /* 20 Reserved for expansion */
|
||||
BYTE CDBByte[16]; /* 30 SCSI CDB */
|
||||
BYTE SenseArea[SENSE_LEN+2]; /* 40 Request sense buffer - var length */
|
||||
} SRB_ExecSCSICmd, *PSRB_ExecSCSICmd;
|
||||
|
||||
/* SRB - ABORT AN ARB - SC_ABORT_SRB */
|
||||
typedef struct tagSRB32_Abort {
|
||||
BYTE SRB_Cmd; /* ASPI command code = SC_ABORT_SRB */
|
||||
BYTE SRB_Status; /* ASPI command status byte */
|
||||
BYTE SRB_HaId; /* ASPI host adapter number */
|
||||
BYTE SRB_Flags; /* Reserved */
|
||||
DWORD SRB_Hdr_Rsvd; /* Reserved, MUST = 0 */
|
||||
VOID *SRB_ToAbort; /* Pointer to SRB to abort */
|
||||
BYTE SRB_Cmd; /* 00 ASPI command code = SC_ABORT_SRB */
|
||||
BYTE SRB_Status; /* 01 ASPI command status byte */
|
||||
BYTE SRB_HaId; /* 02 ASPI host adapter number */
|
||||
BYTE SRB_Flags; /* 03 Reserved */
|
||||
DWORD SRB_Hdr_Rsvd; /* 04 Reserved, MUST = 0 */
|
||||
VOID *SRB_ToAbort; /* 08 Pointer to SRB to abort */
|
||||
} SRB_Abort, *PSRB_Abort;
|
||||
|
||||
/* SRB - BUS DEVICE RESET - SC_RESET_DEV */
|
||||
typedef struct tagSRB32_BusDeviceReset {
|
||||
BYTE SRB_Cmd; /* ASPI command code = SC_RESET_DEV */
|
||||
BYTE SRB_Status; /* ASPI command status byte */
|
||||
BYTE SRB_HaId; /* ASPI host adapter number */
|
||||
BYTE SRB_Flags; /* Reserved */
|
||||
DWORD SRB_Hdr_Rsvd; /* Reserved */
|
||||
BYTE SRB_Target; /* Target's SCSI ID */
|
||||
BYTE SRB_Lun; /* Target's LUN number */
|
||||
BYTE SRB_Rsvd1[12]; /* Reserved for Alignment */
|
||||
BYTE SRB_HaStat; /* Host Adapter Status */
|
||||
BYTE SRB_TargStat; /* Target Status */
|
||||
void (*SRB_PostProc)(); /* Post routine */
|
||||
void *SRB_Rsvd2; /* Reserved */
|
||||
BYTE SRB_Rsvd3[32]; /* Reserved */
|
||||
BYTE SRB_Cmd; /* 00 ASPI cmd code = SC_RESET_DEV */
|
||||
BYTE SRB_Status; /* 01 ASPI command status byte */
|
||||
BYTE SRB_HaId; /* 02 ASPI host adapter number */
|
||||
BYTE SRB_Flags; /* 03 Reserved */
|
||||
DWORD SRB_Hdr_Rsvd; /* 04 Reserved */
|
||||
BYTE SRB_Target; /* 08 Target's SCSI ID */
|
||||
BYTE SRB_Lun; /* 09 Target's LUN number */
|
||||
BYTE SRB_Rsvd1[12]; /* 0A Reserved for Alignment */
|
||||
BYTE SRB_HaStat; /* 16 Host Adapter Status */
|
||||
BYTE SRB_TargStat; /* 17 Target Status */
|
||||
void (*SRB_PostProc)(); /* 18 Post routine */
|
||||
void *SRB_Rsvd2; /* 1c Reserved */
|
||||
BYTE SRB_Rsvd3[32]; /* 20 Reserved */
|
||||
} SRB_BusDeviceReset, *PSRB_BusDeviceReset;
|
||||
|
||||
/* SRB - GET DISK INFORMATION - SC_GET_DISK_INFO */
|
||||
typedef struct tagSRB32_GetDiskInfo {
|
||||
BYTE SRB_Cmd; /* ASPI command code = SC_RESET_DEV */
|
||||
BYTE SRB_Status; /* ASPI command status byte */
|
||||
BYTE SRB_HaId; /* ASPI host adapter number */
|
||||
BYTE SRB_Flags; /* Reserved */
|
||||
DWORD SRB_Hdr_Rsvd; /* Reserved */
|
||||
BYTE SRB_Target; /* Target's SCSI ID */
|
||||
BYTE SRB_Lun; /* Target's LUN number */
|
||||
BYTE SRB_DriveFlags; /* Driver flags */
|
||||
BYTE SRB_Int13HDriveInfo; /* Host Adapter Status */
|
||||
BYTE SRB_Heads; /* Preferred number of heads trans */
|
||||
BYTE SRB_Sectors; /* Preferred number of sectors trans */
|
||||
BYTE SRB_Rsvd1[10]; /* Reserved */
|
||||
BYTE SRB_Cmd; /* 00 ASPI cmd code = SC_RESET_DEV */
|
||||
BYTE SRB_Status; /* 01 ASPI command status byte */
|
||||
BYTE SRB_HaId; /* 02 ASPI host adapter number */
|
||||
BYTE SRB_Flags; /* 03 Reserved */
|
||||
DWORD SRB_Hdr_Rsvd; /* 04 Reserved */
|
||||
BYTE SRB_Target; /* 08 Target's SCSI ID */
|
||||
BYTE SRB_Lun; /* 09 Target's LUN number */
|
||||
BYTE SRB_DriveFlags; /* 0A Driver flags */
|
||||
BYTE SRB_Int13HDriveInfo; /* 0B Host Adapter Status */
|
||||
BYTE SRB_Heads; /* 0C Preferred number of heads trans */
|
||||
BYTE SRB_Sectors; /* 0D Preferred number of sectors trans */
|
||||
BYTE SRB_Rsvd1[10]; /* 0E Reserved */
|
||||
} SRB_GetDiskInfo, *PSRB_GetDiskInfo;
|
||||
|
||||
/* SRB header */
|
||||
typedef struct tagSRB32_Header {
|
||||
BYTE SRB_Cmd; /* ASPI command code = SC_RESET_DEV */
|
||||
BYTE SRB_Status; /* ASPI command status byte */
|
||||
BYTE SRB_HaId; /* ASPI host adapter number */
|
||||
BYTE SRB_Flags; /* Reserved */
|
||||
DWORD SRB_Hdr_Rsvd; /* Reserved */
|
||||
BYTE SRB_Cmd; /* 00 ASPI cmd code = SC_RESET_DEV */
|
||||
BYTE SRB_Status; /* 01 ASPI command status byte */
|
||||
BYTE SRB_HaId; /* 02 ASPI host adapter number */
|
||||
BYTE SRB_Flags; /* 03 Reserved */
|
||||
DWORD SRB_Hdr_Rsvd; /* 04 Reserved */
|
||||
} SRB_Header, *PSRB_Header;
|
||||
|
||||
typedef union tagSRB32 {
|
||||
|
|
|
@ -156,11 +156,11 @@ void MAIN_ParseDebugOptions( const char *arg )
|
|||
|
||||
error:
|
||||
MESSAGE("%s: Syntax: --debugmsg [class]+xxx,... or "
|
||||
"-debugmsg [class]-xxx,...\n",argv0);
|
||||
"--debugmsg [class]-xxx,...\n",argv0);
|
||||
MESSAGE("Example: --debugmsg +all,warn-heap\n"
|
||||
" turn on all messages except warning heap messages\n");
|
||||
MESSAGE("Special case: --debugmsg +relay=DLL:DLL.###:FuncName\n"
|
||||
" turn on -debugmsg +relay only as specified\n"
|
||||
" turn on --debugmsg +relay only as specified\n"
|
||||
"Special case: --debugmsg -relay=DLL:DLL.###:FuncName\n"
|
||||
" turn on --debugmsg +relay except as specified\n"
|
||||
"Also permitted, +snoop=..., -snoop=... as with relay.\n\n");
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
* win31->NT migration book)
|
||||
*
|
||||
* FIXME: There seems to be a general problem with hInstance in WINE
|
||||
* classes are getting registred with wrong hInstance.
|
||||
* classes are getting registered with wrong hInstance.
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
|
|
|
@ -361,7 +361,7 @@ END:
|
|||
/***********************************************************************
|
||||
* MSG_TranslateKbdMsg
|
||||
*
|
||||
* Translate an keyboard hardware event into a real message.
|
||||
* Translate a keyboard hardware event into a real message.
|
||||
*/
|
||||
static DWORD MSG_TranslateKbdMsg( HWND hTopWnd, DWORD first, DWORD last,
|
||||
MSG *msg, BOOL remove )
|
||||
|
@ -508,7 +508,7 @@ static int MSG_JournalPlayBackMsg(void)
|
|||
if (wtime<=0)
|
||||
{
|
||||
wtime=0;
|
||||
if ((tmpMsg->message>= WM_KEYFIRST) && (tmpMsg->message <= WM_KEYLAST))
|
||||
if ((tmpMsg->message >= WM_KEYFIRST) && (tmpMsg->message <= WM_KEYLAST))
|
||||
{
|
||||
wParam=tmpMsg->paramL & 0xFF;
|
||||
lParam=MAKELONG(tmpMsg->paramH&0x7ffff,tmpMsg->paramL>>8);
|
||||
|
@ -590,8 +590,6 @@ static int MSG_JournalPlayBackMsg(void)
|
|||
static BOOL MSG_PeekHardwareMsg( MSG *msg, HWND hwnd, DWORD first, DWORD last,
|
||||
BOOL remove )
|
||||
{
|
||||
/* FIXME: should deal with MSG32 instead of MSG16 */
|
||||
|
||||
DWORD status = SYSQ_MSG_ACCEPT;
|
||||
MESSAGEQUEUE *sysMsgQueue = QUEUE_GetSysQueue();
|
||||
enum { MOUSE_MSG = 0, KEYBOARD_MSG, HARDWARE_MSG } msgType;
|
||||
|
@ -789,7 +787,7 @@ UINT WINAPI GetDoubleClickTime(void)
|
|||
* Implementation of an inter-task SendMessage.
|
||||
* Return values:
|
||||
* 0 if error or timeout
|
||||
* 1 if successflul
|
||||
* 1 if successful
|
||||
*/
|
||||
static LRESULT MSG_SendMessageInterThread( HQUEUE16 hDestQueue,
|
||||
HWND hwnd, UINT msg,
|
||||
|
@ -2204,7 +2202,7 @@ static BOOL MSG_DoTranslateMessage( UINT message, HWND hwnd,
|
|||
/* FIXME : should handle ToUnicode yielding 2 */
|
||||
switch (ToUnicode(wParam, HIWORD(lParam), QueueKeyStateTable, wp, 2, 0))
|
||||
{
|
||||
case 1 :
|
||||
case 1:
|
||||
message = (message == WM_KEYDOWN) ? WM_CHAR : WM_SYSCHAR;
|
||||
/* Should dead chars handling go in ToAscii ? */
|
||||
if (dead_char)
|
||||
|
@ -2232,7 +2230,7 @@ static BOOL MSG_DoTranslateMessage( UINT message, HWND hwnd,
|
|||
PostMessageW( hwnd, message, wp[0], lParam );
|
||||
return TRUE;
|
||||
|
||||
case -1 :
|
||||
case -1:
|
||||
message = (message == WM_KEYDOWN) ? WM_DEADCHAR : WM_SYSDEADCHAR;
|
||||
dead_char = wp[0];
|
||||
TRACE_(key)("-1 -> PostMessage(%s)\n", SPY_GetMsgName(message));
|
||||
|
@ -2293,9 +2291,9 @@ LONG WINAPI DispatchMessage16( const MSG16* msg )
|
|||
{
|
||||
if (msg->lParam)
|
||||
{
|
||||
/* before calling window proc, verify it the timer is still valid,
|
||||
there's a slim chance the application kill the timer between
|
||||
getMessage and DisaptachMessage API calls */
|
||||
/* before calling window proc, verify whether timer is still valid;
|
||||
there's a slim chance that the application kills the timer
|
||||
between GetMessage and DispatchMessage API calls */
|
||||
if (!TIMER_IsTimerValid(msg->hwnd, (UINT) msg->wParam, (HWINDOWPROC) msg->lParam))
|
||||
return 0; /* invalid winproc */
|
||||
|
||||
|
@ -2377,9 +2375,9 @@ LONG WINAPI DispatchMessageA( const MSG* msg )
|
|||
{
|
||||
/* HOOK_CallHooks32A( WH_CALLWNDPROC, HC_ACTION, 0, FIXME ); */
|
||||
|
||||
/* before calling window proc, verify it the timer is still valid,
|
||||
there's a slim chance the application kill the timer between
|
||||
getMessage and DisaptachMessage API calls */
|
||||
/* before calling window proc, verify whether timer is still valid;
|
||||
there's a slim chance that the application kills the timer
|
||||
between GetMessage and DispatchMessage API calls */
|
||||
if (!TIMER_IsTimerValid(msg->hwnd, (UINT) msg->wParam, (HWINDOWPROC) msg->lParam))
|
||||
return 0; /* invalid winproc */
|
||||
|
||||
|
@ -2460,9 +2458,9 @@ LONG WINAPI DispatchMessageW( const MSG* msg )
|
|||
{
|
||||
/* HOOK_CallHooks32W( WH_CALLWNDPROC, HC_ACTION, 0, FIXME ); */
|
||||
|
||||
/* before calling window proc, verify it the timer is still valid,
|
||||
there's a slim chance the application kill the timer between
|
||||
getMessage and DisaptachMessage API calls */
|
||||
/* before calling window proc, verify whether timer is still valid;
|
||||
there's a slim chance that the application kills the timer
|
||||
between GetMessage and DispatchMessage API calls */
|
||||
if (!TIMER_IsTimerValid(msg->hwnd, (UINT) msg->wParam, (HWINDOWPROC) msg->lParam))
|
||||
return 0; /* invalid winproc */
|
||||
|
||||
|
@ -2598,8 +2596,10 @@ BOOL WINAPI SendNotifyMessageW(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
|
|||
/***********************************************************************
|
||||
* SendMessageCallbackA
|
||||
* FIXME: It's like PostMessage. The callback gets called when the message
|
||||
* is processed. We have to modify the message processing for a exact
|
||||
* is processed. We have to modify the message processing for an exact
|
||||
* implementation...
|
||||
* The callback is only called when the thread that called us calls one of
|
||||
* Get/Peek/WaitMessage.
|
||||
*/
|
||||
BOOL WINAPI SendMessageCallbackA(
|
||||
HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam,
|
||||
|
@ -2617,9 +2617,7 @@ BOOL WINAPI SendMessageCallbackA(
|
|||
}
|
||||
/***********************************************************************
|
||||
* SendMessageCallbackW
|
||||
* FIXME: It's like PostMessage. The callback gets called when the message
|
||||
* is processed. We have to modify the message processing for a exact
|
||||
* implementation...
|
||||
* FIXME: see SendMessageCallbackA.
|
||||
*/
|
||||
BOOL WINAPI SendMessageCallbackW(
|
||||
HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam,
|
||||
|
|
Loading…
Reference in New Issue