Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
a341a967
Commit
a341a967
authored
Jul 15, 2000
by
Mike McCormack
Committed by
Alexandre Julliard
Jul 15, 2000
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Hook serialui dll into existing comm functions.
parent
dc2461e8
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
232 additions
and
9 deletions
+232
-9
kernel32.spec
dlls/kernel/kernel32.spec
+6
-6
comm.c
misc/comm.c
+226
-3
No files found.
dlls/kernel/kernel32.spec
View file @
a341a967
...
...
@@ -156,8 +156,8 @@ import ntdll.dll
137 stdcall CloseHandle(long) CloseHandle
138 stdcall CloseProfileUserMapping() CloseProfileUserMapping
139 stub CloseSystemHandle
140 st
ub
CommConfigDialogA
141 st
ub
CommConfigDialogW
140 st
dcall CommConfigDialogA(str long ptr)
CommConfigDialogA
141 st
dcall CommConfigDialogW(wstr long ptr)
CommConfigDialogW
142 stdcall CompareFileTime(ptr ptr) CompareFileTime
143 stdcall CompareStringA(long long str long str long) CompareStringA
144 stdcall CompareStringW(long long wstr long wstr long) CompareStringW
...
...
@@ -299,7 +299,7 @@ import ntdll.dll
280 stdcall GetBinaryTypeA(ptr ptr) GetBinaryTypeA
281 stdcall GetBinaryTypeW(ptr ptr) GetBinaryTypeW
282 stdcall GetCPInfo(long ptr) GetCPInfo
283 st
ub
GetCommConfig
283 st
dcall GetCommConfig(long ptr)
GetCommConfig
284 stdcall GetCommMask(long ptr) GetCommMask
285 stdcall GetCommModemStatus(long ptr) GetCommModemStatus
286 stdcall GetCommProperties(long ptr) GetCommProperties
...
...
@@ -633,7 +633,7 @@ import ntdll.dll
614 stdcall SearchPathA(str str str long ptr ptr) SearchPathA
615 stdcall SearchPathW(wstr wstr wstr long ptr ptr) SearchPathW
616 stdcall SetCommBreak(long) SetCommBreak
617 st
ub
SetCommConfig
617 st
dcall SetCommConfig(long ptr)
SetCommConfig
618 stdcall SetCommMask(long ptr) SetCommMask
619 stdcall SetCommState(long ptr) SetCommState
620 stdcall SetCommTimeouts(long ptr) SetCommTimeouts
...
...
@@ -654,8 +654,8 @@ import ntdll.dll
635 stdcall SetCurrentDirectoryA(str) SetCurrentDirectoryA
636 stdcall SetCurrentDirectoryW(wstr) SetCurrentDirectoryW
637 stub SetDaylightFlag
638 st
ub
SetDefaultCommConfigA
639 st
ub
SetDefaultCommConfigW
638 st
dcall SetDefaultCommConfigA(str ptr long)
SetDefaultCommConfigA
639 st
dcall SetDefaultCommConfigW(wstr ptr long)
SetDefaultCommConfigW
640 stdcall SetEndOfFile(long) SetEndOfFile
641 stdcall SetEnvironmentVariableA(str str) SetEnvironmentVariableA
642 stdcall SetEnvironmentVariableW(wstr wstr) SetEnvironmentVariableW
...
...
misc/comm.c
View file @
a341a967
...
...
@@ -2581,15 +2581,238 @@ BOOL WINAPI WaitCommEvent(HANDLE hFile,LPDWORD eventmask ,LPOVERLAPPED overlappe
}
/***********************************************************************
* GetCommProperties (KERNEL32.???)
* GetCommProperties (KERNEL32.286)
*
* This function fills in a structure with the capabilities of the
* communications port driver.
*
* RETURNS
*
* TRUE on success, FALSE on failure
* If successful, the lpCommProp structure be filled in with
* properties of the comm port.
*/
BOOL
WINAPI
GetCommProperties
(
HANDLE
hFile
,
LPCOMMPROP
lpCommProp
)
{
BOOL
WINAPI
GetCommProperties
(
HANDLE
hFile
,
/* handle of the comm port */
LPCOMMPROP
lpCommProp
/* pointer to struct to be filled */
)
{
FIXME
(
"(%d %p )
\n
"
,
hFile
,
lpCommProp
);
if
(
!
lpCommProp
)
return
FALSE
;
/*
* These values should be valid for LINUX's serial driver
* FIXME: Perhaps they deserve an #ifdef LINUX
*/
memset
(
lpCommProp
,
0
,
sizeof
(
COMMPROP
));
lpCommProp
->
wPacketLength
=
1
;
lpCommProp
->
wPacketVersion
=
1
;
lpCommProp
->
dwServiceMask
=
SP_SERIALCOMM
;
lpCommProp
->
dwReserved1
=
0
;
lpCommProp
->
dwMaxTxQueue
=
4096
;
lpCommProp
->
dwMaxRxQueue
=
4096
;
lpCommProp
->
dwMaxBaud
=
BAUD_115200
;
lpCommProp
->
dwProvSubType
=
PST_RS232
;
lpCommProp
->
dwProvCapabilities
=
PCF_DTRDSR
|
PCF_PARITY_CHECK
|
PCF_RTSCTS
;
lpCommProp
->
dwSettableParams
=
SP_BAUD
|
SP_DATABITS
|
SP_HANDSHAKING
|
SP_PARITY
|
SP_PARITY_CHECK
|
SP_STOPBITS
;
lpCommProp
->
dwSettableBaud
=
BAUD_075
|
BAUD_110
|
BAUD_134_5
|
BAUD_150
|
BAUD_300
|
BAUD_600
|
BAUD_1200
|
BAUD_1800
|
BAUD_2400
|
BAUD_4800
|
BAUD_9600
|
BAUD_19200
|
BAUD_38400
|
BAUD_57600
|
BAUD_115200
;
lpCommProp
->
wSettableData
=
DATABITS_5
|
DATABITS_6
|
DATABITS_7
|
DATABITS_8
;
lpCommProp
->
wSettableStopParity
=
STOPBITS_10
|
STOPBITS_15
|
STOPBITS_20
|
PARITY_NONE
|
PARITY_ODD
|
PARITY_EVEN
|
PARITY_MARK
|
PARITY_SPACE
;
lpCommProp
->
dwCurrentTxQueue
=
lpCommProp
->
dwMaxTxQueue
;
lpCommProp
->
dwCurrentRxQueue
=
lpCommProp
->
dwMaxRxQueue
;
return
TRUE
;
}
/***********************************************************************
* FIXME:
* The functionality of CommConfigDialogA, GetDefaultCommConfig and
* SetDefaultCommConfig is implemented in a DLL (usually SERIALUI.DLL).
* This is dependent on the type of COMM port, but since it is doubtful
* anybody will get around to implementing support for fancy serial
* ports in WINE, this is hardcoded for the time being. The name of
* this DLL should be stored in and read from the system registry in
* the hive HKEY_LOCAL_MACHINE, key
* System\\CurrentControlSet\\Services\\Class\\Ports\\????
* where ???? is the port number... that is determined by PNP
* The DLL should be loaded when the COMM port is opened, and closed
* when the COMM port is closed. - MJM 20 June 2000
***********************************************************************/
static
CHAR
lpszSerialUI
[]
=
"serialui.dll"
;
/***********************************************************************
* CommConfigDialogA (KERNEL32.140)
*
* Raises a dialog that allows the user to configure a comm port.
* Fills the COMMCONFIG struct with information specified by the user.
* This function should call a similar routine in the COMM driver...
*
* RETURNS
*
* TRUE on success, FALSE on failure
* If successful, the lpCommConfig structure will contain a new
* configuration for the comm port, as specified by the user.
*
* BUGS
* The library with the CommConfigDialog code is never unloaded.
* Perhaps this should be done when the comm port is closed?
*/
BOOL
WINAPI
CommConfigDialogA
(
LPCSTR
lpszDevice
,
/* name of communications device */
HANDLE
hWnd
,
/* parent window for the dialog */
LPCOMMCONFIG
lpCommConfig
/* pointer to struct to fill */
)
{
FARPROC
lpfnCommDialog
;
HMODULE
hConfigModule
;
BOOL
r
;
TRACE
(
"(%p %x %p)
\n
"
,
lpszDevice
,
hWnd
,
lpCommConfig
);
hConfigModule
=
LoadLibraryA
(
lpszSerialUI
);
if
(
!
hConfigModule
)
return
FALSE
;
lpfnCommDialog
=
GetProcAddress
(
hConfigModule
,
(
LPCSTR
)
3L
);
if
(
!
lpfnCommDialog
)
return
FALSE
;
r
=
lpfnCommDialog
(
lpszDevice
,
hWnd
,
lpCommConfig
);
/* UnloadLibrary(hConfigModule); */
return
r
;
}
/***********************************************************************
* CommConfigDialogW (KERNEL32.141)
*
* see CommConfigDialogA for more info
*/
BOOL
WINAPI
CommConfigDialogW
(
LPCWSTR
lpszDevice
,
/* name of communications device */
HANDLE
hWnd
,
/* parent window for the dialog */
LPCOMMCONFIG
lpCommConfig
/* pointer to struct to fill */
)
{
BOOL
r
;
LPSTR
lpDeviceA
;
lpDeviceA
=
HEAP_strdupWtoA
(
GetProcessHeap
(),
0
,
lpszDevice
);
if
(
lpDeviceA
)
return
FALSE
;
r
=
CommConfigDialogA
(
lpDeviceA
,
hWnd
,
lpCommConfig
);
HeapFree
(
GetProcessHeap
(),
0
,
lpDeviceA
);
return
r
;
}
/***********************************************************************
* GetCommConfig (KERNEL32.283)
*
* Fill in the COMMCONFIG structure for the comm port hFile
*
* RETURNS
*
* TRUE on success, FALSE on failure
* If successful, lpCommConfig contains the comm port configuration.
*/
BOOL
WINAPI
GetCommConfig
(
HFILE
hFile
,
LPCOMMCONFIG
lpCommConfig
)
{
BOOL
r
;
TRACE
(
"(%x %p)
\n
"
,
hFile
,
lpCommConfig
);
if
(
lpCommConfig
==
NULL
)
return
FALSE
;
lpCommConfig
->
dwSize
=
sizeof
(
COMMCONFIG
);
lpCommConfig
->
wVersion
=
1
;
lpCommConfig
->
wReserved
=
0
;
r
=
GetCommState
(
hFile
,
&
lpCommConfig
->
dcb
);
lpCommConfig
->
dwProviderSubType
=
PST_RS232
;
lpCommConfig
->
dwProviderOffset
=
0
;
lpCommConfig
->
dwProviderSize
=
0
;
return
r
;
}
/***********************************************************************
* SetCommConfig (KERNEL32.617)
*
*/
BOOL
WINAPI
SetCommConfig
(
HFILE
hFile
,
LPCOMMCONFIG
lpCommConfig
)
{
BOOL
r
;
TRACE
(
"(%x %p)
\n
"
,
hFile
,
lpCommConfig
);
r
=
SetCommState
(
hFile
,
&
lpCommConfig
->
dcb
);
return
r
;
}
/***********************************************************************
* GetCommProperties (KERNEL32.286)
*/
BOOL
WINAPI
SetDefaultCommConfigA
(
LPCSTR
lpszDevice
,
LPCOMMCONFIG
lpCommConfig
,
DWORD
dwSize
)
{
FARPROC
lpfnSetDefaultCommConfig
;
HMODULE
hConfigModule
;
BOOL
r
;
TRACE
(
"(%p %p %lx)
\n
"
,
lpszDevice
,
lpCommConfig
,
dwSize
);
hConfigModule
=
LoadLibraryA
(
lpszSerialUI
);
if
(
!
hConfigModule
)
return
FALSE
;
lpfnSetDefaultCommConfig
=
GetProcAddress
(
hConfigModule
,
(
LPCSTR
)
4L
);
if
(
!
lpfnSetDefaultCommConfig
)
return
TRUE
;
r
=
lpfnSetDefaultCommConfig
(
lpszDevice
,
lpCommConfig
,
dwSize
);
/* UnloadLibrary(hConfigModule); */
return
r
;
}
/***********************************************************************
* SetDefaultCommConfigW (KERNEL32.639)
*
*/
BOOL
WINAPI
SetDefaultCommConfigW
(
LPCWSTR
lpszDevice
,
LPCOMMCONFIG
lpCommConfig
,
DWORD
dwSize
)
{
BOOL
r
;
LPSTR
lpDeviceA
;
TRACE
(
"(%s %p %lx)
\n
"
,
debugstr_w
(
lpszDevice
),
lpCommConfig
,
dwSize
);
lpDeviceA
=
HEAP_strdupWtoA
(
GetProcessHeap
(),
0
,
lpszDevice
);
if
(
lpDeviceA
)
return
FALSE
;
r
=
SetDefaultCommConfigA
(
lpDeviceA
,
lpCommConfig
,
dwSize
);
HeapFree
(
GetProcessHeap
(),
0
,
lpDeviceA
);
return
r
;
}
/***********************************************************************
* GetDefaultCommConfigA (KERNEL32.313)
*/
BOOL
WINAPI
GetDefaultCommConfigA
(
LPCSTR
lpszName
,
LPCOMMCONFIG
lpCC
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment