Module: VRDdeRequestServer
- Includes:
- VRDdeServer
- Defined in:
- lib/vr/vrdde.rb
Overview
by yukimi_sake
Constant Summary collapse
- EXECUTEMETHOD =
"dderequest"
- GMEM_DDESHARE =
0x2000
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
- #dderequestserverinit ⇒ Object
- #self__dderequestinternal(shwnd, lparam) ⇒ Object
- #self_dderequest(item, shwnd, app, topic) ⇒ Object
- #sendDDEData(shwnd, lp, data) ⇒ Object
- #vrinit ⇒ Object
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
Methods included from VRMessageHandler
#acceptEvents, #addHandler, #addNoRelayMessages, #controlmsg_dispatching, #deleteHandler, #msghandlerinit, #selfmsg_dispatching
Instance Method Details
#dderequestserverinit ⇒ Object
234 235 236 237 |
# File 'lib/vr/vrdde.rb', line 234 def dderequestserverinit addEvent WM_DDE_REQUEST addHandler WM_DDE_REQUEST,"_dderequestinternal",MSGTYPE::ARGINTINT,nil end |
#self__dderequestinternal(shwnd, lparam) ⇒ Object
244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 |
# File 'lib/vr/vrdde.rb', line 244 def self__dderequestinternal(shwnd,lparam) cl=@_vr_clients[shwnd] raise "unknown dde client (not initiated)" unless cl cformat,aitem = unpackDDElParam(WM_DDE_REQUEST,lparam) raise "not supported this format" unless cformat == 1 item = GAtom::GetName(aitem) ret=nil ret=selfmsg_dispatching(EXECUTEMETHOD,item,*cl) if ret.is_a?(DDEAckFlags) then freeDDElParam(WM_DDE_REQEST,lparam) sendDDEAck shwnd,aitem,(ret.retcode || 0),ret.ack,ret.busy else sendDDEData shwnd,lparam,ret end end |
#self_dderequest(item, shwnd, app, topic) ⇒ Object
259 |
# File 'lib/vr/vrdde.rb', line 259 def self_dderequest(item,shwnd,app,topic) end |
#sendDDEData(shwnd, lp, data) ⇒ Object
226 227 228 229 230 231 232 |
# File 'lib/vr/vrdde.rb', line 226 def sendDDEData(shwnd,lp,data) raise "Data must be a String" unless data.is_a? String dDEDATA=[0xb000,ClipboardFormat::CF_TEXT,data+"\0"].pack("Ssa*") hData=GMEM::AllocStr(GMEM_DDESHARE,dDEDATA) lParam=reuseDDElParam lp,WM_DDE_REQUEST,WM_DDE_DATA,hData,HIWORD(lp) SMSG::PostMessage.call shwnd, WM_DDE_DATA, self.hWnd, lParam end |
#vrinit ⇒ Object
239 240 241 242 |
# File 'lib/vr/vrdde.rb', line 239 def vrinit super dderequestserverinit end |