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,30 +1,30 @@
1
- require 'windows/api'
2
-
3
- module Windows
4
- module Security
5
- module Authentication
6
- API.auto_namespace = 'Windows::Security::Authentication'
7
- API.auto_constant = true
8
- API.auto_method = true
9
- API.auto_unicode = false
10
-
11
- POLICY_VIEW_LOCAL_INFORMATION = 0x00000001
12
- POLICY_VIEW_AUDIT_INFORMATION = 0x00000002
13
- POLICY_GET_PRIVATE_INFORMATION = 0x00000004
14
- POLICY_TRUST_ADMIN = 0x00000008
15
- POLICY_CREATE_ACCOUNT = 0x00000010
16
- POLICY_CREATE_SECRET = 0x00000020
17
- POLICY_CREATE_PRIVILEGE = 0x00000040
18
- POLICY_SET_DEFAULT_QUOTA_LIMITS = 0x00000080
19
- POLICY_SET_AUDIT_REQUIREMENTS = 0x00000100
20
- POLICY_AUDIT_LOG_ADMIN = 0x00000200
21
- POLICY_SERVER_ADMIN = 0x00000400
22
- POLICY_LOOKUP_NAMES = 0x00000800
23
- POLICY_NOTIFICATION = 0x00001000
24
-
25
- API.new('LsaOpenPolicy', 'PPLP', 'L', 'advapi32')
26
- API.new('LsaClose', 'L', 'L', 'advapi32')
27
- API.new('LsaNtStatusToWinError', 'L', 'L', 'advapi32')
28
- end
29
- end
30
- end
1
+ require 'windows/api'
2
+
3
+ module Windows
4
+ module Security
5
+ module Authentication
6
+ API.auto_namespace = 'Windows::Security::Authentication'
7
+ API.auto_constant = true
8
+ API.auto_method = true
9
+ API.auto_unicode = false
10
+
11
+ POLICY_VIEW_LOCAL_INFORMATION = 0x00000001
12
+ POLICY_VIEW_AUDIT_INFORMATION = 0x00000002
13
+ POLICY_GET_PRIVATE_INFORMATION = 0x00000004
14
+ POLICY_TRUST_ADMIN = 0x00000008
15
+ POLICY_CREATE_ACCOUNT = 0x00000010
16
+ POLICY_CREATE_SECRET = 0x00000020
17
+ POLICY_CREATE_PRIVILEGE = 0x00000040
18
+ POLICY_SET_DEFAULT_QUOTA_LIMITS = 0x00000080
19
+ POLICY_SET_AUDIT_REQUIREMENTS = 0x00000100
20
+ POLICY_AUDIT_LOG_ADMIN = 0x00000200
21
+ POLICY_SERVER_ADMIN = 0x00000400
22
+ POLICY_LOOKUP_NAMES = 0x00000800
23
+ POLICY_NOTIFICATION = 0x00001000
24
+
25
+ API.new('LsaOpenPolicy', 'PPLP', 'L', 'advapi32')
26
+ API.new('LsaClose', 'L', 'L', 'advapi32')
27
+ API.new('LsaNtStatusToWinError', 'L', 'L', 'advapi32')
28
+ end
29
+ end
30
+ end
@@ -1,140 +1,140 @@
1
- require 'windows/api'
2
-
3
- module Windows
4
- module Service
5
- API.auto_namespace = 'Windows::Service'
6
- API.auto_constant = true
7
- API.auto_method = true
8
- API.auto_unicode = true
9
-
10
- # SCM access rights
11
- SC_MANAGER_ALL_ACCESS = 0xF003F
12
- SC_MANAGER_CREATE_SERVICE = 0x0002
13
- SC_MANAGER_CONNECT = 0x0001
14
- SC_MANAGER_ENUMERATE_SERVICE = 0x0004
15
- SC_MANAGER_LOCK = 0x0008
16
- SC_MANAGER_MODIFY_BOOT_CONFIG = 0x0020
17
- SC_MANAGER_QUERY_LOCK_STATUS = 0x0010
18
- SC_STATUS_PROCESS_INFO = 0
19
- SC_ENUM_PROCESS_INFO = 0
20
-
21
- # Service control action types
22
- SC_ACTION_NONE = 0
23
- SC_ACTION_RESTART = 1
24
- SC_ACTION_REBOOT = 2
25
- SC_ACTION_RUN_COMMAND = 3
26
-
27
- # Service access rights
28
- SERVICE_ALL_ACCESS = 0xF01FF
29
- SERVICE_CHANGE_CONFIG = 0x0002
30
- SERVICE_ENUMERATE_DEPENDENTS = 0x0008
31
- SERVICE_INTERROGATE = 0x0080
32
- SERVICE_PAUSE_CONTINUE = 0x0040
33
- SERVICE_QUERY_CONFIG = 0x0001
34
- SERVICE_QUERY_STATUS = 0x0004
35
- SERVICE_START = 0x0010
36
- SERVICE_STOP = 0x0020
37
- SERVICE_USER_DEFINED_CONTROL = 0x0100
38
-
39
- # Service types
40
- SERVICE_KERNEL_DRIVER = 0x00000001
41
- SERVICE_FILE_SYSTEM_DRIVER = 0x00000002
42
- SERVICE_ADAPTER = 0x00000004
43
- SERVICE_RECOGNIZER_DRIVER = 0x00000008
44
- SERVICE_WIN32_OWN_PROCESS = 0x00000010
45
- SERVICE_WIN32_SHARE_PROCESS = 0x00000020
46
- SERVICE_WIN32 = 0x00000030
47
- SERVICE_INTERACTIVE_PROCESS = 0x00000100
48
- SERVICE_DRIVER = 0x0000000B
49
- SERVICE_TYPE_ALL = 0x0000013F
50
-
51
- # Error control
52
- SERVICE_ERROR_IGNORE = 0x00000000
53
- SERVICE_ERROR_NORMAL = 0x00000001
54
- SERVICE_ERROR_SEVERE = 0x00000002
55
- SERVICE_ERROR_CRITICAL = 0x00000003
56
-
57
- # Start types
58
- SERVICE_BOOT_START = 0x00000000
59
- SERVICE_SYSTEM_START = 0x00000001
60
- SERVICE_AUTO_START = 0x00000002
61
- SERVICE_DEMAND_START = 0x00000003
62
- SERVICE_DISABLED = 0x00000004
63
-
64
- # Service control
65
- SERVICE_CONTROL_STOP = 0x00000001
66
- SERVICE_CONTROL_PAUSE = 0x00000002
67
- SERVICE_CONTROL_CONTINUE = 0x00000003
68
- SERVICE_CONTROL_INTERROGATE = 0x00000004
69
- SERVICE_CONTROL_PARAMCHANGE = 0x00000006
70
- SERVICE_CONTROL_NETBINDADD = 0x00000007
71
- SERVICE_CONTROL_NETBINDREMOVE = 0x00000008
72
- SERVICE_CONTROL_NETBINDENABLE = 0x00000009
73
- SERVICE_CONTROL_NETBINDDISABLE = 0x0000000A
74
-
75
- # Service controls accepted
76
- SERVICE_ACCEPT_STOP = 0x00000001
77
- SERVICE_ACCEPT_PAUSE_CONTINUE = 0x00000002
78
- SERVICE_ACCEPT_SHUTDOWN = 0x00000004
79
- SERVICE_ACCEPT_PARAMCHANGE = 0x00000008
80
- SERVICE_ACCEPT_NETBINDCHANGE = 0x00000010
81
- SERVICE_ACCEPT_HARDWAREPROFILECHANGE = 0x00000020
82
- SERVICE_ACCEPT_POWEREVENT = 0x00000040
83
- SERVICE_ACCEPT_SESSIONCHANGE = 0x00000080
84
- SERVICE_ACCEPT_PRESHUTDOWN = 0x00000100
85
-
86
- # Service states
87
- SERVICE_ACTIVE = 0x00000001
88
- SERVICE_INACTIVE = 0x00000002
89
- SERVICE_STATE_ALL = 0x00000003
90
-
91
- # Service current states
92
- SERVICE_STOPPED = 0x00000001
93
- SERVICE_START_PENDING = 0x00000002
94
- SERVICE_STOP_PENDING = 0x00000003
95
- SERVICE_RUNNING = 0x00000004
96
- SERVICE_CONTINUE_PENDING = 0x00000005
97
- SERVICE_PAUSE_PENDING = 0x00000006
98
- SERVICE_PAUSED = 0x00000007
99
-
100
- # Info levels
101
- SERVICE_CONFIG_DESCRIPTION = 1
102
- SERVICE_CONFIG_FAILURE_ACTIONS = 2
103
- SERVICE_CONFIG_DELAYED_AUTO_START_INFO = 3
104
- SERVICE_CONFIG_FAILURE_ACTIONS_FLAG = 4
105
- SERVICE_CONFIG_SERVICE_SID_INFO = 5
106
- SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO = 6
107
- SERVICE_CONFIG_PRESHUTDOWN_INFO = 7
108
-
109
- # Configuration
110
- SERVICE_NO_CHANGE = 0xffffffff
111
-
112
- API.new('ChangeServiceConfig', 'LLLLPPPPPPP', 'B', 'advapi32')
113
- API.new('ChangeServiceConfig2', 'LLP', 'B', 'advapi32')
114
- API.new('CloseServiceHandle', 'L', 'B', 'advapi32')
115
- API.new('ControlService', 'LLP', 'B', 'advapi32')
116
- API.new('CreateService', 'LPPLLLLPPPPPP', 'L', 'advapi32')
117
- API.new('DeleteService', 'L', 'B', 'advapi32')
118
- API.new('EnumDependentServices', 'LLPLPP', 'B', 'advapi32')
119
- API.new('EnumServicesStatus', 'LLLPLPPP', 'B', 'advapi32')
120
- API.new('EnumServicesStatusEx', 'LLLLPLPPPP', 'B', 'advapi32')
121
- API.new('GetServiceDisplayName', 'LPPP', 'B', 'advapi32')
122
- API.new('GetServiceKeyName', 'LPPP', 'B', 'advapi32')
123
- API.new('LockServiceDatabase', 'L', 'L', 'advapi32')
124
- API.new('NotifyBootConfigStatus', 'I', 'B', 'advapi32')
125
- API.new('OpenSCManager', 'PPL', 'L', 'advapi32')
126
- API.new('OpenService', 'LPL', 'L', 'advapi32')
127
- API.new('QueryServiceConfig', 'LPLP', 'B', 'advapi32')
128
- API.new('QueryServiceConfig2', 'LLPLP', 'B', 'advapi32')
129
- API.new('QueryServiceLockStatus', 'LPLP', 'B', 'advapi32')
130
- API.new('QueryServiceStatus', 'LP', 'B', 'advapi32')
131
- API.new('QueryServiceStatusEx', 'LLPLP', 'B', 'advapi32')
132
- API.new('RegisterServiceCtrlHandler', 'PK', 'L', 'advapi32')
133
- API.new('RegisterServiceCtrlHandlerEx', 'PKP', 'L', 'advapi32')
134
- API.new('SetServiceBits', 'LLII', 'B', 'advapi32')
135
- API.new('SetServiceStatus', 'LP', 'B', 'advapi32')
136
- API.new('StartService', 'LLP', 'B', 'advapi32')
137
- API.new('StartServiceCtrlDispatcher', 'P', 'B', 'advapi32')
138
- API.new('UnlockServiceDatabase', 'L', 'B', 'advapi32')
139
- end
140
- end
1
+ require 'windows/api'
2
+
3
+ module Windows
4
+ module Service
5
+ API.auto_namespace = 'Windows::Service'
6
+ API.auto_constant = true
7
+ API.auto_method = true
8
+ API.auto_unicode = true
9
+
10
+ # SCM access rights
11
+ SC_MANAGER_ALL_ACCESS = 0xF003F
12
+ SC_MANAGER_CREATE_SERVICE = 0x0002
13
+ SC_MANAGER_CONNECT = 0x0001
14
+ SC_MANAGER_ENUMERATE_SERVICE = 0x0004
15
+ SC_MANAGER_LOCK = 0x0008
16
+ SC_MANAGER_MODIFY_BOOT_CONFIG = 0x0020
17
+ SC_MANAGER_QUERY_LOCK_STATUS = 0x0010
18
+ SC_STATUS_PROCESS_INFO = 0
19
+ SC_ENUM_PROCESS_INFO = 0
20
+
21
+ # Service control action types
22
+ SC_ACTION_NONE = 0
23
+ SC_ACTION_RESTART = 1
24
+ SC_ACTION_REBOOT = 2
25
+ SC_ACTION_RUN_COMMAND = 3
26
+
27
+ # Service access rights
28
+ SERVICE_ALL_ACCESS = 0xF01FF
29
+ SERVICE_CHANGE_CONFIG = 0x0002
30
+ SERVICE_ENUMERATE_DEPENDENTS = 0x0008
31
+ SERVICE_INTERROGATE = 0x0080
32
+ SERVICE_PAUSE_CONTINUE = 0x0040
33
+ SERVICE_QUERY_CONFIG = 0x0001
34
+ SERVICE_QUERY_STATUS = 0x0004
35
+ SERVICE_START = 0x0010
36
+ SERVICE_STOP = 0x0020
37
+ SERVICE_USER_DEFINED_CONTROL = 0x0100
38
+
39
+ # Service types
40
+ SERVICE_KERNEL_DRIVER = 0x00000001
41
+ SERVICE_FILE_SYSTEM_DRIVER = 0x00000002
42
+ SERVICE_ADAPTER = 0x00000004
43
+ SERVICE_RECOGNIZER_DRIVER = 0x00000008
44
+ SERVICE_WIN32_OWN_PROCESS = 0x00000010
45
+ SERVICE_WIN32_SHARE_PROCESS = 0x00000020
46
+ SERVICE_WIN32 = 0x00000030
47
+ SERVICE_INTERACTIVE_PROCESS = 0x00000100
48
+ SERVICE_DRIVER = 0x0000000B
49
+ SERVICE_TYPE_ALL = 0x0000013F
50
+
51
+ # Error control
52
+ SERVICE_ERROR_IGNORE = 0x00000000
53
+ SERVICE_ERROR_NORMAL = 0x00000001
54
+ SERVICE_ERROR_SEVERE = 0x00000002
55
+ SERVICE_ERROR_CRITICAL = 0x00000003
56
+
57
+ # Start types
58
+ SERVICE_BOOT_START = 0x00000000
59
+ SERVICE_SYSTEM_START = 0x00000001
60
+ SERVICE_AUTO_START = 0x00000002
61
+ SERVICE_DEMAND_START = 0x00000003
62
+ SERVICE_DISABLED = 0x00000004
63
+
64
+ # Service control
65
+ SERVICE_CONTROL_STOP = 0x00000001
66
+ SERVICE_CONTROL_PAUSE = 0x00000002
67
+ SERVICE_CONTROL_CONTINUE = 0x00000003
68
+ SERVICE_CONTROL_INTERROGATE = 0x00000004
69
+ SERVICE_CONTROL_PARAMCHANGE = 0x00000006
70
+ SERVICE_CONTROL_NETBINDADD = 0x00000007
71
+ SERVICE_CONTROL_NETBINDREMOVE = 0x00000008
72
+ SERVICE_CONTROL_NETBINDENABLE = 0x00000009
73
+ SERVICE_CONTROL_NETBINDDISABLE = 0x0000000A
74
+
75
+ # Service controls accepted
76
+ SERVICE_ACCEPT_STOP = 0x00000001
77
+ SERVICE_ACCEPT_PAUSE_CONTINUE = 0x00000002
78
+ SERVICE_ACCEPT_SHUTDOWN = 0x00000004
79
+ SERVICE_ACCEPT_PARAMCHANGE = 0x00000008
80
+ SERVICE_ACCEPT_NETBINDCHANGE = 0x00000010
81
+ SERVICE_ACCEPT_HARDWAREPROFILECHANGE = 0x00000020
82
+ SERVICE_ACCEPT_POWEREVENT = 0x00000040
83
+ SERVICE_ACCEPT_SESSIONCHANGE = 0x00000080
84
+ SERVICE_ACCEPT_PRESHUTDOWN = 0x00000100
85
+
86
+ # Service states
87
+ SERVICE_ACTIVE = 0x00000001
88
+ SERVICE_INACTIVE = 0x00000002
89
+ SERVICE_STATE_ALL = 0x00000003
90
+
91
+ # Service current states
92
+ SERVICE_STOPPED = 0x00000001
93
+ SERVICE_START_PENDING = 0x00000002
94
+ SERVICE_STOP_PENDING = 0x00000003
95
+ SERVICE_RUNNING = 0x00000004
96
+ SERVICE_CONTINUE_PENDING = 0x00000005
97
+ SERVICE_PAUSE_PENDING = 0x00000006
98
+ SERVICE_PAUSED = 0x00000007
99
+
100
+ # Info levels
101
+ SERVICE_CONFIG_DESCRIPTION = 1
102
+ SERVICE_CONFIG_FAILURE_ACTIONS = 2
103
+ SERVICE_CONFIG_DELAYED_AUTO_START_INFO = 3
104
+ SERVICE_CONFIG_FAILURE_ACTIONS_FLAG = 4
105
+ SERVICE_CONFIG_SERVICE_SID_INFO = 5
106
+ SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO = 6
107
+ SERVICE_CONFIG_PRESHUTDOWN_INFO = 7
108
+
109
+ # Configuration
110
+ SERVICE_NO_CHANGE = 0xffffffff
111
+
112
+ API.new('ChangeServiceConfig', 'LLLLPPPPPPP', 'B', 'advapi32')
113
+ API.new('ChangeServiceConfig2', 'LLP', 'B', 'advapi32')
114
+ API.new('CloseServiceHandle', 'L', 'B', 'advapi32')
115
+ API.new('ControlService', 'LLP', 'B', 'advapi32')
116
+ API.new('CreateService', 'LPPLLLLPPPPPP', 'L', 'advapi32')
117
+ API.new('DeleteService', 'L', 'B', 'advapi32')
118
+ API.new('EnumDependentServices', 'LLPLPP', 'B', 'advapi32')
119
+ API.new('EnumServicesStatus', 'LLLPLPPP', 'B', 'advapi32')
120
+ API.new('EnumServicesStatusEx', 'LLLLPLPPPP', 'B', 'advapi32')
121
+ API.new('GetServiceDisplayName', 'LPPP', 'B', 'advapi32')
122
+ API.new('GetServiceKeyName', 'LPPP', 'B', 'advapi32')
123
+ API.new('LockServiceDatabase', 'L', 'L', 'advapi32')
124
+ API.new('NotifyBootConfigStatus', 'I', 'B', 'advapi32')
125
+ API.new('OpenSCManager', 'PPL', 'L', 'advapi32')
126
+ API.new('OpenService', 'LPL', 'L', 'advapi32')
127
+ API.new('QueryServiceConfig', 'LPLP', 'B', 'advapi32')
128
+ API.new('QueryServiceConfig2', 'LLPLP', 'B', 'advapi32')
129
+ API.new('QueryServiceLockStatus', 'LPLP', 'B', 'advapi32')
130
+ API.new('QueryServiceStatus', 'LP', 'B', 'advapi32')
131
+ API.new('QueryServiceStatusEx', 'LLPLP', 'B', 'advapi32')
132
+ API.new('RegisterServiceCtrlHandler', 'PK', 'L', 'advapi32')
133
+ API.new('RegisterServiceCtrlHandlerEx', 'PKP', 'L', 'advapi32')
134
+ API.new('SetServiceBits', 'LLII', 'B', 'advapi32')
135
+ API.new('SetServiceStatus', 'LP', 'B', 'advapi32')
136
+ API.new('StartService', 'LLP', 'B', 'advapi32')
137
+ API.new('StartServiceCtrlDispatcher', 'P', 'B', 'advapi32')
138
+ API.new('UnlockServiceDatabase', 'L', 'B', 'advapi32')
139
+ end
140
+ end
data/lib/windows/shell.rb CHANGED
@@ -1,169 +1,169 @@
1
- require 'windows/api'
2
-
3
- module Windows
4
- module Shell
5
- API.auto_namespace = 'Windows::Shell'
6
- API.auto_constant = true
7
- API.auto_method = true
8
- API.auto_unicode = true
9
-
10
- # CSIDL constants
11
- CSIDL_DESKTOP = 0x0000
12
- CSIDL_INTERNET = 0x0001
13
- CSIDL_PROGRAMS = 0x0002
14
- CSIDL_CONTROLS = 0x0003
15
- CSIDL_PRINTERS = 0x0004
16
- CSIDL_PERSONAL = 0x0005
17
- CSIDL_FAVORITES = 0x0006
18
- CSIDL_STARTUP = 0x0007
19
- CSIDL_RECENT = 0x0008
20
- CSIDL_SENDTO = 0x0009
21
- CSIDL_BITBUCKET = 0x000a
22
- CSIDL_STARTMENU = 0x000b
23
- CSIDL_MYDOCUMENTS = 0x000c
24
- CSIDL_MYMUSIC = 0x000d
25
- CSIDL_MYVIDEO = 0x000e
26
- CSIDL_DESKTOPDIRECTORY = 0x0010
27
- CSIDL_DRIVES = 0x0011
28
- CSIDL_NETWORK = 0x0012
29
- CSIDL_NETHOOD = 0x0013
30
- CSIDL_FONTS = 0x0014
31
- CSIDL_TEMPLATES = 0x0015
32
- CSIDL_COMMON_STARTMENU = 0x0016
33
- CSIDL_COMMON_PROGRAMS = 0X0017
34
- CSIDL_COMMON_STARTUP = 0x0018
35
- CSIDL_COMMON_FAVORITES = 0x001f
36
- CSIDL_COMMON_DESKTOPDIRECTORY = 0x0019
37
- CSIDL_APPDATA = 0x001a
38
- CSIDL_PRINTHOOD = 0x001b
39
- CSIDL_LOCAL_APPDATA = 0x001c
40
- CSIDL_ALTSTARTUP = 0x001d
41
- CSIDL_COMMON_ALTSTARTUP = 0x001e
42
- CSIDL_INTERNET_CACHE = 0x0020
43
- CSIDL_COOKIES = 0x0021
44
- CSIDL_HISTORY = 0x0022
45
- CSIDL_COMMON_APPDATA = 0x0023
46
- CSIDL_WINDOWS = 0x0024
47
- CSIDL_SYSTEM = 0x0025
48
- CSIDL_PROGRAM_FILES = 0x0026
49
- CSIDL_MYPICTURES = 0x0027
50
- CSIDL_PROFILE = 0x0028
51
- CSIDL_SYSTEMX86 = 0x0029
52
- CSIDL_PROGRAM_FILESX86 = 0x002a
53
- CSIDL_PROGRAM_FILES_COMMON = 0x002b
54
- CSIDL_PROGRAM_FILES_COMMONX86 = 0x002c
55
- CSIDL_COMMON_TEMPLATES = 0x002d
56
- CSIDL_COMMON_DOCUMENTS = 0x002e
57
- CSIDL_CONNECTIONS = 0x0031
58
- CSIDL_COMMON_MUSIC = 0x0035
59
- CSIDL_COMMON_PICTURES = 0x0036
60
- CSIDL_COMMON_VIDEO = 0x0037
61
- CSIDL_RESOURCES = 0x0038
62
- CSIDL_RESOURCES_LOCALIZED = 0x0039
63
- CSIDL_COMMON_OEM_LINKS = 0x003a
64
- CSIDL_CDBURN_AREA = 0x003b
65
- CSIDL_COMMON_ADMINTOOLS = 0x002f
66
- CSIDL_ADMINTOOLS = 0x0030
67
-
68
- # Return codes
69
- S_FALSE = 1
70
- E_FAIL = 2147500037
71
- E_INVALIDARG = 2147483651
72
-
73
- # Flags
74
- SHGFP_TYPE_CURRENT = 0
75
- SHGFP_TYPE_DEFAULT = 1
76
-
77
- # Shell file operations
78
- FO_MOVE = 0x0001
79
- FO_COPY = 0x0002
80
- FO_DELETE = 0x0003
81
- FO_RENAME = 0x0004
82
-
83
- FOF_MULTIDESTFILES = 0x0001
84
- FOF_CONFIRMMOUSE = 0x0002
85
- FOF_SILENT = 0x0004 # Don't create progress/report
86
- FOF_RENAMEONCOLLISION = 0x0008
87
- FOF_NOCONFIRMATION = 0x0010 # Don't prompt the user.
88
- FOF_WANTMAPPINGHANDLE = 0x0020 # Fill in SHFILEOPSTRUCT.hNameMappings
89
- FOF_ALLOWUNDO = 0x0040
90
- FOF_FILESONLY = 0x0080 # On *.*, do only files
91
- FOF_SIMPLEPROGRESS = 0x0100 # Means don't show names of files
92
- FOF_NOCONFIRMMKDIR = 0x0200 # Don't confirm making any needed dirs
93
- FOF_NOERRORUI = 0x0400 # Don't put up error UI
94
- FOF_NOCOPYSECURITYATTRIBS = 0x0800 # Don't copy NT file Sec. Attributes
95
- FOF_NORECURSION = 0x1000 # Don't recurse into directories.
96
- FOF_NO_CONNECTED_ELEMENTS = 0x2000 # Don't operate on connected elements
97
- FOF_WANTNUKEWARNING = 0x4000 # During delete op, warn if nuking
98
- FOF_NORECURSEREPARSE = 0x8000 # Treat reparse points as objects
99
-
100
- # Shell execute error codes
101
- SE_ERR_FNF = 2 # file not found
102
- SE_ERR_PNF = 3 # path not found
103
- SE_ERR_ACCESSDENIED = 5 # access denied
104
- SE_ERR_OOM = 8 # out of memory
105
- SE_ERR_DLLNOTFOUND = 32
106
- SE_ERR_SHARE = 26
107
- SE_ERR_ASSOCINCOMPLETE = 27
108
- SE_ERR_DDETIMEOUT = 28
109
- SE_ERR_DDEFAIL = 29
110
- SE_ERR_DDEBUSY = 30
111
- SE_ERR_NOASSOC = 31
112
-
113
- # Shell link constants
114
- SHGNLI_PIDL = 0x000000001 # pszLinkTo is a pidl
115
- SHGNLI_PREFIXNAME = 0x000000002 # Make name "Shortcut to xxx"
116
- SHGNLI_NOUNIQUE = 0x000000004 # don't do the unique name generation
117
- SHGNLI_NOLNK = 0x000000008 # don't add ".lnk" extension
118
-
119
- # File information constants
120
- SHGFI_ICON = 0x000000100 # get icon
121
- SHGFI_DISPLAYNAME = 0x000000200 # get display name
122
- SHGFI_TYPENAME = 0x000000400 # get type name
123
- SHGFI_ATTRIBUTES = 0x000000800 # get attributes
124
- SHGFI_ICONLOCATION = 0x000001000 # get icon location
125
- SHGFI_EXETYPE = 0x000002000 # return exe type
126
- SHGFI_SYSICONINDEX = 0x000004000 # get system icon index
127
- SHGFI_LINKOVERLAY = 0x000008000 # put a link overlay on icon
128
- SHGFI_SELECTED = 0x000010000 # show icon in selected state
129
- SHGFI_ATTR_SPECIFIED = 0x000020000 # get only specified attributes
130
- SHGFI_LARGEICON = 0x000000000 # get large icon
131
- SHGFI_SMALLICON = 0x000000001 # get small icon
132
- SHGFI_OPENICON = 0x000000002 # get open icon
133
- SHGFI_SHELLICONSIZE = 0x000000004 # get shell size icon
134
- SHGFI_PIDL = 0x000000008 # pszPath is a pidl
135
- SHGFI_USEFILEATTRIBUTES = 0x000000010 # use passed dwFileAttribute
136
- SHGFI_ADDOVERLAYS = 0x000000020 # apply the appropriate overlays
137
- SHGFI_OVERLAYINDEX = 0x000000040 # Get the index of the overlay
138
-
139
- API.new('DragQueryFile', 'LLPL', 'I', 'shell32')
140
- API.new('ExtractIcon', 'LSI', 'L', 'shell32')
141
- API.new('ExtractIconEx', 'SIPPI', 'I', 'shell32')
142
- API.new('FindExecutable', 'SSP', 'L', 'shell32')
143
- API.new('GetAllUsersProfileDirectory', 'PP', 'B', 'userenv')
144
- API.new('GetDefaultUserProfileDirectory', 'PP', 'B', 'userenv')
145
- API.new('GetProfilesDirectory', 'PP', 'B', 'userenv')
146
- API.new('GetUserProfileDirectory', 'LPP', 'B', 'userenv')
147
- API.new('ShellAbout', 'LSSL', 'I', 'shell32')
148
- API.new('SHBrowseForFolder', 'P', 'P', 'shell32')
149
- API.new('SHChangeNotify', 'LILL', 'V', 'shell32')
150
- API.new('ShellExecute', 'LSSSSI', 'L', 'shell32')
151
- API.new('ShellExecuteEx', 'P', 'B', 'shell32')
152
- API.new('SHFileOperation', 'P', 'I', 'shell32')
153
- API.new('SHGetFileInfo', 'PLPII', 'L', 'shell32')
154
- API.new('SHGetFolderLocation', 'LILLP', 'L', 'shell32')
155
- API.new('SHGetFolderPath', 'LLLLP', 'L', 'shell32')
156
- API.new('SHGetNewLinkInfo', 'SSPPI', 'B', 'shell32')
157
- API.new('SHGetPathFromIDList', 'LL', 'B', 'shell32')
158
- API.new('SHGetSpecialFolderLocation', 'LIP', 'L', 'shell32')
159
- API.new('SHGetSpecialFolderPath', 'LPLL','L', 'shell32')
160
-
161
- begin
162
- API.new('SHGetKnownFolderPath', 'LLLP', 'L', 'shell32')
163
- API.new('SHGetKnownFolderIDList', 'LLLP', 'L', 'shell32')
164
- API.new('SHGetNameFromIDList', 'PLP', 'L', 'shell32')
165
- rescue Win32::API::LoadLibraryError
166
- # Windows Vista or later
167
- end
168
- end
169
- end
1
+ require 'windows/api'
2
+
3
+ module Windows
4
+ module Shell
5
+ API.auto_namespace = 'Windows::Shell'
6
+ API.auto_constant = true
7
+ API.auto_method = true
8
+ API.auto_unicode = true
9
+
10
+ # CSIDL constants
11
+ CSIDL_DESKTOP = 0x0000
12
+ CSIDL_INTERNET = 0x0001
13
+ CSIDL_PROGRAMS = 0x0002
14
+ CSIDL_CONTROLS = 0x0003
15
+ CSIDL_PRINTERS = 0x0004
16
+ CSIDL_PERSONAL = 0x0005
17
+ CSIDL_FAVORITES = 0x0006
18
+ CSIDL_STARTUP = 0x0007
19
+ CSIDL_RECENT = 0x0008
20
+ CSIDL_SENDTO = 0x0009
21
+ CSIDL_BITBUCKET = 0x000a
22
+ CSIDL_STARTMENU = 0x000b
23
+ CSIDL_MYDOCUMENTS = 0x000c
24
+ CSIDL_MYMUSIC = 0x000d
25
+ CSIDL_MYVIDEO = 0x000e
26
+ CSIDL_DESKTOPDIRECTORY = 0x0010
27
+ CSIDL_DRIVES = 0x0011
28
+ CSIDL_NETWORK = 0x0012
29
+ CSIDL_NETHOOD = 0x0013
30
+ CSIDL_FONTS = 0x0014
31
+ CSIDL_TEMPLATES = 0x0015
32
+ CSIDL_COMMON_STARTMENU = 0x0016
33
+ CSIDL_COMMON_PROGRAMS = 0X0017
34
+ CSIDL_COMMON_STARTUP = 0x0018
35
+ CSIDL_COMMON_FAVORITES = 0x001f
36
+ CSIDL_COMMON_DESKTOPDIRECTORY = 0x0019
37
+ CSIDL_APPDATA = 0x001a
38
+ CSIDL_PRINTHOOD = 0x001b
39
+ CSIDL_LOCAL_APPDATA = 0x001c
40
+ CSIDL_ALTSTARTUP = 0x001d
41
+ CSIDL_COMMON_ALTSTARTUP = 0x001e
42
+ CSIDL_INTERNET_CACHE = 0x0020
43
+ CSIDL_COOKIES = 0x0021
44
+ CSIDL_HISTORY = 0x0022
45
+ CSIDL_COMMON_APPDATA = 0x0023
46
+ CSIDL_WINDOWS = 0x0024
47
+ CSIDL_SYSTEM = 0x0025
48
+ CSIDL_PROGRAM_FILES = 0x0026
49
+ CSIDL_MYPICTURES = 0x0027
50
+ CSIDL_PROFILE = 0x0028
51
+ CSIDL_SYSTEMX86 = 0x0029
52
+ CSIDL_PROGRAM_FILESX86 = 0x002a
53
+ CSIDL_PROGRAM_FILES_COMMON = 0x002b
54
+ CSIDL_PROGRAM_FILES_COMMONX86 = 0x002c
55
+ CSIDL_COMMON_TEMPLATES = 0x002d
56
+ CSIDL_COMMON_DOCUMENTS = 0x002e
57
+ CSIDL_CONNECTIONS = 0x0031
58
+ CSIDL_COMMON_MUSIC = 0x0035
59
+ CSIDL_COMMON_PICTURES = 0x0036
60
+ CSIDL_COMMON_VIDEO = 0x0037
61
+ CSIDL_RESOURCES = 0x0038
62
+ CSIDL_RESOURCES_LOCALIZED = 0x0039
63
+ CSIDL_COMMON_OEM_LINKS = 0x003a
64
+ CSIDL_CDBURN_AREA = 0x003b
65
+ CSIDL_COMMON_ADMINTOOLS = 0x002f
66
+ CSIDL_ADMINTOOLS = 0x0030
67
+
68
+ # Return codes
69
+ S_FALSE = 1
70
+ E_FAIL = 2147500037
71
+ E_INVALIDARG = 2147483651
72
+
73
+ # Flags
74
+ SHGFP_TYPE_CURRENT = 0
75
+ SHGFP_TYPE_DEFAULT = 1
76
+
77
+ # Shell file operations
78
+ FO_MOVE = 0x0001
79
+ FO_COPY = 0x0002
80
+ FO_DELETE = 0x0003
81
+ FO_RENAME = 0x0004
82
+
83
+ FOF_MULTIDESTFILES = 0x0001
84
+ FOF_CONFIRMMOUSE = 0x0002
85
+ FOF_SILENT = 0x0004 # Don't create progress/report
86
+ FOF_RENAMEONCOLLISION = 0x0008
87
+ FOF_NOCONFIRMATION = 0x0010 # Don't prompt the user.
88
+ FOF_WANTMAPPINGHANDLE = 0x0020 # Fill in SHFILEOPSTRUCT.hNameMappings
89
+ FOF_ALLOWUNDO = 0x0040
90
+ FOF_FILESONLY = 0x0080 # On *.*, do only files
91
+ FOF_SIMPLEPROGRESS = 0x0100 # Means don't show names of files
92
+ FOF_NOCONFIRMMKDIR = 0x0200 # Don't confirm making any needed dirs
93
+ FOF_NOERRORUI = 0x0400 # Don't put up error UI
94
+ FOF_NOCOPYSECURITYATTRIBS = 0x0800 # Don't copy NT file Sec. Attributes
95
+ FOF_NORECURSION = 0x1000 # Don't recurse into directories.
96
+ FOF_NO_CONNECTED_ELEMENTS = 0x2000 # Don't operate on connected elements
97
+ FOF_WANTNUKEWARNING = 0x4000 # During delete op, warn if nuking
98
+ FOF_NORECURSEREPARSE = 0x8000 # Treat reparse points as objects
99
+
100
+ # Shell execute error codes
101
+ SE_ERR_FNF = 2 # file not found
102
+ SE_ERR_PNF = 3 # path not found
103
+ SE_ERR_ACCESSDENIED = 5 # access denied
104
+ SE_ERR_OOM = 8 # out of memory
105
+ SE_ERR_DLLNOTFOUND = 32
106
+ SE_ERR_SHARE = 26
107
+ SE_ERR_ASSOCINCOMPLETE = 27
108
+ SE_ERR_DDETIMEOUT = 28
109
+ SE_ERR_DDEFAIL = 29
110
+ SE_ERR_DDEBUSY = 30
111
+ SE_ERR_NOASSOC = 31
112
+
113
+ # Shell link constants
114
+ SHGNLI_PIDL = 0x000000001 # pszLinkTo is a pidl
115
+ SHGNLI_PREFIXNAME = 0x000000002 # Make name "Shortcut to xxx"
116
+ SHGNLI_NOUNIQUE = 0x000000004 # don't do the unique name generation
117
+ SHGNLI_NOLNK = 0x000000008 # don't add ".lnk" extension
118
+
119
+ # File information constants
120
+ SHGFI_ICON = 0x000000100 # get icon
121
+ SHGFI_DISPLAYNAME = 0x000000200 # get display name
122
+ SHGFI_TYPENAME = 0x000000400 # get type name
123
+ SHGFI_ATTRIBUTES = 0x000000800 # get attributes
124
+ SHGFI_ICONLOCATION = 0x000001000 # get icon location
125
+ SHGFI_EXETYPE = 0x000002000 # return exe type
126
+ SHGFI_SYSICONINDEX = 0x000004000 # get system icon index
127
+ SHGFI_LINKOVERLAY = 0x000008000 # put a link overlay on icon
128
+ SHGFI_SELECTED = 0x000010000 # show icon in selected state
129
+ SHGFI_ATTR_SPECIFIED = 0x000020000 # get only specified attributes
130
+ SHGFI_LARGEICON = 0x000000000 # get large icon
131
+ SHGFI_SMALLICON = 0x000000001 # get small icon
132
+ SHGFI_OPENICON = 0x000000002 # get open icon
133
+ SHGFI_SHELLICONSIZE = 0x000000004 # get shell size icon
134
+ SHGFI_PIDL = 0x000000008 # pszPath is a pidl
135
+ SHGFI_USEFILEATTRIBUTES = 0x000000010 # use passed dwFileAttribute
136
+ SHGFI_ADDOVERLAYS = 0x000000020 # apply the appropriate overlays
137
+ SHGFI_OVERLAYINDEX = 0x000000040 # Get the index of the overlay
138
+
139
+ API.new('DragQueryFile', 'LLPL', 'I', 'shell32')
140
+ API.new('ExtractIcon', 'LSI', 'L', 'shell32')
141
+ API.new('ExtractIconEx', 'SIPPI', 'I', 'shell32')
142
+ API.new('FindExecutable', 'SSP', 'L', 'shell32')
143
+ API.new('GetAllUsersProfileDirectory', 'PP', 'B', 'userenv')
144
+ API.new('GetDefaultUserProfileDirectory', 'PP', 'B', 'userenv')
145
+ API.new('GetProfilesDirectory', 'PP', 'B', 'userenv')
146
+ API.new('GetUserProfileDirectory', 'LPP', 'B', 'userenv')
147
+ API.new('ShellAbout', 'LSSL', 'I', 'shell32')
148
+ API.new('SHBrowseForFolder', 'P', 'P', 'shell32')
149
+ API.new('SHChangeNotify', 'LILL', 'V', 'shell32')
150
+ API.new('ShellExecute', 'LSSSSI', 'L', 'shell32')
151
+ API.new('ShellExecuteEx', 'P', 'B', 'shell32')
152
+ API.new('SHFileOperation', 'P', 'I', 'shell32')
153
+ API.new('SHGetFileInfo', 'PLPII', 'L', 'shell32')
154
+ API.new('SHGetFolderLocation', 'LILLP', 'L', 'shell32')
155
+ API.new('SHGetFolderPath', 'LLLLP', 'L', 'shell32')
156
+ API.new('SHGetNewLinkInfo', 'SSPPI', 'B', 'shell32')
157
+ API.new('SHGetPathFromIDList', 'LL', 'B', 'shell32')
158
+ API.new('SHGetSpecialFolderLocation', 'LIP', 'L', 'shell32')
159
+ API.new('SHGetSpecialFolderPath', 'LPLL','L', 'shell32')
160
+
161
+ begin
162
+ API.new('SHGetKnownFolderPath', 'LLLP', 'L', 'shell32')
163
+ API.new('SHGetKnownFolderIDList', 'LLLP', 'L', 'shell32')
164
+ API.new('SHGetNameFromIDList', 'PLP', 'L', 'shell32')
165
+ rescue Win32::API::LoadLibraryError
166
+ # Windows Vista or later
167
+ end
168
+ end
169
+ end