windows-pr 1.1.2 → 1.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. data/CHANGES +408 -404
  2. data/MANIFEST +65 -65
  3. data/README +149 -149
  4. data/Rakefile +52 -52
  5. data/doc/conversion_guide.txt +37 -37
  6. data/lib/windows/clipboard.rb +59 -59
  7. data/lib/windows/com.rb +190 -189
  8. data/lib/windows/com/automation.rb +147 -147
  9. data/lib/windows/com/variant.rb +22 -22
  10. data/lib/windows/console.rb +112 -112
  11. data/lib/windows/debug.rb +33 -33
  12. data/lib/windows/device_io.rb +246 -246
  13. data/lib/windows/directory.rb +25 -25
  14. data/lib/windows/error.rb +482 -482
  15. data/lib/windows/eventlog.rb +78 -78
  16. data/lib/windows/file.rb +262 -262
  17. data/lib/windows/file_mapping.rb +23 -23
  18. data/lib/windows/filesystem.rb +13 -13
  19. data/lib/windows/gdi/bitmap.rb +63 -63
  20. data/lib/windows/gdi/device_context.rb +44 -44
  21. data/lib/windows/gdi/metafile.rb +38 -38
  22. data/lib/windows/gdi/painting_drawing.rb +113 -113
  23. data/lib/windows/handle.rb +21 -21
  24. data/lib/windows/library.rb +42 -42
  25. data/lib/windows/limits.rb +31 -31
  26. data/lib/windows/mailslot.rb +22 -22
  27. data/lib/windows/memory.rb +126 -126
  28. data/lib/windows/msvcrt/buffer.rb +73 -73
  29. data/lib/windows/msvcrt/directory.rb +29 -29
  30. data/lib/windows/msvcrt/file.rb +45 -45
  31. data/lib/windows/msvcrt/io.rb +71 -71
  32. data/lib/windows/msvcrt/time.rb +167 -167
  33. data/lib/windows/national.rb +578 -578
  34. data/lib/windows/network/management.rb +523 -523
  35. data/lib/windows/network/snmp.rb +90 -90
  36. data/lib/windows/network/winsock.rb +126 -126
  37. data/lib/windows/nio.rb +48 -47
  38. data/lib/windows/ntfs/winternl.rb +96 -96
  39. data/lib/windows/path.rb +141 -141
  40. data/lib/windows/pipe.rb +40 -40
  41. data/lib/windows/process.rb +174 -174
  42. data/lib/windows/registry.rb +126 -126
  43. data/lib/windows/security.rb +477 -477
  44. data/lib/windows/security/authentication.rb +30 -30
  45. data/lib/windows/service.rb +140 -140
  46. data/lib/windows/shell.rb +169 -169
  47. data/lib/windows/sound.rb +37 -37
  48. data/lib/windows/synchronize.rb +131 -131
  49. data/lib/windows/system_info.rb +227 -222
  50. data/lib/windows/thread.rb +62 -62
  51. data/lib/windows/time.rb +46 -46
  52. data/lib/windows/tool_helper.rb +34 -34
  53. data/lib/windows/volume.rb +59 -59
  54. data/lib/windows/window.rb +79 -79
  55. data/lib/windows/window/classes.rb +57 -57
  56. data/lib/windows/window/dialog.rb +89 -89
  57. data/lib/windows/window/menu.rb +100 -100
  58. data/lib/windows/window/message.rb +295 -295
  59. data/lib/windows/window/properties.rb +18 -18
  60. data/lib/windows/window/timer.rb +17 -17
  61. data/test/tc_clipboard.rb +41 -41
  62. data/test/tc_com.rb +32 -32
  63. data/test/tc_com_automation.rb +15 -15
  64. data/test/tc_console.rb +108 -108
  65. data/test/tc_debug.rb +48 -48
  66. data/test/tc_device_io.rb +29 -29
  67. data/test/tc_directory.rb +25 -25
  68. data/test/tc_error.rb +49 -49
  69. data/test/tc_eventlog.rb +58 -58
  70. data/test/tc_file.rb +67 -67
  71. data/test/tc_file_mapping.rb +38 -38
  72. data/test/tc_filesystem.rb +27 -27
  73. data/test/tc_gdi_bitmap.rb +25 -25
  74. data/test/tc_gdi_metafile.rb +23 -23
  75. data/test/tc_handle.rb +36 -36
  76. data/test/tc_library.rb +37 -37
  77. data/test/tc_limits.rb +34 -34
  78. data/test/tc_mailslot.rb +22 -22
  79. data/test/tc_memory.rb +44 -44
  80. data/test/tc_msvcrt_buffer.rb +68 -68
  81. data/test/tc_msvcrt_directory.rb +98 -98
  82. data/test/tc_msvcrt_file.rb +80 -80
  83. data/test/tc_msvcrt_io.rb +48 -48
  84. data/test/tc_msvcrt_string.rb +93 -93
  85. data/test/tc_msvcrt_time.rb +29 -29
  86. data/test/tc_national.rb +38 -38
  87. data/test/tc_network_management.rb +32 -32
  88. data/test/tc_network_snmp.rb +31 -31
  89. data/test/tc_network_winsock.rb +34 -34
  90. data/test/tc_nio.rb +32 -32
  91. data/test/tc_ntfs_winternl.rb +29 -29
  92. data/test/tc_path.rb +90 -90
  93. data/test/tc_pipe.rb +53 -53
  94. data/test/tc_process.rb +24 -24
  95. data/test/tc_registry.rb +29 -29
  96. data/test/tc_security.rb +104 -104
  97. data/test/tc_security_authentication.rb +34 -34
  98. data/test/tc_service.rb +57 -57
  99. data/test/tc_shell.rb +34 -34
  100. data/test/tc_sound.rb +37 -37
  101. data/test/tc_synchronize.rb +75 -75
  102. data/test/tc_system_info.rb +43 -43
  103. data/test/tc_thread.rb +29 -29
  104. data/test/tc_time.rb +32 -32
  105. data/test/tc_tool_helper.rb +29 -29
  106. data/test/tc_volume.rb +47 -47
  107. data/test/tc_window.rb +45 -45
  108. data/test/tc_window_classes.rb +33 -33
  109. data/test/tc_window_dialog.rb +33 -33
  110. data/test/tc_window_menu.rb +29 -29
  111. data/test/tc_window_message.rb +33 -33
  112. data/test/tc_window_properties.rb +29 -29
  113. data/test/tc_window_timer.rb +29 -29
  114. data/windows-pr.gemspec +34 -34
  115. metadata +4 -4
