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