# # dde callback. # # %1 = type # %2 = hconv # %3 = hstr1 # %4 = hstr2 # %5 = hdata # if %1 == XTYP_CONNECT dderet 1 elseif %1 == XTYP_CONNECT_CONFIRM dderet 1 elseif %1 == XTYP_DISCONNECT # this won't work with synchronous operations! # exitfilesonly # if lastrc == ERR_EXIT_ABORTED # dderet 0 # else # dderet 1 # exit # endif exit elseif %1 == XTYP_REQUEST dderet 0 ddequerystring %a %4 nextword %a %b # echo 1 %b if "%b" == "GetFiles" assign %s = /%D%P%N%E/ assign %d = %s set quiet assign %t = // loop if %M == 1 assign %t = /%t%d / endif next assign %d = /%D%P%N%E/ quif "%d" == "%s" endloop set noquiet ddecreatedatahandle %a %(4) "%t" dderet %a elseif "%b" == "MapFileName" nextword %a %b nextword %a %c assign %f = %F e %b w! %c e %f elseif "%b" == "Locate" takefocus nextword %a %b if %b > 0 nextword %a %c if %c > 0 # may have no length (%d=0), but this is still ok nextword %a %d locate %b %c %d else locate %b 1 endif endif updatewindows elseif "%b" == "EditFile" takefocus nextword %a %b e "%b" # // no longer supported - use Locate to set cursor pos/selection # nextword %a %b # if %b > 0 # nextword %a %c # if %c > 0 # # may have no length (%d=0), but this is still ok # nextword %a %d # locate %b %c %d # else # locate %b 1 # endif # endif updatewindows # elseif "%b" == "TakeFocus" # echo 1 %F # takefocus elseif "%b" == "Minimize" minimize elseif "%b" == "Restore" restore elseif "%b" == "PromptForSave" PromptForSave elseif "%b" == "PromptThisFileForSave" nextword %a %b PromptThisFileForSave %b elseif "%b" == "Exit" exitfilesonly if lastrc == ERR_EXIT_ABORTED dderet 0 else dderet 1 exit endif endif elseif %1 == XTYP_POKE dderet DDE_FNOTPROCESSED else dderet DDE_FNOTPROCESSED endif