@@ -1,57 +1,57 @@
1
- require 'windows/api'
2
-
3
- module Windows
4
- module Window
5
- module Classes
6
- API.auto_namespace = 'Windows::Window::Classes'
7
- API.auto_constant = true
8
- API.auto_method = true
9
- API.auto_unicode = true
10
-
11
- # Class Field Offsets
12
-
13
- GCL_MENUNAME = -8
14
- GCL_HBRBACKGROUND = -10
15
- GCL_HCURSOR = -12
16
- GCL_HICON = -14
17
- GCL_HMODULE = -16
18
- GCL_CBWNDEXTRA = -18
19
- GCL_CBCLSEXTRA = -20
20
- GCL_WNDPROC = -24
21
- GCL_STYLE = -26
22
- GCW_ATOM = -32
23
-
24
- # Window Field Offsets
25
-
26
- GWL_WNDPROC = -4
27
- GWL_HINSTANCE = -6
28
- GWL_HWNDPARENT = -8
29
- GWL_STYLE = -16
30
- GWL_EXSTYLE = -20
31
- GWL_USERDATA = -21
32
- GWL_ID = -12
33
-
34
- API.new('GetClassInfo', 'LPP', 'B', 'user32')
35
- API.new('GetClassInfoEx', 'LPP', 'B', 'user32')
36
- API.new('GetClassLong', 'LI', 'L', 'user32')
37
- API.new('GetClassName', 'LPI', 'I', 'user32')
38
- API.new('GetClassWord', 'LI', 'L', 'user32')
39
- API.new('GetWindowLong', 'LI', 'L', 'user32')
40
- API.new('RegisterClass', 'P', 'L', 'user32')
41
- API.new('RegisterClassEx', 'P', 'L', 'user32')
42
- API.new('SetClassLong', 'LIL', 'L', 'user32')
43
- API.new('SetClassWord', 'LIL', 'L', 'user32')
44
- API.new('SetWindowLong', 'LIL', 'L', 'user32')
45
- API.new('UnregisterClass', 'PL', 'B', 'user32')
46
-
47
- # In 32-bit Windows, these methods are aliases
48
- begin
49
- API.new('GetWindowLongPtr', 'LI', 'L', 'user32')
50
- API.new('SetWindowLongPtr', 'LIP', 'L', 'user32')
51
- rescue Win32::API::LoadLibraryError
52
- alias :GetWindowLongPtr :GetWindowLong
53
- alias :SetWindowLongPtr :SetWindowLong
54
- end
55
- end
56
- end
57
- end
1
+ require 'windows/api'
2
+
3
+ module Windows
4
+ module Window
5
+ module Classes
6
+ API.auto_namespace = 'Windows::Window::Classes'
7
+ API.auto_constant = true
8
+ API.auto_method = true
9
+ API.auto_unicode = true
10
+
11
+ # Class Field Offsets
12
+
13
+ GCL_MENUNAME = -8
14
+ GCL_HBRBACKGROUND = -10
15
+ GCL_HCURSOR = -12
16
+ GCL_HICON = -14
17
+ GCL_HMODULE = -16
18
+ GCL_CBWNDEXTRA = -18
19
+ GCL_CBCLSEXTRA = -20
20
+ GCL_WNDPROC = -24
21
+ GCL_STYLE = -26
22
+ GCW_ATOM = -32
23
+
24
+ # Window Field Offsets
25
+
26
+ GWL_WNDPROC = -4
27
+ GWL_HINSTANCE = -6
28
+ GWL_HWNDPARENT = -8
29
+ GWL_STYLE = -16
30
+ GWL_EXSTYLE = -20
31
+ GWL_USERDATA = -21
32
+ GWL_ID = -12
33
+
34
+ API.new('GetClassInfo', 'LPP', 'B', 'user32')
35
+ API.new('GetClassInfoEx', 'LPP', 'B', 'user32')
36
+ API.new('GetClassLong', 'LI', 'L', 'user32')
37
+ API.new('GetClassName', 'LPI', 'I', 'user32')
38
+ API.new('GetClassWord', 'LI', 'L', 'user32')
39
+ API.new('GetWindowLong', 'LI', 'L', 'user32')
40
+ API.new('RegisterClass', 'P', 'L', 'user32')
41
+ API.new('RegisterClassEx', 'P', 'L', 'user32')
42
+ API.new('SetClassLong', 'LIL', 'L', 'user32')
43
+ API.new('SetClassWord', 'LIL', 'L', 'user32')
44
+ API.new('SetWindowLong', 'LIL', 'L', 'user32')
45
+ API.new('UnregisterClass', 'PL', 'B', 'user32')
46
+
47
+ # In 32-bit Windows, these methods are aliases
48
+ begin
49
+ API.new('GetWindowLongPtr', 'LI', 'L', 'user32')
50
+ API.new('SetWindowLongPtr', 'LIP', 'L', 'user32')
51
+ rescue Win32::API::LoadLibraryError
52
+ alias :GetWindowLongPtr :GetWindowLong
53
+ alias :SetWindowLongPtr :SetWindowLong
54
+ end
55
+ end
56
+ end
57
+ end
@@ -1,89 +1,89 @@
1
- require 'windows/api'
2
-
3
- module Windows
4
- module Window
5
- module Dialog
6
- API.auto_namespace = 'Windows::Window::Dialog'
7
- API.auto_constant = true
8
- API.auto_method = true
9
- API.auto_unicode = true
10
-
11
- MB_OK = 0x00000000
12
- MB_OKCANCEL = 0x00000001
13
- MB_ABORTRETRYIGNORE = 0x00000002
14
- MB_YESNOCANCEL = 0x00000003
15
- MB_YESNO = 0x00000004
16
- MB_RETRYCANCEL = 0x00000005
17
- MB_CANCELTRYCONTINUE = 0x00000006
18
- MB_ICONHAND = 0x00000010
19
- MB_ICONQUESTION = 0x00000020
20
- MB_ICONEXCLAMATION = 0x00000030
21
- MB_ICONASTERISK = 0x00000040
22
- MB_USERICON = 0x00000080
23
- MB_ICONWARNING = MB_ICONEXCLAMATION
24
- MB_ICONERROR = MB_ICONHAND
25
- MB_ICONINFORMATION = MB_ICONASTERISK
26
- MB_ICONSTOP = MB_ICONHAND
27
- MB_DEFBUTTON1 = 0x00000000
28
- MB_DEFBUTTON2 = 0x00000100
29
- MB_DEFBUTTON3 = 0x00000200
30
- MB_DEFBUTTON4 = 0x00000300
31
- MB_APPLMODAL = 0x00000000
32
- MB_SYSTEMMODAL = 0x00001000
33
- MB_TASKMODAL = 0x00002000
34
- MB_HELP = 0x00004000
35
- MB_NOFOCUS = 0x00008000
36
- MB_SETFOREGROUND = 0x00010000
37
- MB_DEFAULT_DESKTOP_ONLY = 0x00020000
38
- MB_TOPMOST = 0x00040000
39
- MB_RIGHT = 0x00080000
40
- MB_RTLREADING = 0x00100000
41
- MB_SERVICE_NOTIFICATION = 0x00200000 # Assume Win2k or later
42
- MB_SERVICE_NOTIFICATION_NT3X = 0x00040000
43
- MB_TYPEMASK = 0x0000000F
44
- MB_ICONMASK = 0x000000F0
45
- MB_DEFMASK = 0x00000F00
46
- MB_MODEMASK = 0x00003000
47
- MB_MISCMASK = 0x0000C000
48
-
49
- API.new('CreateDialogIndirectParam', 'LPLKL', 'L', 'user32')
50
- API.new('CreateDialogParam', 'LPLKL', 'L', 'user32')
51
- API.new('DialogBoxIndirectParam', 'LPLKL', 'P', 'user32')
52
- API.new('DialogBoxParam', 'LPLKL', 'P', 'user32')
53
- API.new('EndDialog', 'LP', 'B', 'user32')
54
- API.new('GetDialogBaseUnits', 'V', 'L', 'user32')
55
- API.new('GetDlgCtrlID', 'L', 'I', 'user32')
56
- API.new('GetDlgItem', 'LI', 'L', 'user32')
57
- API.new('GetDlgItemInt', 'LIPI', 'I', 'user32')
58
- API.new('GetDlgItemText', 'LIPI', 'I', 'user32')
59
- API.new('GetNextDlgGroupItem', 'LLI', 'L', 'user32')
60
- API.new('GetNextDlgTabItem', 'LLI', 'L', 'user32')
61
- API.new('IsDialogMessage', 'LP', 'B', 'user32')
62
- API.new('MapDialogRect', 'LP', 'B', 'user32')
63
- API.new('MessageBox', 'LPPI', 'I', 'user32')
64
- API.new('MessageBoxEx', 'LPPII', 'I', 'user32')
65
- API.new('MessageBoxIndirect', 'P', 'I', 'user32')
66
- API.new('SendDlgItemMessage', 'LIILL', 'L', 'user32')
67
- API.new('SetDlgItemInt', 'LIII', 'L', 'user32')
68
- API.new('SetDlgItemText', 'LIP', 'B', 'user32')
69
-
70
- # Macros from WinUser.h
71
-
72
- def CreateDialog(hInstance, lpName, hParent, lpDialogFunc)
73
- CreateDialogParam.call(hInstance, lpName, hParent, lpDialogFunc, 0)
74
- end
75
-
76
- def CreateDialogIndirect(hInst, lpTemp, hPar, lpDialFunc)
77
- CreateDialogIndirectParam.call(hInst, lpTemp, hPar, lpDialFunc, 0)
78
- end
79
-
80
- def DialogBox(hInstance, lpTemp, hParent, lpDialogFunc)
81
- DialogBoxParam.call(hInstance, lpTemp, hParent, lpDialogFunc, 0)
82
- end
83
-
84
- def DialogBoxIndirect(hInst, lpTemp, hParent, lpDialogFunc)
85
- DialogBoxParamIndirect.call(hInst, lpTemp, hParent, lpDialogFunc, 0)
86
- end
87
- end
88
- end
89
- end
1
+ require 'windows/api'
2
+
3
+ module Windows
4
+ module Window
5
+ module Dialog
6
+ API.auto_namespace = 'Windows::Window::Dialog'
7
+ API.auto_constant = true
8
+ API.auto_method = true
9
+ API.auto_unicode = true
10
+
11
+ MB_OK = 0x00000000
12
+ MB_OKCANCEL = 0x00000001
13
+ MB_ABORTRETRYIGNORE = 0x00000002
14
+ MB_YESNOCANCEL = 0x00000003
15
+ MB_YESNO = 0x00000004
16
+ MB_RETRYCANCEL = 0x00000005
17
+ MB_CANCELTRYCONTINUE = 0x00000006
18
+ MB_ICONHAND = 0x00000010
19
+ MB_ICONQUESTION = 0x00000020
20
+ MB_ICONEXCLAMATION = 0x00000030
21
+ MB_ICONASTERISK = 0x00000040
22
+ MB_USERICON = 0x00000080
23
+ MB_ICONWARNING = MB_ICONEXCLAMATION
24
+ MB_ICONERROR = MB_ICONHAND
25
+ MB_ICONINFORMATION = MB_ICONASTERISK
26
+ MB_ICONSTOP = MB_ICONHAND
27
+ MB_DEFBUTTON1 = 0x00000000
28
+ MB_DEFBUTTON2 = 0x00000100
29
+ MB_DEFBUTTON3 = 0x00000200
30
+ MB_DEFBUTTON4 = 0x00000300
31
+ MB_APPLMODAL = 0x00000000
32
+ MB_SYSTEMMODAL = 0x00001000
33
+ MB_TASKMODAL = 0x00002000
34
+ MB_HELP = 0x00004000
35
+ MB_NOFOCUS = 0x00008000
36
+ MB_SETFOREGROUND = 0x00010000
37
+ MB_DEFAULT_DESKTOP_ONLY = 0x00020000
38
+ MB_TOPMOST = 0x00040000
39
+ MB_RIGHT = 0x00080000
40
+ MB_RTLREADING = 0x00100000
41
+ MB_SERVICE_NOTIFICATION = 0x00200000 # Assume Win2k or later
42
+ MB_SERVICE_NOTIFICATION_NT3X = 0x00040000
43
+ MB_TYPEMASK = 0x0000000F
44
+ MB_ICONMASK = 0x000000F0
45
+ MB_DEFMASK = 0x00000F00
46
+ MB_MODEMASK = 0x00003000
47
+ MB_MISCMASK = 0x0000C000
48
+
49
+ API.new('CreateDialogIndirectParam', 'LPLKL', 'L', 'user32')
50
+ API.new('CreateDialogParam', 'LPLKL', 'L', 'user32')
51
+ API.new('DialogBoxIndirectParam', 'LPLKL', 'P', 'user32')
52
+ API.new('DialogBoxParam', 'LPLKL', 'P', 'user32')
53
+ API.new('EndDialog', 'LP', 'B', 'user32')
54
+ API.new('GetDialogBaseUnits', 'V', 'L', 'user32')
55
+ API.new('GetDlgCtrlID', 'L', 'I', 'user32')
56
+ API.new('GetDlgItem', 'LI', 'L', 'user32')
57
+ API.new('GetDlgItemInt', 'LIPI', 'I', 'user32')
58
+ API.new('GetDlgItemText', 'LIPI', 'I', 'user32')
59
+ API.new('GetNextDlgGroupItem', 'LLI', 'L', 'user32')
60
+ API.new('GetNextDlgTabItem', 'LLI', 'L', 'user32')
61
+ API.new('IsDialogMessage', 'LP', 'B', 'user32')
62
+ API.new('MapDialogRect', 'LP', 'B', 'user32')
63
+ API.new('MessageBox', 'LPPI', 'I', 'user32')
64
+ API.new('MessageBoxEx', 'LPPII', 'I', 'user32')
65
+ API.new('MessageBoxIndirect', 'P', 'I', 'user32')
66
+ API.new('SendDlgItemMessage', 'LIILL', 'L', 'user32')
67
+ API.new('SetDlgItemInt', 'LIII', 'L', 'user32')
68
+ API.new('SetDlgItemText', 'LIP', 'B', 'user32')
69
+
70
+ # Macros from WinUser.h
71
+
72
+ def CreateDialog(hInstance, lpName, hParent, lpDialogFunc)
73
+ CreateDialogParam.call(hInstance, lpName, hParent, lpDialogFunc, 0)
74
+ end
75
+
76
+ def CreateDialogIndirect(hInst, lpTemp, hPar, lpDialFunc)
77
+ CreateDialogIndirectParam.call(hInst, lpTemp, hPar, lpDialFunc, 0)
78
+ end
79
+
80
+ def DialogBox(hInstance, lpTemp, hParent, lpDialogFunc)
81
+ DialogBoxParam.call(hInstance, lpTemp, hParent, lpDialogFunc, 0)
82
+ end
83
+
84
+ def DialogBoxIndirect(hInst, lpTemp, hParent, lpDialogFunc)
85
+ DialogBoxParamIndirect.call(hInst, lpTemp, hParent, lpDialogFunc, 0)
86
+ end
87
+ end
88
+ end
89
+ end
@@ -1,100 +1,100 @@
1
- require 'windows/api'
2
-
3
- module Windows
4
- module Window
5
- module Menu
6
- API.auto_namespace = 'Windows::Window::Menu'
7
- API.auto_constant = true
8
- API.auto_method = true
9
- API.auto_unicode = true
10
-
11
- # Menu Flags
12
-
13
- MF_INSERT = 0x00000000
14
- MF_CHANGE = 0x00000080
15
- MF_APPEND = 0x00000100
16
- MF_DELETE = 0x00000200
17
- MF_REMOVE = 0x00001000
18
- MF_BYCOMMAND = 0x00000000
19
- MF_BYPOSITION = 0x00000400
20
- MF_SEPARATOR = 0x00000800
21
- MF_ENABLED = 0x00000000
22
- MF_GRAYED = 0x00000001
23
- MF_DISABLED = 0x00000002
24
- MF_UNCHECKED = 0x00000000
25
- MF_CHECKED = 0x00000008
26
- MF_USECHECKBITMAPS = 0x00000200
27
- MF_STRING = 0x00000000
28
- MF_BITMAP = 0x00000004
29
- MF_OWNERDRAW = 0x00000100
30
- MF_POPUP = 0x00000010
31
- MF_MENUBARBREAK = 0x00000020
32
- MF_MENUBREAK = 0x00000040
33
- MF_UNHILITE = 0x00000000
34
- MF_HILITE = 0x00000080
35
- MF_DEFAULT = 0x00001000
36
- MF_SYSMENU = 0x00002000
37
- MF_HELP = 0x00004000
38
- MF_RIGHTJUSTIFY = 0x00004000
39
- MF_MOUSESELECT = 0x00008000
40
- MF_END = 0x00000080
41
-
42
- # System Objects
43
-
44
- OBJID_WINDOW = 0x00000000
45
- OBJID_SYSMENU = 0xFFFFFFFF
46
- OBJID_TITLEBAR = 0xFFFFFFFE
47
- OBJID_MENU = 0xFFFFFFFD
48
- OBJID_CLIENT = 0xFFFFFFFC
49
- OBJID_VSCROLL = 0xFFFFFFFB
50
- OBJID_HSCROLL = 0xFFFFFFFA
51
- OBJID_SIZEGRIP = 0xFFFFFFF9
52
- OBJID_CARET = 0xFFFFFFF8
53
- OBJID_CURSOR = 0xFFFFFFF7
54
- OBJID_ALERT = 0xFFFFFFF6
55
- OBJID_SOUND = 0xFFFFFFF5
56
- OBJID_QUERYCLASSNAMEIDX = 0xFFFFFFF4
57
- OBJID_NATIVEOM = 0xFFFFFFF0
58
-
59
- API.new('AppendMenu', 'LIPP', 'B', 'user32')
60
- API.new('CheckMenuItem', 'LII', 'L', 'user32')
61
- API.new('CheckMenuRadioItem', 'LIIII', 'B', 'user32')
62
- API.new('CreateMenu', 'V', 'L', 'user32')
63
- API.new('CreatePopupMenu', 'V', 'L', 'user32')
64
- API.new('DeleteMenu', 'LII', 'B', 'user32')
65
- API.new('DestroyMenu', 'L', 'B', 'user32')
66
- API.new('DrawMenuBar', 'L', 'B', 'user32')
67
- API.new('EnableMenuItem', 'LII', 'B', 'user32')
68
- API.new('EndMenu', 'V', 'B', 'user32')
69
- API.new('GetMenu', 'L', 'L', 'user32')
70
- API.new('GetMenuBarInfo', 'LLLP', 'B', 'user32')
71
- API.new('GetMenuCheckMarkDimensions', 'V', 'L', 'user32')
72
- API.new('GetMenuDefaultItem', 'LII', 'I', 'user32')
73
- API.new('GetMenuInfo', 'LP', 'B', 'user32')
74
- API.new('GetMenuItemCount', 'L', 'I', 'user32')
75
- API.new('GetMenuItemID', 'LI', 'I', 'user32')
76
- API.new('GetMenuItemInfo', 'LIIP', 'B', 'user32')
77
- API.new('GetMenuItemRect', 'LLIP', 'B', 'user32')
78
- API.new('GetMenuState', 'LLI', 'I', 'user32')
79
- API.new('GetMenuString', 'LIPII', 'I', 'user32')
80
- API.new('GetSubMenu', 'LI', 'L', 'user32')
81
- API.new('GetSystemMenu', 'LI', 'L', 'user32')
82
- API.new('HiliteMenuItem', 'LLII', 'B', 'user32')
83
- API.new('InsertMenu', 'LIIPP', 'B', 'user32')
84
- API.new('InsertMenuItem', 'LIIP', 'B', 'user32')
85
- API.new('IsMenu', 'L', 'B', 'user32')
86
- API.new('LoadMenu', 'LP', 'L', 'user32')
87
- API.new('LoadMenuIndirect', 'P', 'L', 'user32')
88
- API.new('MenuItemFromPoint', 'LLP', 'I', 'user32')
89
- API.new('ModifyMenu', 'LIIPP', 'B', 'user32')
90
- API.new('RemoveMenu', 'LII', 'B', 'user32')
91
- API.new('SetMenu', 'LL', 'B', 'user32')
92
- API.new('SetMenuDefaultItem', 'LLL', 'B', 'user32')
93
- API.new('SetMenuInfo', 'LP', 'B', 'user32')
94
- API.new('SetMenuItemBitmaps', 'LIILL', 'B', 'user32')
95
- API.new('SetMenuItemInfo', 'LIIP', 'B', 'user32')
96
- API.new('TrackPopupMenu', 'LIIIILP', 'B', 'user32')
97
- API.new('TrackPopupMenuEx', 'LIIILP', 'B', 'user32')
98
- end
99
- end
100
- end
1
+ require 'windows/api'
2
+
3
+ module Windows
4
+ module Window
5
+ module Menu
6
+ API.auto_namespace = 'Windows::Window::Menu'
7
+ API.auto_constant = true
8
+ API.auto_method = true
9
+ API.auto_unicode = true
10
+
11
+ # Menu Flags
12
+
13
+ MF_INSERT = 0x00000000
14
+ MF_CHANGE = 0x00000080
15
+ MF_APPEND = 0x00000100
16
+ MF_DELETE = 0x00000200
17
+ MF_REMOVE = 0x00001000
18
+ MF_BYCOMMAND = 0x00000000
19
+ MF_BYPOSITION = 0x00000400
20
+ MF_SEPARATOR = 0x00000800
21
+ MF_ENABLED = 0x00000000
22
+ MF_GRAYED = 0x00000001
23
+ MF_DISABLED = 0x00000002
24
+ MF_UNCHECKED = 0x00000000
25
+ MF_CHECKED = 0x00000008
26
+ MF_USECHECKBITMAPS = 0x00000200
27
+ MF_STRING = 0x00000000
28
+ MF_BITMAP = 0x00000004
29
+ MF_OWNERDRAW = 0x00000100
30
+ MF_POPUP = 0x00000010
31
+ MF_MENUBARBREAK = 0x00000020
32
+ MF_MENUBREAK = 0x00000040
33
+ MF_UNHILITE = 0x00000000
34
+ MF_HILITE = 0x00000080
35
+ MF_DEFAULT = 0x00001000
36
+ MF_SYSMENU = 0x00002000
37
+ MF_HELP = 0x00004000
38
+ MF_RIGHTJUSTIFY = 0x00004000
39
+ MF_MOUSESELECT = 0x00008000
40
+ MF_END = 0x00000080
41
+
42
+ # System Objects
43
+
44
+ OBJID_WINDOW = 0x00000000
45
+ OBJID_SYSMENU = 0xFFFFFFFF
46
+ OBJID_TITLEBAR = 0xFFFFFFFE
47
+ OBJID_MENU = 0xFFFFFFFD
48
+ OBJID_CLIENT = 0xFFFFFFFC
49
+ OBJID_VSCROLL = 0xFFFFFFFB
50
+ OBJID_HSCROLL = 0xFFFFFFFA
51
+ OBJID_SIZEGRIP = 0xFFFFFFF9
52
+ OBJID_CARET = 0xFFFFFFF8
53
+ OBJID_CURSOR = 0xFFFFFFF7
54
+ OBJID_ALERT = 0xFFFFFFF6
55
+ OBJID_SOUND = 0xFFFFFFF5
56
+ OBJID_QUERYCLASSNAMEIDX = 0xFFFFFFF4
57
+ OBJID_NATIVEOM = 0xFFFFFFF0
58
+
59
+ API.new('AppendMenu', 'LIPP', 'B', 'user32')
60
+ API.new('CheckMenuItem', 'LII', 'L', 'user32')
61
+ API.new('CheckMenuRadioItem', 'LIIII', 'B', 'user32')
62
+ API.new('CreateMenu', 'V', 'L', 'user32')
63
+ API.new('CreatePopupMenu', 'V', 'L', 'user32')
64
+ API.new('DeleteMenu', 'LII', 'B', 'user32')
65
+ API.new('DestroyMenu', 'L', 'B', 'user32')
66
+ API.new('DrawMenuBar', 'L', 'B', 'user32')
67
+ API.new('EnableMenuItem', 'LII', 'B', 'user32')
68
+ API.new('EndMenu', 'V', 'B', 'user32')
69
+ API.new('GetMenu', 'L', 'L', 'user32')
70
+ API.new('GetMenuBarInfo', 'LLLP', 'B', 'user32')
71
+ API.new('GetMenuCheckMarkDimensions', 'V', 'L', 'user32')
72
+ API.new('GetMenuDefaultItem', 'LII', 'I', 'user32')
73
+ API.new('GetMenuInfo', 'LP', 'B', 'user32')
74
+ API.new('GetMenuItemCount', 'L', 'I', 'user32')
75
+ API.new('GetMenuItemID', 'LI', 'I', 'user32')
76
+ API.new('GetMenuItemInfo', 'LIIP', 'B', 'user32')
77
+ API.new('GetMenuItemRect', 'LLIP', 'B', 'user32')
78
+ API.new('GetMenuState', 'LLI', 'I', 'user32')
79
+ API.new('GetMenuString', 'LIPII', 'I', 'user32')
80
+ API.new('GetSubMenu', 'LI', 'L', 'user32')
81
+ API.new('GetSystemMenu', 'LI', 'L', 'user32')
82
+ API.new('HiliteMenuItem', 'LLII', 'B', 'user32')
83
+ API.new('InsertMenu', 'LIIPP', 'B', 'user32')
84
+ API.new('InsertMenuItem', 'LIIP', 'B', 'user32')
85
+ API.new('IsMenu', 'L', 'B', 'user32')
86
+ API.new('LoadMenu', 'LP', 'L', 'user32')
87
+ API.new('LoadMenuIndirect', 'P', 'L', 'user32')
88
+ API.new('MenuItemFromPoint', 'LLP', 'I', 'user32')
89
+ API.new('ModifyMenu', 'LIIPP', 'B', 'user32')
90
+ API.new('RemoveMenu', 'LII', 'B', 'user32')
91
+ API.new('SetMenu', 'LL', 'B', 'user32')
92
+ API.new('SetMenuDefaultItem', 'LLL', 'B', 'user32')
93
+ API.new('SetMenuInfo', 'LP', 'B', 'user32')
94
+ API.new('SetMenuItemBitmaps', 'LIILL', 'B', 'user32')
95
+ API.new('SetMenuItemInfo', 'LIIP', 'B', 'user32')
96
+ API.new('TrackPopupMenu', 'LIIIILP', 'B', 'user32')
97
+ API.new('TrackPopupMenuEx', 'LIIILP', 'B', 'user32')
98
+ end
99
+ end
100
+ end