AnsweredAssumed Answered

vrf Callable VEE

Question asked by VRFuser on Aug 27, 2002
Latest reply on Feb 9, 2006 by WDrago
> Yes, I meant that VEE 6
> provides an ActiveX server
> which works very nicely

Excellent! It's good to know that RPC wasn't forgotten amid the ActiveX
flurry.

> Some great tools coming
> out of the Fessenden
> stables of present

Stay tuned...

> As for call-backs - I think
> this would be the same as
> object with Events - you set
> the events to trigger a VEE UF

Very similar in fact. The effect is almost exactly the same, except that a
"callback" is a specific type of Windows call.  The idea is that you give
Windows a pointer to a function that handles a repetitive call from Windows,
each containing information about an item in internal Windows data
structures.

Examples include: windows on the screen, child windows of specified windows,
clipboard formats, code pages, "desktops", device drivers, services, fonts,
system objects, bla, bla, bla. The list is pretty long.

Together with the message passing mechanism, these two concepts are pretty
much the basis of Windows. I'm not that deep into 'NIX & X clients so I
can't really say if the same ideas apply to those systems.

Anyway, as a specific example, EnumWindows is a perfect
candidate. All of the VEE window enumerators that have been bandied about
are actually obtaining this information the wrong way! We're all calling
FindWindow and then FindWindowEx or GetWindow from there. The really really
way to enumerate windows is to call EnumWindows.

The prototype is:

BOOL EnumWindows(WNDENUMPROC pfnEnumFunc, LPARAM lParam);

Meaning return bool (a VEE int), take a pointer to an enumeration function
(for all practical purposes a long) and a user-defined long value. The
enumeration function is prototyped like this:

BOOL CALLBACK EnumWindowsProc(HWND hWnd, LPARAM lParam);

Together, this means that you call EnumWindows with the address of your
EnumWindowsProc and a user defined value (which is usually a pointer to a
block of memory to store window handles) and for each top-level window on
the screen Windows calls your EnumWindowsProc with it's window handle and
the lParam value you called EnumWindows with.

There's also a function called SubclassWindow that allows you to replace the
function that processes window messages. Now, if we had an easy way to do
this then there's almost no limit to what VEE could do -- WITHOUT writing a
dll. That's been my focus for almost a year now. Extend VEE so that it can
handle special situations for which you would normally have to write a dll.
Find easier ways to integrate VEE with Windows.

I still think the VeeGateway is a great idea - this is almost better. I'm
definitely going to do this one and maybe even resurrect the Gateway.
Windows programming in VEE will be a LOT easier with the both of them.
-SHAWN-


---
You are currently subscribed to vrf as: rsb@soco.agilent.com
To unsubscribe send a blank email to "leave-vrf@it.lists.it.agilent.com".
To send messages to this mailing list,  email "vrf@it.lists.it.agilent.com". 
If you need help with the mailing list send a message to "owner-vrf@it.lists.it.agilent.com".

Outcomes