Article ID: 165887
Article Last Modified on 5/14/2004
if (PeekMessage (&msg, hwndServer,
WM_DDE_ACK, WM_DDE_ACK, PM_REMOVE))
{
// Must unpack lParam
UINT uiLow, uiHi;
UnpackDDElParam (WM_DDE_ACK, msg.lParam, &uiLow, &uiHi) ;
FreeDDElParam (WM_DDE_ACK, msg.lParam) ;
//wStatus = LOWORD (msg.lParam) ;
wStatus = uiLow ;
DdeAck = *((DDEACK *) &wStatus) ;
//aItem = HIWORD (msg.lParam) ;
aItem = (ATOM)uiHi ;
GlobalDeleteAtom (aItem) ;
break ;
}
You will also need to substitute the following corrected code for the code
that begins at line 161 of SHOWPOP1.C:
if (PeekMessage (&msg, hwnd,
WM_DDE_ACK, WM_DDE_ACK, PM_REMOVE))
{
// Must unpack lParam
UINT uiLow, uiHi;
UnpackDDElParam (WM_DDE_ACK, msg.lParam, &uiLow, &uiHi) ;
FreeDDElParam (WM_DDE_ACK, msg.lParam) ;
//GlobalDeleteAtom (HIWORD (msg.lParam)) ;
GlobalDeleteAtom ((ATOM)uiHi) ;
//wStatus = LOWORD (msg.lParam) ;
wStatus = uiLow ;
DdeAck = *((DDEACK *) &wStatus) ;
if (DdeAck.fAck == FALSE) {
GlobalFree (hDdeAdvise) ;
}
break ;
}
Keywords: kbprogramming kbdde kbprb KB165887