Externals problem - Windows Messages
Dar Scott
dsc at swcp.com
Thu Jul 3 09:36:00 EDT 2003
On Wednesday, July 2, 2003, at 02:57 AM, Joeri Paeleman wrote:
> For the purposes of my current project, the most important feature
> would be to simply double-click the icon and show my Revolution stack
> (which was previously hidden). When initializing the icon, I can
> specify some windows-messages to be sent to my mainStack. So I
> specified WM_LBUTTONDBLCLK, hoping that Revolution would recognize the
> message (as it should). Unfortionately, Revolution responds to this
> message after a single mouseUp (and executes the stacks mouseUp
> handler).
> For a moment I thought I could live with this (since I could show my
> stack after a single click). However, this method only appears to
> works in the IDE (or, as a standalone, when another stack is visible).
> So if I build a distribution, launch it, hide my main stack (and all
> others), and click the icon, nothing happens.
>
> Has anybody got any ideas on how to solve this?
It may be that Revolution does its own double-click processing and you
need to send a more primitive message.
I wonder if it is possible to create a new thread with the external
DLL. You could put a simple message loop in that. The problem would
be, then, getting info back to the main thread--see below.
>
> When I get this running, I would obviously like to add a context-menu
> to my icon. To implement that, it would be nice if there was a way to
> send messages from the external to the revolution-project. Is there a
> way to do this (eg using custom Windows-Messages to directly call a
> Revolution custom-handler)?
I think there is a way to do a Revolution "send". However, it might
intended to be called from within an external call and there might be
problems if this is called from a separate thread. (If this has thread
protection, it would be good if that was documented.) If you set up a
separate thread then you might need to do your usual multithreading
shared-data protection and pass it to an external call that is assigned
to run on idle. Have the one on idle actually "send" the message.
I haven't built an external this year and my memory is fuzzy here.
Alternately... If you know you will have tcp/ip on the computer, you
could run your taskbar helper as a separate program and it could send a
simple datagram message. Well, it doesn't have to be separate, but it
may be.
I think Ken Ray has a taskbar utility that might help, too.
Dar Scott
More information about the use-livecode
mailing list