fzeet 0.6.5 → 0.6.6

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 (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'