windows-pr 1.2.1 → 1.2.2

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.
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