Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
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-winehq
Commits
5ef324ee
Commit
5ef324ee
authored
Nov 15, 2006
by
Dmitry Timoshkov
Committed by
Alexandre Julliard
Nov 16, 2006
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
user: Set DDE errors in some failing cases.
parent
4b292b0c
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
16 additions
and
4 deletions
+16
-4
dde_client.c
dlls/user/dde_client.c
+9
-2
dde_misc.c
dlls/user/dde_misc.c
+5
-2
dde_server.c
dlls/user/dde_server.c
+2
-0
No files found.
dlls/user/dde_client.c
View file @
5ef324ee
...
...
@@ -1166,7 +1166,7 @@ HDDEDATA WINAPI DdeClientTransaction(LPBYTE pData, DWORD cbData, HCONV hConv, HS
pXAct
=
WDML_ClientQueueRequest
(
pConv
,
wFmt
,
hszItem
);
break
;
default:
FIXME
(
"Unknown transation
\n
"
);
FIXME
(
"Unknown transaction type %04x
\n
"
,
wType
);
/* unknown transaction type */
pConv
->
instance
->
lastError
=
DMLERR_INVALIDPARAMETER
;
goto
theError
;
...
...
@@ -1187,6 +1187,7 @@ HDDEDATA WINAPI DdeClientTransaction(LPBYTE pData, DWORD cbData, HCONV hConv, HS
pConv
->
wStatus
&=
~
ST_CONNECTED
;
WDML_UnQueueTransaction
(
pConv
,
pXAct
);
WDML_FreeTransaction
(
pConv
->
instance
,
pXAct
,
TRUE
);
pConv
->
instance
->
lastError
=
DMLERR_POSTMSG_FAILED
;
goto
theError
;
}
pXAct
->
dwTimeout
=
dwTimeout
;
...
...
@@ -1393,10 +1394,16 @@ BOOL WINAPI DdeDisconnect(HCONV hConv)
LeaveCriticalSection
(
&
WDML_CritSect
);
if
(
PostMessageW
(
pConv
->
hwndServer
,
pXAct
->
ddeMsg
,
(
WPARAM
)
pConv
->
hwndClient
,
pXAct
->
lParam
))
{
WDML_SyncWaitTransactionReply
(
hConv
,
10000
,
pXAct
,
NULL
);
ret
=
TRUE
;
}
for
(
i
=
0
;
i
<
count
;
i
++
)
EnterCriticalSection
(
&
WDML_CritSect
);
ret
=
TRUE
;
if
(
!
ret
)
pConv
->
instance
->
lastError
=
DMLERR_POSTMSG_FAILED
;
WDML_FreeTransaction
(
pConv
->
instance
,
pXAct
,
TRUE
);
/* still have to destroy data assosiated with conversation */
WDML_RemoveConv
(
pConv
,
WDML_CLIENT_SIDE
);
...
...
dlls/user/dde_misc.c
View file @
5ef324ee
...
...
@@ -1924,12 +1924,14 @@ WDML_CONV* WDML_GetConv(HCONV hConv, BOOL checkConnected)
if
(
checkConnected
&&
!
(
pConv
->
wStatus
&
ST_CONNECTED
))
{
FIXME
(
"found conv but ain't connected
\n
"
);
WARN
(
"found conv but ain't connected
\n
"
);
pConv
->
instance
->
lastError
=
DMLERR_NO_CONV_ESTABLISHED
;
return
NULL
;
}
if
(
!
pConv
->
instance
||
GetCurrentThreadId
()
!=
pConv
->
instance
->
threadID
)
{
FIXME
(
"wrong thread ID
\n
"
);
WARN
(
"wrong thread ID
\n
"
);
pConv
->
instance
->
lastError
=
DMLERR_INVALIDPARAMETER
;
/* FIXME: check */
return
NULL
;
}
...
...
@@ -1980,6 +1982,7 @@ BOOL WDML_PostAck(WDML_CONV* pConv, WDML_SIDE side, WORD appRetCode,
if
(
!
PostMessageW
(
to
,
WM_DDE_ACK
,
(
WPARAM
)
from
,
lParam
))
{
pConv
->
wStatus
&=
~
ST_CONNECTED
;
pConv
->
instance
->
lastError
=
DMLERR_POSTMSG_FAILED
;
FreeDDElParam
(
WM_DDE_ACK
,
lParam
);
return
FALSE
;
}
...
...
dlls/user/dde_server.c
View file @
5ef324ee
...
...
@@ -136,6 +136,7 @@ BOOL WINAPI DdePostAdvise(DWORD idInst, HSZ hszTopic, HSZ hszItem)
{
ERR
(
"post message failed
\n
"
);
pConv
->
wStatus
&=
~
ST_CONNECTED
;
pConv
->
instance
->
lastError
=
DMLERR_POSTMSG_FAILED
;
if
(
!
WDML_IsAppOwned
(
hDdeData
))
DdeFreeDataHandle
(
hDdeData
);
GlobalFree
(
hItemData
);
goto
theError
;
...
...
@@ -587,6 +588,7 @@ static WDML_QUEUE_STATE WDML_ServerHandleRequest(WDML_CONV* pConv, WDML_XACT* pX
ReuseDDElParam
(
pXAct
->
lParam
,
WM_DDE_REQUEST
,
WM_DDE_DATA
,
(
UINT_PTR
)
hMem
,
(
UINT_PTR
)
pXAct
->
atom
)))
{
pConv
->
instance
->
lastError
=
DMLERR_POSTMSG_FAILED
;
DdeFreeDataHandle
(
hDdeData
);
GlobalFree
(
hMem
);
fAck
=
FALSE
;
...
...
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