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

Reply via email to