home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 1995 September / Image.iso / visualob / install / samples / userapps / toolbar / toolbar.ae_ / toolbar.ae
CA Visual Objects Application Export File  |  1995-01-03  |  22.3 KB

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text


This file was processed as: CA Visual Objects Application Export File (other/caVisualObjectsApplicationExport).
This format is not currently supported by dexvert.

ConfidenceProgramDetectionMatch TypeSupport
1% dexvert CA Visual Objects Application Export File (other/caVisualObjectsApplicationExport) magic Unsupported
1% dexvert A/E SGML DocumentBinary (other/aeSGMLDocumentBinary) ext Unsupported
100% file data default
100% TrID CA Visual Objects Application Export File (v1.x) default



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 01 00 20 00 00 00 80 01 | 43 41 2d 56 4f 20 41 70 |.. .....|CA-VO Ap|
|00000010| 70 6c 69 63 61 74 69 6f | 6e 20 45 78 70 6f 72 74 |plicatio|n Export|
|00000020| 20 46 69 6c 65 00 02 00 | 20 00 00 00 54 6f 6f 6c | File...| ...Tool|
|00000030| 42 61 72 20 44 4c 4c 00 | 00 00 00 00 00 00 00 00 |Bar DLL.|........|
|00000040| 00 00 00 00 00 00 00 00 | 00 00 00 00 09 01 04 00 |........|........|
|00000050| 00 00 46 b6 01 00 09 00 | 02 00 00 00 00 00 0a 00 |..F.....|........|
|00000060| 02 00 00 00 ff ff 0b 00 | 02 00 00 00 ff ff 0c 00 |........|........|
|00000070| 02 00 00 00 00 00 0d 00 | 2d 00 00 00 43 3a 5c 43 |........|-...C:\C|
|00000080| 41 56 4f 5c 53 41 4d 50 | 4c 45 53 5c 55 53 45 52 |AVO\SAMP|LES\USER|
|00000090| 41 50 50 53 5c 54 4f 4f | 4c 42 41 52 5c 54 4f 4f |APPS\TOO|LBAR\TOO|
|000000a0| 4c 42 41 52 2e 44 4c 4c | 00 08 01 13 00 00 00 43 |LBAR.DLL|.......C|
|000000b0| 41 2d 56 4f 20 41 70 70 | 6c 69 63 61 74 69 6f 6e |A-VO App|lication|
|000000c0| 73 00 04 00 20 00 00 00 | 57 69 6e 64 6f 77 73 20 |s... ...|Windows |
|000000d0| 41 50 49 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |API.....|........|
|000000e0| 00 00 00 00 00 00 00 00 | 04 01 02 00 00 00 00 00 |........|........|
|000000f0| 05 01 02 00 00 00 00 00 | 20 00 0d 00 00 00 54 6f |........| .....To|
|00000100| 6f 6c 42 61 72 20 43 6f | 64 65 00 21 00 02 00 00 |olBar Co|de.!....|
|00000110| 00 02 00 40 00 09 00 00 | 00 43 42 4d 5f 49 4e 49 |...@....|.CBM_INI|
|00000120| 54 00 51 00 02 00 00 00 | 02 00 44 00 02 00 00 00 |T.Q.....|..D.....|
|00000130| 03 00 48 00 04 00 00 00 | 49 2e 66 2e 4d 00 02 00 |..H.....|I.f.M...|
|00000140| 00 00 1b 00 45 00 02 00 | 00 00 00 00 46 00 02 00 |....E...|....F...|
|00000150| 00 00 02 00 47 00 02 00 | 00 00 ff ff 49 00 02 00 |....G...|....I...|
|00000160| 00 00 00 00 41 00 19 00 | 00 00 64 65 66 69 6e 65 |....A...|..define|
|00000170| 20 43 42 4d 5f 49 4e 49 | 54 20 3a 3d 20 34 0d 0a | CBM_INI|T := 4..|
|00000180| 0d 0a 00 4e 00 15 00 00 | 00 64 65 66 69 6e 65 20 |...N....|.define |
|00000190| 43 42 4d 5f 49 4e 49 54 | 20 3a 3d 20 34 00 40 00 |CBM_INIT| := 4.@.|
|000001a0| 0e 00 00 00 43 4f 4c 4f | 52 5f 42 54 4e 46 41 43 |....COLO|R_BTNFAC|
|000001b0| 45 00 51 00 02 00 00 00 | 02 00 44 00 02 00 00 00 |E.Q.....|..D.....|
|000001c0| 03 00 48 00 04 00 00 00 | 49 2e 66 2e 4d 00 02 00 |..H.....|I.f.M...|
|000001d0| 00 00 1b 00 45 00 02 00 | 00 00 00 00 46 00 02 00 |....E...|....F...|
|000001e0| 00 00 02 00 47 00 02 00 | 00 00 ff ff 49 00 02 00 |....G...|....I...|
|000001f0| 00 00 00 00 41 00 1f 00 | 00 00 64 65 66 69 6e 65 |....A...|..define|
|00000200| 20 43 4f 4c 4f 52 5f 42 | 54 4e 46 41 43 45 20 3a | COLOR_B|TNFACE :|
|00000210| 3d 20 31 35 0d 0a 0d 0a | 00 4e 00 1b 00 00 00 64 |= 15....|.N.....d|
|00000220| 65 66 69 6e 65 20 43 4f | 4c 4f 52 5f 42 54 4e 46 |efine CO|LOR_BTNF|
|00000230| 41 43 45 20 3a 3d 20 31 | 35 00 40 00 0f 00 00 00 |ACE := 1|5.@.....|
|00000240| 44 49 42 5f 52 47 42 5f | 43 4f 4c 4f 52 53 00 51 |DIB_RGB_|COLORS.Q|
|00000250| 00 02 00 00 00 02 00 44 | 00 02 00 00 00 03 00 48 |.......D|.......H|
|00000260| 00 04 00 00 00 49 2e 66 | 2e 4d 00 02 00 00 00 1b |.....I.f|.M......|
|00000270| 00 45 00 02 00 00 00 00 | 00 46 00 02 00 00 00 02 |.E......|.F......|
|00000280| 00 47 00 02 00 00 00 ff | ff 49 00 02 00 00 00 00 |.G......|.I......|
|00000290| 00 41 00 1f 00 00 00 64 | 65 66 69 6e 65 20 44 49 |.A.....d|efine DI|
|000002a0| 42 5f 52 47 42 5f 43 4f | 4c 4f 52 53 20 3a 3d 20 |B_RGB_CO|LORS := |
|000002b0| 30 0d 0a 0d 0a 00 4e 00 | 1b 00 00 00 64 65 66 69 |0.....N.|....defi|
|000002c0| 6e 65 20 44 49 42 5f 52 | 47 42 5f 43 4f 4c 4f 52 |ne DIB_R|GB_COLOR|
|000002d0| 53 20 3a 3d 20 30 00 40 | 00 0c 00 00 00 4d 41 58 |S := 0.@|.....MAX|
|000002e0| 5f 42 55 54 54 4f 4e 53 | 00 51 00 02 00 00 00 02 |_BUTTONS|.Q......|
|000002f0| 00 44 00 02 00 00 00 03 | 00 48 00 04 00 00 00 4a |.D......|.H.....J|
|00000300| 2e 66 2e 4d 00 02 00 00 | 00 1b 00 45 00 02 00 00 |.f.M....|...E....|
|00000310| 00 00 00 46 00 02 00 00 | 00 02 00 47 00 02 00 00 |...F....|...G....|
|00000320| 00 ff ff 49 00 02 00 00 | 00 00 00 41 00 1d 00 00 |...I....|...A....|
|00000330| 00 64 65 66 69 6e 65 20 | 4d 41 58 5f 42 55 54 54 |.define |MAX_BUTT|
|00000340| 4f 4e 53 20 3a 3d 20 33 | 32 0d 0a 0d 0a 00 4e 00 |ONS := 3|2.....N.|
|00000350| 19 00 00 00 64 65 66 69 | 6e 65 20 4d 41 58 5f 42 |....defi|ne MAX_B|
|00000360| 55 54 54 4f 4e 53 20 3a | 3d 20 33 32 00 40 00 0d |UTTONS :|= 32.@..|
|00000370| 00 00 00 53 57 50 5f 4e | 4f 5a 4f 52 44 45 52 00 |...SWP_N|OZORDER.|
|00000380| 51 00 02 00 00 00 02 00 | 44 00 02 00 00 00 03 00 |Q.......|D.......|
|00000390| 48 00 04 00 00 00 f0 2e | 66 2e 4d 00 02 00 00 00 |H.......|f.M.....|
|000003a0| 1b 00 45 00 02 00 00 00 | 00 00 46 00 02 00 00 00 |..E.....|..F.....|
|000003b0| 02 00 47 00 02 00 00 00 | ff ff 49 00 02 00 00 00 |..G.....|..I.....|
|000003c0| 00 00 41 00 1e 00 00 00 | 64 65 66 69 6e 65 20 53 |..A.....|define S|
|000003d0| 57 50 5f 4e 4f 5a 4f 52 | 44 45 52 20 20 3a 3d 20 |WP_NOZOR|DER := |
|000003e0| 34 0d 0a 0d 0a 00 4e 00 | 1a 00 00 00 64 65 66 69 |4.....N.|....defi|
|000003f0| 6e 65 20 53 57 50 5f 4e | 4f 5a 4f 52 44 45 52 20 |ne SWP_N|OZORDER |
|00000400| 20 3a 3d 20 34 00 40 00 | 0c 00 00 00 54 42 4d 5f | := 4.@.|....TBM_|
|00000410| 44 49 53 41 42 4c 45 00 | 51 00 02 00 00 00 02 00 |DISABLE.|Q.......|
|00000420| 44 00 02 00 00 00 03 00 | 48 00 04 00 00 00 f1 2e |D.......|H.......|
|00000430| 66 2e 4d 00 02 00 00 00 | 1b 00 45 00 02 00 00 00 |f.M.....|..E.....|
|00000440| 00 00 46 00 02 00 00 00 | 02 00 47 00 02 00 00 00 |..F.....|..G.....|
|00000450| ff ff 49 00 02 00 00 00 | 00 00 41 00 21 00 00 00 |..I.....|..A.!...|
|00000460| 64 65 66 69 6e 65 20 54 | 42 4d 5f 44 49 53 41 42 |define T|BM_DISAB|
|00000470| 4c 45 09 3a 3d 20 30 78 | 35 30 30 32 0d 0a 0d 0a |LE.:= 0x|5002....|
|00000480| 00 4e 00 1d 00 00 00 64 | 65 66 69 6e 65 20 54 42 |.N.....d|efine TB|
|00000490| 4d 5f 44 49 53 41 42 4c | 45 09 3a 3d 20 30 78 35 |M_DISABL|E.:= 0x5|
|000004a0| 30 30 32 00 40 00 0b 00 | 00 00 54 42 4d 5f 45 4e |002.@...|..TBM_EN|
|000004b0| 41 42 4c 45 00 51 00 02 | 00 00 00 02 00 44 00 02 |ABLE.Q..|.....D..|
|000004c0| 00 00 00 03 00 48 00 04 | 00 00 00 f1 2e 66 2e 4d |.....H..|.....f.M|
|000004d0| 00 02 00 00 00 1b 00 45 | 00 02 00 00 00 00 00 46 |.......E|.......F|
|000004e0| 00 02 00 00 00 02 00 47 | 00 02 00 00 00 ff ff 49 |.......G|.......I|
|000004f0| 00 02 00 00 00 00 00 41 | 00 21 00 00 00 64 65 66 |.......A|.!...def|
|00000500| 69 6e 65 20 54 42 4d 5f | 45 4e 41 42 4c 45 09 09 |ine TBM_|ENABLE..|
|00000510| 3a 3d 20 30 78 35 30 30 | 31 0d 0a 0d 0a 00 4e 00 |:= 0x500|1.....N.|
|00000520| 1d 00 00 00 64 65 66 69 | 6e 65 20 54 42 4d 5f 45 |....defi|ne TBM_E|
|00000530| 4e 41 42 4c 45 09 09 3a | 3d 20 30 78 35 30 30 31 |NABLE..:|= 0x5001|
|00000540| 00 40 00 0e 00 00 00 54 | 42 4d 5f 48 49 54 42 55 |.@.....T|BM_HITBU|
|00000550| 54 54 4f 4e 00 51 00 02 | 00 00 00 02 00 44 00 02 |TTON.Q..|.....D..|
|00000560| 00 00 00 03 00 48 00 04 | 00 00 00 f1 2e 66 2e 4d |.....H..|.....f.M|
|00000570| 00 02 00 00 00 1b 00 45 | 00 02 00 00 00 00 00 46 |.......E|.......F|
|00000580| 00 02 00 00 00 02 00 47 | 00 02 00 00 00 ff ff 49 |.......G|.......I|
|00000590| 00 02 00 00 00 00 00 41 | 00 24 00 00 00 64 65 66 |.......A|.$...def|
|000005a0| 69 6e 65 20 54 42 4d 5f | 48 49 54 42 55 54 54 4f |ine TBM_|HITBUTTO|
|000005b0| 4e 20 09 3a 3d 20 30 78 | 35 30 30 30 0d 0a 0d 0a |N .:= 0x|5000....|
|000005c0| 00 4e 00 20 00 00 00 64 | 65 66 69 6e 65 20 54 42 |.N. ...d|efine TB|
|000005d0| 4d 5f 48 49 54 42 55 54 | 54 4f 4e 20 09 3a 3d 20 |M_HITBUT|TON .:= |
|000005e0| 30 78 35 30 30 30 00 40 | 00 0d 00 00 00 54 4f 4f |0x5000.@|.....TOO|
|000005f0| 4c 42 41 52 5f 49 4e 46 | 4f 00 51 00 02 00 00 00 |LBAR_INF|O.Q.....|
|00000600| 01 00 44 00 02 00 00 00 | 03 00 48 00 04 00 00 00 |..D.....|..H.....|
|00000610| f1 2e 66 2e 4d 00 02 00 | 00 00 18 00 45 00 02 00 |..f.M...|....E...|
|00000620| 00 00 00 00 46 00 02 00 | 00 00 02 00 47 00 02 00 |....F...|....G...|
|00000630| 00 00 ff ff 49 00 02 00 | 00 00 00 00 41 00 b0 01 |....I...|....A...|
|00000640| 00 00 73 74 61 74 69 63 | 20 73 74 72 75 63 74 75 |..static| structu|
|00000650| 72 65 20 54 4f 4f 4c 42 | 41 52 5f 49 4e 46 4f 0d |re TOOLB|AR_INFO.|
|00000660| 0a 6d 65 6d 62 65 72 20 | 64 69 6d 20 62 6d 52 65 |.member |dim bmRe|
|00000670| 73 49 44 5b 20 4d 41 58 | 5f 42 55 54 54 4f 4e 53 |sID[ MAX|_BUTTONS|
|00000680| 20 5d 09 09 61 73 20 57 | 6f 72 64 0d 0a 6d 65 6d | ]..as W|ord..mem|
|00000690| 62 65 72 20 64 69 6d 20 | 62 6d 48 61 6e 64 6c 65 |ber dim |bmHandle|
|000006a0| 5b 20 4d 41 58 5f 42 55 | 54 54 4f 4e 53 20 5d 09 |[ MAX_BU|TTONS ].|
|000006b0| 09 61 73 20 57 6f 72 64 | 0d 0a 6d 65 6d 62 65 72 |.as Word|..member|
|000006c0| 20 64 69 6d 20 62 6d 45 | 64 67 65 5b 20 4d 41 58 | dim bmE|dge[ MAX|
|000006d0| 5f 42 55 54 54 4f 4e 53 | 20 5d 09 09 61 73 20 57 |_BUTTONS| ]..as W|
|000006e0| 6f 72 64 0d 0a 6d 65 6d | 62 65 72 20 64 69 6d 20 |ord..mem|ber dim |
|000006f0| 62 6d 45 6e 61 62 6c 65 | 64 5b 20 4d 41 58 5f 42 |bmEnable|d[ MAX_B|
|00000700| 55 54 54 4f 4e 53 20 5d | 09 09 61 73 20 4c 6f 67 |UTTONS ]|..as Log|
|00000710| 69 63 0d 0a 6d 65 6d 62 | 65 72 20 62 6d 49 6e 73 |ic..memb|er bmIns|
|00000720| 74 09 09 09 09 09 09 09 | 09 61 73 20 57 6f 72 64 |t.......|.as Word|
|00000730| 0d 0a 6d 65 6d 62 65 72 | 20 62 6d 43 6f 75 6e 74 |..member| bmCount|
|00000740| 09 09 09 09 09 09 09 61 | 73 20 57 6f 72 64 0d 0a |.......a|s Word..|
|00000750| 6d 65 6d 62 65 72 20 62 | 6d 57 69 64 74 68 20 09 |member b|mWidth .|
|00000760| 09 09 09 09 09 09 61 73 | 20 57 6f 72 64 0d 0a 6d |......as| Word..m|
|00000770| 65 6d 62 65 72 20 62 6d | 48 65 69 67 68 74 09 09 |ember bm|Height..|
|00000780| 09 09 09 09 09 61 73 20 | 57 6f 72 64 0d 0a 6d 65 |.....as |Word..me|
|00000790| 6d 62 65 72 20 62 6f 72 | 64 65 72 20 09 09 09 09 |mber bor|der ....|
|000007a0| 09 09 09 09 61 73 20 57 | 6f 72 64 0d 0a 6d 65 6d |....as W|ord..mem|
|000007b0| 62 65 72 20 68 65 69 67 | 68 74 20 09 09 09 09 09 |ber heig|ht .....|
|000007c0| 09 09 09 61 73 20 57 6f | 72 64 0d 0a 6d 65 6d 62 |...as Wo|rd..memb|
|000007d0| 65 72 20 63 61 70 74 75 | 72 65 42 75 74 74 6f 6e |er captu|reButton|
|000007e0| 09 09 09 09 09 09 61 73 | 20 57 6f 72 64 0d 0a 0d |......as| Word...|
|000007f0| 0a 00 4e 00 1e 00 00 00 | 73 74 61 74 69 63 20 73 |..N.....|static s|
|00000800| 74 72 75 63 74 75 72 65 | 20 54 4f 4f 4c 42 41 52 |tructure| TOOLBAR|
|00000810| 5f 49 4e 46 4f 00 40 00 | 0f 00 00 00 44 45 53 54 |_INFO.@.|....DEST|
|00000820| 52 4f 59 54 4f 4f 4c 42 | 41 52 00 51 00 02 00 00 |ROYTOOLB|AR.Q....|
|00000830| 00 01 00 44 00 02 00 00 | 00 03 00 48 00 04 00 00 |...D....|...H....|
|00000840| 00 7b 80 67 2e 4d 00 02 | 00 00 00 11 00 45 00 02 |.{.g.M..|.....E..|
|00000850| 00 00 00 00 00 46 00 02 | 00 00 00 02 00 47 00 02 |.....F..|.....G..|
|00000860| 00 00 00 ff ff 49 00 02 | 00 00 00 00 00 41 00 88 |.....I..|.....A..|
|00000870| 02 00 00 73 74 61 74 69 | 63 20 66 75 6e 63 74 69 |...stati|c functi|
|00000880| 6f 6e 20 44 65 73 74 72 | 6f 79 54 6f 6f 6c 62 61 |on Destr|oyToolba|
|00000890| 72 28 20 68 57 6e 64 20 | 61 73 20 57 6f 72 64 20 |r( hWnd |as Word |
|000008a0| 29 20 61 73 20 4c 6f 6e | 67 49 6e 74 20 50 61 73 |) as Lon|gInt Pas|
|000008b0| 63 61 6c 0d 0a 0d 0a 6c | 6f 63 61 6c 20 70 52 65 |cal....l|ocal pRe|
|000008c0| 63 20 61 73 20 54 4f 4f | 4c 42 41 52 5f 49 4e 46 |c as TOO|LBAR_INF|
|000008d0| 4f 0d 0a 6c 6f 63 61 6c | 20 68 50 61 72 65 6e 74 |O..local| hParent|
|000008e0| 20 61 73 20 57 6f 72 64 | 0d 0a 6c 6f 63 61 6c 20 | as Word|..local |
|000008f0| 6e 20 61 73 20 53 68 6f | 72 74 49 6e 74 0d 0a 0d |n as Sho|rtInt...|
|00000900| 0a 2f 2f 20 47 65 74 20 | 74 68 65 20 70 61 72 65 |.// Get |the pare|
|00000910| 6e 74 20 77 69 6e 64 6f | 77 0d 0a 0d 0a 68 50 61 |nt windo|w....hPa|
|00000920| 72 65 6e 74 20 3a 3d 20 | 47 65 74 50 61 72 65 6e |rent := |GetParen|
|00000930| 74 28 20 68 57 6e 64 20 | 29 0d 0a 0d 0a 2f 2f 20 |t( hWnd |)....// |
|00000940| 55 6e 6c 6f 61 64 20 74 | 68 65 20 74 6f 6f 6c 62 |Unload t|he toolb|
|00000950| 61 72 20 68 61 6e 64 6c | 65 20 66 72 6f 6d 20 74 |ar handl|e from t|
|00000960| 68 65 20 70 61 72 65 6e | 74 27 73 20 70 72 6f 70 |he paren|t's prop|
|00000970| 65 72 74 79 20 6c 69 73 | 74 0d 0a 0d 0a 52 65 6d |erty lis|t....Rem|
|00000980| 6f 76 65 50 72 6f 70 28 | 20 68 50 61 72 65 6e 74 |oveProp(| hParent|
|00000990| 2c 20 50 53 5a 28 20 22 | 56 4f 54 6f 6f 6c 42 61 |, PSZ( "|VOToolBa|
|000009a0| 72 22 20 29 20 29 0d 0a | 0d 0a 2f 2f 20 47 65 74 |r" ) )..|..// Get|
|000009b0| 20 61 20 70 6f 69 6e 74 | 65 72 20 74 6f 20 74 68 | a point|er to th|
|000009c0| 65 20 74 6f 6f 6c 62 61 | 72 20 69 6e 66 6f 20 72 |e toolba|r info r|
|000009d0| 65 63 6f 72 64 0d 0a 0d | 0a 70 52 65 63 20 3a 3d |ecord...|.pRec :=|
|000009e0| 20 50 74 72 28 20 5f 43 | 41 53 54 2c 20 47 65 74 | Ptr( _C|AST, Get|
|000009f0| 57 69 6e 64 6f 77 4c 6f | 6e 67 28 20 68 57 6e 64 |WindowLo|ng( hWnd|
|00000a00| 2c 20 30 20 29 20 29 20 | 0d 0a 0d 0a 2f 2f 20 5a |, 0 ) ) |....// Z|
|00000a10| 61 70 20 61 6c 6c 20 74 | 68 65 20 62 69 74 6d 61 |ap all t|he bitma|
|00000a20| 70 73 0d 0a 0d 0a 66 6f | 72 20 6e 20 3a 3d 20 31 |ps....fo|r n := 1|
|00000a30| 20 74 6f 20 53 68 6f 72 | 74 49 6e 74 28 20 70 52 | to Shor|tInt( pR|
|00000a40| 65 63 2e 62 6d 43 6f 75 | 6e 74 20 29 0d 0a 09 69 |ec.bmCou|nt )...i|
|00000a50| 66 20 70 52 65 63 2e 62 | 6d 52 65 73 49 44 5b 20 |f pRec.b|mResID[ |
|00000a60| 6e 20 5d 20 21 3d 20 30 | 0d 0a 09 09 44 65 6c 65 |n ] != 0|....Dele|
|00000a70| 74 65 4f 62 6a 65 63 74 | 28 20 70 52 65 63 2e 62 |teObject|( pRec.b|
|00000a80| 6d 48 61 6e 64 6c 65 5b | 20 6e 20 5d 20 29 0d 0a |mHandle[| n ] )..|
|00000a90| 09 65 6e 64 69 66 0d 0a | 6e 65 78 74 0d 0a 0d 0a |.endif..|next....|
|00000aa0| 2f 2f 20 46 72 65 65 20 | 74 68 65 20 6d 65 6d 6f |// Free |the memo|
|00000ab0| 72 79 20 61 6c 6c 6f 63 | 61 74 65 64 20 74 6f 20 |ry alloc|ated to |
|00000ac0| 74 68 65 20 74 6f 6f 6c | 62 61 72 20 69 6e 66 6f |the tool|bar info|
|00000ad0| 20 72 65 63 6f 72 64 0d | 0a 0d 0a 4d 65 6d 46 72 | record.|...MemFr|
|00000ae0| 65 65 28 20 70 52 65 63 | 20 29 0d 0a 0d 0a 72 65 |ee( pRec| )....re|
|00000af0| 74 75 72 6e 20 30 0d 0a | 0d 0a 00 4e 00 41 00 00 |turn 0..|...N.A..|
|00000b00| 00 73 74 61 74 69 63 20 | 66 75 6e 63 74 69 6f 6e |.static |function|
|00000b10| 20 44 65 73 74 72 6f 79 | 54 6f 6f 6c 62 61 72 28 | Destroy|Toolbar(|
|00000b20| 20 68 57 6e 64 20 61 73 | 20 57 6f 72 64 20 29 20 | hWnd as| Word ) |
|00000b30| 61 73 20 4c 6f 6e 67 49 | 6e 74 20 50 61 73 63 61 |as LongI|nt Pasca|
|00000b40| 6c 00 40 00 0d 00 00 00 | 45 4e 41 42 4c 45 42 55 |l.@.....|ENABLEBU|
|00000b50| 54 54 4f 4e 00 51 00 02 | 00 00 00 02 00 44 00 02 |TTON.Q..|.....D..|
|00000b60| 00 00 00 03 00 48 00 04 | 00 00 00 f1 2e 66 2e 4d |.....H..|.....f.M|
|00000b70| 00 02 00 00 00 11 00 45 | 00 02 00 00 00 00 00 46 |.......E|.......F|
|00000b80| 00 02 00 00 00 02 00 47 | 00 02 00 00 00 ff ff 49 |.......G|.......I|
|00000b90| 00 02 00 00 00 00 00 41 | 00 43 02 00 00 66 75 6e |.......A|.C...fun|
|00000ba0| 63 74 69 6f 6e 20 45 6e | 61 62 6c 65 42 75 74 74 |ction En|ableButt|
|00000bb0| 6f 6e 28 20 68 57 6e 64 | 20 61 73 20 57 6f 72 64 |on( hWnd| as Word|
|00000bc0| 2c 20 77 42 75 74 74 6f | 6e 20 61 73 20 57 6f 72 |, wButto|n as Wor|
|00000bd0| 64 2c 20 6c 45 6e 61 62 | 6c 65 20 61 73 20 4c 6f |d, lEnab|le as Lo|
|00000be0| 67 69 63 20 29 20 61 73 | 20 4c 6f 6e 67 49 6e 74 |gic ) as| LongInt|
|00000bf0| 20 50 61 73 63 61 6c 0d | 0a 0d 0a 6c 6f 63 61 6c | Pascal.|...local|
|00000c00| 20 6e 20 61 73 20 53 68 | 6f 72 74 49 6e 74 0d 0a | n as Sh|ortInt..|
|00000c10| 6c 6f 63 61 6c 20 70 52 | 65 63 20 61 73 20 54 4f |local pR|ec as TO|
|00000c20| 4f 4c 42 41 52 5f 49 4e | 46 4f 0d 0a 6c 6f 63 61 |OLBAR_IN|FO..loca|
|00000c30| 6c 20 73 52 65 63 74 20 | 69 73 20 5f 57 49 4e 52 |l sRect |is _WINR|
|00000c40| 45 43 54 0d 0a 0d 0a 2f | 2f 20 47 65 74 20 74 68 |ECT..../|/ Get th|
|00000c50| 65 20 74 6f 6f 6c 62 61 | 72 20 69 6e 66 6f 20 72 |e toolba|r info r|
|00000c60| 65 63 6f 72 64 0d 0a 0d | 0a 70 52 65 63 20 3a 3d |ecord...|.pRec :=|
|00000c70| 20 50 74 72 28 20 5f 43 | 41 53 54 2c 20 47 65 74 | Ptr( _C|AST, Get|
|00000c80| 57 69 6e 64 6f 77 4c 6f | 6e 67 28 20 68 57 6e 64 |WindowLo|ng( hWnd|
|00000c90| 2c 20 30 20 29 20 29 0d | 0a 0d 0a 2f 2f 20 4c 6f |, 0 ) ).|...// Lo|
|00000ca0| 6f 70 20 74 68 72 75 20 | 74 68 65 20 62 69 74 6d |op thru |the bitm|
|00000cb0| 61 70 73 20 61 6e 64 20 | 65 6e 61 62 6c 65 2f 64 |aps and |enable/d|
|00000cc0| 69 73 61 62 6c 65 20 74 | 68 65 20 73 70 65 63 69 |isable t|he speci|
|00000cd0| 66 69 65 64 20 62 75 74 | 74 6f 6e 0d 0a 0d 0a 66 |fied but|ton....f|
|00000ce0| 6f 72 20 6e 20 3a 3d 20 | 31 20 74 6f 20 53 68 6f |or n := |1 to Sho|
|00000cf0| 72 74 49 6e 74 28 20 70 | 52 65 63 2e 62 6d 43 6f |rtInt( p|Rec.bmCo|
|00000d00| 75 6e 74 20 29 0d 0a 09 | 69 66 20 70 52 65 63 2e |unt )...|if pRec.|
|00000d10| 62 6d 52 65 73 49 44 5b | 20 6e 20 5d 20 3d 3d 20 |bmResID[| n ] == |
|00000d20| 77 42 75 74 74 6f 6e 0d | 0a 09 09 70 52 65 63 2e |wButton.|...pRec.|
|00000d30| 62 6d 45 6e 61 62 6c 65 | 64 5b 20 6e 20 5d 20 3a |bmEnable|d[ n ] :|
|00000d40| 3d 20 6c 45 6e 61 62 6c | 65 0d 0a 09 09 0d 0a 09 |= lEnabl|e.......|
|00000d50| 09 47 65 74 42 75 74 74 | 6f 6e 52 65 63 74 28 20 |.GetButt|onRect( |
|00000d60| 70 52 65 63 2c 20 6e 2c | 20 40 73 52 65 63 74 20 |pRec, n,| @sRect |
|00000d70| 29 0d 0a 0d 0a 09 09 2b | 2b 73 52 65 63 74 2e 62 |)......+|+sRect.b|
|00000d80| 6f 74 74 6f 6d 0d 0a 09 | 09 2b 2b 73 52 65 63 74 |ottom...|.++sRect|
|00000d90| 2e 72 69 67 68 74 0d 0a | 09 09 0d 0a 09 09 49 6e |.right..|......In|
|00000da0| 76 61 6c 69 64 61 74 65 | 52 65 63 74 28 20 68 57 |validate|Rect( hW|
|00000db0| 6e 64 2c 20 40 73 52 65 | 63 74 2c 20 2e 54 2e 20 |nd, @sRe|ct, .T. |
|00000dc0| 29 0d 0a 09 65 6e 64 69 | 66 0d 0a 6e 65 78 74 0d |)...endi|f..next.|
|00000dd0| 0a 0d 0a 72 65 74 75 72 | 6e 20 30 0d 0a 0d 0a 00 |...retur|n 0.....|
|00000de0| 4e 00 5b 00 00 00 66 75 | 6e 63 74 69 6f 6e 20 45 |N.[...fu|nction E|
|00000df0| 6e 61 62 6c 65 42 75 74 | 74 6f 6e 28 20 68 57 6e |nableBut|ton( hWn|
|00000e00| 64 20 61 73 20 57 6f 72 | 64 2c 20 77 42 75 74 74 |d as Wor|d, wButt|
|00000e10| 6f 6e 20 61 73 20 57 6f | 72 64 2c 20 6c 45 6e 61 |on as Wo|rd, lEna|
|00000e20| 62 6c 65 20 61 73 20 4c | 6f 67 69 63 20 29 20 61 |ble as L|ogic ) a|
|00000e30| 73 20 4c 6f 6e 67 49 6e | 74 20 50 61 73 63 61 6c |s LongIn|t Pascal|
|00000e40| 00 40 00 0d 00 00 00 46 | 49 4e 44 52 45 53 4f 55 |.@.....F|INDRESOU|
|00000e50| 52 43 45 00 51 00 02 00 | 00 00 02 00 44 00 02 00 |RCE.Q...|....D...|
|00000e60| 00 00 01 00 48 00 04 00 | 00 00 f1 2e 66 2e 4d 00 |....H...|....f.M.|
|00000e70| 02 00 00 00 11 00 45 00 | 02 00 00 00 00 00 46 00 |......E.|......F.|
|00000e80| 02 00 00 00 02 00 47 00 | 02 00 00 00 ff ff 49 00 |......G.|......I.|
|00000e90| 02 00 00 00 00 00 41 00 | 69 00 00 00 5f 44 4c 4c |......A.|i..._DLL|
|00000ea0| 20 66 75 6e 63 74 69 6f | 6e 20 46 69 6e 64 52 65 | functio|n FindRe|
|00000eb0| 73 6f 75 72 63 65 28 20 | 68 49 6e 73 74 20 61 73 |source( |hInst as|
|00000ec0| 20 57 6f 72 64 2c 20 70 | 73 7a 4e 61 6d 65 20 61 | Word, p|szName a|
|00000ed0| 73 20 50 53 5a 2c 20 70 | 73 7a 54 79 70 65 20 61 |s PSZ, p|szType a|
|00000ee0| 73 20 50 53 5a 20 29 20 | 61 73 20 57 6f 72 64 20 |s PSZ ) |as Word |
|00000ef0| 50 61 73 63 61 6c 3a 4b | 65 72 6e 65 6c 2e 36 30 |Pascal:K|ernel.60|
|00000f00| 0d 0a 0d 0a 00 4e 00 65 | 00 00 00 5f 44 4c 4c 20 |.....N.e|..._DLL |
|00000f10| 66 75 6e 63 74 69 6f 6e | 20 46 69 6e 64 52 65 73 |function| FindRes|
|00000f20| 6f 75 72 63 65 28 20 68 | 49 6e 73 74 20 61 73 20 |ource( h|Inst as |
|00000f30| 57 6f 72 64 2c 20 70 73 | 7a 4e 61 6d 65 20 61 73 |Word, ps|zName as|
|00000f40| 20 50 53 5a 2c 20 70 73 | 7a 54 79 70 65 20 61 73 | PSZ, ps|zType as|
|00000f50| 20 50 53 5a 20 29 20 61 | 73 20 57 6f 72 64 20 50 | PSZ ) a|s Word P|
|00000f60| 61 73 63 61 6c 3a 4b 65 | 72 6e 65 6c 2e 36 30 00 |ascal:Ke|rnel.60.|
|00000f70| 40 00 0d 00 00 00 46 52 | 45 45 52 45 53 4f 55 52 |@.....FR|EERESOUR|
|00000f80| 43 45 00 51 00 02 00 00 | 00 02 00 44 00 02 00 00 |CE.Q....|...D....|
|00000f90| 00 01 00 48 00 04 00 00 | 00 f1 2e 66 2e 4d 00 02 |...H....|...f.M..|
|00000fa0| 00 00 00 11 00 45 00 02 | 00 00 00 00 00 46 00 02 |.....E..|.....F..|
|00000fb0| 00 00 00 02 00 47 00 02 | 00 00 00 ff ff 49 00 02 |.....G..|.....I..|
|00000fc0| 00 00 00 00 00 41 00 49 | 00 00 00 5f 44 4c 4c 20 |.....A.I|..._DLL |
|00000fd0| 66 75 6e 63 74 69 6f 6e | 20 46 72 65 65 52 65 73 |function| FreeRes|
|00000fe0| 6f 75 72 63 65 28 20 68 | 52 65 73 20 61 73 20 57 |ource( h|Res as W|
|00000ff0| 6f 72 64 20 29 20 61 73 | 20 4c 6f 67 69 63 20 50 |ord ) as| Logic P|
|00001000| 61 73 63 61 6c 3a 4b 65 | 72 6e 65 6c 2e 36 33 0d |ascal:Ke|rnel.63.|
|00001010| 0a 0d 0a 00 4e 00 45 00 | 00 00 5f 44 4c 4c 20 66 |....N.E.|.._DLL f|
|00001020| 75 6e 63 74 69 6f 6e 20 | 46 72 65 65 52 65 73 6f |unction |FreeReso|
|00001030| 75 72 63 65 28 20 68 52 | 65 73 20 61 73 20 57 6f |urce( hR|es as Wo|
|00001040| 72 64 20 29 20 61 73 20 | 4c 6f 67 69 63 20 50 61 |rd ) as |Logic Pa|
|00001050| 73 63 61 6c 3a 4b 65 72 | 6e 65 6c 2e 36 33 00 40 |scal:Ker|nel.63.@|
|00001060| 00 0e 00 00 00 47 45 54 | 42 55 54 54 4f 4e 52 45 |.....GET|BUTTONRE|
|00001070| 43 54 00 51 00 02 00 00 | 00 01 00 44 00 02 00 00 |CT.Q....|...D....|
|00001080| 00 03 00 48 00 04 00 00 | 00 f2 2e 66 2e 4d 00 02 |...H....|...f.M..|
|00001090| 00 00 00 12 00 45 00 02 | 00 00 00 00 00 46 00 02 |.....E..|.....F..|
|000010a0| 00 00 00 02 00 47 00 02 | 00 00 00 ff ff 49 00 02 |.....G..|.....I..|
|000010b0| 00 00 00 00 00 41 00 65 | 01 00 00 73 74 61 74 69 |.....A.e|...stati|
|000010c0| 63 20 70 72 6f 63 65 64 | 75 72 65 20 47 65 74 42 |c proced|ure GetB|
|000010d0| 75 74 74 6f 6e 52 65 63 | 74 28 20 70 52 65 63 20 |uttonRec|t( pRec |
|000010e0| 61 73 20 54 4f 4f 4c 42 | 41 52 5f 49 4e 46 4f 2c |as TOOLB|AR_INFO,|
|000010f0| 20 69 43 65 6c 6c 20 61 | 73 20 53 68 6f 72 74 49 | iCell a|s ShortI|
|00001100| 6e 74 2c 20 70 52 65 63 | 74 20 61 73 20 5f 57 49 |nt, pRec|t as _WI|
|00001110| 4e 52 45 43 54 20 29 20 | 50 61 73 63 61 6c 0d 0a |NRECT ) |Pascal..|
|00001120| 0d 0a 70 52 65 63 74 2e | 6c 65 66 74 20 09 09 3a |..pRect.|left ..:|
|00001130| 3d 20 53 68 6f 72 74 49 | 6e 74 28 20 70 52 65 63 |= ShortI|nt( pRec|
|00001140| 2e 62 6d 45 64 67 65 5b | 20 69 43 65 6c 6c 20 5d |.bmEdge[| iCell ]|
|00001150| 20 29 20 2d 20 31 0d 0a | 70 52 65 63 74 2e 72 69 | ) - 1..|pRect.ri|
|00001160| 67 68 74 09 09 3a 3d 20 | 53 68 6f 72 74 49 6e 74 |ght..:= |ShortInt|
|00001170| 28 20 70 52 65 63 74 2e | 6c 65 66 74 20 2b 20 53 |( pRect.|left + S|
|00001180| 68 6f 72 74 49 6e 74 28 | 20 70 52 65 63 2e 62 6d |hortInt(| pRec.bm|
|00001190| 57 69 64 74 68 20 29 20 | 29 20 2b 20 31 0d 0a 70 |Width ) |) + 1..p|
|000011a0| 52 65 63 74 2e 74 6f 70 | 09 09 3a 3d 20 53 68 6f |Rect.top|..:= Sho|
|000011b0| 72 74 49 6e 74 28 20 70 | 52 65 63 2e 62 6f 72 64 |rtInt( p|Rec.bord|
|000011c0| 65 72 20 2a 20 32 20 29 | 20 2d 20 31 0d 0a 70 52 |er * 2 )| - 1..pR|
|000011d0| 65 63 74 2e 62 6f 74 74 | 6f 6d 09 3a 3d 20 53 68 |ect.bott|om.:= Sh|
|000011e0| 6f 72 74 49 6e 74 28 20 | 70 52 65 63 74 2e 74 6f |ortInt( |pRect.to|
|000011f0| 70 20 2b 20 53 68 6f 72 | 74 49 6e 74 28 20 70 52 |p + Shor|tInt( pR|
|00001200| 65 63 2e 62 6d 48 65 69 | 67 68 74 20 29 20 29 20 |ec.bmHei|ght ) ) |
|00001210| 2b 20 31 0d 0a 0d 0a 72 | 65 74 75 72 6e 0d 0a 00 |+ 1....r|eturn...|
|00001220| 4e 00 64 00 00 00 73 74 | 61 74 69 63 20 70 72 6f |N.d...st|atic pro|
|00001230| 63 65 64 75 72 65 20 47 | 65 74 42 75 74 74 6f 6e |cedure G|etButton|
|00001240| 52 65 63 74 28 20 70 52 | 65 63 20 61 73 20 54 4f |Rect( pR|ec as TO|
|00001250| 4f 4c 42 41 52 5f 49 4e | 46 4f 2c 20 69 43 65 6c |OLBAR_IN|FO, iCel|
|00001260| 6c 20 61 73 20 53 68 6f | 72 74 49 6e 74 2c 20 70 |l as Sho|rtInt, p|
|00001270| 52 65 63 74 20 61 73 20 | 5f 57 49 4e 52 45 43 54 |Rect as |_WINRECT|
|00001280| 20 29 20 50 61 73 63 61 | 6c 00 40 00 08 00 00 00 | ) Pasca|l.@.....|
|00001290| 47 45 54 50 52 4f 50 00 | 51 00 02 00 00 00 02 00 |GETPROP.|Q.......|
|000012a0| 44 00 02 00 00 00 01 00 | 48 00 04 00 00 00 f2 2e |D.......|H.......|
|000012b0| 66 2e 4d 00 02 00 00 00 | 11 00 45 00 02 00 00 00 |f.M.....|..E.....|
|000012c0| 00 00 46 00 02 00 00 00 | 02 00 47 00 02 00 00 00 |..F.....|..G.....|
|000012d0| ff ff 49 00 02 00 00 00 | 00 00 41 00 50 00 00 00 |..I.....|..A.P...|
|000012e0| 5f 44 4c 4c 20 66 75 6e | 63 74 69 6f 6e 20 47 65 |_DLL fun|ction Ge|
|000012f0| 74 50 72 6f 70 28 20 68 | 57 6e 64 20 61 73 20 57 |tProp( h|Wnd as W|
|00001300| 6f 72 64 2c 20 70 73 7a | 53 74 72 20 61 73 20 50 |ord, psz|Str as P|
|00001310| 53 5a 20 29 20 61 73 20 | 57 6f 72 64 20 50 61 73 |SZ ) as |Word Pas|
|00001320| 63 61 6c 3a 55 73 65 72 | 2e 32 35 0d 0a 0d 0a 00 |cal:User|.25.....|
|00001330| 4e 00 4c 00 00 00 5f 44 | 4c 4c 20 66 75 6e 63 74 |N.L..._D|LL funct|
|00001340| 69 6f 6e 20 47 65 74 50 | 72 6f 70 28 20 68 57 6e |ion GetP|rop( hWn|
|00001350| 64 20 61 73 20 57 6f 72 | 64 2c 20 70 73 7a 53 74 |d as Wor|d, pszSt|
|00001360| 72 20 61 73 20 50 53 5a | 20 29 20 61 73 20 57 6f |r as PSZ| ) as Wo|
|00001370| 72 64 20 50 61 73 63 61 | 6c 3a 55 73 65 72 2e 32 |rd Pasca|l:User.2|
|00001380| 35 00 40 00 0c 00 00 00 | 49 4e 49 54 54 4f 4f 4c |5.@.....|INITTOOL|
|00001390| 42 41 52 00 51 00 02 00 | 00 00 01 00 44 00 02 00 |BAR.Q...|....D...|
|000013a0| 00 00 03 00 48 00 04 00 | 00 00 f2 2e 66 2e 4d 00 |....H...|....f.M.|
|000013b0| 02 00 00 00 11 00 45 00 | 02 00 00 00 00 00 46 00 |......E.|......F.|
|000013c0| 02 00 00 00 02 00 47 00 | 02 00 00 00 ff ff 49 00 |......G.|......I.|
|000013d0| 02 00 00 00 00 00 41 00 | 77 0a 00 00 73 74 61 74 |......A.|w...stat|
|000013e0| 69 63 20 66 75 6e 63 74 | 69 6f 6e 20 49 6e 69 74 |ic funct|ion Init|
|000013f0| 54 6f 6f 6c 62 61 72 28 | 20 68 57 6e 64 20 61 73 |Toolbar(| hWnd as|
|00001400| 20 57 6f 72 64 2c 20 6c | 50 61 72 61 6d 20 61 73 | Word, l|Param as|
|00001410| 20 4c 6f 6e 67 49 6e 74 | 20 29 20 61 73 20 4c 6f | LongInt| ) as Lo|
|00001420| 6e 67 49 6e 74 20 50 61 | 73 63 61 6c 0d 0a 0d 0a |ngInt Pa|scal....|
|00001430| 6c 6f 63 61 6c 20 70 52 | 65 63 20 61 73 20 20 54 |local pR|ec as T|
|00001440| 4f 4f 4c 42 41 52 5f 49 | 4e 46 4f 0d 0a 6c 6f 63 |OOLBAR_I|NFO..loc|
|00001450| 61 6c 20 70 49 6e 66 6f | 20 61 73 20 5f 57 49 4e |al pInfo| as _WIN|
|00001460| 43 52 45 41 54 45 53 54 | 52 55 43 54 0d 0a 6c 6f |CREATEST|RUCT..lo|
|00001470| 63 61 6c 20 77 4d 61 72 | 6b 20 61 73 20 57 6f 72 |cal wMar|k as Wor|
|00001480| 64 0d 0a 6c 6f 63 61 6c | 20 68 42 69 74 4d 61 70 |d..local| hBitMap|
|00001490| 20 61 73 20 57 6f 72 64 | 0d 0a 6c 6f 63 61 6c 20 | as Word|..local |
|000014a0| 68 44 43 20 61 73 20 57 | 6f 72 64 0d 0a 6c 6f 63 |hDC as W|ord..loc|
|000014b0| 61 6c 20 70 42 69 74 4d | 61 70 20 61 73 20 5f 57 |al pBitM|ap as _W|
|000014c0| 49 4e 42 49 54 4d 41 50 | 49 4e 46 4f 48 45 41 44 |INBITMAP|INFOHEAD|
|000014d0| 45 52 0d 0a 6c 6f 63 61 | 6c 20 70 49 6e 69 74 42 |ER..loca|l pInitB|
|000014e0| 69 74 73 20 61 73 20 50 | 74 72 0d 0a 6c 6f 63 61 |its as P|tr..loca|
|000014f0| 6c 20 70 57 6e 64 50 72 | 6f 63 20 61 73 20 50 74 |l pWndPr|oc as Pt|
|00001500| 72 0d 0a 6c 6f 63 61 6c | 20 70 42 4d 20 69 73 20 |r..local| pBM is |
|00001510| 5f 57 49 4e 42 49 54 4d | 41 50 0d 0a 6c 6f 63 61 |_WINBITM|AP..loca|
|00001520| 6c 20 6e 20 61 73 20 53 | 68 6f 72 74 49 6e 74 0d |l n as S|hortInt.|
|00001530| 0a 0d 0a 2f 2f 20 47 65 | 74 20 74 68 65 20 69 6e |...// Ge|t the in|
|00001540| 63 6f 6d 69 6e 67 20 6c | 50 61 72 61 6d 2c 20 77 |coming l|Param, w|
|00001550| 68 69 63 68 20 69 6e 20 | 74 68 69 73 20 63 61 73 |hich in |this cas|
|00001560| 65 20 69 73 20 61 20 70 | 6f 69 6e 74 65 72 20 74 |e is a p|ointer t|
|00001570| 6f 20 61 20 5f 57 49 4e | 43 52 45 41 54 45 53 54 |o a _WIN|CREATEST|
|00001580| 52 55 43 54 0d 0a 0d 0a | 70 49 6e 66 6f 20 3a 3d |RUCT....|pInfo :=|
|00001590| 20 50 74 72 28 20 5f 43 | 41 53 54 2c 20 6c 50 61 | Ptr( _C|AST, lPa|
|000015a0| 72 61 6d 20 29 0d 0a 0d | 0a 2f 2f 20 4e 6f 77 20 |ram )...|.// Now |
|000015b0| 65 78 74 72 61 63 74 20 | 74 68 65 20 74 6f 6f 6c |extract |the tool|
|000015c0| 62 61 72 20 69 6e 66 6f | 20 72 65 63 6f 72 64 20 |bar info| record |
|000015d0| 66 72 6f 6d 20 74 68 65 | 20 5f 57 49 4e 43 52 45 |from the| _WINCRE|
|000015e0| 41 54 45 53 54 52 55 43 | 54 0d 0a 0d 0a 70 52 65 |ATESTRUC|T....pRe|
|000015f0| 63 20 3a 3d 20 70 49 6e | 66 6f 2e 6c 70 43 72 65 |c := pIn|fo.lpCre|
|00001600| 61 74 65 50 61 72 61 6d | 73 0d 0a 0d 0a 2f 2f 20 |ateParam|s....// |
|00001610| 49 6e 69 74 69 61 6c 69 | 7a 65 20 74 68 65 20 62 |Initiali|ze the b|
|00001620| 6f 72 64 65 72 20 76 61 | 6c 75 65 20 66 6f 72 20 |order va|lue for |
|00001630| 70 72 6f 70 65 72 20 62 | 69 74 6d 61 70 20 70 6c |proper b|itmap pl|
|00001640| 61 63 65 6d 65 6e 74 0d | 0a 0d 0a 70 52 65 63 2e |acement.|...pRec.|
|00001650| 62 6f 72 64 65 72 09 3a | 3d 20 57 6f 72 64 28 20 |border.:|= Word( |
|00001660| 28 20 47 65 74 53 79 73 | 74 65 6d 4d 65 74 72 69 |( GetSys|temMetri|
|00001670| 63 73 28 20 53 4d 5f 43 | 58 46 52 41 4d 45 20 29 |cs( SM_C|XFRAME )|
|00001680| 20 2b 20 33 20 29 20 2f | 20 32 20 29 0d 0a 0d 0a | + 3 ) /| 2 )....|
|00001690| 2f 2f 20 53 74 61 73 68 | 20 61 20 70 6f 69 6e 74 |// Stash| a point|
|000016a0| 65 72 20 74 6f 20 74 68 | 65 20 74 6f 6f 6c 62 61 |er to th|e toolba|
|000016b0| 72 20 69 6e 66 6f 20 69 | 6e 20 74 68 65 20 77 69 |r info i|n the wi|
|000016c0| 6e 64 6f 77 0d 0a 0d 0a | 53 65 74 57 69 6e 64 6f |ndow....|SetWindo|
|000016d0| 77 4c 6f 6e 67 28 20 68 | 57 6e 64 2c 20 30 2c 20 |wLong( h|Wnd, 0, |
|000016e0| 4c 6f 6e 67 49 6e 74 28 | 20 5f 43 41 53 54 2c 20 |LongInt(| _CAST, |
|000016f0| 70 52 65 63 20 29 20 29 | 0d 0a 0d 0a 2f 2f 20 43 |pRec ) )|....// C|
|00001700| 72 65 61 74 65 20 61 20 | 6d 61 72 6b 65 72 20 66 |reate a |marker f|
|00001710| 6f 72 20 62 69 74 6d 61 | 70 20 70 6c 61 63 65 6d |or bitma|p placem|
|00001720| 65 6e 74 0d 0a 0d 0a 77 | 4d 61 72 6b 20 3a 3d 20 |ent....w|Mark := |
|00001730| 70 52 65 63 2e 62 6f 72 | 64 65 72 20 2a 20 32 0d |pRec.bor|der * 2.|
|00001740| 0a 0d 0a 2f 2f 20 4c 6f | 61 64 20 75 70 20 74 68 |...// Lo|ad up th|
|00001750| 65 20 62 69 74 6d 61 70 | 73 0d 0a 0d 0a 66 6f 72 |e bitmap|s....for|
|00001760| 20 6e 20 3a 3d 20 31 20 | 74 6f 20 53 68 6f 72 74 | n := 1 |to Short|
|00001770| 49 6e 74 28 20 70 52 65 | 63 2e 62 6d 43 6f 75 6e |Int( pRe|c.bmCoun|
|00001780| 74 20 29 0d 0a 09 69 66 | 20 70 52 65 63 2e 62 6d |t )...if| pRec.bm|
|00001790| 52 65 73 49 44 5b 20 6e | 20 5d 20 3d 3d 20 30 0d |ResID[ n| ] == 0.|
|000017a0| 0a 09 09 2f 2f 20 49 66 | 20 74 68 65 20 72 65 73 |...// If| the res|
|000017b0| 6f 75 72 63 65 20 49 44 | 20 69 73 20 7a 65 72 6f |ource ID| is zero|
|000017c0| 2c 20 6c 65 61 76 65 20 | 61 20 67 61 70 20 6f 6e |, leave |a gap on|
|000017d0| 20 74 68 65 20 74 6f 6f | 6c 62 61 72 0d 0a 09 09 | the too|lbar....|
|000017e0| 0d 0a 09 09 77 4d 61 72 | 6b 20 2b 3d 20 28 20 70 |....wMar|k += ( p|
|000017f0| 52 65 63 2e 62 6f 72 64 | 65 72 20 2a 20 33 20 29 |Rec.bord|er * 3 )|
|00001800| 0d 0a 09 65 6c 73 65 0d | 0a 09 09 2f 2f 20 4c 6f |...else.|...// Lo|
|00001810| 63 61 74 65 20 74 68 65 | 20 72 65 73 6f 75 72 63 |cate the| resourc|
|00001820| 65 0d 0a 09 09 0d 0a 09 | 09 68 42 69 74 4d 61 70 |e.......|.hBitMap|
|00001830| 20 3a 3d 20 46 69 6e 64 | 52 65 73 6f 75 72 63 65 | := Find|Resource|
|00001840| 28 20 70 52 65 63 2e 62 | 6d 49 6e 73 74 2c 20 20 |( pRec.b|mInst, |
|00001850| 50 53 5a 28 20 5f 43 41 | 53 54 2c 20 44 57 6f 72 |PSZ( _CA|ST, DWor|
|00001860| 64 28 20 70 52 65 63 2e | 62 6d 52 65 73 49 44 5b |d( pRec.|bmResID[|
|00001870| 20 6e 20 5d 20 29 20 29 | 2c 20 50 53 5a 28 20 5f | n ] ) )|, PSZ( _|
|00001880| 43 41 53 54 2c 20 44 57 | 6f 72 64 28 20 43 46 5f |CAST, DW|ord( CF_|
|00001890| 42 49 54 4d 41 50 20 29 | 20 29 20 29 20 0d 0a 09 |BITMAP )| ) ) ...|
|000018a0| 09 0d 0a 09 09 2f 2f 20 | 4c 6f 63 6b 20 26 20 4c |.....// |Lock & L|
|000018b0| 6f 61 64 20 28 61 63 74 | 75 61 6c 6c 79 20 69 74 |oad (act|ually it|
|000018c0| 27 73 20 4c 6f 61 64 20 | 26 20 4c 6f 63 6b 2c 20 |'s Load |& Lock, |
|000018d0| 49 20 67 75 65 73 73 29 | 0d 0a 09 09 0d 0a 09 09 |I guess)|........|
|000018e0| 68 42 69 74 4d 61 70 20 | 3a 3d 20 4c 6f 61 64 52 |hBitMap |:= LoadR|
|000018f0| 65 73 6f 75 72 63 65 28 | 20 70 52 65 63 2e 62 6d |esource(| pRec.bm|
|00001900| 49 6e 73 74 2c 20 68 42 | 69 74 4d 61 70 20 29 0d |Inst, hB|itMap ).|
|00001910| 0a 0d 0a 09 09 70 42 69 | 74 4d 61 70 20 3a 3d 20 |.....pBi|tMap := |
|00001920| 4c 6f 63 6b 52 65 73 6f | 75 72 63 65 28 20 68 42 |LockReso|urce( hB|
|00001930| 69 74 4d 61 70 20 29 0d | 0a 0d 0a 09 09 2f 2f 20 |itMap ).|.....// |
|00001940| 4c 6f 63 61 74 65 20 74 | 68 65 20 69 6e 69 74 69 |Locate t|he initi|
|00001950| 61 6c 69 7a 61 74 69 6f | 6e 20 62 69 74 73 0d 0a |alizatio|n bits..|
|00001960| 09 09 0d 0a 09 09 70 49 | 6e 69 74 42 69 74 73 20 |......pI|nitBits |
|00001970| 3a 3d 20 50 74 72 28 20 | 5f 43 41 53 54 2c 20 44 |:= Ptr( |_CAST, D|
|00001980| 57 6f 72 64 28 20 5f 43 | 41 53 54 2c 20 70 42 69 |Word( _C|AST, pBi|
|00001990| 74 4d 61 70 20 29 20 2b | 20 44 57 6f 72 64 28 20 |tMap ) +| DWord( |
|000019a0| 70 42 69 74 4d 61 70 2e | 62 69 53 69 7a 65 20 29 |pBitMap.|biSize )|
|000019b0| 20 2b 20 44 57 6f 72 64 | 28 20 31 36 20 2a 20 5f | + DWord|( 16 * _|
|000019c0| 73 69 7a 65 6f 66 28 20 | 4c 6f 6e 67 49 6e 74 20 |sizeof( |LongInt |
|000019d0| 29 20 29 20 29 0d 0a 09 | 09 0d 0a 09 09 2f 2f 20 |) ) )...|.....// |
|000019e0| 47 65 74 20 61 20 64 69 | 73 70 6c 61 79 20 63 6f |Get a di|splay co|
|000019f0| 6e 74 65 78 74 0d 0a 09 | 09 0d 0a 09 09 68 44 43 |ntext...|.....hDC|
|00001a00| 20 3a 3d 20 47 65 74 44 | 43 28 20 30 20 29 0d 0a | := GetD|C( 0 )..|
|00001a10| 0d 0a 09 09 2f 2f 20 43 | 6f 70 79 20 74 68 65 20 |....// C|opy the |
|00001a20| 62 69 74 6d 61 70 20 74 | 6f 20 74 68 65 20 64 69 |bitmap t|o the di|
|00001a30| 73 70 6c 61 79 20 63 6f | 6e 74 65 78 74 0d 0a 09 |splay co|ntext...|
|00001a40| 09 0d 0a 09 09 70 52 65 | 63 2e 62 6d 48 61 6e 64 |.....pRe|c.bmHand|
|00001a50| 6c 65 5b 20 6e 20 5d 20 | 3a 3d 20 43 72 65 61 74 |le[ n ] |:= Creat|
|00001a60| 65 44 49 42 69 74 6d 61 | 70 28 20 68 44 43 2c 20 |eDIBitma|p( hDC, |
|00001a70| 70 42 69 74 4d 61 70 2c | 20 43 42 4d 5f 49 4e 49 |pBitMap,| CBM_INI|
|00001a80| 54 2c 20 70 49 6e 69 74 | 42 69 74 73 2c 20 70 42 |T, pInit|Bits, pB|
|00001a90| 69 74 4d 61 70 2c 20 44 | 49 42 5f 52 47 42 5f 43 |itMap, D|IB_RGB_C|
|00001aa0| 4f 4c 4f 52 53 20 29 0d | 0a 09 09 0d 0a 09 09 2f |OLORS ).|......./|
|00001ab0| 2f 20 44 65 61 74 68 20 | 74 6f 20 74 68 65 20 64 |/ Death |to the d|
|00001ac0| 69 73 70 6c 61 79 20 63 | 6f 6e 74 65 78 74 21 0d |isplay c|ontext!.|
|00001ad0| 0a 09 09 0d 0a 09 09 52 | 65 6c 65 61 73 65 44 43 |.......R|eleaseDC|
|00001ae0| 28 20 30 2c 20 68 44 43 | 20 29 0d 0a 09 09 0d 0a |( 0, hDC| )......|
|00001af0| 09 09 2f 2f 20 55 6e 6c | 6f 63 6b 20 26 20 75 6e |..// Unl|ock & un|
|00001b00| 6c 6f 61 64 0d 0a 09 09 | 0d 0a 09 09 55 6e 6c 6f |load....|....Unlo|
|00001b10| 63 6b 52 65 73 6f 75 72 | 63 65 28 20 68 42 69 74 |ckResour|ce( hBit|
|00001b20| 4d 61 70 20 29 0d 0a 09 | 09 0d 0a 09 09 46 72 65 |Map )...|.....Fre|
|00001b30| 65 52 65 73 6f 75 72 63 | 65 28 20 68 42 69 74 4d |eResourc|e( hBitM|
|00001b40| 61 70 20 29 0d 0a 09 09 | 0d 0a 09 09 2f 2f 20 54 |ap )....|....// T|
|00001b50| 68 65 20 66 69 72 73 74 | 20 74 69 6d 65 20 74 68 |he first| time th|
|00001b60| 72 75 2c 20 77 65 20 67 | 6f 74 74 61 20 64 6f 20 |ru, we g|otta do |
|00001b70| 73 6f 6d 65 20 73 74 75 | 66 66 0d 0a 09 09 0d 0a |some stu|ff......|
|00001b80| 09 09 69 66 20 6e 20 3d | 3d 20 31 0d 0a 09 09 09 |..if n =|= 1.....|
|00001b90| 47 65 74 4f 62 6a 65 63 | 74 28 20 70 52 65 63 2e |GetObjec|t( pRec.|
|00001ba0| 62 6d 48 61 6e 64 6c 65 | 5b 20 31 20 5d 2c 20 5f |bmHandle|[ 1 ], _|
|00001bb0| 73 69 7a 65 6f 66 28 20 | 5f 57 49 4e 42 49 54 4d |sizeof( |_WINBITM|
|00001bc0| 41 50 20 29 2c 20 40 70 | 42 4d 20 29 0d 0a 0d 0a |AP ), @p|BM )....|
|00001bd0| 09 09 09 70 52 65 63 2e | 63 61 70 74 75 72 65 42 |...pRec.|captureB|
|00001be0| 75 74 74 6f 6e 20 09 3a | 3d 20 30 0d 0a 09 09 09 |utton .:|= 0.....|
|00001bf0| 70 52 65 63 2e 62 6d 57 | 69 64 74 68 09 09 3a 3d |pRec.bmW|idth..:=|
|00001c00| 20 57 6f 72 64 28 20 70 | 42 4d 2e 62 6d 57 69 64 | Word( p|BM.bmWid|
|00001c10| 74 68 20 20 29 0d 0a 09 | 09 09 70 52 65 63 2e 62 |th )...|..pRec.b|
|00001c20| 6d 48 65 69 67 68 74 09 | 09 3a 3d 20 57 6f 72 64 |mHeight.|.:= Word|
|00001c30| 28 20 70 42 4d 2e 62 6d | 48 65 69 67 68 74 20 29 |( pBM.bm|Height )|
|00001c40| 0d 0a 09 09 09 70 52 65 | 63 2e 68 65 69 67 68 74 |.....pRe|c.height|
|00001c50| 20 09 09 09 3a 3d 20 57 | 6f 72 64 28 20 70 42 4d | ...:= W|ord( pBM|
|00001c60| 2e 62 6d 48 65 69 67 68 | 74 20 29 20 2b 20 28 20 |.bmHeigh|t ) + ( |
|00001c70| 70 52 65 63 2e 62 6f 72 | 64 65 72 20 2a 20 34 20 |pRec.bor|der * 4 |
|00001c80| 29 0d 0a 09 09 65 6e 64 | 69 66 0d 0a 09 09 0d 0a |)....end|if......|
|00001c90| 09 09 2f 2f 20 53 65 74 | 20 74 68 65 20 6c 65 66 |..// Set| the lef|
|00001ca0| 74 20 65 64 67 65 20 6f | 66 20 74 68 69 73 20 62 |t edge o|f this b|
|00001cb0| 69 74 6d 61 70 0d 0a 09 | 09 0d 0a 09 09 70 52 65 |itmap...|.....pRe|
|00001cc0| 63 2e 20 62 6d 45 64 67 | 65 5b 20 6e 20 5d 20 3a |c. bmEdg|e[ n ] :|
|00001cd0| 3d 20 77 4d 61 72 6b 3b | 0d 0a 09 09 0d 0a 09 09 |= wMark;|........|
|00001ce0| 2f 2f 20 49 6e 69 74 20 | 65 6e 61 62 6c 65 64 20 |// Init |enabled |
|00001cf0| 74 6f 20 2e 54 2e 0d 0a | 09 09 0d 0a 09 09 70 52 |to .T...|......pR|
|00001d00| 65 63 2e 62 6d 45 6e 61 | 62 6c 65 64 5b 20 6e 20 |ec.bmEna|bled[ n |
|00001d10| 5d 20 3a 3d 20 2e 54 2e | 0d 0a 09 09 0d 0a 09 09 |] := .T.|........|
|00001d20| 2f 2f 20 4e 6f 77 20 61 | 64 6a 75 73 74 20 74 68 |// Now a|djust th|
|00001d30| 65 20 6d 61 72 6b 65 72 | 0d 0a 09 09 0d 0a 09 09 |e marker|........|
|00001d40| 77 4d 61 72 6b 20 2b 3d | 20 70 52 65 63 2e 62 6d |wMark +=| pRec.bm|
|00001d50| 57 69 64 74 68 20 2b 20 | 28 20 70 52 65 63 2e 62 |Width + |( pRec.b|
|00001d60| 6f 72 64 65 72 20 2a 20 | 32 20 29 0d 0a 09 65 6e |order * |2 )...en|
|00001d70| 64 69 66 0d 0a 6e 65 78 | 74 0d 0a 0d 0a 2f 2f 20 |dif..nex|t....// |
|00001d80| 54 68 65 20 62 69 74 6d | 61 70 73 20 68 61 76 65 |The bitm|aps have|
|00001d90| 20 62 65 65 6e 20 69 6e | 73 74 61 6c 6c 65 64 2c | been in|stalled,|
|00001da0| 20 73 6f 20 70 6f 73 69 | 74 69 6f 6e 20 74 68 65 | so posi|tion the|
|00001db0| 20 77 69 6e 64 6f 77 0d | 0a 0d 0a 52 65 73 69 7a | window.|...Resiz|
|00001dc0| 65 54 6f 6f 6c 62 61 72 | 28 20 20 68 57 6e 64 20 |eToolbar|( hWnd |
|00001dd0| 29 0d 0a 09 09 0d 0a 2f | 2f 20 41 74 74 61 63 68 |)....../|/ Attach|
|00001de0| 20 74 68 65 20 74 6f 6f | 6c 62 61 72 20 77 69 6e | the too|lbar win|
|00001df0| 64 6f 77 20 68 61 6e 64 | 6c 65 20 74 6f 20 74 68 |dow hand|le to th|
|00001e00| 65 20 70 61 72 65 6e 74 | 0d 0a 0d 0a 53 65 74 50 |e parent|....SetP|
|00001e10| 72 6f 70 28 20 47 65 74 | 50 61 72 65 6e 74 28 20 |rop( Get|Parent( |
|00001e20| 68 57 6e 64 20 29 2c 20 | 50 53 5a 28 20 22 56 4f |hWnd ), |PSZ( "VO|
|00001e30| 54 6f 6f 6c 42 61 72 22 | 20 29 2c 20 68 57 6e 64 |ToolBar"| ), hWnd|
|00001e40| 20 29 0d 0a 09 09 0d 0a | 72 65 74 75 72 6e 20 30 | )......|return 0|
|00001e50| 0d 0a 00 4e 00 51 00 00 | 00 73 74 61 74 69 63 20 |...N.Q..|.static |
|00001e60| 66 75 6e 63 74 69 6f 6e | 20 49 6e 69 74 54 6f 6f |function| InitToo|
|00001e70| 6c 62 61 72 28 20 68 57 | 6e 64 20 61 73 20 57 6f |lbar( hW|nd as Wo|
|00001e80| 72 64 2c 20 6c 50 61 72 | 61 6d 20 61 73 20 4c 6f |rd, lPar|am as Lo|
|00001e90| 6e 67 49 6e 74 20 29 20 | 61 73 20 4c 6f 6e 67 49 |ngInt ) |as LongI|
|00001ea0| 6e 74 20 50 61 73 63 61 | 6c 00 40 00 0d 00 00 00 |nt Pasca|l.@.....|
|00001eb0| 4c 4f 41 44 52 45 53 4f | 55 52 43 45 00 51 00 02 |LOADRESO|URCE.Q..|
|00001ec0| 00 00 00 02 00 44 00 02 | 00 00 00 01 00 48 00 04 |.....D..|.....H..|
|00001ed0| 00 00 00 f2 2e 66 2e 4d | 00 02 00 00 00 11 00 45 |.....f.M|.......E|
|00001ee0| 00 02 00 00 00 00 00 46 | 00 02 00 00 00 02 00 47 |.......F|.......G|
|00001ef0| 00 02 00 00 00 ff ff 49 | 00 02 00 00 00 00 00 41 |.......I|.......A|
|00001f00| 00 57 00 00 00 5f 44 4c | 4c 20 66 75 6e 63 74 69 |.W..._DL|L functi|
|00001f10| 6f 6e 20 4c 6f 61 64 52 | 65 73 6f 75 72 63 65 28 |on LoadR|esource(|
|00001f20| 20 68 49 6e 73 74 20 61 | 73 20 57 6f 72 64 2c 20 | hInst a|s Word, |
|00001f30| 68 52 65 73 20 61 73 20 | 57 6f 72 64 20 29 20 61 |hRes as |Word ) a|
|00001f40| 73 20 57 6f 72 64 20 50 | 61 73 63 61 6c 3a 4b 65 |s Word P|ascal:Ke|
|00001f50| 72 6e 65 6c 2e 36 31 0d | 0a 0d 0a 00 4e 00 53 00 |rnel.61.|....N.S.|
|00001f60| 00 00 5f 44 4c 4c 20 66 | 75 6e 63 74 69 6f 6e 20 |.._DLL f|unction |
|00001f70| 4c 6f 61 64 52 65 73 6f | 75 72 63 65 28 20 68 49 |LoadReso|urce( hI|
|00001f80| 6e 73 74 20 61 73 20 57 | 6f 72 64 2c 20 68 52 65 |nst as W|ord, hRe|
|00001f90| 73 20 61 73 20 57 6f 72 | 64 20 29 20 61 73 20 57 |s as Wor|d ) as W|
|00001fa0| 6f 72 64 20 50 61 73 63 | 61 6c 3a 4b 65 72 6e 65 |ord Pasc|al:Kerne|
|00001fb0| 6c 2e 36 31 00 40 00 0d | 00 00 00 4c 4f 43 4b 52 |l.61.@..|...LOCKR|
|00001fc0| 45 53 4f 55 52 43 45 00 | 51 00 02 00 00 00 02 00 |ESOURCE.|Q.......|
|00001fd0| 44 00 02 00 00 00 01 00 | 48 00 04 00 00 00 f2 2e |D.......|H.......|
|00001fe0| 66 2e 4d 00 02 00 00 00 | 11 00 45 00 02 00 00 00 |f.M.....|..E.....|
|00001ff0| 00 00 46 00 02 00 00 00 | 02 00 47 00 02 00 00 00 |..F.....|..G.....|
|00002000| ff ff 49 00 02 00 00 00 | 00 00 41 00 47 00 00 00 |..I.....|..A.G...|
|00002010| 5f 44 4c 4c 20 66 75 6e | 63 74 69 6f 6e 20 4c 6f |_DLL fun|ction Lo|
|00002020| 63 6b 52 65 73 6f 75 72 | 63 65 28 20 68 52 65 73 |ckResour|ce( hRes|
|00002030| 20 61 73 20 57 6f 72 64 | 20 29 20 61 73 20 50 74 | as Word| ) as Pt|
|00002040| 72 20 50 61 73 63 61 6c | 3a 4b 65 72 6e 65 6c 2e |r Pascal|:Kernel.|
|00002050| 36 32 0d 0a 0d 0a 00 4e | 00 43 00 00 00 5f 44 4c |62.....N|.C..._DL|
|00002060| 4c 20 66 75 6e 63 74 69 | 6f 6e 20 4c 6f 63 6b 52 |L functi|on LockR|
|00002070| 65 73 6f 75 72 63 65 28 | 20 68 52 65 73 20 61 73 |esource(| hRes as|
|00002080| 20 57 6f 72 64 20 29 20 | 61 73 20 50 74 72 20 50 | Word ) |as Ptr P|
|00002090| 61 73 63 61 6c 3a 4b 65 | 72 6e 65 6c 2e 36 32 00 |ascal:Ke|rnel.62.|
|000020a0| 40 00 10 00 00 00 4d 4f | 55 53 45 42 55 54 54 4f |@.....MO|USEBUTTO|
|000020b0| 4e 44 4f 57 4e 00 51 00 | 02 00 00 00 01 00 44 00 |NDOWN.Q.|......D.|
|000020c0| 02 00 00 00 03 00 48 00 | 04 00 00 00 f2 2e 66 2e |......H.|......f.|
|000020d0| 4d 00 02 00 00 00 11 00 | 45 00 02 00 00 00 00 00 |M.......|E.......|
|000020e0| 46 00 02 00 00 00 02 00 | 47 00 02 00 00 00 ff ff |F.......|G.......|
|000020f0| 49 00 02 00 00 00 00 00 | 41 00 11 04 00 00 73 74 |I.......|A.....st|
|00002100| 61 74 69 63 20 66 75 6e | 63 74 69 6f 6e 20 4d 6f |atic fun|ction Mo|
|00002110| 75 73 65 42 75 74 74 6f | 6e 44 6f 77 6e 28 20 68 |useButto|nDown( h|
|00002120| 57 6e 64 20 61 73 20 57 | 6f 72 64 2c 20 6c 50 61 |Wnd as W|ord, lPa|
|00002130| 72 61 6d 20 61 73 20 4c | 6f 6e 67 49 6e 74 20 29 |ram as L|ongInt )|
|00002140| 20 61 73 20 4c 6f 6e 67 | 49 6e 74 20 50 61 73 63 | as Long|Int Pasc|
|00002150| 61 6c 0d 0a 0d 0a 6c 6f | 63 61 6c 20 70 52 65 63 |al....lo|cal pRec|
|00002160| 20 61 73 20 54 4f 4f 4c | 42 41 52 5f 49 4e 46 4f | as TOOL|BAR_INFO|
|00002170| 0d 0a 6c 6f 63 61 6c 20 | 73 52 65 63 74 20 69 73 |..local |sRect is|
|00002180| 20 5f 57 49 4e 52 45 43 | 54 0d 0a 6c 6f 63 61 6c | _WINREC|T..local|
|00002190| 20 6e 20 61 73 20 53 68 | 6f 72 74 49 6e 74 0d 0a | n as Sh|ortInt..|
|000021a0| 0d 0a 2f 2f 20 52 65 74 | 72 69 65 76 65 20 74 68 |..// Ret|rieve th|
|000021b0| 65 20 74 6f 6f 6c 62 61 | 72 20 69 6e 66 6f 20 72 |e toolba|r info r|
|000021c0| 65 63 6f 72 64 20 66 72 | 6f 6d 20 74 68 65 20 77 |ecord fr|om the w|
|000021d0| 69 6e 64 6f 77 0d 0a 0d | 0a 70 52 65 63 20 3a 3d |indow...|.pRec :=|
|000021e0| 20 50 74 72 28 20 5f 43 | 41 53 54 2c 20 47 65 74 | Ptr( _C|AST, Get|
|000021f0| 57 69 6e 64 6f 77 4c 6f | 6e 67 28 20 68 57 6e 64 |WindowLo|ng( hWnd|
|00002200| 2c 20 30 20 29 20 29 3b | 0d 0a 0d 0a 2f 2f 20 4c |, 0 ) );|....// L|
|00002210| 6f 6f 70 20 74 68 72 6f | 75 67 68 20 74 68 65 20 |oop thro|ugh the |
|00002220| 6c 69 73 74 20 6f 66 20 | 62 69 74 6d 61 70 73 20 |list of |bitmaps |
|00002230| 74 6f 20 73 65 65 20 69 | 66 20 61 20 6d 6f 75 73 |to see i|f a mous|
|00002240| 65 20 63 6c 69 63 6b 20 | 6f 63 63 75 72 72 65 64 |e click |occurred|
|00002250| 20 74 68 65 72 65 0d 0a | 0d 0a 6e 20 3a 3d 20 31 | there..|..n := 1|
|00002260| 0d 0a 0d 0a 77 68 69 6c | 65 20 70 52 65 63 2e 63 |....whil|e pRec.c|
|00002270| 61 70 74 75 72 65 42 75 | 74 74 6f 6e 20 3d 3d 20 |aptureBu|tton == |
|00002280| 30 20 2e 61 6e 64 2e 20 | 20 6e 20 3c 3d 20 53 68 |0 .and. | n <= Sh|
|00002290| 6f 72 74 49 6e 74 28 20 | 70 52 65 63 2e 62 6d 43 |ortInt( |pRec.bmC|
|000022a0| 6f 75 6e 74 20 29 0d 0a | 0d 0a 09 69 66 20 70 52 |ount )..|...if pR|
|000022b0| 65 63 2e 62 6d 52 65 73 | 49 44 5b 20 6e 20 5d 20 |ec.bmRes|ID[ n ] |
|000022c0| 21 3d 20 30 0d 0a 09 0d | 0a 09 09 2f 2f 20 47 65 |!= 0....|...// Ge|
|000022d0| 74 20 74 68 65 20 63 6f | 6f 72 64 69 6e 61 74 65 |t the co|ordinate|
|000022e0| 73 20 6f 66 20 74 68 69 | 73 20 62 69 74 6d 61 70 |s of thi|s bitmap|
|000022f0| 0d 0a 09 0d 0a 09 09 47 | 65 74 42 75 74 74 6f 6e |.......G|etButton|
|00002300| 52 65 63 74 28 20 70 52 | 65 63 2c 20 6e 2c 20 40 |Rect( pR|ec, n, @|
|00002310| 73 52 65 63 74 20 29 0d | 0a 09 0d 0a 09 09 2b 2b |sRect ).|......++|
|00002320| 73 52 65 63 74 2e 72 69 | 67 68 74 0d 0a 09 09 2b |sRect.ri|ght....+|
|00002330| 2b 73 52 65 63 74 2e 62 | 6f 74 74 6f 6d 0d 0a 09 |+sRect.b|ottom...|
|00002340| 09 0d 0a 09 09 2f 2f 20 | 49 66 20 74 68 65 20 6d |.....// |If the m|
|00002350| 6f 75 73 65 20 63 6c 69 | 63 6b 20 6f 63 63 75 72 |ouse cli|ck occur|
|00002360| 72 65 64 20 77 69 74 68 | 69 6e 20 74 68 65 20 63 |red with|in the c|
|00002370| 6f 6f 72 64 69 6e 61 74 | 65 73 2c 20 72 65 63 6f |oordinat|es, reco|
|00002380| 72 64 20 77 68 69 63 68 | 20 62 69 74 6d 61 70 20 |rd which| bitmap |
|00002390| 69 74 20 77 61 73 0d 0a | 09 0d 0a 09 09 69 66 20 |it was..|.....if |
|000023a0| 50 74 49 6e 52 65 63 74 | 28 20 40 73 52 65 63 74 |PtInRect|( @sRect|
|000023b0| 2c 20 6c 50 61 72 61 6d | 20 29 0d 0a 09 09 09 70 |, lParam| ).....p|
|000023c0| 52 65 63 2e 63 61 70 74 | 75 72 65 42 75 74 74 6f |Rec.capt|ureButto|
|000023d0| 6e 20 3a 3d 20 57 6f 72 | 64 28 20 6e 20 29 0d 0a |n := Wor|d( n )..|
|000023e0| 09 09 65 6e 64 69 66 0d | 0a 09 65 6e 64 69 66 0d |..endif.|..endif.|
|000023f0| 0a 09 0d 0a 09 6e 2b 2b | 0d 0a 65 6e 64 0d 0a 0d |.....n++|..end...|
|00002400| 0a 2f 2f 20 49 66 20 74 | 68 65 20 63 6c 69 63 6b |.// If t|he click|
|00002410| 20 6f 63 63 75 72 72 65 | 64 20 6f 6e 20 61 20 62 | occurre|d on a b|
|00002420| 69 74 6d 61 70 2c 20 77 | 65 20 6e 65 65 64 20 74 |itmap, w|e need t|
|00002430| 6f 20 64 6f 20 61 20 66 | 65 77 20 74 68 69 6e 67 |o do a f|ew thing|
|00002440| 73 0d 0a 0d 0a 69 66 20 | 70 52 65 63 2e 63 61 70 |s....if |pRec.cap|
|00002450| 74 75 72 65 42 75 74 74 | 6f 6e 20 21 3d 20 30 0d |tureButt|on != 0.|
|00002460| 0a 09 2f 2f 20 43 6c 6f | 73 65 20 6f 66 66 20 6d |..// Clo|se off m|
|00002470| 6f 75 73 65 20 69 6e 70 | 75 74 20 74 6f 20 61 6e |ouse inp|ut to an|
|00002480| 79 20 6f 74 68 65 72 20 | 77 69 6e 64 6f 77 73 20 |y other |windows |
|00002490| 20 0d 0a 09 0d 0a 09 53 | 65 74 43 61 70 74 75 72 | ......S|etCaptur|
|000024a0| 65 28 20 68 57 6e 64 20 | 29 0d 0a 09 0d 0a 09 2f |e( hWnd |)....../|
|000024b0| 2f 20 43 61 75 73 65 20 | 74 68 65 20 62 69 74 6d |/ Cause |the bitm|
|000024c0| 61 70 20 74 6f 20 62 65 | 20 72 65 64 72 61 77 6e |ap to be| redrawn|
|000024d0| 0d 0a 09 0d 0a 09 49 6e | 76 61 6c 69 64 61 74 65 |......In|validate|
|000024e0| 52 65 63 74 28 20 68 57 | 6e 64 2c 20 40 73 52 65 |Rect( hW|nd, @sRe|
|000024f0| 63 74 2c 20 2e 46 2e 20 | 29 0d 0a 65 6e 64 69 66 |ct, .F. |)..endif|
|00002500| 0d 0a 0d 0a 72 65 74 75 | 72 6e 20 30 0d 0a 00 4e |....retu|rn 0...N|
|00002510| 00 55 00 00 00 73 74 61 | 74 69 63 20 66 75 6e 63 |.U...sta|tic func|
|00002520| 74 69 6f 6e 20 4d 6f 75 | 73 65 42 75 74 74 6f 6e |tion Mou|seButton|
|00002530| 44 6f 77 6e 28 20 68 57 | 6e 64 20 61 73 20 57 6f |Down( hW|nd as Wo|
|00002540| 72 64 2c 20 6c 50 61 72 | 61 6d 20 61 73 20 4c 6f |rd, lPar|am as Lo|
|00002550| 6e 67 49 6e 74 20 29 20 | 61 73 20 4c 6f 6e 67 49 |ngInt ) |as LongI|
|00002560| 6e 74 20 50 61 73 63 61 | 6c 00 40 00 0e 00 00 00 |nt Pasca|l.@.....|
|00002570| 4d 4f 55 53 45 42 55 54 | 54 4f 4e 55 50 00 51 00 |MOUSEBUT|TONUP.Q.|
|00002580| 02 00 00 00 01 00 44 00 | 02 00 00 00 03 00 48 00 |......D.|......H.|
|00002590| 04 00 00 00 f2 2e 66 2e | 4d 00 02 00 00 00 11 00 |......f.|M.......|
|000025a0| 45 00 02 00 00 00 00 00 | 46 00 02 00 00 00 02 00 |E.......|F.......|
|000025b0| 47 00 02 00 00 00 ff ff | 49 00 02 00 00 00 00 00 |G.......|I.......|
|000025c0| 41 00 81 03 00 00 73 74 | 61 74 69 63 20 66 75 6e |A.....st|atic fun|
|000025d0| 63 74 69 6f 6e 20 4d 6f | 75 73 65 42 75 74 74 6f |ction Mo|useButto|
|000025e0| 6e 55 70 28 20 20 68 57 | 6e 64 20 61 73 20 57 6f |nUp( hW|nd as Wo|
|000025f0| 72 64 2c 20 6c 50 61 72 | 61 6d 20 61 73 20 4c 6f |rd, lPar|am as Lo|
|00002600| 6e 67 49 6e 74 20 29 20 | 61 73 20 4c 6f 6e 67 49 |ngInt ) |as LongI|
|00002610| 6e 74 20 50 61 73 63 61 | 6c 0d 0a 0d 0a 6c 6f 63 |nt Pasca|l....loc|
|00002620| 61 6c 20 70 52 65 63 20 | 61 73 20 54 4f 4f 4c 42 |al pRec |as TOOLB|
|00002630| 41 52 5f 49 4e 46 4f 0d | 0a 6c 6f 63 61 6c 20 73 |AR_INFO.|.local s|
|00002640| 52 65 63 74 20 69 73 20 | 5f 57 49 4e 52 45 43 54 |Rect is |_WINRECT|
|00002650| 0d 0a 20 0d 0a 2f 2f 20 | 52 65 74 72 69 65 76 65 |.. ..// |Retrieve|
|00002660| 20 74 68 65 20 74 6f 6f | 6c 62 61 72 20 69 6e 66 | the too|lbar inf|
|00002670| 6f 20 72 65 63 6f 72 64 | 20 66 72 6f 6d 20 74 68 |o record| from th|
|00002680| 65 20 77 69 6e 64 6f 77 | 0d 0a 0d 0a 70 52 65 63 |e window|....pRec|
|00002690| 20 3a 3d 20 50 74 72 28 | 20 5f 43 41 53 54 2c 20 | := Ptr(| _CAST, |
|000026a0| 47 65 74 57 69 6e 64 6f | 77 4c 6f 6e 67 28 20 68 |GetWindo|wLong( h|
|000026b0| 57 6e 64 2c 20 30 20 29 | 20 29 0d 0a 0d 0a 2f 2f |Wnd, 0 )| )....//|
|000026c0| 20 49 66 20 61 20 62 75 | 74 74 6f 6e 20 77 61 73 | If a bu|tton was|
|000026d0| 20 70 72 65 76 69 6f 75 | 73 6c 79 20 63 6c 69 63 | previou|sly clic|
|000026e0| 6b 65 64 20 64 6f 77 6e | 2c 20 72 65 73 70 6f 6e |ked down|, respon|
|000026f0| 64 20 61 70 70 72 6f 70 | 72 69 61 74 65 6c 79 0d |d approp|riately.|
|00002700| 0a 0d 0a 69 66 20 70 52 | 65 63 2e 63 61 70 74 75 |...if pR|ec.captu|
|00002710| 72 65 42 75 74 74 6f 6e | 20 21 3d 20 30 0d 0a 09 |reButton| != 0...|
|00002720| 2f 2f 20 41 6c 6c 6f 77 | 20 6d 6f 75 73 65 20 69 |// Allow| mouse i|
|00002730| 6e 70 75 74 20 74 6f 20 | 6f 74 68 65 72 20 77 69 |nput to |other wi|
|00002740| 6e 64 6f 77 73 0d 0a 09 | 0d 0a 09 52 65 6c 65 61 |ndows...|...Relea|
|00002750| 73 65 43 61 70 74 75 72 | 65 28 29 0d 0a 09 0d 0a |seCaptur|e().....|
|00002760| 09 2f 2f 20 47 65 74 20 | 74 68 65 20 63 6f 6f 72 |.// Get |the coor|
|00002770| 64 69 6e 61 74 65 73 20 | 6f 66 20 74 68 65 20 63 |dinates |of the c|
|00002780| 6c 69 63 6b 65 64 20 62 | 69 74 6d 61 70 0d 0a 09 |licked b|itmap...|
|00002790| 0d 0a 09 47 65 74 42 75 | 74 74 6f 6e 52 65 63 74 |...GetBu|ttonRect|
|000027a0| 28 20 70 52 65 63 2c 20 | 53 68 6f 72 74 49 6e 74 |( pRec, |ShortInt|
|000027b0| 28 20 70 52 65 63 2e 63 | 61 70 74 75 72 65 42 75 |( pRec.c|aptureBu|
|000027c0| 74 74 6f 6e 20 29 2c 20 | 40 73 52 65 63 74 20 29 |tton ), |@sRect )|
|000027d0| 0d 0a 09 0d 0a 09 2b 2b | 73 52 65 63 74 2e 72 69 |......++|sRect.ri|
|000027e0| 67 68 74 0d 0a 09 2b 2b | 73 52 65 63 74 2e 62 6f |ght...++|sRect.bo|
|000027f0| 74 74 6f 6d 0d 0a 09 0d | 0a 09 49 6e 76 61 6c 69 |ttom....|..Invali|
|00002800| 64 61 74 65 52 65 63 74 | 28 20 68 57 6e 64 2c 20 |dateRect|( hWnd, |
|00002810| 40 73 52 65 63 74 2c 20 | 20 2e 46 2e 20 29 0d 0a |@sRect, | .F. )..|
|00002820| 09 0d 0a 09 2f 2f 20 54 | 65 6c 6c 20 74 68 65 20 |....// T|ell the |
|00002830| 70 61 72 65 6e 74 20 77 | 69 6e 64 6f 77 20 74 68 |parent w|indow th|
|00002840| 61 74 20 74 68 65 20 74 | 6f 6f 6c 62 61 72 20 77 |at the t|oolbar w|
|00002850| 61 73 20 63 6c 69 63 6b | 65 64 0d 0a 09 0d 0a 09 |as click|ed......|
|00002860| 77 68 69 6c 65 20 2e 6e | 6f 74 2e 20 50 6f 73 74 |while .n|ot. Post|
|00002870| 4d 65 73 73 61 67 65 28 | 20 47 65 74 50 61 72 65 |Message(| GetPare|
|00002880| 6e 74 28 20 68 57 6e 64 | 20 29 2c 20 54 42 4d 5f |nt( hWnd| ), TBM_|
|00002890| 48 49 54 42 55 54 54 4f | 4e 2c 20 70 52 65 63 2e |HITBUTTO|N, pRec.|
|000028a0| 62 6d 52 65 73 49 44 5b | 20 53 68 6f 72 74 49 6e |bmResID[| ShortIn|
|000028b0| 74 28 20 70 52 65 63 2e | 63 61 70 74 75 72 65 42 |t( pRec.|captureB|
|000028c0| 75 74 74 6f 6e 20 29 20 | 5d 2c 20 30 20 29 0d 0a |utton ) |], 0 )..|
|000028d0| 09 65 6e 64 0d 0a 09 0d | 0a 09 2f 2f 20 52 65 73 |.end....|..// Res|
|000028e0| 65 74 20 74 68 65 20 66 | 6c 61 67 20 74 6f 20 69 |et the f|lag to i|
|000028f0| 6e 64 69 63 61 74 65 20 | 6e 6f 20 62 75 74 74 6f |ndicate |no butto|
|00002900| 6e 73 20 68 61 76 65 20 | 62 65 65 6e 20 63 6c 69 |ns have |been cli|
|00002910| 63 6b 65 64 0d 0a 09 0d | 0a 09 70 52 65 63 2e 63 |cked....|..pRec.c|
|00002920| 61 70 74 75 72 65 42 75 | 74 74 6f 6e 20 3a 3d 20 |aptureBu|tton := |
|00002930| 30 0d 0a 65 6e 64 69 66 | 0d 0a 0d 0a 72 65 74 75 |0..endif|....retu|
|00002940| 72 6e 20 30 0d 0a 00 4e | 00 54 00 00 00 73 74 61 |rn 0...N|.T...sta|
|00002950| 74 69 63 20 66 75 6e 63 | 74 69 6f 6e 20 4d 6f 75 |tic func|tion Mou|
|00002960| 73 65 42 75 74 74 6f 6e | 55 70 28 20 20 68 57 6e |seButton|Up( hWn|
|00002970| 64 20 61 73 20 57 6f 72 | 64 2c 20 6c 50 61 72 61 |d as Wor|d, lPara|
|00002980| 6d 20 61 73 20 4c 6f 6e | 67 49 6e 74 20 29 20 61 |m as Lon|gInt ) a|
|00002990| 73 20 4c 6f 6e 67 49 6e | 74 20 50 61 73 63 61 6c |s LongIn|t Pascal|
|000029a0| 00 40 00 0d 00 00 00 50 | 41 49 4e 54 54 4f 4f 4c |.@.....P|AINTTOOL|
|000029b0| 42 41 52 00 51 00 02 00 | 00 00 01 00 44 00 02 00 |BAR.Q...|....D...|
|000029c0| 00 00 03 00 48 00 04 00 | 00 00 f2 2e 66 2e 4d 00 |....H...|....f.M.|
|000029d0| 02 00 00 00 11 00 45 00 | 02 00 00 00 00 00 46 00 |......E.|......F.|
|000029e0| 02 00 00 00 02 00 47 00 | 02 00 00 00 ff ff 49 00 |......G.|......I.|
|000029f0| 02 00 00 00 00 00 41 00 | af 08 00 00 73 74 61 74 |......A.|....stat|
|00002a00| 69 63 20 66 75 6e 63 74 | 69 6f 6e 20 50 61 69 6e |ic funct|ion Pain|
|00002a10| 74 54 6f 6f 6c 62 61 72 | 28 20 68 57 6e 64 20 61 |tToolbar|( hWnd a|
|00002a20| 73 20 57 6f 72 64 20 29 | 20 61 73 20 4c 6f 6e 67 |s Word )| as Long|
|00002a30| 49 6e 74 20 50 61 73 63 | 61 6c 0d 0a 0d 0a 6c 6f |Int Pasc|al....lo|
|00002a40| 63 61 6c 20 73 50 61 69 | 6e 74 20 69 73 20 5f 57 |cal sPai|nt is _W|
|00002a50| 49 4e 50 41 49 4e 54 53 | 54 52 55 43 54 0d 0a 6c |INPAINTS|TRUCT..l|
|00002a60| 6f 63 61 6c 20 73 52 65 | 63 74 20 69 73 20 5f 57 |ocal sRe|ct is _W|
|00002a70| 49 4e 52 45 43 54 0d 0a | 6c 6f 63 61 6c 20 70 52 |INRECT..|local pR|
|00002a80| 65 63 20 61 73 20 54 4f | 4f 4c 42 41 52 5f 49 4e |ec as TO|OLBAR_IN|
|00002a90| 46 4f 0d 0a 6c 6f 63 61 | 6c 20 6e 20 61 73 20 53 |FO..loca|l n as S|
|00002aa0| 68 6f 72 74 49 6e 74 0d | 0a 6c 6f 63 61 6c 20 68 |hortInt.|.local h|
|00002ab0| 44 43 20 61 73 20 57 6f | 72 64 0d 0a 6c 6f 63 61 |DC as Wo|rd..loca|
|00002ac0| 6c 20 68 42 4d 20 61 73 | 20 57 6f 72 64 0d 0a 6c |l hBM as| Word..l|
|00002ad0| 6f 63 61 6c 20 68 50 65 | 6e 20 61 73 20 57 6f 72 |ocal hPe|n as Wor|
|00002ae0| 64 0d 0a 6c 6f 63 61 6c | 20 68 42 72 75 73 68 20 |d..local| hBrush |
|00002af0| 61 73 20 57 6f 72 64 0d | 0a 6c 6f 63 61 6c 20 64 |as Word.|.local d|
|00002b00| 69 6d 20 69 50 65 6e 43 | 6f 6c 6f 72 5b 20 32 20 |im iPenC|olor[ 2 |
|00002b10| 5d 20 69 73 20 53 68 6f | 72 74 49 6e 74 0d 0a 0d |] is Sho|rtInt...|
|00002b20| 0a 2f 2f 20 47 65 74 20 | 74 68 65 20 70 6f 69 6e |.// Get |the poin|
|00002b30| 74 65 72 20 74 6f 20 74 | 68 65 20 74 6f 6f 6c 62 |ter to t|he toolb|
|00002b40| 61 72 20 69 6e 66 6f 20 | 72 65 63 6f 72 64 0d 0a |ar info |record..|
|00002b50| 0d 0a 70 52 65 63 20 3a | 3d 20 50 74 72 28 20 5f |..pRec :|= Ptr( _|
|00002b60| 43 41 53 54 2c 20 47 65 | 74 57 69 6e 64 6f 77 4c |CAST, Ge|tWindowL|
|00002b70| 6f 6e 67 28 20 68 57 6e | 64 2c 20 30 20 29 20 29 |ong( hWn|d, 0 ) )|
|00002b80| 0d 0a 0d 0a 2f 2f 20 42 | 65 67 69 6e 20 6f 75 74 |....// B|egin out|
|00002b90| 70 75 74 20 74 6f 20 74 | 68 65 20 77 69 6e 64 6f |put to t|he windo|
|00002ba0| 77 0d 0a 0d 0a 42 65 67 | 69 6e 50 61 69 6e 74 28 |w....Beg|inPaint(|
|00002bb0| 20 68 57 6e 64 2c 20 40 | 73 50 61 69 6e 74 20 29 | hWnd, @|sPaint )|
|00002bc0| 0d 0a 0d 0a 2f 2f 20 47 | 65 74 20 74 68 65 20 74 |....// G|et the t|
|00002bd0| 6f 6f 6c 62 61 72 27 73 | 20 63 6c 69 65 6e 74 20 |oolbar's| client |
|00002be0| 61 72 65 61 0d 0a 0d 0a | 47 65 74 43 6c 69 65 6e |area....|GetClien|
|00002bf0| 74 52 65 63 74 28 20 68 | 57 6e 64 2c 20 40 73 52 |tRect( h|Wnd, @sR|
|00002c00| 65 63 74 20 29 0d 0a 0d | 0a 2f 2f 20 44 72 61 77 |ect )...|.// Draw|
|00002c10| 20 74 68 65 20 62 6f 74 | 74 6f 6d 20 62 6f 72 64 | the bot|tom bord|
|00002c20| 65 72 20 65 64 67 65 0d | 0a 0d 0a 50 61 74 42 6c |er edge.|...PatBl|
|00002c30| 74 28 20 73 50 61 69 6e | 74 2e 68 64 63 2c 20 30 |t( sPain|t.hdc, 0|
|00002c40| 2c 20 73 52 65 63 74 2e | 62 6f 74 74 6f 6d 20 2d |, sRect.|bottom -|
|00002c50| 20 31 2c 20 73 52 65 63 | 74 2e 72 69 67 68 74 20 | 1, sRec|t.right |
|00002c60| 2d 20 73 52 65 63 74 2e | 6c 65 66 74 2c 20 31 2c |- sRect.|left, 1,|
|00002c70| 20 42 4c 41 43 4b 4e 45 | 53 53 20 29 0d 0a 0d 0a | BLACKNE|SS )....|
|00002c80| 2f 2f 20 44 72 61 77 20 | 74 68 65 20 74 6f 70 20 |// Draw |the top |
|00002c90| 62 6f 72 64 65 72 20 65 | 64 67 65 0d 0a 0d 0a 50 |border e|dge....P|
|00002ca0| 61 74 42 6c 74 28 20 73 | 50 61 69 6e 74 2e 68 64 |atBlt( s|Paint.hd|
|00002cb0| 63 2c 20 30 2c 20 30 2c | 20 73 52 65 63 74 2e 72 |c, 0, 0,| sRect.r|
|00002cc0| 69 67 68 74 20 2d 20 73 | 52 65 63 74 2e 6c 65 66 |ight - s|Rect.lef|
|00002cd0| 74 2c 20 31 2c 20 57 48 | 49 54 45 4e 45 53 53 20 |t, 1, WH|ITENESS |
|00002ce0| 29 0d 0a 0d 0a 2f 2f 20 | 4c 6f 6f 70 20 74 6f 20 |)....// |Loop to |
|00002cf0| 64 72 61 77 20 65 61 63 | 68 20 62 69 74 6d 61 70 |draw eac|h bitmap|
|00002d00| 0d 0a 0d 0a 66 6f 72 20 | 6e 20 3a 3d 20 31 20 74 |....for |n := 1 t|
|00002d10| 6f 20 53 68 6f 72 74 49 | 6e 74 28 20 70 52 65 63 |o ShortI|nt( pRec|
|00002d20| 2e 62 6d 43 6f 75 6e 74 | 20 29 0d 0a 09 69 66 20 |.bmCount| )...if |
|00002d30| 70 52 65 63 2e 62 6d 52 | 65 73 49 44 5b 20 6e 20 |pRec.bmR|esID[ n |
|00002d40| 5d 20 21 3d 20 30 20 2e | 61 6e 64 2e 20 70 52 65 |] != 0 .|and. pRe|
|00002d50| 63 2e 62 6d 45 6e 61 62 | 6c 65 64 5b 20 6e 20 5d |c.bmEnab|led[ n ]|
|00002d60| 0d 0a 09 09 2f 2f 20 47 | 65 74 20 74 68 65 20 62 |....// G|et the b|
|00002d70| 69 74 6d 61 70 27 73 20 | 63 6c 69 65 6e 74 20 61 |itmap's |client a|
|00002d80| 72 65 61 0d 0a 09 0d 0a | 09 09 47 65 74 42 75 74 |rea.....|..GetBut|
|00002d90| 74 6f 6e 52 65 63 74 28 | 20 70 52 65 63 2c 20 6e |tonRect(| pRec, n|
|00002da0| 2c 20 40 73 52 65 63 74 | 20 29 0d 0a 09 0d 0a 09 |, @sRect| )......|
|00002db0| 09 2f 2f 20 44 75 70 65 | 20 74 68 65 20 64 69 73 |.// Dupe| the dis|
|00002dc0| 70 6c 61 79 20 63 6f 6e | 74 65 78 74 0d 0a 09 0d |play con|text....|
|00002dd0| 0a 09 09 68 44 43 20 3a | 3d 20 43 72 65 61 74 65 |...hDC :|= Create|
|00002de0| 43 6f 6d 70 61 74 69 62 | 6c 65 44 43 28 20 73 50 |Compatib|leDC( sP|
|00002df0| 61 69 6e 74 2e 68 64 63 | 20 29 0d 0a 09 0d 0a 09 |aint.hdc| )......|
|00002e00| 09 69 66 20 70 52 65 63 | 2e 63 61 70 74 75 72 65 |.if pRec|.capture|
|00002e10| 42 75 74 74 6f 6e 20 3d | 3d 20 57 6f 72 64 28 20 |Button =|= Word( |
|00002e20| 6e 20 29 0d 0a 09 09 09 | 69 50 65 6e 43 6f 6c 6f |n ).....|iPenColo|
|00002e30| 72 5b 20 31 20 5d 20 3a | 3d 20 42 4c 41 43 4b 5f |r[ 1 ] :|= BLACK_|
|00002e40| 50 45 4e 0d 0a 09 09 09 | 69 50 65 6e 43 6f 6c 6f |PEN.....|iPenColo|
|00002e50| 72 5b 20 32 20 5d 20 3a | 3d 20 57 48 49 54 45 5f |r[ 2 ] :|= WHITE_|
|00002e60| 50 45 4e 0d 0a 09 09 65 | 6c 73 65 0d 0a 09 09 09 |PEN....e|lse.....|
|00002e70| 69 50 65 6e 43 6f 6c 6f | 72 5b 20 31 20 5d 20 3a |iPenColo|r[ 1 ] :|
|00002e80| 3d 20 57 48 49 54 45 5f | 50 45 4e 0d 0a 09 09 09 |= WHITE_|PEN.....|
|00002e90| 69 50 65 6e 43 6f 6c 6f | 72 5b 20 32 20 5d 20 3a |iPenColo|r[ 2 ] :|
|00002ea0| 3d 20 42 4c 41 43 4b 5f | 50 45 4e 0d 0a 09 09 65 |= BLACK_|PEN....e|
|00002eb0| 6e 64 69 66 0d 0a 09 0d | 0a 09 09 2f 2f 20 44 75 |ndif....|...// Du|
|00002ec0| 70 65 20 74 68 65 20 63 | 75 72 72 65 6e 74 20 70 |pe the c|urrent p|
|00002ed0| 65 6e 0d 0a 09 0d 0a 09 | 09 68 50 65 6e 20 3a 3d |en......|.hPen :=|
|00002ee0| 20 53 65 6c 65 63 74 4f | 62 6a 65 63 74 28 20 73 | SelectO|bject( s|
|00002ef0| 50 61 69 6e 74 2e 68 44 | 43 2c 20 57 6f 72 64 28 |Paint.hD|C, Word(|
|00002f00| 20 47 65 74 53 74 6f 63 | 6b 4f 62 6a 65 63 74 28 | GetStoc|kObject(|
|00002f10| 20 69 50 65 6e 43 6f 6c | 6f 72 5b 20 31 20 5d 20 | iPenCol|or[ 1 ] |
|00002f20| 29 20 29 20 29 0d 0a 09 | 0d 0a 09 09 4d 6f 76 65 |) ) )...|....Move|
|00002f30| 54 6f 28 20 73 50 61 69 | 6e 74 2e 68 44 43 2c 20 |To( sPai|nt.hDC, |
|00002f40| 73 52 65 63 74 2e 6c 65 | 66 74 2c 20 73 52 65 63 |sRect.le|ft, sRec|
|00002f50| 74 2e 62 6f 74 74 6f 6d | 20 29 0d 0a 09 0d 0a 09 |t.bottom| )......|
|00002f60| 09 4c 69 6e 65 54 6f 28 | 20 73 50 61 69 6e 74 2e |.LineTo(| sPaint.|
|00002f70| 68 44 43 2c 20 73 52 65 | 63 74 2e 6c 65 66 74 2c |hDC, sRe|ct.left,|
|00002f80| 20 73 52 65 63 74 2e 74 | 6f 70 20 29 0d 0a 09 09 | sRect.t|op )....|
|00002f90| 4c 69 6e 65 54 6f 28 20 | 73 50 61 69 6e 74 2e 68 |LineTo( |sPaint.h|
|00002fa0| 44 43 2c 20 73 52 65 63 | 74 2e 72 69 67 68 74 2c |DC, sRec|t.right,|
|00002fb0| 20 73 52 65 63 74 2e 74 | 6f 70 20 29 0d 0a 0d 0a | sRect.t|op )....|
|00002fc0| 09 09 53 65 6c 65 63 74 | 4f 62 6a 65 63 74 28 20 |..Select|Object( |
|00002fd0| 73 50 61 69 6e 74 2e 68 | 44 43 2c 20 57 6f 72 64 |sPaint.h|DC, Word|
|00002fe0| 28 20 47 65 74 53 74 6f | 63 6b 4f 62 6a 65 63 74 |( GetSto|ckObject|
|00002ff0| 28 20 69 50 65 6e 43 6f | 6c 6f 72 5b 20 32 20 5d |( iPenCo|lor[ 2 ]|
|00003000| 20 29 20 29 20 29 0d 0a | 0d 0a 09 09 4c 69 6e 65 | ) ) )..|....Line|
|00003010| 54 6f 28 20 73 50 61 69 | 6e 74 2e 68 44 43 2c 20 |To( sPai|nt.hDC, |
|00003020| 73 52 65 63 74 2e 72 69 | 67 68 74 2c 20 73 52 65 |sRect.ri|ght, sRe|
|00003030| 63 74 2e 62 6f 74 74 6f | 6d 20 29 0d 0a 09 09 4c |ct.botto|m )....L|
|00003040| 69 6e 65 54 6f 28 20 73 | 50 61 69 6e 74 2e 68 44 |ineTo( s|Paint.hD|
|00003050| 43 2c 20 73 52 65 63 74 | 2e 6c 65 66 74 2c 20 73 |C, sRect|.left, s|
|00003060| 52 65 63 74 2e 62 6f 74 | 74 6f 6d 20 29 0d 0a 09 |Rect.bot|tom )...|
|00003070| 0d 0a 09 09 53 65 6c 65 | 63 74 4f 62 6a 65 63 74 |....Sele|ctObject|
|00003080| 28 20 73 50 61 69 6e 74 | 2e 68 44 43 2c 20 68 50 |( sPaint|.hDC, hP|
|00003090| 65 6e 20 29 0d 0a 09 0d | 0a 09 09 2f 2f 20 53 65 |en )....|...// Se|
|000030a0| 6c 65 63 74 20 74 68 65 | 20 61 70 70 72 6f 70 72 |lect the| appropr|
|000030b0| 69 61 74 65 20 62 69 74 | 6d 61 70 0d 0a 09 0d 0a |iate bit|map.....|
|000030c0| 09 09 68 42 4d 20 3a 3d | 20 53 65 6c 65 63 74 4f |..hBM :=| SelectO|
|000030d0| 62 6a 65 63 74 28 20 68 | 44 43 2c 20 70 52 65 63 |bject( h|DC, pRec|
|000030e0| 2e 62 6d 48 61 6e 64 6c | 65 5b 20 53 68 6f 72 74 |.bmHandl|e[ Short|
|000030f0| 49 6e 74 28 20 6e 20 29 | 20 5d 20 29 0d 0a 09 0d |Int( n )| ] )....|
|00003100| 0a 09 09 2f 2f 20 43 6f | 70 79 20 20 74 68 65 20 |...// Co|py the |
|00003110| 62 69 74 6d 61 70 20 69 | 6e 74 6f 20 74 68 65 20 |bitmap i|nto the |
|00003120| 64 69 73 70 6c 61 79 20 | 63 6f 6e 74 65 78 74 0d |display |context.|
|00003130| 0a 09 0d 0a 09 09 42 69 | 74 42 6c 74 28 20 73 50 |......Bi|tBlt( sP|
|00003140| 61 69 6e 74 2e 68 64 63 | 2c 20 53 68 6f 72 74 49 |aint.hdc|, ShortI|
|00003150| 6e 74 28 20 70 52 65 63 | 2e 62 6d 45 64 67 65 5b |nt( pRec|.bmEdge[|
|00003160| 20 6e 20 5d 20 29 2c 20 | 53 68 6f 72 74 49 6e 74 | n ] ), |ShortInt|
|00003170| 28 20 70 52 65 63 2e 62 | 6f 72 64 65 72 20 2a 20 |( pRec.b|order * |
|00003180| 32 20 29 2c 20 53 68 6f | 72 74 49 6e 74 28 20 70 |2 ), Sho|rtInt( p|
|00003190| 52 65 63 2e 62 6d 57 69 | 64 74 68 20 29 2c 20 53 |Rec.bmWi|dth ), S|
|000031a0| 68 6f 72 74 49 6e 74 28 | 20 70 52 65 63 2e 62 6d |hortInt(| pRec.bm|
|000031b0| 48 65 69 67 68 74 20 29 | 2c 20 68 44 43 2c 20 30 |Height )|, hDC, 0|
|000031c0| 2c 20 30 2c 20 53 52 43 | 43 4f 50 59 20 29 0d 0a |, 0, SRC|COPY )..|
|000031d0| 09 09 0d 0a 09 09 2f 2f | 20 52 65 73 65 74 20 74 |......//| Reset t|
|000031e0| 68 65 20 70 72 65 76 69 | 6f 75 73 20 62 69 74 6d |he previ|ous bitm|
|000031f0| 61 70 0d 0a 09 0d 0a 09 | 09 53 65 6c 65 63 74 4f |ap......|.SelectO|
|00003200| 62 6a 65 63 74 28 20 68 | 44 43 2c 20 68 42 4d 20 |bject( h|DC, hBM |
|00003210| 29 0d 0a 09 0d 0a 09 09 | 2f 2f 20 44 65 6c 65 74 |).......|// Delet|
|00003220| 65 20 74 68 65 20 64 69 | 73 70 6c 61 79 20 63 6f |e the di|splay co|
|00003230| 6e 74 65 78 74 0d 0a 09 | 0d 0a 09 09 44 65 6c 65 |ntext...|....Dele|
|00003240| 74 65 44 43 28 20 68 44 | 43 20 29 0d 0a 09 65 6e |teDC( hD|C )...en|
|00003250| 64 69 66 0d 0a 6e 65 78 | 74 0d 0a 0d 0a 2f 2f 20 |dif..nex|t....// |
|00003260| 54 65 6c 6c 20 57 69 6e | 64 6f 77 73 20 6f 75 74 |Tell Win|dows out|
|00003270| 70 75 74 20 69 73 20 66 | 69 6e 69 73 68 65 64 0d |put is f|inished.|
|00003280| 0a 0d 0a 45 6e 64 50 61 | 69 6e 74 28 20 68 57 6e |...EndPa|int( hWn|
|00003290| 64 2c 20 40 73 50 61 69 | 6e 74 20 29 0d 0a 0d 0a |d, @sPai|nt )....|
|000032a0| 72 65 74 75 72 6e 20 30 | 0d 0a 00 4e 00 3f 00 00 |return 0|...N.?..|
|000032b0| 00 73 74 61 74 69 63 20 | 66 75 6e 63 74 69 6f 6e |.static |function|
|000032c0| 20 50 61 69 6e 74 54 6f | 6f 6c 62 61 72 28 20 68 | PaintTo|olbar( h|
|000032d0| 57 6e 64 20 61 73 20 57 | 6f 72 64 20 29 20 61 73 |Wnd as W|ord ) as|
|000032e0| 20 4c 6f 6e 67 49 6e 74 | 20 50 61 73 63 61 6c 00 | LongInt| Pascal.|
|000032f0| 40 00 09 00 00 00 50 54 | 49 4e 52 45 43 54 00 51 |@.....PT|INRECT.Q|
|00003300| 00 02 00 00 00 02 00 44 | 00 02 00 00 00 01 00 48 |.......D|.......H|
|00003310| 00 04 00 00 00 f3 2e 66 | 2e 4d 00 02 00 00 00 11 |.......f|.M......|
|00003320| 00 45 00 02 00 00 00 00 | 00 46 00 02 00 00 00 02 |.E......|.F......|
|00003330| 00 47 00 02 00 00 00 ff | ff 49 00 02 00 00 00 00 |.G......|.I......|
|00003340| 00 41 00 5b 00 00 00 5f | 44 4c 4c 20 66 75 6e 63 |.A.[..._|DLL func|
|00003350| 74 69 6f 6e 20 50 74 49 | 6e 52 65 63 74 28 20 70 |tion PtI|nRect( p|
|00003360| 52 65 63 74 20 61 73 20 | 5f 57 49 4e 52 45 43 54 |Rect as |_WINRECT|
|00003370| 2c 20 6c 50 6f 69 6e 74 | 20 61 73 20 4c 6f 6e 67 |, lPoint| as Long|
|00003380| 49 6e 74 20 29 20 61 73 | 20 4c 6f 67 69 63 20 50 |Int ) as| Logic P|
|00003390| 61 73 63 61 6c 3a 55 73 | 65 72 2e 37 36 0d 0a 0d |ascal:Us|er.76...|
|000033a0| 0a 00 4e 00 57 00 00 00 | 5f 44 4c 4c 20 66 75 6e |..N.W...|_DLL fun|
|000033b0| 63 74 69 6f 6e 20 50 74 | 49 6e 52 65 63 74 28 20 |ction Pt|InRect( |
|000033c0| 70 52 65 63 74 20 61 73 | 20 5f 57 49 4e 52 45 43 |pRect as| _WINREC|
|000033d0| 54 2c 20 6c 50 6f 69 6e | 74 20 61 73 20 4c 6f 6e |T, lPoin|t as Lon|
|000033e0| 67 49 6e 74 20 29 20 61 | 73 20 4c 6f 67 69 63 20 |gInt ) a|s Logic |
|000033f0| 50 61 73 63 61 6c 3a 55 | 73 65 72 2e 37 36 00 40 |Pascal:U|ser.76.@|
|00003400| 00 0f 00 00 00 52 45 4c | 45 41 53 45 43 41 50 54 |.....REL|EASECAPT|
|00003410| 55 52 45 00 51 00 02 00 | 00 00 02 00 44 00 02 00 |URE.Q...|....D...|
|00003420| 00 00 01 00 48 00 04 00 | 00 00 f3 2e 66 2e 4d 00 |....H...|....f.M.|
|00003430| 02 00 00 00 12 00 45 00 | 02 00 00 00 00 00 46 00 |......E.|......F.|
|00003440| 02 00 00 00 02 00 47 00 | 02 00 00 00 ff ff 49 00 |......G.|......I.|
|00003450| 02 00 00 00 00 00 41 00 | 31 00 00 00 5f 44 4c 4c |......A.|1..._DLL|
|00003460| 20 70 72 6f 63 65 64 75 | 72 65 20 52 65 6c 65 61 | procedu|re Relea|
|00003470| 73 65 43 61 70 74 75 72 | 65 20 50 61 73 63 61 6c |seCaptur|e Pascal|
|00003480| 3a 55 73 65 72 2e 31 39 | 0d 0a 0d 0a 00 4e 00 2d |:User.19|.....N.-|
|00003490| 00 00 00 5f 44 4c 4c 20 | 70 72 6f 63 65 64 75 72 |..._DLL |procedur|
|000034a0| 65 20 52 65 6c 65 61 73 | 65 43 61 70 74 75 72 65 |e Releas|eCapture|
|000034b0| 20 50 61 73 63 61 6c 3a | 55 73 65 72 2e 31 39 00 | Pascal:|User.19.|
|000034c0| 40 00 0b 00 00 00 52 45 | 4d 4f 56 45 50 52 4f 50 |@.....RE|MOVEPROP|
|000034d0| 00 51 00 02 00 00 00 02 | 00 44 00 02 00 00 00 01 |.Q......|.D......|
|000034e0| 00 48 00 04 00 00 00 f3 | 2e 66 2e 4d 00 02 00 00 |.H......|.f.M....|
|000034f0| 00 11 00 45 00 02 00 00 | 00 00 00 46 00 02 00 00 |...E....|...F....|
|00003500| 00 02 00 47 00 02 00 00 | 00 ff ff 49 00 02 00 00 |...G....|...I....|
|00003510| 00 00 00 41 00 53 00 00 | 00 5f 44 4c 4c 20 66 75 |...A.S..|._DLL fu|
|00003520| 6e 63 74 69 6f 6e 20 52 | 65 6d 6f 76 65 50 72 6f |nction R|emovePro|
|00003530| 70 28 20 68 57 6e 64 20 | 61 73 20 57 6f 72 64 2c |p( hWnd |as Word,|
|00003540| 20 70 73 7a 53 74 72 20 | 61 73 20 50 53 5a 20 29 | pszStr |as PSZ )|
|00003550| 20 61 73 20 57 6f 72 64 | 20 50 61 73 63 61 6c 3a | as Word| Pascal:|
|00003560| 55 73 65 72 2e 32 34 0d | 0a 0d 0a 00 4e 00 4f 00 |User.24.|....N.O.|
|00003570| 00 00 5f 44 4c 4c 20 66 | 75 6e 63 74 69 6f 6e 20 |.._DLL f|unction |
|00003580| 52 65 6d 6f 76 65 50 72 | 6f 70 28 20 68 57 6e 64 |RemovePr|op( hWnd|
|00003590| 20 61 73 20 57 6f 72 64 | 2c 20 70 73 7a 53 74 72 | as Word|, pszStr|
|000035a0| 20 61 73 20 50 53 5a 20 | 29 20 61 73 20 57 6f 72 | as PSZ |) as Wor|
|000035b0| 64 20 50 61 73 63 61 6c | 3a 55 73 65 72 2e 32 34 |d Pascal|:User.24|
|000035c0| 00 40 00 0e 00 00 00 52 | 45 53 49 5a 45 54 4f 4f |.@.....R|ESIZETOO|
|000035d0| 4c 42 41 52 00 51 00 02 | 00 00 00 01 00 44 00 02 |LBAR.Q..|.....D..|
|000035e0| 00 00 00 03 00 48 00 04 | 00 00 00 f3 2e 66 2e 4d |.....H..|.....f.M|
|000035f0| 00 02 00 00 00 11 00 45 | 00 02 00 00 00 00 00 46 |.......E|.......F|
|00003600| 00 02 00 00 00 02 00 47 | 00 02 00 00 00 ff ff 49 |.......G|.......I|
|00003610| 00 02 00 00 00 00 00 41 | 00 a6 01 00 00 73 74 61 |.......A|.....sta|
|00003620| 74 69 63 20 66 75 6e 63 | 74 69 6f 6e 20 52 65 73 |tic func|tion Res|
|00003630| 69 7a 65 54 6f 6f 6c 62 | 61 72 28 20 68 57 6e 64 |izeToolb|ar( hWnd|
|00003640| 20 61 73 20 57 6f 72 64 | 20 29 20 61 73 20 4c 6f | as Word| ) as Lo|
|00003650| 6e 67 49 6e 74 20 50 61 | 73 63 61 6c 0d 0a 0d 0a |ngInt Pa|scal....|
|00003660| 6c 6f 63 61 6c 20 70 52 | 65 63 20 61 73 20 54 4f |local pR|ec as TO|
|00003670| 4f 4c 42 41 52 5f 49 4e | 46 4f 0d 0a 6c 6f 63 61 |OLBAR_IN|FO..loca|
|00003680| 6c 20 73 52 65 63 74 20 | 69 73 20 5f 57 49 4e 52 |l sRect |is _WINR|
|00003690| 45 43 54 0d 0a 0d 0a 2f | 2f 20 47 65 74 20 74 68 |ECT..../|/ Get th|
|000036a0| 65 20 74 6f 6f 6c 62 61 | 72 20 69 6e 66 6f 20 72 |e toolba|r info r|
|000036b0| 65 63 6f 72 64 0d 0a 0d | 0a 70 52 65 63 20 3a 3d |ecord...|.pRec :=|
|000036c0| 20 50 74 72 28 20 5f 43 | 41 53 54 2c 20 47 65 74 | Ptr( _C|AST, Get|
|000036d0| 57 69 6e 64 6f 77 4c 6f | 6e 67 28 20 68 57 6e 64 |WindowLo|ng( hWnd|
|000036e0| 2c 20 30 20 29 20 29 0d | 0a 0d 0a 2f 2f 20 47 65 |, 0 ) ).|...// Ge|
|000036f0| 74 20 74 68 65 20 70 61 | 72 65 6e 74 27 73 20 63 |t the pa|rent's c|
|00003700| 6c 69 65 6e 74 20 61 72 | 65 61 0d 0a 0d 0a 47 65 |lient ar|ea....Ge|
|00003710| 74 43 6c 69 65 6e 74 52 | 65 63 74 28 20 47 65 74 |tClientR|ect( Get|
|00003720| 50 61 72 65 6e 74 28 20 | 68 57 6e 64 20 29 2c 20 |Parent( |hWnd ), |
|00003730| 40 73 52 65 63 74 20 29 | 0d 0a 0d 0a 2f 2f 20 50 |@sRect )|....// P|
|00003740| 6f 73 69 74 69 6f 6e 20 | 74 68 65 20 74 6f 6f 6c |osition |the tool|
|00003750| 62 61 72 20 61 63 63 6f | 72 64 69 6e 67 6c 79 0d |bar acco|rdingly.|
|00003760| 0a 0d 0a 53 65 74 57 69 | 6e 64 6f 77 50 6f 73 28 |...SetWi|ndowPos(|
|00003770| 20 68 57 6e 64 2c 20 30 | 2c 20 30 2c 20 30 2c 20 | hWnd, 0|, 0, 0, |
|00003780| 73 52 65 63 74 2e 72 69 | 67 68 74 2c 20 53 68 6f |sRect.ri|ght, Sho|
|00003790| 72 74 49 6e 74 28 20 70 | 52 65 63 2e 68 65 69 67 |rtInt( p|Rec.heig|
|000037a0| 68 74 20 29 2c 20 53 57 | 50 5f 4e 4f 5a 4f 52 44 |ht ), SW|P_NOZORD|
|000037b0| 45 52 20 29 0d 0a 0d 0a | 72 65 74 75 72 6e 20 30 |ER )....|return 0|
|000037c0| 0d 0a 00 4e 00 40 00 00 | 00 73 74 61 74 69 63 20 |...N.@..|.static |
|000037d0| 66 75 6e 63 74 69 6f 6e | 20 52 65 73 69 7a 65 54 |function| ResizeT|
|000037e0| 6f 6f 6c 62 61 72 28 20 | 68 57 6e 64 20 61 73 20 |oolbar( |hWnd as |
|000037f0| 57 6f 72 64 20 29 20 61 | 73 20 4c 6f 6e 67 49 6e |Word ) a|s LongIn|
|00003800| 74 20 50 61 73 63 61 6c | 00 40 00 0b 00 00 00 53 |t Pascal|.@.....S|
|00003810| 45 54 43 41 50 54 55 52 | 45 00 51 00 02 00 00 00 |ETCAPTUR|E.Q.....|
|00003820| 02 00 44 00 02 00 00 00 | 01 00 48 00 04 00 00 00 |..D.....|..H.....|
|00003830| f3 2e 66 2e 4d 00 02 00 | 00 00 11 00 45 00 02 00 |..f.M...|....E...|
|00003840| 00 00 00 00 46 00 02 00 | 00 00 02 00 47 00 02 00 |....F...|....G...|
|00003850| 00 00 ff ff 49 00 02 00 | 00 00 00 00 41 00 44 00 |....I...|....A.D.|
|00003860| 00 00 5f 44 4c 4c 20 66 | 75 6e 63 74 69 6f 6e 20 |.._DLL f|unction |
|00003870| 53 65 74 43 61 70 74 75 | 72 65 28 20 68 57 6e 64 |SetCaptu|re( hWnd|
|00003880| 20 61 73 20 57 6f 72 64 | 20 29 20 61 73 20 57 6f | as Word| ) as Wo|
|00003890| 72 64 20 50 61 73 63 61 | 6c 3a 55 73 65 72 2e 31 |rd Pasca|l:User.1|
|000038a0| 38 0d 0a 0d 0a 00 4e 00 | 40 00 00 00 5f 44 4c 4c |8.....N.|@..._DLL|
|000038b0| 20 66 75 6e 63 74 69 6f | 6e 20 53 65 74 43 61 70 | functio|n SetCap|
|000038c0| 74 75 72 65 28 20 68 57 | 6e 64 20 61 73 20 57 6f |ture( hW|nd as Wo|
|000038d0| 72 64 20 29 20 61 73 20 | 57 6f 72 64 20 50 61 73 |rd ) as |Word Pas|
|000038e0| 63 61 6c 3a 55 73 65 72 | 2e 31 38 00 40 00 08 00 |cal:User|.18.@...|
|000038f0| 00 00 53 45 54 50 52 4f | 50 00 51 00 02 00 00 00 |..SETPRO|P.Q.....|
|00003900| 02 00 44 00 02 00 00 00 | 01 00 48 00 04 00 00 00 |..D.....|..H.....|
|00003910| f3 2e 66 2e 4d 00 02 00 | 00 00 11 00 45 00 02 00 |..f.M...|....E...|
|00003920| 00 00 00 00 46 00 02 00 | 00 00 02 00 47 00 02 00 |....F...|....G...|
|00003930| 00 00 ff ff 49 00 02 00 | 00 00 00 00 41 00 60 00 |....I...|....A.`.|
|00003940| 00 00 5f 44 4c 4c 20 66 | 75 6e 63 74 69 6f 6e 20 |.._DLL f|unction |
|00003950| 53 65 74 50 72 6f 70 28 | 20 68 57 6e 64 20 61 73 |SetProp(| hWnd as|
|00003960| 20 57 6f 72 64 2c 20 70 | 73 7a 53 74 72 20 61 73 | Word, p|szStr as|
|00003970| 20 50 53 5a 2c 20 77 44 | 61 74 61 20 61 73 20 57 | PSZ, wD|ata as W|
|00003980| 6f 72 64 20 29 20 61 73 | 20 4c 6f 67 69 63 20 50 |ord ) as| Logic P|
|00003990| 61 73 63 61 6c 3a 55 73 | 65 72 2e 32 36 0d 0a 0d |ascal:Us|er.26...|
|000039a0| 0a 00 4e 00 5c 00 00 00 | 5f 44 4c 4c 20 66 75 6e |..N.\...|_DLL fun|
|000039b0| 63 74 69 6f 6e 20 53 65 | 74 50 72 6f 70 28 20 68 |ction Se|tProp( h|
|000039c0| 57 6e 64 20 61 73 20 57 | 6f 72 64 2c 20 70 73 7a |Wnd as W|ord, psz|
|000039d0| 53 74 72 20 61 73 20 50 | 53 5a 2c 20 77 44 61 74 |Str as P|SZ, wDat|
|000039e0| 61 20 61 73 20 57 6f 72 | 64 20 29 20 61 73 20 4c |a as Wor|d ) as L|
|000039f0| 6f 67 69 63 20 50 61 73 | 63 61 6c 3a 55 73 65 72 |ogic Pas|cal:User|
|00003a00| 2e 32 36 00 40 00 0d 00 | 00 00 53 45 54 57 49 4e |.26.@...|..SETWIN|
|00003a10| 44 4f 57 50 4f 53 00 51 | 00 02 00 00 00 02 00 44 |DOWPOS.Q|.......D|
|00003a20| 00 02 00 00 00 01 00 48 | 00 04 00 00 00 f3 2e 66 |.......H|.......f|
|00003a30| 2e 4d 00 02 00 00 00 12 | 00 45 00 02 00 00 00 00 |.M......|.E......|
|00003a40| 00 46 00 02 00 00 00 02 | 00 47 00 02 00 00 00 ff |.F......|.G......|
|00003a50| ff 49 00 02 00 00 00 00 | 00 41 00 a3 00 00 00 5f |.I......|.A....._|
|00003a60| 44 4c 4c 20 70 72 6f 63 | 65 64 75 72 65 20 53 65 |DLL proc|edure Se|
|00003a70| 74 57 69 6e 64 6f 77 50 | 6f 73 28 20 68 57 6e 64 |tWindowP|os( hWnd|
|00003a80| 20 61 73 20 57 6f 72 64 | 2c 20 68 49 6e 73 65 72 | as Word|, hInser|
|00003a90| 74 41 66 74 65 72 20 61 | 73 20 57 6f 72 64 2c 20 |tAfter a|s Word, |
|00003aa0| 58 20 61 73 20 53 68 6f | 72 74 49 6e 74 2c 20 59 |X as Sho|rtInt, Y|
|00003ab0| 20 61 73 20 53 68 6f 72 | 74 49 6e 74 2c 20 43 58 | as Shor|tInt, CX|
|00003ac0| 20 61 73 20 53 68 6f 72 | 74 49 6e 74 2c 20 43 59 | as Shor|tInt, CY|
|00003ad0| 20 61 73 20 53 68 6f 72 | 74 49 6e 74 2c 20 46 6c | as Shor|tInt, Fl|
|00003ae0| 61 67 73 20 61 73 20 57 | 6f 72 64 20 29 20 50 61 |ags as W|ord ) Pa|
|00003af0| 73 63 61 6c 3a 55 73 65 | 72 2e 32 33 32 0d 0a 0d |scal:Use|r.232...|
|00003b00| 0a 00 4e 00 9f 00 00 00 | 5f 44 4c 4c 20 70 72 6f |..N.....|_DLL pro|
|00003b10| 63 65 64 75 72 65 20 53 | 65 74 57 69 6e 64 6f 77 |cedure S|etWindow|
|00003b20| 50 6f 73 28 20 68 57 6e | 64 20 61 73 20 57 6f 72 |Pos( hWn|d as Wor|
|00003b30| 64 2c 20 68 49 6e 73 65 | 72 74 41 66 74 65 72 20 |d, hInse|rtAfter |
|00003b40| 61 73 20 57 6f 72 64 2c | 20 58 20 61 73 20 53 68 |as Word,| X as Sh|
|00003b50| 6f 72 74 49 6e 74 2c 20 | 59 20 61 73 20 53 68 6f |ortInt, |Y as Sho|
|00003b60| 72 74 49 6e 74 2c 20 43 | 58 20 61 73 20 53 68 6f |rtInt, C|X as Sho|
|00003b70| 72 74 49 6e 74 2c 20 43 | 59 20 61 73 20 53 68 6f |rtInt, C|Y as Sho|
|00003b80| 72 74 49 6e 74 2c 20 46 | 6c 61 67 73 20 61 73 20 |rtInt, F|lags as |
|00003b90| 57 6f 72 64 20 29 20 50 | 61 73 63 61 6c 3a 55 73 |Word ) P|ascal:Us|
|00003ba0| 65 72 2e 32 33 32 00 40 | 00 0f 00 00 00 55 4e 4c |er.232.@|.....UNL|
|00003bb0| 4f 43 4b 52 45 53 4f 55 | 52 43 45 00 51 00 02 00 |OCKRESOU|RCE.Q...|
|00003bc0| 00 00 02 00 44 00 02 00 | 00 00 01 00 48 00 04 00 |....D...|....H...|
|00003bd0| 00 00 f3 2e 66 2e 4d 00 | 02 00 00 00 11 00 45 00 |....f.M.|......E.|
|00003be0| 02 00 00 00 00 00 46 00 | 02 00 00 00 02 00 47 00 |......F.|......G.|
|00003bf0| 02 00 00 00 ff ff 49 00 | 02 00 00 00 00 00 41 00 |......I.|......A.|
|00003c00| 4b 00 00 00 5f 44 4c 4c | 20 66 75 6e 63 74 69 6f |K..._DLL| functio|
|00003c10| 6e 20 55 6e 6c 6f 63 6b | 52 65 73 6f 75 72 63 65 |n Unlock|Resource|
|00003c20| 28 20 68 52 65 73 20 61 | 73 20 57 6f 72 64 20 29 |( hRes a|s Word )|
|00003c30| 20 61 73 20 4c 6f 67 69 | 63 20 50 61 73 63 61 6c | as Logi|c Pascal|
|00003c40| 3a 4b 65 72 6e 65 6c 2e | 31 39 0d 0a 0d 0a 00 4e |:Kernel.|19.....N|
|00003c50| 00 47 00 00 00 5f 44 4c | 4c 20 66 75 6e 63 74 69 |.G..._DL|L functi|
|00003c60| 6f 6e 20 55 6e 6c 6f 63 | 6b 52 65 73 6f 75 72 63 |on Unloc|kResourc|
|00003c70| 65 28 20 68 52 65 73 20 | 61 73 20 57 6f 72 64 20 |e( hRes |as Word |
|00003c80| 29 20 61 73 20 4c 6f 67 | 69 63 20 50 61 73 63 61 |) as Log|ic Pasca|
|00003c90| 6c 3a 4b 65 72 6e 65 6c | 2e 31 39 00 40 00 0c 00 |l:Kernel|.19.@...|
|00003ca0| 00 00 56 4f 54 42 57 4e | 44 50 52 4f 43 00 51 00 |..VOTBWN|DPROC.Q.|
|00003cb0| 02 00 00 00 02 00 44 00 | 02 00 00 00 03 00 48 00 |......D.|......H.|
|00003cc0| 04 00 00 00 f3 2e 66 2e | 4d 00 02 00 00 00 11 00 |......f.|M.......|
|00003cd0| 45 00 02 00 00 00 00 00 | 46 00 02 00 00 00 02 00 |E.......|F.......|
|00003ce0| 47 00 02 00 00 00 ff ff | 49 00 02 00 00 00 00 00 |G.......|I.......|
|00003cf0| 41 00 33 03 00 00 66 75 | 6e 63 74 69 6f 6e 20 56 |A.3...fu|nction V|
|00003d00| 4f 54 42 57 6e 64 50 72 | 6f 63 28 20 68 57 6e 64 |OTBWndPr|oc( hWnd|
|00003d10| 20 61 73 20 57 6f 72 64 | 2c 20 77 4d 73 67 20 61 | as Word|, wMsg a|
|00003d20| 73 20 57 6f 72 64 2c 20 | 77 50 61 72 61 6d 20 61 |s Word, |wParam a|
|00003d30| 73 20 57 6f 72 64 2c 20 | 6c 50 61 72 61 6d 20 61 |s Word, |lParam a|
|00003d40| 73 20 4c 6f 6e 67 49 6e | 74 20 29 20 61 73 20 4c |s LongIn|t ) as L|
|00003d50| 6f 6e 67 49 6e 74 20 43 | 61 6c 6c 62 61 63 6b 0d |ongInt C|allback.|
|00003d60| 0a 0d 0a 6c 6f 63 61 6c | 20 6c 52 65 74 75 72 6e |...local| lReturn|
|00003d70| 20 61 73 20 4c 6f 6e 67 | 49 6e 74 0d 0a 0d 0a 64 | as Long|Int....d|
|00003d80| 6f 20 63 61 73 65 0d 0a | 09 63 61 73 65 20 77 4d |o case..|.case wM|
|00003d90| 73 67 20 3d 3d 20 54 42 | 4d 5f 44 49 53 41 42 4c |sg == TB|M_DISABL|
|00003da0| 45 0d 0a 09 09 6c 52 65 | 74 75 72 6e 20 3a 3d 20 |E....lRe|turn := |
|00003db0| 45 6e 61 62 6c 65 42 75 | 74 74 6f 6e 28 20 68 57 |EnableBu|tton( hW|
|00003dc0| 6e 64 2c 20 77 50 61 72 | 61 6d 2c 20 2e 46 2e 20 |nd, wPar|am, .F. |
|00003dd0| 29 0d 0a 09 09 0d 0a 09 | 63 61 73 65 20 77 4d 73 |).......|case wMs|
|00003de0| 67 20 3d 3d 20 54 42 4d | 5f 45 4e 41 42 4c 45 0d |g == TBM|_ENABLE.|
|00003df0| 0a 09 09 6c 52 65 74 75 | 72 6e 20 3a 3d 20 45 6e |...lRetu|rn := En|
|00003e00| 61 62 6c 65 42 75 74 74 | 6f 6e 28 20 68 57 6e 64 |ableButt|on( hWnd|
|00003e10| 2c 20 77 50 61 72 61 6d | 2c 20 2e 54 2e 20 29 0d |, wParam|, .T. ).|
|00003e20| 0a 09 09 0d 0a 09 63 61 | 73 65 20 77 4d 73 67 20 |......ca|se wMsg |
|00003e30| 3d 3d 20 57 4d 5f 4c 42 | 55 54 54 4f 4e 44 4f 57 |== WM_LB|UTTONDOW|
|00003e40| 4e 0d 0a 09 09 6c 52 65 | 74 75 72 6e 20 3a 3d 20 |N....lRe|turn := |
|00003e50| 4d 6f 75 73 65 42 75 74 | 74 6f 6e 44 6f 77 6e 28 |MouseBut|tonDown(|
|00003e60| 20 68 57 6e 64 2c 20 6c | 50 61 72 61 6d 20 29 0d | hWnd, l|Param ).|
|00003e70| 0a 09 09 0d 0a 09 63 61 | 73 65 20 77 4d 73 67 20 |......ca|se wMsg |
|00003e80| 3d 3d 20 57 4d 5f 4c 42 | 55 54 54 4f 4e 55 50 0d |== WM_LB|UTTONUP.|
|00003e90| 0a 09 09 6c 52 65 74 75 | 72 6e 20 3a 3d 20 4d 6f |...lRetu|rn := Mo|
|00003ea0| 75 73 65 42 75 74 74 6f | 6e 55 70 28 20 68 57 6e |useButto|nUp( hWn|
|00003eb0| 64 2c 20 6c 50 61 72 61 | 6d 20 29 0d 0a 0d 0a 09 |d, lPara|m ).....|
|00003ec0| 63 61 73 65 20 77 4d 73 | 67 20 3d 3d 20 57 4d 5f |case wMs|g == WM_|
|00003ed0| 53 49 5a 45 0d 0a 09 09 | 6c 52 65 74 75 72 6e 20 |SIZE....|lReturn |
|00003ee0| 3a 3d 20 52 65 73 69 7a | 65 54 6f 6f 6c 62 61 72 |:= Resiz|eToolbar|
|00003ef0| 28 20 68 57 6e 64 20 29 | 0d 0a 09 09 0d 0a 09 63 |( hWnd )|.......c|
|00003f00| 61 73 65 20 77 4d 73 67 | 20 3d 3d 20 57 4d 5f 50 |ase wMsg| == WM_P|
|00003f10| 41 49 4e 54 0d 0a 09 09 | 6c 52 65 74 75 72 6e 20 |AINT....|lReturn |
|00003f20| 3a 3d 20 50 61 69 6e 74 | 54 6f 6f 6c 62 61 72 28 |:= Paint|Toolbar(|
|00003f30| 20 68 57 6e 64 20 29 0d | 0a 20 0d 0a 09 63 61 73 | hWnd ).|. ...cas|
|00003f40| 65 20 77 4d 73 67 20 3d | 3d 20 57 4d 5f 43 52 45 |e wMsg =|= WM_CRE|
|00003f50| 41 54 45 0d 0a 09 09 6c | 52 65 74 75 72 6e 20 3a |ATE....l|Return :|
|00003f60| 3d 20 49 6e 69 74 54 6f | 6f 6c 62 61 72 28 20 68 |= InitTo|olbar( h|
|00003f70| 57 6e 64 2c 20 6c 50 61 | 72 61 6d 20 29 0d 0a 09 |Wnd, lPa|ram )...|
|00003f80| 09 20 0d 0a 09 63 61 73 | 65 20 77 4d 73 67 20 3d |. ...cas|e wMsg =|
|00003f90| 3d 20 57 4d 5f 44 45 53 | 54 52 4f 59 0d 0a 09 09 |= WM_DES|TROY....|
|00003fa0| 6c 52 65 74 75 72 6e 20 | 3a 3d 20 44 65 73 74 72 |lReturn |:= Destr|
|00003fb0| 6f 79 54 6f 6f 6c 62 61 | 72 28 20 68 57 6e 64 20 |oyToolba|r( hWnd |
|00003fc0| 29 0d 0a 0d 0a 09 6f 74 | 68 65 72 77 69 73 65 0d |).....ot|herwise.|
|00003fd0| 0a 09 09 6c 52 65 74 75 | 72 6e 20 3a 3d 20 44 65 |...lRetu|rn := De|
|00003fe0| 66 57 69 6e 64 6f 77 50 | 72 6f 63 28 20 68 57 6e |fWindowP|roc( hWn|
|00003ff0| 64 2c 20 77 4d 73 67 2c | 20 77 50 61 72 61 6d 2c |d, wMsg,| wParam,|
|00004000| 20 6c 50 61 72 61 6d 20 | 29 0d 0a 65 6e 64 63 61 | lParam |)..endca|
|00004010| 73 65 0d 0a 0d 0a 72 65 | 74 75 72 6e 20 6c 52 65 |se....re|turn lRe|
|00004020| 74 75 72 6e 0d 0a 0d 0a | 00 4e 00 6a 00 00 00 66 |turn....|.N.j...f|
|00004030| 75 6e 63 74 69 6f 6e 20 | 56 4f 54 42 57 6e 64 50 |unction |VOTBWndP|
|00004040| 72 6f 63 28 20 68 57 6e | 64 20 61 73 20 57 6f 72 |roc( hWn|d as Wor|
|00004050| 64 2c 20 77 4d 73 67 20 | 61 73 20 57 6f 72 64 2c |d, wMsg |as Word,|
|00004060| 20 77 50 61 72 61 6d 20 | 61 73 20 57 6f 72 64 2c | wParam |as Word,|
|00004070| 20 6c 50 61 72 61 6d 20 | 61 73 20 4c 6f 6e 67 49 | lParam |as LongI|
|00004080| 6e 74 20 29 20 61 73 20 | 4c 6f 6e 67 49 6e 74 20 |nt ) as |LongInt |
|00004090| 43 61 6c 6c 62 61 63 6b | 00 40 00 0a 00 00 00 56 |Callback|.@.....V|
|000040a0| 4f 54 4f 4f 4c 42 41 52 | 00 51 00 02 00 00 00 02 |OTOOLBAR|.Q......|
|000040b0| 00 44 00 02 00 00 00 03 | 00 48 00 04 00 00 00 f4 |.D......|.H......|
|000040c0| 2e 66 2e 4d 00 02 00 00 | 00 11 00 45 00 02 00 00 |.f.M....|...E....|
|000040d0| 00 00 00 46 00 02 00 00 | 00 02 00 47 00 02 00 00 |...F....|...G....|
|000040e0| 00 ff ff 49 00 02 00 00 | 00 00 00 41 00 8c 06 00 |...I....|...A....|
|000040f0| 00 66 75 6e 63 74 69 6f | 6e 20 56 4f 54 6f 6f 6c |.functio|n VOTool|
|00004100| 62 61 72 28 20 68 50 61 | 72 65 6e 74 20 61 73 20 |bar( hPa|rent as |
|00004110| 57 6f 72 64 2c 20 68 42 | 4d 49 6e 73 74 20 61 73 |Word, hB|MInst as|
|00004120| 20 57 6f 72 64 2c 20 70 | 77 42 75 74 74 6f 6e 73 | Word, p|wButtons|
|00004130| 20 61 73 20 50 74 72 2c | 20 77 43 6f 75 6e 74 20 | as Ptr,| wCount |
|00004140| 61 73 20 57 6f 72 64 20 | 29 20 61 73 20 57 6f 72 |as Word |) as Wor|
|00004150| 64 20 50 61 73 63 61 6c | 0d 0a 0d 0a 6c 6f 63 61 |d Pascal|....loca|
|00004160| 6c 20 68 49 6e 73 74 20 | 61 73 20 57 6f 72 64 0d |l hInst |as Word.|
|00004170| 0a 6c 6f 63 61 6c 20 77 | 63 43 6c 61 73 73 20 69 |.local w|cClass i|
|00004180| 73 20 5f 57 49 4e 57 4e | 44 43 4c 41 53 53 0d 0a |s _WINWN|DCLASS..|
|00004190| 6c 6f 63 61 6c 20 70 73 | 7a 4e 61 6d 65 20 61 73 |local ps|zName as|
|000041a0| 20 50 53 5a 0d 0a 6c 6f | 63 61 6c 20 70 49 6e 64 | PSZ..lo|cal pInd|
|000041b0| 65 78 20 61 73 20 50 74 | 72 0d 0a 6c 6f 63 61 6c |ex as Pt|r..local|
|000041c0| 20 64 77 49 6e 64 65 78 | 20 61 73 20 44 57 6f 72 | dwIndex| as DWor|
|000041d0| 64 0d 0a 6c 6f 63 61 6c | 20 70 52 65 63 20 61 73 |d..local| pRec as|
|000041e0| 20 54 4f 4f 4c 42 41 52 | 5f 49 4e 46 4f 0d 0a 6c | TOOLBAR|_INFO..l|
|000041f0| 6f 63 61 6c 20 6e 20 61 | 73 20 53 68 6f 72 74 49 |ocal n a|s ShortI|
|00004200| 6e 74 0d 0a 0d 0a 2f 2f | 20 49 6e 69 74 20 74 68 |nt....//| Init th|
|00004210| 65 20 63 6c 61 73 73 20 | 6e 61 6d 65 0d 0a 0d 0a |e class |name....|
|00004220| 70 73 7a 4e 61 6d 65 20 | 3a 3d 20 50 53 5a 28 20 |pszName |:= PSZ( |
|00004230| 22 56 4f 54 6f 6f 6c 42 | 61 72 22 20 29 0d 0a 0d |"VOToolB|ar" )...|
|00004240| 0a 2f 2f 20 47 65 74 20 | 74 68 65 20 69 6e 73 74 |.// Get |the inst|
|00004250| 61 6e 63 65 20 68 61 6e | 64 6c 65 20 66 6f 72 20 |ance han|dle for |
|00004260| 74 68 65 20 70 61 72 65 | 6e 74 0d 0a 0d 0a 68 49 |the pare|nt....hI|
|00004270| 6e 73 74 20 3a 3d 20 47 | 65 74 57 69 6e 64 6f 77 |nst := G|etWindow|
|00004280| 57 6f 72 64 28 20 68 50 | 61 72 65 6e 74 2c 20 47 |Word( hP|arent, G|
|00004290| 57 57 5f 48 49 4e 53 54 | 41 4e 43 45 20 29 0d 0a |WW_HINST|ANCE )..|
|000042a0| 0d 0a 2f 2f 20 50 6f 70 | 75 6c 61 74 65 20 74 68 |..// Pop|ulate th|
|000042b0| 65 20 5f 57 49 4e 57 4e | 44 43 4c 41 53 53 20 73 |e _WINWN|DCLASS s|
|000042c0| 74 72 75 63 74 75 72 65 | 2c 20 69 66 20 6e 65 65 |tructure|, if nee|
|000042d0| 64 65 64 0d 0a 0d 0a 69 | 66 20 2e 6e 6f 74 2e 20 |ded....i|f .not. |
|000042e0| 47 65 74 43 6c 61 73 73 | 49 6e 66 6f 28 20 68 49 |GetClass|Info( hI|
|000042f0| 6e 73 74 2c 20 70 73 7a | 4e 61 6d 65 2c 20 40 77 |nst, psz|Name, @w|
|00004300| 63 43 6c 61 73 73 20 29 | 0d 0a 09 77 63 43 6c 61 |cClass )|...wcCla|
|00004310| 73 73 2e 73 74 79 6c 65 | 20 09 09 09 3a 3d 09 30 |ss.style| ...:=.0|
|00004320| 0d 0a 09 77 63 43 6c 61 | 73 73 2e 6c 70 66 6e 57 |...wcCla|ss.lpfnW|
|00004330| 6e 64 50 72 6f 63 20 09 | 3a 3d 09 40 56 4f 54 42 |ndProc .|:=.@VOTB|
|00004340| 57 6e 64 50 72 6f 63 28 | 29 0d 0a 09 77 63 43 6c |WndProc(|)...wcCl|
|00004350| 61 73 73 2e 63 62 43 6c | 73 45 78 74 72 61 09 09 |ass.cbCl|sExtra..|
|00004360| 3a 3d 09 30 0d 0a 09 77 | 63 43 6c 61 73 73 2e 63 |:=.0...w|cClass.c|
|00004370| 62 57 6e 64 45 78 74 72 | 61 09 09 3a 3d 09 5f 73 |bWndExtr|a..:=._s|
|00004380| 69 7a 65 6f 66 28 20 50 | 74 72 20 29 0d 0a 09 77 |izeof( P|tr )...w|
|00004390| 63 43 6c 61 73 73 2e 68 | 49 6e 73 74 61 6e 63 65 |cClass.h|Instance|
|000043a0| 09 09 3a 3d 09 68 49 6e | 73 74 0d 0a 09 77 63 43 |..:=.hIn|st...wcC|
|000043b0| 6c 61 73 73 2e 68 49 63 | 6f 6e 09 09 09 3a 3d 09 |lass.hIc|on...:=.|
|000043c0| 30 0d 0a 09 77 63 43 6c | 61 73 73 2e 68 43 75 72 |0...wcCl|ass.hCur|
|000043d0| 73 6f 72 09 09 09 3a 3d | 09 4c 6f 61 64 43 75 72 |sor...:=|.LoadCur|
|000043e0| 73 6f 72 28 20 30 2c 20 | 50 53 5a 28 20 5f 43 41 |sor( 0, |PSZ( _CA|
|000043f0| 53 54 2c 20 49 44 43 5f | 41 52 52 4f 57 20 29 20 |ST, IDC_|ARROW ) |
|00004400| 29 0d 0a 09 77 63 43 6c | 61 73 73 2e 68 62 72 42 |)...wcCl|ass.hbrB|
|00004410| 61 63 6b 67 72 6f 75 6e | 64 09 3a 3d 09 43 4f 4c |ackgroun|d.:=.COL|
|00004420| 4f 52 5f 42 54 4e 46 41 | 43 45 20 2b 20 31 0d 0a |OR_BTNFA|CE + 1..|
|00004430| 09 77 63 43 6c 61 73 73 | 2e 6c 70 73 7a 4d 65 6e |.wcClass|.lpszMen|
|00004440| 75 4e 61 6d 65 09 3a 3d | 09 50 53 5a 28 20 5f 43 |uName.:=|.PSZ( _C|
|00004450| 41 53 54 2c 20 4e 55 4c | 4c 20 29 0d 0a 09 77 63 |AST, NUL|L )...wc|
|00004460| 43 6c 61 73 73 2e 6c 70 | 73 7a 43 6c 61 73 73 4e |Class.lp|szClassN|
|00004470| 61 6d 65 09 3a 3d 09 70 | 73 7a 4e 61 6d 65 0d 0a |ame.:=.p|szName..|
|00004480| 0d 0a 09 2f 2f 20 52 65 | 67 69 73 74 65 72 20 74 |...// Re|gister t|
|00004490| 68 65 20 77 69 6e 64 6f | 77 20 63 6c 61 73 73 20 |he windo|w class |
|000044a0| 66 6f 72 20 74 68 65 20 | 74 6f 6f 6c 62 61 72 0d |for the |toolbar.|
|000044b0| 0a 0d 0a 09 52 65 67 69 | 73 74 65 72 43 6c 61 73 |....Regi|sterClas|
|000044c0| 73 28 20 40 77 63 43 6c | 61 73 73 20 29 0d 0a 65 |s( @wcCl|ass )..e|
|000044d0| 6e 64 69 66 0d 0a 0d 0a | 2f 2f 20 41 6c 6c 6f 63 |ndif....|// Alloc|
|000044e0| 61 74 65 20 61 20 74 6f | 6f 6c 62 61 72 20 69 6e |ate a to|olbar in|
|000044f0| 66 6f 20 72 65 63 6f 72 | 64 0d 0a 0d 0a 70 52 65 |fo recor|d....pRe|
|00004500| 63 20 3a 3d 20 4d 65 6d | 41 6c 6c 6f 63 28 20 5f |c := Mem|Alloc( _|
|00004510| 73 69 7a 65 6f 66 28 20 | 54 4f 4f 4c 42 41 52 5f |sizeof( |TOOLBAR_|
|00004520| 49 4e 46 4f 20 29 20 29 | 0d 0a 0d 0a 2f 2f 20 53 |INFO ) )|....// S|
|00004530| 74 6f 72 65 20 74 68 65 | 20 69 6e 73 74 61 6e 63 |tore the| instanc|
|00004540| 65 20 68 61 6e 64 6c 65 | 20 6f 66 20 74 68 65 20 |e handle| of the |
|00004550| 6d 6f 64 75 6c 65 20 74 | 68 61 74 20 63 6f 6e 74 |module t|hat cont|
|00004560| 61 69 6e 73 20 74 68 65 | 20 62 69 74 6d 61 70 73 |ains the| bitmaps|
|00004570| 0d 0a 0d 0a 70 52 65 63 | 2e 62 6d 49 6e 73 74 20 |....pRec|.bmInst |
|00004580| 3a 3d 20 68 42 4d 49 6e | 73 74 0d 0a 0d 0a 2f 2f |:= hBMIn|st....//|
|00004590| 20 47 72 61 62 20 74 68 | 65 20 69 6e 63 6f 6d 69 | Grab th|e incomi|
|000045a0| 6e 67 20 70 6f 69 6e 74 | 65 72 20 61 6e 64 20 75 |ng point|er and u|
|000045b0| 73 65 20 69 74 20 74 6f | 20 63 6f 6e 73 74 72 75 |se it to| constru|
|000045c0| 63 74 20 61 6e 20 61 72 | 72 61 79 20 6f 66 20 62 |ct an ar|ray of b|
|000045d0| 69 74 6d 61 70 20 49 44 | 73 0d 0a 0d 0a 70 52 65 |itmap ID|s....pRe|
|000045e0| 63 2e 62 6d 43 6f 75 6e | 74 20 3a 3d 20 77 43 6f |c.bmCoun|t := wCo|
|000045f0| 75 6e 74 0d 0a 0d 0a 64 | 77 49 6e 64 65 78 20 3a |unt....d|wIndex :|
|00004600| 3d 20 44 57 6f 72 64 28 | 20 5f 43 41 53 54 2c 20 |= DWord(| _CAST, |
|00004610| 70 77 42 75 74 74 6f 6e | 73 20 29 0d 0a 0d 0a 66 |pwButton|s )....f|
|00004620| 6f 72 20 6e 20 3a 3d 20 | 31 20 74 6f 20 53 68 6f |or n := |1 to Sho|
|00004630| 72 74 49 6e 74 28 20 77 | 43 6f 75 6e 74 20 29 0d |rtInt( w|Count ).|
|00004640| 0a 09 70 49 6e 64 65 78 | 20 3a 3d 20 50 74 72 28 |..pIndex| := Ptr(|
|00004650| 20 5f 43 41 53 54 2c 20 | 64 77 49 6e 64 65 78 20 | _CAST, |dwIndex |
|00004660| 29 0d 0a 0d 0a 09 70 52 | 65 63 2e 62 6d 52 65 73 |).....pR|ec.bmRes|
|00004670| 49 44 5b 20 53 68 6f 72 | 74 49 6e 74 28 20 6e 20 |ID[ Shor|tInt( n |
|00004680| 20 29 20 5d 20 3a 3d 20 | 57 6f 72 64 28 20 70 49 | ) ] := |Word( pI|
|00004690| 6e 64 65 78 20 29 0d 0a | 09 0d 0a 09 64 77 49 6e |ndex )..|....dwIn|
|000046a0| 64 65 78 20 2b 3d 20 44 | 57 6f 72 64 28 20 5f 73 |dex += D|Word( _s|
|000046b0| 69 7a 65 6f 66 28 20 57 | 6f 72 64 20 29 20 29 0d |izeof( W|ord ) ).|
|000046c0| 0a 6e 65 78 74 0d 0a 0d | 0a 2f 2f 20 43 72 65 61 |.next...|.// Crea|
|000046d0| 74 65 20 74 68 65 20 77 | 69 6e 64 6f 77 20 66 6f |te the w|indow fo|
|000046e0| 72 20 74 68 65 20 74 6f | 6f 6c 62 61 72 20 61 6e |r the to|olbar an|
|000046f0| 64 20 72 65 74 75 72 6e | 20 69 74 73 20 68 61 6e |d return| its han|
|00004700| 64 6c 65 0d 0a 0d 0a 72 | 65 74 75 72 6e 20 43 72 |dle....r|eturn Cr|
|00004710| 65 61 74 65 57 69 6e 64 | 6f 77 28 20 70 73 7a 4e |eateWind|ow( pszN|
|00004720| 61 6d 65 2c 20 50 53 5a | 28 20 22 22 20 29 2c 20 |ame, PSZ|( "" ), |
|00004730| 44 57 6f 72 64 28 20 57 | 53 5f 43 48 49 4c 44 20 |DWord( W|S_CHILD |
|00004740| 2b 20 20 57 53 5f 56 49 | 53 49 42 4c 45 20 29 2c |+ WS_VI|SIBLE ),|
|00004750| 20 30 2c 20 30 2c 20 30 | 2c 20 30 2c 20 68 50 61 | 0, 0, 0|, 0, hPa|
|00004760| 72 65 6e 74 2c 20 30 2c | 20 68 49 6e 73 74 2c 20 |rent, 0,| hInst, |
|00004770| 70 52 65 63 20 29 0d 0a | 0d 0a 0d 0a 00 4e 00 68 |pRec )..|.....N.h|
|00004780| 00 00 00 66 75 6e 63 74 | 69 6f 6e 20 56 4f 54 6f |...funct|ion VOTo|
|00004790| 6f 6c 62 61 72 28 20 68 | 50 61 72 65 6e 74 20 61 |olbar( h|Parent a|
|000047a0| 73 20 57 6f 72 64 2c 20 | 68 42 4d 49 6e 73 74 20 |s Word, |hBMInst |
|000047b0| 61 73 20 57 6f 72 64 2c | 20 70 77 42 75 74 74 6f |as Word,| pwButto|
|000047c0| 6e 73 20 61 73 20 50 74 | 72 2c 20 77 43 6f 75 6e |ns as Pt|r, wCoun|
|000047d0| 74 20 61 73 20 57 6f 72 | 64 20 29 20 61 73 20 57 |t as Wor|d ) as W|
|000047e0| 6f 72 64 20 50 61 73 63 | 61 6c 00 20 00 08 00 00 |ord Pasc|al. ....|
|000047f0| 00 52 65 61 64 20 4d 65 | 00 21 00 02 00 00 00 02 |.Read Me|.!......|
|00004800| 00 40 00 14 00 00 00 54 | 4f 4f 4c 42 41 52 20 44 |.@.....T|OOLBAR D|
|00004810| 4c 4c 3a 52 45 41 44 20 | 4d 45 00 51 00 02 00 00 |LL:READ |ME.Q....|
|00004820| 00 00 00 44 00 02 00 00 | 00 03 00 48 00 04 00 00 |...D....|...H....|
|00004830| 00 8a 9a 09 2f 4d 00 02 | 00 00 00 00 00 45 00 02 |..../M..|.....E..|
|00004840| 00 00 00 00 00 46 00 02 | 00 00 00 02 00 47 00 02 |.....F..|.....G..|
|00004850| 00 00 00 ff ff 49 00 02 | 00 00 00 00 00 41 00 73 |.....I..|.....A.s|
|00004860| 10 00 00 54 45 58 54 42 | 4c 4f 43 4b 20 54 6f 6f |...TEXTB|LOCK Too|
|00004870| 6c 42 61 72 20 44 4c 4c | 3a 52 65 61 64 20 4d 65 |lBar DLL|:Read Me|
|00004880| 0d 0a 2f 2a 0d 0a 0d 0a | 54 4f 4f 4c 42 41 52 2e |../*....|TOOLBAR.|
|00004890| 44 4c 4c 09 2d 2d 09 43 | 72 65 61 74 65 73 20 74 |DLL.--.C|reates t|
|000048a0| 6f 6f 6c 62 61 72 20 77 | 69 74 68 20 70 72 6f 67 |oolbar w|ith prog|
|000048b0| 72 61 6d 6d 65 72 2d 64 | 65 66 69 6e 65 64 20 62 |rammer-d|efined b|
|000048c0| 69 74 6d 61 70 73 20 61 | 6e 64 20 61 74 74 61 63 |itmaps a|nd attac|
|000048d0| 68 65 73 20 69 74 0d 0a | 09 09 09 09 09 74 6f 20 |hes it..|.....to |
|000048e0| 61 20 73 70 65 63 69 66 | 69 65 64 20 70 61 72 65 |a specif|ied pare|
|000048f0| 6e 74 20 77 69 6e 64 6f | 77 2e 0d 0a 0d 0a 3d 3d |nt windo|w.....==|
|00004900| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004910| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004920| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004930| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004940| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 0d 0a 0d 0a 54 68 65 |========|=....The|
|00004950| 20 70 75 72 70 6f 73 65 | 20 6f 66 20 74 68 69 73 | purpose| of this|
|00004960| 20 44 4c 4c 20 69 73 20 | 74 6f 20 70 72 6f 76 69 | DLL is |to provi|
|00004970| 64 65 20 61 20 66 75 6e | 63 74 69 6f 6e 20 62 79 |de a fun|ction by|
|00004980| 20 77 68 69 63 68 20 61 | 20 74 6f 6f 6c 62 61 72 | which a| toolbar|
|00004990| 20 63 61 6e 20 62 65 20 | 63 72 65 61 74 65 64 20 | can be |created |
|000049a0| 61 6e 64 20 61 64 64 65 | 64 0d 0a 74 6f 20 61 20 |and adde|d..to a |
|000049b0| 73 70 65 63 69 66 69 65 | 64 20 70 61 72 65 6e 74 |specifie|d parent|
|000049c0| 20 77 69 6e 64 6f 77 2e | 20 20 49 6e 20 74 68 69 | window.| In thi|
|000049d0| 73 20 63 6f 6e 74 65 78 | 74 2c 20 61 20 74 6f 6f |s contex|t, a too|
|000049e0| 6c 62 61 72 20 69 73 20 | 61 20 63 68 69 6c 64 20 |lbar is |a child |
|000049f0| 77 69 6e 64 6f 77 20 74 | 68 61 74 20 63 6f 6e 74 |window t|hat cont|
|00004a00| 61 69 6e 73 20 61 0d 0a | 6e 75 6d 62 65 72 20 6f |ains a..|number o|
|00004a10| 66 20 62 69 74 6d 61 70 | 73 20 74 68 61 74 20 73 |f bitmap|s that s|
|00004a20| 65 72 76 65 20 61 73 20 | 6d 6f 75 73 65 2d 61 77 |erve as |mouse-aw|
|00004a30| 61 72 65 20 62 75 74 74 | 6f 6e 73 2e 20 20 57 68 |are butt|ons. Wh|
|00004a40| 65 6e 20 61 20 62 75 74 | 74 6f 6e 20 69 73 20 63 |en a but|ton is c|
|00004a50| 6c 69 63 6b 65 64 2c 20 | 74 68 65 0d 0a 61 70 70 |licked, |the..app|
|00004a60| 6c 69 63 61 74 69 6f 6e | 20 63 61 6e 20 74 61 6b |lication| can tak|
|00004a70| 65 20 77 68 61 74 65 76 | 65 72 20 61 63 74 69 6f |e whatev|er actio|
|00004a80| 6e 20 69 73 20 64 65 73 | 69 72 65 64 2c 20 61 6c |n is des|ired, al|
|00004a90| 74 68 6f 75 67 68 20 74 | 79 70 69 63 61 6c 6c 79 |though t|ypically|
|00004aa0| 20 65 61 63 68 20 62 75 | 74 74 6f 6e 20 63 6f 72 | each bu|tton cor|
|00004ab0| 72 65 73 70 6f 6e 64 73 | 0d 0a 74 6f 20 61 20 70 |responds|..to a p|
|00004ac0| 61 72 74 69 63 75 6c 61 | 72 20 6d 65 6e 75 20 73 |articula|r menu s|
|00004ad0| 65 6c 65 63 74 69 6f 6e | 2e 0d 0a 0d 0a 54 68 69 |election|.....Thi|
|00004ae0| 73 20 44 4c 4c 20 69 73 | 20 77 72 69 74 74 65 6e |s DLL is| written|
|00004af0| 20 65 6e 74 69 72 65 6c | 79 20 69 6e 20 43 41 2d | entirel|y in CA-|
|00004b00| 56 69 73 75 61 6c 20 4f | 62 6a 65 63 74 73 2c 20 |Visual O|bjects, |
|00004b10| 61 6e 64 20 69 73 20 64 | 65 73 69 67 6e 65 64 20 |and is d|esigned |
|00004b20| 61 73 20 61 20 66 6f 72 | 65 69 67 6e 2d 68 6f 73 |as a for|eign-hos|
|00004b30| 74 65 64 20 44 4c 4c 2c | 0d 0a 6d 65 61 6e 69 6e |ted DLL,|..meanin|
|00004b40| 67 20 74 68 61 74 20 69 | 74 20 63 61 6e 20 62 65 |g that i|t can be|
|00004b50| 20 61 6e 79 20 6c 61 6e | 67 75 61 67 65 20 74 68 | any lan|guage th|
|00004b60| 61 74 20 73 75 70 70 6f | 72 74 73 20 44 4c 4c 73 |at suppo|rts DLLs|
|00004b70| 2e 20 20 54 68 65 20 61 | 75 74 68 6f 72 20 68 61 |. The a|uthor ha|
|00004b80| 73 20 74 65 73 74 65 64 | 20 69 74 20 77 69 74 68 |s tested| it with|
|00004b90| 20 43 2c 0d 0a 50 61 73 | 63 61 6c 2c 20 61 6e 64 | C,..Pas|cal, and|
|00004ba0| 20 43 41 2d 56 69 73 75 | 61 6c 20 4f 62 6a 65 63 | CA-Visu|al Objec|
|00004bb0| 74 73 2c 20 61 6e 64 20 | 6f 74 68 65 72 20 6c 61 |ts, and |other la|
|00004bc0| 6e 67 75 61 67 65 73 20 | 73 75 63 68 20 61 73 20 |nguages |such as |
|00004bd0| 43 41 2d 52 65 61 6c 69 | 7a 65 72 2c 20 56 69 73 |CA-Reali|zer, Vis|
|00004be0| 75 61 6c 20 42 41 53 49 | 43 2c 0d 0a 61 6e 64 20 |ual BASI|C,..and |
|00004bf0| 50 6f 77 65 72 42 75 69 | 6c 64 65 72 20 61 6c 73 |PowerBui|lder als|
|00004c00| 6f 20 73 68 6f 75 6c 64 | 20 77 6f 72 6b 20 77 69 |o should| work wi|
|00004c10| 74 68 6f 75 74 20 64 69 | 66 66 69 63 75 6c 74 79 |thout di|fficulty|
|00004c20| 2e 0d 0a 0d 0a 54 68 65 | 20 44 4c 4c 20 63 6f 6e |.....The| DLL con|
|00004c30| 74 61 69 6e 73 20 61 20 | 73 69 6e 67 6c 65 20 65 |tains a |single e|
|00004c40| 78 70 6f 72 74 65 64 20 | 66 75 6e 63 74 69 6f 6e |xported |function|
|00004c50| 20 63 61 6c 6c 65 64 20 | 56 4f 54 6f 6f 6c 62 61 | called |VOToolba|
|00004c60| 72 28 29 2c 20 77 68 6f | 73 65 20 73 79 6e 74 61 |r(), who|se synta|
|00004c70| 78 20 69 73 3a 0d 0a 0d | 0a 09 56 4f 54 6f 6f 6c |x is:...|..VOTool|
|00004c80| 62 61 72 28 20 68 50 61 | 72 65 6e 74 20 61 73 20 |bar( hPa|rent as |
|00004c90| 57 6f 72 64 2c 20 68 49 | 6e 73 74 20 61 73 20 57 |Word, hI|nst as W|
|00004ca0| 6f 72 64 2c 20 70 77 42 | 75 74 74 6f 6e 73 20 61 |ord, pwB|uttons a|
|00004cb0| 73 20 50 74 72 2c 20 77 | 43 6f 75 6e 74 20 61 73 |s Ptr, w|Count as|
|00004cc0| 20 57 6f 72 64 20 29 0d | 0a 09 0d 0a 77 68 65 72 | Word ).|....wher|
|00004cd0| 65 3a 0d 0a 0d 0a 09 68 | 50 61 72 65 6e 74 20 69 |e:.....h|Parent i|
|00004ce0| 73 20 74 68 65 20 77 69 | 6e 64 6f 77 20 74 6f 20 |s the wi|ndow to |
|00004cf0| 77 68 69 63 68 20 74 68 | 65 20 74 6f 6f 6c 62 61 |which th|e toolba|
|00004d00| 72 20 73 68 6f 75 6c 64 | 20 62 65 20 61 74 74 61 |r should| be atta|
|00004d10| 63 68 65 64 2e 0d 0a 09 | 0d 0a 09 68 49 6e 73 74 |ched....|...hInst|
|00004d20| 20 69 73 20 74 68 65 20 | 69 6e 73 74 61 6e 63 65 | is the |instance|
|00004d30| 20 68 61 6e 64 6c 65 20 | 6f 66 20 74 68 65 20 6d | handle |of the m|
|00004d40| 6f 64 75 6c 65 20 77 68 | 69 63 68 20 63 6f 6e 74 |odule wh|ich cont|
|00004d50| 61 69 6e 73 20 74 68 65 | 20 64 65 73 69 72 65 64 |ains the| desired|
|00004d60| 20 62 69 74 6d 61 70 73 | 2e 0d 0a 09 49 66 20 74 | bitmaps|....If t|
|00004d70| 68 65 20 62 69 74 6d 61 | 70 73 20 61 72 65 20 63 |he bitma|ps are c|
|00004d80| 6f 6e 74 61 69 6e 65 64 | 20 77 69 74 68 69 6e 20 |ontained| within |
|00004d90| 74 68 65 20 65 78 65 63 | 75 74 61 62 6c 65 2c 20 |the exec|utable, |
|00004da0| 74 68 65 6e 20 74 68 65 | 20 69 6e 73 74 61 6e 63 |then the| instanc|
|00004db0| 65 20 68 61 6e 64 6c 65 | 0d 0a 09 6f 66 20 74 68 |e handle|...of th|
|00004dc0| 65 20 65 78 65 63 75 74 | 61 62 6c 65 20 73 68 6f |e execut|able sho|
|00004dd0| 75 6c 64 20 62 65 20 75 | 73 65 64 2e 20 20 49 66 |uld be u|sed. If|
|00004de0| 20 74 68 65 20 62 69 74 | 6d 61 70 73 20 61 72 65 | the bit|maps are|
|00004df0| 20 69 6e 20 61 6e 20 65 | 78 74 65 72 6e 61 6c 20 | in an e|xternal |
|00004e00| 44 4c 4c 2c 0d 0a 09 74 | 68 65 6e 20 4c 6f 61 64 |DLL,...t|hen Load|
|00004e10| 4c 69 62 72 61 72 79 28 | 29 20 73 68 6f 75 6c 64 |Library(|) should|
|00004e20| 20 62 65 20 75 73 65 64 | 20 74 6f 20 6f 62 74 61 | be used| to obta|
|00004e30| 69 6e 20 74 68 65 20 69 | 6e 73 74 61 6e 63 65 20 |in the i|nstance |
|00004e40| 68 61 6e 64 6c 65 2e 0d | 0a 09 0d 0a 09 70 77 42 |handle..|.....pwB|
|00004e50| 75 74 74 6f 6e 73 20 69 | 73 20 61 20 70 6f 69 6e |uttons i|s a poin|
|00004e60| 74 65 72 20 74 6f 20 61 | 6e 20 61 72 72 61 79 20 |ter to a|n array |
|00004e70| 6f 66 20 77 6f 72 64 73 | 20 63 6f 6e 74 61 69 6e |of words| contain|
|00004e80| 69 6e 67 20 74 68 65 20 | 72 65 73 6f 75 72 63 65 |ing the |resource|
|00004e90| 20 49 44 73 20 6f 66 20 | 74 68 65 0d 0a 09 76 61 | IDs of |the...va|
|00004ea0| 72 69 6f 75 73 20 62 69 | 74 6d 61 70 73 2e 20 20 |rious bi|tmaps. |
|00004eb0| 41 20 76 61 6c 75 65 20 | 6f 66 20 7a 65 72 6f 20 |A value |of zero |
|00004ec0| 69 6e 73 74 65 61 64 20 | 6f 66 20 61 20 72 65 73 |instead |of a res|
|00004ed0| 6f 75 72 63 65 20 49 44 | 20 63 61 6e 20 62 65 20 |ource ID| can be |
|00004ee0| 75 73 65 64 20 74 6f 20 | 69 6e 73 65 72 74 0d 0a |used to |insert..|
|00004ef0| 09 61 20 67 61 70 20 62 | 65 74 77 65 65 6e 20 62 |.a gap b|etween b|
|00004f00| 69 74 6d 61 70 73 2e 20 | 20 54 68 69 73 20 69 73 |itmaps. | This is|
|00004f10| 20 75 73 65 66 75 6c 20 | 66 6f 72 20 70 6c 61 63 | useful |for plac|
|00004f20| 69 6e 67 20 62 75 74 74 | 6f 6e 73 20 69 6e 20 6c |ing butt|ons in l|
|00004f30| 6f 67 69 63 61 6c 20 67 | 72 6f 75 70 73 2e 0d 0a |ogical g|roups...|
|00004f40| 09 0d 0a 09 77 43 6f 75 | 6e 74 20 69 6e 64 69 63 |....wCou|nt indic|
|00004f50| 61 74 65 73 20 68 6f 77 | 20 6d 61 6e 79 20 65 6c |ates how| many el|
|00004f60| 65 6d 65 6e 74 73 20 61 | 72 65 20 63 6f 6e 74 61 |ements a|re conta|
|00004f70| 69 6e 65 64 20 77 69 74 | 68 69 6e 20 74 68 65 20 |ined wit|hin the |
|00004f80| 70 77 42 75 74 74 6f 6e | 73 20 61 72 72 61 79 2e |pwButton|s array.|
|00004f90| 0d 0a 0d 0a 54 68 65 20 | 66 75 6e 63 74 69 6f 6e |....The |function|
|00004fa0| 20 72 65 74 75 72 6e 73 | 20 74 68 65 20 68 61 6e | returns| the han|
|00004fb0| 64 6c 65 20 66 6f 72 20 | 74 68 65 20 74 6f 6f 6c |dle for |the tool|
|00004fc0| 62 61 72 20 77 69 6e 64 | 6f 77 2e 0d 0a 0d 0a 41 |bar wind|ow.....A|
|00004fd0| 20 63 6f 75 70 6c 65 20 | 6f 66 20 65 78 61 6d 70 | couple |of examp|
|00004fe0| 6c 65 73 20 6d 61 79 20 | 62 65 20 69 6c 6c 75 73 |les may |be illus|
|00004ff0| 74 72 61 74 69 76 65 2e | 20 20 41 73 73 75 6d 65 |trative.| Assume|
|00005000| 20 74 68 61 74 20 79 6f | 75 20 77 69 73 68 20 74 | that yo|u wish t|
|00005010| 6f 20 63 61 6c 6c 20 74 | 68 65 20 66 75 6e 63 74 |o call t|he funct|
|00005020| 69 6f 6e 20 66 72 6f 6d | 0d 0a 43 2c 20 74 68 65 |ion from|..C, the|
|00005030| 20 62 69 74 6d 61 70 73 | 20 61 72 65 20 63 6f 6e | bitmaps| are con|
|00005040| 74 61 69 6e 65 64 20 69 | 6e 20 42 4d 2e 44 4c 4c |tained i|n BM.DLL|
|00005050| 2c 20 61 6e 64 20 74 68 | 65 20 72 65 73 6f 75 72 |, and th|e resour|
|00005060| 63 65 20 49 44 73 20 61 | 72 65 20 35 30 30 31 2c |ce IDs a|re 5001,|
|00005070| 20 35 30 30 35 2c 20 61 | 6e 64 20 35 30 30 37 3a | 5005, a|nd 5007:|
|00005080| 0d 0a 0d 0a 09 48 57 4e | 44 20 41 64 64 54 6f 6f |.....HWN|D AddToo|
|00005090| 6c 62 61 72 28 20 76 6f | 69 64 20 29 0d 0a 09 7b |lbar( vo|id )...{|
|000050a0| 0d 0a 09 09 61 75 74 6f | 20 75 6e 73 69 67 6e 65 |....auto| unsigne|
|000050b0| 64 20 69 6e 74 20 62 69 | 74 6d 61 70 73 5b 20 33 |d int bi|tmaps[ 3|
|000050c0| 20 5d 3b 0d 0a 09 09 61 | 75 74 6f 20 48 41 4e 44 | ];....a|uto HAND|
|000050d0| 4c 45 20 68 4c 69 62 3b | 0d 0a 09 09 61 75 74 6f |LE hLib;|....auto|
|000050e0| 20 48 57 4e 44 20 68 54 | 6f 6f 6c 62 61 72 3b 0d | HWND hT|oolbar;.|
|000050f0| 0a 09 09 0d 0a 09 09 62 | 69 74 6d 61 70 73 5b 20 |.......b|itmaps[ |
|00005100| 30 20 5d 20 3d 20 35 30 | 30 31 3b 0d 0a 09 09 62 |0 ] = 50|01;....b|
|00005110| 69 74 6d 61 70 73 5b 20 | 31 20 5d 20 3d 20 35 30 |itmaps[ |1 ] = 50|
|00005120| 30 35 3b 0d 0a 09 09 62 | 69 74 6d 61 70 73 5b 20 |05;....b|itmaps[ |
|00005130| 32 20 5d 20 3d 20 35 30 | 30 37 3b 0d 0a 09 09 0d |2 ] = 50|07;.....|
|00005140| 0a 09 09 68 4c 69 62 20 | 3d 20 4c 6f 61 64 4c 69 |...hLib |= LoadLi|
|00005150| 62 72 61 72 79 28 20 22 | 42 4d 2e 44 4c 4c 22 20 |brary( "|BM.DLL" |
|00005160| 29 3b 0d 0a 09 09 0d 0a | 09 09 68 54 6f 6f 6c 62 |);......|..hToolb|
|00005170| 61 72 20 3d 20 56 4f 54 | 6f 6f 6c 62 61 72 28 20 |ar = VOT|oolbar( |
|00005180| 54 68 69 73 57 69 6e 64 | 6f 77 2c 20 68 4c 69 62 |ThisWind|ow, hLib|
|00005190| 2c 20 26 62 69 74 6d 61 | 70 73 5b 20 30 20 5d 2c |, &bitma|ps[ 0 ],|
|000051a0| 20 33 20 29 3b 0d 0a 09 | 09 0d 0a 09 09 46 72 65 | 3 );...|.....Fre|
|000051b0| 65 4c 69 62 72 61 72 79 | 28 20 68 4c 69 62 20 29 |eLibrary|( hLib )|
|000051c0| 3b 0d 0a 09 09 0d 0a 09 | 09 72 65 74 75 72 6e 20 |;.......|.return |
|000051d0| 68 54 6f 6f 6c 62 61 72 | 3b 0d 0a 09 7d 0d 0a 0d |hToolbar|;...}...|
|000051e0| 0a 41 73 20 61 20 73 65 | 63 6f 6e 64 20 65 78 61 |.As a se|cond exa|
|000051f0| 6d 70 6c 65 2c 20 61 73 | 73 75 6d 65 20 74 68 61 |mple, as|sume tha|
|00005200| 74 20 79 6f 75 20 77 69 | 73 68 20 74 6f 20 63 61 |t you wi|sh to ca|
|00005210| 6c 6c 20 74 68 65 20 66 | 75 6e 63 74 69 6f 6e 20 |ll the f|unction |
|00005220| 66 72 6f 6d 20 43 41 2d | 56 69 73 75 61 6c 20 4f |from CA-|Visual O|
|00005230| 62 6a 65 63 74 73 2c 0d | 0a 74 68 65 20 62 69 74 |bjects,.|.the bit|
|00005240| 6d 61 70 73 20 61 72 65 | 20 63 6f 6e 74 61 69 6e |maps are| contain|
|00005250| 65 64 20 77 69 74 68 20 | 74 68 65 20 65 78 65 63 |ed with |the exec|
|00005260| 75 74 61 62 6c 65 2c 20 | 09 74 68 65 20 72 65 73 |utable, |.the res|
|00005270| 6f 75 72 63 65 20 49 44 | 73 20 61 72 65 20 37 30 |ource ID|s are 70|
|00005280| 30 31 20 74 68 72 75 20 | 37 30 30 36 2c 20 61 6e |01 thru |7006, an|
|00005290| 64 0d 0a 61 20 67 61 70 | 20 73 68 6f 75 6c 64 20 |d..a gap| should |
|000052a0| 62 65 20 70 6c 61 63 65 | 64 20 62 65 74 77 65 65 |be place|d betwee|
|000052b0| 6e 20 74 68 65 20 33 72 | 64 20 61 6e 64 20 34 74 |n the 3r|d and 4t|
|000052c0| 68 20 62 75 74 74 6f 6e | 73 3a 0d 0a 0d 0a 09 66 |h button|s:.....f|
|000052d0| 75 6e 63 74 69 6f 6e 20 | 41 64 64 54 6f 6f 6c 62 |unction |AddToolb|
|000052e0| 61 72 20 61 73 20 57 6f | 72 64 0d 0a 09 0d 0a 09 |ar as Wo|rd......|
|000052f0| 6c 6f 63 61 6c 20 64 69 | 6d 20 62 69 74 6d 61 70 |local di|m bitmap|
|00005300| 73 5b 20 37 20 5d 20 61 | 73 20 57 6f 72 64 0d 0a |s[ 7 ] a|s Word..|
|00005310| 09 0d 0a 09 62 69 74 6d | 61 70 73 5b 20 31 20 5d |....bitm|aps[ 1 ]|
|00005320| 20 3a 3d 20 37 30 30 31 | 0d 0a 09 62 69 74 6d 61 | := 7001|...bitma|
|00005330| 70 73 5b 20 32 20 5d 20 | 3a 3d 20 37 30 30 32 0d |ps[ 2 ] |:= 7002.|
|00005340| 0a 09 62 69 74 6d 61 70 | 73 5b 20 33 20 5d 20 3a |..bitmap|s[ 3 ] :|
|00005350| 3d 20 37 30 30 33 0d 0a | 09 62 69 74 6d 61 70 73 |= 7003..|.bitmaps|
|00005360| 5b 20 34 20 5d 20 3a 3d | 20 30 0d 0a 09 62 69 74 |[ 4 ] :=| 0...bit|
|00005370| 6d 61 70 73 5b 20 35 20 | 5d 20 3a 3d 20 37 30 30 |maps[ 5 |] := 700|
|00005380| 34 0d 0a 09 62 69 74 6d | 61 70 73 5b 20 36 20 5d |4...bitm|aps[ 6 ]|
|00005390| 20 3a 3d 20 37 30 30 35 | 0d 0a 09 62 69 74 6d 61 | := 7005|...bitma|
|000053a0| 70 73 5b 20 37 20 5d 20 | 3a 3d 20 37 30 30 36 0d |ps[ 7 ] |:= 7006.|
|000053b0| 0a 09 0d 0a 09 72 65 74 | 75 72 6e 20 56 4f 54 6f |.....ret|urn VOTo|
|000053c0| 6f 6c 62 61 72 28 20 54 | 68 69 73 57 69 6e 64 6f |olbar( T|hisWindo|
|000053d0| 77 2c 20 5f 67 65 74 49 | 6e 73 74 28 29 2c 20 40 |w, _getI|nst(), @|
|000053e0| 62 69 74 6d 61 70 73 2c | 20 37 20 29 0d 0a 0d 0a |bitmaps,| 7 )....|
|000053f0| 09 0d 0a 4f 6e 63 65 20 | 61 74 74 61 63 68 65 64 |...Once |attached|
|00005400| 2c 20 74 68 65 20 61 70 | 70 6c 69 63 61 74 69 6f |, the ap|plicatio|
|00005410| 6e 20 63 61 6e 20 63 6f | 6d 6d 75 6e 69 63 61 74 |n can co|mmunicat|
|00005420| 65 20 77 69 74 68 20 74 | 68 65 20 74 6f 6f 6c 62 |e with t|he toolb|
|00005430| 61 72 20 62 79 20 70 61 | 73 73 69 6e 67 20 6d 65 |ar by pa|ssing me|
|00005440| 73 73 61 67 65 73 2e 0d | 0a 54 68 65 20 74 6f 6f |ssages..|.The too|
|00005450| 6c 62 61 72 20 77 69 6c | 6c 20 72 65 73 70 6f 6e |lbar wil|l respon|
|00005460| 64 20 74 6f 20 74 68 65 | 20 66 6f 6c 6c 6f 77 69 |d to the| followi|
|00005470| 6e 67 20 6d 65 73 73 61 | 67 65 73 3a 0d 0a 0d 0a |ng messa|ges:....|
|00005480| 09 57 4d 5f 53 49 5a 45 | 09 09 3a 09 53 68 6f 75 |.WM_SIZE|..:.Shou|
|00005490| 6c 64 20 62 65 20 73 65 | 6e 74 20 77 68 65 6e 65 |ld be se|nt whene|
|000054a0| 76 65 72 20 74 68 65 20 | 70 61 72 65 6e 74 20 77 |ver the |parent w|
|000054b0| 69 6e 64 6f 77 20 69 73 | 20 72 65 73 69 7a 65 64 |indow is| resized|
|000054c0| 2e 0d 0a 0d 0a 09 54 42 | 4d 5f 44 49 53 41 42 4c |......TB|M_DISABL|
|000054d0| 45 09 3a 09 43 61 75 73 | 65 73 20 74 68 65 20 73 |E.:.Caus|es the s|
|000054e0| 70 65 63 69 66 69 65 64 | 20 62 75 74 74 6f 6e 20 |pecified| button |
|000054f0| 74 6f 20 62 65 20 64 69 | 73 61 62 6c 65 64 2e 20 |to be di|sabled. |
|00005500| 20 53 65 74 20 74 68 65 | 20 77 50 61 72 61 6d 0d | Set the| wParam.|
|00005510| 0a 09 09 09 09 09 09 6f | 66 20 74 68 65 20 6d 65 |.......o|f the me|
|00005520| 73 73 61 67 65 20 74 6f | 20 74 68 65 20 72 65 73 |ssage to| the res|
|00005530| 6f 75 72 63 65 20 49 44 | 20 6f 66 20 74 68 65 20 |ource ID| of the |
|00005540| 62 75 74 74 6f 6e 20 74 | 6f 20 64 69 73 61 62 6c |button t|o disabl|
|00005550| 65 2e 09 0d 0a 09 09 09 | 09 09 09 0d 0a 09 54 42 |e.......|......TB|
|00005560| 4d 5f 45 4e 41 42 4c 45 | 09 3a 09 43 61 75 73 65 |M_ENABLE|.:.Cause|
|00005570| 73 20 74 68 65 20 73 70 | 65 63 69 66 69 65 64 20 |s the sp|ecified |
|00005580| 62 75 74 74 6f 6e 20 74 | 6f 20 62 65 20 65 6e 61 |button t|o be ena|
|00005590| 62 6c 65 64 2e 20 20 53 | 65 74 20 74 68 65 20 77 |bled. S|et the w|
|000055a0| 50 61 72 61 6d 0d 0a 09 | 09 09 09 09 09 6f 66 20 |Param...|.....of |
|000055b0| 74 68 65 20 6d 65 73 73 | 61 67 65 20 74 6f 20 74 |the mess|age to t|
|000055c0| 68 65 20 72 65 73 6f 75 | 72 63 65 20 49 44 20 6f |he resou|rce ID o|
|000055d0| 66 20 74 68 65 20 62 75 | 74 74 6f 6e 20 74 6f 20 |f the bu|tton to |
|000055e0| 65 6e 61 62 6c 65 2e 09 | 20 0d 0a 09 09 09 09 09 |enable..| .......|
|000055f0| 09 0d 0a 0d 0a 49 6e 20 | 61 64 64 69 74 69 6f 6e |.....In |addition|
|00005600| 2c 20 74 68 65 20 74 6f | 6f 6c 62 61 72 20 69 74 |, the to|olbar it|
|00005610| 73 65 6c 66 20 73 65 6e | 64 73 20 61 20 6d 65 73 |self sen|ds a mes|
|00005620| 73 61 67 65 20 74 6f 20 | 74 68 65 20 70 61 72 65 |sage to |the pare|
|00005630| 6e 74 20 77 68 65 6e 20 | 61 20 62 75 74 74 6f 6e |nt when |a button|
|00005640| 20 6f 6e 20 74 68 65 20 | 74 6f 6f 6c 62 61 72 0d | on the |toolbar.|
|00005650| 0a 69 73 20 63 6c 69 63 | 6b 65 64 3a 0d 0a 0d 0a |.is clic|ked:....|
|00005660| 09 54 42 4d 5f 48 49 54 | 42 55 54 54 4f 4e 09 3a |.TBM_HIT|BUTTON.:|
|00005670| 09 54 68 65 20 77 50 61 | 72 61 6d 20 63 6f 6e 74 |.The wPa|ram cont|
|00005680| 61 69 6e 73 20 74 68 65 | 20 72 65 73 6f 75 72 63 |ains the| resourc|
|00005690| 65 20 49 44 20 6f 66 20 | 74 68 65 20 62 75 74 74 |e ID of |the butt|
|000056a0| 6f 6e 20 74 68 61 74 0d | 0a 09 09 09 09 09 09 09 |on that.|........|
|000056b0| 77 61 73 20 63 6c 69 63 | 6b 65 64 2e 0d 0a 09 09 |was clic|ked.....|
|000056c0| 09 09 09 09 09 0d 0a 41 | 20 63 6f 75 70 6c 65 20 |.......A| couple |
|000056d0| 6f 66 20 74 68 69 6e 67 | 73 20 74 6f 20 6b 65 65 |of thing|s to kee|
|000056e0| 70 20 69 6e 20 6d 69 6e | 64 3a 0d 0a 0d 0a 09 31 |p in min|d:.....1|
|000056f0| 29 09 54 68 65 20 73 6f | 75 72 63 65 20 63 6f 64 |).The so|urce cod|
|00005700| 65 20 64 65 66 69 6e 65 | 73 20 61 20 63 6f 6e 73 |e define|s a cons|
|00005710| 74 61 6e 74 20 63 61 6c | 6c 65 64 20 4d 41 58 5f |tant cal|led MAX_|
|00005720| 42 55 54 54 4f 4e 53 20 | 74 68 61 74 20 73 70 65 |BUTTONS |that spe|
|00005730| 63 69 66 69 65 73 0d 0a | 09 09 74 68 65 20 6d 61 |cifies..|..the ma|
|00005740| 78 69 6d 75 6d 20 6e 75 | 6d 62 65 72 20 6f 66 20 |ximum nu|mber of |
|00005750| 62 69 74 6d 61 70 73 20 | 74 68 61 74 20 63 61 6e |bitmaps |that can|
|00005760| 20 62 65 20 70 6c 61 63 | 65 64 20 6f 6e 20 74 68 | be plac|ed on th|
|00005770| 65 20 74 6f 6f 6c 62 61 | 72 2e 20 20 54 68 69 73 |e toolba|r. This|
|00005780| 0d 0a 09 09 6e 75 6d 62 | 65 72 20 63 61 6e 20 62 |....numb|er can b|
|00005790| 65 20 63 68 61 6e 67 65 | 64 20 74 6f 20 61 6c 6c |e change|d to all|
|000057a0| 6f 77 20 6d 6f 72 65 20 | 6f 72 20 66 65 77 65 72 |ow more |or fewer|
|000057b0| 20 62 69 74 6d 61 70 73 | 2e 0d 0a 09 09 0d 0a 09 | bitmaps|........|
|000057c0| 32 29 09 4f 6e 6c 79 20 | 6f 6e 65 20 74 6f 6f 6c |2).Only |one tool|
|000057d0| 62 61 72 20 70 65 72 20 | 77 69 6e 64 6f 77 20 63 |bar per |window c|
|000057e0| 61 6e 20 62 65 20 69 6e | 73 74 61 6c 6c 65 64 2e |an be in|stalled.|
|000057f0| 20 20 59 6f 75 20 63 61 | 6e 2c 20 68 6f 77 65 76 | You ca|n, howev|
|00005800| 65 72 2c 20 68 61 76 65 | 0d 0a 09 09 6d 75 6c 69 |er, have|....muli|
|00005810| 74 70 6c 65 20 77 69 6e | 64 6f 77 73 2c 20 65 61 |tple win|dows, ea|
|00005820| 63 68 20 77 69 74 68 20 | 69 74 73 20 6f 77 6e 20 |ch with |its own |
|00005830| 74 6f 6f 6c 62 61 72 2e | 0d 0a 09 09 0d 0a 09 33 |toolbar.|.......3|
|00005840| 29 09 45 61 63 68 20 62 | 69 74 6d 61 70 20 6f 6e |).Each b|itmap on|
|00005850| 20 74 68 65 20 74 6f 6f | 6c 62 61 72 20 6d 75 73 | the too|lbar mus|
|00005860| 74 20 62 65 20 74 68 65 | 20 73 61 6d 65 20 73 69 |t be the| same si|
|00005870| 7a 65 2e 20 20 54 68 65 | 20 62 69 74 6d 61 70 73 |ze. The| bitmaps|
|00005880| 20 63 61 6e 20 62 65 20 | 61 73 0d 0a 09 09 6c 61 | can be |as....la|
|00005890| 72 67 65 20 6f 72 20 73 | 6d 61 6c 6c 20 61 73 20 |rge or s|mall as |
|000058a0| 79 6f 75 20 77 69 73 68 | 2c 20 62 75 74 20 74 68 |you wish|, but th|
|000058b0| 65 79 20 6d 75 73 74 20 | 62 65 20 74 68 65 20 73 |ey must |be the s|
|000058c0| 61 6d 65 20 73 69 7a 65 | 2e 0d 0a 09 09 0d 0a 2a |ame size|.......*|
|000058d0| 2f 0d 0a 0d 0a 00 4e 00 | 1e 00 00 00 54 45 58 54 |/.....N.|....TEXT|
|000058e0| 42 4c 4f 43 4b 20 54 6f | 6f 6c 42 61 72 20 44 4c |BLOCK To|olBar DL|
|000058f0| 4c 3a 52 65 61 64 20 4d | 65 00 ff ff 00 00 00 00 |L:Read M|e.......|
+--------+-------------------------+-------------------------+--------+--------+