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