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