windows-pr 1.2.1 → 1.2.2

Sign up to get free protection for your applications and to get access to all the features.
data/README CHANGED
@@ -131,6 +131,10 @@
131
131
  == Supported Platforms
132
132
  I only support the Windows NT family of Windows, and then only Windows
133
133
  2000 and later.
134
+
135
+ == Future Plans
136
+ I plan on converting this library to use FFI instead of win32-api. There
137
+ is already an ffi branch with most of that work done.
134
138
 
135
139
  == License
136
140
  Artistic 2.0
@@ -141,7 +145,7 @@
141
145
  warranties of merchantability and fitness for a particular purpose.
142
146
 
143
147
  == Copyright
144
- (C) 2006-2010, Daniel J. Berger
148
+ (C) 2006-2012, Daniel J. Berger
145
149
  All Rights Reserved
146
150
 
147
151
  == Author(s)
@@ -1,61 +1,61 @@
1
- require 'windows/api'
2
-
3
- module Windows
4
- module Clipboard
5
- API.auto_namespace = 'Windows::Clipboard'
6
- API.auto_constant = true
7
- API.auto_method = true
8
- API.auto_unicode = true
9
-
10
- private
11
-
12
- CF_TEXT = 1
13
- CF_BITMAP = 2
14
- CF_METAFILEPICT = 3
15
- CF_SYLK = 4
16
- CF_DIF = 5
17
- CF_TIFF = 6
18
- CF_OEMTEXT = 7
19
- CF_DIB = 8
20
- CF_PALETTE = 9
21
- CF_PENDATA = 10
22
- CF_RIFF = 11
23
- CF_WAVE = 12
24
- CF_UNICODETEXT = 13
25
- CF_ENHMETAFILE = 14
26
- CF_HDROP = 15
27
- CF_LOCALE = 16
28
- CF_MAX = 18 # Assume Windows 2000 or later
29
- CF_OWNERDISPLAY = 0x0080
30
- CF_DSPTEXT = 0x0081
31
- CF_DSPBITMAP = 0x0082
32
- CF_DSPMETAFILEPICT = 0x0083
33
- CF_DSPENHMETAFILE = 0x008E
34
-
35
- API.new('ChangeClipboardChain', 'LL', 'B', 'user32')
36
- API.new('CloseClipboard', 'V', 'B', 'user32')
37
- API.new('CountClipboardFormats', 'V', 'I', 'user32')
38
- API.new('EmptyClipboard', 'V', 'B', 'user32')
39
- API.new('EnumClipboardFormats', 'I', 'I', 'user32')
40
- API.new('GetClipboardData', 'I', 'L', 'user32')
41
- API.new('GetClipboardFormatName', 'IPI', 'I', 'user32')
42
- API.new('GetClipboardOwner', 'V', 'L', 'user32')
43
- API.new('GetClipboardSequenceNumber', 'V', 'L', 'user32')
44
- API.new('GetClipboardViewer', 'V', 'L', 'user32')
45
- API.new('GetOpenClipboardWindow', 'V', 'L', 'user32')
46
- API.new('GetPriorityClipboardFormat', 'PI', 'I', 'user32')
47
- API.new('IsClipboardFormatAvailable', 'I', 'B', 'user32')
48
- API.new('OpenClipboard', 'L', 'B', 'user32')
49
- API.new('RegisterClipboardFormat', 'S', 'I', 'user32')
50
- API.new('SetClipboardData', 'IL', 'L', 'user32')
51
- API.new('SetClipboardViewer', 'L', 'L', 'user32')
52
-
53
- begin
54
- API.new('AddClipboardFormatListener', 'L', 'B', 'user32')
55
- API.new('GetUpdatedClipboardFormats', 'PIP', 'I', 'user32')
56
- API.new('RemoveClipboardFormatListener', 'L', 'B', 'user32')
57
- rescue Win32::API::LoadLibraryError
58
- # Windows Vista or later
59
- end
60
- end
61
- end
1
+ require 'windows/api'
2
+
3
+ module Windows
4
+ module Clipboard
5
+ API.auto_namespace = 'Windows::Clipboard'
6
+ API.auto_constant = true
7
+ API.auto_method = true
8
+ API.auto_unicode = true
9
+
10
+ private
11
+
12
+ CF_TEXT = 1
13
+ CF_BITMAP = 2
14
+ CF_METAFILEPICT = 3
15
+ CF_SYLK = 4
16
+ CF_DIF = 5
17
+ CF_TIFF = 6
18
+ CF_OEMTEXT = 7
19
+ CF_DIB = 8
20
+ CF_PALETTE = 9
21
+ CF_PENDATA = 10
22
+ CF_RIFF = 11
23
+ CF_WAVE = 12
24
+ CF_UNICODETEXT = 13
25
+ CF_ENHMETAFILE = 14
26
+ CF_HDROP = 15
27
+ CF_LOCALE = 16
28
+ CF_MAX = 18 # Assume Windows 2000 or later
29
+ CF_OWNERDISPLAY = 0x0080
30
+ CF_DSPTEXT = 0x0081
31
+ CF_DSPBITMAP = 0x0082
32
+ CF_DSPMETAFILEPICT = 0x0083
33
+ CF_DSPENHMETAFILE = 0x008E
34
+
35
+ API.new('ChangeClipboardChain', 'LL', 'B', 'user32')
36
+ API.new('CloseClipboard', 'V', 'B', 'user32')
37
+ API.new('CountClipboardFormats', 'V', 'I', 'user32')
38
+ API.new('EmptyClipboard', 'V', 'B', 'user32')
39
+ API.new('EnumClipboardFormats', 'I', 'I', 'user32')
40
+ API.new('GetClipboardData', 'I', 'L', 'user32')
41
+ API.new('GetClipboardFormatName', 'IPI', 'I', 'user32')
42
+ API.new('GetClipboardOwner', 'V', 'L', 'user32')
43
+ API.new('GetClipboardSequenceNumber', 'V', 'L', 'user32')
44
+ API.new('GetClipboardViewer', 'V', 'L', 'user32')
45
+ API.new('GetOpenClipboardWindow', 'V', 'L', 'user32')
46
+ API.new('GetPriorityClipboardFormat', 'PI', 'I', 'user32')
47
+ API.new('IsClipboardFormatAvailable', 'I', 'B', 'user32')
48
+ API.new('OpenClipboard', 'L', 'B', 'user32')
49
+ API.new('RegisterClipboardFormat', 'S', 'I', 'user32')
50
+ API.new('SetClipboardData', 'IL', 'L', 'user32')
51
+ API.new('SetClipboardViewer', 'L', 'L', 'user32')
52
+
53
+ begin
54
+ API.new('AddClipboardFormatListener', 'L', 'B', 'user32')
55
+ API.new('GetUpdatedClipboardFormats', 'PIP', 'I', 'user32')
56
+ API.new('RemoveClipboardFormatListener', 'L', 'B', 'user32')
57
+ rescue Win32::API::LoadLibraryError
58
+ # Windows Vista or later
59
+ end
60
+ end
61
+ end
@@ -1,192 +1,192 @@
1
- require 'windows/api'
2
-
3
- module Windows
4
- module COM
5
- API.auto_namespace = 'Windows::COM'
6
- API.auto_constant = true
7
- API.auto_method = true
8
- API.auto_unicode = false
9
-
10
- private
11
-
12
- # These constants are from wtypes.h but are only used in a COM context
13
- # as far as I know.
14
-
15
- VT_EMPTY = 0
16
- VT_NULL = 1
17
- VT_I2 = 2
18
- VT_I4 = 3
19
- VT_R4 = 4
20
- VT_R8 = 5
21
- VT_CY = 6
22
- VT_DATE = 7
23
- VT_BSTR = 8
24
- VT_DISPATCH = 9
25
- VT_ERROR = 10
26
- VT_BOOL = 11
27
- VT_VARIANT = 12
28
- VT_UNKNOWN = 13
29
- VT_DECIMAL = 14
30
- VT_I1 = 16
31
- VT_UI1 = 17
32
- VT_UI2 = 18
33
- VT_UI4 = 19
34
- VT_I8 = 20
35
- VT_UI8 = 21
36
- VT_INT = 22
37
- VT_UINT = 23
38
- VT_VOID = 24
39
- VT_HRESULT = 25
40
- VT_PTR = 26
41
-
42
- VT_SAFEARRAY = 27
43
- VT_CARRAY = 28
44
- VT_USERDEFINED = 29
45
- VT_LPSTR = 30
46
- VT_LPWSTR = 31
47
- VT_RECORD = 36
48
- VT_INT_PTR = 37
49
- VT_UINT_PTR = 38
50
- VT_FILETIME = 64
51
- VT_BLOB = 65
52
- VT_STREAM = 66
53
- VT_STORAGE = 67
54
- VT_STREAMED_OBJECT = 68
55
- VT_STORED_OBJECT = 69
56
- VT_BLOB_OBJECT = 70
57
- VT_CF = 71
58
- VT_CLSID = 72
59
- VT_VERSIONED_STREAM = 73
60
- VT_BSTR_BLOB = 0xfff
61
- VT_VECTOR = 0x1000
62
- VT_ARRAY = 0x2000
63
- VT_BYREF = 0x4000
64
- VT_RESERVED = 0x8000
65
- VT_ILLEGAL = 0xffff
66
- VT_ILLEGALMASKED = 0xfff
67
- VT_TYPEMASK = 0xfff
68
-
69
- # These constants are from OAldl.h
70
-
71
- INVOKE_FUNC = 1
72
- INVOKE_PROPERTYGET = 2
73
- INVOKE_PROPERTYPUT = 4
74
- INVOKE_PROPERTYPUTREF = 8
75
-
76
- # CLSCTX enum constants
77
-
78
- CLSCTX_INPROC_SERVER = 0x1
79
- CLSCTX_INPROC_HANDLER = 0x2
80
- CLSCTX_LOCAL_SERVER = 0x4
81
- CLSCTX_INPROC_SERVER16 = 0x8
82
- CLSCTX_REMOTE_SERVER = 0x10
83
- CLSCTX_INPROC_HANDLER16 = 0x20
84
- CLSCTX_RESERVED1 = 0x40
85
- CLSCTX_RESERVED2 = 0x80
86
- CLSCTX_RESERVED3 = 0x100
87
- CLSCTX_RESERVED4 = 0x200
88
- CLSCTX_NO_CODE_DOWNLOAD = 0x400
89
- CLSCTX_RESERVED5 = 0x800
90
- CLSCTX_NO_CUSTOM_MARSHAL = 0x1000
91
- CLSCTX_ENABLE_CODE_DOWNLOAD = 0x2000
92
- CLSCTX_NO_FAILURE_LOG = 0x4000
93
- CLSCTX_DISABLE_AAA = 0x8000
94
- CLSCTX_ENABLE_AAA = 0x10000
95
- CLSCTX_FROM_DEFAULT_CONTEXT = 0x20000
96
- CLSCTX_ACTIVATE_32_BIT_SERVER = 0x40000
97
- CLSCTX_ACTIVATE_64_BIT_SERVER = 0x80000
98
-
99
- # IDispatch
100
-
101
- DISPID_UNKNOWN = -1
102
- DISPID_VALUE = 0
103
- DISPID_PROPERTYPUT = -3
104
- DISPID_NEWENUM = -4
105
- DISPID_EVALUATE = -5
106
- DISPID_CONSTRUCTOR = -6
107
- DISPID_DESTRUCTOR = -7
108
- DISPID_COLLECT = -8
109
-
110
- # Flags for IDispatch::Invoke
111
-
112
- DISPATCH_METHOD = 0x1
113
- DISPATCH_PROPERTYGET = 0x2
114
- DISPATCH_PROPERTYPUT = 0x4
115
- DISPATCH_PROPERTYPUTREF = 0x8
116
-
117
- API.new('BindMoniker', 'PLPP', 'L', 'ole32')
118
- API.new('CLSIDFromProgID', 'PP', 'L', 'ole32')
119
- API.new('CLSIDFromProgIDEx', 'PP', 'L', 'ole32')
120
- API.new('CLSIDFromString', 'PP', 'L', 'ole32')
121
- API.new('CoAddRefServerProcess', 'V', 'L', 'ole32')
122
- API.new('CoAllowSetForegroundWindow', 'PP', 'L', 'ole32')
123
- API.new('CoCancelCall', 'LL', 'L', 'ole32')
124
- API.new('CoCopyProxy', 'PP', 'L', 'ole32')
125
- API.new('CoCreateFreeThreadedMarshaler', 'PP', 'L', 'ole32')
126
- API.new('CoCreateGuid', 'P', 'L', 'ole32')
127
- API.new('CoCreateInstance', 'PPLPP', 'L', 'ole32')
128
- API.new('CoCreateInstanceEx', 'PPLPLP', 'L', 'ole32')
129
- API.new('CoDisableCallCancellation', 'L', 'L', 'ole32')
130
- API.new('CoDisconnectObject', 'PL', 'L', 'ole32')
131
- #API.new('CoDosDateTimeToFileTime', 'LLP', 'L')
132
- API.new('CoEnableCallCancellation', 'L', 'L', 'ole32')
133
- API.new('CoFileTimeNow', 'P', 'L', 'ole32')
134
- API.new('CoFileTimeToDosDateTime', 'LLL', 'B', 'ole32')
135
- API.new('CoFreeAllLibraries', 'V', 'V', 'ole32')
136
- API.new('CoFreeLibrary', 'L', 'V', 'ole32')
137
- API.new('CoFreeUnusedLibraries', 'V', 'V', 'ole32')
138
- API.new('CoFreeUnusedLibrariesEx', 'V', 'V', 'ole32')
139
- API.new('CoGetCallContext', 'PP', 'L', 'ole32')
140
- API.new('CoGetCallerTID', 'P', 'L', 'ole32')
141
- API.new('CoGetCancelObject', 'LPP', 'L', 'ole32')
142
- API.new('CoGetClassObject', 'PLPPP', 'L', 'ole32')
143
- API.new('CoGetContextToken', 'P', 'L', 'ole32')
144
- API.new('CoGetCurrentLogicalThreadId', 'P', 'L', 'ole32')
145
- API.new('CoGetCurrentProcess', 'V', 'L', 'ole32')
146
- API.new('CoGetInstanceFromFile', 'PPPLLPLP', 'L', 'ole32')
147
- API.new('CoGetInstanceFromIStorage', 'PPPLPLP', 'L', 'ole32')
148
- API.new('CoInitialize', 'P', 'L', 'ole32')
149
- API.new('CoTaskMemFree', 'P', 'V', 'ole32')
150
- API.new('CoUninitialize', 'V', 'V', 'ole32')
151
- API.new('CoUnmarshalHresult', 'PP', 'L', 'ole32')
152
- API.new('CoUnmarshalInterface', 'PPP', 'L', 'ole32')
153
- API.new('CoWaitForMultipleHandles', 'LLLPP', 'L', 'ole32')
154
- API.new('CreateAntiMoniker', 'P', 'L', 'ole32')
155
- API.new('CreateAsyncBindCtx', 'LKKP', 'L', 'urlmon')
156
- API.new('CreateBindCtx', 'LP', 'L', 'ole32')
157
- API.new('CreateClassMoniker', 'PP', 'L', 'ole32')
158
- API.new('CreateFileMoniker', 'PP', 'L', 'ole32')
159
- API.new('CreateGenericComposite', 'PPP', 'L', 'ole32')
160
- API.new('CreateItemMoniker', 'PPP', 'L', 'ole32')
161
- API.new('CreateObjrefMoniker', 'PP', 'L', 'ole32')
162
- API.new('CreatePointerMoniker', 'PP', 'L', 'ole32')
163
- API.new('GetClassFile', 'PP', 'L', 'ole32')
164
- API.new('GetRunningObjectTable', 'LP', 'L', 'ole32')
165
- API.new('IIDFromString', 'PP', 'L', 'ole32')
166
- API.new('IsAccelerator', 'LIPP', 'B', 'ole32')
167
- API.new('IsEqualGUID', 'PP', 'B', 'ole32')
168
- API.new('MkParseDisplayName', 'PPPP', 'L', 'ole32')
169
- API.new('MonikerCommonPrefixWith', 'PPP', 'L', 'ole32')
170
- API.new('MonikerRelativePathTo', 'PPPI', 'L', 'ole32')
171
- API.new('OleDoAutoConvert', 'PP', 'L', 'ole32')
172
- API.new('OleGetAutoConvert', 'PP', 'L', 'ole32')
173
- API.new('OleGetIconOfClass', 'PPI', 'L', 'ole32')
174
- API.new('OleGetIconOfFile', 'PI', 'L', 'ole32')
175
- API.new('OleIconToCursor', 'PL', 'L', 'olepro32')
176
- API.new('OleInitialize', 'V', 'L', 'ole32')
177
- API.new('OleRegGetMiscStatus', 'PLP', 'L', 'ole32')
178
- API.new('OleRegGetUserType', 'PLP', 'L', 'ole32')
179
- API.new('OleSetAutoConvert', 'PP', 'L', 'ole32')
180
- API.new('OleUninitialize', 'V', 'V', 'ole32')
181
- API.new('ProgIDFromCLSID', 'PP', 'L', 'ole32')
182
- API.new('StringFromCLSID', 'PP', 'L', 'ole32')
183
- API.new('StringFromGUID2', 'PPI', 'I', 'ole32')
184
- API.new('StringFromIID', 'PP', 'L', 'ole32')
185
-
186
- begin
187
- API.new('CoDisconnectContext', 'L', 'L', 'ole32')
188
- rescue Win32::API::LoadLibraryError
189
- # Windows Vista
190
- end
191
- end
192
- end
1
+ require 'windows/api'
2
+
3
+ module Windows
4
+ module COM
5
+ API.auto_namespace = 'Windows::COM'
6
+ API.auto_constant = true
7
+ API.auto_method = true
8
+ API.auto_unicode = false
9
+
10
+ private
11
+
12
+ # These constants are from wtypes.h but are only used in a COM context
13
+ # as far as I know.
14
+
15
+ VT_EMPTY = 0
16
+ VT_NULL = 1
17
+ VT_I2 = 2
18
+ VT_I4 = 3
19
+ VT_R4 = 4
20
+ VT_R8 = 5
21
+ VT_CY = 6
22
+ VT_DATE = 7
23
+ VT_BSTR = 8
24
+ VT_DISPATCH = 9
25
+ VT_ERROR = 10
26
+ VT_BOOL = 11
27
+ VT_VARIANT = 12
28
+ VT_UNKNOWN = 13
29
+ VT_DECIMAL = 14
30
+ VT_I1 = 16
31
+ VT_UI1 = 17
32
+ VT_UI2 = 18
33
+ VT_UI4 = 19
34
+ VT_I8 = 20
35
+ VT_UI8 = 21
36
+ VT_INT = 22
37
+ VT_UINT = 23
38
+ VT_VOID = 24
39
+ VT_HRESULT = 25
40
+ VT_PTR = 26
41
+
42
+ VT_SAFEARRAY = 27
43
+ VT_CARRAY = 28
44
+ VT_USERDEFINED = 29
45
+ VT_LPSTR = 30
46
+ VT_LPWSTR = 31
47
+ VT_RECORD = 36
48
+ VT_INT_PTR = 37
49
+ VT_UINT_PTR = 38
50
+ VT_FILETIME = 64
51
+ VT_BLOB = 65
52
+ VT_STREAM = 66
53
+ VT_STORAGE = 67
54
+ VT_STREAMED_OBJECT = 68
55
+ VT_STORED_OBJECT = 69
56
+ VT_BLOB_OBJECT = 70
57
+ VT_CF = 71
58
+ VT_CLSID = 72
59
+ VT_VERSIONED_STREAM = 73
60
+ VT_BSTR_BLOB = 0xfff
61
+ VT_VECTOR = 0x1000
62
+ VT_ARRAY = 0x2000
63
+ VT_BYREF = 0x4000
64
+ VT_RESERVED = 0x8000
65
+ VT_ILLEGAL = 0xffff
66
+ VT_ILLEGALMASKED = 0xfff
67
+ VT_TYPEMASK = 0xfff
68
+
69
+ # These constants are from OAldl.h
70
+
71
+ INVOKE_FUNC = 1
72
+ INVOKE_PROPERTYGET = 2
73
+ INVOKE_PROPERTYPUT = 4
74
+ INVOKE_PROPERTYPUTREF = 8
75
+
76
+ # CLSCTX enum constants
77
+
78
+ CLSCTX_INPROC_SERVER = 0x1
79
+ CLSCTX_INPROC_HANDLER = 0x2
80
+ CLSCTX_LOCAL_SERVER = 0x4
81
+ CLSCTX_INPROC_SERVER16 = 0x8
82
+ CLSCTX_REMOTE_SERVER = 0x10
83
+ CLSCTX_INPROC_HANDLER16 = 0x20
84
+ CLSCTX_RESERVED1 = 0x40
85
+ CLSCTX_RESERVED2 = 0x80
86
+ CLSCTX_RESERVED3 = 0x100
87
+ CLSCTX_RESERVED4 = 0x200
88
+ CLSCTX_NO_CODE_DOWNLOAD = 0x400
89
+ CLSCTX_RESERVED5 = 0x800
90
+ CLSCTX_NO_CUSTOM_MARSHAL = 0x1000
91
+ CLSCTX_ENABLE_CODE_DOWNLOAD = 0x2000
92
+ CLSCTX_NO_FAILURE_LOG = 0x4000
93
+ CLSCTX_DISABLE_AAA = 0x8000
94
+ CLSCTX_ENABLE_AAA = 0x10000
95
+ CLSCTX_FROM_DEFAULT_CONTEXT = 0x20000
96
+ CLSCTX_ACTIVATE_32_BIT_SERVER = 0x40000
97
+ CLSCTX_ACTIVATE_64_BIT_SERVER = 0x80000
98
+
99
+ # IDispatch
100
+
101
+ DISPID_UNKNOWN = -1
102
+ DISPID_VALUE = 0
103
+ DISPID_PROPERTYPUT = -3
104
+ DISPID_NEWENUM = -4
105
+ DISPID_EVALUATE = -5
106
+ DISPID_CONSTRUCTOR = -6
107
+ DISPID_DESTRUCTOR = -7
108
+ DISPID_COLLECT = -8
109
+
110
+ # Flags for IDispatch::Invoke
111
+
112
+ DISPATCH_METHOD = 0x1
113
+ DISPATCH_PROPERTYGET = 0x2
114
+ DISPATCH_PROPERTYPUT = 0x4
115
+ DISPATCH_PROPERTYPUTREF = 0x8
116
+
117
+ API.new('BindMoniker', 'PLPP', 'L', 'ole32')
118
+ API.new('CLSIDFromProgID', 'PP', 'L', 'ole32')
119
+ API.new('CLSIDFromProgIDEx', 'PP', 'L', 'ole32')
120
+ API.new('CLSIDFromString', 'PP', 'L', 'ole32')
121
+ API.new('CoAddRefServerProcess', 'V', 'L', 'ole32')
122
+ API.new('CoAllowSetForegroundWindow', 'PP', 'L', 'ole32')
123
+ API.new('CoCancelCall', 'LL', 'L', 'ole32')
124
+ API.new('CoCopyProxy', 'PP', 'L', 'ole32')
125
+ API.new('CoCreateFreeThreadedMarshaler', 'PP', 'L', 'ole32')
126
+ API.new('CoCreateGuid', 'P', 'L', 'ole32')
127
+ API.new('CoCreateInstance', 'PPLPP', 'L', 'ole32')
128
+ API.new('CoCreateInstanceEx', 'PPLPLP', 'L', 'ole32')
129
+ API.new('CoDisableCallCancellation', 'L', 'L', 'ole32')
130
+ API.new('CoDisconnectObject', 'PL', 'L', 'ole32')
131
+ #API.new('CoDosDateTimeToFileTime', 'LLP', 'L')
132
+ API.new('CoEnableCallCancellation', 'L', 'L', 'ole32')
133
+ API.new('CoFileTimeNow', 'P', 'L', 'ole32')
134
+ API.new('CoFileTimeToDosDateTime', 'LLL', 'B', 'ole32')
135
+ API.new('CoFreeAllLibraries', 'V', 'V', 'ole32')
136
+ API.new('CoFreeLibrary', 'L', 'V', 'ole32')
137
+ API.new('CoFreeUnusedLibraries', 'V', 'V', 'ole32')
138
+ API.new('CoFreeUnusedLibrariesEx', 'V', 'V', 'ole32')
139
+ API.new('CoGetCallContext', 'PP', 'L', 'ole32')
140
+ API.new('CoGetCallerTID', 'P', 'L', 'ole32')
141
+ API.new('CoGetCancelObject', 'LPP', 'L', 'ole32')
142
+ API.new('CoGetClassObject', 'PLPPP', 'L', 'ole32')
143
+ API.new('CoGetContextToken', 'P', 'L', 'ole32')
144
+ API.new('CoGetCurrentLogicalThreadId', 'P', 'L', 'ole32')
145
+ API.new('CoGetCurrentProcess', 'V', 'L', 'ole32')
146
+ API.new('CoGetInstanceFromFile', 'PPPLLPLP', 'L', 'ole32')
147
+ API.new('CoGetInstanceFromIStorage', 'PPPLPLP', 'L', 'ole32')
148
+ API.new('CoInitialize', 'P', 'L', 'ole32')
149
+ API.new('CoTaskMemFree', 'P', 'V', 'ole32')
150
+ API.new('CoUninitialize', 'V', 'V', 'ole32')
151
+ API.new('CoUnmarshalHresult', 'PP', 'L', 'ole32')
152
+ API.new('CoUnmarshalInterface', 'PPP', 'L', 'ole32')
153
+ API.new('CoWaitForMultipleHandles', 'LLLPP', 'L', 'ole32')
154
+ API.new('CreateAntiMoniker', 'P', 'L', 'ole32')
155
+ API.new('CreateAsyncBindCtx', 'LKKP', 'L', 'urlmon')
156
+ API.new('CreateBindCtx', 'LP', 'L', 'ole32')
157
+ API.new('CreateClassMoniker', 'PP', 'L', 'ole32')
158
+ API.new('CreateFileMoniker', 'PP', 'L', 'ole32')
159
+ API.new('CreateGenericComposite', 'PPP', 'L', 'ole32')
160
+ API.new('CreateItemMoniker', 'PPP', 'L', 'ole32')
161
+ API.new('CreateObjrefMoniker', 'PP', 'L', 'ole32')
162
+ API.new('CreatePointerMoniker', 'PP', 'L', 'ole32')
163
+ API.new('GetClassFile', 'PP', 'L', 'ole32')
164
+ API.new('GetRunningObjectTable', 'LP', 'L', 'ole32')
165
+ API.new('IIDFromString', 'PP', 'L', 'ole32')
166
+ API.new('IsAccelerator', 'LIPP', 'B', 'ole32')
167
+ API.new('IsEqualGUID', 'PP', 'B', 'ole32')
168
+ API.new('MkParseDisplayName', 'PPPP', 'L', 'ole32')
169
+ API.new('MonikerCommonPrefixWith', 'PPP', 'L', 'ole32')
170
+ API.new('MonikerRelativePathTo', 'PPPI', 'L', 'ole32')
171
+ API.new('OleDoAutoConvert', 'PP', 'L', 'ole32')
172
+ API.new('OleGetAutoConvert', 'PP', 'L', 'ole32')
173
+ API.new('OleGetIconOfClass', 'PPI', 'L', 'ole32')
174
+ API.new('OleGetIconOfFile', 'PI', 'L', 'ole32')
175
+ API.new('OleIconToCursor', 'PL', 'L', 'olepro32')
176
+ API.new('OleInitialize', 'V', 'L', 'ole32')
177
+ API.new('OleRegGetMiscStatus', 'PLP', 'L', 'ole32')
178
+ API.new('OleRegGetUserType', 'PLP', 'L', 'ole32')
179
+ API.new('OleSetAutoConvert', 'PP', 'L', 'ole32')
180
+ API.new('OleUninitialize', 'V', 'V', 'ole32')
181
+ API.new('ProgIDFromCLSID', 'PP', 'L', 'ole32')
182
+ API.new('StringFromCLSID', 'PP', 'L', 'ole32')
183
+ API.new('StringFromGUID2', 'PPI', 'I', 'ole32')
184
+ API.new('StringFromIID', 'PP', 'L', 'ole32')
185
+
186
+ begin
187
+ API.new('CoDisconnectContext', 'L', 'L', 'ole32')
188
+ rescue Win32::API::LoadLibraryError
189
+ # Windows Vista
190
+ end
191
+ end
192
+ end