source: trunk/EventBenchConsole/rules/rules.xml @ 141

Last change on this file since 141 was 141, checked in by sherbold, 13 years ago

+ added "parentClass" as parameter for winInfoValue nodes for the MFC ruleset

File size: 21.3 KB
Line 
1<?xml version="1.0" encoding="utf-8"?>
2<!DOCTYPE rules SYSTEM "ruleDoctype.dtd">
3<rules xmlns="ul:rules" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="ul:rules ruleSchema.xsd">
4
5  <!-- rules regarding mouse clicks -->
6  <rule name="LeftClickButton">
7    <msg type="&WM_LBUTTONDOWN;">
8      <store var="clicked"/>
9    </msg>
10    <msg type="&WM_LBUTTONUP;">
11      <equals>
12        <constValue value="Button"/>
13        <winInfoValue obj="this" winParam="class"/>
14      </equals>
15      <equals>
16        <paramValue obj="clicked" param="window.hwnd"/>
17        <paramValue obj="this" param="window.hwnd"/>
18      </equals>
19    </msg>
20    <genMsg delay="100">
21      <type>
22        <constValue value="&BM_CLICK;"/>
23      </type>
24      <target>
25        <msgInfoValue obj="clicked" msgParam="target"/>
26      </target>
27    </genMsg>
28  </rule>
29
30  <rule name="LeftClickListBox">
31    <msg type="&WM_LBUTTONDOWN;">
32      <equals>
33        <winInfoValue obj="this" winParam="class"/>
34        <constValue value="ListBox"/>
35      </equals>
36      <store var="clicked"/>
37    </msg>
38    <msg type="&WM_LBUTTONUP;">
39      <equals>
40        <paramValue obj="this" param="window.hwnd"/>
41        <paramValue obj="clicked" param="window.hwnd"/>
42      </equals>
43      <store var="up"/>
44    </msg>
45    <genMsg delay="1000">
46      <type>
47        <constValue value="&LB_SETCURSEL;"/>
48      </type>
49      <target>
50        <msgInfoValue obj="clicked" msgParam="target"/>
51      </target>
52      <WPARAM>
53        <paramValue obj="up" param="scrollPos"/>
54      </WPARAM>
55    </genMsg>
56  </rule>
57
58  <rule name="TabChange">
59    <msg type="&WM_LBUTTONDOWN;">
60      <equals>
61        <constValue value="SysTabControl32"/>
62        <winInfoValue obj="this" winParam="class"/>
63      </equals>
64      <store var="clicked"/>
65    </msg>
66    <msg type="&WM_LBUTTONUP;">
67      <equals>
68        <paramValue obj="this" param="window.hwnd"/>
69        <paramValue obj="clicked" param="window.hwnd"/>
70      </equals>
71      <store var="up"/>
72    </msg>
73    <!-- tab change message for Tab Controls-->
74    <genMsg delay="20">
75      <type>
76        <constValue value="&TCM_SETCURSEL;"/>
77      </type>
78      <target>
79        <msgInfoValue obj="up" msgParam="target"/>
80      </target>
81      <WPARAM>
82        <paramValue obj="up" param="scrollPos"/>
83      </WPARAM>
84    </genMsg>
85    <!-- tab change message for Property Pages-->
86    <genMsg delay="20">
87      <type>
88        <constValue value="1125"/>
89      </type>
90      <target>
91        <winInfoValue obj="up" winParam="parentTarget"/>
92      </target>
93      <WPARAM>
94        <paramValue obj="up" param="scrollPos"/>
95      </WPARAM>
96    </genMsg>
97  </rule>
98
99
100  <rule name="ComboBox">
101    <msg type="&WM_LBUTTONDOWN;">
102      <equals>
103        <winInfoValue obj="this" winParam="class"/>
104        <constValue value="ComboBox"/>
105      </equals>
106      <store var="clicked"/>
107    </msg>
108    <msg type="&WM_COMMAND;">
109      <equals>
110        <paramValue obj="this" param="window.hwnd"/>
111        <paramValue obj="clicked" param="window.hwnd"/>
112      </equals>
113      <store var="cmd1">
114        <resolveHwnd param="source" storeParam="sourceDesc"/>
115      </store>
116    </msg>
117    <msg type="&WM_COMMAND;" multiple="true">
118      <equals>
119        <paramValue obj="this" param="source"/>
120        <paramValue obj="clicked" param="window.hwnd"/>
121      </equals>
122      <storeSeq varSeq="cmds">
123        <resolveHwnd param="window.hwnd" storeParam="msgTarget"/>
124        <resolveHwnd param="source" storeParam="sourceDesc"/>
125      </storeSeq>
126    </msg>
127    <msg type="&WM_LBUTTONUP;">
128      <equals>
129        <paramValue obj="this" param="window.hwnd"/>
130        <paramValue obj="clicked" param="window.hwnd"/>
131      </equals>
132    </msg>
133    <genMsg delay="100">
134      <type>
135        <constValue value="&WM_SETFOCUS;"/>
136      </type>
137      <target>
138        <msgInfoValue obj="clicked" msgParam="target"/>
139      </target>
140    </genMsg>
141    <genMsg delay="100">
142      <type>
143        <constValue value="&CB_SHOWDROPDOWN;"/>
144      </type>
145      <target>
146        <msgInfoValue obj="clicked" msgParam="target"/>
147      </target>
148      <WPARAM>
149        <constValue value="1"/>
150      </WPARAM>
151    </genMsg>
152    <!--
153    <genMsg delay="100">
154      <type>
155        <constValue value="273"/>
156      </type>
157      <target>
158        <msgInfoValue obj="cmd1" msgParam="target"/>
159      </target>
160      <LPARAM>
161        <paramValue obj="cmd1" param="sourceDesc"/>
162      </LPARAM>
163      <WPARAM>
164        <paramValue obj="cmd1" param="WPARAM"/>
165      </WPARAM>
166    </genMsg>
167    <genMsgSeq delay="50">
168      <type>
169        <constValue value="273"/>
170      </type>
171      <target>
172        <seqValue seqObj="cmds" param="msgTarget"/>
173      </target>
174      <LPARAM>
175        <seqValue seqObj="cmds" param ="sourceDesc"/>
176      </LPARAM>
177      <WPARAM>
178        <seqValue seqObj="cmds" param="WPARAM"/>
179      </WPARAM>
180    </genMsgSeq>-->
181  </rule>
182 
183  <rule name="LeftClickCommand">
184    <msg type="&WM_LBUTTONDOWN;">
185      <store var="clicked"/>
186    </msg>
187    <msg type="&WM_LBUTTONUP;">
188      <equals>
189        <paramValue obj="clicked" param="window.hwnd"/>
190        <paramValue obj="this" param="window.hwnd"/>
191      </equals>
192    </msg>
193    <msg type="&WM_COMMAND;">
194      <equals>
195        <paramValue obj="clicked" param="window.hwnd"/>
196        <paramValue obj="this" param="source"/>
197      </equals>
198      <store var="cmd">
199        <resolveHwnd param="source" storeParam="sourceDesc"/>
200      </store>
201    </msg>
202    <genMsg delay="100">
203      <type>
204        <msgInfoValue obj="cmd" msgParam="type"/>
205      </type>
206      <target>
207        <msgInfoValue obj="cmd" msgParam="target"/>
208      </target>
209      <LPARAM>
210        <paramValue obj="cmd" param="sourceDesc"/>
211      </LPARAM>
212      <WPARAM>
213        <paramValue obj="cmd" param="WPARAM"/>
214      </WPARAM>
215    </genMsg>
216  </rule>
217
218  <rule name="LeftClickSysCommand">
219    <msg type="&WM_LBUTTONDOWN;">
220      <store var="clicked"/>
221    </msg>
222    <msg type="&WM_LBUTTONUP;">
223      <equals>
224        <paramValue obj="clicked" param="window.hwnd"/>
225        <paramValue obj="this" param="window.hwnd"/>
226      </equals>
227    </msg>
228    <msg type="&WM_SYSCOMMAND;">
229      <store var="cmd"/>
230    </msg>
231    <genMsg delay="100">
232      <storedVar obj="cmd"/>
233    </genMsg>
234  </rule>
235
236  <rule name="NCLeftClickSysCommand">
237    <msg type="&WM_NCLBUTTONDOWN;">
238      <store var="clicked"/>
239    </msg>
240    <msg type="&WM_LBUTTONUP;">
241      <equals>
242        <paramValue obj="clicked" param="window.hwnd"/>
243        <paramValue obj="this" param="window.hwnd"/>
244      </equals>
245    </msg>
246    <msg type="&WM_SYSCOMMAND;">
247      <equals>
248        <paramValue obj="clicked" param="window.hwnd"/>
249        <paramValue obj="this" param="window.hwnd"/>
250      </equals>
251      <store var="cmd"/>
252    </msg>
253    <genMsg delay="100">
254      <storedVar obj="cmd"/>
255    </genMsg>
256  </rule>
257
258  <rule name="LeftClickMenuItemCmd">
259    <msg type="&WM_LBUTTONDOWN;">
260      <store var="clicked"/>
261    </msg>
262    <msg type="&WM_LBUTTONUP;">
263      <equals>
264        <paramValue obj="clicked" param="window.hwnd"/>
265        <paramValue obj="this" param="window.hwnd"/>
266      </equals>
267    </msg>
268    <msg type="&WM_MENUSELECT;">
269      <equals>
270        <paramValue obj="clicked" param="window.hwnd"/>
271        <paramValue obj="this" param="window.hwnd"/>
272      </equals>
273    </msg>
274    <msg type="&WM_COMMAND;">
275      <equals>
276        <paramValue obj="this" param="sourceType"/>
277        <constValue value="0"/>
278      </equals>
279      <store var="cmd"/>
280    </msg>
281    <genMsg delay="100">
282      <storedVar obj="cmd"/>
283    </genMsg>
284  </rule>
285
286 
287  <!-- rules involving mouse movement -->
288  <rule name="HScroll_TrackBar">
289    <msg type="&WM_LBUTTONDOWN;">
290      <equals>
291        <winInfoValue obj="this" winParam="class"/>
292        <constValue value="msctls_trackbar32"/>
293      </equals>
294      <store var="clicked"/>
295    </msg>
296    <msg type="&WM_HSCROLL;" multiple="true">
297      <equals>
298        <paramValue obj="this" param="scrollBarHandle"/>
299        <paramValue obj="clicked" param="window.hwnd"/>
300      </equals>
301      <storeSeq varSeq="scrolls">
302        <resolveHwnd param="scrollBarHandle" storeParam="scrollBarTarget"/>
303      </storeSeq>
304    </msg>   
305    <msg type="&WM_LBUTTONUP;">
306      <equals>
307        <paramValue obj="this" param="window.hwnd"/>
308        <paramValue obj="clicked" param="window.hwnd"/>
309      </equals>
310    </msg>
311    <genMsgSeq delay="20">
312      <type>
313        <constValue value="&TBM_SETPOS;"/>
314      </type>
315      <target>
316        <seqValue seqObj="scrolls" param="scrollBarTarget"/>
317      </target>
318      <LPARAM>
319        <seqValue seqObj="scrolls" param="scrollPos"/>
320      </LPARAM>
321      <WPARAM>
322        <constValue value="1"/>
323      </WPARAM>
324    </genMsgSeq>
325  </rule>
326
327
328  <rule name="VScroll_TrackBar">
329    <msg type="&WM_LBUTTONDOWN;">
330      <equals>
331        <winInfoValue obj="this" winParam="class"/>
332        <constValue value="msctls_trackbar32"/>
333      </equals>
334      <store var="clicked"/>
335    </msg>
336    <msg type="&WM_VSCROLL;" multiple="true">
337      <equals>
338        <paramValue obj="this" param="scrollBarHandle"/>
339        <paramValue obj="clicked" param="window.hwnd"/>
340      </equals>
341      <storeSeq varSeq="scrolls">
342        <resolveHwnd param="scrollBarHandle" storeParam="scrollBarTarget"/>
343      </storeSeq>
344    </msg>
345    <msg type="&WM_LBUTTONUP;">
346      <equals>
347        <paramValue obj="this" param="window.hwnd"/>
348        <paramValue obj="clicked" param="window.hwnd"/>
349      </equals>
350    </msg>
351    <genMsgSeq delay="20">
352      <type>
353        <constValue value="&TBM_SETPOS;"/>
354      </type>
355      <target>
356        <seqValue seqObj="scrolls" param="scrollBarTarget"/>
357      </target>
358      <LPARAM>
359        <seqValue seqObj="scrolls" param="scrollPos"/>
360      </LPARAM>
361      <WPARAM>
362        <constValue value="1"/>
363      </WPARAM>
364    </genMsgSeq>
365  </rule>
366
367
368  <rule name="HScroll_ScrollBar">
369    <msg type="&WM_LBUTTONDOWN;">
370      <equals>
371        <winInfoValue obj="this" winParam="class"/>
372        <constValue value="ScrollBar"/>
373      </equals>
374      <store var="clicked"/>
375    </msg>
376    <msg type="&WM_HSCROLL;" multiple="true">
377      <equals>
378        <paramValue obj="this" param="scrollBarHandle"/>
379        <paramValue obj="clicked" param="window.hwnd"/>
380      </equals>
381      <storeSeq varSeq="scrolls">
382        <resolveHwnd param="scrollBarHandle" storeParam="scrollBarTarget"/>
383      </storeSeq>
384    </msg>
385    <msg type="&WM_LBUTTONUP;">
386      <equals>
387        <paramValue obj="this" param="window.hwnd"/>
388        <paramValue obj="clicked" param="window.hwnd"/>
389      </equals>
390    </msg>
391    <genMsgSeq delay="20">
392      <type>
393        <constValue value="&SBM_SETPOS;"/>
394      </type>
395      <target>
396        <seqValue seqObj="scrolls" param="scrollBarTarget"/>
397      </target>
398      <LPARAM>
399        <constValue value="1"/>
400      </LPARAM>
401      <WPARAM>
402        <seqValue seqObj="scrolls" param="scrollPos"/>
403      </WPARAM>
404    </genMsgSeq>
405  </rule>
406
407
408  <rule name="VScroll_ScrollBar">
409    <msg type="&WM_LBUTTONDOWN;">
410      <equals>
411        <winInfoValue obj="this" winParam="class"/>
412        <constValue value="ScrollBar"/>
413      </equals>
414      <store var="clicked"/>
415    </msg>
416    <msg type="&WM_VSCROLL;" multiple="true">
417      <equals>
418        <paramValue obj="this" param="scrollBarHandle"/>
419        <paramValue obj="clicked" param="window.hwnd"/>
420      </equals>
421      <storeSeq varSeq="scrolls">
422        <resolveHwnd param="scrollBarHandle" storeParam="scrollBarTarget"/>
423      </storeSeq>
424    </msg>
425    <msg type="&WM_LBUTTONUP;">
426      <equals>
427        <paramValue obj="this" param="window.hwnd"/>
428        <paramValue obj="clicked" param="window.hwnd"/>
429      </equals>
430    </msg>
431    <genMsgSeq delay="20">
432      <type>
433        <constValue value="&SBM_SETPOS;"/>
434      </type>
435      <target>
436        <seqValue seqObj="scrolls" param="scrollBarTarget"/>
437      </target>
438      <LPARAM>
439        <constValue value="1"/>
440      </LPARAM>
441      <WPARAM>
442        <seqValue seqObj="scrolls" param="scrollPos"/>
443      </WPARAM>
444    </genMsgSeq>
445  </rule>
446 
447  <!-- Does not work correctly, if a scrollbar has no handle of its own, e.g., a standard scrollbar of a listbox -->
448  <rule name="VScrollNC">
449    <msg type="&WM_NCLBUTTONDOWN;">
450      <store var="clicked"/>
451    </msg>
452    <msg type="&WM_VSCROLL;">
453      <equals>
454        <paramValue obj="this" param="window.hwnd"/>
455        <paramValue obj="clicked" param="window.hwnd"/>
456      </equals>
457      <store var="scrolls"/>
458    </msg>
459    <genMsg delay="20">
460      <type>
461        <constValue value="&WM_VSCROLL;"/>
462      </type>
463      <target>
464        <msgInfoValue obj="clicked" msgParam="target"/>
465      </target>
466      <WPARAM>
467        <LOWORD>
468          <constValue value="4"/>
469        </LOWORD>
470        <HIWORD>
471          <paramValue obj="scrolls" param="scrollPos"/>
472        </HIWORD>
473      </WPARAM>
474    </genMsg>
475  </rule>
476
477
478  <!--<rule name="VScrollNC">
479    <msg type="&WM_NCLBUTTONDOWN;">
480      <store var="clicked"/>
481    </msg>
482    <msg type="&WM_VSCROLL;" multiple="true">
483      <equals>
484        <paramValue obj="this" param="window.hwnd"/>
485        <paramValue obj="clicked" param="window.hwnd"/>
486      </equals>
487      <storeSeq varSeq="scrolls">
488        <resolveHwnd param="window.hwnd" storeParam="scrollBarTarget"/>
489      </storeSeq>
490    </msg>
491    <genMsgSeq delay="20">
492      <type>
493        <constValue value="&WM_VSCROLL;"/>
494      </type>
495      <target>
496        <seqValue seqObj="scrolls" param="scrollBarTarget"/>
497      </target>
498      <WPARAM>
499        <LOWORD>
500          <constValue value="4"/>
501        </LOWORD>
502        <HIWORD>
503          <paramValue obj="scrolls" param="scrollPos"/>
504        </HIWORD>
505      </WPARAM>
506    </genMsgSeq>
507  </rule>-->
508
509  <!-- Copy of set focus without kill-focus -->
510  <rule name="LeftClickSetFocus">
511    <msg type="&WM_LBUTTONDOWN;">
512      <equals>
513        <winInfoValue obj="this" winParam="class"/>
514        <constValue value="Edit"/>
515      </equals>
516      <store var="clicked"/>
517    </msg>
518    <msg type="&WM_SETFOCUS;">
519      <store var="setfocus"/>
520    </msg>
521    <msg type="&WM_COMMAND;">
522      <equals>
523        <paramValue obj="this" param="source"/>
524        <paramValue obj="clicked" param="window.hwnd"/>
525      </equals>
526      <equals>
527        <paramValue obj="this" param="sourceType"/>
528        <constValue value="256"/>
529      </equals>
530      <store var="cmd"/>
531    </msg>
532    <msg type="&WM_LBUTTONUP;">
533      <equals>
534        <paramValue obj="this" param="window.hwnd"/>
535        <paramValue obj="clicked" param="window.hwnd"/>
536      </equals>
537    </msg>
538    <genMsg delay="20">
539      <type>
540        <constValue value="&WM_SETFOCUS;"/>
541      </type>
542      <target>
543        <msgInfoValue obj="setfocus" msgParam="target"/>
544      </target>
545      <WPARAM>
546        <constValue value="0"/>
547      </WPARAM>
548    </genMsg>
549    <genMsg delay="100">
550      <type>
551        <constValue value="&WM_COMMAND;"/>
552      </type>
553      <target>
554        <msgInfoValue obj="cmd" msgParam="target"/>
555      </target>
556      <LPARAM>
557        <msgInfoValue obj="setfocus" msgParam="target"/>
558      </LPARAM>
559      <WPARAM>
560        <paramValue obj="cmd" param="WPARAM"/>
561      </WPARAM>
562    </genMsg>
563  </rule>
564 
565  <!-- Works only partially! -->
566  <rule name="LeftClickChangeFocus">
567    <msg type="&WM_LBUTTONDOWN;">
568      <equals>
569        <winInfoValue obj="this" winParam="class"/>
570        <constValue value="Edit"/>
571      </equals>
572      <store var="clicked"/>
573    </msg>
574    <msg type="&WM_KILLFOCUS;">
575      <store var="killfocus"/>
576    </msg>
577    <msg type="&WM_SETFOCUS;">
578      <equals>
579        <paramValue obj="this" param="WPARAM"/>
580        <paramValue obj="killfocus" param="window.hwnd"/>
581      </equals>
582      <store var="setfocus"/>
583    </msg>
584    <msg type="&WM_COMMAND;">
585      <equals>
586        <paramValue obj="this" param="source"/>
587        <paramValue obj="clicked" param="window.hwnd"/>
588      </equals>
589      <equals>
590        <paramValue obj="this" param="sourceType"/>
591        <constValue value="256"/>
592      </equals>
593      <store var="cmd"/>
594    </msg>
595    <msg type="&WM_LBUTTONUP;">
596      <equals>
597        <paramValue obj="this" param="window.hwnd"/>
598        <paramValue obj="clicked" param="window.hwnd"/>
599      </equals>
600    </msg>
601    <genMsg delay="20">
602      <type>
603        <constValue value="&WM_KILLFOCUS;"/>
604      </type>
605      <target>
606        <msgInfoValue obj="killfocus" msgParam="target"/>
607      </target>
608      <WPARAM>
609        <msgInfoValue obj="setfocus" msgParam="target"/>
610      </WPARAM>
611    </genMsg>
612    <genMsg delay="20">
613      <type>
614        <constValue value="&WM_SETFOCUS;"/>
615      </type>
616      <target>
617        <msgInfoValue obj="setfocus" msgParam="target"/>
618      </target>
619      <WPARAM>
620        <msgInfoValue obj="killfocus" msgParam="target"/>
621      </WPARAM>
622    </genMsg>
623    <genMsg delay="100">
624      <type>
625        <constValue value="&WM_COMMAND;"/>
626      </type>
627      <target>
628        <msgInfoValue obj="cmd" msgParam="target"/>
629      </target>
630      <LPARAM>
631        <msgInfoValue obj="setfocus" msgParam="target"/>
632      </LPARAM>
633      <WPARAM>
634        <paramValue obj="cmd" param="WPARAM"/>
635      </WPARAM>
636    </genMsg>
637  </rule>
638
639
640  <!-- Rules for keyboard input -->
641  <rule name="KeyDown">
642    <msg type="&WM_KEYDOWN;">
643      <store var="keydown"/>
644    </msg>
645    <genMsg delay="20">
646      <storedVar obj="keydown"/>
647    </genMsg>
648    <idinfo>
649      <paramValue obj="keydown" param="key"/>
650    </idinfo>
651  </rule>
652
653  <rule name="KeyUp">
654    <msg type="&WM_KEYUP;">
655      <store var="keyup"/>
656    </msg>
657    <genMsg delay="20">
658      <storedVar obj="keyup"/>
659    </genMsg>
660    <idinfo>
661      <paramValue obj="keyup" param="key"/>
662    </idinfo>
663  </rule>
664
665  <rule name="SysKeyDown">
666    <msg type="&WM_SYSKEYDOWN;">
667      <store var="keydown"/>
668    </msg>
669    <genMsg delay="20">
670      <storedVar obj="keydown"/>
671    </genMsg>
672    <idinfo>
673      <paramValue obj="keydown" param="key"/>
674    </idinfo>
675  </rule>
676
677  <rule name="SysKeyUp">
678    <msg type="&WM_SYSKEYUP;">
679      <store var="keyup"/>
680    </msg>
681    <genMsg delay="20">
682      <storedVar obj="keyup"/>
683    </genMsg>
684    <idinfo>
685      <paramValue obj="keyup" param="key"/>
686    </idinfo>
687  </rule>
688
689
690  <!-- What follows are coordinate-based rules. They are "hail mary" rules that try to salvage events that cannot be matched or replayed in a coordinate independent way (yet). -->
691  <rule name ="LeftClickCoordinates">
692    <msg type="&WM_LBUTTONDOWN;">
693      <store var="clicked"/>
694    </msg>
695    <msg type="&WM_LBUTTONUP;">
696      <equals>
697        <paramValue obj="clicked" param="window.hwnd"/>
698        <paramValue obj="this" param="window.hwnd"/>
699      </equals>
700      <store var="up"/>
701    </msg>
702    <genMsg delay="20">
703      <type>
704        <constValue value="&WM_LBUTTONDOWN;"/>
705      </type>
706      <target>
707        <msgInfoValue obj="clicked" msgParam="target"/>
708      </target>
709      <LPARAM>
710        <LOWORD>
711          <paramValue obj="clicked" param="point.x"/>
712        </LOWORD>
713        <HIWORD>
714          <paramValue obj="clicked" param="point.y"/>
715        </HIWORD>
716      </LPARAM>
717      <WPARAM>
718        <paramValue obj="clicked" param="WPARAM"/>
719      </WPARAM>
720    </genMsg>
721    <genMsg delay="20">
722      <type>
723        <constValue value="&WM_LBUTTONUP;"/>
724      </type>
725      <target>
726        <msgInfoValue obj="up" msgParam="target"/>
727      </target>
728      <LPARAM>
729        <LOWORD>
730          <paramValue obj="up" param="point.x"/>
731        </LOWORD>
732        <HIWORD>
733          <paramValue obj="up" param="point.y"/>
734        </HIWORD>
735      </LPARAM>
736      <WPARAM>
737        <paramValue obj="up" param="WPARAM"/>
738      </WPARAM>
739    </genMsg>
740  </rule>
741 
742  <rule name ="NCLeftClickCoordinates">
743    <msg type="&WM_NCLBUTTONDOWN;">
744      <store var="clicked"/>
745    </msg>
746    <msg type="&WM_LBUTTONUP;">
747      <equals>
748        <paramValue obj="clicked" param="window.hwnd"/>
749        <paramValue obj="this" param="window.hwnd"/>
750      </equals>
751      <store var="up"/>
752    </msg>
753    <genMsg delay="20">
754      <type>
755        <constValue value="&WM_NCLBUTTONDOWN;"/>
756      </type>
757      <target>
758        <msgInfoValue obj="clicked" msgParam="target"/>
759      </target>
760      <LPARAM>
761        <LOWORD>
762          <paramValue obj="clicked" param="point.x"/>
763        </LOWORD>
764        <HIWORD>
765          <paramValue obj="clicked" param="point.y"/>
766        </HIWORD>
767      </LPARAM>
768      <WPARAM>
769        <paramValue obj="clicked" param="WPARAM"/>
770      </WPARAM>
771    </genMsg>
772    <genMsg delay="20">
773      <type>
774        <constValue value="&WM_LBUTTONUP;"/>
775      </type>
776      <target>
777        <msgInfoValue obj="up" msgParam="target"/>
778      </target>
779      <LPARAM>
780        <LOWORD>
781          <paramValue obj="up" param="point.x"/>
782        </LOWORD>
783        <HIWORD>
784          <paramValue obj="up" param="point.y"/>
785        </HIWORD>
786      </LPARAM>
787      <WPARAM>
788        <paramValue obj="up" param="WPARAM"/>
789      </WPARAM>
790    </genMsg>
791  </rule>
792 
793</rules>
Note: See TracBrowser for help on using the repository browser.