I haven't followed this thread carefully, but are you trying to use a
class method for an event function?  As far as I know, you can't do
that in VBScript or Javascript because you can't make anything but a
top-level function into an event watcher.  I assume this problem also
manifests in other languages as a requirement that any event appear in
the top-level namespace, but I haven't proven this.

On Sat, Apr 02, 2011 at 02:01:03PM -0400, RicksPlace wrote:
   Hi Again from the External Front:
   To better match the GW sample I moved all logic into the Root Module to
   avoid any possible conflict of process implementation due to putting
   the logic into the Class that defines the Message Pump context.
   Now the Run command executes an empty class with only a New Constructor
   sub that does nothing but create a dummy message pump.
   All logic and variables are defined in the Root Module and globals are
   defined at the Module level as they were in the GW Example of a VB.net
   script.
   Again, the BlockEvent and the OnShutdown events work perfectly but the
   WatchEvent is still not working even though it seems to be using the
   correct process as described below.
   This is leading me to think that there might be a problem with the
   Windoweyes implementation of the WatchEvent itself but I'm not a COM
   Guru so am not 100 percent sure.
   The Process held in the ClientInformation object appears to be correct
   which is the process of the Overlap Window which should, and is, the
   CSharp Application Window.
   Therefore, when I filter the MSAAEventSource used with the WatchEvent
   the process should be correct and thus the WatchEvent should be firing
   unless I am missing something.
   Again, it works as expected with the BlockEvent indicating something
   might be wrong with the WatchEvent itself or my implementation of it.
   At this point I think I need Aaron or someone from GW, or an
   experienced Windoweyes External scriptor, to take a look at things to
   determine if there is a problem with the Windoweyes implementation of
   this feature or if I am still doing something wrong.



   Below are some lists of objects and properties indicating that the
   process I use is correct which means that everything should be working
   if I have not made some subtle, or stupid,  mistake I can't find.



   BeginCopiedOutput:
   Enter Main Sub
   ClientInformation Initialized OK
   MyMSAAEventSource Initialized and Filtered OK
   BlockFocusEvent Initialized OK.
   MyMSAAEventSource.WatchEvent sub executed with no errors.



   BeginList: Overlap Object to Main Module
   ClassName: wndclass_desked_gsk
   Handle: 853216
   ModuleName: MSENV
   Name: Microsoft Visual C# 2008 Expres
   OriginalClassName: wndclass_desked_gsk
   OriginalType: 7
   Process.ProcessID: 680
   Style: System.__ComObject
   Title: Start Page - Microsoft Visual C# 2008 Express Edition
   Type: 7
   EndList: Overlap Object to Main Module
   Note: The above is the CSharp overlap information.
   Notice that the process id is 680.



   BeginList: ClientInformation.ApplicationProcess
   ProcessID: 680
   ModuleName: vcsexpress
   ExecutablePath: C:\Program Files\Microsoft Visual Studio
   9.0\Common7\IDE\vcsexpress.exe
   InternalName: VCSExpress.exe
   OriginalFilename: VCSExpress.exe
   ProductName: Microsoft? Visual Studio? 2008
   ProductVersion: 9.0.30729.1
   EndList: ClientInformation.ApplicationProcess
   Notice that the process id matches the overlap process id of 680.
   That means that when I assign the Process id of 680 to the BlockEvent
   via the MyClientInformation Process and,
   the WatchEvent via the MyMSAAEventSource using the MyClientInformation
   process,
   that they both should be applied to watch the same process ie... the
   CSharp Application process.
   The BlockEvent works as expected but the WatchEvent is not working.



   RunPump  Statement is next
   The New Context Pump is initialized.
   Shutting Down Now
   Notice that the words "Shutting Down Now" are in the OnShutdown sub
   fired when that event occurs as triggered in the MyClientInformation
   process further indicating something is diferent with the WatchEvent
   method.
   EndCopiedOutput:
   Thanks for all your help.
   This puppy just doesn't seem to hunt and I can't figure out why.
   Rick USA

-- 
Doug Lee, Senior Accessibility Programmer
SSB BART Group - Accessibility-on-Demand
mailto:doug....@ssbbartgroup.com  http://www.ssbbartgroup.com
"While they were saying among themselves it cannot be done,
it was done." --Helen Keller

Reply via email to