115 lines
1.9 KiB
Plaintext
115 lines
1.9 KiB
Plaintext
#
|
|
# 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
|