fzeet 0.6.5 → 0.6.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (140) hide show
  1. data/LICENSE_CEF +29 -0
  2. data/checks/Bstr.rb +14 -0
  3. data/checks/Decimal.rb +27 -0
  4. data/checks/OSVERSIONINFOEX.rb +14 -0
  5. data/checks/Point.rb +65 -0
  6. data/checks/Rect.rb +104 -0
  7. data/checks/RunAll.rb +2 -0
  8. data/checks/SafeArray.rb +27 -0
  9. data/checks/Size.rb +45 -0
  10. data/checks/SystemTime.rb +43 -0
  11. data/checks/Variant.rb +160 -0
  12. data/examples/Control/DateTimePicker.rbw +1 -1
  13. data/examples/Control/MonthCalendar.rbw +1 -1
  14. data/examples/Control/{WebBrowser.rbw → WebBrowser/WebBrowser.rbw} +2 -2
  15. data/examples/Control/{WebBrowser1.rbw → WebBrowser/WebBrowser1.rbw} +0 -0
  16. data/examples/Control/WebBrowser/WebBrowser2.rbw +24 -0
  17. data/examples/Control/{WebBrowser3.rbw → WebBrowser/WebBrowser3.rbw} +0 -0
  18. data/examples/Control/{WebBrowser4.rbw → WebBrowser/WebBrowser4.rbw} +8 -3
  19. data/examples/Control/{WebBrowser4Sinatra.rb → WebBrowser/WebBrowser4Sinatra.rb} +0 -0
  20. data/examples/Control/{WebBrowser5.rbw → WebBrowser/WebBrowser5.rbw} +4 -2
  21. data/examples/Control/WebBrowser/jQueryUI.html +53 -0
  22. data/examples/Control/WebBrowser/jQueryUI.rbw +26 -0
  23. data/examples/MDI.rbw +2 -2
  24. data/examples/Raw/UIRibbon/Command.rbw +3 -3
  25. data/examples/Raw/UIRibbon/Minimal.rbw +3 -3
  26. data/examples/Version.rbw +1 -1
  27. data/lib/fzeet.rb +22 -7
  28. data/lib/fzeet/windows.rb +82 -5
  29. data/lib/fzeet/windows/com.rb +1 -318
  30. data/lib/fzeet/windows/com/Common.rb +318 -0
  31. data/lib/fzeet/windows/comctl.rb +1 -1
  32. data/lib/fzeet/windows/comctl/ComboBoxEx.rb +32 -0
  33. data/lib/fzeet/windows/comctl/DateTimePicker.rb +35 -0
  34. data/lib/fzeet/windows/comctl/Header.rb +61 -1
  35. data/lib/fzeet/windows/comctl/ListView.rb +133 -3
  36. data/lib/fzeet/windows/comctl/MonthCalendar.rb +35 -0
  37. data/lib/fzeet/windows/comctl/ProgressBar.rb +37 -0
  38. data/lib/fzeet/windows/comctl/PropertySheet.rb +50 -2
  39. data/lib/fzeet/windows/comctl/SysLink.rb +37 -0
  40. data/lib/fzeet/windows/comctl/Tab.rb +56 -0
  41. data/lib/fzeet/windows/comctl/TreeView.rb +81 -2
  42. data/lib/fzeet/windows/comctl/UpDown.rb +33 -0
  43. data/lib/fzeet/windows/comdlg.rb +1 -0
  44. data/lib/fzeet/windows/comdlg/ColorDialog.rb +41 -0
  45. data/lib/fzeet/windows/comdlg/Common.rb +87 -0
  46. data/lib/fzeet/windows/comdlg/FileDialog.rb +133 -0
  47. data/lib/fzeet/windows/comdlg/FindReplaceDialog.rb +102 -0
  48. data/lib/fzeet/windows/comdlg/FontDialog.rb +36 -0
  49. data/lib/fzeet/windows/comdlg/PrintDialog.rb +72 -0
  50. data/lib/fzeet/{Dialog → windows/comdlg}/ShellFileDialog.rb +0 -0
  51. data/lib/fzeet/windows/core.rb +5 -0
  52. data/lib/fzeet/windows/core/Common.rb +324 -0
  53. data/lib/fzeet/windows/core/Point.rb +42 -0
  54. data/lib/fzeet/windows/core/Rect.rb +114 -0
  55. data/lib/fzeet/windows/core/Size.rb +34 -0
  56. data/lib/fzeet/windows/core/SystemTime.rb +46 -0
  57. data/lib/fzeet/windows/core/Version.rb +57 -0
  58. data/lib/fzeet/windows/gdi.rb +1 -62
  59. data/lib/fzeet/windows/gdi/Common.rb +40 -0
  60. data/lib/fzeet/windows/gdi/Font.rb +64 -0
  61. data/lib/fzeet/windows/kernel.rb +1 -92
  62. data/lib/fzeet/windows/kernel/Common.rb +92 -0
  63. data/lib/fzeet/windows/libc.rb +1 -1
  64. data/lib/fzeet/windows/libcef.rb +1 -0
  65. data/lib/fzeet/windows/mshtml.rb +1 -1135
  66. data/lib/fzeet/windows/mshtml/Common.rb +1135 -0
  67. data/lib/fzeet/windows/ole.rb +1 -561
  68. data/lib/fzeet/windows/ole/Common.rb +112 -0
  69. data/lib/fzeet/windows/ole/PropVariant.rb +141 -0
  70. data/lib/fzeet/windows/oleaut.rb +3 -0
  71. data/lib/fzeet/windows/oleaut/Bstr.rb +39 -0
  72. data/lib/fzeet/windows/oleaut/Common.rb +187 -0
  73. data/lib/fzeet/windows/oleaut/SafeArray.rb +104 -0
  74. data/lib/fzeet/windows/oleaut/Variant.rb +269 -0
  75. data/lib/fzeet/windows/scintilla.rb +115 -1
  76. data/lib/fzeet/windows/{SciLexer.dll → scintilla/SciLexer.dll} +0 -0
  77. data/lib/fzeet/windows/shdocvw.rb +150 -0
  78. data/lib/fzeet/windows/shell.rb +1 -1
  79. data/lib/fzeet/windows/shell/Common.rb +94 -2
  80. data/lib/fzeet/windows/shlwapi.rb +1 -1
  81. data/lib/fzeet/windows/uiribbon.rb +416 -0
  82. data/lib/fzeet/windows/urlmon.rb +2 -2
  83. data/lib/fzeet/windows/user.rb +20 -0
  84. data/lib/fzeet/windows/user/Accelerator.rb +45 -0
  85. data/lib/fzeet/windows/user/Common.rb +3 -2
  86. data/lib/fzeet/windows/user/Control/Button.rb +54 -0
  87. data/lib/fzeet/windows/user/Control/ComboBox.rb +44 -1
  88. data/lib/fzeet/windows/user/Control/Common.rb +88 -1
  89. data/lib/fzeet/windows/user/Control/Edit.rb +50 -0
  90. data/lib/fzeet/windows/user/Control/ListBox.rb +69 -0
  91. data/lib/fzeet/windows/user/Control/Static.rb +31 -0
  92. data/lib/fzeet/windows/user/Menu.rb +130 -0
  93. data/lib/fzeet/windows/user/Message.rb +9 -0
  94. data/lib/fzeet/windows/user/MessageBox.rb +47 -0
  95. data/lib/fzeet/windows/user/SystemParametersInfo.rb +1 -1
  96. data/lib/fzeet/windows/user/Window.rb +5 -463
  97. data/lib/fzeet/{Window → windows/user/Window}/Common.rb +460 -0
  98. data/lib/fzeet/{Window → windows/user/Window}/Container.rb +0 -0
  99. data/lib/fzeet/{Window → windows/user/Window}/Dialog.rb +0 -0
  100. data/lib/fzeet/{Window → windows/user/Window}/MDI.rb +0 -0
  101. data/lib/fzeet/{Window → windows/user/Window}/View.rb +0 -0
  102. data/lib/fzeet/{Window → windows/user/Window}/Window.rb +0 -0
  103. data/lib/fzeet/{Window → windows/user/Window}/WindowMethods.rb +1 -1
  104. metadata +55 -61
  105. data/examples/Control/WebBrowser2.rbw +0 -39
  106. data/lib/fzeet/Accelerator.rb +0 -48
  107. data/lib/fzeet/Application.rb +0 -71
  108. data/lib/fzeet/Common.rb +0 -350
  109. data/lib/fzeet/Control.rb +0 -19
  110. data/lib/fzeet/Control/Button.rb +0 -57
  111. data/lib/fzeet/Control/ComboBox.rb +0 -46
  112. data/lib/fzeet/Control/ComboBoxEx.rb +0 -35
  113. data/lib/fzeet/Control/Common.rb +0 -89
  114. data/lib/fzeet/Control/DateTimePicker.rb +0 -38
  115. data/lib/fzeet/Control/Edit.rb +0 -53
  116. data/lib/fzeet/Control/ExplorerBrowser.rb +0 -66
  117. data/lib/fzeet/Control/Header.rb +0 -63
  118. data/lib/fzeet/Control/ListBox.rb +0 -72
  119. data/lib/fzeet/Control/ListView.rb +0 -133
  120. data/lib/fzeet/Control/MonthCalendar.rb +0 -38
  121. data/lib/fzeet/Control/ProgressBar.rb +0 -40
  122. data/lib/fzeet/Control/PropertySheet.rb +0 -51
  123. data/lib/fzeet/Control/Scintilla.rb +0 -117
  124. data/lib/fzeet/Control/Static.rb +0 -34
  125. data/lib/fzeet/Control/SysLink.rb +0 -40
  126. data/lib/fzeet/Control/Tab.rb +0 -59
  127. data/lib/fzeet/Control/TreeView.rb +0 -82
  128. data/lib/fzeet/Control/UpDown.rb +0 -36
  129. data/lib/fzeet/Control/WebBrowser.rb +0 -153
  130. data/lib/fzeet/Dialog.rb +0 -6
  131. data/lib/fzeet/Dialog/ColorDialog.rb +0 -44
  132. data/lib/fzeet/Dialog/Common.rb +0 -89
  133. data/lib/fzeet/Dialog/FileDialog.rb +0 -136
  134. data/lib/fzeet/Dialog/FindReplaceDialog.rb +0 -105
  135. data/lib/fzeet/Dialog/FontDialog.rb +0 -39
  136. data/lib/fzeet/Dialog/PrintDialog.rb +0 -75
  137. data/lib/fzeet/Menu.rb +0 -133
  138. data/lib/fzeet/UIRibbon.rb +0 -417
  139. data/lib/fzeet/Window.rb +0 -5
  140. data/lib/fzeet/windows/common.rb +0 -244
