JavaScript Editor js editor     Web development 

Main Page

Unlocks a memory handle so that Visual FoxPro can access it during memory reorganization.

void _HUnLock(MHANDLE hand)
MHANDLE hand;            /* Memory handle. /


_HUnLock(В ) doesn't cause memory reorganization.

For more information on how to create an API library and integrate it with Visual FoxPro, see Accessing the Visual FoxPro API.


The following example uses _RetDateStr(В ) to return a Visual FoxPro date type, assuming that the character parameter is a proper date. It issues _HUnLock(В ) when memory handles no longer need to be locked, because the performance of Visual FoxPro can be adversely affected by locked memory handles.

Visual FoxPro Code

В Copy Code
? DATES("2/16/95")  && returns date {02/16/95}

C Code

В Copy Code
#include <pro_ext.h>

void FAR dates(ParamBlk FAR *parm)
   MHANDLE mh;
   char FAR *instring;

   if ((mh = _AllocHand(parm->p[0].val.ev_length + 1)) == 0) 
      _Error(182); // "Insufficient memory"
   instring = _HandToPtr(parm->p[0].val.ev_handle);
   instring[parm->p[0].val.ev_length] = '\0';

FoxInfo myFoxInfo[] = {
   {"DATES", (FPFI) dates, 1, "C"}
FoxTable _FoxTable = {
   (FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo

See Also

JavaScript Editor js editor     Web development