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]