fzeet 0.6.3 → 0.6.4
Sign up to get free protection for your applications and to get access to all the features.
- data/examples/Control/ExplorerBrowser.rbw +32 -0
- data/examples/Control/WebBrowser.rbw +33 -0
- data/examples/Dialog/FileDialog.rbw +3 -1
- data/examples/MDI.rbw +112 -10
- data/examples/Raw/UIRibbon/Command.rbw +27 -27
- data/examples/Raw/UIRibbon/Minimal.rbw +18 -18
- data/lib/fzeet/Control/Common.rb +18 -3
- data/lib/fzeet/Control/ExplorerBrowser.rb +66 -0
- data/lib/fzeet/Control/Scintilla.rb +8 -0
- data/lib/fzeet/Control/WebBrowser.rb +174 -0
- data/lib/fzeet/Control.rb +2 -0
- data/lib/fzeet/Dialog/FileDialog.rb +7 -1
- data/lib/fzeet/Dialog/ShellFileDialog.rb +12 -0
- data/lib/fzeet/Window/Common.rb +36 -4
- data/lib/fzeet/Window/MDI.rb +12 -0
- data/lib/fzeet/windows/com.rb +33 -1
- data/lib/fzeet/windows/kernel.rb +2 -0
- data/lib/fzeet/windows/ole - Copy.rb +446 -0
- data/lib/fzeet/windows/ole.rb +187 -0
- data/lib/fzeet/windows/shdocvw - Copy.rb +171 -0
- data/lib/fzeet/windows/shdocvw.rb +102 -0
- data/lib/fzeet/windows/shell/Common.rb +181 -0
- data/lib/fzeet/windows/user/Window.rb +11 -0
- data/lib/fzeet/windows.rb +1 -0
- metadata +11 -4
data/lib/fzeet/windows/ole.rb
CHANGED
@@ -16,6 +16,7 @@ module Fzeet
|
|
16
16
|
|
17
17
|
module_function :InitializeOle
|
18
18
|
|
19
|
+
attach_function :CoTaskMemAlloc, [:ulong], :pointer
|
19
20
|
attach_function :CoTaskMemFree, [:pointer], :void
|
20
21
|
|
21
22
|
VT_EMPTY = 0
|
@@ -281,5 +282,191 @@ module Fzeet
|
|
281
282
|
end
|
282
283
|
|
283
284
|
attach_function :PropVariantClear, [:pointer], :long
|
285
|
+
|
286
|
+
ffi_lib 'oleaut32'
|
287
|
+
ffi_convention :stdcall
|
288
|
+
|
289
|
+
attach_function :SysAllocString, [:buffer_in], :pointer
|
290
|
+
attach_function :SysFreeString, [:pointer], :void
|
291
|
+
attach_function :SysStringLen, [:pointer], :uint
|
292
|
+
|
293
|
+
OLEIVERB_PRIMARY = 0
|
294
|
+
OLEIVERB_SHOW = -1
|
295
|
+
OLEIVERB_OPEN = -2
|
296
|
+
OLEIVERB_HIDE = -3
|
297
|
+
OLEIVERB_UIACTIVATE = -4
|
298
|
+
OLEIVERB_INPLACEACTIVATE = -5
|
299
|
+
OLEIVERB_DISCARDUNDOSTATE = -6
|
300
|
+
|
301
|
+
IOleWindow = COM::Interface[IUnknown,
|
302
|
+
GUID['00000114-0000-0000-C000-000000000046'],
|
303
|
+
|
304
|
+
GetWindow: [[:pointer], :long],
|
305
|
+
ContextSensitiveHelp: [[:int], :long]
|
306
|
+
]
|
307
|
+
|
308
|
+
OleWindow = COM::Instance[IOleWindow]
|
309
|
+
|
310
|
+
IOleInPlaceObject = COM::Interface[IOleWindow,
|
311
|
+
GUID['00000113-0000-0000-C000-000000000046'],
|
312
|
+
|
313
|
+
InPlaceDeactivate: [[], :long],
|
314
|
+
UIDeactivate: [[], :long],
|
315
|
+
SetObjectRects: [[:pointer, :pointer], :long],
|
316
|
+
ReactivateAndUndo: [[], :long]
|
317
|
+
]
|
318
|
+
|
319
|
+
OleInPlaceObject = COM::Instance[IOleInPlaceObject]
|
320
|
+
|
321
|
+
IOleInPlaceSite = COM::Interface[IOleWindow,
|
322
|
+
GUID['00000119-0000-0000-C000-000000000046'],
|
323
|
+
|
324
|
+
CanInPlaceActivate: [[], :long],
|
325
|
+
OnInPlaceActivate: [[], :long],
|
326
|
+
OnUIActivate: [[], :long],
|
327
|
+
GetWindowContext: [[:pointer, :pointer, :pointer, :pointer, :pointer], :long],
|
328
|
+
Scroll: [[:long_long], :long],
|
329
|
+
OnUIDeactivate: [[:int], :long],
|
330
|
+
OnInPlaceDeactivate: [[], :long],
|
331
|
+
DiscardUndoState: [[], :long],
|
332
|
+
DeactivateAndUndo: [[], :long],
|
333
|
+
OnPosRectChange: [[:pointer], :long]
|
334
|
+
]
|
335
|
+
|
336
|
+
OleInPlaceSite = COM::Callback[IOleInPlaceSite]
|
337
|
+
|
338
|
+
IOleClientSite = COM::Interface[IUnknown,
|
339
|
+
GUID['00000118-0000-0000-C000-000000000046'],
|
340
|
+
|
341
|
+
SaveObject: [[], :long],
|
342
|
+
GetMoniker: [[:ulong, :ulong, :pointer], :long],
|
343
|
+
GetContainer: [[:pointer], :long],
|
344
|
+
ShowObject: [[], :long],
|
345
|
+
OnShowWindow: [[:int], :long],
|
346
|
+
RequestNewObjectLayout: [[], :long]
|
347
|
+
]
|
348
|
+
|
349
|
+
OleClientSite = COM::Callback[IOleClientSite]
|
350
|
+
|
351
|
+
OLEGETMONIKER_ONLYIFTHERE = 1
|
352
|
+
OLEGETMONIKER_FORCEASSIGN = 2
|
353
|
+
OLEGETMONIKER_UNASSIGN = 3
|
354
|
+
OLEGETMONIKER_TEMPFORUSER = 4
|
355
|
+
|
356
|
+
OLEWHICHMK_CONTAINER = 1
|
357
|
+
OLEWHICHMK_OBJREL = 2
|
358
|
+
OLEWHICHMK_OBJFULL = 3
|
359
|
+
|
360
|
+
USERCLASSTYPE_FULL = 1
|
361
|
+
USERCLASSTYPE_SHORT = 2
|
362
|
+
USERCLASSTYPE_APPNAME = 3
|
363
|
+
|
364
|
+
OLEMISC_RECOMPOSEONRESIZE = 0x00000001
|
365
|
+
OLEMISC_ONLYICONIC = 0x00000002
|
366
|
+
OLEMISC_INSERTNOTREPLACE = 0x00000004
|
367
|
+
OLEMISC_STATIC = 0x00000008
|
368
|
+
OLEMISC_CANTLINKINSIDE = 0x00000010
|
369
|
+
OLEMISC_CANLINKBYOLE1 = 0x00000020
|
370
|
+
OLEMISC_ISLINKOBJECT = 0x00000040
|
371
|
+
OLEMISC_INSIDEOUT = 0x00000080
|
372
|
+
OLEMISC_ACTIVATEWHENVISIBLE = 0x00000100
|
373
|
+
OLEMISC_RENDERINGISDEVICEINDEPENDENT = 0x00000200
|
374
|
+
OLEMISC_INVISIBLEATRUNTIME = 0x00000400
|
375
|
+
OLEMISC_ALWAYSRUN = 0x00000800
|
376
|
+
OLEMISC_ACTSLIKEBUTTON = 0x00001000
|
377
|
+
OLEMISC_ACTSLIKELABEL = 0x00002000
|
378
|
+
OLEMISC_NOUIACTIVATE = 0x00004000
|
379
|
+
OLEMISC_ALIGNABLE = 0x00008000
|
380
|
+
OLEMISC_SIMPLEFRAME = 0x00010000
|
381
|
+
OLEMISC_SETCLIENTSITEFIRST = 0x00020000
|
382
|
+
OLEMISC_IMEMODE = 0x00040000
|
383
|
+
OLEMISC_IGNOREACTIVATEWHENVISIBLE = 0x00080000
|
384
|
+
OLEMISC_WANTSTOMENUMERGE = 0x00100000
|
385
|
+
OLEMISC_SUPPORTSMULTILEVELUNDO = 0x00200000
|
386
|
+
|
387
|
+
OLECLOSE_SAVEIFDIRTY = 0
|
388
|
+
OLECLOSE_NOSAVE = 1
|
389
|
+
OLECLOSE_PROMPTSAVE = 2
|
390
|
+
|
391
|
+
IOleObject = COM::Interface[IUnknown,
|
392
|
+
GUID['00000112-0000-0000-C000-000000000046'],
|
393
|
+
|
394
|
+
SetClientSite: [[:pointer], :long],
|
395
|
+
GetClientSite: [[:pointer], :long],
|
396
|
+
SetHostNames: [[:pointer, :pointer], :long],
|
397
|
+
Close: [[:ulong], :long],
|
398
|
+
SetMoniker: [[:ulong, :pointer], :long],
|
399
|
+
GetMoniker: [[:ulong, :ulong, :pointer], :long],
|
400
|
+
InitFromData: [[:pointer, :int, :ulong], :long],
|
401
|
+
GetClipboardData: [[:ulong, :pointer], :long],
|
402
|
+
DoVerb: [[:long, :pointer, :pointer, :long, :pointer, :pointer], :long],
|
403
|
+
EnumVerbs: [[:pointer], :long],
|
404
|
+
Update: [[], :long],
|
405
|
+
IsUpToDate: [[], :long],
|
406
|
+
GetUserClassID: [[:pointer], :long],
|
407
|
+
GetUserType: [[:ulong, :pointer], :long],
|
408
|
+
SetExtent: [[:ulong, :pointer], :long],
|
409
|
+
GetExtent: [[:ulong, :pointer], :long],
|
410
|
+
Advise: [[:pointer, :pointer], :long],
|
411
|
+
Unadvise: [[:ulong], :long],
|
412
|
+
EnumAdvise: [[:pointer], :long],
|
413
|
+
GetMiscStatus: [[:ulong, :pointer], :long],
|
414
|
+
SetColorScheme: [[:pointer], :long]
|
415
|
+
]
|
416
|
+
|
417
|
+
OleObject = COM::Instance[IOleObject]
|
418
|
+
|
419
|
+
class PARAMDATA < FFI::Struct
|
420
|
+
layout \
|
421
|
+
:szName, :pointer,
|
422
|
+
:vt, :ushort
|
423
|
+
end
|
424
|
+
|
425
|
+
CC_FASTCALL = 0
|
426
|
+
CC_CDECL = 1
|
427
|
+
CC_MSCPASCAL = CC_CDECL + 1
|
428
|
+
CC_PASCAL = CC_MSCPASCAL
|
429
|
+
CC_MACPASCAL = CC_PASCAL + 1
|
430
|
+
CC_STDCALL = CC_MACPASCAL + 1
|
431
|
+
CC_FPFASTCALL = CC_STDCALL + 1
|
432
|
+
CC_SYSCALL = CC_FPFASTCALL + 1
|
433
|
+
CC_MPWCDECL = CC_SYSCALL + 1
|
434
|
+
CC_MPWPASCAL = CC_MPWCDECL + 1
|
435
|
+
CC_MAX = CC_MPWPASCAL + 1
|
436
|
+
|
437
|
+
DISPATCH_METHOD = 0x1
|
438
|
+
DISPATCH_PROPERTYGET = 0x2
|
439
|
+
DISPATCH_PROPERTYPUT = 0x4
|
440
|
+
DISPATCH_PROPERTYPUTREF = 0x8
|
441
|
+
|
442
|
+
class METHODDATA < FFI::Struct
|
443
|
+
layout \
|
444
|
+
:szName, :pointer,
|
445
|
+
:ppdata, :pointer,
|
446
|
+
:dispid, :long,
|
447
|
+
:iMeth, :uint,
|
448
|
+
:cc, :uint,
|
449
|
+
:cArgs, :uint,
|
450
|
+
:wFlags, :ushort,
|
451
|
+
:vtReturn, :ushort
|
452
|
+
end
|
453
|
+
|
454
|
+
class INTERFACEDATA < FFI::Struct
|
455
|
+
layout \
|
456
|
+
:pmethdata, :pointer,
|
457
|
+
:cMembers, :uint
|
458
|
+
end
|
459
|
+
|
460
|
+
attach_function :CreateDispTypeInfo, [:pointer, :ulong, :pointer], :long
|
461
|
+
|
462
|
+
class DISPPARAMS < FFI::Struct
|
463
|
+
layout \
|
464
|
+
:rgvarg, :pointer,
|
465
|
+
:rgdispidNamedArgs, :pointer,
|
466
|
+
:cArgs, :uint,
|
467
|
+
:cNamedArgs, :uint
|
468
|
+
end
|
469
|
+
|
470
|
+
attach_function :DispInvoke, [:pointer, :pointer, :long, :ushort, :pointer, :pointer, :pointer, :pointer], :long
|
284
471
|
end
|
285
472
|
end
|
@@ -0,0 +1,171 @@
|
|
1
|
+
require_relative 'com'
|
2
|
+
|
3
|
+
module Fzeet
|
4
|
+
module Windows
|
5
|
+
ffi_lib 'shdocvw'
|
6
|
+
ffi_convention :stdcall
|
7
|
+
|
8
|
+
NavOpenInNewWindow = 0x0001
|
9
|
+
NavNoHistory = 0x0002
|
10
|
+
NavNoReadFromCache = 0x0004
|
11
|
+
NavNoWriteToCache = 0x0008
|
12
|
+
NavAllowAutosearch = 0x0010
|
13
|
+
NavBrowserBar = 0x0020
|
14
|
+
NavHyperlink = 0x0040
|
15
|
+
NavEnforceRestricted = 0x0080
|
16
|
+
NavNewWindowsManaged = 0x0100
|
17
|
+
NavUntrustedForDownload = 0x0200
|
18
|
+
NavTrustedForActiveX = 0x0400
|
19
|
+
NavOpenInNewTab = 0x0800
|
20
|
+
NavOpenInBackgroundTab = 0x1000
|
21
|
+
NavKeepWordWheelText = 0x2000
|
22
|
+
NavVirtualTab = 0x4000
|
23
|
+
NavBlockRedirectsXDomain = 0x8000
|
24
|
+
NavOpenNewForegroundTab = 0x10000
|
25
|
+
|
26
|
+
REFRESH_NORMAL = 0
|
27
|
+
REFRESH_IFEXPIRED = 1
|
28
|
+
REFRESH_COMPLETELY = 3
|
29
|
+
|
30
|
+
IWebBrowser = COM::Interface[IDispatch,
|
31
|
+
GUID['EAB22AC1-30C1-11CF-A7EB-0000C05BAE0B'],
|
32
|
+
|
33
|
+
GoBack: [[], :long],
|
34
|
+
GoForward: [[], :long],
|
35
|
+
GoHome: [[], :long],
|
36
|
+
GoSearch: [[], :long],
|
37
|
+
Navigate: [[:pointer, :pointer, :pointer, :pointer, :pointer], :long],
|
38
|
+
Refresh: [[], :long],
|
39
|
+
Refresh2: [[:pointer], :long],
|
40
|
+
Stop: [[], :long],
|
41
|
+
get_Application: [[:pointer], :long],
|
42
|
+
get_Parent: [[:pointer], :long],
|
43
|
+
get_Container: [[:pointer], :long],
|
44
|
+
get_Document: [[:pointer], :long],
|
45
|
+
get_TopLevelContainer: [[:pointer], :long],
|
46
|
+
get_Type: [[:pointer], :long],
|
47
|
+
get_Left: [[:pointer], :long],
|
48
|
+
put_Left: [[:long], :long],
|
49
|
+
get_Top: [[:pointer], :long],
|
50
|
+
put_Top: [[:long], :long],
|
51
|
+
get_Width: [[:pointer], :long],
|
52
|
+
put_Width: [[:long], :long],
|
53
|
+
get_Height: [[:pointer], :long],
|
54
|
+
put_Height: [[:long], :long],
|
55
|
+
get_LocationName: [[:pointer], :long],
|
56
|
+
get_LocationURL: [[:pointer], :long],
|
57
|
+
get_Busy: [[:pointer], :long]
|
58
|
+
]
|
59
|
+
|
60
|
+
WebBrowser = COM::Factory[IWebBrowser, GUID['EAB22AC3-30C1-11CF-A7EB-0000C05BAE0B']]
|
61
|
+
|
62
|
+
DWebBrowserEvents = COM::Interface[IDispatch,
|
63
|
+
GUID['EAB22AC2-30C1-11CF-A7EB-0000C05BAE0B'],
|
64
|
+
|
65
|
+
BeforeNavigate: [[:pointer, :long, :pointer, :pointer, :pointer, :pointer], :long],
|
66
|
+
NavigateComplete: [[:pointer], :long],
|
67
|
+
StatusTextChange: [[:pointer], :long],
|
68
|
+
ProgressChange: [[:long, :long], :long],
|
69
|
+
DownloadComplete: [[], :long],
|
70
|
+
CommandStateChange: [[:long, :short], :long],
|
71
|
+
DownloadBegin: [[], :long],
|
72
|
+
NewWindow: [[:pointer, :long, :pointer, :pointer, :pointer, :pointer], :long],
|
73
|
+
TitleChange: [[:pointer], :long],
|
74
|
+
FrameBeforeNavigate: [[:pointer, :long, :pointer, :pointer, :pointer, :pointer], :long],
|
75
|
+
FrameNavigateComplete: [[:pointer], :long],
|
76
|
+
FrameNewWindow: [[:pointer, :long, :pointer, :pointer, :pointer, :pointer], :long],
|
77
|
+
Quit: [[:pointer], :long],
|
78
|
+
WindowMove: [[], :long],
|
79
|
+
WindowResize: [[], :long],
|
80
|
+
WindowActivate: [[], :long],
|
81
|
+
PropertyChange: [[:pointer], :long]
|
82
|
+
]
|
83
|
+
|
84
|
+
WebBrowserEvents = COM::Callback[DWebBrowserEvents]
|
85
|
+
|
86
|
+
class DOCHOSTUIINFO < FFI::Struct
|
87
|
+
layout \
|
88
|
+
:cbSize, :ulong,
|
89
|
+
:dwFlags, :ulong,
|
90
|
+
:dwDoubleClick, :ulong,
|
91
|
+
:pchHostCss, :pointer,
|
92
|
+
:pchHostNS, :pointer
|
93
|
+
end
|
94
|
+
|
95
|
+
IDocHostUIHandler = COM::Interface[IUnknown,
|
96
|
+
GUID['bd3f23c0-d43e-11cf-893b-00aa00bdce1a'],
|
97
|
+
|
98
|
+
ShowContextMenu: [[:ulong, :pointer, :pointer, :pointer], :long],
|
99
|
+
GetHostInfo: [[:pointer], :long],
|
100
|
+
ShowUI: [[:ulong, :pointer, :pointer, :pointer, :pointer], :long],
|
101
|
+
HideUI: [[], :long],
|
102
|
+
UpdateUI: [[], :long],
|
103
|
+
EnableModeless: [[:int], :long],
|
104
|
+
OnDocWindowActivate: [[:int], :long],
|
105
|
+
OnFrameWindowActivate: [[:int], :long],
|
106
|
+
ResizeBorder: [[:pointer, :pointer, :int], :long],
|
107
|
+
TranslateAccelerator: [[:pointer, :pointer, :ulong], :long],
|
108
|
+
GetOptionKeyPath: [[:pointer, :ulong], :long],
|
109
|
+
GetDropTarget: [[:pointer, :pointer], :long],
|
110
|
+
GetExternal: [[:pointer], :long],
|
111
|
+
TranslateUrl: [[:ulong, :pointer, :pointer], :long],
|
112
|
+
FilterDataObject: [[:pointer, :pointer], :long]
|
113
|
+
]
|
114
|
+
|
115
|
+
DocHostUIHandler = COM::Callback[IDocHostUIHandler]
|
116
|
+
|
117
|
+
#~ IWebBrowserApp = COM::Interface[IWebBrowser,
|
118
|
+
#~ GUID['0002DF05-0000-0000-C000-000000000046'],
|
119
|
+
|
120
|
+
#~ ClientToWindow: [[:pointer, :pointer], :long],
|
121
|
+
#~ PutProperty: [[:pointer, PROPVARIANT], :long],
|
122
|
+
#~ GetProperty: [[:pointer, :pointer], :long],
|
123
|
+
#~ get_Name: [[:pointer], :long],
|
124
|
+
#~ get_HWND: [[:pointer], :long],
|
125
|
+
#~ get_FullName: [[:pointer], :long],
|
126
|
+
#~ get_Path: [[:pointer], :long],
|
127
|
+
#~ get_Visible: [[:pointer], :long],
|
128
|
+
#~ put_Visible: [[:short], :long],
|
129
|
+
#~ get_StatusBar: [[:pointer], :long],
|
130
|
+
#~ put_StatusBar: [[:short], :long],
|
131
|
+
#~ get_StatusText: [[:pointer], :long],
|
132
|
+
#~ put_StatusText: [[:pointer], :long],
|
133
|
+
#~ get_ToolBar: [[:pointer], :long],
|
134
|
+
#~ put_ToolBar: [[:int], :long],
|
135
|
+
#~ get_MenuBar: [[:pointer], :long],
|
136
|
+
#~ put_MenuBar: [[:short], :long],
|
137
|
+
#~ get_FullScreen: [[:pointer], :long],
|
138
|
+
#~ put_FullScreen: [[:short], :long]
|
139
|
+
#~ ]
|
140
|
+
|
141
|
+
#~ IWebBrowser2 = COM::Interface[IWebBrowserApp,
|
142
|
+
#~ GUID['D30C1661-CDAF-11d0-8A3E-00C04FC9E26E'],
|
143
|
+
|
144
|
+
#~ Quit: [[], :long],
|
145
|
+
|
146
|
+
#~ HRESULT Navigate2([in] VARIANT * URL,
|
147
|
+
#~ HRESULT QueryStatusWB([in] OLECMDID cmdID, [out, retval] OLECMDF * pcmdf);
|
148
|
+
#~ HRESULT ExecWB([in] OLECMDID cmdID, [in] OLECMDEXECOPT cmdexecopt, [in, optional, unique] VARIANT * pvaIn, [in, out, optional, unique] VARIANT * pvaOut);
|
149
|
+
#~ HRESULT ShowBrowserBar( [in] VARIANT * pvaClsid,
|
150
|
+
#~ [in, optional, unique] VARIANT * pvarShow,
|
151
|
+
#~ [in, optional, unique] VARIANT * pvarSize );
|
152
|
+
#~ HRESULT ReadyState([retval, out] READYSTATE * plReadyState);
|
153
|
+
#~ HRESULT Offline([out, retval] VARIANT_BOOL * pbOffline);
|
154
|
+
#~ HRESULT Offline([in] VARIANT_BOOL bOffline);
|
155
|
+
#~ HRESULT Silent([out, retval] VARIANT_BOOL * pbSilent);
|
156
|
+
#~ HRESULT Silent([in] VARIANT_BOOL bSilent);
|
157
|
+
#~ HRESULT RegisterAsBrowser([out, retval] VARIANT_BOOL * pbRegister);
|
158
|
+
#~ HRESULT RegisterAsBrowser([in] VARIANT_BOOL bRegister);
|
159
|
+
#~ HRESULT RegisterAsDropTarget([out, retval] VARIANT_BOOL * pbRegister);
|
160
|
+
#~ HRESULT RegisterAsDropTarget([in] VARIANT_BOOL bRegister);
|
161
|
+
#~ HRESULT TheaterMode([out, retval] VARIANT_BOOL * pbRegister);
|
162
|
+
#~ HRESULT TheaterMode([in] VARIANT_BOOL bRegister);
|
163
|
+
#~ HRESULT AddressBar([out, retval] VARIANT_BOOL * Value);
|
164
|
+
#~ HRESULT AddressBar([in] VARIANT_BOOL Value);
|
165
|
+
#~ HRESULT Resizable([out, retval] VARIANT_BOOL * Value);
|
166
|
+
#~ HRESULT Resizable([in] VARIANT_BOOL Value);
|
167
|
+
#~ ]
|
168
|
+
|
169
|
+
#~ WebBrowser = COM::Factory[IWebBrowser, GUID['8856F961-340A-11D0-A96B-00C04FD705A2']]
|
170
|
+
end
|
171
|
+
end
|
@@ -0,0 +1,102 @@
|
|
1
|
+
require_relative 'com'
|
2
|
+
|
3
|
+
module Fzeet
|
4
|
+
module Windows
|
5
|
+
ffi_lib 'shdocvw'
|
6
|
+
ffi_convention :stdcall
|
7
|
+
|
8
|
+
DISPID_BEFORENAVIGATE = 100
|
9
|
+
DISPID_NAVIGATECOMPLETE = 101
|
10
|
+
DISPID_STATUSTEXTCHANGE = 102
|
11
|
+
DISPID_QUIT = 103
|
12
|
+
DISPID_DOWNLOADCOMPLETE = 104
|
13
|
+
DISPID_COMMANDSTATECHANGE = 105
|
14
|
+
DISPID_DOWNLOADBEGIN = 106
|
15
|
+
DISPID_NEWWINDOW = 107
|
16
|
+
DISPID_PROGRESSCHANGE = 108
|
17
|
+
DISPID_WINDOWMOVE = 109
|
18
|
+
DISPID_WINDOWRESIZE = 110
|
19
|
+
DISPID_WINDOWACTIVATE = 111
|
20
|
+
DISPID_PROPERTYCHANGE = 112
|
21
|
+
DISPID_TITLECHANGE = 113
|
22
|
+
DISPID_TITLEICONCHANGE = 114
|
23
|
+
|
24
|
+
DWebBrowserEvents = COM::Interface[IDispatch,
|
25
|
+
GUID['EAB22AC2-30C1-11CF-A7EB-0000C05BAE0B'],
|
26
|
+
|
27
|
+
BeforeNavigate: [[:pointer, :long, :pointer, :pointer, :pointer, :pointer], :void],
|
28
|
+
NavigateComplete: [[:pointer], :void],
|
29
|
+
StatusTextChange: [[:pointer], :void],
|
30
|
+
ProgressChange: [[:long, :long], :void],
|
31
|
+
DownloadComplete: [[], :void],
|
32
|
+
CommandStateChange: [[:long, :short], :void],
|
33
|
+
DownloadBegin: [[], :void],
|
34
|
+
NewWindow: [[:pointer, :long, :pointer, :pointer, :pointer, :pointer], :void],
|
35
|
+
TitleChange: [[:pointer], :void],
|
36
|
+
FrameBeforeNavigate: [[:pointer, :long, :pointer, :pointer, :pointer, :pointer], :void],
|
37
|
+
FrameNavigateComplete: [[:pointer], :void],
|
38
|
+
FrameNewWindow: [[:pointer, :long, :pointer, :pointer, :pointer, :pointer], :void],
|
39
|
+
Quit: [[:pointer], :void],
|
40
|
+
WindowMove: [[], :void],
|
41
|
+
WindowResize: [[], :void],
|
42
|
+
WindowActivate: [[], :void],
|
43
|
+
PropertyChange: [[:pointer], :void]
|
44
|
+
]
|
45
|
+
|
46
|
+
WebBrowserEvents = COM::Callback[DWebBrowserEvents]
|
47
|
+
|
48
|
+
NavOpenInNewWindow = 0x0001
|
49
|
+
NavNoHistory = 0x0002
|
50
|
+
NavNoReadFromCache = 0x0004
|
51
|
+
NavNoWriteToCache = 0x0008
|
52
|
+
NavAllowAutosearch = 0x0010
|
53
|
+
NavBrowserBar = 0x0020
|
54
|
+
NavHyperlink = 0x0040
|
55
|
+
NavEnforceRestricted = 0x0080
|
56
|
+
NavNewWindowsManaged = 0x0100
|
57
|
+
NavUntrustedForDownload = 0x0200
|
58
|
+
NavTrustedForActiveX = 0x0400
|
59
|
+
NavOpenInNewTab = 0x0800
|
60
|
+
NavOpenInBackgroundTab = 0x1000
|
61
|
+
NavKeepWordWheelText = 0x2000
|
62
|
+
NavVirtualTab = 0x4000
|
63
|
+
NavBlockRedirectsXDomain = 0x8000
|
64
|
+
NavOpenNewForegroundTab = 0x10000
|
65
|
+
|
66
|
+
REFRESH_NORMAL = 0
|
67
|
+
REFRESH_IFEXPIRED = 1
|
68
|
+
REFRESH_COMPLETELY = 3
|
69
|
+
|
70
|
+
IWebBrowser = COM::Interface[IDispatch,
|
71
|
+
GUID['EAB22AC1-30C1-11CF-A7EB-0000C05BAE0B'],
|
72
|
+
|
73
|
+
GoBack: [[], :long],
|
74
|
+
GoForward: [[], :long],
|
75
|
+
GoHome: [[], :long],
|
76
|
+
GoSearch: [[], :long],
|
77
|
+
Navigate: [[:pointer, :pointer, :pointer, :pointer, :pointer], :long],
|
78
|
+
Refresh: [[], :long],
|
79
|
+
Refresh2: [[:pointer], :long],
|
80
|
+
Stop: [[], :long],
|
81
|
+
get_Application: [[:pointer], :long],
|
82
|
+
get_Parent: [[:pointer], :long],
|
83
|
+
get_Container: [[:pointer], :long],
|
84
|
+
get_Document: [[:pointer], :long],
|
85
|
+
get_TopLevelContainer: [[:pointer], :long],
|
86
|
+
get_Type: [[:pointer], :long],
|
87
|
+
get_Left: [[:pointer], :long],
|
88
|
+
put_Left: [[:long], :long],
|
89
|
+
get_Top: [[:pointer], :long],
|
90
|
+
put_Top: [[:long], :long],
|
91
|
+
get_Width: [[:pointer], :long],
|
92
|
+
put_Width: [[:long], :long],
|
93
|
+
get_Height: [[:pointer], :long],
|
94
|
+
put_Height: [[:long], :long],
|
95
|
+
get_LocationName: [[:pointer], :long],
|
96
|
+
get_LocationURL: [[:pointer], :long],
|
97
|
+
get_Busy: [[:pointer], :long]
|
98
|
+
]
|
99
|
+
|
100
|
+
WebBrowser = COM::Factory[IWebBrowser, GUID['EAB22AC3-30C1-11CF-A7EB-0000C05BAE0B']]
|
101
|
+
end
|
102
|
+
end
|
@@ -108,5 +108,186 @@ module Fzeet
|
|
108
108
|
]
|
109
109
|
|
110
110
|
ModalWindow = COM::Instance[IModalWindow]
|
111
|
+
|
112
|
+
IExplorerBrowserEvents = COM::Interface[IUnknown,
|
113
|
+
GUID['361bbdc7-e6ee-4e13-be58-58e2240c810f'],
|
114
|
+
|
115
|
+
OnNavigationPending: [[:pointer], :long],
|
116
|
+
OnViewCreated: [[:pointer], :long],
|
117
|
+
OnNavigationComplete: [[:pointer], :long],
|
118
|
+
OnNavigationFailed: [[:pointer], :long]
|
119
|
+
]
|
120
|
+
|
121
|
+
ExplorerBrowserEvents = COM::Callback[IExplorerBrowserEvents]
|
122
|
+
|
123
|
+
EBO_NONE = 0x00000000
|
124
|
+
EBO_NAVIGATEONCE = 0x00000001
|
125
|
+
EBO_SHOWFRAMES = 0X00000002
|
126
|
+
EBO_ALWAYSNAVIGATE = 0x00000004
|
127
|
+
EBO_NOTRAVELLOG = 0x00000008
|
128
|
+
EBO_NOWRAPPERWINDOW = 0x00000010
|
129
|
+
EBO_HTMLSHAREPOINTVIEW = 0x00000020
|
130
|
+
|
131
|
+
EBF_NONE = 0x0000000
|
132
|
+
EBF_SELECTFROMDATAOBJECT = 0x0000100
|
133
|
+
EBF_NODROPTARGET = 0x0000200
|
134
|
+
|
135
|
+
IExplorerBrowser = COM::Interface[IUnknown,
|
136
|
+
GUID['dfd3b6b5-c10c-4be9-85f6-a66969f402f6'],
|
137
|
+
|
138
|
+
Initialize: [[:pointer, :pointer, :pointer], :long],
|
139
|
+
Destroy: [[], :long],
|
140
|
+
SetRect: [[:pointer, RECT], :long],
|
141
|
+
SetPropertyBag: [[:buffer_in], :long],
|
142
|
+
SetEmptyText: [[:buffer_in], :long],
|
143
|
+
SetFolderSettings: [[:pointer], :long],
|
144
|
+
Advise: [[:pointer, :pointer], :long],
|
145
|
+
Unadvise: [[:ulong], :long],
|
146
|
+
SetOptions: [[:ulong], :long],
|
147
|
+
GetOptions: [[:pointer], :long],
|
148
|
+
BrowseToIDList: [[:pointer, :uint], :long],
|
149
|
+
BrowseToObject: [[:pointer, :uint], :long],
|
150
|
+
FillFromObject: [[:pointer, :ulong], :long],
|
151
|
+
RemoveAll: [[], :long],
|
152
|
+
GetCurrentView: [[:pointer, :pointer], :long]
|
153
|
+
]
|
154
|
+
|
155
|
+
ExplorerBrowser = COM::Factory[IExplorerBrowser, GUID['71f96385-ddd6-48d3-a0c1-ae06e8b055fb']]
|
156
|
+
|
157
|
+
FOLDERID_NetworkFolder = GUID['D20BEEC4-5CA8-4905-AE3B-BF251EA09B53']
|
158
|
+
FOLDERID_ComputerFolder = GUID['0AC0837C-BBF8-452A-850D-79D08E667CA7']
|
159
|
+
FOLDERID_InternetFolder = GUID['4D9F7874-4E0C-4904-967B-40B0D20C3E4B']
|
160
|
+
FOLDERID_ControlPanelFolder = GUID['82A74AEB-AEB4-465C-A014-D097EE346D63']
|
161
|
+
FOLDERID_PrintersFolder = GUID['76FC4E2D-D6AD-4519-A663-37BD56068185']
|
162
|
+
FOLDERID_SyncManagerFolder = GUID['43668BF8-C14E-49B2-97C9-747784D784B7']
|
163
|
+
FOLDERID_SyncSetupFolder = GUID['0F214138-B1D3-4a90-BBA9-27CBC0C5389A']
|
164
|
+
FOLDERID_ConflictFolder = GUID['4bfefb45-347d-4006-a5be-ac0cb0567192']
|
165
|
+
FOLDERID_SyncResultsFolder = GUID['289a9a43-be44-4057-a41b-587a76d7e7f9']
|
166
|
+
FOLDERID_RecycleBinFolder = GUID['B7534046-3ECB-4C18-BE4E-64CD4CB7D6AC']
|
167
|
+
FOLDERID_ConnectionsFolder = GUID['6F0CD92B-2E97-45D1-88FF-B0D186B8DEDD']
|
168
|
+
FOLDERID_Fonts = GUID['FD228CB7-AE11-4AE3-864C-16F3910AB8FE']
|
169
|
+
FOLDERID_Desktop = GUID['B4BFCC3A-DB2C-424C-B029-7FE99A87C641']
|
170
|
+
FOLDERID_Startup = GUID['B97D20BB-F46A-4C97-BA10-5E3608430854']
|
171
|
+
FOLDERID_Programs = GUID['A77F5D77-2E2B-44C3-A6A2-ABA601054A51']
|
172
|
+
FOLDERID_StartMenu = GUID['625B53C3-AB48-4EC1-BA1F-A1EF4146FC19']
|
173
|
+
FOLDERID_Recent = GUID['AE50C081-EBD2-438A-8655-8A092E34987A']
|
174
|
+
FOLDERID_SendTo = GUID['8983036C-27C0-404B-8F08-102D10DCFD74']
|
175
|
+
FOLDERID_Documents = GUID['FDD39AD0-238F-46AF-ADB4-6C85480369C7']
|
176
|
+
FOLDERID_Favorites = GUID['1777F761-68AD-4D8A-87BD-30B759FA33DD']
|
177
|
+
FOLDERID_NetHood = GUID['C5ABBF53-E17F-4121-8900-86626FC2C973']
|
178
|
+
FOLDERID_PrintHood = GUID['9274BD8D-CFD1-41C3-B35E-B13F55A758F4']
|
179
|
+
FOLDERID_Templates = GUID['A63293E8-664E-48DB-A079-DF759E0509F7']
|
180
|
+
FOLDERID_CommonStartup = GUID['82A5EA35-D9CD-47C5-9629-E15D2F714E6E']
|
181
|
+
FOLDERID_CommonPrograms = GUID['0139D44E-6AFE-49F2-8690-3DAFCAE6FFB8']
|
182
|
+
FOLDERID_CommonStartMenu = GUID['A4115719-D62E-491D-AA7C-E74B8BE3B067']
|
183
|
+
FOLDERID_PublicDesktop = GUID['C4AA340D-F20F-4863-AFEF-F87EF2E6BA25']
|
184
|
+
FOLDERID_ProgramData = GUID['62AB5D82-FDC1-4DC3-A9DD-070D1D495D97']
|
185
|
+
FOLDERID_CommonTemplates = GUID['B94237E7-57AC-4347-9151-B08C6C32D1F7']
|
186
|
+
FOLDERID_PublicDocuments = GUID['ED4824AF-DCE4-45A8-81E2-FC7965083634']
|
187
|
+
FOLDERID_RoamingAppData = GUID['3EB685DB-65F9-4CF6-A03A-E3EF65729F3D']
|
188
|
+
FOLDERID_LocalAppData = GUID['F1B32785-6FBA-4FCF-9D55-7B8E7F157091']
|
189
|
+
FOLDERID_LocalAppDataLow = GUID['A520A1A4-1780-4FF6-BD18-167343C5AF16']
|
190
|
+
FOLDERID_InternetCache = GUID['352481E8-33BE-4251-BA85-6007CAEDCF9D']
|
191
|
+
FOLDERID_Cookies = GUID['2B0F765D-C0E9-4171-908E-08A611B84FF6']
|
192
|
+
FOLDERID_History = GUID['D9DC8A3B-B784-432E-A781-5A1130A75963']
|
193
|
+
FOLDERID_System = GUID['1AC14E77-02E7-4E5D-B744-2EB1AE5198B7']
|
194
|
+
FOLDERID_SystemX86 = GUID['D65231B0-B2F1-4857-A4CE-A8E7C6EA7D27']
|
195
|
+
FOLDERID_Windows = GUID['F38BF404-1D43-42F2-9305-67DE0B28FC23']
|
196
|
+
FOLDERID_Profile = GUID['5E6C858F-0E22-4760-9AFE-EA3317B67173']
|
197
|
+
FOLDERID_Pictures = GUID['33E28130-4E1E-4676-835A-98395C3BC3BB']
|
198
|
+
FOLDERID_ProgramFilesX86 = GUID['7C5A40EF-A0FB-4BFC-874A-C0F2E0B9FA8E']
|
199
|
+
FOLDERID_ProgramFilesCommonX86 = GUID['DE974D24-D9C6-4D3E-BF91-F4455120B917']
|
200
|
+
FOLDERID_ProgramFilesX64 = GUID['6D809377-6AF0-444b-8957-A3773F02200E']
|
201
|
+
FOLDERID_ProgramFilesCommonX64 = GUID['6365D5A7-0F0D-45e5-87F6-0DA56B6A4F7D']
|
202
|
+
FOLDERID_ProgramFiles = GUID['905e63b6-c1bf-494e-b29c-65b732d3d21a']
|
203
|
+
FOLDERID_ProgramFilesCommon = GUID['F7F1ED05-9F6D-47A2-AAAE-29D317C6F066']
|
204
|
+
FOLDERID_UserProgramFiles = GUID['5cd7aee2-2219-4a67-b85d-6c9ce15660cb']
|
205
|
+
FOLDERID_UserProgramFilesCommon = GUID['bcbd3057-ca5c-4622-b42d-bc56db0ae516']
|
206
|
+
FOLDERID_AdminTools = GUID['724EF170-A42D-4FEF-9F26-B60E846FBA4F']
|
207
|
+
FOLDERID_CommonAdminTools = GUID['D0384E7D-BAC3-4797-8F14-CBA229B392B5']
|
208
|
+
FOLDERID_Music = GUID['4BD8D571-6D19-48D3-BE97-422220080E43']
|
209
|
+
FOLDERID_Videos = GUID['18989B1D-99B5-455B-841C-AB7C74E4DDFC']
|
210
|
+
FOLDERID_Ringtones = GUID['C870044B-F49E-4126-A9C3-B52A1FF411E8']
|
211
|
+
FOLDERID_PublicPictures = GUID['B6EBFB86-6907-413C-9AF7-4FC2ABF07CC5']
|
212
|
+
FOLDERID_PublicMusic = GUID['3214FAB5-9757-4298-BB61-92A9DEAA44FF']
|
213
|
+
FOLDERID_PublicVideos = GUID['2400183A-6185-49FB-A2D8-4A392A602BA3']
|
214
|
+
FOLDERID_PublicRingtones = GUID['E555AB60-153B-4D17-9F04-A5FE99FC15EC']
|
215
|
+
FOLDERID_ResourceDir = GUID['8AD10C31-2ADB-4296-A8F7-E4701232C972']
|
216
|
+
FOLDERID_LocalizedResourcesDir = GUID['2A00375E-224C-49DE-B8D1-440DF7EF3DDC']
|
217
|
+
FOLDERID_CommonOEMLinks = GUID['C1BAE2D0-10DF-4334-BEDD-7AA20B227A9D']
|
218
|
+
FOLDERID_CDBurning = GUID['9E52AB10-F80D-49DF-ACB8-4330F5687855']
|
219
|
+
FOLDERID_UserProfiles = GUID['0762D272-C50A-4BB0-A382-697DCD729B80']
|
220
|
+
FOLDERID_Playlists = GUID['DE92C1C7-837F-4F69-A3BB-86E631204A23']
|
221
|
+
FOLDERID_SamplePlaylists = GUID['15CA69B3-30EE-49C1-ACE1-6B5EC372AFB5']
|
222
|
+
FOLDERID_SampleMusic = GUID['B250C668-F57D-4EE1-A63C-290EE7D1AA1F']
|
223
|
+
FOLDERID_SamplePictures = GUID['C4900540-2379-4C75-844B-64E6FAF8716B']
|
224
|
+
FOLDERID_SampleVideos = GUID['859EAD94-2E85-48AD-A71A-0969CB56A6CD']
|
225
|
+
FOLDERID_PhotoAlbums = GUID['69D2CF90-FC33-4FB7-9A0C-EBB0F0FCB43C']
|
226
|
+
FOLDERID_Public = GUID['DFDF76A2-C82A-4D63-906A-5644AC457385']
|
227
|
+
FOLDERID_ChangeRemovePrograms = GUID['df7266ac-9274-4867-8d55-3bd661de872d']
|
228
|
+
FOLDERID_AppUpdates = GUID['a305ce99-f527-492b-8b1a-7e76fa98d6e4']
|
229
|
+
FOLDERID_AddNewPrograms = GUID['de61d971-5ebc-4f02-a3a9-6c82895e5c04']
|
230
|
+
FOLDERID_Downloads = GUID['374DE290-123F-4565-9164-39C4925E467B']
|
231
|
+
FOLDERID_PublicDownloads = GUID['3D644C9B-1FB8-4f30-9B45-F670235F79C0']
|
232
|
+
FOLDERID_SavedSearches = GUID['7d1d3a04-debb-4115-95cf-2f29da2920da']
|
233
|
+
FOLDERID_QuickLaunch = GUID['52a4f021-7b75-48a9-9f6b-4b87a210bc8f']
|
234
|
+
FOLDERID_Contacts = GUID['56784854-C6CB-462b-8169-88E350ACB882']
|
235
|
+
FOLDERID_SidebarParts = GUID['A75D362E-50FC-4fb7-AC2C-A8BEAA314493']
|
236
|
+
FOLDERID_SidebarDefaultParts = GUID['7B396E54-9EC5-4300-BE0A-2482EBAE1A26']
|
237
|
+
FOLDERID_PublicGameTasks = GUID['DEBF2536-E1A8-4c59-B6A2-414586476AEA']
|
238
|
+
FOLDERID_GameTasks = GUID['054FAE61-4DD8-4787-80B6-090220C4B700']
|
239
|
+
FOLDERID_SavedGames = GUID['4C5C32FF-BB9D-43b0-B5B4-2D72E54EAAA4']
|
240
|
+
FOLDERID_Games = GUID['CAC52C1A-B53D-4edc-92D7-6B2E8AC19434']
|
241
|
+
FOLDERID_SEARCH_MAPI = GUID['98ec0e18-2098-4d44-8644-66979315a281']
|
242
|
+
FOLDERID_SEARCH_CSC = GUID['ee32e446-31ca-4aba-814f-a5ebd2fd6d5e']
|
243
|
+
FOLDERID_Links = GUID['bfb9d5e0-c6a9-404c-b2b2-ae6db6af4968']
|
244
|
+
FOLDERID_UsersFiles = GUID['f3ce0f7c-4901-4acc-8648-d5d44b04ef8f']
|
245
|
+
FOLDERID_UsersLibraries = GUID['A302545D-DEFF-464b-ABE8-61C8648D939B']
|
246
|
+
FOLDERID_SearchHome = GUID['190337d1-b8ca-4121-a639-6d472d16972a']
|
247
|
+
FOLDERID_OriginalImages = GUID['2C36C0AA-5812-4b87-BFD0-4CD0DFB19B39']
|
248
|
+
FOLDERID_DocumentsLibrary = GUID['7b0db17d-9cd2-4a93-9733-46cc89022e7c']
|
249
|
+
FOLDERID_MusicLibrary = GUID['2112AB0A-C86A-4ffe-A368-0DE96E47012E']
|
250
|
+
FOLDERID_PicturesLibrary = GUID['A990AE9F-A03B-4e80-94BC-9912D7504104']
|
251
|
+
FOLDERID_VideosLibrary = GUID['491E922F-5643-4af4-A7EB-4E7A138D8174']
|
252
|
+
FOLDERID_RecordedTVLibrary = GUID['1A6FDBA2-F42D-4358-A798-B74D745926C5']
|
253
|
+
FOLDERID_HomeGroup = GUID['52528A6B-B9E3-4add-B60D-588C2DBA842D']
|
254
|
+
FOLDERID_DeviceMetadataStore = GUID['5CE4A5E9-E4EB-479D-B89F-130C02886155']
|
255
|
+
FOLDERID_Libraries = GUID['1B3EA5DC-B587-4786-B4EF-BD1DC332AEAE']
|
256
|
+
FOLDERID_PublicLibraries = GUID['48daf80b-e6cf-4f4e-b800-0e69d84ee384']
|
257
|
+
FOLDERID_UserPinned = GUID['9e3995ab-1f9c-4f13-b827-48b24b6c7174']
|
258
|
+
FOLDERID_ImplicitAppShortcuts = GUID['bcb5256f-79f6-4cee-b725-dc34e402fd46']
|
259
|
+
|
260
|
+
if WINVER.AtLeastWindowsVista?
|
261
|
+
attach_function :SHGetKnownFolderIDList, [:pointer, :ulong, :pointer, :pointer], :long
|
262
|
+
end
|
263
|
+
|
264
|
+
SBSP_DEFBROWSER = 0x0000
|
265
|
+
SBSP_SAMEBROWSER = 0x0001
|
266
|
+
SBSP_NEWBROWSER = 0x0002
|
267
|
+
SBSP_DEFMODE = 0x0000
|
268
|
+
SBSP_OPENMODE = 0x0010
|
269
|
+
SBSP_EXPLOREMODE = 0x0020
|
270
|
+
SBSP_HELPMODE = 0x0040
|
271
|
+
SBSP_NOTRANSFERHIST = 0x0080
|
272
|
+
SBSP_ABSOLUTE = 0x0000
|
273
|
+
SBSP_RELATIVE = 0x1000
|
274
|
+
SBSP_PARENT = 0x2000
|
275
|
+
SBSP_NAVIGATEBACK = 0x4000
|
276
|
+
SBSP_NAVIGATEFORWARD = 0x8000
|
277
|
+
SBSP_ALLOW_AUTONAVIGATE = 0x00010000
|
278
|
+
SBSP_KEEPSAMETEMPLATE = 0x00020000
|
279
|
+
SBSP_KEEPWORDWHEELTEXT = 0x00040000
|
280
|
+
SBSP_ACTIVATE_NOFOCUS = 0x00080000
|
281
|
+
SBSP_CREATENOHISTORY = 0x00100000
|
282
|
+
SBSP_PLAYNOSOUND = 0x00200000
|
283
|
+
SBSP_CALLERUNTRUSTED = 0x00800000
|
284
|
+
SBSP_TRUSTFIRSTDOWNLOAD = 0x01000000
|
285
|
+
SBSP_UNTRUSTEDFORDOWNLOAD = 0x02000000
|
286
|
+
SBSP_NOAUTOSELECT = 0x04000000
|
287
|
+
SBSP_WRITENOHISTORY = 0x08000000
|
288
|
+
SBSP_TRUSTEDFORACTIVEX = 0x10000000
|
289
|
+
SBSP_FEEDNAVIGATION = 0x20000000
|
290
|
+
SBSP_REDIRECT = 0x40000000
|
291
|
+
SBSP_INITIATEDBYHLINKFRAME = 0x80000000
|
111
292
|
end
|
112
293
|
end
|
@@ -445,6 +445,17 @@ module Fzeet
|
|
445
445
|
|
446
446
|
attach_function :GetDlgItem, [:pointer, :int], :pointer
|
447
447
|
|
448
|
+
GW_HWNDFIRST = 0
|
449
|
+
GW_HWNDLAST = 1
|
450
|
+
GW_HWNDNEXT = 2
|
451
|
+
GW_HWNDPREV = 3
|
452
|
+
GW_OWNER = 4
|
453
|
+
GW_CHILD = 5
|
454
|
+
GW_ENABLEDPOPUP = 6
|
455
|
+
GW_MAX = 6
|
456
|
+
|
457
|
+
attach_function :GetWindow, [:pointer, :uint], :pointer
|
458
|
+
|
448
459
|
callback :WNDENUMPROC, [:pointer, :long], :int
|
449
460
|
|
450
461
|
attach_function :EnumChildWindows, [:pointer, :WNDENUMPROC, :long], :int
|
data/lib/fzeet/windows.rb
CHANGED
@@ -13,6 +13,7 @@ require_relative 'windows/com'
|
|
13
13
|
require_relative 'windows/ole'
|
14
14
|
require_relative 'windows/shell'
|
15
15
|
require_relative 'windows/shlwapi'
|
16
|
+
require_relative 'windows/shdocvw'
|
16
17
|
|
17
18
|
require_relative 'windows/propsys' if Fzeet::Windows::WINVER.AtLeastWindowsVista?
|
18
19
|
|