* Fox test code - dir1,dir2 exist set library to C:\temp\filecopier\Debug\filecopier.fll FileCopyX('c:\dir1\*.*','c:\dir2') *C++ source file #include < windows.h > #include < stdio.h > #include < pro_ext.h > char FAR *NullTerminate(Value FAR *cVal) { char *RetVal; if (!_SetHandSize(cVal->ev_handle, cVal->ev_length + 1)) { _Error(182); // "Insufficient memory" } ((char FAR *) _HandToPtr(cVal->ev_handle))[cVal->ev_length] = '\0'; RetVal = (char FAR *) _HandToPtr(cVal->ev_handle); return RetVal; } void FAR FileOp(ParamBlk FAR *parm) { SHFILEOPSTRUCT ShCopyInfo; ZeroMemory(&ShCopyInfo, sizeof (SHFILEOPSTRUCT)); char FAR *source = NullTerminate(&parm->p[0].val); char FAR *target = NullTerminate(&parm->p[1].val); ShCopyInfo.hwnd = GetActiveWindow(); ShCopyInfo.pFrom=source; ShCopyInfo.pTo=target; ShCopyInfo.wFunc=FO_COPY; ShCopyInfo.fFlags=FOF_NOCONFIRMATION + FOF_NOCONFIRMMKDIR; int success = SHFileOperation(&ShCopyInfo); _RetInt(success,10); } FoxInfo myFoxInfo[] = { {"FileCopyX", (FPFI) FileOp, 2, "CC"}, }; extern "C" { FoxTable _FoxTable = { (FoxTable *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo }; }This produces an explorer style copy (with animation and prog.bar)