Brass Plugins: Mime Developers Guide
You understand how plugin creation works, and now
you want to help others get even more out of Mime. Great!
Adding Gesture Support to 3rd
Party Applications
There are millions of applications out there, way too many for
the 32Bits team to add gesture support to themselves. Maybe you
have a favourite application that we haven't got round to integrating
yet, or the developer of the app refuses to respond to your request
to add gesture support. Either way, if you have the development
skills, adding gesture support to other people's applications is
easy.
The Principle
Adding support to other people's applications is exactly the same
as adding gestures to your own application, except you don't have
the source code. You still create a plugin DLL and a descriptor
file, but you can't add extra handlers to the message processor.
Instead we have to be a bit sneaky. We use the same techniques
macro applications use.
It is very rare to find a good application that hasn't been developed
with at least one of the following:
- Automation
- Key Accelerators
- DDE
- COM objects
- Plugin Interfaces
What you need to do is to code the action function in the plugin
DLL carefully, so that it uses one of the features listed above.
Unfortunately there's no easy way to explain how to do this or
to give a step by step tutorial because of the sheer number of different
applications and ways of doing things.
One good example to start with would be a Winamp gesture plugin.
WinAmp
provides an SDK and tutorial for coding plugins. What you can
do with a little work is create a Mime plugin DLL that uses the
WinAmp plugin features to control it.
You create a Mime DLL as normal, and create a function called (for
example) StopTrack. In this function you use the code provided in
the WinAmp SDK to instruct WinAmp to stop playing the current MP3.
You create the StopTrackCriteria function that specifies the WinAmp
window only, create the descriptor file and you're done!
It's a difficult principle to explain but we're here
to help. If you're supporting Mime by coding a plugin for someone
else's application and you run into trouble, contact
us on the forum and let us know. We'll work with you to get
it finished, because we really appreciate the support you're giving
Brass and Mime.
|