Hello,
I took the challenge from Tomasz that anyone who is
willing to learn,
can extend AFL to do anything. My chosen task is
to restore the
scroll position of the Parameters Window after a
"Reset all" button
click --and yes, it has an important
use.
Tomasz informed me that I would need to write a DLL to make
this
possible. There may be other ways, but I will try it this
way.
First I have to say that I do not know C++ (other than AFL
has a
similar syntax). Next I am not very familiar with anything
Windows (I
am a Mac guy). So if I can do this (with a little help
from my AB
friends) Tomasz will be vindicated in his
statements.
I determined that all I need is to make an extremely
simple DLL. It
will create the following new AFL
function:
oldScrollPosition =
GetSetWindowScroll(newScrollPosition);
It will simply
return the current scroll position of the active
foreground window
and then set the scroll position to the supplied
parameter. It
should only be about 10 lines of C++ code.
I have found the
Windows calls that will get the handle of the
foreground window, and
(with a pointer from Tomasz) calls to get and
set the scroll thumb
position on a standard window.
Everything else I need to do I can
handle with AutoIt or AFL.
I have installed the free ADK and
installed the free Visual C++ 2008
Express program, and started to
try to write this.
Initially I tried just Building the Sample DLL
in the ADK. That
mostly works, but gives me errors on the
Plugin.cpp:
error C2491: on 5 critical lines for : Definition of
dllimport
function not allowed
these are the PLUGINAPI statements
for Release, Init,
GetFunnctionTable, SetSiteInterface, and
GetPluginInfo.
Somehow, I think I really need these lines to
compile for any AB DLL
to work...
I have tried a bunch of
things, and I can make it give me more errors,
but unfortunately no
less errors. So I think I need some hints or
more help to get
started.
I was wondering if anyone has an answer, or a simple DLL
sample
project file that builds error free on Visual C++ 2008
Express that
you could email me to get me started on the right track
with
this?
Thanks,
Dennis