Handling the DM_RENDER Message
PDRAGITEM pDItem; /* DRAGITEM pointer */
PDRAGINFO pDInfo; /* DRAGINFO pointer */
PDRAGTRANSFER pDXfer; /* DRAGTRANSFER pointer */
PCONTRECORD pCRec; /* Container record ptr */
PCUSTOMER pCust, /* Customer record ptrs */
pXferData;
CHAR xfermem[100]; /* Memory name buffer */
HWND hContainer; /* Container handle */
:
:
case DM_RENDER:
pDXfer = (PDRAGTRANSFER)mp1; /* Get DRAGTRANSFER ptr */
pDItem = pDxfer->pditem; /* Get DRAGITEM ptr */
pCRec = pditem->ulItemID; /* Get container rec ptr */
pCust = pCRec->cust; /* Get customer rec ptr */
DrgQueryStrName(pDXfer->hstrRenderToName, /* Get mem object name */
100, /* Size of buffer */
xfermem); /* Buffer */
DosGetNamedSharedMem((PPVOID)&pXferData, /* Get shared mem object */
xfermem, /* Name of mem object */
PAG_WRITE | /* Allow write access */
PAG_READ); /* Allow read access */
memcpy(pCust, /* Copy customer record */
pXferData, /* to shared mem object */
sizeof(CUSTOMER)); /* No. of bytes to copy */
DosFreeMem((PVOID)pCust); /* Free shared mem obj */
if (pDXfer->usOperation == DO_MOVE) /* If move operation */
{
hContainer = WinWindowFromID(hWnd, /* Get container window */
CONTAINER); /* handle */
RemoveCustomer(hContainer, /* Remove record from */
pCRec); /* container */
}
return((MRESULT)TRUE); /* Return TRUE */
break;
[Back: Handling the DM_DROP Message]
[Next: Menu Bar Resource Definition]