Module: VRDdeExecuteServer

Includes:
VRDdeServer
Defined in:
lib/vr/vrdde.rb

Constant Summary collapse

EXECUTEMETHOD =
"ddeexecute"

Constants included from DDElParam

DDElParam::FreeDDElParam, DDElParam::PackDDElParam, DDElParam::ReuseDDElParam, DDElParam::UnpackDDElParam

Constants included from VRDdeConversation

VRDdeConversation::WM_DDE_ACK, VRDdeConversation::WM_DDE_ADVISE, VRDdeConversation::WM_DDE_DATA, VRDdeConversation::WM_DDE_EXECUTE, VRDdeConversation::WM_DDE_INITIATE, VRDdeConversation::WM_DDE_POKE, VRDdeConversation::WM_DDE_REQUEST, VRDdeConversation::WM_DDE_TERMINATE, VRDdeConversation::WM_DDE_UNADVISE

Constants included from VRMessageHandler

VRMessageHandler::PREHANDLERSTR

Instance Method Summary collapse

Methods included from VRDdeServer

#addDDEAppTopic, #ddeserverinit, #delDDEAppTopic, #self__ddeInitiate, #self__ddeTerminate, #self_ddeinitiate, #self_ddeterminate

Methods included from DDElParam

#freeDDElParam, #packDDElParam, #reuseDDElParam, #unpackDDElParam

Methods included from VRDdeConversation

#sendDDEAck

Methods included from VRMessageHandler

#acceptEvents, #addHandler, #addNoRelayMessages, #controlmsg_dispatching, #deleteHandler, #msghandlerinit, #selfmsg_dispatching

Instance Method Details

#ddeexecuteserverinitObject



181
182
183
184
# File 'lib/vr/vrdde.rb', line 181

def ddeexecuteserverinit
  addEvent WM_DDE_EXECUTE
  addHandler WM_DDE_EXECUTE,"_ddeexecuteinternal",MSGTYPE::ARGINTINT,nil
end

#self__ddeexecuteinternal(shwnd, hcmd) ⇒ Object



190
191
192
193
194
195
196
197
198
199
200
201
202
# File 'lib/vr/vrdde.rb', line 190

def self__ddeexecuteinternal(shwnd,hcmd)
  cl=@_vr_clients[shwnd]
  raise "unknown dde client (not initiated)" unless cl
  cmd=GMEM::Get(hcmd).unpack("A*")[0]
  ret=nil
  ret=selfmsg_dispatching(EXECUTEMETHOD,cmd,*cl)
  freeDDElParam(WM_DDE_EXECUTE,hcmd) #by yukimi_sake
  if ret.is_a?(DDEAckFlags) then
    sendDDEAck shwnd,hcmd,(ret.retcode || 0),ret.ack,ret.busy
  else
    sendDDEAck shwnd,hcmd
  end
end

#vrinitObject



185
186
187
188
# File 'lib/vr/vrdde.rb', line 185

def vrinit
  super
  ddeexecuteserverinit
end