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