@@ -1,561 +1 @@
1
- require_relative 'com'
2
-
3
- module Fzeet
4
- module Windows
5
- ffi_lib 'ole32'
6
- ffi_convention :stdcall
7
-
8
- attach_function :OleInitialize, [:pointer], :long
9
- attach_function :OleUninitialize, [], :void
10
-
11
- def InitializeOle
12
- DetonateHresult(:OleInitialize, nil)
13
-
14
- at_exit { OleUninitialize() }
15
- end
16
-
17
- module_function :InitializeOle
18
-
19
- attach_function :CoTaskMemAlloc, [:ulong], :pointer
20
- attach_function :CoTaskMemFree, [:pointer], :void
21
-
22
- VT_EMPTY = 0
23
- VT_NULL = 1
24
- VT_I2 = 2
25
- VT_I4 = 3
26
- VT_R4 = 4
27
- VT_R8 = 5
28
- VT_CY = 6
29
- VT_DATE = 7
30
- VT_BSTR = 8
31
- VT_DISPATCH = 9
32
- VT_ERROR = 10
33
- VT_BOOL = 11
34
- VT_VARIANT = 12
35
- VT_UNKNOWN = 13
36
- VT_DECIMAL = 14
37
- VT_I1 = 16
38
- VT_UI1 = 17
39
- VT_UI2 = 18
40
- VT_UI4 = 19
41
- VT_I8 = 20
42
- VT_UI8 = 21
43
- VT_INT = 22
44
- VT_UINT = 23
45
- VT_VOID = 24
46
- VT_HRESULT = 25
47
- VT_PTR = 26
48
- VT_SAFEARRAY = 27
49
- VT_CARRAY = 28
50
- VT_USERDEFINED = 29
51
- VT_LPSTR = 30
52
- VT_LPWSTR = 31
53
- VT_FILETIME = 64
54
- VT_BLOB = 65
55
- VT_STREAM = 66
56
- VT_STORAGE = 67
57
- VT_STREAMED_OBJECT = 68
58
- VT_STORED_OBJECT = 69
59
- VT_BLOB_OBJECT = 70
60
- VT_CF = 71
61
- VT_CLSID = 72
62
- VT_VECTOR = 0x1000
63
- VT_ARRAY = 0x2000
64
- VT_BYREF = 0x4000
65
- VT_RESERVED = 0x8000
66
- VT_ILLEGAL = 0xffff
67
- VT_ILLEGALMASKED = 0xfff
68
- VT_TYPEMASK = 0xff
69
-
70
- class PROPERTYKEY < FFI::Struct
71
- layout \
72
- :fmtid, GUID,
73
- :pid, :ulong
74
-
75
- def self.[](type, index)
76
- new.tap { |key|
77
- key[:fmtid].tap { |guid|
78
- guid[:Data1] = 0x00000000 + index
79
- guid[:Data2] = 0x7363
80
- guid[:Data3] = 0x696e
81
- [0x84, 0x41, 0x79, 0x8a, 0xcf, 0x5a, 0xeb, 0xb7].each_with_index { |part, i|
82
- guid[:Data4][i] = part
83
- }
84
- }
85
-
86
- key[:pid] = type
87
- }
88
- end
89
-
90
- def ==(other) Windows.memcmp(other, self, size) == 0 end
91
- end
92
-
93
- class LARGE_INTEGER < FFI::Union
94
- include AnonymousSupport
95
-
96
- layout \
97
- :_, Class.new(FFI::Struct) {
98
- layout \
99
- :LowPart, :ulong,
100
- :HighPart, :long
101
- },
102
-
103
- :QuadPart, :long_long
104
- end
105
-
106
- class ULARGE_INTEGER < FFI::Union
107
- include AnonymousSupport
108
-
109
- layout \
110
- :_, Class.new(FFI::Struct) {
111
- layout \
112
- :LowPart, :ulong,
113
- :HighPart, :ulong
114
- },
115
-
116
- :QuadPart, :ulong_long
117
- end
118
-
119
- class FILETIME < FFI::Struct
120
- layout \
121
- :dwLowDateTime, :ulong,
122
- :dwHighDateTime, :ulong
123
- end
124
-
125
- class BSTRBLOB < FFI::Struct
126
- layout \
127
- :cbSize, :ulong,
128
- :pData, :pointer
129
- end
130
-
131
- class BLOB < FFI::Struct
132
- layout \
133
- :cbSize, :ulong,
134
- :pBlobData, :pointer
135
- end
136
-
137
- class CA < FFI::Struct
138
- layout \
139
- :cElems, :ulong,
140
- :pElems, :pointer
141
- end
142
-
143
- class DECIMAL < FFI::Struct
144
- layout \
145
- :wReserved, :ushort,
146
- :scale, :uchar,
147
- :sign, :uchar,
148
- :Hi32, :ulong,
149
- :Lo64, :ulong_long
150
- end
151
-
152
- class VARIANT < FFI::Union
153
- include AnonymousSupport
154
-
155
- layout \
156
- :_, Class.new(FFI::Struct) {
157
- layout \
158
- :vt, :ushort,
159
- :wReserved1, :ushort,
160
- :wReserved2, :ushort,
161
- :wReserved3, :ushort,
162
- :_, Class.new(FFI::Union) {
163
- layout \
164
- :llVal, :long_long,
165
- :lVal, :long,
166
- :bVal, :uchar,
167
- :iVal, :short,
168
- :fltVal, :float,
169
- :dblVal, :double,
170
- :boolVal, :short,
171
- :bool, :short,
172
- :scode, :long,
173
- :cyVal, :ulong_long,
174
- :date, :double,
175
- :bstrVal, :pointer,
176
- :punkVal, :pointer,
177
- :pdispVal, :pointer,
178
- :parray, :pointer,
179
- :pbVal, :pointer,
180
- :piVal, :pointer,
181
- :plVal, :pointer,
182
- :pllVal, :pointer,
183
- :pfltVal, :pointer,
184
- :pdblVal, :pointer,
185
- :pboolVal, :pointer,
186
- :pbool, :pointer,
187
- :pscode, :pointer,
188
- :pcyVal, :pointer,
189
- :pdate, :pointer,
190
- :pbstrVal, :pointer,
191
- :ppunkVal, :pointer,
192
- :ppdispVal, :pointer,
193
- :pparrayv, :pointer,
194
- :pvarVal, :pointer,
195
- :byref, :pointer,
196
- :cVal, :char,
197
- :uiVal, :ushort,
198
- :ulVal, :ulong,
199
- :ullVal, :ulong_long,
200
- :intVal, :int,
201
- :uintVal, :uint,
202
- :pdecVal, :pointer,
203
- :pcVal, :pointer,
204
- :puiVal, :pointer,
205
- :pulVal, :pointer,
206
- :pullVal, :pointer,
207
- :pintVal, :pointer,
208
- :puintVal, :pointer,
209
- :BRECORD, Class.new(FFI::Struct) {
210
- layout \
211
- :pvRecord, :pointer,
212
- :pRecInfo, :pointer
213
- }
214
- }
215
- },
216
-
217
- :decVal, DECIMAL
218
- end
219
-
220
- class PROPVARIANT < FFI::Union
221
- include AnonymousSupport
222
-
223
- layout \
224
- :_, Class.new(FFI::Struct) {
225
- layout \
226
- :vt, :ushort,
227
- :wReserved1, :ushort,
228
- :wReserved2, :ushort,
229
- :wReserved3, :ushort,
230
- :_, Class.new(FFI::Union) {
231
- layout \
232
- :cVal, :char,
233
- :bVal, :uchar,
234
- :iVal, :short,
235
- :uiVal, :ushort,
236
- :lVal, :long,
237
- :ulVal, :ulong,
238
- :intVal, :int,
239
- :uintVal, :uint,
240
- :hVal, LARGE_INTEGER,
241
- :uhVal, ULARGE_INTEGER,
242
- :fltVal, :float,
243
- :dblVal, :double,
244
- :boolVal, :short,
245
- :bool, :short,
246
- :scode, :long,
247
- :cyVal, :long_long,
248
- :date, :double,
249
- :filetime, FILETIME,
250
- :puuid, :pointer,
251
- :pclipdata, :pointer,
252
- :bstrVal, :pointer,
253
- :bstrblobVal, BSTRBLOB,
254
- :blob, BLOB,
255
- :pszVal, :pointer,
256
- :pwszVal, :pointer,
257
- :punkVal, :pointer,
258
- :pdispVal, :pointer,
259
- :pStream, :pointer,
260
- :pStorage, :pointer,
261
- :pVersionedStream, :pointer,
262
- :parray, :pointer,
263
- :cac, CA,
264
- :caub, CA,
265
- :cai, CA,
266
- :caui, CA,
267
- :cal, CA,
268
- :caul, CA,
269
- :cah, CA,
270
- :cauh, CA,
271
- :caflt, CA,
272
- :cadbl, CA,
273
- :cabool, CA,
274
- :cascode, CA,
275
- :cacy, CA,
276
- :cadate, CA,
277
- :cafiletime, CA,
278
- :cauuid, CA,
279
- :caclipdata, CA,
280
- :cabstr, CA,
281
- :cabstrblob, CA,
282
- :calpstr, CA,
283
- :calpwstr, CA,
284
- :capropvar, CA,
285
- :pcVal, :pointer,
286
- :pbVal, :pointer,
287
- :piVal, :pointer,
288
- :puiVal, :pointer,
289
- :plVal, :pointer,
290
- :pulVal, :pointer,
291
- :pintVal, :pointer,
292
- :puintVal, :pointer,
293
- :pfltVal, :pointer,
294
- :pdblVal, :pointer,
295
- :pboolVal, :pointer,
296
- :pdecVal, :pointer,
297
- :pscode, :pointer,
298
- :pcyVal, :pointer,
299
- :pdate, :pointer,
300
- :pbstrVal, :pointer,
301
- :ppunkVal, :pointer,
302
- :ppdispVal, :pointer,
303
- :pparray, :pointer,
304
- :pvarVal, :pointer
305
- }
306
- },
307
-
308
- :decVal, DECIMAL
309
-
310
- def self.[](t, *v) new.tap { |var| var.send("#{t}=", *v) } end
311
-
312
- def bool; raise 'Wrong type tag.' unless self[:vt] == VT_BOOL; self[:boolVal] != 0 end
313
- def bool=(bool) self[:vt] = VT_BOOL; self[:boolVal] = (bool) ? -1 : 0 end
314
-
315
- def int; raise 'Wrong type tag.' unless self[:vt] == VT_I4; self[:intVal] end
316
- def int=(int) self[:vt] = VT_I4; self[:intVal] = int end
317
-
318
- def uint; raise 'Wrong type tag.' unless self[:vt] == VT_UI4; self[:uintVal] end
319
- def uint=(uint) self[:vt] = VT_UI4; self[:uintVal] = uint end
320
-
321
- def unknown
322
- raise 'Wrong type tag.' unless self[:vt] == VT_UNKNOWN
323
-
324
- yield Unknown.new(self[:punkVal])
325
- ensure
326
- Windows.PropVariantClear(self)
327
- end
328
-
329
- def unknown=(unknown) self[:vt] = VT_UNKNOWN; self[:punkVal] = unknown.pointer; unknown.AddRef end
330
-
331
- def wstring; raise 'Wrong type tag.' unless self[:vt] == VT_LPWSTR; Windows.WCSTOMBS(self[:pwszVal]) end
332
-
333
- def wstring=(string)
334
- self[:vt] = VT_LPWSTR
335
-
336
- FFI::MemoryPointer.new(:pointer) { |p|
337
- Windows.DetonateHresult(:SHStrDup, string, p)
338
-
339
- self[:pwszVal] = p.read_pointer
340
- }
341
- end
342
-
343
- def decimal
344
- raise 'Wrong type tag.' unless self[:vt] == VT_DECIMAL
345
-
346
- Rational(self[:decVal][:Lo64], 10 ** self[:decVal][:scale]) + self[:decVal][:Hi32]
347
- end
348
-
349
- def decimal=(decimal) self[:vt] = VT_DECIMAL; self[:decVal][:Lo64] = decimal end
350
- end
351
-
352
- attach_function :PropVariantClear, [:pointer], :long
353
-
354
- class SAFEARRAYBOUND < FFI::Struct
355
- layout \
356
- :cElements, :ulong,
357
- :lLbound, :long
358
- end
359
-
360
- class SAFEARRAY < FFI::Struct
361
- layout \
362
- :cDims, :ushort,
363
- :fFeatures, :ushort,
364
- :cbElements, :ulong,
365
- :cLocks, :ulong,
366
- :pvData, :pointer,
367
- :rgsabound, [SAFEARRAYBOUND, 1]
368
- end
369
-
370
- ffi_lib 'oleaut32'
371
- ffi_convention :stdcall
372
-
373
- attach_function :SysAllocString, [:buffer_in], :pointer
374
- attach_function :SysFreeString, [:pointer], :void
375
- attach_function :SysStringLen, [:pointer], :uint
376
-
377
- attach_function :SafeArrayCreateVector, [:ushort, :long, :uint], :pointer
378
- attach_function :SafeArrayDestroy, [:pointer], :long
379
- attach_function :SafeArrayAccessData, [:pointer, :pointer], :long
380
- attach_function :SafeArrayUnaccessData, [:pointer], :long
381
-
382
- OLEIVERB_PRIMARY = 0
383
- OLEIVERB_SHOW = -1
384
- OLEIVERB_OPEN = -2
385
- OLEIVERB_HIDE = -3
386
- OLEIVERB_UIACTIVATE = -4
387
- OLEIVERB_INPLACEACTIVATE = -5
388
- OLEIVERB_DISCARDUNDOSTATE = -6
389
-
390
- IOleWindow = COM::Interface[IUnknown,
391
- GUID['00000114-0000-0000-C000-000000000046'],
392
-
393
- GetWindow: [[:pointer], :long],
394
- ContextSensitiveHelp: [[:int], :long]
395
- ]
396
-
397
- OleWindow = COM::Instance[IOleWindow]
398
-
399
- IOleInPlaceObject = COM::Interface[IOleWindow,
400
- GUID['00000113-0000-0000-C000-000000000046'],
401
-
402
- InPlaceDeactivate: [[], :long],
403
- UIDeactivate: [[], :long],
404
- SetObjectRects: [[:pointer, :pointer], :long],
405
- ReactivateAndUndo: [[], :long]
406
- ]
407
-
408
- OleInPlaceObject = COM::Instance[IOleInPlaceObject]
409
-
410
- IOleInPlaceSite = COM::Interface[IOleWindow,
411
- GUID['00000119-0000-0000-C000-000000000046'],
412
-
413
- CanInPlaceActivate: [[], :long],
414
- OnInPlaceActivate: [[], :long],
415
- OnUIActivate: [[], :long],
416
- GetWindowContext: [[:pointer, :pointer, :pointer, :pointer, :pointer], :long],
417
- Scroll: [[:long_long], :long],
418
- OnUIDeactivate: [[:int], :long],
419
- OnInPlaceDeactivate: [[], :long],
420
- DiscardUndoState: [[], :long],
421
- DeactivateAndUndo: [[], :long],
422
- OnPosRectChange: [[:pointer], :long]
423
- ]
424
-
425
- OleInPlaceSite = COM::Callback[IOleInPlaceSite]
426
-
427
- IOleClientSite = COM::Interface[IUnknown,
428
- GUID['00000118-0000-0000-C000-000000000046'],
429
-
430
- SaveObject: [[], :long],
431
- GetMoniker: [[:ulong, :ulong, :pointer], :long],
432
- GetContainer: [[:pointer], :long],
433
- ShowObject: [[], :long],
434
- OnShowWindow: [[:int], :long],
435
- RequestNewObjectLayout: [[], :long]
436
- ]
437
-
438
- OleClientSite = COM::Callback[IOleClientSite]
439
-
440
- OLEGETMONIKER_ONLYIFTHERE = 1
441
- OLEGETMONIKER_FORCEASSIGN = 2
442
- OLEGETMONIKER_UNASSIGN = 3
443
- OLEGETMONIKER_TEMPFORUSER = 4
444
-
445
- OLEWHICHMK_CONTAINER = 1
446
- OLEWHICHMK_OBJREL = 2
447
- OLEWHICHMK_OBJFULL = 3
448
-
449
- USERCLASSTYPE_FULL = 1
450
- USERCLASSTYPE_SHORT = 2
451
- USERCLASSTYPE_APPNAME = 3
452
-
453
- OLEMISC_RECOMPOSEONRESIZE = 0x00000001
454
- OLEMISC_ONLYICONIC = 0x00000002
455
- OLEMISC_INSERTNOTREPLACE = 0x00000004
456
- OLEMISC_STATIC = 0x00000008
457
- OLEMISC_CANTLINKINSIDE = 0x00000010
458
- OLEMISC_CANLINKBYOLE1 = 0x00000020
459
- OLEMISC_ISLINKOBJECT = 0x00000040
460
- OLEMISC_INSIDEOUT = 0x00000080
461
- OLEMISC_ACTIVATEWHENVISIBLE = 0x00000100
462
- OLEMISC_RENDERINGISDEVICEINDEPENDENT = 0x00000200
463
- OLEMISC_INVISIBLEATRUNTIME = 0x00000400
464
- OLEMISC_ALWAYSRUN = 0x00000800
465
- OLEMISC_ACTSLIKEBUTTON = 0x00001000
466
- OLEMISC_ACTSLIKELABEL = 0x00002000
467
- OLEMISC_NOUIACTIVATE = 0x00004000
468
- OLEMISC_ALIGNABLE = 0x00008000
469
- OLEMISC_SIMPLEFRAME = 0x00010000
470
- OLEMISC_SETCLIENTSITEFIRST = 0x00020000
471
- OLEMISC_IMEMODE = 0x00040000
472
- OLEMISC_IGNOREACTIVATEWHENVISIBLE = 0x00080000
473
- OLEMISC_WANTSTOMENUMERGE = 0x00100000
474
- OLEMISC_SUPPORTSMULTILEVELUNDO = 0x00200000
475
-
476
- OLECLOSE_SAVEIFDIRTY = 0
477
- OLECLOSE_NOSAVE = 1
478
- OLECLOSE_PROMPTSAVE = 2
479
-
480
- IOleObject = COM::Interface[IUnknown,
481
- GUID['00000112-0000-0000-C000-000000000046'],
482
-
483
- SetClientSite: [[:pointer], :long],
484
- GetClientSite: [[:pointer], :long],
485
- SetHostNames: [[:pointer, :pointer], :long],
486
- Close: [[:ulong], :long],
487
- SetMoniker: [[:ulong, :pointer], :long],
488
- GetMoniker: [[:ulong, :ulong, :pointer], :long],
489
- InitFromData: [[:pointer, :int, :ulong], :long],
490
- GetClipboardData: [[:ulong, :pointer], :long],
491
- DoVerb: [[:long, :pointer, :pointer, :long, :pointer, :pointer], :long],
492
- EnumVerbs: [[:pointer], :long],
493
- Update: [[], :long],
494
- IsUpToDate: [[], :long],
495
- GetUserClassID: [[:pointer], :long],
496
- GetUserType: [[:ulong, :pointer], :long],
497
- SetExtent: [[:ulong, :pointer], :long],
498
- GetExtent: [[:ulong, :pointer], :long],
499
- Advise: [[:pointer, :pointer], :long],
500
- Unadvise: [[:ulong], :long],
501
- EnumAdvise: [[:pointer], :long],
502
- GetMiscStatus: [[:ulong, :pointer], :long],
503
- SetColorScheme: [[:pointer], :long]
504
- ]
505
-
506
- OleObject = COM::Instance[IOleObject]
507
-
508
- class PARAMDATA < FFI::Struct
509
- layout \
510
- :szName, :pointer,
511
- :vt, :ushort
512
- end
513
-
514
- CC_FASTCALL = 0
515
- CC_CDECL = 1
516
- CC_MSCPASCAL = CC_CDECL + 1
517
- CC_PASCAL = CC_MSCPASCAL
518
- CC_MACPASCAL = CC_PASCAL + 1
519
- CC_STDCALL = CC_MACPASCAL + 1
520
- CC_FPFASTCALL = CC_STDCALL + 1
521
- CC_SYSCALL = CC_FPFASTCALL + 1
522
- CC_MPWCDECL = CC_SYSCALL + 1
523
- CC_MPWPASCAL = CC_MPWCDECL + 1
524
- CC_MAX = CC_MPWPASCAL + 1
525
-
526
- DISPATCH_METHOD = 0x1
527
- DISPATCH_PROPERTYGET = 0x2
528
- DISPATCH_PROPERTYPUT = 0x4
529
- DISPATCH_PROPERTYPUTREF = 0x8
530
-
531
- class METHODDATA < FFI::Struct
532
- layout \
533
- :szName, :pointer,
534
- :ppdata, :pointer,
535
- :dispid, :long,
536
- :iMeth, :uint,
537
- :cc, :uint,
538
- :cArgs, :uint,
539
- :wFlags, :ushort,
540
- :vtReturn, :ushort
541
- end
542
-
543
- class INTERFACEDATA < FFI::Struct
544
- layout \
545
- :pmethdata, :pointer,
546
- :cMembers, :uint
547
- end
548
-
549
- attach_function :CreateDispTypeInfo, [:pointer, :ulong, :pointer], :long
550
-
551
- class DISPPARAMS < FFI::Struct
552
- layout \
553
- :rgvarg, :pointer,
554
- :rgdispidNamedArgs, :pointer,
555
- :cArgs, :uint,
556
- :cNamedArgs, :uint
557
- end
558
-
559
- attach_function :DispInvoke, [:pointer, :pointer, :long, :ushort, :pointer, :pointer, :pointer, :pointer], :long
560
- end
561
- end
1
+ require_relative 'ole/PropVariant'