summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--config.tests/arch/arch.cpp (renamed from src/plugins/platforms/uikit/quikiteventloop.h)73
-rw-r--r--config.tests/arch/arch.pro7
-rwxr-xr-xconfigure339
-rw-r--r--dist/changes-5.0.031
-rw-r--r--doc/src/sql/qtsql.qdoc2
-rw-r--r--doc/src/sql/sql-programming/sql-driver.qdoc4
-rw-r--r--examples/desktop/systray/window.cpp6
-rw-r--r--examples/draganddrop/puzzle/puzzlewidget.cpp2
-rw-r--r--examples/examples.pro1
-rw-r--r--examples/itemviews/puzzle/puzzlewidget.cpp2
-rw-r--r--examples/qws/README7
-rw-r--r--examples/qws/dbscreen/dbscreen.cpp95
-rw-r--r--examples/qws/dbscreen/dbscreen.desktop11
-rw-r--r--examples/qws/dbscreen/dbscreen.h66
-rw-r--r--examples/qws/dbscreen/dbscreen.pro13
-rw-r--r--examples/qws/dbscreen/dbscreendriverplugin.cpp76
-rw-r--r--examples/qws/framebuffer/framebuffer.desktop11
-rw-r--r--examples/qws/framebuffer/framebuffer.pro15
-rw-r--r--examples/qws/framebuffer/main.c585
-rw-r--r--examples/qws/mousecalibration/calibration.cpp144
-rw-r--r--examples/qws/mousecalibration/calibration.h67
-rw-r--r--examples/qws/mousecalibration/main.cpp92
-rw-r--r--examples/qws/mousecalibration/mousecalibration.desktop11
-rw-r--r--examples/qws/mousecalibration/mousecalibration.pro15
-rw-r--r--examples/qws/mousecalibration/scribblewidget.cpp92
-rw-r--r--examples/qws/mousecalibration/scribblewidget.h70
-rw-r--r--examples/qws/qws.pro10
-rw-r--r--examples/qws/simpledecoration/analogclock.cpp110
-rw-r--r--examples/qws/simpledecoration/analogclock.h57
-rw-r--r--examples/qws/simpledecoration/main.cpp59
-rw-r--r--examples/qws/simpledecoration/mydecoration.cpp374
-rw-r--r--examples/qws/simpledecoration/mydecoration.h72
-rw-r--r--examples/qws/simpledecoration/simpledecoration.desktop11
-rw-r--r--examples/qws/simpledecoration/simpledecoration.pro16
-rw-r--r--examples/qws/svgalib/README9
-rw-r--r--examples/qws/svgalib/svgalib.desktop11
-rw-r--r--examples/qws/svgalib/svgalib.pro22
-rw-r--r--examples/qws/svgalib/svgalibpaintdevice.cpp66
-rw-r--r--examples/qws/svgalib/svgalibpaintdevice.h65
-rw-r--r--examples/qws/svgalib/svgalibpaintengine.cpp190
-rw-r--r--examples/qws/svgalib/svgalibpaintengine.h78
-rw-r--r--examples/qws/svgalib/svgalibplugin.cpp74
-rw-r--r--examples/qws/svgalib/svgalibscreen.cpp353
-rw-r--r--examples/qws/svgalib/svgalibscreen.h83
-rw-r--r--examples/qws/svgalib/svgalibsurface.cpp86
-rw-r--r--examples/qws/svgalib/svgalibsurface.h75
-rw-r--r--mkspecs/features/qt.prf2
-rw-r--r--mkspecs/linux-lsb-g++/qmake.conf8
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-gpos-private.h4
-rw-r--r--src/3rdparty/harfbuzz/src/harfbuzz-gpos.c125
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/Accessible2.h585
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/Accessible2_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/Accessible2_p.c1196
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleAction.h220
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleAction_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleAction_p.c557
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleApplication.h188
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleApplication_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleApplication_p.c420
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleComponent.h185
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleComponent_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleComponent_p.c360
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleEditableText.h235
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleEditableText_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleEditableText_p.c579
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleEventID.h105
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleHyperlink.h252
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleHyperlink_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleHyperlink_p.c1113
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleHypertext.h349
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleHypertext_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleHypertext_p.c454
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleImage.h185
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleImage_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleImage_p.c414
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleRelation.h244
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleRelation_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleRelation_p.c520
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleRole.h118
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleStates.h95
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleTable.h497
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleTable2.h367
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleTable2_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleTable2_p.c1099
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleTableCell.h246
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleTableCell_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleTableCell_p.c634
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleTable_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleTable_p.c1543
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleText.h435
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleText_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleText_p.c1203
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleValue.h188
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleValue_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleValue_p.c1029
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/IA2CommonTypes.h102
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/IA2TypeLibrary.h103
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/IA2TypeLibrary.tlbbin0 -> 1236 bytes
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/IA2TypeLibrary_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/dlldata.c64
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/Accessible2.h585
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/Accessible2_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/Accessible2_p.c1190
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleAction.h220
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleAction_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleAction_p.c563
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleApplication.h188
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleApplication_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleApplication_p.c428
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleComponent.h185
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleComponent_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleComponent_p.c369
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleEditableText.h235
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleEditableText_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleEditableText_p.c584
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleEventID.h105
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleHyperlink.h252
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleHyperlink_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleHyperlink_p.c1191
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleHypertext.h349
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleHypertext_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleHypertext_p.c463
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleImage.h185
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleImage_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleImage_p.c423
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleRelation.h244
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleRelation_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleRelation_p.c527
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleRole.h118
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleStates.h95
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleTable.h497
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleTable2.h367
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleTable2_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleTable2_p.c1091
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleTableCell.h246
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleTableCell_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleTableCell_p.c637
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleTable_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleTable_p.c1526
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleText.h435
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleText_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleText_p.c1196
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleValue.h188
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleValue_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleValue_p.c1105
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/IA2CommonTypes.h102
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/IA2TypeLibrary.h103
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/IA2TypeLibrary.tlbbin0 -> 1236 bytes
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/IA2TypeLibrary_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/dlldata.c64
-rw-r--r--src/3rdparty/iaccessible2/iaccessible2.pri88
-rw-r--r--src/3rdparty/iaccessible2/idl/Accessible2.idl679
-rw-r--r--src/3rdparty/iaccessible2/idl/AccessibleAction.idl194
-rw-r--r--src/3rdparty/iaccessible2/idl/AccessibleApplication.idl121
-rw-r--r--src/3rdparty/iaccessible2/idl/AccessibleComponent.idl124
-rw-r--r--src/3rdparty/iaccessible2/idl/AccessibleEditableText.idl259
-rw-r--r--src/3rdparty/iaccessible2/idl/AccessibleEventID.idl230
-rw-r--r--src/3rdparty/iaccessible2/idl/AccessibleHyperlink.idl187
-rw-r--r--src/3rdparty/iaccessible2/idl/AccessibleHypertext.idl123
-rw-r--r--src/3rdparty/iaccessible2/idl/AccessibleImage.idl111
-rw-r--r--src/3rdparty/iaccessible2/idl/AccessibleRelation.idl197
-rw-r--r--src/3rdparty/iaccessible2/idl/AccessibleRole.idl293
-rw-r--r--src/3rdparty/iaccessible2/idl/AccessibleStates.idl209
-rw-r--r--src/3rdparty/iaccessible2/idl/AccessibleTable.idl551
-rw-r--r--src/3rdparty/iaccessible2/idl/AccessibleTable2.idl375
-rw-r--r--src/3rdparty/iaccessible2/idl/AccessibleTableCell.idl194
-rw-r--r--src/3rdparty/iaccessible2/idl/AccessibleText.idl674
-rw-r--r--src/3rdparty/iaccessible2/idl/AccessibleValue.idl136
-rw-r--r--src/3rdparty/iaccessible2/idl/IA2CommonTypes.idl191
-rw-r--r--src/3rdparty/iaccessible2/idl/IA2TypeLibrary.idl94
-rw-r--r--src/3rdparty/iaccessible2/idl/Makefile58
-rw-r--r--src/3rdparty/iaccessible2/idl/README6
-rw-r--r--src/3rdparty/pcre/sljit/sljitUtils.c2
-rw-r--r--src/corelib/global/qprocessordetection.h4
-rw-r--r--src/corelib/io/qfilesystemwatcher_polling.cpp3
-rw-r--r--src/corelib/io/qfilesystemwatcher_polling_p.h3
-rw-r--r--src/corelib/io/qstandardpaths_mac.cpp2
-rw-r--r--src/corelib/itemmodels/qidentityproxymodel.cpp80
-rw-r--r--src/corelib/json/qjsondocument.h3
-rw-r--r--src/corelib/json/qjsonparser.cpp7
-rw-r--r--src/corelib/kernel/qmetaobject.cpp6
-rw-r--r--src/corelib/kernel/qmetatype.cpp302
-rw-r--r--src/corelib/kernel/qmetatype.h24
-rw-r--r--src/corelib/kernel/qmetatype_p.h4
-rw-r--r--src/corelib/kernel/qobject.cpp2
-rw-r--r--src/corelib/kernel/qpointer.cpp1
-rw-r--r--src/corelib/kernel/qpointer.h6
-rw-r--r--src/corelib/tools/qregexp.cpp4
-rw-r--r--src/corelib/tools/qsimd.cpp6
-rw-r--r--src/gui/accessible/qaccessible.cpp7
-rw-r--r--src/gui/accessible/qaccessible.h4
-rw-r--r--src/gui/accessible/qaccessible2.h3
-rw-r--r--src/gui/accessible/qaccessiblebridge.h2
-rw-r--r--src/gui/accessible/qaccessibleobject.cpp1
-rw-r--r--src/gui/accessible/qplatformaccessibility_qpa.cpp2
-rw-r--r--src/gui/accessible/qplatformaccessibility_qpa.h2
-rw-r--r--src/gui/animation/animation.pri2
-rw-r--r--src/gui/animation/qguivariantanimation.cpp (renamed from src/widgets/animation/qguivariantanimation.cpp)0
-rw-r--r--src/gui/gui.pro3
-rw-r--r--src/gui/image/qbmphandler.cpp2
-rw-r--r--src/gui/kernel/qevent.cpp18
-rw-r--r--src/gui/kernel/qguiapplication.cpp36
-rw-r--r--src/gui/kernel/qguiapplication.h4
-rw-r--r--src/gui/kernel/qguiapplication_p.h1
-rw-r--r--src/gui/kernel/qopenglcontext.cpp2
-rw-r--r--src/gui/kernel/qplatformintegration_qpa.cpp15
-rw-r--r--src/gui/kernel/qplatformintegration_qpa.h5
-rw-r--r--src/gui/kernel/qplatformnativeinterface_qpa.cpp5
-rw-r--r--src/gui/kernel/qplatformnativeinterface_qpa.h1
-rw-r--r--src/gui/kernel/qplatformsurface_qpa.cpp5
-rw-r--r--src/gui/kernel/qscreen.cpp1
-rw-r--r--src/gui/kernel/qstylehints.cpp5
-rw-r--r--src/gui/kernel/qsurface.cpp1
-rw-r--r--src/gui/kernel/qsurfaceformat.cpp1
-rw-r--r--src/gui/kernel/qwindow.cpp6
-rw-r--r--src/gui/text/qfontdatabase_qpa.cpp4
-rw-r--r--src/gui/text/qfontengine.cpp1
-rw-r--r--src/gui/text/qfontengine_p.h2
-rw-r--r--src/gui/text/qfontengine_qpa.cpp56
-rw-r--r--src/gui/text/qfontengine_qpa_p.h9
-rw-r--r--src/gui/text/qfontengine_qpf.cpp33
-rw-r--r--src/gui/text/qplatformfontdatabase_qpa.cpp5
-rw-r--r--src/gui/text/qplatformfontdatabase_qpa.h2
-rw-r--r--src/network/access/qhttpnetworkconnection.cpp108
-rw-r--r--src/network/access/qhttpnetworkconnectionchannel.cpp73
-rw-r--r--src/network/access/qhttpnetworkconnectionchannel_p.h11
-rw-r--r--src/network/kernel/qnetworkinterface_unix.cpp6
-rw-r--r--src/network/kernel/qnetworkproxy.cpp8
-rw-r--r--src/network/socket/qabstractsocket.cpp2
-rw-r--r--src/network/socket/socket.pri1
-rw-r--r--src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp5
-rw-r--r--src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp54
-rw-r--r--src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase_p.h2
-rw-r--r--src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig.cpp5
-rw-r--r--src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig_p.h2
-rw-r--r--src/platformsupport/themes/genericunix/qgenericunixthemes.cpp39
-rw-r--r--src/platformsupport/themes/genericunix/qgenericunixthemes_p.h9
-rw-r--r--src/platformsupport/udev/qudevhelper.cpp73
-rw-r--r--src/platformsupport/udev/udev.pri4
-rw-r--r--src/plugins/bearer/generic/qgenericengine.cpp3
-rw-r--r--src/plugins/generic/evdevkeyboard/qevdevkeyboardhandler.cpp6
-rw-r--r--src/plugins/generic/evdevkeyboard/qevdevkeyboardhandler.h3
-rw-r--r--src/plugins/generic/evdevmouse/evdevmouse.pro6
-rw-r--r--src/plugins/generic/evdevmouse/main.cpp4
-rw-r--r--src/plugins/generic/evdevmouse/qevdevmousehandler.cpp (renamed from src/plugins/generic/evdevmouse/qevdevmouse.cpp)81
-rw-r--r--src/plugins/generic/evdevmouse/qevdevmousehandler.h (renamed from src/plugins/generic/evdevmouse/qevdevmouse.h)19
-rw-r--r--src/plugins/generic/evdevmouse/qevdevmousemanager.cpp138
-rw-r--r--src/plugins/generic/evdevmouse/qevdevmousemanager.h (renamed from src/plugins/platforms/uikit/quikitintegration.h)44
-rw-r--r--src/plugins/generic/evdevtouch/qevdevtouch.cpp14
-rw-r--r--src/plugins/platforms/cocoa/cocoa.pro12
-rw-r--r--src/plugins/platforms/cocoa/qcocoaclipboard.h (renamed from src/plugins/platforms/uikit/quikitscreen.h)35
-rw-r--r--src/plugins/platforms/cocoa/qcocoaclipboard.mm (renamed from src/plugins/platforms/uikit/main.mm)57
-rw-r--r--src/plugins/platforms/cocoa/qcocoahelpers.h9
-rw-r--r--src/plugins/platforms/cocoa/qcocoahelpers.mm62
-rw-r--r--src/plugins/platforms/cocoa/qcocoainputcontext.h (renamed from src/plugins/platforms/uikit/quikitsoftwareinputhandler.h)27
-rw-r--r--src/plugins/platforms/cocoa/qcocoainputcontext.mm122
-rw-r--r--src/plugins/platforms/cocoa/qcocoaintegration.h9
-rw-r--r--src/plugins/platforms/cocoa/qcocoaintegration.mm33
-rw-r--r--src/plugins/platforms/cocoa/qcocoanativeinterface.h21
-rw-r--r--src/plugins/platforms/cocoa/qcocoanativeinterface.mm15
-rw-r--r--src/plugins/platforms/cocoa/qcocoaprintersupport.h (renamed from src/plugins/platforms/uikit/quikitwindowsurface.h)28
-rw-r--r--src/plugins/platforms/cocoa/qcocoaprintersupport.mm116
-rw-r--r--src/plugins/platforms/cocoa/qcocoatheme.h3
-rw-r--r--src/plugins/platforms/cocoa/qcocoatheme.mm2
-rw-r--r--src/plugins/platforms/cocoa/qcocoawindow.h22
-rw-r--r--src/plugins/platforms/cocoa/qcocoawindow.mm318
-rw-r--r--src/plugins/platforms/cocoa/qmacclipboard.mm100
-rw-r--r--src/plugins/platforms/cocoa/qmacmime.h3
-rw-r--r--src/plugins/platforms/cocoa/qmacmime.mm22
-rw-r--r--src/plugins/platforms/cocoa/qnsview.h5
-rw-r--r--src/plugins/platforms/cocoa/qnsview.mm349
-rw-r--r--src/plugins/platforms/cocoa/qnswindowdelegate.mm8
-rw-r--r--src/plugins/platforms/cocoa/qpaintengine_mac.mm1788
-rw-r--r--src/plugins/platforms/cocoa/qpaintengine_mac_p.h254
-rw-r--r--src/plugins/platforms/cocoa/qprintengine_mac.mm817
-rw-r--r--src/plugins/platforms/cocoa/qprintengine_mac_p.h160
-rw-r--r--src/plugins/platforms/cocoa/qt_mac_p.h2
-rw-r--r--src/plugins/platforms/eglfs/eglfs.json3
-rw-r--r--src/plugins/platforms/eglfs/eglfs.pro6
-rw-r--r--src/plugins/platforms/eglfs/main.cpp6
-rw-r--r--src/plugins/platforms/qnx/qqnxwindow.h1
-rw-r--r--src/plugins/platforms/uikit/README45
-rw-r--r--src/plugins/platforms/uikit/examples/qmltest/main.mm78
-rw-r--r--src/plugins/platforms/uikit/examples/qmltest/qml/main.qml112
-rw-r--r--src/plugins/platforms/uikit/examples/qmltest/qmlapplicationviewer/moc_qmlapplicationviewer.cpp110
-rw-r--r--src/plugins/platforms/uikit/examples/qmltest/qmlapplicationviewer/qmlapplicationviewer.cpp179
-rw-r--r--src/plugins/platforms/uikit/examples/qmltest/qmlapplicationviewer/qmlapplicationviewer.h80
-rw-r--r--src/plugins/platforms/uikit/examples/qmltest/qmltest-Info.plist28
-rwxr-xr-xsrc/plugins/platforms/uikit/examples/qmltest/qmltest.xcodeproj/project.pbxproj491
-rw-r--r--src/plugins/platforms/uikit/examples/qmltest/qmltest_Prefix.pch8
-rw-r--r--src/plugins/platforms/uikit/quikiteventloop.mm174
-rw-r--r--src/plugins/platforms/uikit/quikitintegration.mm104
-rw-r--r--src/plugins/platforms/uikit/quikitscreen.mm84
-rw-r--r--src/plugins/platforms/uikit/quikitwindow.h131
-rw-r--r--src/plugins/platforms/uikit/quikitwindow.mm392
-rw-r--r--src/plugins/platforms/uikit/quikitwindowsurface.mm133
-rw-r--r--src/plugins/platforms/uikit/uikit.pro27
-rw-r--r--src/plugins/platforms/vnc/qvnccursor.cpp156
-rw-r--r--src/plugins/platforms/vnc/qvnccursor.h76
-rw-r--r--src/plugins/platforms/vnc/qvncintegration.cpp255
-rw-r--r--src/plugins/platforms/vnc/qvncintegration.h111
-rw-r--r--src/plugins/platforms/vnc/qvncserver.cpp1935
-rw-r--r--src/plugins/platforms/vnc/qvncserver.h533
-rw-r--r--src/plugins/platforms/vnc/vnc.pro22
-rw-r--r--src/plugins/platforms/windows/accessible/accessible.pri19
-rw-r--r--src/plugins/platforms/windows/accessible/comutils.cpp641
-rw-r--r--src/plugins/platforms/windows/accessible/comutils.h (renamed from src/platformsupport/udev/qudevhelper_p.h)27
-rw-r--r--src/plugins/platforms/windows/accessible/iaccessible2.cpp1467
-rw-r--r--src/plugins/platforms/windows/accessible/iaccessible2.h379
-rw-r--r--src/plugins/platforms/windows/accessible/qwindowsaccessibility.cpp319
-rw-r--r--src/plugins/platforms/windows/accessible/qwindowsaccessibility.h (renamed from src/plugins/platforms/windows/qwindowsaccessibility.h)9
-rw-r--r--src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.cpp (renamed from src/plugins/platforms/windows/qwindowsaccessibility.cpp)526
-rw-r--r--src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.h139
-rw-r--r--src/plugins/platforms/windows/qtwindows_additional.h10
-rw-r--r--src/plugins/platforms/windows/qwindowscontext.cpp5
-rw-r--r--src/plugins/platforms/windows/qwindowsfontdatabase.cpp12
-rw-r--r--src/plugins/platforms/windows/qwindowsfontdatabase.h3
-rw-r--r--src/plugins/platforms/windows/qwindowsfontdatabase_ft.cpp13
-rw-r--r--src/plugins/platforms/windows/qwindowsfontdatabase_ft.h3
-rw-r--r--src/plugins/platforms/windows/qwindowsintegration.cpp14
-rw-r--r--src/plugins/platforms/windows/qwindowsintegration.h3
-rw-r--r--src/plugins/platforms/windows/qwindowstheme.cpp24
-rw-r--r--src/plugins/platforms/windows/qwindowstheme.h5
-rw-r--r--src/plugins/platforms/windows/windows.pro3
-rw-r--r--src/plugins/platforms/xcb/qxcbintegration.cpp18
-rw-r--r--src/plugins/platforms/xcb/qxcbintegration.h8
-rw-r--r--src/plugins/platforms/xcb/qxcbwindow.cpp5
-rw-r--r--src/plugins/platforms/xlib/qglxintegration.cpp1
-rw-r--r--src/plugins/platforms/xlib/qxlibkeyboard.cpp4
-rw-r--r--src/plugins/platforms/xlib/qxlibwindow.cpp10
-rw-r--r--src/plugins/platforms/xlib/xlib.pro1
-rw-r--r--src/plugins/plugins.pro2
-rw-r--r--src/plugins/printsupport/cocoa/cocoa.json3
-rw-r--r--src/plugins/printsupport/cocoa/cocoa.pro13
-rw-r--r--src/plugins/printsupport/cocoa/main.cpp (renamed from src/plugins/platforms/vnc/main.cpp)47
-rw-r--r--src/plugins/printsupport/printsupport.pro1
-rw-r--r--src/printsupport/dialogs/dialogs.pri6
-rw-r--r--src/printsupport/dialogs/qpagesetupdialog.h2
-rw-r--r--src/printsupport/dialogs/qpagesetupdialog_mac.mm86
-rw-r--r--src/printsupport/dialogs/qprintdialog.h8
-rw-r--r--src/printsupport/dialogs/qprintdialog_mac.mm119
-rw-r--r--src/printsupport/kernel/kernel.pri4
-rw-r--r--src/printsupport/kernel/qprinter.cpp2
-rw-r--r--src/sql/drivers/sqlite/qsql_sqlite.cpp5
-rw-r--r--src/sql/models/qsqltablemodel.cpp132
-rw-r--r--src/sql/models/qsqltablemodel.h2
-rw-r--r--src/sql/models/qsqltablemodel_p.h2
-rw-r--r--src/src.pro9
-rw-r--r--src/testlib/qtestaccessible.h30
-rw-r--r--src/testlib/qtestmouse.h17
-rw-r--r--src/testlib/qtestsystem.h22
-rw-r--r--src/tools/bootstrap/bootstrap.pri9
-rw-r--r--src/tools/bootstrap/bootstrap.pro12
-rw-r--r--src/tools/qdoc/codemarker.cpp16
-rw-r--r--src/tools/qdoc/config.h1
-rw-r--r--src/tools/qdoc/cppcodemarker.cpp36
-rw-r--r--src/tools/qdoc/cppcodeparser.cpp5
-rw-r--r--src/tools/qdoc/ditaxmlgenerator.cpp155
-rw-r--r--src/tools/qdoc/ditaxmlgenerator.h4
-rw-r--r--src/tools/qdoc/doc/config/qdoc-project.qdocconf4
-rw-r--r--src/tools/qdoc/doc/config/qt-html-templates-online.qdocconf24
-rw-r--r--src/tools/qdoc/doc/config/qt-html-templates.qdocconf34
-rw-r--r--src/tools/qdoc/doc/qdoc-guide.qdoc2
-rw-r--r--src/tools/qdoc/doc/qdoc-manual.qdoc14
-rw-r--r--src/tools/qdoc/main.cpp23
-rw-r--r--src/tools/qdoc/node.cpp5
-rw-r--r--src/tools/qdoc/node.h14
-rw-r--r--src/tools/qdoc/pagegenerator.cpp1
-rw-r--r--src/tools/qdoc/qdoc.pro13
-rw-r--r--src/tools/qdoc/quoter.cpp3
-rw-r--r--src/tools/qdoc/tree.cpp3
-rw-r--r--src/tools/uic/utils.h35
-rw-r--r--src/widgets/animation/animation.pri3
-rw-r--r--src/widgets/dialogs/qdialog.cpp9
-rw-r--r--src/widgets/dialogs/qmessagebox.cpp3
-rw-r--r--src/widgets/graphicsview/qgraphicsscene.cpp3
-rw-r--r--src/widgets/itemviews/qabstractitemdelegate.cpp2
-rw-r--r--src/widgets/itemviews/qabstractitemview.cpp18
-rw-r--r--src/widgets/itemviews/qheaderview.cpp130
-rw-r--r--src/widgets/itemviews/qheaderview.h27
-rw-r--r--src/widgets/itemviews/qlistview.cpp9
-rw-r--r--src/widgets/itemviews/qtableview.cpp50
-rw-r--r--src/widgets/itemviews/qtreeview.cpp19
-rw-r--r--src/widgets/itemviews/qtreewidget.cpp2
-rw-r--r--src/widgets/kernel/qiconloader.cpp4
-rw-r--r--src/widgets/kernel/qwhatsthis.cpp6
-rw-r--r--src/widgets/kernel/qwidget.cpp37
-rw-r--r--src/widgets/kernel/qwidgetwindow_qpa.cpp4
-rw-r--r--src/widgets/kernel/qwidgetwindow_qpa_p.h2
-rw-r--r--src/widgets/styles/qmacstyle_mac.mm1
-rw-r--r--src/widgets/styles/qstylesheetstyle.cpp60
-rw-r--r--src/widgets/styles/qwindowsvistastyle.cpp6
-rw-r--r--src/widgets/styles/qwindowsxpstyle.cpp6
-rw-r--r--src/widgets/util/qsystemtrayicon_win.cpp1
-rw-r--r--src/widgets/widgets.pro1
-rw-r--r--src/widgets/widgets/qabstractbutton.cpp6
-rw-r--r--src/widgets/widgets/qabstractslider.cpp3
-rw-r--r--src/widgets/widgets/qabstractspinbox.cpp6
-rw-r--r--src/widgets/widgets/qcalendarwidget.cpp4
-rw-r--r--src/widgets/widgets/qcombobox.cpp32
-rw-r--r--src/widgets/widgets/qgroupbox.cpp3
-rw-r--r--src/widgets/widgets/qlabel.cpp6
-rw-r--r--src/widgets/widgets/qlineedit_p.cpp3
-rw-r--r--src/widgets/widgets/qmenu.cpp12
-rw-r--r--src/widgets/widgets/qmenubar.cpp6
-rw-r--r--src/widgets/widgets/qprogressbar.cpp3
-rw-r--r--src/widgets/widgets/qpushbutton.cpp3
-rw-r--r--src/widgets/widgets/qtabbar.cpp10
-rw-r--r--src/widgets/widgets/qtabbar.h3
-rw-r--r--src/widgets/widgets/qwidgetlinecontrol.cpp9
-rw-r--r--tests/auto/auto.pro4
-rw-r--r--tests/auto/concurrent/qtconcurrentmap/tst_qtconcurrentmap.cpp9
-rw-r--r--tests/auto/corelib/codecs/utf8/tst_utf8.cpp10
-rw-r--r--tests/auto/corelib/io/qresourceengine/tst_qresourceengine.cpp2
-rw-r--r--tests/auto/corelib/io/qsettings/tst_qsettings.cpp163
-rw-r--r--tests/auto/corelib/json/tst_qtjson.cpp13
-rw-r--r--tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp48
-rw-r--r--tests/auto/corelib/tools/qsharedpointer/externaltests.cpp13
-rw-r--r--tests/auto/corelib/tools/qsharedpointer/qsharedpointer.pro2
-rw-r--r--tests/auto/corelib/tools/qtimeline/qtimeline.pro3
-rw-r--r--tests/auto/gui/kernel/kernel.pro1
-rw-r--r--tests/auto/network/kernel/qdnslookup/tst_qdnslookup.cpp10
-rw-r--r--tests/auto/other/headersclean/headersclean.pri6
-rw-r--r--tests/auto/other/other.pro4
-rw-r--r--tests/auto/other/qaccessibility/tst_qaccessibility.cpp96
-rw-r--r--tests/auto/other/qmultiscreen/.gitignore1
-rw-r--r--tests/auto/other/qmultiscreen/qmultiscreen.pro7
-rw-r--r--tests/auto/other/qmultiscreen/tst_qmultiscreen.cpp163
-rw-r--r--tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp2
-rw-r--r--tests/auto/sql/models/qsqltablemodel/tst_qsqltablemodel.cpp263
-rw-r--r--tests/auto/widgets/dialogs/qfilesystemmodel/tst_qfilesystemmodel.cpp2
-rw-r--r--tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp3
-rw-r--r--tests/auto/widgets/graphicsview/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp3
-rw-r--r--tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp60
-rw-r--r--tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp27
-rw-r--r--tests/auto/widgets/kernel/kernel.pro1
-rw-r--r--tests/auto/widgets/kernel/qshortcut/.gitignore (renamed from tests/auto/gui/kernel/qshortcut/.gitignore)0
-rw-r--r--tests/auto/widgets/kernel/qshortcut/qshortcut.pro (renamed from tests/auto/gui/kernel/qshortcut/qshortcut.pro)0
-rw-r--r--tests/auto/widgets/kernel/qshortcut/tst_qshortcut.cpp (renamed from tests/auto/gui/kernel/qshortcut/tst_qshortcut.cpp)0
-rw-r--r--tests/auto/widgets/kernel/qtooltip/tst_qtooltip.cpp17
-rw-r--r--tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp3
-rw-r--r--tests/auto/widgets/widgets/qdockwidget/tst_qdockwidget.cpp3
-rw-r--r--tools/configure/configureapp.cpp140
-rw-r--r--tools/configure/configureapp.h2
-rw-r--r--tools/configure/environment.cpp22
-rw-r--r--tools/configure/environment.h1
-rw-r--r--tools/configure/main.cpp10
448 files changed, 49250 insertions, 11276 deletions
diff --git a/.gitignore b/.gitignore
index 33387c5bc4..a9ee862c97 100644
--- a/.gitignore
+++ b/.gitignore
@@ -69,7 +69,7 @@ bin/moc*
bin/makeqpf*
bin/pixeltool*
bin/qmake*
-bin/qdoc3*
+bin/qdoc*
bin/qt3to4*
bin/qtdemo*
bin/qttracereplay*
diff --git a/src/plugins/platforms/uikit/quikiteventloop.h b/config.tests/arch/arch.cpp
index e7f503c42a..f942d0adc7 100644
--- a/src/plugins/platforms/uikit/quikiteventloop.h
+++ b/config.tests/arch/arch.cpp
@@ -3,7 +3,7 @@
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/
**
-** This file is part of the plugins of the Qt Toolkit.
+** This file is part of the FOO module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** GNU Lesser General Public License Usage
@@ -39,34 +39,45 @@
**
****************************************************************************/
-#ifndef QUIKITEVENTLOOP_H
-#define QUIKITEVENTLOOP_H
-
-#include "quikitsoftwareinputhandler.h"
-
-#include <QtCore/QEvent>
-#include <QtGui/QPlatformEventLoopIntegration>
-
-@class EventLoopHelper;
-@class NSTimer;
-
-QT_BEGIN_NAMESPACE
-
-class QUIKitEventLoop : public QPlatformEventLoopIntegration
-{
-public:
- QUIKitEventLoop();
- ~QUIKitEventLoop();
-
- void startEventLoop();
- void quitEventLoop();
- void qtNeedsToProcessEvents();
-
- EventLoopHelper *mHelper;
- NSTimer *mTimer;
- QUIKitSoftwareInputHandler *mInputHandler;
-};
-
-QT_END_NAMESPACE
-
+// NOTE: This file is not meant to be compiled, only preprocessed.
+#include "../../src/corelib/global/qprocessordetection.h"
+#undef alpha
+#undef arm
+#undef avr32
+#undef bfin
+#undef i386
+#undef x86_64
+#undef ia64
+#undef mips
+#undef power
+#undef s390
+#undef sh
+#undef sparc
+#undef unknown
+#if defined(Q_PROCESSOR_ALPHA)
+alpha
+#elif defined(Q_PROCESSOR_ARM)
+arm
+#elif defined(Q_PROCESSOR_AVR32)
+avr32
+#elif defined(Q_PROCESSOR_BLACKFIN)
+bfin
+#elif defined(Q_PROCESSOR_X86_32)
+i386
+#elif defined(Q_PROCESSOR_X86_64)
+x86_64
+#elif defined(Q_PROCESSOR_IA64)
+ia64
+#elif defined(Q_PROCESSOR_MIPS)
+mips
+#elif defined(Q_PROCESSOR_POWER)
+power
+#elif defined(Q_PROCESSOR_S390)
+s390
+#elif defined(Q_PROCESSOR_SH)
+sh
+#elif defined(Q_PROCESSOR_SPARC)
+sparc
+#else
+unknown
#endif
diff --git a/config.tests/arch/arch.pro b/config.tests/arch/arch.pro
new file mode 100644
index 0000000000..108f262a55
--- /dev/null
+++ b/config.tests/arch/arch.pro
@@ -0,0 +1,7 @@
+CONFIG -= qt debug_and_release
+# Detect target by preprocessing a file that uses Q_PROCESSOR_* macros from qprocessordetection.h
+COMMAND = $$QMAKE_CXX $$QMAKE_CXXFLAGS -E $$PWD/arch.cpp
+# 'false' as second argument to system() prevents qmake from stripping newlines
+COMPILER_ARCH = $$system($$COMMAND, false)
+# Message back to configure so that it can set QT_ARCH and QT_HOST_ARCH
+message($$COMPILER_ARCH)
diff --git a/configure b/configure
index 66c5f1a06d..93dda6fe6c 100755
--- a/configure
+++ b/configure
@@ -651,6 +651,7 @@ CFG_CONFIGURE_EXIT_ON_ERROR=yes
CFG_PROFILE=no
CFG_EXCEPTIONS=unspecified
CFG_GUI=auto # (yes|no|auto)
+CFG_WIDGETS=yes
CFG_QCONFIG=full
CFG_DEBUG=auto
CFG_MYSQL_CONFIG=
@@ -693,8 +694,13 @@ CFG_V8SNAPSHOT=auto
CFG_DECLARATIVE_DEBUG=yes
CFG_JAVASCRIPTCORE_JIT=auto
+# Target architecture
CFG_ARCH=
+# Host architecture, same as CFG_ARCH when not cross-compiling
CFG_HOST_ARCH=
+# Set when the -arch or -host-arch arguments are used
+OPT_OBSOLETE_HOST_ARG=no
+
CFG_USE_GNUMAKE=no
CFG_IM=yes
CFG_XINPUT2=auto
@@ -742,7 +748,6 @@ CFG_GETIFADDRS=auto
CFG_INOTIFY=auto
CFG_RPATH=yes
CFG_FRAMEWORK=auto
-CFG_MAC_ARCHS=
MAC_CONFIG_TEST_COMMANDLINE= # used to make the configure tests run with the correct arch's and SDK settings
CFG_MAC_DWARF2=auto
CFG_MAC_HARFBUZZ=no
@@ -774,6 +779,7 @@ CFG_NOPROCESS=no
CFG_ICU=auto
CFG_FORCE_ASSERTS=no
CFG_PCRE=auto
+QPA_PLATFORM_GUARD=yes
# initalize variables used for installation
QT_INSTALL_PREFIX=
@@ -1201,17 +1207,8 @@ while [ "$#" -gt 0 ]; do
UNKNOWN_OPT=yes
fi
;;
- arch)
- # if this is a Mac then "windows" probably means
- # we are cross-compiling for MinGW
- if [ "$BUILD_ON_MAC" = "yes" ] && [ "$VAL" != "windows" ]; then
- CFG_MAC_ARCHS="$CFG_MAC_ARCHS $VAL"
- else
- CFG_ARCH=$VAL
- fi
- ;;
- host-arch)
- CFG_HOST_ARCH=$VAL
+ arch|host-arch)
+ OPT_OBSOLETE_HOST_ARG=yes
;;
harfbuzz)
if [ "$BUILD_ON_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
@@ -1717,6 +1714,22 @@ while [ "$#" -gt 0 ]; do
fi
fi
;;
+ widgets)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
+ CFG_WIDGETS="yes"
+ elif [ "$VAL" = "no" ]; then
+ CFG_WIDGETS="no"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
+ qpa-platform-guard)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ QPA_PLATFORM_GUARD="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
dbus)
if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "linked" ]; then
CFG_DBUS="$VAL"
@@ -2420,13 +2433,6 @@ if [ "$UNAME_SYSTEM" = "SunOS" ]; then
fi
fi
-#-------------------------------------------------------------------------------
-# determine the system architecture
-#-------------------------------------------------------------------------------
-if [ "$OPT_VERBOSE" = "yes" ]; then
- echo "Determining system architecture... ($UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_MACHINE)"
-fi
-
if [ "$CFG_RTOS_ENABLED" = "no" ]; then
case `basename "$XPLATFORM"` in
qnx-* | vxworks-*)
@@ -2441,153 +2447,6 @@ if [ "$CFG_RTOS_ENABLED" = "no" ]; then
esac
fi
-if [ -z "${CFG_HOST_ARCH}" ]; then
- case "$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_MACHINE" in
- GNU:*:*)
- CFG_HOST_ARCH=`echo ${UNAME_MACHINE} | sed -e 's,[-/].*$,,'`
- case "$CFG_HOST_ARCH" in
- i?86)
- CFG_HOST_ARCH=i386
- ;;
- esac
- if [ "$OPT_VERBOSE" = "yes" ]; then
- echo " GNU/Hurd ($CFG_HOST_ARCH)"
- fi
- ;;
- IRIX*:*:*)
- CFG_HOST_ARCH=`uname -p`
- if [ "$OPT_VERBOSE" = "yes" ]; then
- echo " SGI ($CFG_HOST_ARCH)"
- fi
- ;;
- SunOS:5*:*)
- case "$UNAME_MACHINE" in
- sun4u*|sun4v*)
- if [ "$OPT_VERBOSE" = "yes" ]; then
- echo " Sun SPARC (sparc)"
- fi
- CFG_HOST_ARCH=sparc
- ;;
- i86pc)
- case "$PLATFORM" in
- *-64*)
- if [ "$OPT_VERBOSE" = "yes" ]; then
- echo " 64-bit AMD 80x86 (x86_64)"
- fi
- CFG_HOST_ARCH=x86_64
- ;;
- *)
- if [ "$OPT_VERBOSE" = "yes" ]; then
- echo " 32-bit Intel 80x86 (i386)"
- fi
- CFG_HOST_ARCH=i386
- ;;
- esac
- esac
- ;;
- AIX:*:00????????00)
- if [ "$OPT_VERBOSE" = "yes" ]; then
- echo " 64-bit IBM PowerPC (powerpc)"
- fi
- CFG_HOST_ARCH=powerpc
- ;;
- HP-UX:*:9000*)
- if [ "$OPT_VERBOSE" = "yes" ]; then
- echo " HP PA-RISC (parisc)"
- fi
- CFG_HOST_ARCH=parisc
- ;;
- *:*:i?86)
- if [ "$OPT_VERBOSE" = "yes" ]; then
- echo " 32-bit Intel 80x86 (i386)"
- fi
- CFG_HOST_ARCH=i386
- ;;
- *:*:x86_64|*:*:amd64)
- if [ "$PLATFORM" = "linux-g++-32" -o "$PLATFORM" = "linux-icc-32" ]; then
- if [ "$OPT_VERBOSE" = "yes" ]; then
- echo " 32 bit on 64-bit AMD 80x86 (i386)"
- fi
- CFG_HOST_ARCH=i386
- else
- if [ "$OPT_VERBOSE" = "yes" ]; then
- echo " 64-bit AMD 80x86 (x86_64)"
- fi
- CFG_HOST_ARCH=x86_64
- fi
- ;;
- *:*:ppc)
- if [ "$OPT_VERBOSE" = "yes" ]; then
- echo " 32-bit PowerPC (powerpc)"
- fi
- CFG_HOST_ARCH=powerpc
- ;;
- *:*:ppc64)
- if [ "$OPT_VERBOSE" = "yes" ]; then
- echo " 64-bit PowerPC (powerpc)"
- fi
- CFG_HOST_ARCH=powerpc
- ;;
- *:*:s390*)
- if [ "$OPT_VERBOSE" = "yes" ]; then
- echo " IBM S/390 (s390)"
- fi
- CFG_HOST_ARCH=s390
- ;;
- *:*:arm*)
- if [ "$OPT_VERBOSE" = "yes" ]; then
- echo " ARM (arm)"
- fi
- CFG_HOST_ARCH=arm
- ;;
- Linux:*:sparc*)
- if [ "$OPT_VERBOSE" = "yes" ]; then
- echo " Linux on SPARC"
- fi
- CFG_HOST_ARCH=sparc
- ;;
- QNX:*:*)
- case "$UNAME_MACHINE" in
- x86pc)
- if [ "$OPT_VERBOSE" = "yes" ]; then
- echo " QNX on Intel 80x86 (i386)"
- fi
- CFG_HOST_ARCH=i386
- ;;
- esac
- ;;
- *:*:*)
- if [ "$OPT_VERBOSE" = "yes" ]; then
- echo " Trying '$UNAME_MACHINE'..."
- fi
- CFG_HOST_ARCH="$UNAME_MACHINE"
- ;;
- esac
-fi
-
-if [ "$XPLATFORM_MINGW" = "yes" ]; then
- [ -z "$CFG_ARCH" ] && CFG_ARCH="windows"
-elif [ "$PLATFORM_MAC" = "yes" ] || [ -z "$CFG_ARCH" ]; then
- CFG_ARCH=$CFG_HOST_ARCH
-fi
-
-# for compatibility
-COMPAT_ARCH=
-case "$CFG_ARCH" in
-arm*)
- # previously, armv6 was a different arch
- CFG_ARCH=arm
- COMPAT_ARCH=armv6
- ;;
-esac
-
-if [ "$OPT_VERBOSE" = "yes" ]; then
- echo "System architecture: '$CFG_ARCH'"
- if [ "$PLATFORM_QPA" = "yes" ]; then
- echo "Host architecture: '$CFG_HOST_ARCH'"
- fi
-fi
-
#-------------------------------------------------------------------------------
# tests that don't need qmake (must be run before displaying help)
#-------------------------------------------------------------------------------
@@ -2625,11 +2484,11 @@ if [ "$QT_CROSS_COMPILE" = "yes" ]; then
echo >&2 "Please make sure you have a correctly set-up pkg-config"
echo >&2 "environment!"
echo >&2 ""
- if [ -z "$PKG_CONFIG_PATH" ]; then
+ if [ -z "$PKG_CONFIG_LIBDIR" ]; then
echo >&2 ""
- echo >&2 "Warning: PKG_CONFIG_PATH has not been set. This could mean"
- echo >&2 "the host compiler's .pc files will be used. This is probably"
- echo >&2 "not what you want."
+ echo >&2 "Warning: PKG_CONFIG_LIBDIR has not been set. This could mean"
+ echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
+ echo >&2 "This is probably not what you want."
echo >&2 ""
elif [ -z "$PKG_CONFIG_SYSROOT" ] && [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
echo >&2 ""
@@ -3548,9 +3407,6 @@ Qt/Mac only:
* -dwarf2 ............ Enable dwarf2 debugging symbols.
-no-dwarf2 ......... Disable dwarf2 debugging symbols.
- -arch <arch> ....... Build Qt for <arch>. Supported arch values: x86 x86_64.
- Only one arch value can be specified.
-
-sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
@@ -4038,6 +3894,33 @@ fi # Build qmake
# tests that need qmake
#-------------------------------------------------------------------------------
+#-------------------------------------------------------------------------------
+# determine the target and host architectures
+#-------------------------------------------------------------------------------
+
+# Use config.tests/arch/arch.pro to has the compiler tell us what the target architecture is
+CFG_ARCH=`"$outpath/bin/qmake" -spec "$XQMAKESPEC" -o /dev/null "$relpath/config.tests/arch/arch.pro" 2>&1 | sed -e "s,^Project MESSAGE: ,," -e "s,^#.*$,,g" | grep -v "^$"`
+[ -z "$CFG_ARCH" ] && CFG_ARCH="unknown"
+if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; then
+ # Do the same test again, using the host compiler
+ CFG_HOST_ARCH=`"$outpath/bin/qmake" -spec "$QMAKESPEC" -o /dev/null "$relpath/config.tests/arch/arch.pro" 2>&1 | sed -e "s,^Project MESSAGE: ,," -e "s,^#.*$,,g" | grep -v "^$"`
+ [ -z "$CFG_HOST_ARCH" ] && CFG_HOST_ARCH="unknown"
+else
+ # not cross compiling, host == target
+ CFG_HOST_ARCH="$CFG_ARCH"
+fi
+
+if [ "$OPT_VERBOSE" = "yes" ]; then
+ echo "System architecture: '$CFG_ARCH'"
+ if [ "$PLATFORM_QPA" = "yes" ]; then
+ echo "Host architecture: '$CFG_HOST_ARCH'"
+ fi
+fi
+
+#-------------------------------------------------------------------------------
+# functionality tests
+#-------------------------------------------------------------------------------
+
# detect availability of float math.h functions
if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/floatmath "floatmath" $L_FLAGS $I_FLAGS $l_FLAGS; then
CFG_USE_FLOATMATH=yes
@@ -4143,6 +4026,8 @@ if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
else
CFG_NEON=no
fi
+elif [ "$CFG_ARCH" != "arm" ]; then
+ CFG_NEON=no
fi
[ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
@@ -4174,6 +4059,10 @@ if [ "$CFG_LARGEFILE" = "auto" ]; then
CFG_LARGEFILE=yes
fi
+if [ "$CFG_GUI" = "no" ]; then
+ QPA_PLATFORM_GUARD=no
+fi
+
# detect how jpeg should be built
if [ "$CFG_JPEG" = "auto" ]; then
if [ "$CFG_SHARED" = "yes" ]; then
@@ -5228,7 +5117,8 @@ if [ "$PLATFORM_QPA" = "yes" ]; then
if [ "$PLATFORM_QPA" = "yes" ] && [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ]; then
if [ "$CFG_XCB" = "no" ]; then
- if [ "$ORIG_CFG_XCB" = "auto" ]; then
+ if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
+ ( [ "$ORIG_CFG_XCB" = "auto" ] ); then
echo "No QPA platform plugin enabled!"
echo " If you really want to build without a QPA platform plugin you must pass"
echo " -no-xcb. Doing this will produce a Qt that"
@@ -5522,29 +5412,27 @@ if [ "$CFG_MAC_DWARF2" = "yes" ]; then
QT_CONFIG="$QT_CONFIG dwarf2"
fi
-# Set the default Mac OS X arch if there are no "-arch" arguments on the configure line
+# Detect the default arch (x86 or x86_64) on Mac OS X
if [ "$BUILD_ON_MAC" = "yes" ]; then
- DEFAULT_ARCH="$CFG_MAC_ARCHS"
- if [ -z "$DEFAULT_ARCH" ]; then
- case `file "${outpath}/bin/qmake"` in
- *i?86)
- DEFAULT_ARCH=x86
- ;;
- *x86_64)
- DEFAULT_ARCH=x86_64
- ;;
- *ppc|*ppc64|*)
- # unsupported/unknown
- ;;
- esac
- fi
+ DEFAULT_ARCH=
+ case `file "${outpath}/bin/qmake"` in
+ *i?86)
+ DEFAULT_ARCH=x86
+ ;;
+ *x86_64)
+ DEFAULT_ARCH=x86_64
+ ;;
+ *ppc|*ppc64|*)
+ # unsupported/unknown
+ ;;
+ esac
+
if [ -n "$DEFAULT_ARCH" ]; then
[ "$OPT_VERBOSE" = "yes" ] && echo "Setting default Mac OS X architechture to $DEFAULT_ARCH."
QT_CONFIG="$QT_CONFIG $DEFAULT_ARCH"
QMAKE_CONFIG="$QMAKE_CONFIG $DEFAULT_ARCH"
- # Make the application arch follow the Qt arch for single arch builds.
- # (for multiple-arch builds, set CONFIG manually in the application .pro file)
- [ `echo "$DEFAULT_ARCH" | wc -w` -eq 1 ] && QTCONFIG_CONFIG="$QTCONFIG_CONFIG $DEFAULT_ARCH"
+ # Make the application arch follow the Qt arch
+ QTCONFIG_CONFIG="$QTCONFIG_CONFIG $DEFAULT_ARCH"
fi
fi
@@ -5737,8 +5625,12 @@ if [ "$CFG_GUI" = "auto" ]; then
fi
if [ "$CFG_GUI" = "no" ]; then
QT_CONFIG="$QT_CONFIG no-gui"
+ CFG_WIDGETS="no"
+fi
+if [ "$CFG_WIDGETS" = "no" ]; then
+ QT_CONFIG="$QT_CONFIG no-widgets"
+ QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
fi
-
if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
#On Mac we implicitly link against libz, so we
@@ -6156,17 +6048,6 @@ cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
#endif
EOF
-CFG_ARCH_STR=`echo $CFG_ARCH | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-CFG_HOST_ARCH_STR=`echo $CFG_HOST_ARCH | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
-/* Machine Architecture */
-#ifndef QT_BOOTSTRAPPED
-# define QT_ARCH_${CFG_ARCH_STR}
-#else
-# define QT_ARCH_${CFG_HOST_ARCH_STR}
-#endif
-EOF
-
echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
[ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
@@ -6389,6 +6270,7 @@ cat >>"$QTCONFIG.tmp" <<EOF
#configuration
CONFIG += $QTCONFIG_CONFIG
QT_ARCH = $CFG_ARCH
+QT_HOST_ARCH = $CFG_HOST_ARCH
QT_EDITION = $Edition
QT_CONFIG += $QT_CONFIG
@@ -6583,12 +6465,7 @@ else
echo "Building for: $XPLATFORM"
fi
-if [ ! -z "$CFG_MAC_ARCHS" ]; then
- echo "Architecture: $CFG_ARCH ($CFG_MAC_ARCHS )"
-else
- echo "Architecture: $CFG_ARCH"
-fi
-
+echo "Architecture: $CFG_ARCH"
if [ "$PLATFORM_QPA" = "yes" ]; then
echo "Host architecture: $CFG_HOST_ARCH"
fi
@@ -6623,6 +6500,7 @@ fi
[ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
echo "QtConcurrent code ...... $CFG_CONCURRENT"
echo "QtGui module ........... $CFG_GUI"
+echo "QtWidgets module ....... $CFG_WIDGETS"
if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
else
@@ -6631,10 +6509,11 @@ fi
echo "Declarative debugging ...$CFG_DECLARATIVE_DEBUG"
echo "STL support ............ $CFG_STL"
echo "PCH support ............ $CFG_PRECOMPILE"
-echo "MMX/3DNOW/SSE/SSE2/SSE3. ${CFG_MMX}/${CFG_3DNOW}/${CFG_SSE}/${CFG_SSE2}/${CFG_SSE3}"
-echo "SSSE3/SSE4.1/SSE4.2..... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
-echo "AVX..................... ${CFG_AVX}"
-if [ "$CFG_ARCH" = "arm" ] || [ "$CFG_ARCH" = "armv6" ]; then
+if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
+ echo "MMX/3DNOW/SSE/SSE2/SSE3. ${CFG_MMX}/${CFG_3DNOW}/${CFG_SSE}/${CFG_SSE2}/${CFG_SSE3}"
+ echo "SSSE3/SSE4.1/SSE4.2..... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
+ echo "AVX..................... ${CFG_AVX}"
+elif [ "$CFG_ARCH" = "arm" ]; then
echo "iWMMXt support ......... ${CFG_IWMMXT}"
echo "NEON support ........... ${CFG_NEON}"
fi
@@ -6997,14 +6876,21 @@ rm -f .projects .projects.3
#-------------------------------------------------------------------------------
# check for platforms that we don't yet know about
#-------------------------------------------------------------------------------
-if [ "$CFG_ARCH" = "generic" ]; then
+if [ "$CFG_ARCH" = "unknown" ]; then
cat <<EOF
- NOTICE: Atomic operations are not yet supported for this
- architecture.
+ NOTICE: configure was unable to determine the architecture
+ for the $XQMAKESPEC target.
+
+ Qt will not use a specialized implementation for any atomic
+ operations. Instead a generic implemention based on either GCC
+ intrinsics or C++11 std::atomic<T> will be used (when
+ available). The generic implementations are generally as fast
+ as and always as safe as a specialized implementation.
- Qt will use the 'generic' architecture instead, which uses a
- single pthread_mutex_t to protect all atomic operations. This
+ If no generic implementation is available, Qt will use a
+ fallback UNIX implementation which uses a single
+ pthread_mutex_t to protect all atomic operations. This
implementation is the slow (but safe) fallback implementation
for architectures Qt does not yet support.
EOF
@@ -7043,6 +6929,21 @@ EOF
fi
#-------------------------------------------------------------------------------
+# check if the user passed the obsoleted -arch or -host-arch options
+#-------------------------------------------------------------------------------
+if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
+cat <<EOF
+
+ NOTICE: The -arch and -host-arch options are obsolete.
+
+ Qt now detects the target and host architectures based on compiler
+ output. Qt will be built using $CFG_ARCH for the target architecture
+ and $CFG_HOST_ARCH for the host architecture (note that these two
+ will be the same unless you are cross-compiling).
+EOF
+fi
+
+#-------------------------------------------------------------------------------
# finally save the executed command to another script
#-------------------------------------------------------------------------------
if [ `basename $0` != "config.status" ]; then
diff --git a/dist/changes-5.0.0 b/dist/changes-5.0.0
index 79a4eb0455..0fd7cffb2f 100644
--- a/dist/changes-5.0.0
+++ b/dist/changes-5.0.0
@@ -364,6 +364,22 @@ QtWidgets
the proper Qt API: due to the version bump, QStyle will try to use the additional
QStyleOption members, which are left default-initialized.
+* QHeaderView - The following functions have been obsoleted.
+
+ * void setMovable(bool movable) - use void setSectionsMovable(bool movable) instead.
+
+ * bool isMovable() const - use bool sectionsMovable() const instead.
+
+ * void setClickable(bool clickable) - use void setSectionsClickable(bool clickable) instead.
+
+ * bool isClickable() const - use bool sectionsClickable() instead.
+
+ * void setResizeMode(int logicalindex, ResizeMode mode) -
+ use setSectionResizeMode(logicalindex, mode) instead.
+
+ * ResizeMode resizeMode(int logicalindex) const -
+ use sectionResizeMode(int logicalindex) instead.
+
QtNetwork
---------
* QHostAddress::isLoopback() API added. Returns true if the address is
@@ -409,6 +425,9 @@ model methods setData() or setRecord().
before doing anything. Previously, it would remove what it could and
ignore the rest of the range.
+* removeRows(), for OnFieldChange and OnRowChange, allows only 1 row to be
+removed and only if there are no other changed rows.
+
* setRecord() and insertRecord()
-Only use fields where generated flag is set to true. This is
is consistent with the meaning of the flag.
@@ -416,6 +435,7 @@ ignore the rest of the range.
map were simply ignored.
-For OnManualSubmit, insertRecord() no longer leaves behind an empty
row if setRecord() fails.
+ -setRecord() now automatically submits for OnRowChange.
* QSqlQueryModel::indexInQuery() is now virtual. See
QSqlTableModel::indexInQuery() as example of how to implement in a
@@ -432,6 +452,17 @@ done after committing. This includes deleted rows which remain in
the model as blank rows until the application calls select(). Instead,
selectRow() is called to refresh only the affected row.
+* QSqlTableModel::isDirty(): New overloaded method to check whether model
+has any changes to submit. QTBUG-3108
+
+* QSqlTableModel::setData() and setRecord() no longer revert pending changes
+that fail upon resubmitting for edit strategies OnFieldChange and OnRowChange.
+Instead, pending (failed) changes cause new changes inappropriate to the
+edit strategy to be refused. The application should resolve or revert pending
+changes. insertRows() and insertRecord() also respect the edit strategy.
+
+* QSqlTableModel::setData() and setRecord() in OnRowChange no longer have the
+side effect of submitting the cached row when invoked on a different row.
****************************************************************************
* Database Drivers *
****************************************************************************
diff --git a/doc/src/sql/qtsql.qdoc b/doc/src/sql/qtsql.qdoc
index 3ced6b8680..6708deaaa8 100644
--- a/doc/src/sql/qtsql.qdoc
+++ b/doc/src/sql/qtsql.qdoc
@@ -27,7 +27,7 @@
/*!
\module QtSql
- \title QtSql Module
+ \title Qt SQL Module
\ingroup modules
To include the definitions of the module's classes, use the
diff --git a/doc/src/sql/sql-programming/sql-driver.qdoc b/doc/src/sql/sql-programming/sql-driver.qdoc
index eec61abd15..41995d8d38 100644
--- a/doc/src/sql/sql-programming/sql-driver.qdoc
+++ b/doc/src/sql/sql-programming/sql-driver.qdoc
@@ -28,11 +28,11 @@
/*!
\page sql-driver.html
\title SQL Database Drivers
- \brief How to configure and install QtSql drivers for supported databases.
+ \brief How to configure and install Qt SQL drivers for supported databases.
\ingroup qt-sql
- The QtSql module uses driver \l{How to Create Qt
+ The Qt SQL module uses driver \l{How to Create Qt
Plugins}{plugins} to communicate with the different database
APIs. Since Qt's SQL Module API is database-independent, all
database-specific code is contained within these drivers. Several
diff --git a/examples/desktop/systray/window.cpp b/examples/desktop/systray/window.cpp
index 73dc910d3b..c75e3590ba 100644
--- a/examples/desktop/systray/window.cpp
+++ b/examples/desktop/systray/window.cpp
@@ -167,9 +167,9 @@ void Window::createIconGroupBox()
iconLabel = new QLabel("Icon:");
iconComboBox = new QComboBox;
- iconComboBox->addItem(QIcon(":/images/bad.svg"), tr("Bad"));
- iconComboBox->addItem(QIcon(":/images/heart.svg"), tr("Heart"));
- iconComboBox->addItem(QIcon(":/images/trash.svg"), tr("Trash"));
+ iconComboBox->addItem(QIcon(":/images/bad.png"), tr("Bad"));
+ iconComboBox->addItem(QIcon(":/images/heart.png"), tr("Heart"));
+ iconComboBox->addItem(QIcon(":/images/trash.png"), tr("Trash"));
showIconCheckBox = new QCheckBox(tr("Show icon"));
showIconCheckBox->setChecked(true);
diff --git a/examples/draganddrop/puzzle/puzzlewidget.cpp b/examples/draganddrop/puzzle/puzzlewidget.cpp
index 1c5b0cc5d6..2e39f84e9e 100644
--- a/examples/draganddrop/puzzle/puzzlewidget.cpp
+++ b/examples/draganddrop/puzzle/puzzlewidget.cpp
@@ -78,7 +78,7 @@ void PuzzleWidget::dragLeaveEvent(QDragLeaveEvent *event)
void PuzzleWidget::dragMoveEvent(QDragMoveEvent *event)
{
- QRect updateRect = highlightedRect.unite(targetSquare(event->pos()));
+ QRect updateRect = highlightedRect.united(targetSquare(event->pos()));
if (event->mimeData()->hasFormat("image/x-puzzle-piece")
&& findPiece(targetSquare(event->pos())) == -1) {
diff --git a/examples/examples.pro b/examples/examples.pro
index 2e2f606e85..e402f29c98 100644
--- a/examples/examples.pro
+++ b/examples/examples.pro
@@ -31,7 +31,6 @@ SUBDIRS = \
}
wince*|embedded|x11:!contains(QT_CONFIG, no-gui): SUBDIRS += embedded
-embedded:SUBDIRS += qws
contains(QT_BUILD_PARTS, tools):!contains(QT_CONFIG, no-gui):SUBDIRS += qtestlib
contains(QT_CONFIG, opengl): SUBDIRS += opengl
contains(QT_CONFIG, dbus): SUBDIRS += dbus
diff --git a/examples/itemviews/puzzle/puzzlewidget.cpp b/examples/itemviews/puzzle/puzzlewidget.cpp
index a622050fd3..96d8c6068f 100644
--- a/examples/itemviews/puzzle/puzzlewidget.cpp
+++ b/examples/itemviews/puzzle/puzzlewidget.cpp
@@ -78,7 +78,7 @@ void PuzzleWidget::dragLeaveEvent(QDragLeaveEvent *event)
void PuzzleWidget::dragMoveEvent(QDragMoveEvent *event)
{
- QRect updateRect = highlightedRect.unite(targetSquare(event->pos()));
+ QRect updateRect = highlightedRect.united(targetSquare(event->pos()));
if (event->mimeData()->hasFormat("image/x-puzzle-piece")
&& findPiece(targetSquare(event->pos())) == -1) {
diff --git a/examples/qws/README b/examples/qws/README
deleted file mode 100644
index d24fa59a35..0000000000
--- a/examples/qws/README
+++ /dev/null
@@ -1,7 +0,0 @@
-These examples show how to take advantage of features specifically designed
-for use on systems with limited resources, specialized hardware, and small
-screens.
-
-
-Documentation for these examples can be found via the Examples
-link in the main Qt documentation.
diff --git a/examples/qws/dbscreen/dbscreen.cpp b/examples/qws/dbscreen/dbscreen.cpp
deleted file mode 100644
index 0049fb4a62..0000000000
--- a/examples/qws/dbscreen/dbscreen.cpp
+++ /dev/null
@@ -1,95 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "dbscreen.h"
-#include <QApplication>
-
-//! [0]
-bool DBScreen::initDevice()
-{
- if (!QLinuxFbScreen::initDevice())
- return false;
-
- QScreenCursor::initSoftwareCursor();
- image = new QImage(deviceWidth(), deviceHeight(), pixelFormat());
- painter = new QPainter(image);
-
- return true;
-}
-//! [0]
-
-//! [1]
-void DBScreen::shutdownDevice()
-{
- QLinuxFbScreen::shutdownDevice();
- delete painter;
- delete image;
-}
-//! [1]
-
-//! [2]
-void DBScreen::solidFill(const QColor &color, const QRegion &region)
-{
- QVector<QRect> rects = region.rects();
- for (int i = 0; i < rects.size(); i++)
- painter->fillRect(rects.at(i), color);
-}
-//! [2]
-
-//! [3]
-void DBScreen::blit(const QImage &image, const QPoint &topLeft, const QRegion &region)
-{
- QVector<QRect> rects = region.rects();
- for (int i = 0; i < rects.size(); i++) {
- QRect destRect = rects.at(i);
- QRect srcRect(destRect.x()-topLeft.x(), destRect.y()-topLeft.y(), destRect.width(), destRect.height());
- painter->drawImage(destRect.topLeft(), image, srcRect);
- }
-}
-//! [3]
-
-//! [4]
-void DBScreen::exposeRegion(QRegion region, int changing)
-{
- QLinuxFbScreen::exposeRegion(region, changing);
- QLinuxFbScreen::blit(*image, QPoint(0, 0), region);
-}
-//! [4]
-
diff --git a/examples/qws/dbscreen/dbscreen.desktop b/examples/qws/dbscreen/dbscreen.desktop
deleted file mode 100644
index 1726e6cb8d..0000000000
--- a/examples/qws/dbscreen/dbscreen.desktop
+++ /dev/null
@@ -1,11 +0,0 @@
-[Desktop Entry]
-Encoding=UTF-8
-Version=1.0
-Type=Application
-Terminal=false
-Name=Double Buffered Graphics Driver
-Exec=/opt/usr/bin/dbscreen
-Icon=dbscreen
-X-Window-Icon=
-X-HildonDesk-ShowInToolbar=true
-X-Osso-Type=application/x-executable
diff --git a/examples/qws/dbscreen/dbscreen.h b/examples/qws/dbscreen/dbscreen.h
deleted file mode 100644
index f52fa04365..0000000000
--- a/examples/qws/dbscreen/dbscreen.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef DBSCREEN_H
-#define DBSCREEN_H
-
-#include <QLinuxFbScreen>
-#include <QPainter>
-
-//! [0]
-class DBScreen : public QLinuxFbScreen
-{
-public:
- DBScreen(int displayId) : QLinuxFbScreen(displayId) {};
- ~DBScreen() {}
- bool initDevice();
- void shutdownDevice();
- void blit(const QImage &image, const QPoint &topLeft, const QRegion &region);
- void solidFill(const QColor &color, const QRegion &region);
- void exposeRegion(QRegion region, int changing);
-
-private:
- QPainter *painter;
- QImage *image;
-};
-//! [0]
-
-#endif // DBSCREEN_H
-
diff --git a/examples/qws/dbscreen/dbscreen.pro b/examples/qws/dbscreen/dbscreen.pro
deleted file mode 100644
index e20e3e1b55..0000000000
--- a/examples/qws/dbscreen/dbscreen.pro
+++ /dev/null
@@ -1,13 +0,0 @@
-TEMPLATE = lib
-CONFIG += plugin
-
-TARGET = dbscreen
-target.path += $$[QT_INSTALL_PLUGINS]/gfxdrivers
-INSTALLS += target
-
-HEADERS = dbscreen.h
-SOURCES = dbscreendriverplugin.cpp \
- dbscreen.cpp
-
-QT += widgets
-simulator: warning(This example does not work on Simulator platform)
diff --git a/examples/qws/dbscreen/dbscreendriverplugin.cpp b/examples/qws/dbscreen/dbscreendriverplugin.cpp
deleted file mode 100644
index 4a4645d374..0000000000
--- a/examples/qws/dbscreen/dbscreendriverplugin.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QScreenDriverPlugin>
-#include "dbscreen.h"
-
-//! [0]
-class DBScreenDriverPlugin : public QScreenDriverPlugin
-{
-public:
- DBScreenDriverPlugin();
- QScreen* create(const QString& key, int displayId);
- QStringList keys () const;
-};
-//! [0]
-
-DBScreenDriverPlugin::DBScreenDriverPlugin() : QScreenDriverPlugin()
-{
-}
-
-//! [1]
-QScreen* DBScreenDriverPlugin::create(const QString& key, int displayId)
-{
- if (key.toLower() != "dbscreen")
- return 0;
-
- return new DBScreen(displayId);
-}
-//! [1]
-
-//! [2]
-QStringList DBScreenDriverPlugin::keys() const
-{
- return QStringList() << "dbscreen";
-}
-//! [2] //! [3]
-
-Q_EXPORT_PLUGIN2(dbscreen, DBScreenDriverPlugin)
-//! [3]
diff --git a/examples/qws/framebuffer/framebuffer.desktop b/examples/qws/framebuffer/framebuffer.desktop
deleted file mode 100644
index 030f264cad..0000000000
--- a/examples/qws/framebuffer/framebuffer.desktop
+++ /dev/null
@@ -1,11 +0,0 @@
-[Desktop Entry]
-Encoding=UTF-8
-Version=1.0
-Type=Application
-Terminal=false
-Name=Linux Framebuffer
-Exec=/opt/usr/bin/framebuffer
-Icon=framebuffer
-X-Window-Icon=
-X-HildonDesk-ShowInToolbar=true
-X-Osso-Type=application/x-executable
diff --git a/examples/qws/framebuffer/framebuffer.pro b/examples/qws/framebuffer/framebuffer.pro
deleted file mode 100644
index 1043917a68..0000000000
--- a/examples/qws/framebuffer/framebuffer.pro
+++ /dev/null
@@ -1,15 +0,0 @@
-TEMPLATE = app
-TARGET = framebuffer
-CONFIG -= qt
-
-SOURCES += main.c
-
-# install
-target.path = $$[QT_INSTALL_EXAMPLES]/qtbase/qws/framebuffer
-sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS framebuffer.pro
-sources.path = $$[QT_INSTALL_EXAMPLES]/qtbase/qws/framebuffer
-INSTALLS += target sources
-QT += widgets
-
-
-simulator: warning(This example does not work on Simulator platform)
diff --git a/examples/qws/framebuffer/main.c b/examples/qws/framebuffer/main.c
deleted file mode 100644
index da11d516a6..0000000000
--- a/examples/qws/framebuffer/main.c
+++ /dev/null
@@ -1,585 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <stdlib.h>
-#include <unistd.h>
-#include <stdio.h>
-#include <fcntl.h>
-#include <linux/fb.h>
-#include <linux/kd.h>
-#include <sys/mman.h>
-#include <sys/ioctl.h>
-#include <sys/time.h>
-#include <string.h>
-#include <errno.h>
-
-struct fb_var_screeninfo vinfo;
-struct fb_fix_screeninfo finfo;
-char *frameBuffer = 0;
-int fbFd = 0;
-int ttyFd = 0;
-
-void printFixedInfo()
-{
- printf("Fixed screen info:\n"
- "\tid: %s\n"
- "\tsmem_start: 0x%lx\n"
- "\tsmem_len: %d\n"
- "\ttype: %d\n"
- "\ttype_aux: %d\n"
- "\tvisual: %d\n"
- "\txpanstep: %d\n"
- "\typanstep: %d\n"
- "\tywrapstep: %d\n"
- "\tline_length: %d\n"
- "\tmmio_start: 0x%lx\n"
- "\tmmio_len: %d\n"
- "\taccel: %d\n"
- "\n",
- finfo.id, finfo.smem_start, finfo.smem_len, finfo.type,
- finfo.type_aux, finfo.visual, finfo.xpanstep, finfo.ypanstep,
- finfo.ywrapstep, finfo.line_length, finfo.mmio_start,
- finfo.mmio_len, finfo.accel);
-}
-
-void printVariableInfo()
-{
- printf("Variable screen info:\n"
- "\txres: %d\n"
- "\tyres: %d\n"
- "\txres_virtual: %d\n"
- "\tyres_virtual: %d\n"
- "\tyoffset: %d\n"
- "\txoffset: %d\n"
- "\tbits_per_pixel: %d\n"
- "\tgrayscale: %d\n"
- "\tred: offset: %2d, length: %2d, msb_right: %2d\n"
- "\tgreen: offset: %2d, length: %2d, msb_right: %2d\n"
- "\tblue: offset: %2d, length: %2d, msb_right: %2d\n"
- "\ttransp: offset: %2d, length: %2d, msb_right: %2d\n"
- "\tnonstd: %d\n"
- "\tactivate: %d\n"
- "\theight: %d\n"
- "\twidth: %d\n"
- "\taccel_flags: 0x%x\n"
- "\tpixclock: %d\n"
- "\tleft_margin: %d\n"
- "\tright_margin: %d\n"
- "\tupper_margin: %d\n"
- "\tlower_margin: %d\n"
- "\thsync_len: %d\n"
- "\tvsync_len: %d\n"
- "\tsync: %d\n"
- "\tvmode: %d\n"
- "\n",
- vinfo.xres, vinfo.yres, vinfo.xres_virtual, vinfo.yres_virtual,
- vinfo.xoffset, vinfo.yoffset, vinfo.bits_per_pixel, vinfo.grayscale,
- vinfo.red.offset, vinfo.red.length, vinfo.red.msb_right,
- vinfo.green.offset, vinfo.green.length, vinfo.green.msb_right,
- vinfo.blue.offset, vinfo.blue.length, vinfo.blue.msb_right,
- vinfo.transp.offset, vinfo.transp.length, vinfo.transp.msb_right,
- vinfo.nonstd, vinfo.activate, vinfo.height, vinfo.width,
- vinfo.accel_flags, vinfo.pixclock, vinfo.left_margin,
- vinfo.right_margin, vinfo.upper_margin, vinfo.lower_margin,
- vinfo.hsync_len, vinfo.vsync_len, vinfo.sync, vinfo.vmode);
-}
-
-long switchToGraphicsMode()
-{
- const char *const devs[] = {"/dev/tty0", "/dev/tty", "/dev/console", 0};
- const char * const *dev;
- long oldMode = KD_TEXT;
-
- for (dev = devs; *dev; ++dev) {
- ttyFd = open(*dev, O_RDWR);
- if (ttyFd != -1)
- break;
- printf("Opening tty device %s failed: %s\n", *dev, strerror(errno));
- }
-
- ioctl(ttyFd, KDGETMODE, &oldMode);
- if (oldMode == KD_GRAPHICS) {
- printf("Was in graphics mode already. Skipping\n");
- return oldMode;
- }
- int ret = ioctl(ttyFd, KDSETMODE, KD_GRAPHICS);
- if (ret == -1) {
- printf("Switch to graphics mode failed: %s\n", strerror(errno));
- return oldMode;
- }
-
- printf("Successfully switched to graphics mode.\n\n");
-
- return oldMode;
-}
-
-void restoreTextMode(long oldMode)
-{
- if (ttyFd == -1)
- return;
-
- ioctl(ttyFd, KDSETMODE, oldMode);
- close(ttyFd);
-}
-
-struct fb_cmap oldPalette;
-struct fb_cmap palette;
-int paletteSize = 0;
-
-void initPalette_16()
-{
- if (finfo.type == FB_TYPE_PACKED_PIXELS) {
- // We'll setup a grayscale map for 4bpp linear
- int val = 0;
- int i;
- for (i = 0; i < 16; ++i) {
- palette.red[i] = (val << 8) | val;
- palette.green[i] = (val << 8) | val;
- palette.blue[i] = (val << 8) | val;
- val += 17;
- }
- return;
- }
-
- // Default 16 colour palette
- unsigned char reds[16] = { 0x00, 0x7F, 0xBF, 0xFF, 0xFF, 0xA2,
- 0x00, 0xFF, 0xFF, 0x00, 0x7F, 0x7F,
- 0x00, 0x00, 0x00, 0x82 };
- unsigned char greens[16] = { 0x00, 0x7F, 0xBF, 0xFF, 0x00, 0xC5,
- 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00,
- 0x00, 0x7F, 0x7F, 0x7F };
- unsigned char blues[16] = { 0x00, 0x7F, 0xBF, 0xFF, 0x00, 0x11,
- 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x7F,
- 0x7F, 0x7F, 0x00, 0x00 };
-
- int i;
- for (i = 0; i < 16; ++i) {
- palette.red[i] = ((reds[i]) << 8) | reds[i];
- palette.green[i] = ((greens[i]) << 8) | greens[i];
- palette.blue[i] = ((blues[i]) << 8) | blues[i];
- palette.transp[i] = 0;
- }
-}
-
-void initPalette_256()
-{
- if (vinfo.grayscale) {
- int i;
- for (i = 0; i < 256; ++i) {
- unsigned short c = (i << 8) | i;
- palette.red[i] = c;
- palette.green[i] = c;
- palette.blue[i] = c;
- palette.transp[i] = 0;
- }
- return;
- }
-
- // 6x6x6 216 color cube
- int i = 0;
- int ir, ig, ib;
- for (ir = 0x0; ir <= 0xff; ir += 0x33) {
- for (ig = 0x0; ig <= 0xff; ig += 0x33) {
- for (ib = 0x0; ib <= 0xff; ib += 0x33) {
- palette.red[i] = (ir << 8)|ir;
- palette.green[i] = (ig << 8)|ig;
- palette.blue[i] = (ib << 8)|ib;
- palette.transp[i] = 0;
- ++i;
- }
- }
- }
-}
-
-void initPalette()
-{
- switch (vinfo.bits_per_pixel) {
- case 8: paletteSize = 256; break;
- case 4: paletteSize = 16; break;
- default: break;
- }
-
- if (!paletteSize)
- return; /* not using a palette */
-
- /* read old palette */
- oldPalette.start = 0;
- oldPalette.len = paletteSize;
- oldPalette.red = (unsigned short*)malloc(sizeof(unsigned short)*paletteSize);
- oldPalette.green = (unsigned short*)malloc(sizeof(unsigned short)*paletteSize);
- oldPalette.blue=(unsigned short*)malloc(sizeof(unsigned short)*paletteSize);
- oldPalette.transp=(unsigned short*)malloc(sizeof(unsigned short)*paletteSize);
- if (ioctl(ttyFd, FBIOGETCMAP, &oldPalette) == -1)
- perror("initPalette: error reading palette");
-
- /* create new palette */
- palette.start = 0;
- palette.len = paletteSize;
- palette.red = (unsigned short*)malloc(sizeof(unsigned short)*paletteSize);
- palette.green = (unsigned short*)malloc(sizeof(unsigned short)*paletteSize);
- palette.blue = (unsigned short*)malloc(sizeof(unsigned short)*paletteSize);
- palette.transp = (unsigned short*)malloc(sizeof(unsigned short)*paletteSize);
- switch (paletteSize) {
- case 16: initPalette_16(); break;
- case 256: initPalette_256(); break;
- default: break;
- }
-
- /* set new palette */
- if (ioctl(ttyFd, FBIOPUTCMAP, &palette) == -1)
- perror("initPalette: error setting palette");
-}
-
-void resetPalette()
-{
- if (paletteSize == 0)
- return;
-
- if (ioctl(ttyFd, FBIOPUTCMAP, &oldPalette) == -1)
- perror("resetPalette");
-
- free(oldPalette.red);
- free(oldPalette.green);
- free(oldPalette.blue);
- free(oldPalette.transp);
-
- free(palette.red);
- free(palette.green);
- free(palette.blue);
- free(palette.transp);
-}
-
-void drawRect_rgb32(int x0, int y0, int width, int height, int color)
-{
- const int bytesPerPixel = 4;
- const int stride = finfo.line_length / bytesPerPixel;
-
- int *dest = (int*)(frameBuffer)
- + (y0 + vinfo.yoffset) * stride
- + (x0 + vinfo.xoffset);
-
- int x, y;
- for (y = 0; y < height; ++y) {
- for (x = 0; x < width; ++x) {
- dest[x] = color;
- }
- dest += stride;
- }
-}
-
-void drawRect_rgb18(int x0, int y0, int width, int height, int color)
-{
- const int bytesPerPixel = 3;
- const int stride = finfo.line_length - width * bytesPerPixel;
- const int red = (color & 0xff0000) >> 16;
- const int green = (color & 0xff00) >> 8;
- const int blue = (color & 0xff);
- const unsigned int packed = (blue >> 2) |
- ((green >> 2) << 6) |
- ((red >> 2) << 12);
- const char color18[3] = { packed & 0xff,
- (packed & 0xff00) >> 8,
- (packed & 0xff0000) >> 16 };
-
- char *dest = (char*)(frameBuffer)
- + (y0 + vinfo.yoffset) * stride
- + (x0 + vinfo.xoffset);
-
- int x, y;
- for (y = 0; y < height; ++y) {
- for (x = 0; x < width; ++x) {
- *dest++ = color18[0];
- *dest++ = color18[1];
- *dest++ = color18[2];
- }
- dest += stride;
- }
-}
-
-void drawRect_rgb16(int x0, int y0, int width, int height, int color)
-{
- const int bytesPerPixel = 2;
- const int stride = finfo.line_length / bytesPerPixel;
- const int red = (color & 0xff0000) >> (16 + 3);
- const int green = (color & 0xff00) >> (8 + 2);
- const int blue = (color & 0xff) >> 3;
- const short color16 = blue | (green << 5) | (red << (5 + 6));
-
- short *dest = (short*)(frameBuffer)
- + (y0 + vinfo.yoffset) * stride
- + (x0 + vinfo.xoffset);
-
- int x, y;
- for (y = 0; y < height; ++y) {
- for (x = 0; x < width; ++x) {
- dest[x] = color16;
- }
- dest += stride;
- }
-}
-
-void drawRect_rgb15(int x0, int y0, int width, int height, int color)
-{
- const int bytesPerPixel = 2;
- const int stride = finfo.line_length / bytesPerPixel;
- const int red = (color & 0xff0000) >> (16 + 3);
- const int green = (color & 0xff00) >> (8 + 3);
- const int blue = (color & 0xff) >> 3;
- const short color15 = blue | (green << 5) | (red << (5 + 5));
-
- short *dest = (short*)(frameBuffer)
- + (y0 + vinfo.yoffset) * stride
- + (x0 + vinfo.xoffset);
-
- int x, y;
- for (y = 0; y < height; ++y) {
- for (x = 0; x < width; ++x) {
- dest[x] = color15;
- }
- dest += stride;
- }
-}
-
-void drawRect_palette(int x0, int y0, int width, int height, int color)
-{
- const int bytesPerPixel = 1;
- const int stride = finfo.line_length / bytesPerPixel;
- const unsigned char color8 = color;
-
- unsigned char *dest = (unsigned char*)(frameBuffer)
- + (y0 + vinfo.yoffset) * stride
- + (x0 + vinfo.xoffset);
-
- int x, y;
- for (y = 0; y < height; ++y) {
- for (x = 0; x < width; ++x) {
- dest[x] = color8;
- }
- dest += stride;
- }
-}
-
-void drawRect(int x0, int y0, int width, int height, int color)
-{
- switch (vinfo.bits_per_pixel) {
- case 32:
- drawRect_rgb32(x0, y0, width, height, color);
- break;
- case 18:
- drawRect_rgb18(x0, y0, width, height, color);
- break;
- case 16:
- drawRect_rgb16(x0, y0, width, height, color);
- break;
- case 15:
- drawRect_rgb15(x0, y0, width, height, color);
- break;
- case 8:
- drawRect_palette(x0, y0, width, height, color);
- break;
- case 4:
- drawRect_palette(x0, y0, width, height, color);
- break;
- default:
- printf("Warning: drawRect() not implemented for color depth %i\n",
- vinfo.bits_per_pixel);
- break;
- }
-}
-
-#define PERFORMANCE_RUN_COUNT 5
-void performSpeedTest(void* fb, int fbSize)
-{
- int i, j, run;
-
- struct timeval startTime, endTime;
- unsigned long long results[PERFORMANCE_RUN_COUNT];
- unsigned long long average;
-
- unsigned int* testImage;
-
- unsigned int randData[17] = {
- 0x3A428472, 0x724B84D3, 0x26B898AB, 0x7D980E3C, 0x5345A084,
- 0x6779B66B, 0x791EE4B4, 0x6E8EE3CC, 0x63AF504A, 0x18A21B33,
- 0x0E26EB73, 0x022F708E, 0x1740F3B0, 0x7E2C699D, 0x0E8A570B,
- 0x5F2C22FB, 0x6A742130
- };
-
- printf("Frame Buffer Performance test...\n");
-
- for (run=0; run<PERFORMANCE_RUN_COUNT; ++run) {
-
- /* Generate test image with random(ish) data: */
- testImage = (unsigned int*) malloc(fbSize);
- j = run;
- for (i=0; i < (int)(fbSize / sizeof(int)); ++i) {
- testImage[i] = randData[j];
- j++;
- if (j >= 17)
- j = 0;
- }
-
- gettimeofday(&startTime, NULL);
- memcpy(fb, testImage, fbSize);
- gettimeofday(&endTime, NULL);
-
- long secsDiff = endTime.tv_sec - startTime.tv_sec;
- results[run] = secsDiff * 1000000 + (endTime.tv_usec - startTime.tv_usec);
-
- free(testImage);
- }
-
-
- average = 0;
- for (i=0; i<PERFORMANCE_RUN_COUNT; ++i)
- average += results[i];
- average = average / PERFORMANCE_RUN_COUNT;
-
- printf(" Average: %llu usecs\n", average);
- printf(" Bandwidth: %.03f MByte/Sec\n", (fbSize / 1048576.0) / ((double)average / 1000000.0));
- printf(" Max. FPS: %.03f fps\n\n", 1000000.0 / (double)average);
-
- /* Clear the framebuffer back to black again: */
- memset(fb, 0, fbSize);
-}
-
-int main(int argc, char **argv)
-{
- long int screensize = 0;
- int doGraphicsMode = 1;
- long oldKdMode = KD_TEXT;
- const char *devfile = "/dev/fb0";
- int nextArg = 1;
-
- if (nextArg < argc) {
- if (strncmp("nographicsmodeswitch", argv[nextArg],
- strlen("nographicsmodeswitch")) == 0)
- {
- ++nextArg;
- doGraphicsMode = 0;
- }
- }
- if (nextArg < argc)
- devfile = argv[nextArg++];
-
- /* Open the file for reading and writing */
- fbFd = open(devfile, O_RDWR);
- if (fbFd == -1) {
- perror("Error: cannot open framebuffer device");
- exit(1);
- }
- printf("The framebuffer device was opened successfully.\n\n");
-
- /* Get fixed screen information */
- if (ioctl(fbFd, FBIOGET_FSCREENINFO, &finfo) == -1) {
- perror("Error reading fixed information");
- exit(2);
- }
-
- printFixedInfo();
-
- /* Figure out the size of the screen in bytes */
- screensize = finfo.smem_len;
-
- /* Map the device to memory */
- frameBuffer = (char *)mmap(0, screensize,
- PROT_READ | PROT_WRITE, MAP_SHARED,
- fbFd, 0);
- if (frameBuffer == MAP_FAILED) {
- perror("Error: Failed to map framebuffer device to memory");
- exit(4);
- }
- printf("The framebuffer device was mapped to memory successfully.\n"
- "\n");
-
- if (doGraphicsMode)
- oldKdMode = switchToGraphicsMode();
-
- /* Get variable screen information */
- if (ioctl(fbFd, FBIOGET_VSCREENINFO, &vinfo) == -1) {
- perror("Error reading variable information");
- exit(3);
- }
-
- printVariableInfo();
-
- performSpeedTest(frameBuffer, screensize);
-
- initPalette();
-
- if (paletteSize == 0) {
- printf("Will draw 3 rectangles on the screen,\n"
- "they should be colored red, green and blue (in that order).\n");
- drawRect(vinfo.xres / 8, vinfo.yres / 8,
- vinfo.xres / 4, vinfo.yres / 4,
- 0xffff0000);
- drawRect(vinfo.xres * 3 / 8, vinfo.yres * 3 / 8,
- vinfo.xres / 4, vinfo.yres / 4,
- 0xff00ff00);
- drawRect(vinfo.xres * 5 / 8, vinfo.yres * 5 / 8,
- vinfo.xres / 4, vinfo.yres / 4,
- 0xff0000ff);
- } else {
- printf("Will rectangles from the 16 first entries in the color palette"
- " on the screen\n");
- int y;
- int x;
- for (y = 0; y < 4; ++y) {
- for (x = 0; x < 4; ++x) {
- drawRect(vinfo.xres / 4 * x, vinfo.yres / 4 * y,
- vinfo.xres / 4, vinfo.yres / 4,
- 4 * y + x);
- }
- }
- }
-
- sleep(5);
-
- resetPalette();
-
- printf(" Done.\n");
-
- if (doGraphicsMode)
- restoreTextMode(oldKdMode);
-
- munmap(frameBuffer, screensize);
- close(fbFd);
- return 0;
-}
diff --git a/examples/qws/mousecalibration/calibration.cpp b/examples/qws/mousecalibration/calibration.cpp
deleted file mode 100644
index 3618bfccc0..0000000000
--- a/examples/qws/mousecalibration/calibration.cpp
+++ /dev/null
@@ -1,144 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "calibration.h"
-
-#include <QWSPointerCalibrationData>
-#include <QPainter>
-#include <QFile>
-#include <QTimer>
-#include <QApplication>
-#include <QDesktopWidget>
-#include <QMouseEvent>
-#include <QScreen>
-#include <QWSServer>
-
-//! [0]
-Calibration::Calibration()
-{
- QRect desktop = QApplication::desktop()->geometry();
- desktop.moveTo(QPoint(0, 0));
- setGeometry(desktop);
-
- setFocusPolicy(Qt::StrongFocus);
- setFocus();
- setModal(true);
-//! [0]
-
-//! [1]
- int width = qt_screen->deviceWidth();
- int height = qt_screen->deviceHeight();
-
- int dx = width / 10;
- int dy = height / 10;
-
- QPoint *points = data.screenPoints;
- points[QWSPointerCalibrationData::TopLeft] = QPoint(dx, dy);
- points[QWSPointerCalibrationData::BottomLeft] = QPoint(dx, height - dy);
- points[QWSPointerCalibrationData::BottomRight] = QPoint(width - dx, height - dy);
- points[QWSPointerCalibrationData::TopRight] = QPoint(width - dx, dy);
- points[QWSPointerCalibrationData::Center] = QPoint(width / 2, height / 2);
-//! [1]
-
-//! [2]
- pressCount = 0;
-}
-//! [2]
-
-//! [3]
-Calibration::~Calibration()
-{
-}
-//! [3]
-
-//! [4]
-int Calibration::exec()
-{
- QWSServer::mouseHandler()->clearCalibration();
- grabMouse();
- activateWindow();
- int ret = QDialog::exec();
- releaseMouse();
- return ret;
-}
-//! [4]
-
-//! [5]
-void Calibration::paintEvent(QPaintEvent*)
-{
- QPainter p(this);
- p.fillRect(rect(), Qt::white);
-
- QPoint point = data.screenPoints[pressCount];
-
- // Map to logical coordinates in case the screen is transformed
- QSize screenSize(qt_screen->deviceWidth(), qt_screen->deviceHeight());
- point = qt_screen->mapFromDevice(point, screenSize);
-
- p.fillRect(point.x() - 6, point.y() - 1, 13, 3, Qt::black);
- p.fillRect(point.x() - 1, point.y() - 6, 3, 13, Qt::black);
-}
-//! [5]
-
-//! [6]
-void Calibration::mouseReleaseEvent(QMouseEvent *event)
-{
- // Map from device coordinates in case the screen is transformed
- QSize screenSize(qt_screen->width(), qt_screen->height());
- QPoint p = qt_screen->mapToDevice(event->pos(), screenSize);
-
- data.devPoints[pressCount] = p;
-
- if (++pressCount < 5)
- repaint();
- else
- accept();
-}
-//! [6]
-
-//! [7]
-void Calibration::accept()
-{
- Q_ASSERT(pressCount == 5);
- QWSServer::mouseHandler()->calibrate(&data);
- QDialog::accept();
-}
-//! [7]
-
diff --git a/examples/qws/mousecalibration/calibration.h b/examples/qws/mousecalibration/calibration.h
deleted file mode 100644
index 636ed036cf..0000000000
--- a/examples/qws/mousecalibration/calibration.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef CALIBRATION_H
-#define CALIBRATION_H
-
-#include <QDialog>
-#include <QWSPointerCalibrationData>
-
-//! [0]
-class Calibration : public QDialog
-{
-public:
- Calibration();
- ~Calibration();
- int exec();
-
-protected:
- void paintEvent(QPaintEvent*);
- void mouseReleaseEvent(QMouseEvent*);
- void accept();
-
-private:
- QWSPointerCalibrationData data;
- int pressCount;
-};
-//! [0]
-
-
-#endif
diff --git a/examples/qws/mousecalibration/main.cpp b/examples/qws/mousecalibration/main.cpp
deleted file mode 100644
index f95878dfe5..0000000000
--- a/examples/qws/mousecalibration/main.cpp
+++ /dev/null
@@ -1,92 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QApplication>
-#include <QMessageBox>
-#include <QTimer>
-#include <QWSServer>
-
-#include "calibration.h"
-#include "scribblewidget.h"
-
-//! [0]
-int main(int argc, char **argv)
-{
- QApplication app(argc, argv, QApplication::GuiServer);
-
- if (!QWSServer::mouseHandler())
- qFatal("No mouse handler installed");
-
- {
- QMessageBox message;
- message.setText("<p>Please press once at each of the marks "
- "shown in the next screen.</p>"
- "<p>This messagebox will timout after 10 seconds "
- "if you are unable to close it.</p>");
- QTimer::singleShot(10 * 1000, &message, SLOT(accept()));
- message.exec();
- }
-
-//! [0] //! [1]
- Calibration cal;
- cal.exec();
-//! [1]
-
-//! [2]
- {
- QMessageBox message;
- message.setText("<p>The next screen will let you test the calibration "
- "by drawing into a widget.</p><p>This program will "
- "automatically close after 20 seconds.<p>");
- QTimer::singleShot(10 * 1000, &message, SLOT(accept()));
- message.exec();
- }
-
- ScribbleWidget scribble;
- scribble.showMaximized();
- scribble.show();
-
- app.setActiveWindow(&scribble);
- QTimer::singleShot(20 * 1000, &app, SLOT(quit()));
-
- return app.exec();
-}
-//! [2]
-
diff --git a/examples/qws/mousecalibration/mousecalibration.desktop b/examples/qws/mousecalibration/mousecalibration.desktop
deleted file mode 100644
index 07c231e97c..0000000000
--- a/examples/qws/mousecalibration/mousecalibration.desktop
+++ /dev/null
@@ -1,11 +0,0 @@
-[Desktop Entry]
-Encoding=UTF-8
-Version=1.0
-Type=Application
-Terminal=false
-Name=Mouse Calibration
-Exec=/opt/usr/bin/mousecalibration
-Icon=mousecalibration
-X-Window-Icon=
-X-HildonDesk-ShowInToolbar=true
-X-Osso-Type=application/x-executable
diff --git a/examples/qws/mousecalibration/mousecalibration.pro b/examples/qws/mousecalibration/mousecalibration.pro
deleted file mode 100644
index fb91216422..0000000000
--- a/examples/qws/mousecalibration/mousecalibration.pro
+++ /dev/null
@@ -1,15 +0,0 @@
-HEADERS += calibration.h \
- scribblewidget.h
-SOURCES += calibration.cpp \
- scribblewidget.cpp \
- main.cpp
-
-# install
-target.path = $$[QT_INSTALL_EXAMPLES]/qtbase/qws/mousecalibration
-sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS *.pro
-sources.path = $$[QT_INSTALL_EXAMPLES]/qtbase/qws/mousecalibration
-INSTALLS += target sources
-QT += widgets
-
-
-simulator: warning(This example does not work on Simulator platform)
diff --git a/examples/qws/mousecalibration/scribblewidget.cpp b/examples/qws/mousecalibration/scribblewidget.cpp
deleted file mode 100644
index c217411f64..0000000000
--- a/examples/qws/mousecalibration/scribblewidget.cpp
+++ /dev/null
@@ -1,92 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "scribblewidget.h"
-
-ScribbleWidget::ScribbleWidget(QWidget *parent)
- : QWidget(parent)
-{
- scribbling = false;
-}
-
-void ScribbleWidget::resizeEvent(QResizeEvent *e)
-{
- image = QImage(e->size(), QImage::Format_RGB32);
- image.fill(QColor(Qt::white).rgb());
-}
-
-void ScribbleWidget::mousePressEvent(QMouseEvent *event)
-{
- if (event->button() != Qt::LeftButton)
- return;
-
- lastPoint = event->pos();
- scribbling = true;
-}
-
-void ScribbleWidget::mouseMoveEvent(QMouseEvent *event)
-{
- if ((event->buttons() & Qt::LeftButton) && scribbling)
- drawLineTo(event->pos());
-}
-
-void ScribbleWidget::mouseReleaseEvent(QMouseEvent *event)
-{
- if (event->button() == Qt::LeftButton && scribbling) {
- drawLineTo(event->pos());
- scribbling = false;
- }
-}
-
-void ScribbleWidget::paintEvent(QPaintEvent *)
-{
- QPainter painter(this);
- painter.drawImage(QPoint(0, 0), image);
-}
-
-void ScribbleWidget::drawLineTo(const QPoint &endPoint)
-{
- QPainter painter(&image);
- painter.setPen(QPen(Qt::blue, 1, Qt::SolidLine,
- Qt::RoundCap, Qt::RoundJoin));
- painter.drawLine(lastPoint, endPoint);
- update();
- lastPoint = endPoint;
-}
diff --git a/examples/qws/mousecalibration/scribblewidget.h b/examples/qws/mousecalibration/scribblewidget.h
deleted file mode 100644
index fca4139512..0000000000
--- a/examples/qws/mousecalibration/scribblewidget.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef SCRIBBLEWIDGET_H
-#define SCRIBBLEWIDGET_H
-
-#include <QLabel>
-#include <QMouseEvent>
-#include <QResizeEvent>
-#include <QImage>
-#include <QPainter>
-
-class ScribbleWidget : public QWidget
-{
-public:
- ScribbleWidget(QWidget *parent = 0);
-
- void resizeEvent(QResizeEvent *e);
- void mousePressEvent(QMouseEvent *event);
- void mouseMoveEvent(QMouseEvent *event);
- void mouseReleaseEvent(QMouseEvent *event);
- void paintEvent(QPaintEvent *);
-
-private:
- void drawLineTo(const QPoint &endPoint);
-
-private:
- bool scribbling;
- QPoint lastPoint;
- QImage image;
-};
-
-#endif // SCRIBBLEWIDGET_H
diff --git a/examples/qws/qws.pro b/examples/qws/qws.pro
deleted file mode 100644
index 06e3aa8eba..0000000000
--- a/examples/qws/qws.pro
+++ /dev/null
@@ -1,10 +0,0 @@
-TEMPLATE = subdirs
-# no /dev/fbX
-!qnx:!vxworks:SUBDIRS = framebuffer
-SUBDIRS += mousecalibration simpledecoration
-
-# install
-sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS README *.pro
-sources.path = $$[QT_INSTALL_EXAMPLES]/qtbase/qws
-INSTALLS += sources
-QT += widgets
diff --git a/examples/qws/simpledecoration/analogclock.cpp b/examples/qws/simpledecoration/analogclock.cpp
deleted file mode 100644
index 67d74c4781..0000000000
--- a/examples/qws/simpledecoration/analogclock.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtWidgets>
-
-#include "analogclock.h"
-
-AnalogClock::AnalogClock(QWidget *parent)
- : QWidget(parent)
-{
- QTimer *timer = new QTimer(this);
- connect(timer, SIGNAL(timeout()), this, SLOT(update()));
- timer->start(1000);
-
- setWindowTitle(tr("Analog Clock"));
- resize(200, 200);
-}
-
-void AnalogClock::paintEvent(QPaintEvent *)
-{
- static const QPoint hourHand[3] = {
- QPoint(7, 8),
- QPoint(-7, 8),
- QPoint(0, -40)
- };
- static const QPoint minuteHand[3] = {
- QPoint(7, 8),
- QPoint(-7, 8),
- QPoint(0, -70)
- };
-
- QColor hourColor(127, 0, 127);
- QColor minuteColor(0, 127, 127, 191);
-
- int side = qMin(width(), height());
- QTime time = QTime::currentTime();
-
- QPainter painter(this);
- painter.setRenderHint(QPainter::Antialiasing);
- painter.translate(width() / 2, height() / 2);
- painter.scale(side / 200.0, side / 200.0);
-
- painter.setPen(Qt::NoPen);
- painter.setBrush(hourColor);
-
- painter.save();
- painter.rotate(30.0 * ((time.hour() + time.minute() / 60.0)));
- painter.drawConvexPolygon(hourHand, 3);
- painter.restore();
-
- painter.setPen(hourColor);
-
- for (int i = 0; i < 12; ++i) {
- painter.drawLine(88, 0, 96, 0);
- painter.rotate(30.0);
- }
-
- painter.setPen(Qt::NoPen);
- painter.setBrush(minuteColor);
-
- painter.save();
- painter.rotate(6.0 * (time.minute() + time.second() / 60.0));
- painter.drawConvexPolygon(minuteHand, 3);
- painter.restore();
-
- painter.setPen(minuteColor);
-
- for (int j = 0; j < 60; ++j) {
- if ((j % 5) != 0)
- painter.drawLine(92, 0, 96, 0);
- painter.rotate(6.0);
- }
-}
diff --git a/examples/qws/simpledecoration/analogclock.h b/examples/qws/simpledecoration/analogclock.h
deleted file mode 100644
index 2fe91c7dbc..0000000000
--- a/examples/qws/simpledecoration/analogclock.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef ANALOGCLOCK_H
-#define ANALOGCLOCK_H
-
-#include <QWidget>
-
-class AnalogClock : public QWidget
-{
- Q_OBJECT
-
-public:
- AnalogClock(QWidget *parent = 0);
-
-protected:
- void paintEvent(QPaintEvent *event);
-};
-
-#endif
diff --git a/examples/qws/simpledecoration/main.cpp b/examples/qws/simpledecoration/main.cpp
deleted file mode 100644
index 1f0d367bc6..0000000000
--- a/examples/qws/simpledecoration/main.cpp
+++ /dev/null
@@ -1,59 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QApplication>
-#include "analogclock.h"
-#include "mydecoration.h"
-
-//! [create application]
-int main(int argc, char *argv[])
-{
- QApplication app(argc, argv);
- MyDecoration *decoration = new MyDecoration();
- app.qwsSetDecoration(decoration);
-//! [create application]
-
-//! [start application]
- AnalogClock clock;
- clock.show();
-
- return app.exec();
-}
-//! [start application]
diff --git a/examples/qws/simpledecoration/mydecoration.cpp b/examples/qws/simpledecoration/mydecoration.cpp
deleted file mode 100644
index 7b324e18c1..0000000000
--- a/examples/qws/simpledecoration/mydecoration.cpp
+++ /dev/null
@@ -1,374 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtWidgets>
-#include "mydecoration.h"
-
-/* XPM */
-static const char * const _close_button[] = {
-"16 16 3 1",
-" c none",
-". c #ffafaf",
-"x c #000000",
-" ",
-" xxxxxxxxxxxxxx ",
-" x............x ",
-" x.x........x.x ",
-" x..x......x..x ",
-" x...x....x...x ",
-" x....x..x....x ",
-" x.....xx.....x ",
-" x.....xx.....x ",
-" x....x..x....x ",
-" x...x....x...x ",
-" x..x......x..x ",
-" x.x........x.x ",
-" x............x ",
-" xxxxxxxxxxxxxx ",
-" "};
-
-static const char * const _normalize_button[] = {
-"16 16 4 1",
-" c none",
-". c #dfdfff",
-"o c #7f7f7f",
-"x c #000000",
-" ",
-" xxxxxxxxxxxxxx ",
-" xx...........x ",
-" x.x..........x ",
-" x..x..x......x ",
-" x...xxx......x ",
-" x...xxx......x ",
-" x..xxxx......x ",
-" x............x ",
-" x.......xxxx.x ",
-" x.......x..x.x ",
-" x.......x..x.x ",
-" x.......xxxx.x ",
-" x............x ",
-" xxxxxxxxxxxxxx ",
-" "};
-
-static const char * const _maximize_button[] = {
-"16 16 4 1",
-" c none",
-". c #dfdfff",
-"o c #7f7f7f",
-"x c #000000",
-" ",
-" xxxxxxxxxxxxxx ",
-" x............x ",
-" x.......xxxx.x ",
-" x........xxx.x ",
-" x........xxx.x ",
-" x.......x..x.x ",
-" x......x.....x ",
-" x.....x......x ",
-" x.oooo.......x ",
-" x.o..o.......x ",
-" x.o..o.......x ",
-" x.oooo.......x ",
-" x............x ",
-" xxxxxxxxxxxxxx ",
-" "};
-
-static const char * const _help_button[] = {
-"16 16 3 1",
-" c none",
-". c #afffdf",
-"x c #000000",
-" ",
-" xxxxxxxxxxxxxx ",
-" x............x ",
-" x....xxxx....x ",
-" x..xx....xx..x ",
-" x.xx......xx.x ",
-" x.xx......xx.x ",
-" x........xx..x ",
-" x......xx....x ",
-" x.....xx.....x ",
-" x.....xx.....x ",
-" x............x ",
-" x.....xx.....x ",
-" x............x ",
-" xxxxxxxxxxxxxx ",
-" "};
-
-//! [constructor start]
-MyDecoration::MyDecoration()
- : QDecorationDefault()
-{
- border = 4;
- titleHeight = 24;
- buttonWidth = 20;
- buttonHeight = 20;
- buttonMargin = 2;
- buttonHints << Qt::Window
- << Qt::WindowMaximizeButtonHint
- << Qt::WindowContextHelpButtonHint;
- //! [constructor start]
-
- //! [map window flags to decoration regions]
- buttonHintMap[Qt::Window] = Close;
- buttonHintMap[Qt::WindowMaximizeButtonHint] = Maximize;
- buttonHintMap[Qt::WindowContextHelpButtonHint] = Help;
- //! [map window flags to decoration regions]
-
- //! [map decoration regions to pixmaps]
- normalButtonPixmaps[Close] = QPixmap(_close_button);
- normalButtonPixmaps[Maximize] = QPixmap(_maximize_button);
- normalButtonPixmaps[Normalize] = QPixmap(_normalize_button);
- normalButtonPixmaps[Help] = QPixmap(_help_button);
-
- maximizedButtonPixmaps[Close] = QPixmap(_close_button);
- maximizedButtonPixmaps[Maximize] = QPixmap(_normalize_button);
- maximizedButtonPixmaps[Normalize] = QPixmap(_normalize_button);
- maximizedButtonPixmaps[Help] = QPixmap(_help_button);
- //! [map decoration regions to pixmaps]
-
- //! [constructor end]
- stateRegions << Close << Maximize << Help;
-}
-//! [constructor end]
-
-//! [region start]
-QRegion MyDecoration::region(const QWidget *widget, const QRect &insideRect,
- int decorationRegion)
-{
- //! [region start]
- //! [calculate the positions of buttons based on the window flags used]
- QHash<DecorationRegion, int> buttons;
- Qt::WindowFlags flags = widget->windowFlags();
- int dx = -buttonMargin - buttonWidth;
-
- foreach (Qt::WindowType button, buttonHints) {
- if (flags & button) {
- int x = (buttons.size() + 1) * dx;
- buttons[buttonHintMap[button]] = x;
- }
- }
- //! [calculate the positions of buttons based on the window flags used]
-
- //! [calculate the extent of the title]
- int titleRightMargin = buttons.size() * dx;
-
- QRect outsideRect(insideRect.left() - border,
- insideRect.top() - titleHeight - border,
- insideRect.width() + 2 * border,
- insideRect.height() + titleHeight + 2 * border);
- //! [calculate the extent of the title]
-
- //! [check for all regions]
- QRegion region;
-
- if (decorationRegion == All) {
- region += QRegion(outsideRect) - QRegion(insideRect);
- return region;
- }
- //! [check for all regions]
-
- //! [compose a region based on the decorations specified]
- if (decorationRegion & Title) {
- QRect rect = outsideRect.adjusted(border, border, -border, 0);
- rect.setHeight(titleHeight);
-
- // Adjust the width to accommodate buttons.
- rect.setWidth(qMax(0, rect.width() + titleRightMargin));
- region += rect;
- }
- if (decorationRegion & Top) {
- QRect rect = outsideRect.adjusted(border, 0, -border, 0);
- rect.setHeight(border);
- region += rect;
- }
- if (decorationRegion & Left) {
- QRect rect = outsideRect.adjusted(0, border, 0, -border);
- rect.setWidth(border);
- region += rect;
- }
- if (decorationRegion & Right) {
- QRect rect = outsideRect.adjusted(0, border, 0, -border);
- rect.setLeft(rect.right() + 1 - border);
- region += rect;
- }
- if (decorationRegion & Bottom) {
- QRect rect = outsideRect.adjusted(border, 0, -border, 0);
- rect.setTop(rect.bottom() + 1 - border);
- region += rect;
- }
- if (decorationRegion & TopLeft) {
- QRect rect = outsideRect;
- rect.setWidth(border);
- rect.setHeight(border);
- region += rect;
- }
- if (decorationRegion & TopRight) {
- QRect rect = outsideRect;
- rect.setLeft(rect.right() + 1 - border);
- rect.setHeight(border);
- region += rect;
- }
- if (decorationRegion & BottomLeft) {
- QRect rect = outsideRect;
- rect.setWidth(border);
- rect.setTop(rect.bottom() + 1 - border);
- region += rect;
- }
- if (decorationRegion & BottomRight) {
- QRect rect = outsideRect;
- rect.setLeft(rect.right() + 1 - border);
- rect.setTop(rect.bottom() + 1 - border);
- region += rect;
- }
- //! [compose a region based on the decorations specified]
-
- //! [add a region for each button only if it is present]
- foreach (QDecoration::DecorationRegion testRegion, stateRegions) {
- if (decorationRegion & testRegion and buttons.contains(testRegion)) {
- // Inside the title rectangle
- QRect rect = outsideRect.adjusted(border, border, -border, 0);
- rect.setHeight(titleHeight);
-
- dx = buttons[testRegion];
- rect.setLeft(rect.right() + 1 + dx);
- rect.setWidth(buttonWidth + buttonMargin);
- region += rect;
- }
- }
- //! [add a region for each button only if it is present]
-
- //! [region end]
- return region;
-}
-//! [region end]
-
-//! [paint start]
-bool MyDecoration::paint(QPainter *painter, const QWidget *widget,
- int decorationRegion, DecorationState state)
-{
- if (decorationRegion == None)
- return false;
- //! [paint start]
-
- //! [paint different regions]
- bool handled = false;
-
- QPalette palette = QApplication::palette();
- QHash<DecorationRegion, QPixmap> buttonPixmaps;
-
- if (widget->windowState() == Qt::WindowMaximized)
- buttonPixmaps = maximizedButtonPixmaps;
- else
- buttonPixmaps = normalButtonPixmaps;
-
- if (decorationRegion & Title) {
- QRect rect = QDecoration::region(widget, Title).boundingRect();
- painter->fillRect(rect, palette.brush(QPalette::Base));
- painter->save();
- painter->setPen(QPen(palette.color(QPalette::Text)));
- painter->drawText(rect, Qt::AlignCenter, widget->windowTitle());
- painter->restore();
- handled = true;
- }
- if (decorationRegion & Top) {
- QRect rect = QDecoration::region(widget, Top).boundingRect();
- painter->fillRect(rect, palette.brush(QPalette::Dark));
- handled = true;
- }
- if (decorationRegion & Left) {
- QRect rect = QDecoration::region(widget, Left).boundingRect();
- painter->fillRect(rect, palette.brush(QPalette::Dark));
- handled = true;
- }
- if (decorationRegion & Right) {
- QRect rect = QDecoration::region(widget, Right).boundingRect();
- painter->fillRect(rect, palette.brush(QPalette::Dark));
- handled = true;
- }
- if (decorationRegion & Bottom) {
- QRect rect = QDecoration::region(widget, Bottom).boundingRect();
- painter->fillRect(rect, palette.brush(QPalette::Dark));
- handled = true;
- }
- if (decorationRegion & TopLeft) {
- QRect rect = QDecoration::region(widget, TopLeft).boundingRect();
- painter->fillRect(rect, palette.brush(QPalette::Dark));
- handled = true;
- }
- if (decorationRegion & TopRight) {
- QRect rect = QDecoration::region(widget, TopRight).boundingRect();
- painter->fillRect(rect, palette.brush(QPalette::Dark));
- handled = true;
- }
- if (decorationRegion & BottomLeft) {
- QRect rect = QDecoration::region(widget, BottomLeft).boundingRect();
- painter->fillRect(rect, palette.brush(QPalette::Dark));
- handled = true;
- }
- if (decorationRegion & BottomRight) {
- QRect rect = QDecoration::region(widget, BottomRight).boundingRect();
- painter->fillRect(rect, palette.brush(QPalette::Dark));
- handled = true;
- }
- //! [paint different regions]
-
- //! [paint buttons]
- int margin = (titleHeight - 16) / 2;
- Qt::WindowFlags flags = widget->windowFlags();
-
- foreach (DecorationRegion testRegion, stateRegions) {
- if (decorationRegion & testRegion && flags & buttonHintMap.key(testRegion)) {
- QRect rect = QDecoration::region(
- widget, testRegion).boundingRect();
- painter->fillRect(rect, palette.brush(QPalette::Base));
-
- QRect buttonRect = rect.adjusted(0, margin, -buttonMargin - margin,
- -buttonMargin);
- painter->drawPixmap(buttonRect.topLeft(), buttonPixmaps[testRegion]);
- handled = true;
- }
- }
- //! [paint buttons]
-
- //! [paint end]
- return handled;
-}
-//! [paint end]
diff --git a/examples/qws/simpledecoration/mydecoration.h b/examples/qws/simpledecoration/mydecoration.h
deleted file mode 100644
index 6758f69449..0000000000
--- a/examples/qws/simpledecoration/mydecoration.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef MYDECORATION_H
-#define MYDECORATION_H
-
-#include <QDecorationDefault>
-#include <QHash>
-#include <QPixmap>
-#include <QRegion>
-#include <Qt>
-
-//! [decoration class definition]
-class MyDecoration : public QDecorationDefault
-{
-public:
- MyDecoration();
- QRegion region(const QWidget *widget, const QRect &insideRect, int decorationRegion);
- bool paint(QPainter *painter, const QWidget *widget, int decorationRegion, DecorationState state);
-
-private:
- int border;
- int buttonHeight;
- int buttonMargin;
- int buttonWidth;
- int titleHeight;
- QHash<Qt::WindowType, DecorationRegion> buttonHintMap;
- QHash<DecorationRegion, QPixmap> normalButtonPixmaps;
- QHash<DecorationRegion, QPixmap> maximizedButtonPixmaps;
- QVector<Qt::WindowType> buttonHints;
- QVector<DecorationRegion> stateRegions;
-};
-//! [decoration class definition]
-
-#endif
diff --git a/examples/qws/simpledecoration/simpledecoration.desktop b/examples/qws/simpledecoration/simpledecoration.desktop
deleted file mode 100644
index 9cd588eb1d..0000000000
--- a/examples/qws/simpledecoration/simpledecoration.desktop
+++ /dev/null
@@ -1,11 +0,0 @@
-[Desktop Entry]
-Encoding=UTF-8
-Version=1.0
-Type=Application
-Terminal=false
-Name=Simple Decoration
-Exec=/opt/usr/bin/simpledecoration
-Icon=simpledecoration
-X-Window-Icon=
-X-HildonDesk-ShowInToolbar=true
-X-Osso-Type=application/x-executable
diff --git a/examples/qws/simpledecoration/simpledecoration.pro b/examples/qws/simpledecoration/simpledecoration.pro
deleted file mode 100644
index 274b87af2b..0000000000
--- a/examples/qws/simpledecoration/simpledecoration.pro
+++ /dev/null
@@ -1,16 +0,0 @@
-TEMPLATE = app
-HEADERS = analogclock.h \
- mydecoration.h
-SOURCES = analogclock.cpp \
- main.cpp \
- mydecoration.cpp
-
-# install
-target.path = $$[QT_INSTALL_EXAMPLES]/qtbase/qws/simpledecoration
-sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS *.pro
-sources.path = $$[QT_INSTALL_EXAMPLES]/qtbase/qws/simpledecoration
-INSTALLS += target sources
-QT += widgets
-
-
-simulator: warning(This example does not work on Simulator platform)
diff --git a/examples/qws/svgalib/README b/examples/qws/svgalib/README
deleted file mode 100644
index 227c066f01..0000000000
--- a/examples/qws/svgalib/README
+++ /dev/null
@@ -1,9 +0,0 @@
-This is the SVGA screen driver plugin example for QWS.
-
-You may need to set the SVGALIB_DEFAULT_MODE environment
-variable. These values have been confirmed to work on one specific
-machine using svgalib 1.4.3: 18, 24, 34, 35, 36
-
-There is a bug in the example causing missing updates in 8-bit mode
-(e.g. modes 10 and 12). Fixing this bug is left as an exercise for the
-reader.
diff --git a/examples/qws/svgalib/svgalib.desktop b/examples/qws/svgalib/svgalib.desktop
deleted file mode 100644
index 94ea92fd52..0000000000
--- a/examples/qws/svgalib/svgalib.desktop
+++ /dev/null
@@ -1,11 +0,0 @@
-[Desktop Entry]
-Encoding=UTF-8
-Version=1.0
-Type=Application
-Terminal=false
-Name=Accelerated Graphics Driver
-Exec=/opt/usr/bin/svgalib
-Icon=svgalib
-X-Window-Icon=
-X-HildonDesk-ShowInToolbar=true
-X-Osso-Type=application/x-executable
diff --git a/examples/qws/svgalib/svgalib.pro b/examples/qws/svgalib/svgalib.pro
deleted file mode 100644
index 7058750bb3..0000000000
--- a/examples/qws/svgalib/svgalib.pro
+++ /dev/null
@@ -1,22 +0,0 @@
-TEMPLATE = lib
-CONFIG += plugin
-
-LIBS += -lvgagl -lvga
-
-TARGET = svgalibscreen
-target.path = $$[QT_INSTALL_PLUGINS]/gfxdrivers
-INSTALLS += target
-
-HEADERS = svgalibscreen.h \
- svgalibpaintengine.h \
- svgalibsurface.h \
- svgalibpaintdevice.h
-SOURCES = svgalibscreen.cpp \
- svgalibpaintengine.cpp \
- svgalibsurface.cpp \
- svgalibpaintdevice.cpp \
- svgalibplugin.cpp
-
-QT += widgets
-
-simulator: warning(This example does not work on Simulator platform)
diff --git a/examples/qws/svgalib/svgalibpaintdevice.cpp b/examples/qws/svgalib/svgalibpaintdevice.cpp
deleted file mode 100644
index 6a6063d35a..0000000000
--- a/examples/qws/svgalib/svgalibpaintdevice.cpp
+++ /dev/null
@@ -1,66 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "svgalibpaintdevice.h"
-#include "svgalibpaintengine.h"
-
-#include <QApplication>
-#include <QDesktopWidget>
-
-SvgalibPaintDevice::SvgalibPaintDevice(QWidget *w)
- : QCustomRasterPaintDevice(w)
-{
- pengine = new SvgalibPaintEngine(this);
-}
-
-SvgalibPaintDevice::~SvgalibPaintDevice()
-{
- delete pengine;
-}
-
-int SvgalibPaintDevice::metric(PaintDeviceMetric m) const
-{
- if (m == PdmWidth)
- return QApplication::desktop()->screenGeometry().width();
- else if (m == PdmHeight)
- return QApplication::desktop()->screenGeometry().height();
- return QCustomRasterPaintDevice::metric(m);
-}
-
diff --git a/examples/qws/svgalib/svgalibpaintdevice.h b/examples/qws/svgalib/svgalibpaintdevice.h
deleted file mode 100644
index 736a003cfd..0000000000
--- a/examples/qws/svgalib/svgalibpaintdevice.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef SVGALIBPAINTDEVICE_H
-#define SVGALIBPAINTDEVICE_H
-
-#include "svgalibpaintengine.h"
-#include <private/qpaintengine_raster_p.h>
-#include <qscreen_qws.h>
-
-//! [0]
-class SvgalibPaintDevice : public QCustomRasterPaintDevice
-{
-public:
- SvgalibPaintDevice(QWidget *w);
- ~SvgalibPaintDevice();
-
- void* memory() const { return QScreen::instance()->base(); }
-
- QPaintEngine *paintEngine() const { return pengine; }
- int metric(PaintDeviceMetric m) const;
-
-private:
- SvgalibPaintEngine *pengine;
-};
-//! [0]
-
-#endif // SVGALIBPAINTDEVICE_H
diff --git a/examples/qws/svgalib/svgalibpaintengine.cpp b/examples/qws/svgalib/svgalibpaintengine.cpp
deleted file mode 100644
index 1f109f585c..0000000000
--- a/examples/qws/svgalib/svgalibpaintengine.cpp
+++ /dev/null
@@ -1,190 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "svgalibpaintengine.h"
-
-#include <QColor>
-#include <vga.h>
-#include <vgagl.h>
-
-SvgalibPaintEngine::SvgalibPaintEngine(QPaintDevice *device)
- : QRasterPaintEngine(device)
-{
-}
-
-SvgalibPaintEngine::~SvgalibPaintEngine()
-{
-}
-
-//! [0]
-bool SvgalibPaintEngine::begin(QPaintDevice *dev)
-{
- device = dev;
- pen = Qt::NoPen;
- simplePen = true;
- brush = Qt::NoBrush;
- simpleBrush = true;
- matrix = QTransform();
- simpleMatrix = true;
- setClip(QRect(0, 0, device->width(), device->height()));
- opaque = true;
- aliased = true;
- sourceOver = true;
-
- return QRasterPaintEngine::begin(dev);
-}
-//! [0]
-
-//! [1]
-bool SvgalibPaintEngine::end()
-{
- gl_setclippingwindow(0, 0, device->width() - 1, device->height() - 1);
- return QRasterPaintEngine::end();
-}
-//! [1]
-
-//! [2]
-void SvgalibPaintEngine::updateState()
-{
- QRasterPaintEngineState *s = state();
-
- if (s->dirty & DirtyTransform) {
- matrix = s->matrix;
- simpleMatrix = (matrix.m12() == 0 && matrix.m21() == 0);
- }
-
- if (s->dirty & DirtyPen) {
- pen = s->pen;
- simplePen = (pen.width() == 0 || pen.widthF() <= 1)
- && (pen.style() == Qt::NoPen || pen.style() == Qt::SolidLine)
- && (pen.color().alpha() == 255);
- }
-
- if (s->dirty & DirtyBrush) {
- brush = s->brush;
- simpleBrush = (brush.style() == Qt::SolidPattern
- || brush.style() == Qt::NoBrush)
- && (brush.color().alpha() == 255);
- }
-
- if (s->dirty & DirtyClipRegion)
- setClip(s->clipRegion);
-
- if (s->dirty & DirtyClipEnabled) {
- clipEnabled = s->isClipEnabled();
- updateClip();
- }
-
- if (s->dirty & DirtyClipPath) {
- setClip(QRegion());
- simpleClip = false;
- }
-
- if (s->dirty & DirtyCompositionMode) {
- const QPainter::CompositionMode m = s->composition_mode;
- sourceOver = (m == QPainter::CompositionMode_SourceOver);
- }
-
- if (s->dirty & DirtyOpacity)
- opaque = (s->opacity == 256);
-
- if (s->dirty & DirtyHints)
- aliased = !(s->flags.antialiased);
-}
-//! [2]
-
-//! [3]
-void SvgalibPaintEngine::setClip(const QRegion &region)
-{
- if (region.isEmpty())
- clip = QRect(0, 0, device->width(), device->height());
- else
- clip = matrix.map(region) & QRect(0, 0, device->width(), device->height());
- clipEnabled = true;
- updateClip();
-}
-//! [3]
-
-//! [4]
-void SvgalibPaintEngine::updateClip()
-{
- QRegion clipRegion = QRect(0, 0, device->width(), device->height());
-
- if (!systemClip().isEmpty())
- clipRegion &= systemClip();
- if (clipEnabled)
- clipRegion &= clip;
-
- simpleClip = (clipRegion.rects().size() <= 1);
-
- const QRect r = clipRegion.boundingRect();
- gl_setclippingwindow(r.left(), r.top(),
- r.x() + r.width(),
- r.y() + r.height());
-}
-//! [4]
-
-//! [5]
-void SvgalibPaintEngine::drawRects(const QRect *rects, int rectCount)
-{
- const bool canAccelerate = simplePen && simpleBrush && simpleMatrix
- && simpleClip && opaque && aliased
- && sourceOver;
- if (!canAccelerate) {
- QRasterPaintEngine::drawRects(rects, rectCount);
- return;
- }
-
- for (int i = 0; i < rectCount; ++i) {
- const QRect r = matrix.mapRect(rects[i]);
- if (brush != Qt::NoBrush) {
- gl_fillbox(r.left(), r.top(), r.width(), r.height(),
- brush.color().rgba());
- }
- if (pen != Qt::NoPen) {
- const int c = pen.color().rgba();
- gl_hline(r.left(), r.top(), r.right(), c);
- gl_hline(r.left(), r.bottom(), r.right(), c);
- gl_line(r.left(), r.top(), r.left(), r.bottom(), c);
- gl_line(r.right(), r.top(), r.right(), r.bottom(), c);
- }
- }
-}
-//! [5]
diff --git a/examples/qws/svgalib/svgalibpaintengine.h b/examples/qws/svgalib/svgalibpaintengine.h
deleted file mode 100644
index 2bbbb0c942..0000000000
--- a/examples/qws/svgalib/svgalibpaintengine.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef SVGALIBPAINTENGINE_H
-#define SVGALIBPAINTENGINE_H
-
-//! [0]
-#include <private/qpaintengine_raster_p.h>
-
-class SvgalibPaintEngine : public QRasterPaintEngine
-{
-public:
- SvgalibPaintEngine(QPaintDevice *device);
- ~SvgalibPaintEngine();
-
- bool begin(QPaintDevice *device);
- bool end();
- void updateState();
- void drawRects(const QRect *rects, int rectCount);
-
-private:
- void setClip(const QRegion &region);
- void updateClip();
-
- QPen pen;
- bool simplePen;
- QBrush brush;
- bool simpleBrush;
- QTransform matrix;
- bool simpleMatrix;
- QRegion clip;
- bool clipEnabled;
- bool simpleClip;
- bool opaque;
- bool aliased;
- bool sourceOver;
- QPaintDevice *device;
-};
-//! [0]
-
-#endif // SVGALIBPAINTENGINE_H
diff --git a/examples/qws/svgalib/svgalibplugin.cpp b/examples/qws/svgalib/svgalibplugin.cpp
deleted file mode 100644
index 993e0ed0a1..0000000000
--- a/examples/qws/svgalib/svgalibplugin.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "svgalibscreen.h"
-
-#include <QScreenDriverPlugin>
-#include <QStringList>
-
-class SvgalibPlugin : public QScreenDriverPlugin
-{
-public:
- SvgalibPlugin();
-
- QStringList keys() const;
- QScreen *create(const QString&, int displayId);
-};
-
-SvgalibPlugin::SvgalibPlugin()
- : QScreenDriverPlugin()
-{
-}
-
-QStringList SvgalibPlugin::keys() const
-{
- return (QStringList() << "svgalib");
-}
-
-QScreen* SvgalibPlugin::create(const QString& driver, int displayId)
-{
- if (driver.toLower() != "svgalib")
- return 0;
-
- return new SvgalibScreen(displayId);
-}
-
-Q_EXPORT_STATIC_PLUGIN(Svgalib)
-Q_EXPORT_PLUGIN2(svgalibscreendriver, SvgalibPlugin)
diff --git a/examples/qws/svgalib/svgalibscreen.cpp b/examples/qws/svgalib/svgalibscreen.cpp
deleted file mode 100644
index 689568d045..0000000000
--- a/examples/qws/svgalib/svgalibscreen.cpp
+++ /dev/null
@@ -1,353 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "svgalibscreen.h"
-#include "svgalibsurface.h"
-
-#include <QVector>
-#include <QApplication>
-#include <QColor>
-#include <QWidget>
-
-#include <math.h>
-
-static int getModeDepth(vga_modeinfo *mode)
-{
- const int bits = int(log2(mode->colors));
- if (bits == 24 && mode->bytesperpixel == 4)
- return 32;
- return bits;
-}
-
-//! [0]
-bool SvgalibScreen::connect(const QString &displaySpec)
-{
- int mode = vga_getdefaultmode();
- if (mode <= 0) {
- qCritical("SvgalibScreen::connect(): invalid vga mode");
- return false;
- }
-
- vga_modeinfo *modeinfo = vga_getmodeinfo(mode);
-
- QScreen::lstep = modeinfo->linewidth;
- QScreen::dw = QScreen::w = modeinfo->width;
- QScreen::dh = QScreen::h = modeinfo->height;
- QScreen::d = getModeDepth(modeinfo);
- QScreen::size = QScreen::lstep * dh;
- QScreen::data = 0;
-
- switch (depth()) {
- case 32:
- setPixelFormat(QImage::Format_ARGB32_Premultiplied);
- break;
- case 24:
- setPixelFormat(QImage::Format_RGB888);
- break;
- case 16:
- setPixelFormat(QImage::Format_RGB16);
- break;
- case 15:
- setPixelFormat(QImage::Format_RGB555);
- break;
- default:
- break;
- }
-
- const int dpi = 72;
- QScreen::physWidth = qRound(QScreen::dw * 25.4 / dpi);
- QScreen::physHeight = qRound(QScreen::dh * 25.4 / dpi);
-
- const QStringList args = displaySpec.split(QLatin1Char(':'),
- QString::SkipEmptyParts);
- grayscale = args.contains(QLatin1String("grayscale"), Qt::CaseInsensitive);
-
- return true;
-}
-//! [0]
-
-void SvgalibScreen::initColorMap()
-{
- const int numColors = vga_getcolors();
- if (numColors == 2 || numColors > 256) {
- screencols = 0;
- return; // not a palette based mode
- }
-
- if (numColors == 16) {
- if (grayscale) {
- for (int i = 0; i < 256; ++i) {
- const int c = i * 16 / 256;
- vga_setpalette(i, c, c, c);
- }
- screencols = 256; // XXX: takes advantage of optimization in alloc()
- } else { // read in EGA palette
- int r, g, b;
- for (int i = 0; i < 16; ++i) {
- vga_getpalette(i, &r, &g, &b);
- screenclut[i] = qRgb(r, g, b);
- }
- screencols = 16;
- }
-
- return;
- }
-
- Q_ASSERT(numColors == 256);
-
- if (grayscale) {
- for (int i = 0; i < 256; ++i) {
- const int c = i * 64 / 256;
- vga_setpalette(i, c, c, c);
- }
- } else {
- int i = 0;
-
-#if 0
- // read in EGA palette
- while (i < 16) {
- int r, g, b;
- vga_getpalette(i, &r, &g, &b);
- screenclut[i] = qRgb(r, g, b);
- ++i;
- }
- screencols = 16;
-#endif
-
- // 6 * 6 * 6 color cube
- for (int r = 0; r < 6; ++r) {
- for (int g = 0; g < 6; ++g) {
- for (int b = 0; b < 6; ++b) {
- vga_setpalette(i, r * 64/6, g * 64/6, b * 64/6);
- screenclut[i] = qRgb(r * 256/6, g * 256/6, b * 256/6);
- ++i;
- }
- }
- }
- screencols = i;
-
- while (i < 256) {
- screenclut[i] = qRgb(0, 0, 0);
- ++i;
- }
- }
-}
-
-//! [1]
-bool SvgalibScreen::initDevice()
-{
- if (vga_init() != 0) {
- qCritical("SvgalibScreen::initDevice(): unable to initialize svgalib");
- return false;
- }
-
- int mode = vga_getdefaultmode();
- if (vga_setmode(mode) == -1) {
- qCritical("SvgalibScreen::initialize(): unable to set graphics mode");
- return false;
- }
-
- if (gl_setcontextvga(mode) != 0) {
- qCritical("SvgalibScreen::initDevice(): unable to set vga context");
- return false;
- }
- context = gl_allocatecontext();
- gl_getcontext(context);
-
- vga_modeinfo *modeinfo = vga_getmodeinfo(mode);
- if (modeinfo->flags & IS_LINEAR)
- QScreen::data = vga_getgraphmem();
-
- initColorMap();
-
- QScreenCursor::initSoftwareCursor();
- return true;
-}
-//! [1]
-
-//! [2]
-void SvgalibScreen::shutdownDevice()
-{
- gl_freecontext(context);
- vga_setmode(TEXT);
-}
-//! [2]
-
-//! [3]
-void SvgalibScreen::disconnect()
-{
-}
-//! [3]
-
-//! [4]
-void SvgalibScreen::solidFill(const QColor &color, const QRegion &reg)
-{
- int c;
- if (depth() == 4 || depth() == 8)
- c = alloc(color.red(), color.green(), color.blue());
- else
- c = gl_rgbcolor(color.red(), color.green(), color.blue());
-
- const QVector<QRect> rects = (reg & region()).rects();
- for (int i = 0; i < rects.size(); ++i) {
- const QRect r = rects.at(i);
- gl_fillbox(r.left(), r.top(), r.width(), r.height(), c);
- }
-}
-//! [4]
-
-void SvgalibScreen::blit16To8(const QImage &image,
- const QPoint &topLeft, const QRegion &region)
-{
- const int imageStride = image.bytesPerLine() / 2;
- const QVector<QRect> rects = region.rects();
-
- for (int i = 0; i < rects.size(); ++i) {
- const QRect r = rects.at(i).translated(-topLeft);
- int y = r.y();
- const quint16 *s = reinterpret_cast<const quint16*>(image.scanLine(y));
-
- while (y <= r.bottom()) {
- int x1 = r.x();
- while (x1 <= r.right()) {
- const quint16 c = s[x1];
- int x2 = x1;
- // find span length
- while ((x2+1 < r.right()) && (s[x2+1] == c))
- ++x2;
- gl_hline(x1 + topLeft.x(), y + topLeft.y(), x2 + topLeft.x(),
- qt_colorConvert<quint8, quint16>(c, 0));
- x1 = x2 + 1;
- }
- s += imageStride;
- ++y;
- }
- }
-}
-
-void SvgalibScreen::blit32To8(const QImage &image,
- const QPoint &topLeft, const QRegion &region)
-{
- const int imageStride = image.bytesPerLine() / 4;
- const QVector<QRect> rects = region.rects();
-
- for (int i = 0; i < rects.size(); ++i) {
- const QRect r = rects.at(i).translated(-topLeft);
- int y = r.y();
- const quint32 *s = reinterpret_cast<const quint32*>(image.scanLine(y));
-
- while (y <= r.bottom()) {
- int x1 = r.x();
- while (x1 <= r.right()) {
- const quint32 c = s[x1];
- int x2 = x1;
- // find span length
- while ((x2+1 < r.right()) && (s[x2+1] == c))
- ++x2;
- gl_hline(x1 + topLeft.x(), y + topLeft.y(), x2 + topLeft.x(),
- qt_colorConvert<quint8, quint32>(c, 0));
- x1 = x2 + 1;
- }
- s += imageStride;
- ++y;
- }
- }
-}
-
-//! [5]
-void SvgalibScreen::blit(const QImage &img, const QPoint &topLeft,
- const QRegion &reg)
-{
- if (depth() == 8) {
- switch (img.format()) {
- case QImage::Format_RGB16:
- blit16To8(img, topLeft, reg);
- return;
- case QImage::Format_RGB32:
- case QImage::Format_ARGB32:
- case QImage::Format_ARGB32_Premultiplied:
- blit32To8(img, topLeft, reg);
- return;
- default:
- break;
- }
- }
-
- if (img.format() != pixelFormat()) {
- if (base())
- QScreen::blit(img, topLeft, reg);
- return;
- }
-
- const QVector<QRect> rects = (reg & region()).rects();
-
- for (int i = 0; i < rects.size(); ++i) {
- const QRect r = rects.at(i);
- gl_putboxpart(r.x(), r.y(), r.width(), r.height(),
- img.width(), img.height(),
- static_cast<void*>(const_cast<uchar*>(img.bits())),
- r.x() - topLeft.x(), r.y() - topLeft.y());
- }
-}
-//! [5]
-
-//! [7]
-QWSWindowSurface* SvgalibScreen::createSurface(QWidget *widget) const
-{
- if (base()) {
- static int onScreenPaint = -1;
- if (onScreenPaint == -1)
- onScreenPaint = qgetenv("QT_ONSCREEN_PAINT").toInt();
-
- if (onScreenPaint > 0 || widget->testAttribute(Qt::WA_PaintOnScreen))
- return new SvgalibSurface(widget);
- }
- return QScreen::createSurface(widget);
-}
-//! [7]
-
-//! [8]
-QWSWindowSurface* SvgalibScreen::createSurface(const QString &key) const
-{
- if (key == QLatin1String("svgalib"))
- return new SvgalibSurface;
- return QScreen::createSurface(key);
-}
-//! [8]
diff --git a/examples/qws/svgalib/svgalibscreen.h b/examples/qws/svgalib/svgalibscreen.h
deleted file mode 100644
index 244375ed18..0000000000
--- a/examples/qws/svgalib/svgalibscreen.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef SVGALIBSCREEN_H
-#define SVGALIBSCREEN_H
-
-#include <QScreen>
-
-#include <vga.h>
-#include <vgagl.h>
-
-//! [0]
-class SvgalibScreen : public QScreen
-{
-public:
- SvgalibScreen(int displayId) : QScreen(displayId) {}
- ~SvgalibScreen() {}
-
- bool connect(const QString &displaySpec);
- bool initDevice();
- void shutdownDevice();
- void disconnect();
-
- void setMode(int, int, int) {}
- void blank(bool) {}
-
- void blit(const QImage &img, const QPoint &topLeft, const QRegion &region);
- void solidFill(const QColor &color, const QRegion &region);
-//! [0]
-
- QWSWindowSurface* createSurface(QWidget *widget) const;
- QWSWindowSurface* createSurface(const QString &key) const;
-
-//! [1]
-private:
- void initColorMap();
- void blit16To8(const QImage &image,
- const QPoint &topLeft, const QRegion &region);
- void blit32To8(const QImage &image,
- const QPoint &topLeft, const QRegion &region);
-
- GraphicsContext *context;
-};
-//! [1]
-
-#endif // SVGALIBSCREEN_H
diff --git a/examples/qws/svgalib/svgalibsurface.cpp b/examples/qws/svgalib/svgalibsurface.cpp
deleted file mode 100644
index 35f80cbb61..0000000000
--- a/examples/qws/svgalib/svgalibsurface.cpp
+++ /dev/null
@@ -1,86 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "svgalibsurface.h"
-#include "svgalibpaintdevice.h"
-
-#include <vgagl.h>
-
-SvgalibSurface::SvgalibSurface() : QWSWindowSurface(), pdevice(0)
-{
- setSurfaceFlags(Opaque);
-}
-
-SvgalibSurface::SvgalibSurface(QWidget *w)
- : QWSWindowSurface(w)
-{
- setSurfaceFlags(Opaque);
- pdevice = new SvgalibPaintDevice(w);
-}
-
-SvgalibSurface::~SvgalibSurface()
-{
- delete pdevice;
-}
-
-void SvgalibSurface::setGeometry(const QRect &rect)
-{
- QWSWindowSurface::setGeometry(rect);
-}
-
-QPoint SvgalibSurface::painterOffset() const
-{
- return geometry().topLeft() + QWSWindowSurface::painterOffset();
-}
-
-//! [0]
-bool SvgalibSurface::scroll(const QRegion &region, int dx, int dy)
-{
- const QVector<QRect> rects = region.rects();
- for (int i = 0; i < rects.size(); ++i) {
- const QRect r = rects.at(i);
- gl_copybox(r.left(), r.top(), r.width(), r.height(),
- r.left() + dx, r.top() + dy);
- }
-
- return true;
-}
-//! [0]
-
diff --git a/examples/qws/svgalib/svgalibsurface.h b/examples/qws/svgalib/svgalibsurface.h
deleted file mode 100644
index fd4fd8e26e..0000000000
--- a/examples/qws/svgalib/svgalibsurface.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef SVGALIBSURFACE_H
-#define SVGALIBSURFACE_H
-
-#include "svgalibpaintengine.h"
-#include "svgalibpaintdevice.h"
-#include <private/qwindowsurface_qws_p.h>
-
-class SvgalibPaintDevice;
-
-//! [0]
-class SvgalibSurface : public QWSWindowSurface
-{
-public:
- SvgalibSurface();
- SvgalibSurface(QWidget *w);
- ~SvgalibSurface();
-
- void setGeometry(const QRect &rect);
- bool isValid() const { return true; }
- bool scroll(const QRegion &region, int dx, int dy);
- QString key() const { return QLatin1String("svgalib"); }
-
- bool attach(const QByteArray &) { return true; }
- void detach() {}
-
- QImage image() const { return QImage(); }
- QPaintDevice *paintDevice() { return pdevice; }
- QPoint painterOffset() const;
-
-private:
- SvgalibPaintDevice *pdevice;
-};
-//! [0]
-
-#endif // SVGALIBSURFACE_H
diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf
index f71afbb04e..8cf067cd7e 100644
--- a/mkspecs/features/qt.prf
+++ b/mkspecs/features/qt.prf
@@ -86,7 +86,7 @@ for(QT_CURRENT_VERIFY, $$list($$QT_PLUGIN_VERIFY)) {
BEARERPLUGINS = qgenericbearer qnativewifibearer
CODECPLUGINS = qcncodecs qjpcodecs qkrcodecs qtwcodecs
DECORATIONPLUGINS = qdecorationdefault qdecorationstyled qdecorationwindows
- GFXDRIVERPLUGINS = qgfxvnc qscreenvfb qgfxtransformed qgfxshadowfb qgfxpvregl qscreenlinuxfb qeglnullws qdirectfbscreen qahiscreen
+ GFXDRIVERPLUGINS = qscreenvfb qgfxtransformed qgfxshadowfb qgfxpvregl qscreenlinuxfb qeglnullws qdirectfbscreen qahiscreen
GRAPHICSSYSTEMPLUGINS = qmeegographicssystem qglgraphicssystem qvggraphicssystem qshivavggraphicssystem
IMAGEPLUGINS = qgif qico qjpeg qsvg
INPUTPLUGINS = qimsw-multi
diff --git a/mkspecs/linux-lsb-g++/qmake.conf b/mkspecs/linux-lsb-g++/qmake.conf
index 4335f5ae91..c486534b87 100644
--- a/mkspecs/linux-lsb-g++/qmake.conf
+++ b/mkspecs/linux-lsb-g++/qmake.conf
@@ -14,6 +14,14 @@ include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)
load(qt_config)
+QMAKE_LIBS_THREAD += -lrt
+
QMAKE_LSB = 1
QMAKE_CC = lsbcc
QMAKE_CXX = lsbc++
+
+QMAKE_LINK_C = $$QMAKE_CC
+QMAKE_LINK_C_SHLIB = $$QMAKE_CC
+
+QMAKE_LINK = $$QMAKE_CXX
+QMAKE_LINK_SHLIB = $$QMAKE_CXX
diff --git a/src/3rdparty/harfbuzz/src/harfbuzz-gpos-private.h b/src/3rdparty/harfbuzz/src/harfbuzz-gpos-private.h
index b363b81d87..9f0fecd61e 100644
--- a/src/3rdparty/harfbuzz/src/harfbuzz-gpos-private.h
+++ b/src/3rdparty/harfbuzz/src/harfbuzz-gpos-private.h
@@ -219,8 +219,12 @@ struct HB_PairSet_
{
HB_UShort PairValueCount;
/* number of PairValueRecord tables */
+#ifndef HB_USE_FLEXIBLE_VALUE_RECORD
HB_PairValueRecord* PairValueRecord;
/* array of PairValueRecord tables */
+#else
+ HB_Short* ValueRecords;
+#endif
};
typedef struct HB_PairSet_ HB_PairSet;
diff --git a/src/3rdparty/harfbuzz/src/harfbuzz-gpos.c b/src/3rdparty/harfbuzz/src/harfbuzz-gpos.c
index 8247875714..217a4fd001 100644
--- a/src/3rdparty/harfbuzz/src/harfbuzz-gpos.c
+++ b/src/3rdparty/harfbuzz/src/harfbuzz-gpos.c
@@ -185,6 +185,18 @@ HB_Error HB_Done_GPOS_Table( HB_GPOSHeader* gpos )
return HB_Err_Ok;
}
+static HB_UInt Calculate_Class2RecordSize(HB_UShort format1, HB_UShort format2)
+{
+ // Return number of 16 bit values in two value records with given formats
+ return (format1 & 0x01) + (format2 & 0x01)
+ + ((format1 & 0x02) >> 1) + ((format2 & 0x02) >> 1)
+ + ((format1 & 0x04) >> 2) + ((format2 & 0x04) >> 2)
+ + ((format1 & 0x08) >> 3) + ((format2 & 0x08) >> 3)
+ + ((format1 & 0x10) >> 4) + ((format2 & 0x10) >> 4)
+ + ((format1 & 0x20) >> 5) + ((format2 & 0x20) >> 5)
+ + ((format1 & 0x40) >> 6) + ((format2 & 0x40) >> 6)
+ + ((format1 & 0x80) >> 7) + ((format2 & 0x80) >> 7);
+}
/*****************************
* SubTable related functions
@@ -1096,7 +1108,6 @@ static HB_Error Lookup_SinglePos( GPOS_Instance* gpi,
return HB_Err_Ok;
}
-
/* LookupType 2 */
/* PairSet */
@@ -1111,8 +1122,12 @@ static HB_Error Load_PairSet ( HB_PairSet* ps,
HB_UShort n, m, count;
HB_UInt base_offset;
+#ifdef HB_USE_FLEXIBLE_VALUE_RECORD
+ HB_UInt record_size = 0;
+ HB_Short *vr;
+#else
HB_PairValueRecord* pvr;
-
+#endif
base_offset = FILE_Pos();
@@ -1123,6 +1138,7 @@ static HB_Error Load_PairSet ( HB_PairSet* ps,
FORGET_Frame();
+#ifndef HB_USE_FLEXIBLE_VALUE_RECORD
ps->PairValueRecord = NULL;
if ( ALLOC_ARRAY( ps->PairValueRecord, count, HB_PairValueRecord ) )
@@ -1142,26 +1158,50 @@ static HB_Error Load_PairSet ( HB_PairSet* ps,
if ( format1 )
{
error = Load_ValueRecord( &pvr[n].Value1, format1,
- base_offset, stream );
+ base_offset, stream );
if ( error )
- goto Fail;
+ goto Fail;
}
if ( format2 )
{
error = Load_ValueRecord( &pvr[n].Value2, format2,
- base_offset, stream );
+ base_offset, stream );
if ( error )
{
- if ( format1 )
- Free_ValueRecord( &pvr[n].Value1, format1 );
- goto Fail;
+ if ( format1 )
+ Free_ValueRecord( &pvr[n].Value1, format1 );
+ goto Fail;
}
}
}
+#else
+ ps->ValueRecords = 0;
+
+ // Add one for the SecondGlyph part of each record
+ record_size = Calculate_Class2RecordSize( format1, format2 ) + 1;
+
+ if ( ALLOC_ARRAY( ps->ValueRecords, record_size * count, HB_Short ) )
+ return error;
+
+ vr = ps->ValueRecords;
+
+ for ( n = 0; n < count; n++ )
+ {
+ if ( ACCESS_Frame( 2L ) )
+ goto Fail;
+
+ for ( m = 0; m < record_size; m++ )
+ *(vr++) = GET_Short();
+
+ FORGET_Frame();
+ }
+#endif
+
return HB_Err_Ok;
Fail:
+#ifndef HB_USE_FLEXIBLE_VALUE_RECORD
for ( m = 0; m < n; m++ )
{
if ( format1 )
@@ -1171,19 +1211,23 @@ Fail:
}
FREE( pvr );
+#else
+ FREE ( ps->ValueRecords );
+#endif
+
return error;
}
static void Free_PairSet( HB_PairSet* ps,
HB_UShort format1,
- HB_UShort format2 )
+ HB_UShort format2)
{
+#ifndef HB_USE_FLEXIBLE_VALUE_RECORD
HB_UShort n, count;
HB_PairValueRecord* pvr;
-
if ( ps->PairValueRecord )
{
count = ps->PairValueCount;
@@ -1199,6 +1243,12 @@ static void Free_PairSet( HB_PairSet* ps,
FREE( pvr );
}
+#else
+ if ( ps->ValueRecords )
+ {
+ FREE( ps->ValueRecords );
+ }
+#endif
}
@@ -1282,19 +1332,6 @@ static void Free_PairPos1( HB_PairPosFormat1* ppf1,
}
}
-static HB_UInt Calculate_Class2RecordSize(HB_UShort format1, HB_UShort format2)
-{
- // Return number of 16 bit values in two value records with given formats
- return (format1 & 0x01) + (format2 & 0x01)
- + ((format1 & 0x02) >> 1) + ((format2 & 0x02) >> 1)
- + ((format1 & 0x04) >> 2) + ((format2 & 0x04) >> 2)
- + ((format1 & 0x08) >> 3) + ((format2 & 0x08) >> 3)
- + ((format1 & 0x10) >> 4) + ((format2 & 0x10) >> 4)
- + ((format1 & 0x20) >> 5) + ((format2 & 0x20) >> 5)
- + ((format1 & 0x40) >> 6) + ((format2 & 0x40) >> 6)
- + ((format1 & 0x80) >> 7) + ((format2 & 0x80) >> 7);
-}
-
/* PairPosFormat2 */
@@ -1577,7 +1614,6 @@ static void Free_PairPos( HB_GPOS_SubTable* st )
_HB_OPEN_Free_Coverage( &pp->Coverage );
}
-
static HB_Error Lookup_PairPos1( GPOS_Instance* gpi,
HB_PairPosFormat1* ppf1,
HB_Buffer buffer,
@@ -1589,8 +1625,13 @@ static HB_Error Lookup_PairPos1( GPOS_Instance* gpi,
HB_Error error;
HB_UShort numpvr, glyph2;
+#ifndef HB_USE_FLEXIBLE_VALUE_RECORD
HB_PairValueRecord* pvr;
-
+#else
+ HB_Short *vr;
+ HB_UShort second_glyph;
+ HB_UInt record_size1, record_size2;
+#endif
if ( index >= ppf1->PairSetCount )
return ERR(HB_Err_Invalid_SubTable);
@@ -1598,12 +1639,13 @@ static HB_Error Lookup_PairPos1( GPOS_Instance* gpi,
if (!ppf1->PairSet[index].PairValueCount)
return HB_Err_Not_Covered;
+ glyph2 = IN_CURGLYPH();
+
+#ifndef HB_USE_FLEXIBLE_VALUE_RECORD
pvr = ppf1->PairSet[index].PairValueRecord;
if ( !pvr )
return ERR(HB_Err_Invalid_SubTable);
- glyph2 = IN_CURGLYPH();
-
for ( numpvr = ppf1->PairSet[index].PairValueCount;
numpvr;
numpvr--, pvr++ )
@@ -1613,11 +1655,38 @@ static HB_Error Lookup_PairPos1( GPOS_Instance* gpi,
error = Get_ValueRecord( gpi, &pvr->Value1, format1,
POSITION( first_pos ) );
if ( error )
- return error;
+ return error;
return Get_ValueRecord( gpi, &pvr->Value2, format2,
POSITION( buffer->in_pos ) );
}
}
+#else
+ vr = ppf1->PairSet[index].ValueRecords;
+ if ( !vr )
+ return ERR(HB_Err_Invalid_SubTable);
+
+ record_size1 = Calculate_Class2RecordSize( format1, 0 );
+ record_size2 = Calculate_Class2RecordSize( format2, 0 );
+
+ for ( numpvr = ppf1->PairSet[index].PairValueCount; numpvr; numpvr-- )
+ {
+ second_glyph = *((HB_UShort *)vr);
+ vr++;
+ if ( glyph2 == second_glyph )
+ {
+ error = Get_FlexibleValueRecord( gpi, vr, format1, POSITION( first_pos ) );
+ if ( error )
+ return error;
+ vr += record_size1;
+
+ return Get_FlexibleValueRecord( gpi, vr, format2, POSITION( buffer->in_pos ) );
+ }
+ else
+ {
+ vr += record_size1 + record_size2;
+ }
+ }
+#endif
return HB_Err_Not_Covered;
}
diff --git a/src/3rdparty/iaccessible2/generated/amd64/Accessible2.h b/src/3rdparty/iaccessible2/generated/amd64/Accessible2.h
new file mode 100644
index 0000000000..3973db319e
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/Accessible2.h
@@ -0,0 +1,585 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:56 2012
+ */
+/* Compiler settings for Accessible2.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __Accessible2_h__
+#define __Accessible2_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IAccessible2_FWD_DEFINED__
+#define __IAccessible2_FWD_DEFINED__
+typedef interface IAccessible2 IAccessible2;
+#endif /* __IAccessible2_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "objidl.h"
+#include "oaidl.h"
+#include "oleacc.h"
+#include "AccessibleRelation.h"
+#include "AccessibleStates.h"
+#include "IA2CommonTypes.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/* interface __MIDL_itf_Accessible2_0000_0000 */
+/* [local] */
+
+typedef struct IA2Locale
+ {
+ BSTR language;
+ BSTR country;
+ BSTR variant;
+ } IA2Locale;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_Accessible2_0000_0000_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_Accessible2_0000_0000_v0_0_s_ifspec;
+
+#ifndef __IAccessible2_INTERFACE_DEFINED__
+#define __IAccessible2_INTERFACE_DEFINED__
+
+/* interface IAccessible2 */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessible2;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("E89F726E-C4F4-4c19-BB19-B647D7FA8478")
+ IAccessible2 : public IAccessible
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nRelations(
+ /* [retval][out] */ long *nRelations) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_relation(
+ /* [in] */ long relationIndex,
+ /* [retval][out] */ IAccessibleRelation **relation) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_relations(
+ /* [in] */ long maxRelations,
+ /* [length_is][size_is][out] */ IAccessibleRelation **relations,
+ /* [retval][out] */ long *nRelations) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE role(
+ /* [retval][out] */ long *role) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE scrollTo(
+ /* [in] */ enum IA2ScrollType scrollType) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE scrollToPoint(
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_groupPosition(
+ /* [out] */ long *groupLevel,
+ /* [out] */ long *similarItemsInGroup,
+ /* [retval][out] */ long *positionInGroup) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_states(
+ /* [retval][out] */ AccessibleStates *states) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_extendedRole(
+ /* [retval][out] */ BSTR *extendedRole) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_localizedExtendedRole(
+ /* [retval][out] */ BSTR *localizedExtendedRole) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nExtendedStates(
+ /* [retval][out] */ long *nExtendedStates) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_extendedStates(
+ /* [in] */ long maxExtendedStates,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **extendedStates,
+ /* [retval][out] */ long *nExtendedStates) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_localizedExtendedStates(
+ /* [in] */ long maxLocalizedExtendedStates,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **localizedExtendedStates,
+ /* [retval][out] */ long *nLocalizedExtendedStates) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_uniqueID(
+ /* [retval][out] */ long *uniqueID) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_windowHandle(
+ /* [retval][out] */ HWND *windowHandle) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_indexInParent(
+ /* [retval][out] */ long *indexInParent) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_locale(
+ /* [retval][out] */ IA2Locale *locale) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_attributes(
+ /* [retval][out] */ BSTR *attributes) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessible2Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessible2 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessible2 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessible2 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ IAccessible2 * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ IAccessible2 * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ IAccessible2 * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [range][in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ IAccessible2 * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accParent )(
+ IAccessible2 * This,
+ /* [retval][out] */ IDispatch **ppdispParent);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChildCount )(
+ IAccessible2 * This,
+ /* [retval][out] */ long *pcountChildren);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChild )(
+ IAccessible2 * This,
+ /* [in] */ VARIANT varChild,
+ /* [retval][out] */ IDispatch **ppdispChild);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accName )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszName);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accValue )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszValue);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDescription )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszDescription);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accRole )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ VARIANT *pvarRole);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accState )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ VARIANT *pvarState);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelp )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszHelp);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelpTopic )(
+ IAccessible2 * This,
+ /* [out] */ BSTR *pszHelpFile,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ long *pidTopic);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accKeyboardShortcut )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszKeyboardShortcut);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accFocus )(
+ IAccessible2 * This,
+ /* [retval][out] */ VARIANT *pvarChild);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accSelection )(
+ IAccessible2 * This,
+ /* [retval][out] */ VARIANT *pvarChildren);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDefaultAction )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszDefaultAction);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accSelect )(
+ IAccessible2 * This,
+ /* [in] */ long flagsSelect,
+ /* [optional][in] */ VARIANT varChild);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accLocation )(
+ IAccessible2 * This,
+ /* [out] */ long *pxLeft,
+ /* [out] */ long *pyTop,
+ /* [out] */ long *pcxWidth,
+ /* [out] */ long *pcyHeight,
+ /* [optional][in] */ VARIANT varChild);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accNavigate )(
+ IAccessible2 * This,
+ /* [in] */ long navDir,
+ /* [optional][in] */ VARIANT varStart,
+ /* [retval][out] */ VARIANT *pvarEndUpAt);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accHitTest )(
+ IAccessible2 * This,
+ /* [in] */ long xLeft,
+ /* [in] */ long yTop,
+ /* [retval][out] */ VARIANT *pvarChild);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accDoDefaultAction )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild);
+
+ /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accName )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [in] */ BSTR szName);
+
+ /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accValue )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [in] */ BSTR szValue);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRelations )(
+ IAccessible2 * This,
+ /* [retval][out] */ long *nRelations);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relation )(
+ IAccessible2 * This,
+ /* [in] */ long relationIndex,
+ /* [retval][out] */ IAccessibleRelation **relation);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relations )(
+ IAccessible2 * This,
+ /* [in] */ long maxRelations,
+ /* [length_is][size_is][out] */ IAccessibleRelation **relations,
+ /* [retval][out] */ long *nRelations);
+
+ HRESULT ( STDMETHODCALLTYPE *role )(
+ IAccessible2 * This,
+ /* [retval][out] */ long *role);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollTo )(
+ IAccessible2 * This,
+ /* [in] */ enum IA2ScrollType scrollType);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollToPoint )(
+ IAccessible2 * This,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_groupPosition )(
+ IAccessible2 * This,
+ /* [out] */ long *groupLevel,
+ /* [out] */ long *similarItemsInGroup,
+ /* [retval][out] */ long *positionInGroup);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_states )(
+ IAccessible2 * This,
+ /* [retval][out] */ AccessibleStates *states);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedRole )(
+ IAccessible2 * This,
+ /* [retval][out] */ BSTR *extendedRole);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedRole )(
+ IAccessible2 * This,
+ /* [retval][out] */ BSTR *localizedExtendedRole);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nExtendedStates )(
+ IAccessible2 * This,
+ /* [retval][out] */ long *nExtendedStates);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedStates )(
+ IAccessible2 * This,
+ /* [in] */ long maxExtendedStates,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **extendedStates,
+ /* [retval][out] */ long *nExtendedStates);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedStates )(
+ IAccessible2 * This,
+ /* [in] */ long maxLocalizedExtendedStates,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **localizedExtendedStates,
+ /* [retval][out] */ long *nLocalizedExtendedStates);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_uniqueID )(
+ IAccessible2 * This,
+ /* [retval][out] */ long *uniqueID);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_windowHandle )(
+ IAccessible2 * This,
+ /* [retval][out] */ HWND *windowHandle);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_indexInParent )(
+ IAccessible2 * This,
+ /* [retval][out] */ long *indexInParent);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_locale )(
+ IAccessible2 * This,
+ /* [retval][out] */ IA2Locale *locale);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )(
+ IAccessible2 * This,
+ /* [retval][out] */ BSTR *attributes);
+
+ END_INTERFACE
+ } IAccessible2Vtbl;
+
+ interface IAccessible2
+ {
+ CONST_VTBL struct IAccessible2Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessible2_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessible2_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessible2_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessible2_GetTypeInfoCount(This,pctinfo) \
+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IAccessible2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IAccessible2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IAccessible2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IAccessible2_get_accParent(This,ppdispParent) \
+ ( (This)->lpVtbl -> get_accParent(This,ppdispParent) )
+
+#define IAccessible2_get_accChildCount(This,pcountChildren) \
+ ( (This)->lpVtbl -> get_accChildCount(This,pcountChildren) )
+
+#define IAccessible2_get_accChild(This,varChild,ppdispChild) \
+ ( (This)->lpVtbl -> get_accChild(This,varChild,ppdispChild) )
+
+#define IAccessible2_get_accName(This,varChild,pszName) \
+ ( (This)->lpVtbl -> get_accName(This,varChild,pszName) )
+
+#define IAccessible2_get_accValue(This,varChild,pszValue) \
+ ( (This)->lpVtbl -> get_accValue(This,varChild,pszValue) )
+
+#define IAccessible2_get_accDescription(This,varChild,pszDescription) \
+ ( (This)->lpVtbl -> get_accDescription(This,varChild,pszDescription) )
+
+#define IAccessible2_get_accRole(This,varChild,pvarRole) \
+ ( (This)->lpVtbl -> get_accRole(This,varChild,pvarRole) )
+
+#define IAccessible2_get_accState(This,varChild,pvarState) \
+ ( (This)->lpVtbl -> get_accState(This,varChild,pvarState) )
+
+#define IAccessible2_get_accHelp(This,varChild,pszHelp) \
+ ( (This)->lpVtbl -> get_accHelp(This,varChild,pszHelp) )
+
+#define IAccessible2_get_accHelpTopic(This,pszHelpFile,varChild,pidTopic) \
+ ( (This)->lpVtbl -> get_accHelpTopic(This,pszHelpFile,varChild,pidTopic) )
+
+#define IAccessible2_get_accKeyboardShortcut(This,varChild,pszKeyboardShortcut) \
+ ( (This)->lpVtbl -> get_accKeyboardShortcut(This,varChild,pszKeyboardShortcut) )
+
+#define IAccessible2_get_accFocus(This,pvarChild) \
+ ( (This)->lpVtbl -> get_accFocus(This,pvarChild) )
+
+#define IAccessible2_get_accSelection(This,pvarChildren) \
+ ( (This)->lpVtbl -> get_accSelection(This,pvarChildren) )
+
+#define IAccessible2_get_accDefaultAction(This,varChild,pszDefaultAction) \
+ ( (This)->lpVtbl -> get_accDefaultAction(This,varChild,pszDefaultAction) )
+
+#define IAccessible2_accSelect(This,flagsSelect,varChild) \
+ ( (This)->lpVtbl -> accSelect(This,flagsSelect,varChild) )
+
+#define IAccessible2_accLocation(This,pxLeft,pyTop,pcxWidth,pcyHeight,varChild) \
+ ( (This)->lpVtbl -> accLocation(This,pxLeft,pyTop,pcxWidth,pcyHeight,varChild) )
+
+#define IAccessible2_accNavigate(This,navDir,varStart,pvarEndUpAt) \
+ ( (This)->lpVtbl -> accNavigate(This,navDir,varStart,pvarEndUpAt) )
+
+#define IAccessible2_accHitTest(This,xLeft,yTop,pvarChild) \
+ ( (This)->lpVtbl -> accHitTest(This,xLeft,yTop,pvarChild) )
+
+#define IAccessible2_accDoDefaultAction(This,varChild) \
+ ( (This)->lpVtbl -> accDoDefaultAction(This,varChild) )
+
+#define IAccessible2_put_accName(This,varChild,szName) \
+ ( (This)->lpVtbl -> put_accName(This,varChild,szName) )
+
+#define IAccessible2_put_accValue(This,varChild,szValue) \
+ ( (This)->lpVtbl -> put_accValue(This,varChild,szValue) )
+
+
+#define IAccessible2_get_nRelations(This,nRelations) \
+ ( (This)->lpVtbl -> get_nRelations(This,nRelations) )
+
+#define IAccessible2_get_relation(This,relationIndex,relation) \
+ ( (This)->lpVtbl -> get_relation(This,relationIndex,relation) )
+
+#define IAccessible2_get_relations(This,maxRelations,relations,nRelations) \
+ ( (This)->lpVtbl -> get_relations(This,maxRelations,relations,nRelations) )
+
+#define IAccessible2_role(This,role) \
+ ( (This)->lpVtbl -> role(This,role) )
+
+#define IAccessible2_scrollTo(This,scrollType) \
+ ( (This)->lpVtbl -> scrollTo(This,scrollType) )
+
+#define IAccessible2_scrollToPoint(This,coordinateType,x,y) \
+ ( (This)->lpVtbl -> scrollToPoint(This,coordinateType,x,y) )
+
+#define IAccessible2_get_groupPosition(This,groupLevel,similarItemsInGroup,positionInGroup) \
+ ( (This)->lpVtbl -> get_groupPosition(This,groupLevel,similarItemsInGroup,positionInGroup) )
+
+#define IAccessible2_get_states(This,states) \
+ ( (This)->lpVtbl -> get_states(This,states) )
+
+#define IAccessible2_get_extendedRole(This,extendedRole) \
+ ( (This)->lpVtbl -> get_extendedRole(This,extendedRole) )
+
+#define IAccessible2_get_localizedExtendedRole(This,localizedExtendedRole) \
+ ( (This)->lpVtbl -> get_localizedExtendedRole(This,localizedExtendedRole) )
+
+#define IAccessible2_get_nExtendedStates(This,nExtendedStates) \
+ ( (This)->lpVtbl -> get_nExtendedStates(This,nExtendedStates) )
+
+#define IAccessible2_get_extendedStates(This,maxExtendedStates,extendedStates,nExtendedStates) \
+ ( (This)->lpVtbl -> get_extendedStates(This,maxExtendedStates,extendedStates,nExtendedStates) )
+
+#define IAccessible2_get_localizedExtendedStates(This,maxLocalizedExtendedStates,localizedExtendedStates,nLocalizedExtendedStates) \
+ ( (This)->lpVtbl -> get_localizedExtendedStates(This,maxLocalizedExtendedStates,localizedExtendedStates,nLocalizedExtendedStates) )
+
+#define IAccessible2_get_uniqueID(This,uniqueID) \
+ ( (This)->lpVtbl -> get_uniqueID(This,uniqueID) )
+
+#define IAccessible2_get_windowHandle(This,windowHandle) \
+ ( (This)->lpVtbl -> get_windowHandle(This,windowHandle) )
+
+#define IAccessible2_get_indexInParent(This,indexInParent) \
+ ( (This)->lpVtbl -> get_indexInParent(This,indexInParent) )
+
+#define IAccessible2_get_locale(This,locale) \
+ ( (This)->lpVtbl -> get_locale(This,locale) )
+
+#define IAccessible2_get_attributes(This,attributes) \
+ ( (This)->lpVtbl -> get_attributes(This,attributes) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessible2_INTERFACE_DEFINED__ */
+
+
+/* Additional Prototypes for ALL interfaces */
+
+unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
+unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
+unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
+void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
+
+unsigned long __RPC_USER HWND_UserSize( unsigned long *, unsigned long , HWND * );
+unsigned char * __RPC_USER HWND_UserMarshal( unsigned long *, unsigned char *, HWND * );
+unsigned char * __RPC_USER HWND_UserUnmarshal(unsigned long *, unsigned char *, HWND * );
+void __RPC_USER HWND_UserFree( unsigned long *, HWND * );
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/Accessible2_i.c b/src/3rdparty/iaccessible2/generated/amd64/Accessible2_i.c
new file mode 100644
index 0000000000..480a2a7537
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/Accessible2_i.c
@@ -0,0 +1,79 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:56 2012
+ */
+/* Compiler settings for Accessible2.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_IAccessible2,0xE89F726E,0xC4F4,0x4c19,0xBB,0x19,0xB6,0x47,0xD7,0xFA,0x84,0x78);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/Accessible2_p.c b/src/3rdparty/iaccessible2/generated/amd64/Accessible2_p.c
new file mode 100644
index 0000000000..281718a7e5
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/Accessible2_p.c
@@ -0,0 +1,1196 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:56 2012
+ */
+/* Compiler settings for Accessible2.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if defined(_M_AMD64)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "Accessible2.h"
+
+#define TYPE_FORMAT_STRING_SIZE 189
+#define PROC_FORMAT_STRING_SIZE 751
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 2
+
+typedef struct _Accessible2_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } Accessible2_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _Accessible2_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } Accessible2_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _Accessible2_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } Accessible2_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const Accessible2_MIDL_TYPE_FORMAT_STRING Accessible2__MIDL_TypeFormatString;
+extern const Accessible2_MIDL_PROC_FORMAT_STRING Accessible2__MIDL_ProcFormatString;
+extern const Accessible2_MIDL_EXPR_FORMAT_STRING Accessible2__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessible2_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessible2_ProxyInfo;
+
+
+extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
+
+#if !defined(__RPC_WIN64__)
+#error Invalid build platform for this stub.
+#endif
+
+static const Accessible2_MIDL_PROC_FORMAT_STRING Accessible2__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure get_nRelations */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x1c ), /* 28 */
+/* 8 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 10 */ NdrFcShort( 0x0 ), /* 0 */
+/* 12 */ NdrFcShort( 0x24 ), /* 36 */
+/* 14 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 16 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 18 */ NdrFcShort( 0x0 ), /* 0 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+/* 24 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nRelations */
+
+/* 26 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 28 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 30 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 32 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 34 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 36 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_relation */
+
+/* 38 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 40 */ NdrFcLong( 0x0 ), /* 0 */
+/* 44 */ NdrFcShort( 0x1d ), /* 29 */
+/* 46 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 48 */ NdrFcShort( 0x8 ), /* 8 */
+/* 50 */ NdrFcShort( 0x8 ), /* 8 */
+/* 52 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 54 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 56 */ NdrFcShort( 0x0 ), /* 0 */
+/* 58 */ NdrFcShort( 0x0 ), /* 0 */
+/* 60 */ NdrFcShort( 0x0 ), /* 0 */
+/* 62 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter relationIndex */
+
+/* 64 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 66 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 68 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter relation */
+
+/* 70 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 72 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 74 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
+
+ /* Return value */
+
+/* 76 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 78 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 80 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_relations */
+
+/* 82 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 84 */ NdrFcLong( 0x0 ), /* 0 */
+/* 88 */ NdrFcShort( 0x1e ), /* 30 */
+/* 90 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 92 */ NdrFcShort( 0x8 ), /* 8 */
+/* 94 */ NdrFcShort( 0x24 ), /* 36 */
+/* 96 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 98 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 100 */ NdrFcShort( 0x1 ), /* 1 */
+/* 102 */ NdrFcShort( 0x0 ), /* 0 */
+/* 104 */ NdrFcShort( 0x0 ), /* 0 */
+/* 106 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxRelations */
+
+/* 108 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 110 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 112 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter relations */
+
+/* 114 */ NdrFcShort( 0x113 ), /* Flags: must size, must free, out, simple ref, */
+/* 116 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 118 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Parameter nRelations */
+
+/* 120 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 122 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 124 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 126 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 128 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 130 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure role */
+
+/* 132 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 134 */ NdrFcLong( 0x0 ), /* 0 */
+/* 138 */ NdrFcShort( 0x1f ), /* 31 */
+/* 140 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 142 */ NdrFcShort( 0x0 ), /* 0 */
+/* 144 */ NdrFcShort( 0x24 ), /* 36 */
+/* 146 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 148 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 150 */ NdrFcShort( 0x0 ), /* 0 */
+/* 152 */ NdrFcShort( 0x0 ), /* 0 */
+/* 154 */ NdrFcShort( 0x0 ), /* 0 */
+/* 156 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter role */
+
+/* 158 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 160 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 162 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 164 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 166 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 168 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure scrollTo */
+
+/* 170 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 172 */ NdrFcLong( 0x0 ), /* 0 */
+/* 176 */ NdrFcShort( 0x20 ), /* 32 */
+/* 178 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 180 */ NdrFcShort( 0x6 ), /* 6 */
+/* 182 */ NdrFcShort( 0x8 ), /* 8 */
+/* 184 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 186 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 188 */ NdrFcShort( 0x0 ), /* 0 */
+/* 190 */ NdrFcShort( 0x0 ), /* 0 */
+/* 192 */ NdrFcShort( 0x0 ), /* 0 */
+/* 194 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter scrollType */
+
+/* 196 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 198 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 200 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 202 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 204 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 206 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure scrollToPoint */
+
+/* 208 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 210 */ NdrFcLong( 0x0 ), /* 0 */
+/* 214 */ NdrFcShort( 0x21 ), /* 33 */
+/* 216 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 218 */ NdrFcShort( 0x16 ), /* 22 */
+/* 220 */ NdrFcShort( 0x8 ), /* 8 */
+/* 222 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 224 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 226 */ NdrFcShort( 0x0 ), /* 0 */
+/* 228 */ NdrFcShort( 0x0 ), /* 0 */
+/* 230 */ NdrFcShort( 0x0 ), /* 0 */
+/* 232 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter coordinateType */
+
+/* 234 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 236 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 238 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter x */
+
+/* 240 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 242 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 244 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 246 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 248 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 250 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 252 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 254 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 256 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_groupPosition */
+
+/* 258 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 260 */ NdrFcLong( 0x0 ), /* 0 */
+/* 264 */ NdrFcShort( 0x22 ), /* 34 */
+/* 266 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 268 */ NdrFcShort( 0x0 ), /* 0 */
+/* 270 */ NdrFcShort( 0x5c ), /* 92 */
+/* 272 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 274 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 276 */ NdrFcShort( 0x0 ), /* 0 */
+/* 278 */ NdrFcShort( 0x0 ), /* 0 */
+/* 280 */ NdrFcShort( 0x0 ), /* 0 */
+/* 282 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter groupLevel */
+
+/* 284 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 286 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 288 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter similarItemsInGroup */
+
+/* 290 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 292 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 294 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter positionInGroup */
+
+/* 296 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 298 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 300 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 302 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 304 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 306 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_states */
+
+/* 308 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 310 */ NdrFcLong( 0x0 ), /* 0 */
+/* 314 */ NdrFcShort( 0x23 ), /* 35 */
+/* 316 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 318 */ NdrFcShort( 0x0 ), /* 0 */
+/* 320 */ NdrFcShort( 0x24 ), /* 36 */
+/* 322 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 324 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 326 */ NdrFcShort( 0x0 ), /* 0 */
+/* 328 */ NdrFcShort( 0x0 ), /* 0 */
+/* 330 */ NdrFcShort( 0x0 ), /* 0 */
+/* 332 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter states */
+
+/* 334 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 336 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 338 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 340 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 342 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 344 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_extendedRole */
+
+/* 346 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 348 */ NdrFcLong( 0x0 ), /* 0 */
+/* 352 */ NdrFcShort( 0x24 ), /* 36 */
+/* 354 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 356 */ NdrFcShort( 0x0 ), /* 0 */
+/* 358 */ NdrFcShort( 0x8 ), /* 8 */
+/* 360 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 362 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 364 */ NdrFcShort( 0x1 ), /* 1 */
+/* 366 */ NdrFcShort( 0x0 ), /* 0 */
+/* 368 */ NdrFcShort( 0x0 ), /* 0 */
+/* 370 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter extendedRole */
+
+/* 372 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 374 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 376 */ NdrFcShort( 0x54 ), /* Type Offset=84 */
+
+ /* Return value */
+
+/* 378 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 380 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 382 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_localizedExtendedRole */
+
+/* 384 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 386 */ NdrFcLong( 0x0 ), /* 0 */
+/* 390 */ NdrFcShort( 0x25 ), /* 37 */
+/* 392 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 394 */ NdrFcShort( 0x0 ), /* 0 */
+/* 396 */ NdrFcShort( 0x8 ), /* 8 */
+/* 398 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 400 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 402 */ NdrFcShort( 0x1 ), /* 1 */
+/* 404 */ NdrFcShort( 0x0 ), /* 0 */
+/* 406 */ NdrFcShort( 0x0 ), /* 0 */
+/* 408 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter localizedExtendedRole */
+
+/* 410 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 412 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 414 */ NdrFcShort( 0x54 ), /* Type Offset=84 */
+
+ /* Return value */
+
+/* 416 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 418 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 420 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nExtendedStates */
+
+/* 422 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 424 */ NdrFcLong( 0x0 ), /* 0 */
+/* 428 */ NdrFcShort( 0x26 ), /* 38 */
+/* 430 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 432 */ NdrFcShort( 0x0 ), /* 0 */
+/* 434 */ NdrFcShort( 0x24 ), /* 36 */
+/* 436 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 438 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 440 */ NdrFcShort( 0x0 ), /* 0 */
+/* 442 */ NdrFcShort( 0x0 ), /* 0 */
+/* 444 */ NdrFcShort( 0x0 ), /* 0 */
+/* 446 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nExtendedStates */
+
+/* 448 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 450 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 452 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 454 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 456 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 458 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_extendedStates */
+
+/* 460 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 462 */ NdrFcLong( 0x0 ), /* 0 */
+/* 466 */ NdrFcShort( 0x27 ), /* 39 */
+/* 468 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 470 */ NdrFcShort( 0x8 ), /* 8 */
+/* 472 */ NdrFcShort( 0x24 ), /* 36 */
+/* 474 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 476 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 478 */ NdrFcShort( 0x1 ), /* 1 */
+/* 480 */ NdrFcShort( 0x0 ), /* 0 */
+/* 482 */ NdrFcShort( 0x0 ), /* 0 */
+/* 484 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxExtendedStates */
+
+/* 486 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 488 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 490 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter extendedStates */
+
+/* 492 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 494 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 496 */ NdrFcShort( 0x5e ), /* Type Offset=94 */
+
+ /* Parameter nExtendedStates */
+
+/* 498 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 500 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 502 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 504 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 506 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 508 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_localizedExtendedStates */
+
+/* 510 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 512 */ NdrFcLong( 0x0 ), /* 0 */
+/* 516 */ NdrFcShort( 0x28 ), /* 40 */
+/* 518 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 520 */ NdrFcShort( 0x8 ), /* 8 */
+/* 522 */ NdrFcShort( 0x24 ), /* 36 */
+/* 524 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 526 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 528 */ NdrFcShort( 0x1 ), /* 1 */
+/* 530 */ NdrFcShort( 0x0 ), /* 0 */
+/* 532 */ NdrFcShort( 0x0 ), /* 0 */
+/* 534 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxLocalizedExtendedStates */
+
+/* 536 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 538 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 540 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter localizedExtendedStates */
+
+/* 542 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 544 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 546 */ NdrFcShort( 0x5e ), /* Type Offset=94 */
+
+ /* Parameter nLocalizedExtendedStates */
+
+/* 548 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 550 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 552 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 554 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 556 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 558 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_uniqueID */
+
+/* 560 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 562 */ NdrFcLong( 0x0 ), /* 0 */
+/* 566 */ NdrFcShort( 0x29 ), /* 41 */
+/* 568 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 570 */ NdrFcShort( 0x0 ), /* 0 */
+/* 572 */ NdrFcShort( 0x24 ), /* 36 */
+/* 574 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 576 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 578 */ NdrFcShort( 0x0 ), /* 0 */
+/* 580 */ NdrFcShort( 0x0 ), /* 0 */
+/* 582 */ NdrFcShort( 0x0 ), /* 0 */
+/* 584 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter uniqueID */
+
+/* 586 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 588 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 590 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 592 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 594 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 596 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_windowHandle */
+
+/* 598 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 600 */ NdrFcLong( 0x0 ), /* 0 */
+/* 604 */ NdrFcShort( 0x2a ), /* 42 */
+/* 606 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 608 */ NdrFcShort( 0x0 ), /* 0 */
+/* 610 */ NdrFcShort( 0x8 ), /* 8 */
+/* 612 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 614 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 616 */ NdrFcShort( 0x1 ), /* 1 */
+/* 618 */ NdrFcShort( 0x0 ), /* 0 */
+/* 620 */ NdrFcShort( 0x0 ), /* 0 */
+/* 622 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter windowHandle */
+
+/* 624 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 626 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 628 */ NdrFcShort( 0x98 ), /* Type Offset=152 */
+
+ /* Return value */
+
+/* 630 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 632 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 634 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_indexInParent */
+
+/* 636 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 638 */ NdrFcLong( 0x0 ), /* 0 */
+/* 642 */ NdrFcShort( 0x2b ), /* 43 */
+/* 644 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 646 */ NdrFcShort( 0x0 ), /* 0 */
+/* 648 */ NdrFcShort( 0x24 ), /* 36 */
+/* 650 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 652 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 654 */ NdrFcShort( 0x0 ), /* 0 */
+/* 656 */ NdrFcShort( 0x0 ), /* 0 */
+/* 658 */ NdrFcShort( 0x0 ), /* 0 */
+/* 660 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter indexInParent */
+
+/* 662 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 664 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 666 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 668 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 670 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 672 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_locale */
+
+/* 674 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 676 */ NdrFcLong( 0x0 ), /* 0 */
+/* 680 */ NdrFcShort( 0x2c ), /* 44 */
+/* 682 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 684 */ NdrFcShort( 0x0 ), /* 0 */
+/* 686 */ NdrFcShort( 0x8 ), /* 8 */
+/* 688 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 690 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 692 */ NdrFcShort( 0x1 ), /* 1 */
+/* 694 */ NdrFcShort( 0x0 ), /* 0 */
+/* 696 */ NdrFcShort( 0x0 ), /* 0 */
+/* 698 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter locale */
+
+/* 700 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
+/* 702 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 704 */ NdrFcShort( 0xa6 ), /* Type Offset=166 */
+
+ /* Return value */
+
+/* 706 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 708 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 710 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_attributes */
+
+/* 712 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 714 */ NdrFcLong( 0x0 ), /* 0 */
+/* 718 */ NdrFcShort( 0x2d ), /* 45 */
+/* 720 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 722 */ NdrFcShort( 0x0 ), /* 0 */
+/* 724 */ NdrFcShort( 0x8 ), /* 8 */
+/* 726 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 728 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 730 */ NdrFcShort( 0x1 ), /* 1 */
+/* 732 */ NdrFcShort( 0x0 ), /* 0 */
+/* 734 */ NdrFcShort( 0x0 ), /* 0 */
+/* 736 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter attributes */
+
+/* 738 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 740 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 742 */ NdrFcShort( 0x54 ), /* Type Offset=84 */
+
+ /* Return value */
+
+/* 744 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 746 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 748 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const Accessible2_MIDL_TYPE_FORMAT_STRING Accessible2__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 4 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+/* 6 */
+ 0x11, 0x10, /* FC_RP [pointer_deref] */
+/* 8 */ NdrFcShort( 0x2 ), /* Offset= 2 (10) */
+/* 10 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 12 */ NdrFcLong( 0x7cdf86ee ), /* 2095023854 */
+/* 16 */ NdrFcShort( 0xc3da ), /* -15398 */
+/* 18 */ NdrFcShort( 0x496a ), /* 18794 */
+/* 20 */ 0xbd, /* 189 */
+ 0xa4, /* 164 */
+/* 22 */ 0x28, /* 40 */
+ 0x1b, /* 27 */
+/* 24 */ 0x33, /* 51 */
+ 0x6e, /* 110 */
+/* 26 */ 0x1f, /* 31 */
+ 0xdc, /* 220 */
+/* 28 */
+ 0x11, 0x0, /* FC_RP */
+/* 30 */ NdrFcShort( 0x2 ), /* Offset= 2 (32) */
+/* 32 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 34 */ NdrFcShort( 0x0 ), /* 0 */
+/* 36 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x0, /* */
+/* 38 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 40 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 42 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 44 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 46 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 48 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 50 */ NdrFcShort( 0xffd8 ), /* Offset= -40 (10) */
+/* 52 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 54 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 56 */ NdrFcShort( 0x1c ), /* Offset= 28 (84) */
+/* 58 */
+ 0x13, 0x0, /* FC_OP */
+/* 60 */ NdrFcShort( 0xe ), /* Offset= 14 (74) */
+/* 62 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 64 */ NdrFcShort( 0x2 ), /* 2 */
+/* 66 */ 0x9, /* Corr desc: FC_ULONG */
+ 0x0, /* */
+/* 68 */ NdrFcShort( 0xfffc ), /* -4 */
+/* 70 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 72 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 74 */
+ 0x17, /* FC_CSTRUCT */
+ 0x3, /* 3 */
+/* 76 */ NdrFcShort( 0x8 ), /* 8 */
+/* 78 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (62) */
+/* 80 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 82 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 84 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 86 */ NdrFcShort( 0x0 ), /* 0 */
+/* 88 */ NdrFcShort( 0x8 ), /* 8 */
+/* 90 */ NdrFcShort( 0x0 ), /* 0 */
+/* 92 */ NdrFcShort( 0xffde ), /* Offset= -34 (58) */
+/* 94 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 96 */ NdrFcShort( 0x2 ), /* Offset= 2 (98) */
+/* 98 */
+ 0x13, 0x0, /* FC_OP */
+/* 100 */ NdrFcShort( 0x2 ), /* Offset= 2 (102) */
+/* 102 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 104 */ NdrFcShort( 0x0 ), /* 0 */
+/* 106 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x0, /* */
+/* 108 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 110 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 112 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 114 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 116 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 118 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 120 */ NdrFcShort( 0xffdc ), /* Offset= -36 (84) */
+/* 122 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 124 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 126 */ NdrFcShort( 0x1a ), /* Offset= 26 (152) */
+/* 128 */
+ 0x13, 0x0, /* FC_OP */
+/* 130 */ NdrFcShort( 0x2 ), /* Offset= 2 (132) */
+/* 132 */
+ 0x2a, /* FC_ENCAPSULATED_UNION */
+ 0x48, /* 72 */
+/* 134 */ NdrFcShort( 0x4 ), /* 4 */
+/* 136 */ NdrFcShort( 0x2 ), /* 2 */
+/* 138 */ NdrFcLong( 0x48746457 ), /* 1215587415 */
+/* 142 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 144 */ NdrFcLong( 0x52746457 ), /* 1383359575 */
+/* 148 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 150 */ NdrFcShort( 0xffff ), /* Offset= -1 (149) */
+/* 152 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 154 */ NdrFcShort( 0x1 ), /* 1 */
+/* 156 */ NdrFcShort( 0x8 ), /* 8 */
+/* 158 */ NdrFcShort( 0x0 ), /* 0 */
+/* 160 */ NdrFcShort( 0xffe0 ), /* Offset= -32 (128) */
+/* 162 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 164 */ NdrFcShort( 0x2 ), /* Offset= 2 (166) */
+/* 166 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 168 */ NdrFcShort( 0x18 ), /* 24 */
+/* 170 */ NdrFcShort( 0x0 ), /* 0 */
+/* 172 */ NdrFcShort( 0x0 ), /* Offset= 0 (172) */
+/* 174 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 176 */ NdrFcShort( 0xffa4 ), /* Offset= -92 (84) */
+/* 178 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 180 */ NdrFcShort( 0xffa0 ), /* Offset= -96 (84) */
+/* 182 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 184 */ NdrFcShort( 0xff9c ), /* Offset= -100 (84) */
+/* 186 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+
+ 0x0
+ }
+ };
+
+static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
+ {
+
+ {
+ BSTR_UserSize
+ ,BSTR_UserMarshal
+ ,BSTR_UserUnmarshal
+ ,BSTR_UserFree
+ },
+ {
+ HWND_UserSize
+ ,HWND_UserMarshal
+ ,HWND_UserUnmarshal
+ ,HWND_UserFree
+ }
+
+ };
+
+
+
+/* Standard interface: __MIDL_itf_Accessible2_0000_0000, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IDispatch, ver. 0.0,
+ GUID={0x00020400,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IAccessible, ver. 0.0,
+ GUID={0x618736e0,0x3c3d,0x11cf,{0x81,0x0c,0x00,0xaa,0x00,0x38,0x9b,0x71}} */
+
+
+/* Object interface: IAccessible2, ver. 0.0,
+ GUID={0xE89F726E,0xC4F4,0x4c19,{0xBB,0x19,0xB6,0x47,0xD7,0xFA,0x84,0x78}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessible2_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 0,
+ 38,
+ 82,
+ 132,
+ 170,
+ 208,
+ 258,
+ 308,
+ 346,
+ 384,
+ 422,
+ 460,
+ 510,
+ 560,
+ 598,
+ 636,
+ 674,
+ 712
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessible2_ProxyInfo =
+ {
+ &Object_StubDesc,
+ Accessible2__MIDL_ProcFormatString.Format,
+ &IAccessible2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessible2_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ Accessible2__MIDL_ProcFormatString.Format,
+ &IAccessible2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(46) _IAccessible2ProxyVtbl =
+{
+ &IAccessible2_ProxyInfo,
+ &IID_IAccessible2,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IDispatch::GetTypeInfoCount */ ,
+ 0 /* IDispatch::GetTypeInfo */ ,
+ 0 /* IDispatch::GetIDsOfNames */ ,
+ 0 /* IDispatch_Invoke_Proxy */ ,
+ 0 /* IAccessible::get_accParent */ ,
+ 0 /* IAccessible::get_accChildCount */ ,
+ 0 /* IAccessible::get_accChild */ ,
+ 0 /* IAccessible::get_accName */ ,
+ 0 /* IAccessible::get_accValue */ ,
+ 0 /* IAccessible::get_accDescription */ ,
+ 0 /* IAccessible::get_accRole */ ,
+ 0 /* IAccessible::get_accState */ ,
+ 0 /* IAccessible::get_accHelp */ ,
+ 0 /* IAccessible::get_accHelpTopic */ ,
+ 0 /* IAccessible::get_accKeyboardShortcut */ ,
+ 0 /* IAccessible::get_accFocus */ ,
+ 0 /* IAccessible::get_accSelection */ ,
+ 0 /* IAccessible::get_accDefaultAction */ ,
+ 0 /* IAccessible::accSelect */ ,
+ 0 /* IAccessible::accLocation */ ,
+ 0 /* IAccessible::accNavigate */ ,
+ 0 /* IAccessible::accHitTest */ ,
+ 0 /* IAccessible::accDoDefaultAction */ ,
+ 0 /* IAccessible::put_accName */ ,
+ 0 /* IAccessible::put_accValue */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_nRelations */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_relation */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_relations */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::role */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::scrollTo */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::scrollToPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_groupPosition */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_states */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_extendedRole */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_localizedExtendedRole */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_nExtendedStates */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_extendedStates */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_localizedExtendedStates */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_uniqueID */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_windowHandle */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_indexInParent */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_locale */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_attributes */
+};
+
+
+static const PRPC_STUB_FUNCTION IAccessible2_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _IAccessible2StubVtbl =
+{
+ &IID_IAccessible2,
+ &IAccessible2_ServerInfo,
+ 46,
+ &IAccessible2_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ Accessible2__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x700022b, /* MIDL Version 7.0.555 */
+ 0,
+ UserMarshalRoutines,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _Accessible2_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_IAccessible2ProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _Accessible2_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_IAccessible2StubVtbl,
+ 0
+};
+
+PCInterfaceName const _Accessible2_InterfaceNamesList[] =
+{
+ "IAccessible2",
+ 0
+};
+
+const IID * const _Accessible2_BaseIIDList[] =
+{
+ &IID_IAccessible,
+ 0
+};
+
+
+#define _Accessible2_CHECK_IID(n) IID_GENERIC_CHECK_IID( _Accessible2, pIID, n)
+
+int __stdcall _Accessible2_IID_Lookup( const IID * pIID, int * pIndex )
+{
+
+ if(!_Accessible2_CHECK_IID(0))
+ {
+ *pIndex = 0;
+ return 1;
+ }
+
+ return 0;
+}
+
+const ExtendedProxyFileInfo Accessible2_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _Accessible2_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _Accessible2_StubVtblList,
+ (const PCInterfaceName * ) & _Accessible2_InterfaceNamesList,
+ (const IID ** ) & _Accessible2_BaseIIDList,
+ & _Accessible2_IID_Lookup,
+ 1,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* defined(_M_AMD64)*/
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleAction.h b/src/3rdparty/iaccessible2/generated/amd64/AccessibleAction.h
new file mode 100644
index 0000000000..8755505bf3
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleAction.h
@@ -0,0 +1,220 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:56 2012
+ */
+/* Compiler settings for AccessibleAction.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __AccessibleAction_h__
+#define __AccessibleAction_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IAccessibleAction_FWD_DEFINED__
+#define __IAccessibleAction_FWD_DEFINED__
+typedef interface IAccessibleAction IAccessibleAction;
+#endif /* __IAccessibleAction_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "objidl.h"
+#include "oaidl.h"
+#include "oleacc.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#ifndef __IAccessibleAction_INTERFACE_DEFINED__
+#define __IAccessibleAction_INTERFACE_DEFINED__
+
+/* interface IAccessibleAction */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleAction;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("B70D9F59-3B5A-4dba-AB9E-22012F607DF5")
+ IAccessibleAction : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE nActions(
+ /* [retval][out] */ long *nActions) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE doAction(
+ /* [in] */ long actionIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_description(
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *description) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_keyBinding(
+ /* [in] */ long actionIndex,
+ /* [in] */ long nMaxBindings,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **keyBindings,
+ /* [retval][out] */ long *nBindings) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_name(
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *name) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_localizedName(
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *localizedName) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleActionVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleAction * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleAction * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleAction * This);
+
+ HRESULT ( STDMETHODCALLTYPE *nActions )(
+ IAccessibleAction * This,
+ /* [retval][out] */ long *nActions);
+
+ HRESULT ( STDMETHODCALLTYPE *doAction )(
+ IAccessibleAction * This,
+ /* [in] */ long actionIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_description )(
+ IAccessibleAction * This,
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_keyBinding )(
+ IAccessibleAction * This,
+ /* [in] */ long actionIndex,
+ /* [in] */ long nMaxBindings,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **keyBindings,
+ /* [retval][out] */ long *nBindings);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )(
+ IAccessibleAction * This,
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *name);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedName )(
+ IAccessibleAction * This,
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *localizedName);
+
+ END_INTERFACE
+ } IAccessibleActionVtbl;
+
+ interface IAccessibleAction
+ {
+ CONST_VTBL struct IAccessibleActionVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleAction_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleAction_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleAction_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleAction_nActions(This,nActions) \
+ ( (This)->lpVtbl -> nActions(This,nActions) )
+
+#define IAccessibleAction_doAction(This,actionIndex) \
+ ( (This)->lpVtbl -> doAction(This,actionIndex) )
+
+#define IAccessibleAction_get_description(This,actionIndex,description) \
+ ( (This)->lpVtbl -> get_description(This,actionIndex,description) )
+
+#define IAccessibleAction_get_keyBinding(This,actionIndex,nMaxBindings,keyBindings,nBindings) \
+ ( (This)->lpVtbl -> get_keyBinding(This,actionIndex,nMaxBindings,keyBindings,nBindings) )
+
+#define IAccessibleAction_get_name(This,actionIndex,name) \
+ ( (This)->lpVtbl -> get_name(This,actionIndex,name) )
+
+#define IAccessibleAction_get_localizedName(This,actionIndex,localizedName) \
+ ( (This)->lpVtbl -> get_localizedName(This,actionIndex,localizedName) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleAction_INTERFACE_DEFINED__ */
+
+
+/* Additional Prototypes for ALL interfaces */
+
+unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
+unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
+unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
+void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleAction_i.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleAction_i.c
new file mode 100644
index 0000000000..a4d754b68d
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleAction_i.c
@@ -0,0 +1,79 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:56 2012
+ */
+/* Compiler settings for AccessibleAction.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleAction,0xB70D9F59,0x3B5A,0x4dba,0xAB,0x9E,0x22,0x01,0x2F,0x60,0x7D,0xF5);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleAction_p.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleAction_p.c
new file mode 100644
index 0000000000..68eeac00b4
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleAction_p.c
@@ -0,0 +1,557 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:56 2012
+ */
+/* Compiler settings for AccessibleAction.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if defined(_M_AMD64)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "AccessibleAction.h"
+
+#define TYPE_FORMAT_STRING_SIZE 77
+#define PROC_FORMAT_STRING_SIZE 265
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 1
+
+typedef struct _AccessibleAction_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } AccessibleAction_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _AccessibleAction_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } AccessibleAction_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _AccessibleAction_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } AccessibleAction_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const AccessibleAction_MIDL_TYPE_FORMAT_STRING AccessibleAction__MIDL_TypeFormatString;
+extern const AccessibleAction_MIDL_PROC_FORMAT_STRING AccessibleAction__MIDL_ProcFormatString;
+extern const AccessibleAction_MIDL_EXPR_FORMAT_STRING AccessibleAction__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleAction_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleAction_ProxyInfo;
+
+
+extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
+
+#if !defined(__RPC_WIN64__)
+#error Invalid build platform for this stub.
+#endif
+
+static const AccessibleAction_MIDL_PROC_FORMAT_STRING AccessibleAction__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure nActions */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x3 ), /* 3 */
+/* 8 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 10 */ NdrFcShort( 0x0 ), /* 0 */
+/* 12 */ NdrFcShort( 0x24 ), /* 36 */
+/* 14 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 16 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 18 */ NdrFcShort( 0x0 ), /* 0 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+/* 24 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nActions */
+
+/* 26 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 28 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 30 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 32 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 34 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 36 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure doAction */
+
+/* 38 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 40 */ NdrFcLong( 0x0 ), /* 0 */
+/* 44 */ NdrFcShort( 0x4 ), /* 4 */
+/* 46 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 48 */ NdrFcShort( 0x8 ), /* 8 */
+/* 50 */ NdrFcShort( 0x8 ), /* 8 */
+/* 52 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 54 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 56 */ NdrFcShort( 0x0 ), /* 0 */
+/* 58 */ NdrFcShort( 0x0 ), /* 0 */
+/* 60 */ NdrFcShort( 0x0 ), /* 0 */
+/* 62 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter actionIndex */
+
+/* 64 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 66 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 68 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 70 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 72 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 74 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_description */
+
+/* 76 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 78 */ NdrFcLong( 0x0 ), /* 0 */
+/* 82 */ NdrFcShort( 0x5 ), /* 5 */
+/* 84 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 86 */ NdrFcShort( 0x8 ), /* 8 */
+/* 88 */ NdrFcShort( 0x8 ), /* 8 */
+/* 90 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 92 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 94 */ NdrFcShort( 0x1 ), /* 1 */
+/* 96 */ NdrFcShort( 0x0 ), /* 0 */
+/* 98 */ NdrFcShort( 0x0 ), /* 0 */
+/* 100 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter actionIndex */
+
+/* 102 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 104 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 106 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter description */
+
+/* 108 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 110 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 112 */ NdrFcShort( 0x24 ), /* Type Offset=36 */
+
+ /* Return value */
+
+/* 114 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 116 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 118 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_keyBinding */
+
+/* 120 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 122 */ NdrFcLong( 0x0 ), /* 0 */
+/* 126 */ NdrFcShort( 0x6 ), /* 6 */
+/* 128 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 130 */ NdrFcShort( 0x10 ), /* 16 */
+/* 132 */ NdrFcShort( 0x24 ), /* 36 */
+/* 134 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x5, /* 5 */
+/* 136 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 138 */ NdrFcShort( 0x1 ), /* 1 */
+/* 140 */ NdrFcShort( 0x0 ), /* 0 */
+/* 142 */ NdrFcShort( 0x0 ), /* 0 */
+/* 144 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter actionIndex */
+
+/* 146 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 148 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 150 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter nMaxBindings */
+
+/* 152 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 154 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 156 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter keyBindings */
+
+/* 158 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 160 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 162 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
+
+ /* Parameter nBindings */
+
+/* 164 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 166 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 168 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 170 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 172 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 174 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_name */
+
+/* 176 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 178 */ NdrFcLong( 0x0 ), /* 0 */
+/* 182 */ NdrFcShort( 0x7 ), /* 7 */
+/* 184 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 186 */ NdrFcShort( 0x8 ), /* 8 */
+/* 188 */ NdrFcShort( 0x8 ), /* 8 */
+/* 190 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 192 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 194 */ NdrFcShort( 0x1 ), /* 1 */
+/* 196 */ NdrFcShort( 0x0 ), /* 0 */
+/* 198 */ NdrFcShort( 0x0 ), /* 0 */
+/* 200 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter actionIndex */
+
+/* 202 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 204 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 206 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter name */
+
+/* 208 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 210 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 212 */ NdrFcShort( 0x24 ), /* Type Offset=36 */
+
+ /* Return value */
+
+/* 214 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 216 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 218 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_localizedName */
+
+/* 220 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 222 */ NdrFcLong( 0x0 ), /* 0 */
+/* 226 */ NdrFcShort( 0x8 ), /* 8 */
+/* 228 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 230 */ NdrFcShort( 0x8 ), /* 8 */
+/* 232 */ NdrFcShort( 0x8 ), /* 8 */
+/* 234 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 236 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 238 */ NdrFcShort( 0x1 ), /* 1 */
+/* 240 */ NdrFcShort( 0x0 ), /* 0 */
+/* 242 */ NdrFcShort( 0x0 ), /* 0 */
+/* 244 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter actionIndex */
+
+/* 246 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 248 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 250 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter localizedName */
+
+/* 252 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 254 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 256 */ NdrFcShort( 0x24 ), /* Type Offset=36 */
+
+ /* Return value */
+
+/* 258 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 260 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 262 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const AccessibleAction_MIDL_TYPE_FORMAT_STRING AccessibleAction__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 4 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+/* 6 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 8 */ NdrFcShort( 0x1c ), /* Offset= 28 (36) */
+/* 10 */
+ 0x13, 0x0, /* FC_OP */
+/* 12 */ NdrFcShort( 0xe ), /* Offset= 14 (26) */
+/* 14 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 16 */ NdrFcShort( 0x2 ), /* 2 */
+/* 18 */ 0x9, /* Corr desc: FC_ULONG */
+ 0x0, /* */
+/* 20 */ NdrFcShort( 0xfffc ), /* -4 */
+/* 22 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 24 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 26 */
+ 0x17, /* FC_CSTRUCT */
+ 0x3, /* 3 */
+/* 28 */ NdrFcShort( 0x8 ), /* 8 */
+/* 30 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (14) */
+/* 32 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 34 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 36 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 38 */ NdrFcShort( 0x0 ), /* 0 */
+/* 40 */ NdrFcShort( 0x8 ), /* 8 */
+/* 42 */ NdrFcShort( 0x0 ), /* 0 */
+/* 44 */ NdrFcShort( 0xffde ), /* Offset= -34 (10) */
+/* 46 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 48 */ NdrFcShort( 0x2 ), /* Offset= 2 (50) */
+/* 50 */
+ 0x13, 0x0, /* FC_OP */
+/* 52 */ NdrFcShort( 0x2 ), /* Offset= 2 (54) */
+/* 54 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 56 */ NdrFcShort( 0x0 ), /* 0 */
+/* 58 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x0, /* */
+/* 60 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 62 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 64 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 66 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 68 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 70 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 72 */ NdrFcShort( 0xffdc ), /* Offset= -36 (36) */
+/* 74 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+
+ 0x0
+ }
+ };
+
+static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
+ {
+
+ {
+ BSTR_UserSize
+ ,BSTR_UserMarshal
+ ,BSTR_UserUnmarshal
+ ,BSTR_UserFree
+ }
+
+ };
+
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IAccessibleAction, ver. 0.0,
+ GUID={0xB70D9F59,0x3B5A,0x4dba,{0xAB,0x9E,0x22,0x01,0x2F,0x60,0x7D,0xF5}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleAction_FormatStringOffsetTable[] =
+ {
+ 0,
+ 38,
+ 76,
+ 120,
+ 176,
+ 220
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleAction_ProxyInfo =
+ {
+ &Object_StubDesc,
+ AccessibleAction__MIDL_ProcFormatString.Format,
+ &IAccessibleAction_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleAction_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ AccessibleAction__MIDL_ProcFormatString.Format,
+ &IAccessibleAction_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(9) _IAccessibleActionProxyVtbl =
+{
+ &IAccessibleAction_ProxyInfo,
+ &IID_IAccessibleAction,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::nActions */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::doAction */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_description */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_keyBinding */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_name */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_localizedName */
+};
+
+const CInterfaceStubVtbl _IAccessibleActionStubVtbl =
+{
+ &IID_IAccessibleAction,
+ &IAccessibleAction_ServerInfo,
+ 9,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ AccessibleAction__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x700022b, /* MIDL Version 7.0.555 */
+ 0,
+ UserMarshalRoutines,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _AccessibleAction_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_IAccessibleActionProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _AccessibleAction_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_IAccessibleActionStubVtbl,
+ 0
+};
+
+PCInterfaceName const _AccessibleAction_InterfaceNamesList[] =
+{
+ "IAccessibleAction",
+ 0
+};
+
+
+#define _AccessibleAction_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleAction, pIID, n)
+
+int __stdcall _AccessibleAction_IID_Lookup( const IID * pIID, int * pIndex )
+{
+
+ if(!_AccessibleAction_CHECK_IID(0))
+ {
+ *pIndex = 0;
+ return 1;
+ }
+
+ return 0;
+}
+
+const ExtendedProxyFileInfo AccessibleAction_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _AccessibleAction_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _AccessibleAction_StubVtblList,
+ (const PCInterfaceName * ) & _AccessibleAction_InterfaceNamesList,
+ 0, /* no delegation */
+ & _AccessibleAction_IID_Lookup,
+ 1,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* defined(_M_AMD64)*/
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleApplication.h b/src/3rdparty/iaccessible2/generated/amd64/AccessibleApplication.h
new file mode 100644
index 0000000000..7e901563e9
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleApplication.h
@@ -0,0 +1,188 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:57 2012
+ */
+/* Compiler settings for AccessibleApplication.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __AccessibleApplication_h__
+#define __AccessibleApplication_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IAccessibleApplication_FWD_DEFINED__
+#define __IAccessibleApplication_FWD_DEFINED__
+typedef interface IAccessibleApplication IAccessibleApplication;
+#endif /* __IAccessibleApplication_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "objidl.h"
+#include "oaidl.h"
+#include "oleacc.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#ifndef __IAccessibleApplication_INTERFACE_DEFINED__
+#define __IAccessibleApplication_INTERFACE_DEFINED__
+
+/* interface IAccessibleApplication */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleApplication;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("D49DED83-5B25-43F4-9B95-93B44595979E")
+ IAccessibleApplication : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_appName(
+ /* [retval][out] */ BSTR *name) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_appVersion(
+ /* [retval][out] */ BSTR *version) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_toolkitName(
+ /* [retval][out] */ BSTR *name) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_toolkitVersion(
+ /* [retval][out] */ BSTR *version) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleApplicationVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleApplication * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleApplication * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleApplication * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appName )(
+ IAccessibleApplication * This,
+ /* [retval][out] */ BSTR *name);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appVersion )(
+ IAccessibleApplication * This,
+ /* [retval][out] */ BSTR *version);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_toolkitName )(
+ IAccessibleApplication * This,
+ /* [retval][out] */ BSTR *name);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_toolkitVersion )(
+ IAccessibleApplication * This,
+ /* [retval][out] */ BSTR *version);
+
+ END_INTERFACE
+ } IAccessibleApplicationVtbl;
+
+ interface IAccessibleApplication
+ {
+ CONST_VTBL struct IAccessibleApplicationVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleApplication_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleApplication_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleApplication_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleApplication_get_appName(This,name) \
+ ( (This)->lpVtbl -> get_appName(This,name) )
+
+#define IAccessibleApplication_get_appVersion(This,version) \
+ ( (This)->lpVtbl -> get_appVersion(This,version) )
+
+#define IAccessibleApplication_get_toolkitName(This,name) \
+ ( (This)->lpVtbl -> get_toolkitName(This,name) )
+
+#define IAccessibleApplication_get_toolkitVersion(This,version) \
+ ( (This)->lpVtbl -> get_toolkitVersion(This,version) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleApplication_INTERFACE_DEFINED__ */
+
+
+/* Additional Prototypes for ALL interfaces */
+
+unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
+unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
+unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
+void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleApplication_i.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleApplication_i.c
new file mode 100644
index 0000000000..b50ae8a2c6
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleApplication_i.c
@@ -0,0 +1,79 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:57 2012
+ */
+/* Compiler settings for AccessibleApplication.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleApplication,0xD49DED83,0x5B25,0x43F4,0x9B,0x95,0x93,0xB4,0x45,0x95,0x97,0x9E);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleApplication_p.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleApplication_p.c
new file mode 100644
index 0000000000..84d7e30344
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleApplication_p.c
@@ -0,0 +1,420 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:57 2012
+ */
+/* Compiler settings for AccessibleApplication.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if defined(_M_AMD64)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "AccessibleApplication.h"
+
+#define TYPE_FORMAT_STRING_SIZE 43
+#define PROC_FORMAT_STRING_SIZE 153
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 1
+
+typedef struct _AccessibleApplication_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } AccessibleApplication_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _AccessibleApplication_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } AccessibleApplication_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _AccessibleApplication_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } AccessibleApplication_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const AccessibleApplication_MIDL_TYPE_FORMAT_STRING AccessibleApplication__MIDL_TypeFormatString;
+extern const AccessibleApplication_MIDL_PROC_FORMAT_STRING AccessibleApplication__MIDL_ProcFormatString;
+extern const AccessibleApplication_MIDL_EXPR_FORMAT_STRING AccessibleApplication__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleApplication_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleApplication_ProxyInfo;
+
+
+extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
+
+#if !defined(__RPC_WIN64__)
+#error Invalid build platform for this stub.
+#endif
+
+static const AccessibleApplication_MIDL_PROC_FORMAT_STRING AccessibleApplication__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure get_appName */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x3 ), /* 3 */
+/* 8 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 10 */ NdrFcShort( 0x0 ), /* 0 */
+/* 12 */ NdrFcShort( 0x8 ), /* 8 */
+/* 14 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 16 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 18 */ NdrFcShort( 0x1 ), /* 1 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+/* 24 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter name */
+
+/* 26 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 28 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 30 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 32 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 34 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 36 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_appVersion */
+
+/* 38 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 40 */ NdrFcLong( 0x0 ), /* 0 */
+/* 44 */ NdrFcShort( 0x4 ), /* 4 */
+/* 46 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 48 */ NdrFcShort( 0x0 ), /* 0 */
+/* 50 */ NdrFcShort( 0x8 ), /* 8 */
+/* 52 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 54 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 56 */ NdrFcShort( 0x1 ), /* 1 */
+/* 58 */ NdrFcShort( 0x0 ), /* 0 */
+/* 60 */ NdrFcShort( 0x0 ), /* 0 */
+/* 62 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter version */
+
+/* 64 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 66 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 68 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 70 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 72 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 74 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_toolkitName */
+
+/* 76 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 78 */ NdrFcLong( 0x0 ), /* 0 */
+/* 82 */ NdrFcShort( 0x5 ), /* 5 */
+/* 84 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 86 */ NdrFcShort( 0x0 ), /* 0 */
+/* 88 */ NdrFcShort( 0x8 ), /* 8 */
+/* 90 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 92 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 94 */ NdrFcShort( 0x1 ), /* 1 */
+/* 96 */ NdrFcShort( 0x0 ), /* 0 */
+/* 98 */ NdrFcShort( 0x0 ), /* 0 */
+/* 100 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter name */
+
+/* 102 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 104 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 106 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 108 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 110 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 112 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_toolkitVersion */
+
+/* 114 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 116 */ NdrFcLong( 0x0 ), /* 0 */
+/* 120 */ NdrFcShort( 0x6 ), /* 6 */
+/* 122 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 124 */ NdrFcShort( 0x0 ), /* 0 */
+/* 126 */ NdrFcShort( 0x8 ), /* 8 */
+/* 128 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 130 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 132 */ NdrFcShort( 0x1 ), /* 1 */
+/* 134 */ NdrFcShort( 0x0 ), /* 0 */
+/* 136 */ NdrFcShort( 0x0 ), /* 0 */
+/* 138 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter version */
+
+/* 140 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 142 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 144 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 146 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 148 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 150 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const AccessibleApplication_MIDL_TYPE_FORMAT_STRING AccessibleApplication__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 4 */ NdrFcShort( 0x1c ), /* Offset= 28 (32) */
+/* 6 */
+ 0x13, 0x0, /* FC_OP */
+/* 8 */ NdrFcShort( 0xe ), /* Offset= 14 (22) */
+/* 10 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 12 */ NdrFcShort( 0x2 ), /* 2 */
+/* 14 */ 0x9, /* Corr desc: FC_ULONG */
+ 0x0, /* */
+/* 16 */ NdrFcShort( 0xfffc ), /* -4 */
+/* 18 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 20 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 22 */
+ 0x17, /* FC_CSTRUCT */
+ 0x3, /* 3 */
+/* 24 */ NdrFcShort( 0x8 ), /* 8 */
+/* 26 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (10) */
+/* 28 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 30 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 32 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 34 */ NdrFcShort( 0x0 ), /* 0 */
+/* 36 */ NdrFcShort( 0x8 ), /* 8 */
+/* 38 */ NdrFcShort( 0x0 ), /* 0 */
+/* 40 */ NdrFcShort( 0xffde ), /* Offset= -34 (6) */
+
+ 0x0
+ }
+ };
+
+static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
+ {
+
+ {
+ BSTR_UserSize
+ ,BSTR_UserMarshal
+ ,BSTR_UserUnmarshal
+ ,BSTR_UserFree
+ }
+
+ };
+
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IAccessibleApplication, ver. 0.0,
+ GUID={0xD49DED83,0x5B25,0x43F4,{0x9B,0x95,0x93,0xB4,0x45,0x95,0x97,0x9E}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleApplication_FormatStringOffsetTable[] =
+ {
+ 0,
+ 38,
+ 76,
+ 114
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleApplication_ProxyInfo =
+ {
+ &Object_StubDesc,
+ AccessibleApplication__MIDL_ProcFormatString.Format,
+ &IAccessibleApplication_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleApplication_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ AccessibleApplication__MIDL_ProcFormatString.Format,
+ &IAccessibleApplication_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(7) _IAccessibleApplicationProxyVtbl =
+{
+ &IAccessibleApplication_ProxyInfo,
+ &IID_IAccessibleApplication,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleApplication::get_appName */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleApplication::get_appVersion */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleApplication::get_toolkitName */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleApplication::get_toolkitVersion */
+};
+
+const CInterfaceStubVtbl _IAccessibleApplicationStubVtbl =
+{
+ &IID_IAccessibleApplication,
+ &IAccessibleApplication_ServerInfo,
+ 7,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ AccessibleApplication__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x700022b, /* MIDL Version 7.0.555 */
+ 0,
+ UserMarshalRoutines,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _AccessibleApplication_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_IAccessibleApplicationProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _AccessibleApplication_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_IAccessibleApplicationStubVtbl,
+ 0
+};
+
+PCInterfaceName const _AccessibleApplication_InterfaceNamesList[] =
+{
+ "IAccessibleApplication",
+ 0
+};
+
+
+#define _AccessibleApplication_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleApplication, pIID, n)
+
+int __stdcall _AccessibleApplication_IID_Lookup( const IID * pIID, int * pIndex )
+{
+
+ if(!_AccessibleApplication_CHECK_IID(0))
+ {
+ *pIndex = 0;
+ return 1;
+ }
+
+ return 0;
+}
+
+const ExtendedProxyFileInfo AccessibleApplication_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _AccessibleApplication_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _AccessibleApplication_StubVtblList,
+ (const PCInterfaceName * ) & _AccessibleApplication_InterfaceNamesList,
+ 0, /* no delegation */
+ & _AccessibleApplication_IID_Lookup,
+ 1,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* defined(_M_AMD64)*/
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleComponent.h b/src/3rdparty/iaccessible2/generated/amd64/AccessibleComponent.h
new file mode 100644
index 0000000000..38f696f45c
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleComponent.h
@@ -0,0 +1,185 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:57 2012
+ */
+/* Compiler settings for AccessibleComponent.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __AccessibleComponent_h__
+#define __AccessibleComponent_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IAccessibleComponent_FWD_DEFINED__
+#define __IAccessibleComponent_FWD_DEFINED__
+typedef interface IAccessibleComponent IAccessibleComponent;
+#endif /* __IAccessibleComponent_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "objidl.h"
+#include "oaidl.h"
+#include "oleacc.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/* interface __MIDL_itf_AccessibleComponent_0000_0000 */
+/* [local] */
+
+typedef long IA2Color;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_AccessibleComponent_0000_0000_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_AccessibleComponent_0000_0000_v0_0_s_ifspec;
+
+#ifndef __IAccessibleComponent_INTERFACE_DEFINED__
+#define __IAccessibleComponent_INTERFACE_DEFINED__
+
+/* interface IAccessibleComponent */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleComponent;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("1546D4B0-4C98-4bda-89AE-9A64748BDDE4")
+ IAccessibleComponent : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_locationInParent(
+ /* [out] */ long *x,
+ /* [retval][out] */ long *y) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_foreground(
+ /* [retval][out] */ IA2Color *foreground) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_background(
+ /* [retval][out] */ IA2Color *background) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleComponentVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleComponent * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleComponent * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleComponent * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_locationInParent )(
+ IAccessibleComponent * This,
+ /* [out] */ long *x,
+ /* [retval][out] */ long *y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_foreground )(
+ IAccessibleComponent * This,
+ /* [retval][out] */ IA2Color *foreground);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_background )(
+ IAccessibleComponent * This,
+ /* [retval][out] */ IA2Color *background);
+
+ END_INTERFACE
+ } IAccessibleComponentVtbl;
+
+ interface IAccessibleComponent
+ {
+ CONST_VTBL struct IAccessibleComponentVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleComponent_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleComponent_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleComponent_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleComponent_get_locationInParent(This,x,y) \
+ ( (This)->lpVtbl -> get_locationInParent(This,x,y) )
+
+#define IAccessibleComponent_get_foreground(This,foreground) \
+ ( (This)->lpVtbl -> get_foreground(This,foreground) )
+
+#define IAccessibleComponent_get_background(This,background) \
+ ( (This)->lpVtbl -> get_background(This,background) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleComponent_INTERFACE_DEFINED__ */
+
+
+/* Additional Prototypes for ALL interfaces */
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleComponent_i.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleComponent_i.c
new file mode 100644
index 0000000000..34be13e31c
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleComponent_i.c
@@ -0,0 +1,79 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:57 2012
+ */
+/* Compiler settings for AccessibleComponent.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleComponent,0x1546D4B0,0x4C98,0x4bda,0x89,0xAE,0x9A,0x64,0x74,0x8B,0xDD,0xE4);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleComponent_p.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleComponent_p.c
new file mode 100644
index 0000000000..ddcacff7e7
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleComponent_p.c
@@ -0,0 +1,360 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:57 2012
+ */
+/* Compiler settings for AccessibleComponent.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if defined(_M_AMD64)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "AccessibleComponent.h"
+
+#define TYPE_FORMAT_STRING_SIZE 7
+#define PROC_FORMAT_STRING_SIZE 121
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 0
+
+typedef struct _AccessibleComponent_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } AccessibleComponent_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _AccessibleComponent_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } AccessibleComponent_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _AccessibleComponent_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } AccessibleComponent_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const AccessibleComponent_MIDL_TYPE_FORMAT_STRING AccessibleComponent__MIDL_TypeFormatString;
+extern const AccessibleComponent_MIDL_PROC_FORMAT_STRING AccessibleComponent__MIDL_ProcFormatString;
+extern const AccessibleComponent_MIDL_EXPR_FORMAT_STRING AccessibleComponent__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleComponent_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleComponent_ProxyInfo;
+
+
+
+#if !defined(__RPC_WIN64__)
+#error Invalid build platform for this stub.
+#endif
+
+static const AccessibleComponent_MIDL_PROC_FORMAT_STRING AccessibleComponent__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure get_locationInParent */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x3 ), /* 3 */
+/* 8 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 10 */ NdrFcShort( 0x0 ), /* 0 */
+/* 12 */ NdrFcShort( 0x40 ), /* 64 */
+/* 14 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 16 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 18 */ NdrFcShort( 0x0 ), /* 0 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+/* 24 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter x */
+
+/* 26 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 28 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 30 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 32 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 34 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 36 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 38 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 40 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 42 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_foreground */
+
+/* 44 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 46 */ NdrFcLong( 0x0 ), /* 0 */
+/* 50 */ NdrFcShort( 0x4 ), /* 4 */
+/* 52 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 54 */ NdrFcShort( 0x0 ), /* 0 */
+/* 56 */ NdrFcShort( 0x24 ), /* 36 */
+/* 58 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 60 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 62 */ NdrFcShort( 0x0 ), /* 0 */
+/* 64 */ NdrFcShort( 0x0 ), /* 0 */
+/* 66 */ NdrFcShort( 0x0 ), /* 0 */
+/* 68 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter foreground */
+
+/* 70 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 72 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 74 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 76 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 78 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 80 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_background */
+
+/* 82 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 84 */ NdrFcLong( 0x0 ), /* 0 */
+/* 88 */ NdrFcShort( 0x5 ), /* 5 */
+/* 90 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 92 */ NdrFcShort( 0x0 ), /* 0 */
+/* 94 */ NdrFcShort( 0x24 ), /* 36 */
+/* 96 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 98 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 100 */ NdrFcShort( 0x0 ), /* 0 */
+/* 102 */ NdrFcShort( 0x0 ), /* 0 */
+/* 104 */ NdrFcShort( 0x0 ), /* 0 */
+/* 106 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter background */
+
+/* 108 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 110 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 112 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 114 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 116 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 118 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const AccessibleComponent_MIDL_TYPE_FORMAT_STRING AccessibleComponent__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 4 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+
+ 0x0
+ }
+ };
+
+
+/* Standard interface: __MIDL_itf_AccessibleComponent_0000_0000, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IAccessibleComponent, ver. 0.0,
+ GUID={0x1546D4B0,0x4C98,0x4bda,{0x89,0xAE,0x9A,0x64,0x74,0x8B,0xDD,0xE4}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleComponent_FormatStringOffsetTable[] =
+ {
+ 0,
+ 44,
+ 82
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleComponent_ProxyInfo =
+ {
+ &Object_StubDesc,
+ AccessibleComponent__MIDL_ProcFormatString.Format,
+ &IAccessibleComponent_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleComponent_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ AccessibleComponent__MIDL_ProcFormatString.Format,
+ &IAccessibleComponent_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(6) _IAccessibleComponentProxyVtbl =
+{
+ &IAccessibleComponent_ProxyInfo,
+ &IID_IAccessibleComponent,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleComponent::get_locationInParent */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleComponent::get_foreground */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleComponent::get_background */
+};
+
+const CInterfaceStubVtbl _IAccessibleComponentStubVtbl =
+{
+ &IID_IAccessibleComponent,
+ &IAccessibleComponent_ServerInfo,
+ 6,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ AccessibleComponent__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x700022b, /* MIDL Version 7.0.555 */
+ 0,
+ 0,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _AccessibleComponent_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_IAccessibleComponentProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _AccessibleComponent_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_IAccessibleComponentStubVtbl,
+ 0
+};
+
+PCInterfaceName const _AccessibleComponent_InterfaceNamesList[] =
+{
+ "IAccessibleComponent",
+ 0
+};
+
+
+#define _AccessibleComponent_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleComponent, pIID, n)
+
+int __stdcall _AccessibleComponent_IID_Lookup( const IID * pIID, int * pIndex )
+{
+
+ if(!_AccessibleComponent_CHECK_IID(0))
+ {
+ *pIndex = 0;
+ return 1;
+ }
+
+ return 0;
+}
+
+const ExtendedProxyFileInfo AccessibleComponent_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _AccessibleComponent_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _AccessibleComponent_StubVtblList,
+ (const PCInterfaceName * ) & _AccessibleComponent_InterfaceNamesList,
+ 0, /* no delegation */
+ & _AccessibleComponent_IID_Lookup,
+ 1,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* defined(_M_AMD64)*/
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleEditableText.h b/src/3rdparty/iaccessible2/generated/amd64/AccessibleEditableText.h
new file mode 100644
index 0000000000..4c94154a15
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleEditableText.h
@@ -0,0 +1,235 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:57 2012
+ */
+/* Compiler settings for AccessibleEditableText.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __AccessibleEditableText_h__
+#define __AccessibleEditableText_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IAccessibleEditableText_FWD_DEFINED__
+#define __IAccessibleEditableText_FWD_DEFINED__
+typedef interface IAccessibleEditableText IAccessibleEditableText;
+#endif /* __IAccessibleEditableText_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "objidl.h"
+#include "oaidl.h"
+#include "oleacc.h"
+#include "IA2CommonTypes.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#ifndef __IAccessibleEditableText_INTERFACE_DEFINED__
+#define __IAccessibleEditableText_INTERFACE_DEFINED__
+
+/* interface IAccessibleEditableText */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleEditableText;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("A59AA09A-7011-4b65-939D-32B1FB5547E3")
+ IAccessibleEditableText : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE copyText(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE deleteText(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE insertText(
+ /* [in] */ long offset,
+ /* [in] */ BSTR *text) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE cutText(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE pasteText(
+ /* [in] */ long offset) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE replaceText(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [in] */ BSTR *text) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE setAttributes(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [in] */ BSTR *attributes) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleEditableTextVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleEditableText * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleEditableText * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleEditableText * This);
+
+ HRESULT ( STDMETHODCALLTYPE *copyText )(
+ IAccessibleEditableText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ HRESULT ( STDMETHODCALLTYPE *deleteText )(
+ IAccessibleEditableText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ HRESULT ( STDMETHODCALLTYPE *insertText )(
+ IAccessibleEditableText * This,
+ /* [in] */ long offset,
+ /* [in] */ BSTR *text);
+
+ HRESULT ( STDMETHODCALLTYPE *cutText )(
+ IAccessibleEditableText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ HRESULT ( STDMETHODCALLTYPE *pasteText )(
+ IAccessibleEditableText * This,
+ /* [in] */ long offset);
+
+ HRESULT ( STDMETHODCALLTYPE *replaceText )(
+ IAccessibleEditableText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [in] */ BSTR *text);
+
+ HRESULT ( STDMETHODCALLTYPE *setAttributes )(
+ IAccessibleEditableText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [in] */ BSTR *attributes);
+
+ END_INTERFACE
+ } IAccessibleEditableTextVtbl;
+
+ interface IAccessibleEditableText
+ {
+ CONST_VTBL struct IAccessibleEditableTextVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleEditableText_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleEditableText_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleEditableText_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleEditableText_copyText(This,startOffset,endOffset) \
+ ( (This)->lpVtbl -> copyText(This,startOffset,endOffset) )
+
+#define IAccessibleEditableText_deleteText(This,startOffset,endOffset) \
+ ( (This)->lpVtbl -> deleteText(This,startOffset,endOffset) )
+
+#define IAccessibleEditableText_insertText(This,offset,text) \
+ ( (This)->lpVtbl -> insertText(This,offset,text) )
+
+#define IAccessibleEditableText_cutText(This,startOffset,endOffset) \
+ ( (This)->lpVtbl -> cutText(This,startOffset,endOffset) )
+
+#define IAccessibleEditableText_pasteText(This,offset) \
+ ( (This)->lpVtbl -> pasteText(This,offset) )
+
+#define IAccessibleEditableText_replaceText(This,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> replaceText(This,startOffset,endOffset,text) )
+
+#define IAccessibleEditableText_setAttributes(This,startOffset,endOffset,attributes) \
+ ( (This)->lpVtbl -> setAttributes(This,startOffset,endOffset,attributes) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleEditableText_INTERFACE_DEFINED__ */
+
+
+/* Additional Prototypes for ALL interfaces */
+
+unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
+unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
+unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
+void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleEditableText_i.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleEditableText_i.c
new file mode 100644
index 0000000000..a444951721
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleEditableText_i.c
@@ -0,0 +1,79 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:57 2012
+ */
+/* Compiler settings for AccessibleEditableText.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleEditableText,0xA59AA09A,0x7011,0x4b65,0x93,0x9D,0x32,0xB1,0xFB,0x55,0x47,0xE3);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleEditableText_p.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleEditableText_p.c
new file mode 100644
index 0000000000..9e9b466d86
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleEditableText_p.c
@@ -0,0 +1,579 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:57 2012
+ */
+/* Compiler settings for AccessibleEditableText.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if defined(_M_AMD64)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "AccessibleEditableText.h"
+
+#define TYPE_FORMAT_STRING_SIZE 43
+#define PROC_FORMAT_STRING_SIZE 315
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 1
+
+typedef struct _AccessibleEditableText_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } AccessibleEditableText_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _AccessibleEditableText_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } AccessibleEditableText_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _AccessibleEditableText_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } AccessibleEditableText_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const AccessibleEditableText_MIDL_TYPE_FORMAT_STRING AccessibleEditableText__MIDL_TypeFormatString;
+extern const AccessibleEditableText_MIDL_PROC_FORMAT_STRING AccessibleEditableText__MIDL_ProcFormatString;
+extern const AccessibleEditableText_MIDL_EXPR_FORMAT_STRING AccessibleEditableText__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleEditableText_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleEditableText_ProxyInfo;
+
+
+extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
+
+#if !defined(__RPC_WIN64__)
+#error Invalid build platform for this stub.
+#endif
+
+static const AccessibleEditableText_MIDL_PROC_FORMAT_STRING AccessibleEditableText__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure copyText */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x3 ), /* 3 */
+/* 8 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 10 */ NdrFcShort( 0x10 ), /* 16 */
+/* 12 */ NdrFcShort( 0x8 ), /* 8 */
+/* 14 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 16 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 18 */ NdrFcShort( 0x0 ), /* 0 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+/* 24 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startOffset */
+
+/* 26 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 28 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 30 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 32 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 34 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 36 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 38 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 40 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 42 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure deleteText */
+
+/* 44 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 46 */ NdrFcLong( 0x0 ), /* 0 */
+/* 50 */ NdrFcShort( 0x4 ), /* 4 */
+/* 52 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 54 */ NdrFcShort( 0x10 ), /* 16 */
+/* 56 */ NdrFcShort( 0x8 ), /* 8 */
+/* 58 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 60 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 62 */ NdrFcShort( 0x0 ), /* 0 */
+/* 64 */ NdrFcShort( 0x0 ), /* 0 */
+/* 66 */ NdrFcShort( 0x0 ), /* 0 */
+/* 68 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startOffset */
+
+/* 70 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 72 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 74 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 76 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 78 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 80 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 82 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 84 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 86 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure insertText */
+
+/* 88 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 90 */ NdrFcLong( 0x0 ), /* 0 */
+/* 94 */ NdrFcShort( 0x5 ), /* 5 */
+/* 96 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 98 */ NdrFcShort( 0x8 ), /* 8 */
+/* 100 */ NdrFcShort( 0x8 ), /* 8 */
+/* 102 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 104 */ 0xa, /* 10 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 106 */ NdrFcShort( 0x0 ), /* 0 */
+/* 108 */ NdrFcShort( 0x1 ), /* 1 */
+/* 110 */ NdrFcShort( 0x0 ), /* 0 */
+/* 112 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 114 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 116 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 118 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter text */
+
+/* 120 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 122 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 124 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 126 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 128 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 130 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure cutText */
+
+/* 132 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 134 */ NdrFcLong( 0x0 ), /* 0 */
+/* 138 */ NdrFcShort( 0x6 ), /* 6 */
+/* 140 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 142 */ NdrFcShort( 0x10 ), /* 16 */
+/* 144 */ NdrFcShort( 0x8 ), /* 8 */
+/* 146 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 148 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 150 */ NdrFcShort( 0x0 ), /* 0 */
+/* 152 */ NdrFcShort( 0x0 ), /* 0 */
+/* 154 */ NdrFcShort( 0x0 ), /* 0 */
+/* 156 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startOffset */
+
+/* 158 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 160 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 162 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 164 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 166 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 168 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 170 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 172 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 174 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure pasteText */
+
+/* 176 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 178 */ NdrFcLong( 0x0 ), /* 0 */
+/* 182 */ NdrFcShort( 0x7 ), /* 7 */
+/* 184 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 186 */ NdrFcShort( 0x8 ), /* 8 */
+/* 188 */ NdrFcShort( 0x8 ), /* 8 */
+/* 190 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 192 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 194 */ NdrFcShort( 0x0 ), /* 0 */
+/* 196 */ NdrFcShort( 0x0 ), /* 0 */
+/* 198 */ NdrFcShort( 0x0 ), /* 0 */
+/* 200 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 202 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 204 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 206 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 208 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 210 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 212 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure replaceText */
+
+/* 214 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 216 */ NdrFcLong( 0x0 ), /* 0 */
+/* 220 */ NdrFcShort( 0x8 ), /* 8 */
+/* 222 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 224 */ NdrFcShort( 0x10 ), /* 16 */
+/* 226 */ NdrFcShort( 0x8 ), /* 8 */
+/* 228 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 230 */ 0xa, /* 10 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 232 */ NdrFcShort( 0x0 ), /* 0 */
+/* 234 */ NdrFcShort( 0x1 ), /* 1 */
+/* 236 */ NdrFcShort( 0x0 ), /* 0 */
+/* 238 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startOffset */
+
+/* 240 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 242 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 244 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 246 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 248 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 250 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter text */
+
+/* 252 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 254 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 256 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 258 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 260 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 262 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure setAttributes */
+
+/* 264 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 266 */ NdrFcLong( 0x0 ), /* 0 */
+/* 270 */ NdrFcShort( 0x9 ), /* 9 */
+/* 272 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 274 */ NdrFcShort( 0x10 ), /* 16 */
+/* 276 */ NdrFcShort( 0x8 ), /* 8 */
+/* 278 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 280 */ 0xa, /* 10 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 282 */ NdrFcShort( 0x0 ), /* 0 */
+/* 284 */ NdrFcShort( 0x1 ), /* 1 */
+/* 286 */ NdrFcShort( 0x0 ), /* 0 */
+/* 288 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startOffset */
+
+/* 290 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 292 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 294 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 296 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 298 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 300 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter attributes */
+
+/* 302 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 304 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 306 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 308 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 310 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 312 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const AccessibleEditableText_MIDL_TYPE_FORMAT_STRING AccessibleEditableText__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0x0, /* FC_RP */
+/* 4 */ NdrFcShort( 0x1c ), /* Offset= 28 (32) */
+/* 6 */
+ 0x12, 0x0, /* FC_UP */
+/* 8 */ NdrFcShort( 0xe ), /* Offset= 14 (22) */
+/* 10 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 12 */ NdrFcShort( 0x2 ), /* 2 */
+/* 14 */ 0x9, /* Corr desc: FC_ULONG */
+ 0x0, /* */
+/* 16 */ NdrFcShort( 0xfffc ), /* -4 */
+/* 18 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 20 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 22 */
+ 0x17, /* FC_CSTRUCT */
+ 0x3, /* 3 */
+/* 24 */ NdrFcShort( 0x8 ), /* 8 */
+/* 26 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (10) */
+/* 28 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 30 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 32 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 34 */ NdrFcShort( 0x0 ), /* 0 */
+/* 36 */ NdrFcShort( 0x8 ), /* 8 */
+/* 38 */ NdrFcShort( 0x0 ), /* 0 */
+/* 40 */ NdrFcShort( 0xffde ), /* Offset= -34 (6) */
+
+ 0x0
+ }
+ };
+
+static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
+ {
+
+ {
+ BSTR_UserSize
+ ,BSTR_UserMarshal
+ ,BSTR_UserUnmarshal
+ ,BSTR_UserFree
+ }
+
+ };
+
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IAccessibleEditableText, ver. 0.0,
+ GUID={0xA59AA09A,0x7011,0x4b65,{0x93,0x9D,0x32,0xB1,0xFB,0x55,0x47,0xE3}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleEditableText_FormatStringOffsetTable[] =
+ {
+ 0,
+ 44,
+ 88,
+ 132,
+ 176,
+ 214,
+ 264
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleEditableText_ProxyInfo =
+ {
+ &Object_StubDesc,
+ AccessibleEditableText__MIDL_ProcFormatString.Format,
+ &IAccessibleEditableText_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleEditableText_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ AccessibleEditableText__MIDL_ProcFormatString.Format,
+ &IAccessibleEditableText_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(10) _IAccessibleEditableTextProxyVtbl =
+{
+ &IAccessibleEditableText_ProxyInfo,
+ &IID_IAccessibleEditableText,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::copyText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::deleteText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::insertText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::cutText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::pasteText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::replaceText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::setAttributes */
+};
+
+const CInterfaceStubVtbl _IAccessibleEditableTextStubVtbl =
+{
+ &IID_IAccessibleEditableText,
+ &IAccessibleEditableText_ServerInfo,
+ 10,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ AccessibleEditableText__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x700022b, /* MIDL Version 7.0.555 */
+ 0,
+ UserMarshalRoutines,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _AccessibleEditableText_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_IAccessibleEditableTextProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _AccessibleEditableText_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_IAccessibleEditableTextStubVtbl,
+ 0
+};
+
+PCInterfaceName const _AccessibleEditableText_InterfaceNamesList[] =
+{
+ "IAccessibleEditableText",
+ 0
+};
+
+
+#define _AccessibleEditableText_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleEditableText, pIID, n)
+
+int __stdcall _AccessibleEditableText_IID_Lookup( const IID * pIID, int * pIndex )
+{
+
+ if(!_AccessibleEditableText_CHECK_IID(0))
+ {
+ *pIndex = 0;
+ return 1;
+ }
+
+ return 0;
+}
+
+const ExtendedProxyFileInfo AccessibleEditableText_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _AccessibleEditableText_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _AccessibleEditableText_StubVtblList,
+ (const PCInterfaceName * ) & _AccessibleEditableText_InterfaceNamesList,
+ 0, /* no delegation */
+ & _AccessibleEditableText_IID_Lookup,
+ 1,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* defined(_M_AMD64)*/
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleEventID.h b/src/3rdparty/iaccessible2/generated/amd64/AccessibleEventID.h
new file mode 100644
index 0000000000..6e6c8a888a
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleEventID.h
@@ -0,0 +1,105 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:57 2012
+ */
+/* Compiler settings for AccessibleEventID.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+
+#ifndef __AccessibleEventID_h__
+#define __AccessibleEventID_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/* interface __MIDL_itf_AccessibleEventID_0000_0000 */
+/* [local] */
+
+
+enum IA2EventID
+ { IA2_EVENT_ACTION_CHANGED = 0x101,
+ IA2_EVENT_ACTIVE_DECENDENT_CHANGED = ( IA2_EVENT_ACTION_CHANGED + 1 ) ,
+ IA2_EVENT_ACTIVE_DESCENDANT_CHANGED = IA2_EVENT_ACTIVE_DECENDENT_CHANGED,
+ IA2_EVENT_DOCUMENT_ATTRIBUTE_CHANGED = ( IA2_EVENT_ACTIVE_DESCENDANT_CHANGED + 1 ) ,
+ IA2_EVENT_DOCUMENT_CONTENT_CHANGED = ( IA2_EVENT_DOCUMENT_ATTRIBUTE_CHANGED + 1 ) ,
+ IA2_EVENT_DOCUMENT_LOAD_COMPLETE = ( IA2_EVENT_DOCUMENT_CONTENT_CHANGED + 1 ) ,
+ IA2_EVENT_DOCUMENT_LOAD_STOPPED = ( IA2_EVENT_DOCUMENT_LOAD_COMPLETE + 1 ) ,
+ IA2_EVENT_DOCUMENT_RELOAD = ( IA2_EVENT_DOCUMENT_LOAD_STOPPED + 1 ) ,
+ IA2_EVENT_HYPERLINK_END_INDEX_CHANGED = ( IA2_EVENT_DOCUMENT_RELOAD + 1 ) ,
+ IA2_EVENT_HYPERLINK_NUMBER_OF_ANCHORS_CHANGED = ( IA2_EVENT_HYPERLINK_END_INDEX_CHANGED + 1 ) ,
+ IA2_EVENT_HYPERLINK_SELECTED_LINK_CHANGED = ( IA2_EVENT_HYPERLINK_NUMBER_OF_ANCHORS_CHANGED + 1 ) ,
+ IA2_EVENT_HYPERTEXT_LINK_ACTIVATED = ( IA2_EVENT_HYPERLINK_SELECTED_LINK_CHANGED + 1 ) ,
+ IA2_EVENT_HYPERTEXT_LINK_SELECTED = ( IA2_EVENT_HYPERTEXT_LINK_ACTIVATED + 1 ) ,
+ IA2_EVENT_HYPERLINK_START_INDEX_CHANGED = ( IA2_EVENT_HYPERTEXT_LINK_SELECTED + 1 ) ,
+ IA2_EVENT_HYPERTEXT_CHANGED = ( IA2_EVENT_HYPERLINK_START_INDEX_CHANGED + 1 ) ,
+ IA2_EVENT_HYPERTEXT_NLINKS_CHANGED = ( IA2_EVENT_HYPERTEXT_CHANGED + 1 ) ,
+ IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED = ( IA2_EVENT_HYPERTEXT_NLINKS_CHANGED + 1 ) ,
+ IA2_EVENT_PAGE_CHANGED = ( IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED + 1 ) ,
+ IA2_EVENT_SECTION_CHANGED = ( IA2_EVENT_PAGE_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_CAPTION_CHANGED = ( IA2_EVENT_SECTION_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_COLUMN_DESCRIPTION_CHANGED = ( IA2_EVENT_TABLE_CAPTION_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_COLUMN_HEADER_CHANGED = ( IA2_EVENT_TABLE_COLUMN_DESCRIPTION_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_MODEL_CHANGED = ( IA2_EVENT_TABLE_COLUMN_HEADER_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_ROW_DESCRIPTION_CHANGED = ( IA2_EVENT_TABLE_MODEL_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_ROW_HEADER_CHANGED = ( IA2_EVENT_TABLE_ROW_DESCRIPTION_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_SUMMARY_CHANGED = ( IA2_EVENT_TABLE_ROW_HEADER_CHANGED + 1 ) ,
+ IA2_EVENT_TEXT_ATTRIBUTE_CHANGED = ( IA2_EVENT_TABLE_SUMMARY_CHANGED + 1 ) ,
+ IA2_EVENT_TEXT_CARET_MOVED = ( IA2_EVENT_TEXT_ATTRIBUTE_CHANGED + 1 ) ,
+ IA2_EVENT_TEXT_CHANGED = ( IA2_EVENT_TEXT_CARET_MOVED + 1 ) ,
+ IA2_EVENT_TEXT_COLUMN_CHANGED = ( IA2_EVENT_TEXT_CHANGED + 1 ) ,
+ IA2_EVENT_TEXT_INSERTED = ( IA2_EVENT_TEXT_COLUMN_CHANGED + 1 ) ,
+ IA2_EVENT_TEXT_REMOVED = ( IA2_EVENT_TEXT_INSERTED + 1 ) ,
+ IA2_EVENT_TEXT_UPDATED = ( IA2_EVENT_TEXT_REMOVED + 1 ) ,
+ IA2_EVENT_TEXT_SELECTION_CHANGED = ( IA2_EVENT_TEXT_UPDATED + 1 ) ,
+ IA2_EVENT_VISIBLE_DATA_CHANGED = ( IA2_EVENT_TEXT_SELECTION_CHANGED + 1 )
+ } ;
+
+
+extern RPC_IF_HANDLE __MIDL_itf_AccessibleEventID_0000_0000_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_AccessibleEventID_0000_0000_v0_0_s_ifspec;
+
+/* Additional Prototypes for ALL interfaces */
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleHyperlink.h b/src/3rdparty/iaccessible2/generated/amd64/AccessibleHyperlink.h
new file mode 100644
index 0000000000..24fad0bd8a
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleHyperlink.h
@@ -0,0 +1,252 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:57 2012
+ */
+/* Compiler settings for AccessibleHyperlink.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __AccessibleHyperlink_h__
+#define __AccessibleHyperlink_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IAccessibleHyperlink_FWD_DEFINED__
+#define __IAccessibleHyperlink_FWD_DEFINED__
+typedef interface IAccessibleHyperlink IAccessibleHyperlink;
+#endif /* __IAccessibleHyperlink_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "objidl.h"
+#include "oaidl.h"
+#include "oleacc.h"
+#include "AccessibleAction.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#ifndef __IAccessibleHyperlink_INTERFACE_DEFINED__
+#define __IAccessibleHyperlink_INTERFACE_DEFINED__
+
+/* interface IAccessibleHyperlink */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleHyperlink;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("01C20F2B-3DD2-400f-949F-AD00BDAB1D41")
+ IAccessibleHyperlink : public IAccessibleAction
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_anchor(
+ /* [in] */ long index,
+ /* [retval][out] */ VARIANT *anchor) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_anchorTarget(
+ /* [in] */ long index,
+ /* [retval][out] */ VARIANT *anchorTarget) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_startIndex(
+ /* [retval][out] */ long *index) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_endIndex(
+ /* [retval][out] */ long *index) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_valid(
+ /* [retval][out] */ boolean *valid) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleHyperlinkVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleHyperlink * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleHyperlink * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleHyperlink * This);
+
+ HRESULT ( STDMETHODCALLTYPE *nActions )(
+ IAccessibleHyperlink * This,
+ /* [retval][out] */ long *nActions);
+
+ HRESULT ( STDMETHODCALLTYPE *doAction )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long actionIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_description )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_keyBinding )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long actionIndex,
+ /* [in] */ long nMaxBindings,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **keyBindings,
+ /* [retval][out] */ long *nBindings);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *name);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedName )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *localizedName);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_anchor )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long index,
+ /* [retval][out] */ VARIANT *anchor);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_anchorTarget )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long index,
+ /* [retval][out] */ VARIANT *anchorTarget);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_startIndex )(
+ IAccessibleHyperlink * This,
+ /* [retval][out] */ long *index);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_endIndex )(
+ IAccessibleHyperlink * This,
+ /* [retval][out] */ long *index);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_valid )(
+ IAccessibleHyperlink * This,
+ /* [retval][out] */ boolean *valid);
+
+ END_INTERFACE
+ } IAccessibleHyperlinkVtbl;
+
+ interface IAccessibleHyperlink
+ {
+ CONST_VTBL struct IAccessibleHyperlinkVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleHyperlink_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleHyperlink_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleHyperlink_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleHyperlink_nActions(This,nActions) \
+ ( (This)->lpVtbl -> nActions(This,nActions) )
+
+#define IAccessibleHyperlink_doAction(This,actionIndex) \
+ ( (This)->lpVtbl -> doAction(This,actionIndex) )
+
+#define IAccessibleHyperlink_get_description(This,actionIndex,description) \
+ ( (This)->lpVtbl -> get_description(This,actionIndex,description) )
+
+#define IAccessibleHyperlink_get_keyBinding(This,actionIndex,nMaxBindings,keyBindings,nBindings) \
+ ( (This)->lpVtbl -> get_keyBinding(This,actionIndex,nMaxBindings,keyBindings,nBindings) )
+
+#define IAccessibleHyperlink_get_name(This,actionIndex,name) \
+ ( (This)->lpVtbl -> get_name(This,actionIndex,name) )
+
+#define IAccessibleHyperlink_get_localizedName(This,actionIndex,localizedName) \
+ ( (This)->lpVtbl -> get_localizedName(This,actionIndex,localizedName) )
+
+
+#define IAccessibleHyperlink_get_anchor(This,index,anchor) \
+ ( (This)->lpVtbl -> get_anchor(This,index,anchor) )
+
+#define IAccessibleHyperlink_get_anchorTarget(This,index,anchorTarget) \
+ ( (This)->lpVtbl -> get_anchorTarget(This,index,anchorTarget) )
+
+#define IAccessibleHyperlink_get_startIndex(This,index) \
+ ( (This)->lpVtbl -> get_startIndex(This,index) )
+
+#define IAccessibleHyperlink_get_endIndex(This,index) \
+ ( (This)->lpVtbl -> get_endIndex(This,index) )
+
+#define IAccessibleHyperlink_get_valid(This,valid) \
+ ( (This)->lpVtbl -> get_valid(This,valid) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleHyperlink_INTERFACE_DEFINED__ */
+
+
+/* Additional Prototypes for ALL interfaces */
+
+unsigned long __RPC_USER VARIANT_UserSize( unsigned long *, unsigned long , VARIANT * );
+unsigned char * __RPC_USER VARIANT_UserMarshal( unsigned long *, unsigned char *, VARIANT * );
+unsigned char * __RPC_USER VARIANT_UserUnmarshal(unsigned long *, unsigned char *, VARIANT * );
+void __RPC_USER VARIANT_UserFree( unsigned long *, VARIANT * );
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleHyperlink_i.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleHyperlink_i.c
new file mode 100644
index 0000000000..f668740e0b
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleHyperlink_i.c
@@ -0,0 +1,79 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:57 2012
+ */
+/* Compiler settings for AccessibleHyperlink.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleHyperlink,0x01C20F2B,0x3DD2,0x400f,0x94,0x9F,0xAD,0x00,0xBD,0xAB,0x1D,0x41);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleHyperlink_p.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleHyperlink_p.c
new file mode 100644
index 0000000000..4cf0a1333c
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleHyperlink_p.c
@@ -0,0 +1,1113 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:57 2012
+ */
+/* Compiler settings for AccessibleHyperlink.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if defined(_M_AMD64)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "AccessibleHyperlink.h"
+
+#define TYPE_FORMAT_STRING_SIZE 997
+#define PROC_FORMAT_STRING_SIZE 203
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 1
+
+typedef struct _AccessibleHyperlink_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } AccessibleHyperlink_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _AccessibleHyperlink_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } AccessibleHyperlink_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _AccessibleHyperlink_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } AccessibleHyperlink_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const AccessibleHyperlink_MIDL_TYPE_FORMAT_STRING AccessibleHyperlink__MIDL_TypeFormatString;
+extern const AccessibleHyperlink_MIDL_PROC_FORMAT_STRING AccessibleHyperlink__MIDL_ProcFormatString;
+extern const AccessibleHyperlink_MIDL_EXPR_FORMAT_STRING AccessibleHyperlink__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleHyperlink_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleHyperlink_ProxyInfo;
+
+
+extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
+
+#if !defined(__RPC_WIN64__)
+#error Invalid build platform for this stub.
+#endif
+
+static const AccessibleHyperlink_MIDL_PROC_FORMAT_STRING AccessibleHyperlink__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure get_anchor */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x9 ), /* 9 */
+/* 8 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 10 */ NdrFcShort( 0x8 ), /* 8 */
+/* 12 */ NdrFcShort( 0x8 ), /* 8 */
+/* 14 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 16 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 18 */ NdrFcShort( 0x1 ), /* 1 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+/* 24 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter index */
+
+/* 26 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 28 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 30 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter anchor */
+
+/* 32 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
+/* 34 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 36 */ NdrFcShort( 0x3d2 ), /* Type Offset=978 */
+
+ /* Return value */
+
+/* 38 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 40 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 42 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_anchorTarget */
+
+/* 44 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 46 */ NdrFcLong( 0x0 ), /* 0 */
+/* 50 */ NdrFcShort( 0xa ), /* 10 */
+/* 52 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 54 */ NdrFcShort( 0x8 ), /* 8 */
+/* 56 */ NdrFcShort( 0x8 ), /* 8 */
+/* 58 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 60 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 62 */ NdrFcShort( 0x1 ), /* 1 */
+/* 64 */ NdrFcShort( 0x0 ), /* 0 */
+/* 66 */ NdrFcShort( 0x0 ), /* 0 */
+/* 68 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter index */
+
+/* 70 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 72 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 74 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter anchorTarget */
+
+/* 76 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
+/* 78 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 80 */ NdrFcShort( 0x3d2 ), /* Type Offset=978 */
+
+ /* Return value */
+
+/* 82 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 84 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 86 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_startIndex */
+
+/* 88 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 90 */ NdrFcLong( 0x0 ), /* 0 */
+/* 94 */ NdrFcShort( 0xb ), /* 11 */
+/* 96 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 98 */ NdrFcShort( 0x0 ), /* 0 */
+/* 100 */ NdrFcShort( 0x24 ), /* 36 */
+/* 102 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 104 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 106 */ NdrFcShort( 0x0 ), /* 0 */
+/* 108 */ NdrFcShort( 0x0 ), /* 0 */
+/* 110 */ NdrFcShort( 0x0 ), /* 0 */
+/* 112 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter index */
+
+/* 114 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 116 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 118 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 120 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 122 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 124 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_endIndex */
+
+/* 126 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 128 */ NdrFcLong( 0x0 ), /* 0 */
+/* 132 */ NdrFcShort( 0xc ), /* 12 */
+/* 134 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 136 */ NdrFcShort( 0x0 ), /* 0 */
+/* 138 */ NdrFcShort( 0x24 ), /* 36 */
+/* 140 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 142 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 144 */ NdrFcShort( 0x0 ), /* 0 */
+/* 146 */ NdrFcShort( 0x0 ), /* 0 */
+/* 148 */ NdrFcShort( 0x0 ), /* 0 */
+/* 150 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter index */
+
+/* 152 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 154 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 156 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 158 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 160 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 162 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_valid */
+
+/* 164 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 166 */ NdrFcLong( 0x0 ), /* 0 */
+/* 170 */ NdrFcShort( 0xd ), /* 13 */
+/* 172 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 174 */ NdrFcShort( 0x0 ), /* 0 */
+/* 176 */ NdrFcShort( 0x21 ), /* 33 */
+/* 178 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 180 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 182 */ NdrFcShort( 0x0 ), /* 0 */
+/* 184 */ NdrFcShort( 0x0 ), /* 0 */
+/* 186 */ NdrFcShort( 0x0 ), /* 0 */
+/* 188 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter valid */
+
+/* 190 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 192 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 194 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 196 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 198 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 200 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const AccessibleHyperlink_MIDL_TYPE_FORMAT_STRING AccessibleHyperlink__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 4 */ NdrFcShort( 0x3ce ), /* Offset= 974 (978) */
+/* 6 */
+ 0x13, 0x0, /* FC_OP */
+/* 8 */ NdrFcShort( 0x3b6 ), /* Offset= 950 (958) */
+/* 10 */
+ 0x2b, /* FC_NON_ENCAPSULATED_UNION */
+ 0x9, /* FC_ULONG */
+/* 12 */ 0x7, /* Corr desc: FC_USHORT */
+ 0x0, /* */
+/* 14 */ NdrFcShort( 0xfff8 ), /* -8 */
+/* 16 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 18 */ NdrFcShort( 0x2 ), /* Offset= 2 (20) */
+/* 20 */ NdrFcShort( 0x10 ), /* 16 */
+/* 22 */ NdrFcShort( 0x2f ), /* 47 */
+/* 24 */ NdrFcLong( 0x14 ), /* 20 */
+/* 28 */ NdrFcShort( 0x800b ), /* Simple arm type: FC_HYPER */
+/* 30 */ NdrFcLong( 0x3 ), /* 3 */
+/* 34 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 36 */ NdrFcLong( 0x11 ), /* 17 */
+/* 40 */ NdrFcShort( 0x8001 ), /* Simple arm type: FC_BYTE */
+/* 42 */ NdrFcLong( 0x2 ), /* 2 */
+/* 46 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
+/* 48 */ NdrFcLong( 0x4 ), /* 4 */
+/* 52 */ NdrFcShort( 0x800a ), /* Simple arm type: FC_FLOAT */
+/* 54 */ NdrFcLong( 0x5 ), /* 5 */
+/* 58 */ NdrFcShort( 0x800c ), /* Simple arm type: FC_DOUBLE */
+/* 60 */ NdrFcLong( 0xb ), /* 11 */
+/* 64 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
+/* 66 */ NdrFcLong( 0xa ), /* 10 */
+/* 70 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 72 */ NdrFcLong( 0x6 ), /* 6 */
+/* 76 */ NdrFcShort( 0xe8 ), /* Offset= 232 (308) */
+/* 78 */ NdrFcLong( 0x7 ), /* 7 */
+/* 82 */ NdrFcShort( 0x800c ), /* Simple arm type: FC_DOUBLE */
+/* 84 */ NdrFcLong( 0x8 ), /* 8 */
+/* 88 */ NdrFcShort( 0xe2 ), /* Offset= 226 (314) */
+/* 90 */ NdrFcLong( 0xd ), /* 13 */
+/* 94 */ NdrFcShort( 0xf6 ), /* Offset= 246 (340) */
+/* 96 */ NdrFcLong( 0x9 ), /* 9 */
+/* 100 */ NdrFcShort( 0x102 ), /* Offset= 258 (358) */
+/* 102 */ NdrFcLong( 0x2000 ), /* 8192 */
+/* 106 */ NdrFcShort( 0x10e ), /* Offset= 270 (376) */
+/* 108 */ NdrFcLong( 0x24 ), /* 36 */
+/* 112 */ NdrFcShort( 0x304 ), /* Offset= 772 (884) */
+/* 114 */ NdrFcLong( 0x4024 ), /* 16420 */
+/* 118 */ NdrFcShort( 0x2fe ), /* Offset= 766 (884) */
+/* 120 */ NdrFcLong( 0x4011 ), /* 16401 */
+/* 124 */ NdrFcShort( 0x2fc ), /* Offset= 764 (888) */
+/* 126 */ NdrFcLong( 0x4002 ), /* 16386 */
+/* 130 */ NdrFcShort( 0x2fa ), /* Offset= 762 (892) */
+/* 132 */ NdrFcLong( 0x4003 ), /* 16387 */
+/* 136 */ NdrFcShort( 0x2f8 ), /* Offset= 760 (896) */
+/* 138 */ NdrFcLong( 0x4014 ), /* 16404 */
+/* 142 */ NdrFcShort( 0x2f6 ), /* Offset= 758 (900) */
+/* 144 */ NdrFcLong( 0x4004 ), /* 16388 */
+/* 148 */ NdrFcShort( 0x2f4 ), /* Offset= 756 (904) */
+/* 150 */ NdrFcLong( 0x4005 ), /* 16389 */
+/* 154 */ NdrFcShort( 0x2f2 ), /* Offset= 754 (908) */
+/* 156 */ NdrFcLong( 0x400b ), /* 16395 */
+/* 160 */ NdrFcShort( 0x2dc ), /* Offset= 732 (892) */
+/* 162 */ NdrFcLong( 0x400a ), /* 16394 */
+/* 166 */ NdrFcShort( 0x2da ), /* Offset= 730 (896) */
+/* 168 */ NdrFcLong( 0x4006 ), /* 16390 */
+/* 172 */ NdrFcShort( 0x2e4 ), /* Offset= 740 (912) */
+/* 174 */ NdrFcLong( 0x4007 ), /* 16391 */
+/* 178 */ NdrFcShort( 0x2da ), /* Offset= 730 (908) */
+/* 180 */ NdrFcLong( 0x4008 ), /* 16392 */
+/* 184 */ NdrFcShort( 0x2dc ), /* Offset= 732 (916) */
+/* 186 */ NdrFcLong( 0x400d ), /* 16397 */
+/* 190 */ NdrFcShort( 0x2da ), /* Offset= 730 (920) */
+/* 192 */ NdrFcLong( 0x4009 ), /* 16393 */
+/* 196 */ NdrFcShort( 0x2d8 ), /* Offset= 728 (924) */
+/* 198 */ NdrFcLong( 0x6000 ), /* 24576 */
+/* 202 */ NdrFcShort( 0x2d6 ), /* Offset= 726 (928) */
+/* 204 */ NdrFcLong( 0x400c ), /* 16396 */
+/* 208 */ NdrFcShort( 0x2d4 ), /* Offset= 724 (932) */
+/* 210 */ NdrFcLong( 0x10 ), /* 16 */
+/* 214 */ NdrFcShort( 0x8002 ), /* Simple arm type: FC_CHAR */
+/* 216 */ NdrFcLong( 0x12 ), /* 18 */
+/* 220 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
+/* 222 */ NdrFcLong( 0x13 ), /* 19 */
+/* 226 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 228 */ NdrFcLong( 0x15 ), /* 21 */
+/* 232 */ NdrFcShort( 0x800b ), /* Simple arm type: FC_HYPER */
+/* 234 */ NdrFcLong( 0x16 ), /* 22 */
+/* 238 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 240 */ NdrFcLong( 0x17 ), /* 23 */
+/* 244 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 246 */ NdrFcLong( 0xe ), /* 14 */
+/* 250 */ NdrFcShort( 0x2b2 ), /* Offset= 690 (940) */
+/* 252 */ NdrFcLong( 0x400e ), /* 16398 */
+/* 256 */ NdrFcShort( 0x2b6 ), /* Offset= 694 (950) */
+/* 258 */ NdrFcLong( 0x4010 ), /* 16400 */
+/* 262 */ NdrFcShort( 0x2b4 ), /* Offset= 692 (954) */
+/* 264 */ NdrFcLong( 0x4012 ), /* 16402 */
+/* 268 */ NdrFcShort( 0x270 ), /* Offset= 624 (892) */
+/* 270 */ NdrFcLong( 0x4013 ), /* 16403 */
+/* 274 */ NdrFcShort( 0x26e ), /* Offset= 622 (896) */
+/* 276 */ NdrFcLong( 0x4015 ), /* 16405 */
+/* 280 */ NdrFcShort( 0x26c ), /* Offset= 620 (900) */
+/* 282 */ NdrFcLong( 0x4016 ), /* 16406 */
+/* 286 */ NdrFcShort( 0x262 ), /* Offset= 610 (896) */
+/* 288 */ NdrFcLong( 0x4017 ), /* 16407 */
+/* 292 */ NdrFcShort( 0x25c ), /* Offset= 604 (896) */
+/* 294 */ NdrFcLong( 0x0 ), /* 0 */
+/* 298 */ NdrFcShort( 0x0 ), /* Offset= 0 (298) */
+/* 300 */ NdrFcLong( 0x1 ), /* 1 */
+/* 304 */ NdrFcShort( 0x0 ), /* Offset= 0 (304) */
+/* 306 */ NdrFcShort( 0xffff ), /* Offset= -1 (305) */
+/* 308 */
+ 0x15, /* FC_STRUCT */
+ 0x7, /* 7 */
+/* 310 */ NdrFcShort( 0x8 ), /* 8 */
+/* 312 */ 0xb, /* FC_HYPER */
+ 0x5b, /* FC_END */
+/* 314 */
+ 0x13, 0x0, /* FC_OP */
+/* 316 */ NdrFcShort( 0xe ), /* Offset= 14 (330) */
+/* 318 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 320 */ NdrFcShort( 0x2 ), /* 2 */
+/* 322 */ 0x9, /* Corr desc: FC_ULONG */
+ 0x0, /* */
+/* 324 */ NdrFcShort( 0xfffc ), /* -4 */
+/* 326 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 328 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 330 */
+ 0x17, /* FC_CSTRUCT */
+ 0x3, /* 3 */
+/* 332 */ NdrFcShort( 0x8 ), /* 8 */
+/* 334 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (318) */
+/* 336 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 338 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 340 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 342 */ NdrFcLong( 0x0 ), /* 0 */
+/* 346 */ NdrFcShort( 0x0 ), /* 0 */
+/* 348 */ NdrFcShort( 0x0 ), /* 0 */
+/* 350 */ 0xc0, /* 192 */
+ 0x0, /* 0 */
+/* 352 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 354 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 356 */ 0x0, /* 0 */
+ 0x46, /* 70 */
+/* 358 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 360 */ NdrFcLong( 0x20400 ), /* 132096 */
+/* 364 */ NdrFcShort( 0x0 ), /* 0 */
+/* 366 */ NdrFcShort( 0x0 ), /* 0 */
+/* 368 */ 0xc0, /* 192 */
+ 0x0, /* 0 */
+/* 370 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 372 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 374 */ 0x0, /* 0 */
+ 0x46, /* 70 */
+/* 376 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 378 */ NdrFcShort( 0x2 ), /* Offset= 2 (380) */
+/* 380 */
+ 0x13, 0x0, /* FC_OP */
+/* 382 */ NdrFcShort( 0x1e4 ), /* Offset= 484 (866) */
+/* 384 */
+ 0x2a, /* FC_ENCAPSULATED_UNION */
+ 0x89, /* 137 */
+/* 386 */ NdrFcShort( 0x20 ), /* 32 */
+/* 388 */ NdrFcShort( 0xa ), /* 10 */
+/* 390 */ NdrFcLong( 0x8 ), /* 8 */
+/* 394 */ NdrFcShort( 0x50 ), /* Offset= 80 (474) */
+/* 396 */ NdrFcLong( 0xd ), /* 13 */
+/* 400 */ NdrFcShort( 0x70 ), /* Offset= 112 (512) */
+/* 402 */ NdrFcLong( 0x9 ), /* 9 */
+/* 406 */ NdrFcShort( 0x90 ), /* Offset= 144 (550) */
+/* 408 */ NdrFcLong( 0xc ), /* 12 */
+/* 412 */ NdrFcShort( 0xb0 ), /* Offset= 176 (588) */
+/* 414 */ NdrFcLong( 0x24 ), /* 36 */
+/* 418 */ NdrFcShort( 0x102 ), /* Offset= 258 (676) */
+/* 420 */ NdrFcLong( 0x800d ), /* 32781 */
+/* 424 */ NdrFcShort( 0x11e ), /* Offset= 286 (710) */
+/* 426 */ NdrFcLong( 0x10 ), /* 16 */
+/* 430 */ NdrFcShort( 0x138 ), /* Offset= 312 (742) */
+/* 432 */ NdrFcLong( 0x2 ), /* 2 */
+/* 436 */ NdrFcShort( 0x14e ), /* Offset= 334 (770) */
+/* 438 */ NdrFcLong( 0x3 ), /* 3 */
+/* 442 */ NdrFcShort( 0x164 ), /* Offset= 356 (798) */
+/* 444 */ NdrFcLong( 0x14 ), /* 20 */
+/* 448 */ NdrFcShort( 0x17a ), /* Offset= 378 (826) */
+/* 450 */ NdrFcShort( 0xffff ), /* Offset= -1 (449) */
+/* 452 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 454 */ NdrFcShort( 0x0 ), /* 0 */
+/* 456 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 458 */ NdrFcShort( 0x0 ), /* 0 */
+/* 460 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 462 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 466 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 468 */
+ 0x13, 0x0, /* FC_OP */
+/* 470 */ NdrFcShort( 0xff74 ), /* Offset= -140 (330) */
+/* 472 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 474 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 476 */ NdrFcShort( 0x10 ), /* 16 */
+/* 478 */ NdrFcShort( 0x0 ), /* 0 */
+/* 480 */ NdrFcShort( 0x6 ), /* Offset= 6 (486) */
+/* 482 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 484 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 486 */
+ 0x11, 0x0, /* FC_RP */
+/* 488 */ NdrFcShort( 0xffdc ), /* Offset= -36 (452) */
+/* 490 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 492 */ NdrFcShort( 0x0 ), /* 0 */
+/* 494 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 496 */ NdrFcShort( 0x0 ), /* 0 */
+/* 498 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 500 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 504 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 506 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 508 */ NdrFcShort( 0xff58 ), /* Offset= -168 (340) */
+/* 510 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 512 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 514 */ NdrFcShort( 0x10 ), /* 16 */
+/* 516 */ NdrFcShort( 0x0 ), /* 0 */
+/* 518 */ NdrFcShort( 0x6 ), /* Offset= 6 (524) */
+/* 520 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 522 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 524 */
+ 0x11, 0x0, /* FC_RP */
+/* 526 */ NdrFcShort( 0xffdc ), /* Offset= -36 (490) */
+/* 528 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 530 */ NdrFcShort( 0x0 ), /* 0 */
+/* 532 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 534 */ NdrFcShort( 0x0 ), /* 0 */
+/* 536 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 538 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 542 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 544 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 546 */ NdrFcShort( 0xff44 ), /* Offset= -188 (358) */
+/* 548 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 550 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 552 */ NdrFcShort( 0x10 ), /* 16 */
+/* 554 */ NdrFcShort( 0x0 ), /* 0 */
+/* 556 */ NdrFcShort( 0x6 ), /* Offset= 6 (562) */
+/* 558 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 560 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 562 */
+ 0x11, 0x0, /* FC_RP */
+/* 564 */ NdrFcShort( 0xffdc ), /* Offset= -36 (528) */
+/* 566 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 568 */ NdrFcShort( 0x0 ), /* 0 */
+/* 570 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 572 */ NdrFcShort( 0x0 ), /* 0 */
+/* 574 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 576 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 580 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 582 */
+ 0x13, 0x0, /* FC_OP */
+/* 584 */ NdrFcShort( 0x176 ), /* Offset= 374 (958) */
+/* 586 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 588 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 590 */ NdrFcShort( 0x10 ), /* 16 */
+/* 592 */ NdrFcShort( 0x0 ), /* 0 */
+/* 594 */ NdrFcShort( 0x6 ), /* Offset= 6 (600) */
+/* 596 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 598 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 600 */
+ 0x11, 0x0, /* FC_RP */
+/* 602 */ NdrFcShort( 0xffdc ), /* Offset= -36 (566) */
+/* 604 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 606 */ NdrFcLong( 0x2f ), /* 47 */
+/* 610 */ NdrFcShort( 0x0 ), /* 0 */
+/* 612 */ NdrFcShort( 0x0 ), /* 0 */
+/* 614 */ 0xc0, /* 192 */
+ 0x0, /* 0 */
+/* 616 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 618 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 620 */ 0x0, /* 0 */
+ 0x46, /* 70 */
+/* 622 */
+ 0x1b, /* FC_CARRAY */
+ 0x0, /* 0 */
+/* 624 */ NdrFcShort( 0x1 ), /* 1 */
+/* 626 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 628 */ NdrFcShort( 0x4 ), /* 4 */
+/* 630 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 632 */ 0x1, /* FC_BYTE */
+ 0x5b, /* FC_END */
+/* 634 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 636 */ NdrFcShort( 0x18 ), /* 24 */
+/* 638 */ NdrFcShort( 0x0 ), /* 0 */
+/* 640 */ NdrFcShort( 0xa ), /* Offset= 10 (650) */
+/* 642 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 644 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 646 */ NdrFcShort( 0xffd6 ), /* Offset= -42 (604) */
+/* 648 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 650 */
+ 0x13, 0x0, /* FC_OP */
+/* 652 */ NdrFcShort( 0xffe2 ), /* Offset= -30 (622) */
+/* 654 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 656 */ NdrFcShort( 0x0 ), /* 0 */
+/* 658 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 660 */ NdrFcShort( 0x0 ), /* 0 */
+/* 662 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 664 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 668 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 670 */
+ 0x13, 0x0, /* FC_OP */
+/* 672 */ NdrFcShort( 0xffda ), /* Offset= -38 (634) */
+/* 674 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 676 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 678 */ NdrFcShort( 0x10 ), /* 16 */
+/* 680 */ NdrFcShort( 0x0 ), /* 0 */
+/* 682 */ NdrFcShort( 0x6 ), /* Offset= 6 (688) */
+/* 684 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 686 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 688 */
+ 0x11, 0x0, /* FC_RP */
+/* 690 */ NdrFcShort( 0xffdc ), /* Offset= -36 (654) */
+/* 692 */
+ 0x1d, /* FC_SMFARRAY */
+ 0x0, /* 0 */
+/* 694 */ NdrFcShort( 0x8 ), /* 8 */
+/* 696 */ 0x1, /* FC_BYTE */
+ 0x5b, /* FC_END */
+/* 698 */
+ 0x15, /* FC_STRUCT */
+ 0x3, /* 3 */
+/* 700 */ NdrFcShort( 0x10 ), /* 16 */
+/* 702 */ 0x8, /* FC_LONG */
+ 0x6, /* FC_SHORT */
+/* 704 */ 0x6, /* FC_SHORT */
+ 0x4c, /* FC_EMBEDDED_COMPLEX */
+/* 706 */ 0x0, /* 0 */
+ NdrFcShort( 0xfff1 ), /* Offset= -15 (692) */
+ 0x5b, /* FC_END */
+/* 710 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 712 */ NdrFcShort( 0x20 ), /* 32 */
+/* 714 */ NdrFcShort( 0x0 ), /* 0 */
+/* 716 */ NdrFcShort( 0xa ), /* Offset= 10 (726) */
+/* 718 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 720 */ 0x36, /* FC_POINTER */
+ 0x4c, /* FC_EMBEDDED_COMPLEX */
+/* 722 */ 0x0, /* 0 */
+ NdrFcShort( 0xffe7 ), /* Offset= -25 (698) */
+ 0x5b, /* FC_END */
+/* 726 */
+ 0x11, 0x0, /* FC_RP */
+/* 728 */ NdrFcShort( 0xff12 ), /* Offset= -238 (490) */
+/* 730 */
+ 0x1b, /* FC_CARRAY */
+ 0x0, /* 0 */
+/* 732 */ NdrFcShort( 0x1 ), /* 1 */
+/* 734 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 736 */ NdrFcShort( 0x0 ), /* 0 */
+/* 738 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 740 */ 0x1, /* FC_BYTE */
+ 0x5b, /* FC_END */
+/* 742 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 744 */ NdrFcShort( 0x10 ), /* 16 */
+/* 746 */ NdrFcShort( 0x0 ), /* 0 */
+/* 748 */ NdrFcShort( 0x6 ), /* Offset= 6 (754) */
+/* 750 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 752 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 754 */
+ 0x13, 0x0, /* FC_OP */
+/* 756 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (730) */
+/* 758 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 760 */ NdrFcShort( 0x2 ), /* 2 */
+/* 762 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 764 */ NdrFcShort( 0x0 ), /* 0 */
+/* 766 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 768 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 770 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 772 */ NdrFcShort( 0x10 ), /* 16 */
+/* 774 */ NdrFcShort( 0x0 ), /* 0 */
+/* 776 */ NdrFcShort( 0x6 ), /* Offset= 6 (782) */
+/* 778 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 780 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 782 */
+ 0x13, 0x0, /* FC_OP */
+/* 784 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (758) */
+/* 786 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 788 */ NdrFcShort( 0x4 ), /* 4 */
+/* 790 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 792 */ NdrFcShort( 0x0 ), /* 0 */
+/* 794 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 796 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 798 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 800 */ NdrFcShort( 0x10 ), /* 16 */
+/* 802 */ NdrFcShort( 0x0 ), /* 0 */
+/* 804 */ NdrFcShort( 0x6 ), /* Offset= 6 (810) */
+/* 806 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 808 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 810 */
+ 0x13, 0x0, /* FC_OP */
+/* 812 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (786) */
+/* 814 */
+ 0x1b, /* FC_CARRAY */
+ 0x7, /* 7 */
+/* 816 */ NdrFcShort( 0x8 ), /* 8 */
+/* 818 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 820 */ NdrFcShort( 0x0 ), /* 0 */
+/* 822 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 824 */ 0xb, /* FC_HYPER */
+ 0x5b, /* FC_END */
+/* 826 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 828 */ NdrFcShort( 0x10 ), /* 16 */
+/* 830 */ NdrFcShort( 0x0 ), /* 0 */
+/* 832 */ NdrFcShort( 0x6 ), /* Offset= 6 (838) */
+/* 834 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 836 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 838 */
+ 0x13, 0x0, /* FC_OP */
+/* 840 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (814) */
+/* 842 */
+ 0x15, /* FC_STRUCT */
+ 0x3, /* 3 */
+/* 844 */ NdrFcShort( 0x8 ), /* 8 */
+/* 846 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 848 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 850 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 852 */ NdrFcShort( 0x8 ), /* 8 */
+/* 854 */ 0x7, /* Corr desc: FC_USHORT */
+ 0x0, /* */
+/* 856 */ NdrFcShort( 0xffc8 ), /* -56 */
+/* 858 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 860 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 862 */ NdrFcShort( 0xffec ), /* Offset= -20 (842) */
+/* 864 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 866 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 868 */ NdrFcShort( 0x38 ), /* 56 */
+/* 870 */ NdrFcShort( 0xffec ), /* Offset= -20 (850) */
+/* 872 */ NdrFcShort( 0x0 ), /* Offset= 0 (872) */
+/* 874 */ 0x6, /* FC_SHORT */
+ 0x6, /* FC_SHORT */
+/* 876 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 878 */ 0x40, /* FC_STRUCTPAD4 */
+ 0x4c, /* FC_EMBEDDED_COMPLEX */
+/* 880 */ 0x0, /* 0 */
+ NdrFcShort( 0xfe0f ), /* Offset= -497 (384) */
+ 0x5b, /* FC_END */
+/* 884 */
+ 0x13, 0x0, /* FC_OP */
+/* 886 */ NdrFcShort( 0xff04 ), /* Offset= -252 (634) */
+/* 888 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 890 */ 0x1, /* FC_BYTE */
+ 0x5c, /* FC_PAD */
+/* 892 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 894 */ 0x6, /* FC_SHORT */
+ 0x5c, /* FC_PAD */
+/* 896 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 898 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+/* 900 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 902 */ 0xb, /* FC_HYPER */
+ 0x5c, /* FC_PAD */
+/* 904 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 906 */ 0xa, /* FC_FLOAT */
+ 0x5c, /* FC_PAD */
+/* 908 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 910 */ 0xc, /* FC_DOUBLE */
+ 0x5c, /* FC_PAD */
+/* 912 */
+ 0x13, 0x0, /* FC_OP */
+/* 914 */ NdrFcShort( 0xfda2 ), /* Offset= -606 (308) */
+/* 916 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 918 */ NdrFcShort( 0xfda4 ), /* Offset= -604 (314) */
+/* 920 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 922 */ NdrFcShort( 0xfdba ), /* Offset= -582 (340) */
+/* 924 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 926 */ NdrFcShort( 0xfdc8 ), /* Offset= -568 (358) */
+/* 928 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 930 */ NdrFcShort( 0xfdd6 ), /* Offset= -554 (376) */
+/* 932 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 934 */ NdrFcShort( 0x2 ), /* Offset= 2 (936) */
+/* 936 */
+ 0x13, 0x0, /* FC_OP */
+/* 938 */ NdrFcShort( 0x14 ), /* Offset= 20 (958) */
+/* 940 */
+ 0x15, /* FC_STRUCT */
+ 0x7, /* 7 */
+/* 942 */ NdrFcShort( 0x10 ), /* 16 */
+/* 944 */ 0x6, /* FC_SHORT */
+ 0x1, /* FC_BYTE */
+/* 946 */ 0x1, /* FC_BYTE */
+ 0x8, /* FC_LONG */
+/* 948 */ 0xb, /* FC_HYPER */
+ 0x5b, /* FC_END */
+/* 950 */
+ 0x13, 0x0, /* FC_OP */
+/* 952 */ NdrFcShort( 0xfff4 ), /* Offset= -12 (940) */
+/* 954 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 956 */ 0x2, /* FC_CHAR */
+ 0x5c, /* FC_PAD */
+/* 958 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x7, /* 7 */
+/* 960 */ NdrFcShort( 0x20 ), /* 32 */
+/* 962 */ NdrFcShort( 0x0 ), /* 0 */
+/* 964 */ NdrFcShort( 0x0 ), /* Offset= 0 (964) */
+/* 966 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 968 */ 0x6, /* FC_SHORT */
+ 0x6, /* FC_SHORT */
+/* 970 */ 0x6, /* FC_SHORT */
+ 0x6, /* FC_SHORT */
+/* 972 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 974 */ NdrFcShort( 0xfc3c ), /* Offset= -964 (10) */
+/* 976 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 978 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 980 */ NdrFcShort( 0x0 ), /* 0 */
+/* 982 */ NdrFcShort( 0x18 ), /* 24 */
+/* 984 */ NdrFcShort( 0x0 ), /* 0 */
+/* 986 */ NdrFcShort( 0xfc2c ), /* Offset= -980 (6) */
+/* 988 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 990 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+/* 992 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 994 */ 0x3, /* FC_SMALL */
+ 0x5c, /* FC_PAD */
+
+ 0x0
+ }
+ };
+
+static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
+ {
+
+ {
+ VARIANT_UserSize
+ ,VARIANT_UserMarshal
+ ,VARIANT_UserUnmarshal
+ ,VARIANT_UserFree
+ }
+
+ };
+
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IAccessibleAction, ver. 0.0,
+ GUID={0xB70D9F59,0x3B5A,0x4dba,{0xAB,0x9E,0x22,0x01,0x2F,0x60,0x7D,0xF5}} */
+
+
+/* Object interface: IAccessibleHyperlink, ver. 0.0,
+ GUID={0x01C20F2B,0x3DD2,0x400f,{0x94,0x9F,0xAD,0x00,0xBD,0xAB,0x1D,0x41}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleHyperlink_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 0,
+ 44,
+ 88,
+ 126,
+ 164
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleHyperlink_ProxyInfo =
+ {
+ &Object_StubDesc,
+ AccessibleHyperlink__MIDL_ProcFormatString.Format,
+ &IAccessibleHyperlink_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleHyperlink_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ AccessibleHyperlink__MIDL_ProcFormatString.Format,
+ &IAccessibleHyperlink_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(14) _IAccessibleHyperlinkProxyVtbl =
+{
+ &IAccessibleHyperlink_ProxyInfo,
+ &IID_IAccessibleHyperlink,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IAccessibleAction::nActions */ ,
+ 0 /* IAccessibleAction::doAction */ ,
+ 0 /* IAccessibleAction::get_description */ ,
+ 0 /* IAccessibleAction::get_keyBinding */ ,
+ 0 /* IAccessibleAction::get_name */ ,
+ 0 /* IAccessibleAction::get_localizedName */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_anchor */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_anchorTarget */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_startIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_endIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_valid */
+};
+
+
+static const PRPC_STUB_FUNCTION IAccessibleHyperlink_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _IAccessibleHyperlinkStubVtbl =
+{
+ &IID_IAccessibleHyperlink,
+ &IAccessibleHyperlink_ServerInfo,
+ 14,
+ &IAccessibleHyperlink_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ AccessibleHyperlink__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x700022b, /* MIDL Version 7.0.555 */
+ 0,
+ UserMarshalRoutines,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _AccessibleHyperlink_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_IAccessibleHyperlinkProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _AccessibleHyperlink_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_IAccessibleHyperlinkStubVtbl,
+ 0
+};
+
+PCInterfaceName const _AccessibleHyperlink_InterfaceNamesList[] =
+{
+ "IAccessibleHyperlink",
+ 0
+};
+
+const IID * const _AccessibleHyperlink_BaseIIDList[] =
+{
+ &IID_IAccessibleAction,
+ 0
+};
+
+
+#define _AccessibleHyperlink_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleHyperlink, pIID, n)
+
+int __stdcall _AccessibleHyperlink_IID_Lookup( const IID * pIID, int * pIndex )
+{
+
+ if(!_AccessibleHyperlink_CHECK_IID(0))
+ {
+ *pIndex = 0;
+ return 1;
+ }
+
+ return 0;
+}
+
+const ExtendedProxyFileInfo AccessibleHyperlink_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _AccessibleHyperlink_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _AccessibleHyperlink_StubVtblList,
+ (const PCInterfaceName * ) & _AccessibleHyperlink_InterfaceNamesList,
+ (const IID ** ) & _AccessibleHyperlink_BaseIIDList,
+ & _AccessibleHyperlink_IID_Lookup,
+ 1,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* defined(_M_AMD64)*/
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleHypertext.h b/src/3rdparty/iaccessible2/generated/amd64/AccessibleHypertext.h
new file mode 100644
index 0000000000..91cb85c69e
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleHypertext.h
@@ -0,0 +1,349 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:58 2012
+ */
+/* Compiler settings for AccessibleHypertext.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __AccessibleHypertext_h__
+#define __AccessibleHypertext_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IAccessibleHypertext_FWD_DEFINED__
+#define __IAccessibleHypertext_FWD_DEFINED__
+typedef interface IAccessibleHypertext IAccessibleHypertext;
+#endif /* __IAccessibleHypertext_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "objidl.h"
+#include "oaidl.h"
+#include "oleacc.h"
+#include "AccessibleText.h"
+#include "AccessibleHyperlink.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#ifndef __IAccessibleHypertext_INTERFACE_DEFINED__
+#define __IAccessibleHypertext_INTERFACE_DEFINED__
+
+/* interface IAccessibleHypertext */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleHypertext;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("6B4F8BBF-F1F2-418a-B35E-A195BC4103B9")
+ IAccessibleHypertext : public IAccessibleText
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nHyperlinks(
+ /* [retval][out] */ long *hyperlinkCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_hyperlink(
+ /* [in] */ long index,
+ /* [retval][out] */ IAccessibleHyperlink **hyperlink) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_hyperlinkIndex(
+ /* [in] */ long charIndex,
+ /* [retval][out] */ long *hyperlinkIndex) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleHypertextVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleHypertext * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleHypertext * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleHypertext * This);
+
+ HRESULT ( STDMETHODCALLTYPE *addSelection )(
+ IAccessibleHypertext * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )(
+ IAccessibleHypertext * This,
+ /* [in] */ long offset,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *textAttributes);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )(
+ IAccessibleHypertext * This,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )(
+ IAccessibleHypertext * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [out] */ long *x,
+ /* [out] */ long *y,
+ /* [out] */ long *width,
+ /* [retval][out] */ long *height);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )(
+ IAccessibleHypertext * This,
+ /* [retval][out] */ long *nSelections);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )(
+ IAccessibleHypertext * This,
+ /* [in] */ long x,
+ /* [in] */ long y,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )(
+ IAccessibleHypertext * This,
+ /* [in] */ long selectionIndex,
+ /* [out] */ long *startOffset,
+ /* [retval][out] */ long *endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )(
+ IAccessibleHypertext * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )(
+ IAccessibleHypertext * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )(
+ IAccessibleHypertext * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )(
+ IAccessibleHypertext * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ HRESULT ( STDMETHODCALLTYPE *removeSelection )(
+ IAccessibleHypertext * This,
+ /* [in] */ long selectionIndex);
+
+ HRESULT ( STDMETHODCALLTYPE *setCaretOffset )(
+ IAccessibleHypertext * This,
+ /* [in] */ long offset);
+
+ HRESULT ( STDMETHODCALLTYPE *setSelection )(
+ IAccessibleHypertext * This,
+ /* [in] */ long selectionIndex,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )(
+ IAccessibleHypertext * This,
+ /* [retval][out] */ long *nCharacters);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )(
+ IAccessibleHypertext * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2ScrollType scrollType);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )(
+ IAccessibleHypertext * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )(
+ IAccessibleHypertext * This,
+ /* [retval][out] */ IA2TextSegment *newText);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )(
+ IAccessibleHypertext * This,
+ /* [retval][out] */ IA2TextSegment *oldText);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nHyperlinks )(
+ IAccessibleHypertext * This,
+ /* [retval][out] */ long *hyperlinkCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlink )(
+ IAccessibleHypertext * This,
+ /* [in] */ long index,
+ /* [retval][out] */ IAccessibleHyperlink **hyperlink);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlinkIndex )(
+ IAccessibleHypertext * This,
+ /* [in] */ long charIndex,
+ /* [retval][out] */ long *hyperlinkIndex);
+
+ END_INTERFACE
+ } IAccessibleHypertextVtbl;
+
+ interface IAccessibleHypertext
+ {
+ CONST_VTBL struct IAccessibleHypertextVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleHypertext_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleHypertext_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleHypertext_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleHypertext_addSelection(This,startOffset,endOffset) \
+ ( (This)->lpVtbl -> addSelection(This,startOffset,endOffset) )
+
+#define IAccessibleHypertext_get_attributes(This,offset,startOffset,endOffset,textAttributes) \
+ ( (This)->lpVtbl -> get_attributes(This,offset,startOffset,endOffset,textAttributes) )
+
+#define IAccessibleHypertext_get_caretOffset(This,offset) \
+ ( (This)->lpVtbl -> get_caretOffset(This,offset) )
+
+#define IAccessibleHypertext_get_characterExtents(This,offset,coordType,x,y,width,height) \
+ ( (This)->lpVtbl -> get_characterExtents(This,offset,coordType,x,y,width,height) )
+
+#define IAccessibleHypertext_get_nSelections(This,nSelections) \
+ ( (This)->lpVtbl -> get_nSelections(This,nSelections) )
+
+#define IAccessibleHypertext_get_offsetAtPoint(This,x,y,coordType,offset) \
+ ( (This)->lpVtbl -> get_offsetAtPoint(This,x,y,coordType,offset) )
+
+#define IAccessibleHypertext_get_selection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> get_selection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleHypertext_get_text(This,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_text(This,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext_get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext_get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext_get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext_removeSelection(This,selectionIndex) \
+ ( (This)->lpVtbl -> removeSelection(This,selectionIndex) )
+
+#define IAccessibleHypertext_setCaretOffset(This,offset) \
+ ( (This)->lpVtbl -> setCaretOffset(This,offset) )
+
+#define IAccessibleHypertext_setSelection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> setSelection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleHypertext_get_nCharacters(This,nCharacters) \
+ ( (This)->lpVtbl -> get_nCharacters(This,nCharacters) )
+
+#define IAccessibleHypertext_scrollSubstringTo(This,startIndex,endIndex,scrollType) \
+ ( (This)->lpVtbl -> scrollSubstringTo(This,startIndex,endIndex,scrollType) )
+
+#define IAccessibleHypertext_scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) \
+ ( (This)->lpVtbl -> scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) )
+
+#define IAccessibleHypertext_get_newText(This,newText) \
+ ( (This)->lpVtbl -> get_newText(This,newText) )
+
+#define IAccessibleHypertext_get_oldText(This,oldText) \
+ ( (This)->lpVtbl -> get_oldText(This,oldText) )
+
+
+#define IAccessibleHypertext_get_nHyperlinks(This,hyperlinkCount) \
+ ( (This)->lpVtbl -> get_nHyperlinks(This,hyperlinkCount) )
+
+#define IAccessibleHypertext_get_hyperlink(This,index,hyperlink) \
+ ( (This)->lpVtbl -> get_hyperlink(This,index,hyperlink) )
+
+#define IAccessibleHypertext_get_hyperlinkIndex(This,charIndex,hyperlinkIndex) \
+ ( (This)->lpVtbl -> get_hyperlinkIndex(This,charIndex,hyperlinkIndex) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleHypertext_INTERFACE_DEFINED__ */
+
+
+/* Additional Prototypes for ALL interfaces */
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleHypertext_i.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleHypertext_i.c
new file mode 100644
index 0000000000..fbc3ef133a
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleHypertext_i.c
@@ -0,0 +1,79 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:58 2012
+ */
+/* Compiler settings for AccessibleHypertext.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleHypertext,0x6B4F8BBF,0xF1F2,0x418a,0xB3,0x5E,0xA1,0x95,0xBC,0x41,0x03,0xB9);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleHypertext_p.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleHypertext_p.c
new file mode 100644
index 0000000000..e4df1ac6df
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleHypertext_p.c
@@ -0,0 +1,454 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:58 2012
+ */
+/* Compiler settings for AccessibleHypertext.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if defined(_M_AMD64)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "AccessibleHypertext.h"
+
+#define TYPE_FORMAT_STRING_SIZE 29
+#define PROC_FORMAT_STRING_SIZE 127
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 0
+
+typedef struct _AccessibleHypertext_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } AccessibleHypertext_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _AccessibleHypertext_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } AccessibleHypertext_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _AccessibleHypertext_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } AccessibleHypertext_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const AccessibleHypertext_MIDL_TYPE_FORMAT_STRING AccessibleHypertext__MIDL_TypeFormatString;
+extern const AccessibleHypertext_MIDL_PROC_FORMAT_STRING AccessibleHypertext__MIDL_ProcFormatString;
+extern const AccessibleHypertext_MIDL_EXPR_FORMAT_STRING AccessibleHypertext__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleHypertext_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleHypertext_ProxyInfo;
+
+
+
+#if !defined(__RPC_WIN64__)
+#error Invalid build platform for this stub.
+#endif
+
+static const AccessibleHypertext_MIDL_PROC_FORMAT_STRING AccessibleHypertext__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure get_nHyperlinks */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x16 ), /* 22 */
+/* 8 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 10 */ NdrFcShort( 0x0 ), /* 0 */
+/* 12 */ NdrFcShort( 0x24 ), /* 36 */
+/* 14 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 16 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 18 */ NdrFcShort( 0x0 ), /* 0 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+/* 24 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter hyperlinkCount */
+
+/* 26 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 28 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 30 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 32 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 34 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 36 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_hyperlink */
+
+/* 38 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 40 */ NdrFcLong( 0x0 ), /* 0 */
+/* 44 */ NdrFcShort( 0x17 ), /* 23 */
+/* 46 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 48 */ NdrFcShort( 0x8 ), /* 8 */
+/* 50 */ NdrFcShort( 0x8 ), /* 8 */
+/* 52 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 54 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 56 */ NdrFcShort( 0x0 ), /* 0 */
+/* 58 */ NdrFcShort( 0x0 ), /* 0 */
+/* 60 */ NdrFcShort( 0x0 ), /* 0 */
+/* 62 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter index */
+
+/* 64 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 66 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 68 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter hyperlink */
+
+/* 70 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 72 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 74 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
+
+ /* Return value */
+
+/* 76 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 78 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 80 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_hyperlinkIndex */
+
+/* 82 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 84 */ NdrFcLong( 0x0 ), /* 0 */
+/* 88 */ NdrFcShort( 0x18 ), /* 24 */
+/* 90 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 92 */ NdrFcShort( 0x8 ), /* 8 */
+/* 94 */ NdrFcShort( 0x24 ), /* 36 */
+/* 96 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 98 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 100 */ NdrFcShort( 0x0 ), /* 0 */
+/* 102 */ NdrFcShort( 0x0 ), /* 0 */
+/* 104 */ NdrFcShort( 0x0 ), /* 0 */
+/* 106 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter charIndex */
+
+/* 108 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 110 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 112 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter hyperlinkIndex */
+
+/* 114 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 116 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 118 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 120 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 122 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 124 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const AccessibleHypertext_MIDL_TYPE_FORMAT_STRING AccessibleHypertext__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 4 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+/* 6 */
+ 0x11, 0x10, /* FC_RP [pointer_deref] */
+/* 8 */ NdrFcShort( 0x2 ), /* Offset= 2 (10) */
+/* 10 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 12 */ NdrFcLong( 0x1c20f2b ), /* 29495083 */
+/* 16 */ NdrFcShort( 0x3dd2 ), /* 15826 */
+/* 18 */ NdrFcShort( 0x400f ), /* 16399 */
+/* 20 */ 0x94, /* 148 */
+ 0x9f, /* 159 */
+/* 22 */ 0xad, /* 173 */
+ 0x0, /* 0 */
+/* 24 */ 0xbd, /* 189 */
+ 0xab, /* 171 */
+/* 26 */ 0x1d, /* 29 */
+ 0x41, /* 65 */
+
+ 0x0
+ }
+ };
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IAccessibleText, ver. 0.0,
+ GUID={0x24FD2FFB,0x3AAD,0x4a08,{0x83,0x35,0xA3,0xAD,0x89,0xC0,0xFB,0x4B}} */
+
+
+/* Object interface: IAccessibleHypertext, ver. 0.0,
+ GUID={0x6B4F8BBF,0xF1F2,0x418a,{0xB3,0x5E,0xA1,0x95,0xBC,0x41,0x03,0xB9}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleHypertext_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 0,
+ 38,
+ 82
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleHypertext_ProxyInfo =
+ {
+ &Object_StubDesc,
+ AccessibleHypertext__MIDL_ProcFormatString.Format,
+ &IAccessibleHypertext_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleHypertext_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ AccessibleHypertext__MIDL_ProcFormatString.Format,
+ &IAccessibleHypertext_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(25) _IAccessibleHypertextProxyVtbl =
+{
+ &IAccessibleHypertext_ProxyInfo,
+ &IID_IAccessibleHypertext,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IAccessibleText::addSelection */ ,
+ 0 /* IAccessibleText::get_attributes */ ,
+ 0 /* IAccessibleText::get_caretOffset */ ,
+ 0 /* IAccessibleText::get_characterExtents */ ,
+ 0 /* IAccessibleText::get_nSelections */ ,
+ 0 /* IAccessibleText::get_offsetAtPoint */ ,
+ 0 /* IAccessibleText::get_selection */ ,
+ 0 /* IAccessibleText::get_text */ ,
+ 0 /* IAccessibleText::get_textBeforeOffset */ ,
+ 0 /* IAccessibleText::get_textAfterOffset */ ,
+ 0 /* IAccessibleText::get_textAtOffset */ ,
+ 0 /* IAccessibleText::removeSelection */ ,
+ 0 /* IAccessibleText::setCaretOffset */ ,
+ 0 /* IAccessibleText::setSelection */ ,
+ 0 /* IAccessibleText::get_nCharacters */ ,
+ 0 /* IAccessibleText::scrollSubstringTo */ ,
+ 0 /* IAccessibleText::scrollSubstringToPoint */ ,
+ 0 /* IAccessibleText::get_newText */ ,
+ 0 /* IAccessibleText::get_oldText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_nHyperlinks */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_hyperlink */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_hyperlinkIndex */
+};
+
+
+static const PRPC_STUB_FUNCTION IAccessibleHypertext_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _IAccessibleHypertextStubVtbl =
+{
+ &IID_IAccessibleHypertext,
+ &IAccessibleHypertext_ServerInfo,
+ 25,
+ &IAccessibleHypertext_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ AccessibleHypertext__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x700022b, /* MIDL Version 7.0.555 */
+ 0,
+ 0,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _AccessibleHypertext_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_IAccessibleHypertextProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _AccessibleHypertext_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_IAccessibleHypertextStubVtbl,
+ 0
+};
+
+PCInterfaceName const _AccessibleHypertext_InterfaceNamesList[] =
+{
+ "IAccessibleHypertext",
+ 0
+};
+
+const IID * const _AccessibleHypertext_BaseIIDList[] =
+{
+ &IID_IAccessibleText,
+ 0
+};
+
+
+#define _AccessibleHypertext_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleHypertext, pIID, n)
+
+int __stdcall _AccessibleHypertext_IID_Lookup( const IID * pIID, int * pIndex )
+{
+
+ if(!_AccessibleHypertext_CHECK_IID(0))
+ {
+ *pIndex = 0;
+ return 1;
+ }
+
+ return 0;
+}
+
+const ExtendedProxyFileInfo AccessibleHypertext_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _AccessibleHypertext_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _AccessibleHypertext_StubVtblList,
+ (const PCInterfaceName * ) & _AccessibleHypertext_InterfaceNamesList,
+ (const IID ** ) & _AccessibleHypertext_BaseIIDList,
+ & _AccessibleHypertext_IID_Lookup,
+ 1,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* defined(_M_AMD64)*/
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleImage.h b/src/3rdparty/iaccessible2/generated/amd64/AccessibleImage.h
new file mode 100644
index 0000000000..a01e4dc0b6
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleImage.h
@@ -0,0 +1,185 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:58 2012
+ */
+/* Compiler settings for AccessibleImage.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __AccessibleImage_h__
+#define __AccessibleImage_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IAccessibleImage_FWD_DEFINED__
+#define __IAccessibleImage_FWD_DEFINED__
+typedef interface IAccessibleImage IAccessibleImage;
+#endif /* __IAccessibleImage_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "objidl.h"
+#include "oaidl.h"
+#include "oleacc.h"
+#include "IA2CommonTypes.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#ifndef __IAccessibleImage_INTERFACE_DEFINED__
+#define __IAccessibleImage_INTERFACE_DEFINED__
+
+/* interface IAccessibleImage */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleImage;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("FE5ABB3D-615E-4f7b-909F-5F0EDA9E8DDE")
+ IAccessibleImage : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_description(
+ /* [retval][out] */ BSTR *description) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_imagePosition(
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [out] */ long *x,
+ /* [retval][out] */ long *y) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_imageSize(
+ /* [out] */ long *height,
+ /* [retval][out] */ long *width) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleImageVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleImage * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleImage * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleImage * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_description )(
+ IAccessibleImage * This,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_imagePosition )(
+ IAccessibleImage * This,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [out] */ long *x,
+ /* [retval][out] */ long *y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_imageSize )(
+ IAccessibleImage * This,
+ /* [out] */ long *height,
+ /* [retval][out] */ long *width);
+
+ END_INTERFACE
+ } IAccessibleImageVtbl;
+
+ interface IAccessibleImage
+ {
+ CONST_VTBL struct IAccessibleImageVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleImage_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleImage_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleImage_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleImage_get_description(This,description) \
+ ( (This)->lpVtbl -> get_description(This,description) )
+
+#define IAccessibleImage_get_imagePosition(This,coordinateType,x,y) \
+ ( (This)->lpVtbl -> get_imagePosition(This,coordinateType,x,y) )
+
+#define IAccessibleImage_get_imageSize(This,height,width) \
+ ( (This)->lpVtbl -> get_imageSize(This,height,width) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleImage_INTERFACE_DEFINED__ */
+
+
+/* Additional Prototypes for ALL interfaces */
+
+unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
+unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
+unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
+void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleImage_i.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleImage_i.c
new file mode 100644
index 0000000000..1afecd10b5
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleImage_i.c
@@ -0,0 +1,79 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:58 2012
+ */
+/* Compiler settings for AccessibleImage.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleImage,0xFE5ABB3D,0x615E,0x4f7b,0x90,0x9F,0x5F,0x0E,0xDA,0x9E,0x8D,0xDE);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleImage_p.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleImage_p.c
new file mode 100644
index 0000000000..4b6aff7ba5
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleImage_p.c
@@ -0,0 +1,414 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:58 2012
+ */
+/* Compiler settings for AccessibleImage.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if defined(_M_AMD64)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "AccessibleImage.h"
+
+#define TYPE_FORMAT_STRING_SIZE 47
+#define PROC_FORMAT_STRING_SIZE 133
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 1
+
+typedef struct _AccessibleImage_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } AccessibleImage_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _AccessibleImage_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } AccessibleImage_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _AccessibleImage_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } AccessibleImage_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const AccessibleImage_MIDL_TYPE_FORMAT_STRING AccessibleImage__MIDL_TypeFormatString;
+extern const AccessibleImage_MIDL_PROC_FORMAT_STRING AccessibleImage__MIDL_ProcFormatString;
+extern const AccessibleImage_MIDL_EXPR_FORMAT_STRING AccessibleImage__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleImage_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleImage_ProxyInfo;
+
+
+extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
+
+#if !defined(__RPC_WIN64__)
+#error Invalid build platform for this stub.
+#endif
+
+static const AccessibleImage_MIDL_PROC_FORMAT_STRING AccessibleImage__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure get_description */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x3 ), /* 3 */
+/* 8 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 10 */ NdrFcShort( 0x0 ), /* 0 */
+/* 12 */ NdrFcShort( 0x8 ), /* 8 */
+/* 14 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 16 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 18 */ NdrFcShort( 0x1 ), /* 1 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+/* 24 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter description */
+
+/* 26 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 28 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 30 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 32 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 34 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 36 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_imagePosition */
+
+/* 38 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 40 */ NdrFcLong( 0x0 ), /* 0 */
+/* 44 */ NdrFcShort( 0x4 ), /* 4 */
+/* 46 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 48 */ NdrFcShort( 0x6 ), /* 6 */
+/* 50 */ NdrFcShort( 0x40 ), /* 64 */
+/* 52 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 54 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 56 */ NdrFcShort( 0x0 ), /* 0 */
+/* 58 */ NdrFcShort( 0x0 ), /* 0 */
+/* 60 */ NdrFcShort( 0x0 ), /* 0 */
+/* 62 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter coordinateType */
+
+/* 64 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 66 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 68 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter x */
+
+/* 70 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 72 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 74 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 76 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 78 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 80 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 82 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 84 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 86 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_imageSize */
+
+/* 88 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 90 */ NdrFcLong( 0x0 ), /* 0 */
+/* 94 */ NdrFcShort( 0x5 ), /* 5 */
+/* 96 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 98 */ NdrFcShort( 0x0 ), /* 0 */
+/* 100 */ NdrFcShort( 0x40 ), /* 64 */
+/* 102 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 104 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 106 */ NdrFcShort( 0x0 ), /* 0 */
+/* 108 */ NdrFcShort( 0x0 ), /* 0 */
+/* 110 */ NdrFcShort( 0x0 ), /* 0 */
+/* 112 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter height */
+
+/* 114 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 116 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 118 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter width */
+
+/* 120 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 122 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 124 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 126 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 128 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 130 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const AccessibleImage_MIDL_TYPE_FORMAT_STRING AccessibleImage__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 4 */ NdrFcShort( 0x1c ), /* Offset= 28 (32) */
+/* 6 */
+ 0x13, 0x0, /* FC_OP */
+/* 8 */ NdrFcShort( 0xe ), /* Offset= 14 (22) */
+/* 10 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 12 */ NdrFcShort( 0x2 ), /* 2 */
+/* 14 */ 0x9, /* Corr desc: FC_ULONG */
+ 0x0, /* */
+/* 16 */ NdrFcShort( 0xfffc ), /* -4 */
+/* 18 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 20 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 22 */
+ 0x17, /* FC_CSTRUCT */
+ 0x3, /* 3 */
+/* 24 */ NdrFcShort( 0x8 ), /* 8 */
+/* 26 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (10) */
+/* 28 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 30 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 32 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 34 */ NdrFcShort( 0x0 ), /* 0 */
+/* 36 */ NdrFcShort( 0x8 ), /* 8 */
+/* 38 */ NdrFcShort( 0x0 ), /* 0 */
+/* 40 */ NdrFcShort( 0xffde ), /* Offset= -34 (6) */
+/* 42 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 44 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+
+ 0x0
+ }
+ };
+
+static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
+ {
+
+ {
+ BSTR_UserSize
+ ,BSTR_UserMarshal
+ ,BSTR_UserUnmarshal
+ ,BSTR_UserFree
+ }
+
+ };
+
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IAccessibleImage, ver. 0.0,
+ GUID={0xFE5ABB3D,0x615E,0x4f7b,{0x90,0x9F,0x5F,0x0E,0xDA,0x9E,0x8D,0xDE}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleImage_FormatStringOffsetTable[] =
+ {
+ 0,
+ 38,
+ 88
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleImage_ProxyInfo =
+ {
+ &Object_StubDesc,
+ AccessibleImage__MIDL_ProcFormatString.Format,
+ &IAccessibleImage_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleImage_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ AccessibleImage__MIDL_ProcFormatString.Format,
+ &IAccessibleImage_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(6) _IAccessibleImageProxyVtbl =
+{
+ &IAccessibleImage_ProxyInfo,
+ &IID_IAccessibleImage,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleImage::get_description */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleImage::get_imagePosition */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleImage::get_imageSize */
+};
+
+const CInterfaceStubVtbl _IAccessibleImageStubVtbl =
+{
+ &IID_IAccessibleImage,
+ &IAccessibleImage_ServerInfo,
+ 6,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ AccessibleImage__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x700022b, /* MIDL Version 7.0.555 */
+ 0,
+ UserMarshalRoutines,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _AccessibleImage_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_IAccessibleImageProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _AccessibleImage_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_IAccessibleImageStubVtbl,
+ 0
+};
+
+PCInterfaceName const _AccessibleImage_InterfaceNamesList[] =
+{
+ "IAccessibleImage",
+ 0
+};
+
+
+#define _AccessibleImage_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleImage, pIID, n)
+
+int __stdcall _AccessibleImage_IID_Lookup( const IID * pIID, int * pIndex )
+{
+
+ if(!_AccessibleImage_CHECK_IID(0))
+ {
+ *pIndex = 0;
+ return 1;
+ }
+
+ return 0;
+}
+
+const ExtendedProxyFileInfo AccessibleImage_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _AccessibleImage_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _AccessibleImage_StubVtblList,
+ (const PCInterfaceName * ) & _AccessibleImage_InterfaceNamesList,
+ 0, /* no delegation */
+ & _AccessibleImage_IID_Lookup,
+ 1,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* defined(_M_AMD64)*/
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleRelation.h b/src/3rdparty/iaccessible2/generated/amd64/AccessibleRelation.h
new file mode 100644
index 0000000000..e153cd8476
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleRelation.h
@@ -0,0 +1,244 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:58 2012
+ */
+/* Compiler settings for AccessibleRelation.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __AccessibleRelation_h__
+#define __AccessibleRelation_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IAccessibleRelation_FWD_DEFINED__
+#define __IAccessibleRelation_FWD_DEFINED__
+typedef interface IAccessibleRelation IAccessibleRelation;
+#endif /* __IAccessibleRelation_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "objidl.h"
+#include "oaidl.h"
+#include "oleacc.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/* interface __MIDL_itf_AccessibleRelation_0000_0000 */
+/* [local] */
+
+#define IA2_RELATION_CONTROLLED_BY ( L"controlledBy" )
+
+#define IA2_RELATION_CONTROLLER_FOR ( L"controllerFor" )
+
+#define IA2_RELATION_DESCRIBED_BY ( L"describedBy" )
+
+#define IA2_RELATION_DESCRIPTION_FOR ( L"descriptionFor" )
+
+#define IA2_RELATION_EMBEDDED_BY ( L"embeddedBy" )
+
+#define IA2_RELATION_EMBEDS ( L"embeds" )
+
+#define IA2_RELATION_FLOWS_FROM ( L"flowsFrom" )
+
+#define IA2_RELATION_FLOWS_TO ( L"flowsTo" )
+
+#define IA2_RELATION_LABEL_FOR ( L"labelFor" )
+
+#define IA2_RELATION_LABELED_BY ( L"labelledBy" )
+
+#define IA2_RELATION_LABELLED_BY ( L"labelledBy" )
+
+#define IA2_RELATION_MEMBER_OF ( L"memberOf" )
+
+#define IA2_RELATION_NODE_CHILD_OF ( L"nodeChildOf" )
+
+#define IA2_RELATION_PARENT_WINDOW_OF ( L"parentWindowOf" )
+
+#define IA2_RELATION_POPUP_FOR ( L"popupFor" )
+
+#define IA2_RELATION_SUBWINDOW_OF ( L"subwindowOf" )
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_AccessibleRelation_0000_0000_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_AccessibleRelation_0000_0000_v0_0_s_ifspec;
+
+#ifndef __IAccessibleRelation_INTERFACE_DEFINED__
+#define __IAccessibleRelation_INTERFACE_DEFINED__
+
+/* interface IAccessibleRelation */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleRelation;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("7CDF86EE-C3DA-496a-BDA4-281B336E1FDC")
+ IAccessibleRelation : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_relationType(
+ /* [retval][out] */ BSTR *relationType) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_localizedRelationType(
+ /* [retval][out] */ BSTR *localizedRelationType) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nTargets(
+ /* [retval][out] */ long *nTargets) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_target(
+ /* [in] */ long targetIndex,
+ /* [retval][out] */ IUnknown **target) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_targets(
+ /* [in] */ long maxTargets,
+ /* [length_is][size_is][out] */ IUnknown **targets,
+ /* [retval][out] */ long *nTargets) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleRelationVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleRelation * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleRelation * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleRelation * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relationType )(
+ IAccessibleRelation * This,
+ /* [retval][out] */ BSTR *relationType);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedRelationType )(
+ IAccessibleRelation * This,
+ /* [retval][out] */ BSTR *localizedRelationType);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nTargets )(
+ IAccessibleRelation * This,
+ /* [retval][out] */ long *nTargets);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_target )(
+ IAccessibleRelation * This,
+ /* [in] */ long targetIndex,
+ /* [retval][out] */ IUnknown **target);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_targets )(
+ IAccessibleRelation * This,
+ /* [in] */ long maxTargets,
+ /* [length_is][size_is][out] */ IUnknown **targets,
+ /* [retval][out] */ long *nTargets);
+
+ END_INTERFACE
+ } IAccessibleRelationVtbl;
+
+ interface IAccessibleRelation
+ {
+ CONST_VTBL struct IAccessibleRelationVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleRelation_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleRelation_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleRelation_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleRelation_get_relationType(This,relationType) \
+ ( (This)->lpVtbl -> get_relationType(This,relationType) )
+
+#define IAccessibleRelation_get_localizedRelationType(This,localizedRelationType) \
+ ( (This)->lpVtbl -> get_localizedRelationType(This,localizedRelationType) )
+
+#define IAccessibleRelation_get_nTargets(This,nTargets) \
+ ( (This)->lpVtbl -> get_nTargets(This,nTargets) )
+
+#define IAccessibleRelation_get_target(This,targetIndex,target) \
+ ( (This)->lpVtbl -> get_target(This,targetIndex,target) )
+
+#define IAccessibleRelation_get_targets(This,maxTargets,targets,nTargets) \
+ ( (This)->lpVtbl -> get_targets(This,maxTargets,targets,nTargets) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleRelation_INTERFACE_DEFINED__ */
+
+
+/* Additional Prototypes for ALL interfaces */
+
+unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
+unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
+unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
+void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleRelation_i.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleRelation_i.c
new file mode 100644
index 0000000000..2ab3837a27
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleRelation_i.c
@@ -0,0 +1,79 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:58 2012
+ */
+/* Compiler settings for AccessibleRelation.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleRelation,0x7CDF86EE,0xC3DA,0x496a,0xBD,0xA4,0x28,0x1B,0x33,0x6E,0x1F,0xDC);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleRelation_p.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleRelation_p.c
new file mode 100644
index 0000000000..e02cf7254c
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleRelation_p.c
@@ -0,0 +1,520 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:58 2012
+ */
+/* Compiler settings for AccessibleRelation.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if defined(_M_AMD64)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "AccessibleRelation.h"
+
+#define TYPE_FORMAT_STRING_SIZE 95
+#define PROC_FORMAT_STRING_SIZE 209
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 1
+
+typedef struct _AccessibleRelation_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } AccessibleRelation_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _AccessibleRelation_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } AccessibleRelation_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _AccessibleRelation_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } AccessibleRelation_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const AccessibleRelation_MIDL_TYPE_FORMAT_STRING AccessibleRelation__MIDL_TypeFormatString;
+extern const AccessibleRelation_MIDL_PROC_FORMAT_STRING AccessibleRelation__MIDL_ProcFormatString;
+extern const AccessibleRelation_MIDL_EXPR_FORMAT_STRING AccessibleRelation__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleRelation_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleRelation_ProxyInfo;
+
+
+extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
+
+#if !defined(__RPC_WIN64__)
+#error Invalid build platform for this stub.
+#endif
+
+static const AccessibleRelation_MIDL_PROC_FORMAT_STRING AccessibleRelation__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure get_relationType */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x3 ), /* 3 */
+/* 8 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 10 */ NdrFcShort( 0x0 ), /* 0 */
+/* 12 */ NdrFcShort( 0x8 ), /* 8 */
+/* 14 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 16 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 18 */ NdrFcShort( 0x1 ), /* 1 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+/* 24 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter relationType */
+
+/* 26 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 28 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 30 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 32 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 34 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 36 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_localizedRelationType */
+
+/* 38 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 40 */ NdrFcLong( 0x0 ), /* 0 */
+/* 44 */ NdrFcShort( 0x4 ), /* 4 */
+/* 46 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 48 */ NdrFcShort( 0x0 ), /* 0 */
+/* 50 */ NdrFcShort( 0x8 ), /* 8 */
+/* 52 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 54 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 56 */ NdrFcShort( 0x1 ), /* 1 */
+/* 58 */ NdrFcShort( 0x0 ), /* 0 */
+/* 60 */ NdrFcShort( 0x0 ), /* 0 */
+/* 62 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter localizedRelationType */
+
+/* 64 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 66 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 68 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 70 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 72 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 74 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nTargets */
+
+/* 76 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 78 */ NdrFcLong( 0x0 ), /* 0 */
+/* 82 */ NdrFcShort( 0x5 ), /* 5 */
+/* 84 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 86 */ NdrFcShort( 0x0 ), /* 0 */
+/* 88 */ NdrFcShort( 0x24 ), /* 36 */
+/* 90 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 92 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 94 */ NdrFcShort( 0x0 ), /* 0 */
+/* 96 */ NdrFcShort( 0x0 ), /* 0 */
+/* 98 */ NdrFcShort( 0x0 ), /* 0 */
+/* 100 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nTargets */
+
+/* 102 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 104 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 106 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 108 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 110 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 112 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_target */
+
+/* 114 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 116 */ NdrFcLong( 0x0 ), /* 0 */
+/* 120 */ NdrFcShort( 0x6 ), /* 6 */
+/* 122 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 124 */ NdrFcShort( 0x8 ), /* 8 */
+/* 126 */ NdrFcShort( 0x8 ), /* 8 */
+/* 128 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 130 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 132 */ NdrFcShort( 0x0 ), /* 0 */
+/* 134 */ NdrFcShort( 0x0 ), /* 0 */
+/* 136 */ NdrFcShort( 0x0 ), /* 0 */
+/* 138 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter targetIndex */
+
+/* 140 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 142 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 144 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter target */
+
+/* 146 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 148 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 150 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
+
+ /* Return value */
+
+/* 152 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 154 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 156 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_targets */
+
+/* 158 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 160 */ NdrFcLong( 0x0 ), /* 0 */
+/* 164 */ NdrFcShort( 0x7 ), /* 7 */
+/* 166 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 168 */ NdrFcShort( 0x8 ), /* 8 */
+/* 170 */ NdrFcShort( 0x24 ), /* 36 */
+/* 172 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 174 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 176 */ NdrFcShort( 0x1 ), /* 1 */
+/* 178 */ NdrFcShort( 0x0 ), /* 0 */
+/* 180 */ NdrFcShort( 0x0 ), /* 0 */
+/* 182 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxTargets */
+
+/* 184 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 186 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 188 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter targets */
+
+/* 190 */ NdrFcShort( 0x113 ), /* Flags: must size, must free, out, simple ref, */
+/* 192 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 194 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Parameter nTargets */
+
+/* 196 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 198 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 200 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 202 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 204 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 206 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const AccessibleRelation_MIDL_TYPE_FORMAT_STRING AccessibleRelation__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 4 */ NdrFcShort( 0x1c ), /* Offset= 28 (32) */
+/* 6 */
+ 0x13, 0x0, /* FC_OP */
+/* 8 */ NdrFcShort( 0xe ), /* Offset= 14 (22) */
+/* 10 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 12 */ NdrFcShort( 0x2 ), /* 2 */
+/* 14 */ 0x9, /* Corr desc: FC_ULONG */
+ 0x0, /* */
+/* 16 */ NdrFcShort( 0xfffc ), /* -4 */
+/* 18 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 20 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 22 */
+ 0x17, /* FC_CSTRUCT */
+ 0x3, /* 3 */
+/* 24 */ NdrFcShort( 0x8 ), /* 8 */
+/* 26 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (10) */
+/* 28 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 30 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 32 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 34 */ NdrFcShort( 0x0 ), /* 0 */
+/* 36 */ NdrFcShort( 0x8 ), /* 8 */
+/* 38 */ NdrFcShort( 0x0 ), /* 0 */
+/* 40 */ NdrFcShort( 0xffde ), /* Offset= -34 (6) */
+/* 42 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 44 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+/* 46 */
+ 0x11, 0x10, /* FC_RP [pointer_deref] */
+/* 48 */ NdrFcShort( 0x2 ), /* Offset= 2 (50) */
+/* 50 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 52 */ NdrFcLong( 0x0 ), /* 0 */
+/* 56 */ NdrFcShort( 0x0 ), /* 0 */
+/* 58 */ NdrFcShort( 0x0 ), /* 0 */
+/* 60 */ 0xc0, /* 192 */
+ 0x0, /* 0 */
+/* 62 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 64 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 66 */ 0x0, /* 0 */
+ 0x46, /* 70 */
+/* 68 */
+ 0x11, 0x0, /* FC_RP */
+/* 70 */ NdrFcShort( 0x2 ), /* Offset= 2 (72) */
+/* 72 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 74 */ NdrFcShort( 0x0 ), /* 0 */
+/* 76 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x0, /* */
+/* 78 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 80 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 82 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 84 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 86 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 88 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 90 */ NdrFcShort( 0xffd8 ), /* Offset= -40 (50) */
+/* 92 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+
+ 0x0
+ }
+ };
+
+static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
+ {
+
+ {
+ BSTR_UserSize
+ ,BSTR_UserMarshal
+ ,BSTR_UserUnmarshal
+ ,BSTR_UserFree
+ }
+
+ };
+
+
+
+/* Standard interface: __MIDL_itf_AccessibleRelation_0000_0000, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IAccessibleRelation, ver. 0.0,
+ GUID={0x7CDF86EE,0xC3DA,0x496a,{0xBD,0xA4,0x28,0x1B,0x33,0x6E,0x1F,0xDC}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleRelation_FormatStringOffsetTable[] =
+ {
+ 0,
+ 38,
+ 76,
+ 114,
+ 158
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleRelation_ProxyInfo =
+ {
+ &Object_StubDesc,
+ AccessibleRelation__MIDL_ProcFormatString.Format,
+ &IAccessibleRelation_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleRelation_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ AccessibleRelation__MIDL_ProcFormatString.Format,
+ &IAccessibleRelation_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(8) _IAccessibleRelationProxyVtbl =
+{
+ &IAccessibleRelation_ProxyInfo,
+ &IID_IAccessibleRelation,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleRelation::get_relationType */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleRelation::get_localizedRelationType */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleRelation::get_nTargets */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleRelation::get_target */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleRelation::get_targets */
+};
+
+const CInterfaceStubVtbl _IAccessibleRelationStubVtbl =
+{
+ &IID_IAccessibleRelation,
+ &IAccessibleRelation_ServerInfo,
+ 8,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ AccessibleRelation__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x700022b, /* MIDL Version 7.0.555 */
+ 0,
+ UserMarshalRoutines,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _AccessibleRelation_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_IAccessibleRelationProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _AccessibleRelation_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_IAccessibleRelationStubVtbl,
+ 0
+};
+
+PCInterfaceName const _AccessibleRelation_InterfaceNamesList[] =
+{
+ "IAccessibleRelation",
+ 0
+};
+
+
+#define _AccessibleRelation_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleRelation, pIID, n)
+
+int __stdcall _AccessibleRelation_IID_Lookup( const IID * pIID, int * pIndex )
+{
+
+ if(!_AccessibleRelation_CHECK_IID(0))
+ {
+ *pIndex = 0;
+ return 1;
+ }
+
+ return 0;
+}
+
+const ExtendedProxyFileInfo AccessibleRelation_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _AccessibleRelation_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _AccessibleRelation_StubVtblList,
+ (const PCInterfaceName * ) & _AccessibleRelation_InterfaceNamesList,
+ 0, /* no delegation */
+ & _AccessibleRelation_IID_Lookup,
+ 1,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* defined(_M_AMD64)*/
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleRole.h b/src/3rdparty/iaccessible2/generated/amd64/AccessibleRole.h
new file mode 100644
index 0000000000..bee6466b7c
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleRole.h
@@ -0,0 +1,118 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:59 2012
+ */
+/* Compiler settings for AccessibleRole.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+
+#ifndef __AccessibleRole_h__
+#define __AccessibleRole_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+/* header files for imported files */
+#include "objidl.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/* interface __MIDL_itf_AccessibleRole_0000_0000 */
+/* [local] */
+
+
+enum IA2Role
+ { IA2_ROLE_UNKNOWN = 0,
+ IA2_ROLE_CANVAS = 0x401,
+ IA2_ROLE_CAPTION = ( IA2_ROLE_CANVAS + 1 ) ,
+ IA2_ROLE_CHECK_MENU_ITEM = ( IA2_ROLE_CAPTION + 1 ) ,
+ IA2_ROLE_COLOR_CHOOSER = ( IA2_ROLE_CHECK_MENU_ITEM + 1 ) ,
+ IA2_ROLE_DATE_EDITOR = ( IA2_ROLE_COLOR_CHOOSER + 1 ) ,
+ IA2_ROLE_DESKTOP_ICON = ( IA2_ROLE_DATE_EDITOR + 1 ) ,
+ IA2_ROLE_DESKTOP_PANE = ( IA2_ROLE_DESKTOP_ICON + 1 ) ,
+ IA2_ROLE_DIRECTORY_PANE = ( IA2_ROLE_DESKTOP_PANE + 1 ) ,
+ IA2_ROLE_EDITBAR = ( IA2_ROLE_DIRECTORY_PANE + 1 ) ,
+ IA2_ROLE_EMBEDDED_OBJECT = ( IA2_ROLE_EDITBAR + 1 ) ,
+ IA2_ROLE_ENDNOTE = ( IA2_ROLE_EMBEDDED_OBJECT + 1 ) ,
+ IA2_ROLE_FILE_CHOOSER = ( IA2_ROLE_ENDNOTE + 1 ) ,
+ IA2_ROLE_FONT_CHOOSER = ( IA2_ROLE_FILE_CHOOSER + 1 ) ,
+ IA2_ROLE_FOOTER = ( IA2_ROLE_FONT_CHOOSER + 1 ) ,
+ IA2_ROLE_FOOTNOTE = ( IA2_ROLE_FOOTER + 1 ) ,
+ IA2_ROLE_FORM = ( IA2_ROLE_FOOTNOTE + 1 ) ,
+ IA2_ROLE_FRAME = ( IA2_ROLE_FORM + 1 ) ,
+ IA2_ROLE_GLASS_PANE = ( IA2_ROLE_FRAME + 1 ) ,
+ IA2_ROLE_HEADER = ( IA2_ROLE_GLASS_PANE + 1 ) ,
+ IA2_ROLE_HEADING = ( IA2_ROLE_HEADER + 1 ) ,
+ IA2_ROLE_ICON = ( IA2_ROLE_HEADING + 1 ) ,
+ IA2_ROLE_IMAGE_MAP = ( IA2_ROLE_ICON + 1 ) ,
+ IA2_ROLE_INPUT_METHOD_WINDOW = ( IA2_ROLE_IMAGE_MAP + 1 ) ,
+ IA2_ROLE_INTERNAL_FRAME = ( IA2_ROLE_INPUT_METHOD_WINDOW + 1 ) ,
+ IA2_ROLE_LABEL = ( IA2_ROLE_INTERNAL_FRAME + 1 ) ,
+ IA2_ROLE_LAYERED_PANE = ( IA2_ROLE_LABEL + 1 ) ,
+ IA2_ROLE_NOTE = ( IA2_ROLE_LAYERED_PANE + 1 ) ,
+ IA2_ROLE_OPTION_PANE = ( IA2_ROLE_NOTE + 1 ) ,
+ IA2_ROLE_PAGE = ( IA2_ROLE_OPTION_PANE + 1 ) ,
+ IA2_ROLE_PARAGRAPH = ( IA2_ROLE_PAGE + 1 ) ,
+ IA2_ROLE_RADIO_MENU_ITEM = ( IA2_ROLE_PARAGRAPH + 1 ) ,
+ IA2_ROLE_REDUNDANT_OBJECT = ( IA2_ROLE_RADIO_MENU_ITEM + 1 ) ,
+ IA2_ROLE_ROOT_PANE = ( IA2_ROLE_REDUNDANT_OBJECT + 1 ) ,
+ IA2_ROLE_RULER = ( IA2_ROLE_ROOT_PANE + 1 ) ,
+ IA2_ROLE_SCROLL_PANE = ( IA2_ROLE_RULER + 1 ) ,
+ IA2_ROLE_SECTION = ( IA2_ROLE_SCROLL_PANE + 1 ) ,
+ IA2_ROLE_SHAPE = ( IA2_ROLE_SECTION + 1 ) ,
+ IA2_ROLE_SPLIT_PANE = ( IA2_ROLE_SHAPE + 1 ) ,
+ IA2_ROLE_TEAR_OFF_MENU = ( IA2_ROLE_SPLIT_PANE + 1 ) ,
+ IA2_ROLE_TERMINAL = ( IA2_ROLE_TEAR_OFF_MENU + 1 ) ,
+ IA2_ROLE_TEXT_FRAME = ( IA2_ROLE_TERMINAL + 1 ) ,
+ IA2_ROLE_TOGGLE_BUTTON = ( IA2_ROLE_TEXT_FRAME + 1 ) ,
+ IA2_ROLE_VIEW_PORT = ( IA2_ROLE_TOGGLE_BUTTON + 1 ) ,
+ IA2_ROLE_COMPLEMENTARY_CONTENT = ( IA2_ROLE_VIEW_PORT + 1 )
+ } ;
+
+
+extern RPC_IF_HANDLE __MIDL_itf_AccessibleRole_0000_0000_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_AccessibleRole_0000_0000_v0_0_s_ifspec;
+
+/* Additional Prototypes for ALL interfaces */
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleStates.h b/src/3rdparty/iaccessible2/generated/amd64/AccessibleStates.h
new file mode 100644
index 0000000000..fbb6ff99b3
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleStates.h
@@ -0,0 +1,95 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:59 2012
+ */
+/* Compiler settings for AccessibleStates.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+
+#ifndef __AccessibleStates_h__
+#define __AccessibleStates_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+/* header files for imported files */
+#include "objidl.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/* interface __MIDL_itf_AccessibleStates_0000_0000 */
+/* [local] */
+
+typedef long AccessibleStates;
+
+
+enum IA2States
+ { IA2_STATE_ACTIVE = 0x1,
+ IA2_STATE_ARMED = 0x2,
+ IA2_STATE_DEFUNCT = 0x4,
+ IA2_STATE_EDITABLE = 0x8,
+ IA2_STATE_HORIZONTAL = 0x10,
+ IA2_STATE_ICONIFIED = 0x20,
+ IA2_STATE_INVALID_ENTRY = 0x40,
+ IA2_STATE_MANAGES_DESCENDANTS = 0x80,
+ IA2_STATE_MODAL = 0x100,
+ IA2_STATE_MULTI_LINE = 0x200,
+ IA2_STATE_OPAQUE = 0x400,
+ IA2_STATE_REQUIRED = 0x800,
+ IA2_STATE_SELECTABLE_TEXT = 0x1000,
+ IA2_STATE_SINGLE_LINE = 0x2000,
+ IA2_STATE_STALE = 0x4000,
+ IA2_STATE_SUPPORTS_AUTOCOMPLETION = 0x8000,
+ IA2_STATE_TRANSIENT = 0x10000,
+ IA2_STATE_VERTICAL = 0x20000,
+ IA2_STATE_CHECKABLE = 0x40000,
+ IA2_STATE_PINNED = 0x80000
+ } ;
+
+
+extern RPC_IF_HANDLE __MIDL_itf_AccessibleStates_0000_0000_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_AccessibleStates_0000_0000_v0_0_s_ifspec;
+
+/* Additional Prototypes for ALL interfaces */
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleTable.h b/src/3rdparty/iaccessible2/generated/amd64/AccessibleTable.h
new file mode 100644
index 0000000000..fb9c7478a1
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleTable.h
@@ -0,0 +1,497 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:59 2012
+ */
+/* Compiler settings for AccessibleTable.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __AccessibleTable_h__
+#define __AccessibleTable_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IAccessibleTable_FWD_DEFINED__
+#define __IAccessibleTable_FWD_DEFINED__
+typedef interface IAccessibleTable IAccessibleTable;
+#endif /* __IAccessibleTable_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "objidl.h"
+#include "oaidl.h"
+#include "oleacc.h"
+#include "Accessible2.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#ifndef __IAccessibleTable_INTERFACE_DEFINED__
+#define __IAccessibleTable_INTERFACE_DEFINED__
+
+/* interface IAccessibleTable */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleTable;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("35AD8070-C20C-4fb4-B094-F4F7275DD469")
+ IAccessibleTable : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_accessibleAt(
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ IUnknown **accessible) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_caption(
+ /* [retval][out] */ IUnknown **accessible) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_childIndex(
+ /* [in] */ long rowIndex,
+ /* [in] */ long columnIndex,
+ /* [retval][out] */ long *cellIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnDescription(
+ /* [in] */ long column,
+ /* [retval][out] */ BSTR *description) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnExtentAt(
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ long *nColumnsSpanned) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnHeader(
+ /* [out] */ IAccessibleTable **accessibleTable,
+ /* [retval][out] */ long *startingRowIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnIndex(
+ /* [in] */ long cellIndex,
+ /* [retval][out] */ long *columnIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nColumns(
+ /* [retval][out] */ long *columnCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nRows(
+ /* [retval][out] */ long *rowCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedChildren(
+ /* [retval][out] */ long *cellCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedColumns(
+ /* [retval][out] */ long *columnCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedRows(
+ /* [retval][out] */ long *rowCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowDescription(
+ /* [in] */ long row,
+ /* [retval][out] */ BSTR *description) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowExtentAt(
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ long *nRowsSpanned) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowHeader(
+ /* [out] */ IAccessibleTable **accessibleTable,
+ /* [retval][out] */ long *startingColumnIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowIndex(
+ /* [in] */ long cellIndex,
+ /* [retval][out] */ long *rowIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedChildren(
+ /* [in] */ long maxChildren,
+ /* [length_is][length_is][size_is][size_is][out] */ long **children,
+ /* [retval][out] */ long *nChildren) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedColumns(
+ /* [in] */ long maxColumns,
+ /* [length_is][length_is][size_is][size_is][out] */ long **columns,
+ /* [retval][out] */ long *nColumns) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedRows(
+ /* [in] */ long maxRows,
+ /* [length_is][length_is][size_is][size_is][out] */ long **rows,
+ /* [retval][out] */ long *nRows) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_summary(
+ /* [retval][out] */ IUnknown **accessible) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isColumnSelected(
+ /* [in] */ long column,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isRowSelected(
+ /* [in] */ long row,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isSelected(
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE selectRow(
+ /* [in] */ long row) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE selectColumn(
+ /* [in] */ long column) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE unselectRow(
+ /* [in] */ long row) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE unselectColumn(
+ /* [in] */ long column) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowColumnExtentsAtIndex(
+ /* [in] */ long index,
+ /* [out] */ long *row,
+ /* [out] */ long *column,
+ /* [out] */ long *rowExtents,
+ /* [out] */ long *columnExtents,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_modelChange(
+ /* [retval][out] */ IA2TableModelChange *modelChange) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleTableVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleTable * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleTable * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleTable * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_accessibleAt )(
+ IAccessibleTable * This,
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ IUnknown **accessible);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caption )(
+ IAccessibleTable * This,
+ /* [retval][out] */ IUnknown **accessible);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_childIndex )(
+ IAccessibleTable * This,
+ /* [in] */ long rowIndex,
+ /* [in] */ long columnIndex,
+ /* [retval][out] */ long *cellIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnDescription )(
+ IAccessibleTable * This,
+ /* [in] */ long column,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnExtentAt )(
+ IAccessibleTable * This,
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ long *nColumnsSpanned);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnHeader )(
+ IAccessibleTable * This,
+ /* [out] */ IAccessibleTable **accessibleTable,
+ /* [retval][out] */ long *startingRowIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnIndex )(
+ IAccessibleTable * This,
+ /* [in] */ long cellIndex,
+ /* [retval][out] */ long *columnIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nColumns )(
+ IAccessibleTable * This,
+ /* [retval][out] */ long *columnCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRows )(
+ IAccessibleTable * This,
+ /* [retval][out] */ long *rowCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedChildren )(
+ IAccessibleTable * This,
+ /* [retval][out] */ long *cellCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedColumns )(
+ IAccessibleTable * This,
+ /* [retval][out] */ long *columnCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedRows )(
+ IAccessibleTable * This,
+ /* [retval][out] */ long *rowCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowDescription )(
+ IAccessibleTable * This,
+ /* [in] */ long row,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowExtentAt )(
+ IAccessibleTable * This,
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ long *nRowsSpanned);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowHeader )(
+ IAccessibleTable * This,
+ /* [out] */ IAccessibleTable **accessibleTable,
+ /* [retval][out] */ long *startingColumnIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowIndex )(
+ IAccessibleTable * This,
+ /* [in] */ long cellIndex,
+ /* [retval][out] */ long *rowIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedChildren )(
+ IAccessibleTable * This,
+ /* [in] */ long maxChildren,
+ /* [length_is][length_is][size_is][size_is][out] */ long **children,
+ /* [retval][out] */ long *nChildren);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedColumns )(
+ IAccessibleTable * This,
+ /* [in] */ long maxColumns,
+ /* [length_is][length_is][size_is][size_is][out] */ long **columns,
+ /* [retval][out] */ long *nColumns);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedRows )(
+ IAccessibleTable * This,
+ /* [in] */ long maxRows,
+ /* [length_is][length_is][size_is][size_is][out] */ long **rows,
+ /* [retval][out] */ long *nRows);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_summary )(
+ IAccessibleTable * This,
+ /* [retval][out] */ IUnknown **accessible);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isColumnSelected )(
+ IAccessibleTable * This,
+ /* [in] */ long column,
+ /* [retval][out] */ boolean *isSelected);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRowSelected )(
+ IAccessibleTable * This,
+ /* [in] */ long row,
+ /* [retval][out] */ boolean *isSelected);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSelected )(
+ IAccessibleTable * This,
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ boolean *isSelected);
+
+ HRESULT ( STDMETHODCALLTYPE *selectRow )(
+ IAccessibleTable * This,
+ /* [in] */ long row);
+
+ HRESULT ( STDMETHODCALLTYPE *selectColumn )(
+ IAccessibleTable * This,
+ /* [in] */ long column);
+
+ HRESULT ( STDMETHODCALLTYPE *unselectRow )(
+ IAccessibleTable * This,
+ /* [in] */ long row);
+
+ HRESULT ( STDMETHODCALLTYPE *unselectColumn )(
+ IAccessibleTable * This,
+ /* [in] */ long column);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowColumnExtentsAtIndex )(
+ IAccessibleTable * This,
+ /* [in] */ long index,
+ /* [out] */ long *row,
+ /* [out] */ long *column,
+ /* [out] */ long *rowExtents,
+ /* [out] */ long *columnExtents,
+ /* [retval][out] */ boolean *isSelected);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_modelChange )(
+ IAccessibleTable * This,
+ /* [retval][out] */ IA2TableModelChange *modelChange);
+
+ END_INTERFACE
+ } IAccessibleTableVtbl;
+
+ interface IAccessibleTable
+ {
+ CONST_VTBL struct IAccessibleTableVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleTable_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleTable_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleTable_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleTable_get_accessibleAt(This,row,column,accessible) \
+ ( (This)->lpVtbl -> get_accessibleAt(This,row,column,accessible) )
+
+#define IAccessibleTable_get_caption(This,accessible) \
+ ( (This)->lpVtbl -> get_caption(This,accessible) )
+
+#define IAccessibleTable_get_childIndex(This,rowIndex,columnIndex,cellIndex) \
+ ( (This)->lpVtbl -> get_childIndex(This,rowIndex,columnIndex,cellIndex) )
+
+#define IAccessibleTable_get_columnDescription(This,column,description) \
+ ( (This)->lpVtbl -> get_columnDescription(This,column,description) )
+
+#define IAccessibleTable_get_columnExtentAt(This,row,column,nColumnsSpanned) \
+ ( (This)->lpVtbl -> get_columnExtentAt(This,row,column,nColumnsSpanned) )
+
+#define IAccessibleTable_get_columnHeader(This,accessibleTable,startingRowIndex) \
+ ( (This)->lpVtbl -> get_columnHeader(This,accessibleTable,startingRowIndex) )
+
+#define IAccessibleTable_get_columnIndex(This,cellIndex,columnIndex) \
+ ( (This)->lpVtbl -> get_columnIndex(This,cellIndex,columnIndex) )
+
+#define IAccessibleTable_get_nColumns(This,columnCount) \
+ ( (This)->lpVtbl -> get_nColumns(This,columnCount) )
+
+#define IAccessibleTable_get_nRows(This,rowCount) \
+ ( (This)->lpVtbl -> get_nRows(This,rowCount) )
+
+#define IAccessibleTable_get_nSelectedChildren(This,cellCount) \
+ ( (This)->lpVtbl -> get_nSelectedChildren(This,cellCount) )
+
+#define IAccessibleTable_get_nSelectedColumns(This,columnCount) \
+ ( (This)->lpVtbl -> get_nSelectedColumns(This,columnCount) )
+
+#define IAccessibleTable_get_nSelectedRows(This,rowCount) \
+ ( (This)->lpVtbl -> get_nSelectedRows(This,rowCount) )
+
+#define IAccessibleTable_get_rowDescription(This,row,description) \
+ ( (This)->lpVtbl -> get_rowDescription(This,row,description) )
+
+#define IAccessibleTable_get_rowExtentAt(This,row,column,nRowsSpanned) \
+ ( (This)->lpVtbl -> get_rowExtentAt(This,row,column,nRowsSpanned) )
+
+#define IAccessibleTable_get_rowHeader(This,accessibleTable,startingColumnIndex) \
+ ( (This)->lpVtbl -> get_rowHeader(This,accessibleTable,startingColumnIndex) )
+
+#define IAccessibleTable_get_rowIndex(This,cellIndex,rowIndex) \
+ ( (This)->lpVtbl -> get_rowIndex(This,cellIndex,rowIndex) )
+
+#define IAccessibleTable_get_selectedChildren(This,maxChildren,children,nChildren) \
+ ( (This)->lpVtbl -> get_selectedChildren(This,maxChildren,children,nChildren) )
+
+#define IAccessibleTable_get_selectedColumns(This,maxColumns,columns,nColumns) \
+ ( (This)->lpVtbl -> get_selectedColumns(This,maxColumns,columns,nColumns) )
+
+#define IAccessibleTable_get_selectedRows(This,maxRows,rows,nRows) \
+ ( (This)->lpVtbl -> get_selectedRows(This,maxRows,rows,nRows) )
+
+#define IAccessibleTable_get_summary(This,accessible) \
+ ( (This)->lpVtbl -> get_summary(This,accessible) )
+
+#define IAccessibleTable_get_isColumnSelected(This,column,isSelected) \
+ ( (This)->lpVtbl -> get_isColumnSelected(This,column,isSelected) )
+
+#define IAccessibleTable_get_isRowSelected(This,row,isSelected) \
+ ( (This)->lpVtbl -> get_isRowSelected(This,row,isSelected) )
+
+#define IAccessibleTable_get_isSelected(This,row,column,isSelected) \
+ ( (This)->lpVtbl -> get_isSelected(This,row,column,isSelected) )
+
+#define IAccessibleTable_selectRow(This,row) \
+ ( (This)->lpVtbl -> selectRow(This,row) )
+
+#define IAccessibleTable_selectColumn(This,column) \
+ ( (This)->lpVtbl -> selectColumn(This,column) )
+
+#define IAccessibleTable_unselectRow(This,row) \
+ ( (This)->lpVtbl -> unselectRow(This,row) )
+
+#define IAccessibleTable_unselectColumn(This,column) \
+ ( (This)->lpVtbl -> unselectColumn(This,column) )
+
+#define IAccessibleTable_get_rowColumnExtentsAtIndex(This,index,row,column,rowExtents,columnExtents,isSelected) \
+ ( (This)->lpVtbl -> get_rowColumnExtentsAtIndex(This,index,row,column,rowExtents,columnExtents,isSelected) )
+
+#define IAccessibleTable_get_modelChange(This,modelChange) \
+ ( (This)->lpVtbl -> get_modelChange(This,modelChange) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleTable_INTERFACE_DEFINED__ */
+
+
+/* Additional Prototypes for ALL interfaces */
+
+unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
+unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
+unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
+void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleTable2.h b/src/3rdparty/iaccessible2/generated/amd64/AccessibleTable2.h
new file mode 100644
index 0000000000..eeacb21515
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleTable2.h
@@ -0,0 +1,367 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:59 2012
+ */
+/* Compiler settings for AccessibleTable2.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __AccessibleTable2_h__
+#define __AccessibleTable2_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IAccessibleTable2_FWD_DEFINED__
+#define __IAccessibleTable2_FWD_DEFINED__
+typedef interface IAccessibleTable2 IAccessibleTable2;
+#endif /* __IAccessibleTable2_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "objidl.h"
+#include "oaidl.h"
+#include "oleacc.h"
+#include "Accessible2.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#ifndef __IAccessibleTable2_INTERFACE_DEFINED__
+#define __IAccessibleTable2_INTERFACE_DEFINED__
+
+/* interface IAccessibleTable2 */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleTable2;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("6167f295-06f0-4cdd-a1fa-02e25153d869")
+ IAccessibleTable2 : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_cellAt(
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ IUnknown **cell) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_caption(
+ /* [retval][out] */ IUnknown **accessible) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnDescription(
+ /* [in] */ long column,
+ /* [retval][out] */ BSTR *description) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nColumns(
+ /* [retval][out] */ long *columnCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nRows(
+ /* [retval][out] */ long *rowCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedCells(
+ /* [retval][out] */ long *cellCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedColumns(
+ /* [retval][out] */ long *columnCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedRows(
+ /* [retval][out] */ long *rowCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowDescription(
+ /* [in] */ long row,
+ /* [retval][out] */ BSTR *description) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedCells(
+ /* [size_is][size_is][size_is][out] */ IUnknown ***cells,
+ /* [retval][out] */ long *nSelectedCells) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedColumns(
+ /* [size_is][size_is][out] */ long **selectedColumns,
+ /* [retval][out] */ long *nColumns) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedRows(
+ /* [size_is][size_is][out] */ long **selectedRows,
+ /* [retval][out] */ long *nRows) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_summary(
+ /* [retval][out] */ IUnknown **accessible) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isColumnSelected(
+ /* [in] */ long column,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isRowSelected(
+ /* [in] */ long row,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE selectRow(
+ /* [in] */ long row) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE selectColumn(
+ /* [in] */ long column) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE unselectRow(
+ /* [in] */ long row) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE unselectColumn(
+ /* [in] */ long column) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_modelChange(
+ /* [retval][out] */ IA2TableModelChange *modelChange) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleTable2Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleTable2 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleTable2 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleTable2 * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_cellAt )(
+ IAccessibleTable2 * This,
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ IUnknown **cell);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caption )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ IUnknown **accessible);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnDescription )(
+ IAccessibleTable2 * This,
+ /* [in] */ long column,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nColumns )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ long *columnCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRows )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ long *rowCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedCells )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ long *cellCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedColumns )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ long *columnCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedRows )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ long *rowCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowDescription )(
+ IAccessibleTable2 * This,
+ /* [in] */ long row,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedCells )(
+ IAccessibleTable2 * This,
+ /* [size_is][size_is][size_is][out] */ IUnknown ***cells,
+ /* [retval][out] */ long *nSelectedCells);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedColumns )(
+ IAccessibleTable2 * This,
+ /* [size_is][size_is][out] */ long **selectedColumns,
+ /* [retval][out] */ long *nColumns);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedRows )(
+ IAccessibleTable2 * This,
+ /* [size_is][size_is][out] */ long **selectedRows,
+ /* [retval][out] */ long *nRows);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_summary )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ IUnknown **accessible);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isColumnSelected )(
+ IAccessibleTable2 * This,
+ /* [in] */ long column,
+ /* [retval][out] */ boolean *isSelected);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRowSelected )(
+ IAccessibleTable2 * This,
+ /* [in] */ long row,
+ /* [retval][out] */ boolean *isSelected);
+
+ HRESULT ( STDMETHODCALLTYPE *selectRow )(
+ IAccessibleTable2 * This,
+ /* [in] */ long row);
+
+ HRESULT ( STDMETHODCALLTYPE *selectColumn )(
+ IAccessibleTable2 * This,
+ /* [in] */ long column);
+
+ HRESULT ( STDMETHODCALLTYPE *unselectRow )(
+ IAccessibleTable2 * This,
+ /* [in] */ long row);
+
+ HRESULT ( STDMETHODCALLTYPE *unselectColumn )(
+ IAccessibleTable2 * This,
+ /* [in] */ long column);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_modelChange )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ IA2TableModelChange *modelChange);
+
+ END_INTERFACE
+ } IAccessibleTable2Vtbl;
+
+ interface IAccessibleTable2
+ {
+ CONST_VTBL struct IAccessibleTable2Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleTable2_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleTable2_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleTable2_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleTable2_get_cellAt(This,row,column,cell) \
+ ( (This)->lpVtbl -> get_cellAt(This,row,column,cell) )
+
+#define IAccessibleTable2_get_caption(This,accessible) \
+ ( (This)->lpVtbl -> get_caption(This,accessible) )
+
+#define IAccessibleTable2_get_columnDescription(This,column,description) \
+ ( (This)->lpVtbl -> get_columnDescription(This,column,description) )
+
+#define IAccessibleTable2_get_nColumns(This,columnCount) \
+ ( (This)->lpVtbl -> get_nColumns(This,columnCount) )
+
+#define IAccessibleTable2_get_nRows(This,rowCount) \
+ ( (This)->lpVtbl -> get_nRows(This,rowCount) )
+
+#define IAccessibleTable2_get_nSelectedCells(This,cellCount) \
+ ( (This)->lpVtbl -> get_nSelectedCells(This,cellCount) )
+
+#define IAccessibleTable2_get_nSelectedColumns(This,columnCount) \
+ ( (This)->lpVtbl -> get_nSelectedColumns(This,columnCount) )
+
+#define IAccessibleTable2_get_nSelectedRows(This,rowCount) \
+ ( (This)->lpVtbl -> get_nSelectedRows(This,rowCount) )
+
+#define IAccessibleTable2_get_rowDescription(This,row,description) \
+ ( (This)->lpVtbl -> get_rowDescription(This,row,description) )
+
+#define IAccessibleTable2_get_selectedCells(This,cells,nSelectedCells) \
+ ( (This)->lpVtbl -> get_selectedCells(This,cells,nSelectedCells) )
+
+#define IAccessibleTable2_get_selectedColumns(This,selectedColumns,nColumns) \
+ ( (This)->lpVtbl -> get_selectedColumns(This,selectedColumns,nColumns) )
+
+#define IAccessibleTable2_get_selectedRows(This,selectedRows,nRows) \
+ ( (This)->lpVtbl -> get_selectedRows(This,selectedRows,nRows) )
+
+#define IAccessibleTable2_get_summary(This,accessible) \
+ ( (This)->lpVtbl -> get_summary(This,accessible) )
+
+#define IAccessibleTable2_get_isColumnSelected(This,column,isSelected) \
+ ( (This)->lpVtbl -> get_isColumnSelected(This,column,isSelected) )
+
+#define IAccessibleTable2_get_isRowSelected(This,row,isSelected) \
+ ( (This)->lpVtbl -> get_isRowSelected(This,row,isSelected) )
+
+#define IAccessibleTable2_selectRow(This,row) \
+ ( (This)->lpVtbl -> selectRow(This,row) )
+
+#define IAccessibleTable2_selectColumn(This,column) \
+ ( (This)->lpVtbl -> selectColumn(This,column) )
+
+#define IAccessibleTable2_unselectRow(This,row) \
+ ( (This)->lpVtbl -> unselectRow(This,row) )
+
+#define IAccessibleTable2_unselectColumn(This,column) \
+ ( (This)->lpVtbl -> unselectColumn(This,column) )
+
+#define IAccessibleTable2_get_modelChange(This,modelChange) \
+ ( (This)->lpVtbl -> get_modelChange(This,modelChange) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleTable2_INTERFACE_DEFINED__ */
+
+
+/* Additional Prototypes for ALL interfaces */
+
+unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
+unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
+unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
+void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleTable2_i.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleTable2_i.c
new file mode 100644
index 0000000000..56e5f31fc0
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleTable2_i.c
@@ -0,0 +1,79 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:59 2012
+ */
+/* Compiler settings for AccessibleTable2.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleTable2,0x6167f295,0x06f0,0x4cdd,0xa1,0xfa,0x02,0xe2,0x51,0x53,0xd8,0x69);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleTable2_p.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleTable2_p.c
new file mode 100644
index 0000000000..02c603fde9
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleTable2_p.c
@@ -0,0 +1,1099 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:59 2012
+ */
+/* Compiler settings for AccessibleTable2.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if defined(_M_AMD64)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "AccessibleTable2.h"
+
+#define TYPE_FORMAT_STRING_SIZE 141
+#define PROC_FORMAT_STRING_SIZE 815
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 1
+
+typedef struct _AccessibleTable2_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } AccessibleTable2_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _AccessibleTable2_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } AccessibleTable2_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _AccessibleTable2_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } AccessibleTable2_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const AccessibleTable2_MIDL_TYPE_FORMAT_STRING AccessibleTable2__MIDL_TypeFormatString;
+extern const AccessibleTable2_MIDL_PROC_FORMAT_STRING AccessibleTable2__MIDL_ProcFormatString;
+extern const AccessibleTable2_MIDL_EXPR_FORMAT_STRING AccessibleTable2__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleTable2_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleTable2_ProxyInfo;
+
+
+extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
+
+#if !defined(__RPC_WIN64__)
+#error Invalid build platform for this stub.
+#endif
+
+static const AccessibleTable2_MIDL_PROC_FORMAT_STRING AccessibleTable2__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure get_cellAt */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x3 ), /* 3 */
+/* 8 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 10 */ NdrFcShort( 0x10 ), /* 16 */
+/* 12 */ NdrFcShort( 0x8 ), /* 8 */
+/* 14 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 16 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 18 */ NdrFcShort( 0x0 ), /* 0 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+/* 24 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 26 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 28 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 30 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter column */
+
+/* 32 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 34 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 36 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter cell */
+
+/* 38 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 40 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 42 */ NdrFcShort( 0x2 ), /* Type Offset=2 */
+
+ /* Return value */
+
+/* 44 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 46 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 48 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_caption */
+
+/* 50 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 52 */ NdrFcLong( 0x0 ), /* 0 */
+/* 56 */ NdrFcShort( 0x4 ), /* 4 */
+/* 58 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 60 */ NdrFcShort( 0x0 ), /* 0 */
+/* 62 */ NdrFcShort( 0x8 ), /* 8 */
+/* 64 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 66 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 68 */ NdrFcShort( 0x0 ), /* 0 */
+/* 70 */ NdrFcShort( 0x0 ), /* 0 */
+/* 72 */ NdrFcShort( 0x0 ), /* 0 */
+/* 74 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessible */
+
+/* 76 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 78 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 80 */ NdrFcShort( 0x2 ), /* Type Offset=2 */
+
+ /* Return value */
+
+/* 82 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 84 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 86 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnDescription */
+
+/* 88 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 90 */ NdrFcLong( 0x0 ), /* 0 */
+/* 94 */ NdrFcShort( 0x5 ), /* 5 */
+/* 96 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 98 */ NdrFcShort( 0x8 ), /* 8 */
+/* 100 */ NdrFcShort( 0x8 ), /* 8 */
+/* 102 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 104 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 106 */ NdrFcShort( 0x1 ), /* 1 */
+/* 108 */ NdrFcShort( 0x0 ), /* 0 */
+/* 110 */ NdrFcShort( 0x0 ), /* 0 */
+/* 112 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 114 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 116 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 118 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter description */
+
+/* 120 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 122 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 124 */ NdrFcShort( 0x36 ), /* Type Offset=54 */
+
+ /* Return value */
+
+/* 126 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 128 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 130 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nColumns */
+
+/* 132 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 134 */ NdrFcLong( 0x0 ), /* 0 */
+/* 138 */ NdrFcShort( 0x6 ), /* 6 */
+/* 140 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 142 */ NdrFcShort( 0x0 ), /* 0 */
+/* 144 */ NdrFcShort( 0x24 ), /* 36 */
+/* 146 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 148 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 150 */ NdrFcShort( 0x0 ), /* 0 */
+/* 152 */ NdrFcShort( 0x0 ), /* 0 */
+/* 154 */ NdrFcShort( 0x0 ), /* 0 */
+/* 156 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter columnCount */
+
+/* 158 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 160 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 162 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 164 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 166 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 168 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nRows */
+
+/* 170 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 172 */ NdrFcLong( 0x0 ), /* 0 */
+/* 176 */ NdrFcShort( 0x7 ), /* 7 */
+/* 178 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 180 */ NdrFcShort( 0x0 ), /* 0 */
+/* 182 */ NdrFcShort( 0x24 ), /* 36 */
+/* 184 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 186 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 188 */ NdrFcShort( 0x0 ), /* 0 */
+/* 190 */ NdrFcShort( 0x0 ), /* 0 */
+/* 192 */ NdrFcShort( 0x0 ), /* 0 */
+/* 194 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter rowCount */
+
+/* 196 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 198 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 200 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 202 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 204 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 206 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nSelectedCells */
+
+/* 208 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 210 */ NdrFcLong( 0x0 ), /* 0 */
+/* 214 */ NdrFcShort( 0x8 ), /* 8 */
+/* 216 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 218 */ NdrFcShort( 0x0 ), /* 0 */
+/* 220 */ NdrFcShort( 0x24 ), /* 36 */
+/* 222 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 224 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 226 */ NdrFcShort( 0x0 ), /* 0 */
+/* 228 */ NdrFcShort( 0x0 ), /* 0 */
+/* 230 */ NdrFcShort( 0x0 ), /* 0 */
+/* 232 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cellCount */
+
+/* 234 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 236 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 238 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 240 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 242 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 244 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nSelectedColumns */
+
+/* 246 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 248 */ NdrFcLong( 0x0 ), /* 0 */
+/* 252 */ NdrFcShort( 0x9 ), /* 9 */
+/* 254 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 256 */ NdrFcShort( 0x0 ), /* 0 */
+/* 258 */ NdrFcShort( 0x24 ), /* 36 */
+/* 260 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 262 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 264 */ NdrFcShort( 0x0 ), /* 0 */
+/* 266 */ NdrFcShort( 0x0 ), /* 0 */
+/* 268 */ NdrFcShort( 0x0 ), /* 0 */
+/* 270 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter columnCount */
+
+/* 272 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 274 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 276 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 278 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 280 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 282 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nSelectedRows */
+
+/* 284 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 286 */ NdrFcLong( 0x0 ), /* 0 */
+/* 290 */ NdrFcShort( 0xa ), /* 10 */
+/* 292 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 294 */ NdrFcShort( 0x0 ), /* 0 */
+/* 296 */ NdrFcShort( 0x24 ), /* 36 */
+/* 298 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 300 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 302 */ NdrFcShort( 0x0 ), /* 0 */
+/* 304 */ NdrFcShort( 0x0 ), /* 0 */
+/* 306 */ NdrFcShort( 0x0 ), /* 0 */
+/* 308 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter rowCount */
+
+/* 310 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 312 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 314 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 316 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 318 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 320 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowDescription */
+
+/* 322 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 324 */ NdrFcLong( 0x0 ), /* 0 */
+/* 328 */ NdrFcShort( 0xb ), /* 11 */
+/* 330 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 332 */ NdrFcShort( 0x8 ), /* 8 */
+/* 334 */ NdrFcShort( 0x8 ), /* 8 */
+/* 336 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 338 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 340 */ NdrFcShort( 0x1 ), /* 1 */
+/* 342 */ NdrFcShort( 0x0 ), /* 0 */
+/* 344 */ NdrFcShort( 0x0 ), /* 0 */
+/* 346 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 348 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 350 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 352 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter description */
+
+/* 354 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 356 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 358 */ NdrFcShort( 0x36 ), /* Type Offset=54 */
+
+ /* Return value */
+
+/* 360 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 362 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 364 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selectedCells */
+
+/* 366 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 368 */ NdrFcLong( 0x0 ), /* 0 */
+/* 372 */ NdrFcShort( 0xc ), /* 12 */
+/* 374 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 376 */ NdrFcShort( 0x0 ), /* 0 */
+/* 378 */ NdrFcShort( 0x24 ), /* 36 */
+/* 380 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 382 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 384 */ NdrFcShort( 0x1 ), /* 1 */
+/* 386 */ NdrFcShort( 0x0 ), /* 0 */
+/* 388 */ NdrFcShort( 0x0 ), /* 0 */
+/* 390 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cells */
+
+/* 392 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 394 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 396 */ NdrFcShort( 0x44 ), /* Type Offset=68 */
+
+ /* Parameter nSelectedCells */
+
+/* 398 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 400 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 402 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 404 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 406 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 408 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selectedColumns */
+
+/* 410 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 412 */ NdrFcLong( 0x0 ), /* 0 */
+/* 416 */ NdrFcShort( 0xd ), /* 13 */
+/* 418 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 420 */ NdrFcShort( 0x0 ), /* 0 */
+/* 422 */ NdrFcShort( 0x24 ), /* 36 */
+/* 424 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 426 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 428 */ NdrFcShort( 0x1 ), /* 1 */
+/* 430 */ NdrFcShort( 0x0 ), /* 0 */
+/* 432 */ NdrFcShort( 0x0 ), /* 0 */
+/* 434 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter selectedColumns */
+
+/* 436 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 438 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 440 */ NdrFcShort( 0x62 ), /* Type Offset=98 */
+
+ /* Parameter nColumns */
+
+/* 442 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 444 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 446 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 448 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 450 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 452 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selectedRows */
+
+/* 454 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 456 */ NdrFcLong( 0x0 ), /* 0 */
+/* 460 */ NdrFcShort( 0xe ), /* 14 */
+/* 462 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 464 */ NdrFcShort( 0x0 ), /* 0 */
+/* 466 */ NdrFcShort( 0x24 ), /* 36 */
+/* 468 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 470 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 472 */ NdrFcShort( 0x1 ), /* 1 */
+/* 474 */ NdrFcShort( 0x0 ), /* 0 */
+/* 476 */ NdrFcShort( 0x0 ), /* 0 */
+/* 478 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter selectedRows */
+
+/* 480 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 482 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 484 */ NdrFcShort( 0x62 ), /* Type Offset=98 */
+
+ /* Parameter nRows */
+
+/* 486 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 488 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 490 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 492 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 494 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 496 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_summary */
+
+/* 498 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 500 */ NdrFcLong( 0x0 ), /* 0 */
+/* 504 */ NdrFcShort( 0xf ), /* 15 */
+/* 506 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 508 */ NdrFcShort( 0x0 ), /* 0 */
+/* 510 */ NdrFcShort( 0x8 ), /* 8 */
+/* 512 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 514 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 516 */ NdrFcShort( 0x0 ), /* 0 */
+/* 518 */ NdrFcShort( 0x0 ), /* 0 */
+/* 520 */ NdrFcShort( 0x0 ), /* 0 */
+/* 522 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessible */
+
+/* 524 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 526 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 528 */ NdrFcShort( 0x2 ), /* Type Offset=2 */
+
+ /* Return value */
+
+/* 530 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 532 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 534 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isColumnSelected */
+
+/* 536 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 538 */ NdrFcLong( 0x0 ), /* 0 */
+/* 542 */ NdrFcShort( 0x10 ), /* 16 */
+/* 544 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 546 */ NdrFcShort( 0x8 ), /* 8 */
+/* 548 */ NdrFcShort( 0x21 ), /* 33 */
+/* 550 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 552 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 554 */ NdrFcShort( 0x0 ), /* 0 */
+/* 556 */ NdrFcShort( 0x0 ), /* 0 */
+/* 558 */ NdrFcShort( 0x0 ), /* 0 */
+/* 560 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 562 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 564 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 566 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 568 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 570 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 572 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 574 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 576 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 578 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isRowSelected */
+
+/* 580 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 582 */ NdrFcLong( 0x0 ), /* 0 */
+/* 586 */ NdrFcShort( 0x11 ), /* 17 */
+/* 588 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 590 */ NdrFcShort( 0x8 ), /* 8 */
+/* 592 */ NdrFcShort( 0x21 ), /* 33 */
+/* 594 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 596 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 598 */ NdrFcShort( 0x0 ), /* 0 */
+/* 600 */ NdrFcShort( 0x0 ), /* 0 */
+/* 602 */ NdrFcShort( 0x0 ), /* 0 */
+/* 604 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 606 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 608 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 610 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 612 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 614 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 616 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 618 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 620 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 622 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure selectRow */
+
+/* 624 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 626 */ NdrFcLong( 0x0 ), /* 0 */
+/* 630 */ NdrFcShort( 0x12 ), /* 18 */
+/* 632 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 634 */ NdrFcShort( 0x8 ), /* 8 */
+/* 636 */ NdrFcShort( 0x8 ), /* 8 */
+/* 638 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 640 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 642 */ NdrFcShort( 0x0 ), /* 0 */
+/* 644 */ NdrFcShort( 0x0 ), /* 0 */
+/* 646 */ NdrFcShort( 0x0 ), /* 0 */
+/* 648 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 650 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 652 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 654 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 656 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 658 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 660 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure selectColumn */
+
+/* 662 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 664 */ NdrFcLong( 0x0 ), /* 0 */
+/* 668 */ NdrFcShort( 0x13 ), /* 19 */
+/* 670 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 672 */ NdrFcShort( 0x8 ), /* 8 */
+/* 674 */ NdrFcShort( 0x8 ), /* 8 */
+/* 676 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 678 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 680 */ NdrFcShort( 0x0 ), /* 0 */
+/* 682 */ NdrFcShort( 0x0 ), /* 0 */
+/* 684 */ NdrFcShort( 0x0 ), /* 0 */
+/* 686 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 688 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 690 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 692 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 694 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 696 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 698 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure unselectRow */
+
+/* 700 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 702 */ NdrFcLong( 0x0 ), /* 0 */
+/* 706 */ NdrFcShort( 0x14 ), /* 20 */
+/* 708 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 710 */ NdrFcShort( 0x8 ), /* 8 */
+/* 712 */ NdrFcShort( 0x8 ), /* 8 */
+/* 714 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 716 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 718 */ NdrFcShort( 0x0 ), /* 0 */
+/* 720 */ NdrFcShort( 0x0 ), /* 0 */
+/* 722 */ NdrFcShort( 0x0 ), /* 0 */
+/* 724 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 726 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 728 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 730 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 732 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 734 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 736 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure unselectColumn */
+
+/* 738 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 740 */ NdrFcLong( 0x0 ), /* 0 */
+/* 744 */ NdrFcShort( 0x15 ), /* 21 */
+/* 746 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 748 */ NdrFcShort( 0x8 ), /* 8 */
+/* 750 */ NdrFcShort( 0x8 ), /* 8 */
+/* 752 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 754 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 756 */ NdrFcShort( 0x0 ), /* 0 */
+/* 758 */ NdrFcShort( 0x0 ), /* 0 */
+/* 760 */ NdrFcShort( 0x0 ), /* 0 */
+/* 762 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 764 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 766 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 768 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 770 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 772 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 774 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_modelChange */
+
+/* 776 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 778 */ NdrFcLong( 0x0 ), /* 0 */
+/* 782 */ NdrFcShort( 0x16 ), /* 22 */
+/* 784 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 786 */ NdrFcShort( 0x0 ), /* 0 */
+/* 788 */ NdrFcShort( 0x8 ), /* 8 */
+/* 790 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 792 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 794 */ NdrFcShort( 0x0 ), /* 0 */
+/* 796 */ NdrFcShort( 0x0 ), /* 0 */
+/* 798 */ NdrFcShort( 0x0 ), /* 0 */
+/* 800 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter modelChange */
+
+/* 802 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
+/* 804 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 806 */ NdrFcShort( 0x7e ), /* Type Offset=126 */
+
+ /* Return value */
+
+/* 808 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 810 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 812 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const AccessibleTable2_MIDL_TYPE_FORMAT_STRING AccessibleTable2__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0x10, /* FC_RP [pointer_deref] */
+/* 4 */ NdrFcShort( 0x2 ), /* Offset= 2 (6) */
+/* 6 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 8 */ NdrFcLong( 0x0 ), /* 0 */
+/* 12 */ NdrFcShort( 0x0 ), /* 0 */
+/* 14 */ NdrFcShort( 0x0 ), /* 0 */
+/* 16 */ 0xc0, /* 192 */
+ 0x0, /* 0 */
+/* 18 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 20 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 22 */ 0x0, /* 0 */
+ 0x46, /* 70 */
+/* 24 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 26 */ NdrFcShort( 0x1c ), /* Offset= 28 (54) */
+/* 28 */
+ 0x13, 0x0, /* FC_OP */
+/* 30 */ NdrFcShort( 0xe ), /* Offset= 14 (44) */
+/* 32 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 34 */ NdrFcShort( 0x2 ), /* 2 */
+/* 36 */ 0x9, /* Corr desc: FC_ULONG */
+ 0x0, /* */
+/* 38 */ NdrFcShort( 0xfffc ), /* -4 */
+/* 40 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 42 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 44 */
+ 0x17, /* FC_CSTRUCT */
+ 0x3, /* 3 */
+/* 46 */ NdrFcShort( 0x8 ), /* 8 */
+/* 48 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (32) */
+/* 50 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 52 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 54 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 56 */ NdrFcShort( 0x0 ), /* 0 */
+/* 58 */ NdrFcShort( 0x8 ), /* 8 */
+/* 60 */ NdrFcShort( 0x0 ), /* 0 */
+/* 62 */ NdrFcShort( 0xffde ), /* Offset= -34 (28) */
+/* 64 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 66 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+/* 68 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 70 */ NdrFcShort( 0x2 ), /* Offset= 2 (72) */
+/* 72 */
+ 0x13, 0x0, /* FC_OP */
+/* 74 */ NdrFcShort( 0x2 ), /* Offset= 2 (76) */
+/* 76 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 78 */ NdrFcShort( 0x0 ), /* 0 */
+/* 80 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 82 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 84 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 86 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 90 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 92 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 94 */ NdrFcShort( 0xffa8 ), /* Offset= -88 (6) */
+/* 96 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 98 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 100 */ NdrFcShort( 0x2 ), /* Offset= 2 (102) */
+/* 102 */
+ 0x13, 0x0, /* FC_OP */
+/* 104 */ NdrFcShort( 0x2 ), /* Offset= 2 (106) */
+/* 106 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 108 */ NdrFcShort( 0x4 ), /* 4 */
+/* 110 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 112 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 114 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 116 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 118 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 120 */ 0x3, /* FC_SMALL */
+ 0x5c, /* FC_PAD */
+/* 122 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 124 */ NdrFcShort( 0x2 ), /* Offset= 2 (126) */
+/* 126 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 128 */ NdrFcShort( 0x14 ), /* 20 */
+/* 130 */ NdrFcShort( 0x0 ), /* 0 */
+/* 132 */ NdrFcShort( 0x0 ), /* Offset= 0 (132) */
+/* 134 */ 0xd, /* FC_ENUM16 */
+ 0x8, /* FC_LONG */
+/* 136 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 138 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+
+ 0x0
+ }
+ };
+
+static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
+ {
+
+ {
+ BSTR_UserSize
+ ,BSTR_UserMarshal
+ ,BSTR_UserUnmarshal
+ ,BSTR_UserFree
+ }
+
+ };
+
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IAccessibleTable2, ver. 0.0,
+ GUID={0x6167f295,0x06f0,0x4cdd,{0xa1,0xfa,0x02,0xe2,0x51,0x53,0xd8,0x69}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleTable2_FormatStringOffsetTable[] =
+ {
+ 0,
+ 50,
+ 88,
+ 132,
+ 170,
+ 208,
+ 246,
+ 284,
+ 322,
+ 366,
+ 410,
+ 454,
+ 498,
+ 536,
+ 580,
+ 624,
+ 662,
+ 700,
+ 738,
+ 776
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleTable2_ProxyInfo =
+ {
+ &Object_StubDesc,
+ AccessibleTable2__MIDL_ProcFormatString.Format,
+ &IAccessibleTable2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleTable2_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ AccessibleTable2__MIDL_ProcFormatString.Format,
+ &IAccessibleTable2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(23) _IAccessibleTable2ProxyVtbl =
+{
+ &IAccessibleTable2_ProxyInfo,
+ &IID_IAccessibleTable2,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_cellAt */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_caption */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_columnDescription */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nColumns */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nRows */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nSelectedCells */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nSelectedColumns */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nSelectedRows */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_rowDescription */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_selectedCells */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_selectedColumns */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_selectedRows */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_summary */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_isColumnSelected */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_isRowSelected */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::selectRow */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::selectColumn */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::unselectRow */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::unselectColumn */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_modelChange */
+};
+
+const CInterfaceStubVtbl _IAccessibleTable2StubVtbl =
+{
+ &IID_IAccessibleTable2,
+ &IAccessibleTable2_ServerInfo,
+ 23,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ AccessibleTable2__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x700022b, /* MIDL Version 7.0.555 */
+ 0,
+ UserMarshalRoutines,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _AccessibleTable2_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_IAccessibleTable2ProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _AccessibleTable2_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_IAccessibleTable2StubVtbl,
+ 0
+};
+
+PCInterfaceName const _AccessibleTable2_InterfaceNamesList[] =
+{
+ "IAccessibleTable2",
+ 0
+};
+
+
+#define _AccessibleTable2_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleTable2, pIID, n)
+
+int __stdcall _AccessibleTable2_IID_Lookup( const IID * pIID, int * pIndex )
+{
+
+ if(!_AccessibleTable2_CHECK_IID(0))
+ {
+ *pIndex = 0;
+ return 1;
+ }
+
+ return 0;
+}
+
+const ExtendedProxyFileInfo AccessibleTable2_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _AccessibleTable2_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _AccessibleTable2_StubVtblList,
+ (const PCInterfaceName * ) & _AccessibleTable2_InterfaceNamesList,
+ 0, /* no delegation */
+ & _AccessibleTable2_IID_Lookup,
+ 1,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* defined(_M_AMD64)*/
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleTableCell.h b/src/3rdparty/iaccessible2/generated/amd64/AccessibleTableCell.h
new file mode 100644
index 0000000000..85648fcc7e
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleTableCell.h
@@ -0,0 +1,246 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:54:00 2012
+ */
+/* Compiler settings for AccessibleTableCell.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __AccessibleTableCell_h__
+#define __AccessibleTableCell_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IAccessibleTableCell_FWD_DEFINED__
+#define __IAccessibleTableCell_FWD_DEFINED__
+typedef interface IAccessibleTableCell IAccessibleTableCell;
+#endif /* __IAccessibleTableCell_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "objidl.h"
+#include "oaidl.h"
+#include "oleacc.h"
+#include "Accessible2.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#ifndef __IAccessibleTableCell_INTERFACE_DEFINED__
+#define __IAccessibleTableCell_INTERFACE_DEFINED__
+
+/* interface IAccessibleTableCell */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleTableCell;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("594116B1-C99F-4847-AD06-0A7A86ECE645")
+ IAccessibleTableCell : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnExtent(
+ /* [retval][out] */ long *nColumnsSpanned) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnHeaderCells(
+ /* [size_is][size_is][size_is][out] */ IUnknown ***cellAccessibles,
+ /* [retval][out] */ long *nColumnHeaderCells) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnIndex(
+ /* [retval][out] */ long *columnIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowExtent(
+ /* [retval][out] */ long *nRowsSpanned) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowHeaderCells(
+ /* [size_is][size_is][size_is][out] */ IUnknown ***cellAccessibles,
+ /* [retval][out] */ long *nRowHeaderCells) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowIndex(
+ /* [retval][out] */ long *rowIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isSelected(
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowColumnExtents(
+ /* [out] */ long *row,
+ /* [out] */ long *column,
+ /* [out] */ long *rowExtents,
+ /* [out] */ long *columnExtents,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_table(
+ /* [retval][out] */ IUnknown **table) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleTableCellVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleTableCell * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleTableCell * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleTableCell * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnExtent )(
+ IAccessibleTableCell * This,
+ /* [retval][out] */ long *nColumnsSpanned);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnHeaderCells )(
+ IAccessibleTableCell * This,
+ /* [size_is][size_is][size_is][out] */ IUnknown ***cellAccessibles,
+ /* [retval][out] */ long *nColumnHeaderCells);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnIndex )(
+ IAccessibleTableCell * This,
+ /* [retval][out] */ long *columnIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowExtent )(
+ IAccessibleTableCell * This,
+ /* [retval][out] */ long *nRowsSpanned);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowHeaderCells )(
+ IAccessibleTableCell * This,
+ /* [size_is][size_is][size_is][out] */ IUnknown ***cellAccessibles,
+ /* [retval][out] */ long *nRowHeaderCells);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowIndex )(
+ IAccessibleTableCell * This,
+ /* [retval][out] */ long *rowIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSelected )(
+ IAccessibleTableCell * This,
+ /* [retval][out] */ boolean *isSelected);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowColumnExtents )(
+ IAccessibleTableCell * This,
+ /* [out] */ long *row,
+ /* [out] */ long *column,
+ /* [out] */ long *rowExtents,
+ /* [out] */ long *columnExtents,
+ /* [retval][out] */ boolean *isSelected);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_table )(
+ IAccessibleTableCell * This,
+ /* [retval][out] */ IUnknown **table);
+
+ END_INTERFACE
+ } IAccessibleTableCellVtbl;
+
+ interface IAccessibleTableCell
+ {
+ CONST_VTBL struct IAccessibleTableCellVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleTableCell_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleTableCell_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleTableCell_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleTableCell_get_columnExtent(This,nColumnsSpanned) \
+ ( (This)->lpVtbl -> get_columnExtent(This,nColumnsSpanned) )
+
+#define IAccessibleTableCell_get_columnHeaderCells(This,cellAccessibles,nColumnHeaderCells) \
+ ( (This)->lpVtbl -> get_columnHeaderCells(This,cellAccessibles,nColumnHeaderCells) )
+
+#define IAccessibleTableCell_get_columnIndex(This,columnIndex) \
+ ( (This)->lpVtbl -> get_columnIndex(This,columnIndex) )
+
+#define IAccessibleTableCell_get_rowExtent(This,nRowsSpanned) \
+ ( (This)->lpVtbl -> get_rowExtent(This,nRowsSpanned) )
+
+#define IAccessibleTableCell_get_rowHeaderCells(This,cellAccessibles,nRowHeaderCells) \
+ ( (This)->lpVtbl -> get_rowHeaderCells(This,cellAccessibles,nRowHeaderCells) )
+
+#define IAccessibleTableCell_get_rowIndex(This,rowIndex) \
+ ( (This)->lpVtbl -> get_rowIndex(This,rowIndex) )
+
+#define IAccessibleTableCell_get_isSelected(This,isSelected) \
+ ( (This)->lpVtbl -> get_isSelected(This,isSelected) )
+
+#define IAccessibleTableCell_get_rowColumnExtents(This,row,column,rowExtents,columnExtents,isSelected) \
+ ( (This)->lpVtbl -> get_rowColumnExtents(This,row,column,rowExtents,columnExtents,isSelected) )
+
+#define IAccessibleTableCell_get_table(This,table) \
+ ( (This)->lpVtbl -> get_table(This,table) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleTableCell_INTERFACE_DEFINED__ */
+
+
+/* Additional Prototypes for ALL interfaces */
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleTableCell_i.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleTableCell_i.c
new file mode 100644
index 0000000000..fa94037d95
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleTableCell_i.c
@@ -0,0 +1,79 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:54:00 2012
+ */
+/* Compiler settings for AccessibleTableCell.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleTableCell,0x594116B1,0xC99F,0x4847,0xAD,0x06,0x0A,0x7A,0x86,0xEC,0xE6,0x45);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleTableCell_p.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleTableCell_p.c
new file mode 100644
index 0000000000..bf18e659b6
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleTableCell_p.c
@@ -0,0 +1,634 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:54:00 2012
+ */
+/* Compiler settings for AccessibleTableCell.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if defined(_M_AMD64)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "AccessibleTableCell.h"
+
+#define TYPE_FORMAT_STRING_SIZE 63
+#define PROC_FORMAT_STRING_SIZE 379
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 0
+
+typedef struct _AccessibleTableCell_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } AccessibleTableCell_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _AccessibleTableCell_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } AccessibleTableCell_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _AccessibleTableCell_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } AccessibleTableCell_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const AccessibleTableCell_MIDL_TYPE_FORMAT_STRING AccessibleTableCell__MIDL_TypeFormatString;
+extern const AccessibleTableCell_MIDL_PROC_FORMAT_STRING AccessibleTableCell__MIDL_ProcFormatString;
+extern const AccessibleTableCell_MIDL_EXPR_FORMAT_STRING AccessibleTableCell__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleTableCell_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleTableCell_ProxyInfo;
+
+
+
+#if !defined(__RPC_WIN64__)
+#error Invalid build platform for this stub.
+#endif
+
+static const AccessibleTableCell_MIDL_PROC_FORMAT_STRING AccessibleTableCell__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure get_columnExtent */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x3 ), /* 3 */
+/* 8 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 10 */ NdrFcShort( 0x0 ), /* 0 */
+/* 12 */ NdrFcShort( 0x24 ), /* 36 */
+/* 14 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 16 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 18 */ NdrFcShort( 0x0 ), /* 0 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+/* 24 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nColumnsSpanned */
+
+/* 26 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 28 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 30 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 32 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 34 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 36 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnHeaderCells */
+
+/* 38 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 40 */ NdrFcLong( 0x0 ), /* 0 */
+/* 44 */ NdrFcShort( 0x4 ), /* 4 */
+/* 46 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 48 */ NdrFcShort( 0x0 ), /* 0 */
+/* 50 */ NdrFcShort( 0x24 ), /* 36 */
+/* 52 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 54 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 56 */ NdrFcShort( 0x1 ), /* 1 */
+/* 58 */ NdrFcShort( 0x0 ), /* 0 */
+/* 60 */ NdrFcShort( 0x0 ), /* 0 */
+/* 62 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cellAccessibles */
+
+/* 64 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 66 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 68 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
+
+ /* Parameter nColumnHeaderCells */
+
+/* 70 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 72 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 74 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 76 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 78 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 80 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnIndex */
+
+/* 82 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 84 */ NdrFcLong( 0x0 ), /* 0 */
+/* 88 */ NdrFcShort( 0x5 ), /* 5 */
+/* 90 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 92 */ NdrFcShort( 0x0 ), /* 0 */
+/* 94 */ NdrFcShort( 0x24 ), /* 36 */
+/* 96 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 98 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 100 */ NdrFcShort( 0x0 ), /* 0 */
+/* 102 */ NdrFcShort( 0x0 ), /* 0 */
+/* 104 */ NdrFcShort( 0x0 ), /* 0 */
+/* 106 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter columnIndex */
+
+/* 108 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 110 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 112 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 114 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 116 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 118 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowExtent */
+
+/* 120 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 122 */ NdrFcLong( 0x0 ), /* 0 */
+/* 126 */ NdrFcShort( 0x6 ), /* 6 */
+/* 128 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 130 */ NdrFcShort( 0x0 ), /* 0 */
+/* 132 */ NdrFcShort( 0x24 ), /* 36 */
+/* 134 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 136 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 138 */ NdrFcShort( 0x0 ), /* 0 */
+/* 140 */ NdrFcShort( 0x0 ), /* 0 */
+/* 142 */ NdrFcShort( 0x0 ), /* 0 */
+/* 144 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nRowsSpanned */
+
+/* 146 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 148 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 150 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 152 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 154 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 156 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowHeaderCells */
+
+/* 158 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 160 */ NdrFcLong( 0x0 ), /* 0 */
+/* 164 */ NdrFcShort( 0x7 ), /* 7 */
+/* 166 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 168 */ NdrFcShort( 0x0 ), /* 0 */
+/* 170 */ NdrFcShort( 0x24 ), /* 36 */
+/* 172 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 174 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 176 */ NdrFcShort( 0x1 ), /* 1 */
+/* 178 */ NdrFcShort( 0x0 ), /* 0 */
+/* 180 */ NdrFcShort( 0x0 ), /* 0 */
+/* 182 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cellAccessibles */
+
+/* 184 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 186 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 188 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
+
+ /* Parameter nRowHeaderCells */
+
+/* 190 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 192 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 194 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 196 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 198 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 200 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowIndex */
+
+/* 202 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 204 */ NdrFcLong( 0x0 ), /* 0 */
+/* 208 */ NdrFcShort( 0x8 ), /* 8 */
+/* 210 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 212 */ NdrFcShort( 0x0 ), /* 0 */
+/* 214 */ NdrFcShort( 0x24 ), /* 36 */
+/* 216 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 218 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 220 */ NdrFcShort( 0x0 ), /* 0 */
+/* 222 */ NdrFcShort( 0x0 ), /* 0 */
+/* 224 */ NdrFcShort( 0x0 ), /* 0 */
+/* 226 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter rowIndex */
+
+/* 228 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 230 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 232 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 234 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 236 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 238 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isSelected */
+
+/* 240 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 242 */ NdrFcLong( 0x0 ), /* 0 */
+/* 246 */ NdrFcShort( 0x9 ), /* 9 */
+/* 248 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 250 */ NdrFcShort( 0x0 ), /* 0 */
+/* 252 */ NdrFcShort( 0x21 ), /* 33 */
+/* 254 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 256 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 258 */ NdrFcShort( 0x0 ), /* 0 */
+/* 260 */ NdrFcShort( 0x0 ), /* 0 */
+/* 262 */ NdrFcShort( 0x0 ), /* 0 */
+/* 264 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter isSelected */
+
+/* 266 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 268 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 270 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 272 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 274 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 276 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowColumnExtents */
+
+/* 278 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 280 */ NdrFcLong( 0x0 ), /* 0 */
+/* 284 */ NdrFcShort( 0xa ), /* 10 */
+/* 286 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
+/* 288 */ NdrFcShort( 0x0 ), /* 0 */
+/* 290 */ NdrFcShort( 0x91 ), /* 145 */
+/* 292 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x6, /* 6 */
+/* 294 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 296 */ NdrFcShort( 0x0 ), /* 0 */
+/* 298 */ NdrFcShort( 0x0 ), /* 0 */
+/* 300 */ NdrFcShort( 0x0 ), /* 0 */
+/* 302 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 304 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 306 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 308 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter column */
+
+/* 310 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 312 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 314 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter rowExtents */
+
+/* 316 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 318 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 320 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter columnExtents */
+
+/* 322 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 324 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 326 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 328 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 330 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 332 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 334 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 336 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 338 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_table */
+
+/* 340 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 342 */ NdrFcLong( 0x0 ), /* 0 */
+/* 346 */ NdrFcShort( 0xb ), /* 11 */
+/* 348 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 350 */ NdrFcShort( 0x0 ), /* 0 */
+/* 352 */ NdrFcShort( 0x8 ), /* 8 */
+/* 354 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 356 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 358 */ NdrFcShort( 0x0 ), /* 0 */
+/* 360 */ NdrFcShort( 0x0 ), /* 0 */
+/* 362 */ NdrFcShort( 0x0 ), /* 0 */
+/* 364 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter table */
+
+/* 366 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 368 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 370 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+/* 372 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 374 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 376 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const AccessibleTableCell_MIDL_TYPE_FORMAT_STRING AccessibleTableCell__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 4 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+/* 6 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 8 */ NdrFcShort( 0x2 ), /* Offset= 2 (10) */
+/* 10 */
+ 0x13, 0x0, /* FC_OP */
+/* 12 */ NdrFcShort( 0x14 ), /* Offset= 20 (32) */
+/* 14 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 16 */ NdrFcLong( 0x0 ), /* 0 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+/* 24 */ 0xc0, /* 192 */
+ 0x0, /* 0 */
+/* 26 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 28 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 30 */ 0x0, /* 0 */
+ 0x46, /* 70 */
+/* 32 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 34 */ NdrFcShort( 0x0 ), /* 0 */
+/* 36 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 38 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 40 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 42 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 46 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 48 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 50 */ NdrFcShort( 0xffdc ), /* Offset= -36 (14) */
+/* 52 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 54 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 56 */ 0x3, /* FC_SMALL */
+ 0x5c, /* FC_PAD */
+/* 58 */
+ 0x11, 0x10, /* FC_RP [pointer_deref] */
+/* 60 */ NdrFcShort( 0xffd2 ), /* Offset= -46 (14) */
+
+ 0x0
+ }
+ };
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IAccessibleTableCell, ver. 0.0,
+ GUID={0x594116B1,0xC99F,0x4847,{0xAD,0x06,0x0A,0x7A,0x86,0xEC,0xE6,0x45}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleTableCell_FormatStringOffsetTable[] =
+ {
+ 0,
+ 38,
+ 82,
+ 120,
+ 158,
+ 202,
+ 240,
+ 278,
+ 340
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleTableCell_ProxyInfo =
+ {
+ &Object_StubDesc,
+ AccessibleTableCell__MIDL_ProcFormatString.Format,
+ &IAccessibleTableCell_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleTableCell_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ AccessibleTableCell__MIDL_ProcFormatString.Format,
+ &IAccessibleTableCell_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(12) _IAccessibleTableCellProxyVtbl =
+{
+ &IAccessibleTableCell_ProxyInfo,
+ &IID_IAccessibleTableCell,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_columnExtent */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_columnHeaderCells */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_columnIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_rowExtent */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_rowHeaderCells */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_rowIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_isSelected */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_rowColumnExtents */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_table */
+};
+
+const CInterfaceStubVtbl _IAccessibleTableCellStubVtbl =
+{
+ &IID_IAccessibleTableCell,
+ &IAccessibleTableCell_ServerInfo,
+ 12,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ AccessibleTableCell__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x700022b, /* MIDL Version 7.0.555 */
+ 0,
+ 0,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _AccessibleTableCell_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_IAccessibleTableCellProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _AccessibleTableCell_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_IAccessibleTableCellStubVtbl,
+ 0
+};
+
+PCInterfaceName const _AccessibleTableCell_InterfaceNamesList[] =
+{
+ "IAccessibleTableCell",
+ 0
+};
+
+
+#define _AccessibleTableCell_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleTableCell, pIID, n)
+
+int __stdcall _AccessibleTableCell_IID_Lookup( const IID * pIID, int * pIndex )
+{
+
+ if(!_AccessibleTableCell_CHECK_IID(0))
+ {
+ *pIndex = 0;
+ return 1;
+ }
+
+ return 0;
+}
+
+const ExtendedProxyFileInfo AccessibleTableCell_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _AccessibleTableCell_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _AccessibleTableCell_StubVtblList,
+ (const PCInterfaceName * ) & _AccessibleTableCell_InterfaceNamesList,
+ 0, /* no delegation */
+ & _AccessibleTableCell_IID_Lookup,
+ 1,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* defined(_M_AMD64)*/
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleTable_i.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleTable_i.c
new file mode 100644
index 0000000000..dd4e1fe983
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleTable_i.c
@@ -0,0 +1,79 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:59 2012
+ */
+/* Compiler settings for AccessibleTable.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleTable,0x35AD8070,0xC20C,0x4fb4,0xB0,0x94,0xF4,0xF7,0x27,0x5D,0xD4,0x69);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleTable_p.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleTable_p.c
new file mode 100644
index 0000000000..cca4e376c8
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleTable_p.c
@@ -0,0 +1,1543 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:59 2012
+ */
+/* Compiler settings for AccessibleTable.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if defined(_M_AMD64)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "AccessibleTable.h"
+
+#define TYPE_FORMAT_STRING_SIZE 139
+#define PROC_FORMAT_STRING_SIZE 1277
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 1
+
+typedef struct _AccessibleTable_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } AccessibleTable_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _AccessibleTable_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } AccessibleTable_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _AccessibleTable_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } AccessibleTable_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const AccessibleTable_MIDL_TYPE_FORMAT_STRING AccessibleTable__MIDL_TypeFormatString;
+extern const AccessibleTable_MIDL_PROC_FORMAT_STRING AccessibleTable__MIDL_ProcFormatString;
+extern const AccessibleTable_MIDL_EXPR_FORMAT_STRING AccessibleTable__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleTable_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleTable_ProxyInfo;
+
+
+extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
+
+#if !defined(__RPC_WIN64__)
+#error Invalid build platform for this stub.
+#endif
+
+static const AccessibleTable_MIDL_PROC_FORMAT_STRING AccessibleTable__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure get_accessibleAt */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x3 ), /* 3 */
+/* 8 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 10 */ NdrFcShort( 0x10 ), /* 16 */
+/* 12 */ NdrFcShort( 0x8 ), /* 8 */
+/* 14 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 16 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 18 */ NdrFcShort( 0x0 ), /* 0 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+/* 24 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 26 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 28 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 30 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter column */
+
+/* 32 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 34 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 36 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter accessible */
+
+/* 38 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 40 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 42 */ NdrFcShort( 0x2 ), /* Type Offset=2 */
+
+ /* Return value */
+
+/* 44 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 46 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 48 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_caption */
+
+/* 50 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 52 */ NdrFcLong( 0x0 ), /* 0 */
+/* 56 */ NdrFcShort( 0x4 ), /* 4 */
+/* 58 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 60 */ NdrFcShort( 0x0 ), /* 0 */
+/* 62 */ NdrFcShort( 0x8 ), /* 8 */
+/* 64 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 66 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 68 */ NdrFcShort( 0x0 ), /* 0 */
+/* 70 */ NdrFcShort( 0x0 ), /* 0 */
+/* 72 */ NdrFcShort( 0x0 ), /* 0 */
+/* 74 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessible */
+
+/* 76 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 78 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 80 */ NdrFcShort( 0x2 ), /* Type Offset=2 */
+
+ /* Return value */
+
+/* 82 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 84 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 86 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_childIndex */
+
+/* 88 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 90 */ NdrFcLong( 0x0 ), /* 0 */
+/* 94 */ NdrFcShort( 0x5 ), /* 5 */
+/* 96 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 98 */ NdrFcShort( 0x10 ), /* 16 */
+/* 100 */ NdrFcShort( 0x24 ), /* 36 */
+/* 102 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 104 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 106 */ NdrFcShort( 0x0 ), /* 0 */
+/* 108 */ NdrFcShort( 0x0 ), /* 0 */
+/* 110 */ NdrFcShort( 0x0 ), /* 0 */
+/* 112 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter rowIndex */
+
+/* 114 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 116 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 118 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter columnIndex */
+
+/* 120 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 122 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 124 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter cellIndex */
+
+/* 126 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 128 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 130 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 132 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 134 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 136 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnDescription */
+
+/* 138 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 140 */ NdrFcLong( 0x0 ), /* 0 */
+/* 144 */ NdrFcShort( 0x6 ), /* 6 */
+/* 146 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 148 */ NdrFcShort( 0x8 ), /* 8 */
+/* 150 */ NdrFcShort( 0x8 ), /* 8 */
+/* 152 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 154 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 156 */ NdrFcShort( 0x1 ), /* 1 */
+/* 158 */ NdrFcShort( 0x0 ), /* 0 */
+/* 160 */ NdrFcShort( 0x0 ), /* 0 */
+/* 162 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 164 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 166 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 168 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter description */
+
+/* 170 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 172 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 174 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+/* 176 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 178 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 180 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnExtentAt */
+
+/* 182 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 184 */ NdrFcLong( 0x0 ), /* 0 */
+/* 188 */ NdrFcShort( 0x7 ), /* 7 */
+/* 190 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 192 */ NdrFcShort( 0x10 ), /* 16 */
+/* 194 */ NdrFcShort( 0x24 ), /* 36 */
+/* 196 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 198 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 200 */ NdrFcShort( 0x0 ), /* 0 */
+/* 202 */ NdrFcShort( 0x0 ), /* 0 */
+/* 204 */ NdrFcShort( 0x0 ), /* 0 */
+/* 206 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 208 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 210 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 212 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter column */
+
+/* 214 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 216 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 218 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter nColumnsSpanned */
+
+/* 220 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 222 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 224 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 226 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 228 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 230 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnHeader */
+
+/* 232 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 234 */ NdrFcLong( 0x0 ), /* 0 */
+/* 238 */ NdrFcShort( 0x8 ), /* 8 */
+/* 240 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 242 */ NdrFcShort( 0x0 ), /* 0 */
+/* 244 */ NdrFcShort( 0x24 ), /* 36 */
+/* 246 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 248 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 250 */ NdrFcShort( 0x0 ), /* 0 */
+/* 252 */ NdrFcShort( 0x0 ), /* 0 */
+/* 254 */ NdrFcShort( 0x0 ), /* 0 */
+/* 256 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessibleTable */
+
+/* 258 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 260 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 262 */ NdrFcShort( 0x44 ), /* Type Offset=68 */
+
+ /* Parameter startingRowIndex */
+
+/* 264 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 266 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 268 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 270 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 272 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 274 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnIndex */
+
+/* 276 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 278 */ NdrFcLong( 0x0 ), /* 0 */
+/* 282 */ NdrFcShort( 0x9 ), /* 9 */
+/* 284 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 286 */ NdrFcShort( 0x8 ), /* 8 */
+/* 288 */ NdrFcShort( 0x24 ), /* 36 */
+/* 290 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 292 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 294 */ NdrFcShort( 0x0 ), /* 0 */
+/* 296 */ NdrFcShort( 0x0 ), /* 0 */
+/* 298 */ NdrFcShort( 0x0 ), /* 0 */
+/* 300 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cellIndex */
+
+/* 302 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 304 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 306 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter columnIndex */
+
+/* 308 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 310 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 312 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 314 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 316 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 318 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nColumns */
+
+/* 320 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 322 */ NdrFcLong( 0x0 ), /* 0 */
+/* 326 */ NdrFcShort( 0xa ), /* 10 */
+/* 328 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 330 */ NdrFcShort( 0x0 ), /* 0 */
+/* 332 */ NdrFcShort( 0x24 ), /* 36 */
+/* 334 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 336 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 338 */ NdrFcShort( 0x0 ), /* 0 */
+/* 340 */ NdrFcShort( 0x0 ), /* 0 */
+/* 342 */ NdrFcShort( 0x0 ), /* 0 */
+/* 344 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter columnCount */
+
+/* 346 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 348 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 350 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 352 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 354 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 356 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nRows */
+
+/* 358 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 360 */ NdrFcLong( 0x0 ), /* 0 */
+/* 364 */ NdrFcShort( 0xb ), /* 11 */
+/* 366 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 368 */ NdrFcShort( 0x0 ), /* 0 */
+/* 370 */ NdrFcShort( 0x24 ), /* 36 */
+/* 372 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 374 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 376 */ NdrFcShort( 0x0 ), /* 0 */
+/* 378 */ NdrFcShort( 0x0 ), /* 0 */
+/* 380 */ NdrFcShort( 0x0 ), /* 0 */
+/* 382 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter rowCount */
+
+/* 384 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 386 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 388 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 390 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 392 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 394 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nSelectedChildren */
+
+/* 396 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 398 */ NdrFcLong( 0x0 ), /* 0 */
+/* 402 */ NdrFcShort( 0xc ), /* 12 */
+/* 404 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 406 */ NdrFcShort( 0x0 ), /* 0 */
+/* 408 */ NdrFcShort( 0x24 ), /* 36 */
+/* 410 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 412 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 414 */ NdrFcShort( 0x0 ), /* 0 */
+/* 416 */ NdrFcShort( 0x0 ), /* 0 */
+/* 418 */ NdrFcShort( 0x0 ), /* 0 */
+/* 420 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cellCount */
+
+/* 422 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 424 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 426 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 428 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 430 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 432 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nSelectedColumns */
+
+/* 434 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 436 */ NdrFcLong( 0x0 ), /* 0 */
+/* 440 */ NdrFcShort( 0xd ), /* 13 */
+/* 442 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 444 */ NdrFcShort( 0x0 ), /* 0 */
+/* 446 */ NdrFcShort( 0x24 ), /* 36 */
+/* 448 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 450 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 452 */ NdrFcShort( 0x0 ), /* 0 */
+/* 454 */ NdrFcShort( 0x0 ), /* 0 */
+/* 456 */ NdrFcShort( 0x0 ), /* 0 */
+/* 458 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter columnCount */
+
+/* 460 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 462 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 464 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 466 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 468 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 470 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nSelectedRows */
+
+/* 472 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 474 */ NdrFcLong( 0x0 ), /* 0 */
+/* 478 */ NdrFcShort( 0xe ), /* 14 */
+/* 480 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 482 */ NdrFcShort( 0x0 ), /* 0 */
+/* 484 */ NdrFcShort( 0x24 ), /* 36 */
+/* 486 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 488 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 490 */ NdrFcShort( 0x0 ), /* 0 */
+/* 492 */ NdrFcShort( 0x0 ), /* 0 */
+/* 494 */ NdrFcShort( 0x0 ), /* 0 */
+/* 496 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter rowCount */
+
+/* 498 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 500 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 502 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 504 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 506 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 508 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowDescription */
+
+/* 510 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 512 */ NdrFcLong( 0x0 ), /* 0 */
+/* 516 */ NdrFcShort( 0xf ), /* 15 */
+/* 518 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 520 */ NdrFcShort( 0x8 ), /* 8 */
+/* 522 */ NdrFcShort( 0x8 ), /* 8 */
+/* 524 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 526 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 528 */ NdrFcShort( 0x1 ), /* 1 */
+/* 530 */ NdrFcShort( 0x0 ), /* 0 */
+/* 532 */ NdrFcShort( 0x0 ), /* 0 */
+/* 534 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 536 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 538 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 540 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter description */
+
+/* 542 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 544 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 546 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+/* 548 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 550 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 552 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowExtentAt */
+
+/* 554 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 556 */ NdrFcLong( 0x0 ), /* 0 */
+/* 560 */ NdrFcShort( 0x10 ), /* 16 */
+/* 562 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 564 */ NdrFcShort( 0x10 ), /* 16 */
+/* 566 */ NdrFcShort( 0x24 ), /* 36 */
+/* 568 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 570 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 572 */ NdrFcShort( 0x0 ), /* 0 */
+/* 574 */ NdrFcShort( 0x0 ), /* 0 */
+/* 576 */ NdrFcShort( 0x0 ), /* 0 */
+/* 578 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 580 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 582 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 584 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter column */
+
+/* 586 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 588 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 590 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter nRowsSpanned */
+
+/* 592 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 594 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 596 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 598 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 600 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 602 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowHeader */
+
+/* 604 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 606 */ NdrFcLong( 0x0 ), /* 0 */
+/* 610 */ NdrFcShort( 0x11 ), /* 17 */
+/* 612 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 614 */ NdrFcShort( 0x0 ), /* 0 */
+/* 616 */ NdrFcShort( 0x24 ), /* 36 */
+/* 618 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 620 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 622 */ NdrFcShort( 0x0 ), /* 0 */
+/* 624 */ NdrFcShort( 0x0 ), /* 0 */
+/* 626 */ NdrFcShort( 0x0 ), /* 0 */
+/* 628 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessibleTable */
+
+/* 630 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 632 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 634 */ NdrFcShort( 0x44 ), /* Type Offset=68 */
+
+ /* Parameter startingColumnIndex */
+
+/* 636 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 638 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 640 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 642 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 644 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 646 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowIndex */
+
+/* 648 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 650 */ NdrFcLong( 0x0 ), /* 0 */
+/* 654 */ NdrFcShort( 0x12 ), /* 18 */
+/* 656 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 658 */ NdrFcShort( 0x8 ), /* 8 */
+/* 660 */ NdrFcShort( 0x24 ), /* 36 */
+/* 662 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 664 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 666 */ NdrFcShort( 0x0 ), /* 0 */
+/* 668 */ NdrFcShort( 0x0 ), /* 0 */
+/* 670 */ NdrFcShort( 0x0 ), /* 0 */
+/* 672 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cellIndex */
+
+/* 674 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 676 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 678 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter rowIndex */
+
+/* 680 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 682 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 684 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 686 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 688 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 690 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selectedChildren */
+
+/* 692 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 694 */ NdrFcLong( 0x0 ), /* 0 */
+/* 698 */ NdrFcShort( 0x13 ), /* 19 */
+/* 700 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 702 */ NdrFcShort( 0x8 ), /* 8 */
+/* 704 */ NdrFcShort( 0x24 ), /* 36 */
+/* 706 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 708 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 710 */ NdrFcShort( 0x1 ), /* 1 */
+/* 712 */ NdrFcShort( 0x0 ), /* 0 */
+/* 714 */ NdrFcShort( 0x0 ), /* 0 */
+/* 716 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxChildren */
+
+/* 718 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 720 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 722 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter children */
+
+/* 724 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 726 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 728 */ NdrFcShort( 0x5a ), /* Type Offset=90 */
+
+ /* Parameter nChildren */
+
+/* 730 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 732 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 734 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 736 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 738 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 740 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selectedColumns */
+
+/* 742 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 744 */ NdrFcLong( 0x0 ), /* 0 */
+/* 748 */ NdrFcShort( 0x14 ), /* 20 */
+/* 750 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 752 */ NdrFcShort( 0x8 ), /* 8 */
+/* 754 */ NdrFcShort( 0x24 ), /* 36 */
+/* 756 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 758 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 760 */ NdrFcShort( 0x1 ), /* 1 */
+/* 762 */ NdrFcShort( 0x0 ), /* 0 */
+/* 764 */ NdrFcShort( 0x0 ), /* 0 */
+/* 766 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxColumns */
+
+/* 768 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 770 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 772 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter columns */
+
+/* 774 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 776 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 778 */ NdrFcShort( 0x5a ), /* Type Offset=90 */
+
+ /* Parameter nColumns */
+
+/* 780 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 782 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 784 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 786 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 788 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 790 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selectedRows */
+
+/* 792 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 794 */ NdrFcLong( 0x0 ), /* 0 */
+/* 798 */ NdrFcShort( 0x15 ), /* 21 */
+/* 800 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 802 */ NdrFcShort( 0x8 ), /* 8 */
+/* 804 */ NdrFcShort( 0x24 ), /* 36 */
+/* 806 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 808 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 810 */ NdrFcShort( 0x1 ), /* 1 */
+/* 812 */ NdrFcShort( 0x0 ), /* 0 */
+/* 814 */ NdrFcShort( 0x0 ), /* 0 */
+/* 816 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxRows */
+
+/* 818 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 820 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 822 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter rows */
+
+/* 824 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 826 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 828 */ NdrFcShort( 0x5a ), /* Type Offset=90 */
+
+ /* Parameter nRows */
+
+/* 830 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 832 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 834 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 836 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 838 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 840 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_summary */
+
+/* 842 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 844 */ NdrFcLong( 0x0 ), /* 0 */
+/* 848 */ NdrFcShort( 0x16 ), /* 22 */
+/* 850 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 852 */ NdrFcShort( 0x0 ), /* 0 */
+/* 854 */ NdrFcShort( 0x8 ), /* 8 */
+/* 856 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 858 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 860 */ NdrFcShort( 0x0 ), /* 0 */
+/* 862 */ NdrFcShort( 0x0 ), /* 0 */
+/* 864 */ NdrFcShort( 0x0 ), /* 0 */
+/* 866 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessible */
+
+/* 868 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 870 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 872 */ NdrFcShort( 0x2 ), /* Type Offset=2 */
+
+ /* Return value */
+
+/* 874 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 876 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 878 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isColumnSelected */
+
+/* 880 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 882 */ NdrFcLong( 0x0 ), /* 0 */
+/* 886 */ NdrFcShort( 0x17 ), /* 23 */
+/* 888 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 890 */ NdrFcShort( 0x8 ), /* 8 */
+/* 892 */ NdrFcShort( 0x21 ), /* 33 */
+/* 894 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 896 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 898 */ NdrFcShort( 0x0 ), /* 0 */
+/* 900 */ NdrFcShort( 0x0 ), /* 0 */
+/* 902 */ NdrFcShort( 0x0 ), /* 0 */
+/* 904 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 906 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 908 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 910 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 912 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 914 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 916 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 918 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 920 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 922 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isRowSelected */
+
+/* 924 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 926 */ NdrFcLong( 0x0 ), /* 0 */
+/* 930 */ NdrFcShort( 0x18 ), /* 24 */
+/* 932 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 934 */ NdrFcShort( 0x8 ), /* 8 */
+/* 936 */ NdrFcShort( 0x21 ), /* 33 */
+/* 938 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 940 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 942 */ NdrFcShort( 0x0 ), /* 0 */
+/* 944 */ NdrFcShort( 0x0 ), /* 0 */
+/* 946 */ NdrFcShort( 0x0 ), /* 0 */
+/* 948 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 950 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 952 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 954 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 956 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 958 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 960 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 962 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 964 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 966 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isSelected */
+
+/* 968 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 970 */ NdrFcLong( 0x0 ), /* 0 */
+/* 974 */ NdrFcShort( 0x19 ), /* 25 */
+/* 976 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 978 */ NdrFcShort( 0x10 ), /* 16 */
+/* 980 */ NdrFcShort( 0x21 ), /* 33 */
+/* 982 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 984 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 986 */ NdrFcShort( 0x0 ), /* 0 */
+/* 988 */ NdrFcShort( 0x0 ), /* 0 */
+/* 990 */ NdrFcShort( 0x0 ), /* 0 */
+/* 992 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 994 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 996 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 998 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter column */
+
+/* 1000 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1002 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1004 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 1006 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1008 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1010 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1012 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1014 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 1016 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure selectRow */
+
+/* 1018 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1020 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1024 */ NdrFcShort( 0x1a ), /* 26 */
+/* 1026 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1028 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1030 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1032 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 1034 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1036 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1038 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1040 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1042 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 1044 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1046 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1048 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1050 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1052 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1054 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure selectColumn */
+
+/* 1056 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1058 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1062 */ NdrFcShort( 0x1b ), /* 27 */
+/* 1064 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1066 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1068 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1070 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 1072 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1074 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1076 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1078 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1080 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 1082 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1084 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1086 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1088 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1090 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1092 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure unselectRow */
+
+/* 1094 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1096 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1100 */ NdrFcShort( 0x1c ), /* 28 */
+/* 1102 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1104 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1106 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1108 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 1110 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1112 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1114 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1116 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1118 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 1120 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1122 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1124 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1126 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1128 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1130 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure unselectColumn */
+
+/* 1132 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1134 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1138 */ NdrFcShort( 0x1d ), /* 29 */
+/* 1140 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1142 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1144 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1146 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 1148 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1150 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1152 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1154 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1156 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 1158 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1160 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1162 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1164 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1166 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1168 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowColumnExtentsAtIndex */
+
+/* 1170 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1172 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1176 */ NdrFcShort( 0x1e ), /* 30 */
+/* 1178 */ NdrFcShort( 0x40 ), /* X64 Stack size/offset = 64 */
+/* 1180 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1182 */ NdrFcShort( 0x91 ), /* 145 */
+/* 1184 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x7, /* 7 */
+/* 1186 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1188 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1190 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1192 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1194 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter index */
+
+/* 1196 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1198 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1200 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter row */
+
+/* 1202 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1204 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1206 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter column */
+
+/* 1208 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1210 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1212 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter rowExtents */
+
+/* 1214 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1216 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 1218 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter columnExtents */
+
+/* 1220 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1222 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 1224 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 1226 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1228 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 1230 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1232 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1234 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
+/* 1236 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_modelChange */
+
+/* 1238 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1240 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1244 */ NdrFcShort( 0x1f ), /* 31 */
+/* 1246 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1248 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1250 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1252 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1254 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1256 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1258 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1260 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1262 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter modelChange */
+
+/* 1264 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
+/* 1266 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1268 */ NdrFcShort( 0x7c ), /* Type Offset=124 */
+
+ /* Return value */
+
+/* 1270 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1272 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1274 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const AccessibleTable_MIDL_TYPE_FORMAT_STRING AccessibleTable__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0x10, /* FC_RP [pointer_deref] */
+/* 4 */ NdrFcShort( 0x2 ), /* Offset= 2 (6) */
+/* 6 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 8 */ NdrFcLong( 0x0 ), /* 0 */
+/* 12 */ NdrFcShort( 0x0 ), /* 0 */
+/* 14 */ NdrFcShort( 0x0 ), /* 0 */
+/* 16 */ 0xc0, /* 192 */
+ 0x0, /* 0 */
+/* 18 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 20 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 22 */ 0x0, /* 0 */
+ 0x46, /* 70 */
+/* 24 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 26 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+/* 28 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 30 */ NdrFcShort( 0x1c ), /* Offset= 28 (58) */
+/* 32 */
+ 0x13, 0x0, /* FC_OP */
+/* 34 */ NdrFcShort( 0xe ), /* Offset= 14 (48) */
+/* 36 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 38 */ NdrFcShort( 0x2 ), /* 2 */
+/* 40 */ 0x9, /* Corr desc: FC_ULONG */
+ 0x0, /* */
+/* 42 */ NdrFcShort( 0xfffc ), /* -4 */
+/* 44 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 46 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 48 */
+ 0x17, /* FC_CSTRUCT */
+ 0x3, /* 3 */
+/* 50 */ NdrFcShort( 0x8 ), /* 8 */
+/* 52 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (36) */
+/* 54 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 56 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 58 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 60 */ NdrFcShort( 0x0 ), /* 0 */
+/* 62 */ NdrFcShort( 0x8 ), /* 8 */
+/* 64 */ NdrFcShort( 0x0 ), /* 0 */
+/* 66 */ NdrFcShort( 0xffde ), /* Offset= -34 (32) */
+/* 68 */
+ 0x11, 0x10, /* FC_RP [pointer_deref] */
+/* 70 */ NdrFcShort( 0x2 ), /* Offset= 2 (72) */
+/* 72 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 74 */ NdrFcLong( 0x35ad8070 ), /* 900563056 */
+/* 78 */ NdrFcShort( 0xc20c ), /* -15860 */
+/* 80 */ NdrFcShort( 0x4fb4 ), /* 20404 */
+/* 82 */ 0xb0, /* 176 */
+ 0x94, /* 148 */
+/* 84 */ 0xf4, /* 244 */
+ 0xf7, /* 247 */
+/* 86 */ 0x27, /* 39 */
+ 0x5d, /* 93 */
+/* 88 */ 0xd4, /* 212 */
+ 0x69, /* 105 */
+/* 90 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 92 */ NdrFcShort( 0x2 ), /* Offset= 2 (94) */
+/* 94 */
+ 0x13, 0x0, /* FC_OP */
+/* 96 */ NdrFcShort( 0x2 ), /* Offset= 2 (98) */
+/* 98 */
+ 0x1c, /* FC_CVARRAY */
+ 0x3, /* 3 */
+/* 100 */ NdrFcShort( 0x4 ), /* 4 */
+/* 102 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x0, /* */
+/* 104 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 106 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 108 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 110 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 112 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 114 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 116 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 118 */ 0x3, /* FC_SMALL */
+ 0x5c, /* FC_PAD */
+/* 120 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 122 */ NdrFcShort( 0x2 ), /* Offset= 2 (124) */
+/* 124 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 126 */ NdrFcShort( 0x14 ), /* 20 */
+/* 128 */ NdrFcShort( 0x0 ), /* 0 */
+/* 130 */ NdrFcShort( 0x0 ), /* Offset= 0 (130) */
+/* 132 */ 0xd, /* FC_ENUM16 */
+ 0x8, /* FC_LONG */
+/* 134 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 136 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+
+ 0x0
+ }
+ };
+
+static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
+ {
+
+ {
+ BSTR_UserSize
+ ,BSTR_UserMarshal
+ ,BSTR_UserUnmarshal
+ ,BSTR_UserFree
+ }
+
+ };
+
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IAccessibleTable, ver. 0.0,
+ GUID={0x35AD8070,0xC20C,0x4fb4,{0xB0,0x94,0xF4,0xF7,0x27,0x5D,0xD4,0x69}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleTable_FormatStringOffsetTable[] =
+ {
+ 0,
+ 50,
+ 88,
+ 138,
+ 182,
+ 232,
+ 276,
+ 320,
+ 358,
+ 396,
+ 434,
+ 472,
+ 510,
+ 554,
+ 604,
+ 648,
+ 692,
+ 742,
+ 792,
+ 842,
+ 880,
+ 924,
+ 968,
+ 1018,
+ 1056,
+ 1094,
+ 1132,
+ 1170,
+ 1238
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleTable_ProxyInfo =
+ {
+ &Object_StubDesc,
+ AccessibleTable__MIDL_ProcFormatString.Format,
+ &IAccessibleTable_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleTable_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ AccessibleTable__MIDL_ProcFormatString.Format,
+ &IAccessibleTable_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(32) _IAccessibleTableProxyVtbl =
+{
+ &IAccessibleTable_ProxyInfo,
+ &IID_IAccessibleTable,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_accessibleAt */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_caption */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_childIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_columnDescription */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_columnExtentAt */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_columnHeader */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_columnIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_nColumns */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_nRows */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_nSelectedChildren */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_nSelectedColumns */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_nSelectedRows */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowDescription */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowExtentAt */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowHeader */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_selectedChildren */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_selectedColumns */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_selectedRows */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_summary */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_isColumnSelected */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_isRowSelected */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_isSelected */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::selectRow */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::selectColumn */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::unselectRow */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::unselectColumn */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowColumnExtentsAtIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_modelChange */
+};
+
+const CInterfaceStubVtbl _IAccessibleTableStubVtbl =
+{
+ &IID_IAccessibleTable,
+ &IAccessibleTable_ServerInfo,
+ 32,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ AccessibleTable__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x700022b, /* MIDL Version 7.0.555 */
+ 0,
+ UserMarshalRoutines,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _AccessibleTable_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_IAccessibleTableProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _AccessibleTable_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_IAccessibleTableStubVtbl,
+ 0
+};
+
+PCInterfaceName const _AccessibleTable_InterfaceNamesList[] =
+{
+ "IAccessibleTable",
+ 0
+};
+
+
+#define _AccessibleTable_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleTable, pIID, n)
+
+int __stdcall _AccessibleTable_IID_Lookup( const IID * pIID, int * pIndex )
+{
+
+ if(!_AccessibleTable_CHECK_IID(0))
+ {
+ *pIndex = 0;
+ return 1;
+ }
+
+ return 0;
+}
+
+const ExtendedProxyFileInfo AccessibleTable_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _AccessibleTable_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _AccessibleTable_StubVtblList,
+ (const PCInterfaceName * ) & _AccessibleTable_InterfaceNamesList,
+ 0, /* no delegation */
+ & _AccessibleTable_IID_Lookup,
+ 1,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* defined(_M_AMD64)*/
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleText.h b/src/3rdparty/iaccessible2/generated/amd64/AccessibleText.h
new file mode 100644
index 0000000000..9b9119629d
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleText.h
@@ -0,0 +1,435 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:54:00 2012
+ */
+/* Compiler settings for AccessibleText.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __AccessibleText_h__
+#define __AccessibleText_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IAccessibleText_FWD_DEFINED__
+#define __IAccessibleText_FWD_DEFINED__
+typedef interface IAccessibleText IAccessibleText;
+#endif /* __IAccessibleText_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "objidl.h"
+#include "oaidl.h"
+#include "oleacc.h"
+#include "IA2CommonTypes.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/* interface __MIDL_itf_AccessibleText_0000_0000 */
+/* [local] */
+
+typedef struct IA2TextSegment
+ {
+ BSTR text;
+ long start;
+ long end;
+ } IA2TextSegment;
+
+
+enum IA2TextBoundaryType
+ { IA2_TEXT_BOUNDARY_CHAR = 0,
+ IA2_TEXT_BOUNDARY_WORD = ( IA2_TEXT_BOUNDARY_CHAR + 1 ) ,
+ IA2_TEXT_BOUNDARY_SENTENCE = ( IA2_TEXT_BOUNDARY_WORD + 1 ) ,
+ IA2_TEXT_BOUNDARY_PARAGRAPH = ( IA2_TEXT_BOUNDARY_SENTENCE + 1 ) ,
+ IA2_TEXT_BOUNDARY_LINE = ( IA2_TEXT_BOUNDARY_PARAGRAPH + 1 ) ,
+ IA2_TEXT_BOUNDARY_ALL = ( IA2_TEXT_BOUNDARY_LINE + 1 )
+ } ;
+
+
+extern RPC_IF_HANDLE __MIDL_itf_AccessibleText_0000_0000_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_AccessibleText_0000_0000_v0_0_s_ifspec;
+
+#ifndef __IAccessibleText_INTERFACE_DEFINED__
+#define __IAccessibleText_INTERFACE_DEFINED__
+
+/* interface IAccessibleText */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleText;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("24FD2FFB-3AAD-4a08-8335-A3AD89C0FB4B")
+ IAccessibleText : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE addSelection(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_attributes(
+ /* [in] */ long offset,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *textAttributes) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_caretOffset(
+ /* [retval][out] */ long *offset) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_characterExtents(
+ /* [in] */ long offset,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [out] */ long *x,
+ /* [out] */ long *y,
+ /* [out] */ long *width,
+ /* [retval][out] */ long *height) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelections(
+ /* [retval][out] */ long *nSelections) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_offsetAtPoint(
+ /* [in] */ long x,
+ /* [in] */ long y,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [retval][out] */ long *offset) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selection(
+ /* [in] */ long selectionIndex,
+ /* [out] */ long *startOffset,
+ /* [retval][out] */ long *endOffset) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_text(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [retval][out] */ BSTR *text) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_textBeforeOffset(
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_textAfterOffset(
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_textAtOffset(
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE removeSelection(
+ /* [in] */ long selectionIndex) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE setCaretOffset(
+ /* [in] */ long offset) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE setSelection(
+ /* [in] */ long selectionIndex,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nCharacters(
+ /* [retval][out] */ long *nCharacters) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE scrollSubstringTo(
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2ScrollType scrollType) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE scrollSubstringToPoint(
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_newText(
+ /* [retval][out] */ IA2TextSegment *newText) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_oldText(
+ /* [retval][out] */ IA2TextSegment *oldText) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleTextVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleText * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleText * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleText * This);
+
+ HRESULT ( STDMETHODCALLTYPE *addSelection )(
+ IAccessibleText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )(
+ IAccessibleText * This,
+ /* [in] */ long offset,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *textAttributes);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )(
+ IAccessibleText * This,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )(
+ IAccessibleText * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [out] */ long *x,
+ /* [out] */ long *y,
+ /* [out] */ long *width,
+ /* [retval][out] */ long *height);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )(
+ IAccessibleText * This,
+ /* [retval][out] */ long *nSelections);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )(
+ IAccessibleText * This,
+ /* [in] */ long x,
+ /* [in] */ long y,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )(
+ IAccessibleText * This,
+ /* [in] */ long selectionIndex,
+ /* [out] */ long *startOffset,
+ /* [retval][out] */ long *endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )(
+ IAccessibleText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )(
+ IAccessibleText * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )(
+ IAccessibleText * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )(
+ IAccessibleText * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ HRESULT ( STDMETHODCALLTYPE *removeSelection )(
+ IAccessibleText * This,
+ /* [in] */ long selectionIndex);
+
+ HRESULT ( STDMETHODCALLTYPE *setCaretOffset )(
+ IAccessibleText * This,
+ /* [in] */ long offset);
+
+ HRESULT ( STDMETHODCALLTYPE *setSelection )(
+ IAccessibleText * This,
+ /* [in] */ long selectionIndex,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )(
+ IAccessibleText * This,
+ /* [retval][out] */ long *nCharacters);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )(
+ IAccessibleText * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2ScrollType scrollType);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )(
+ IAccessibleText * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )(
+ IAccessibleText * This,
+ /* [retval][out] */ IA2TextSegment *newText);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )(
+ IAccessibleText * This,
+ /* [retval][out] */ IA2TextSegment *oldText);
+
+ END_INTERFACE
+ } IAccessibleTextVtbl;
+
+ interface IAccessibleText
+ {
+ CONST_VTBL struct IAccessibleTextVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleText_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleText_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleText_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleText_addSelection(This,startOffset,endOffset) \
+ ( (This)->lpVtbl -> addSelection(This,startOffset,endOffset) )
+
+#define IAccessibleText_get_attributes(This,offset,startOffset,endOffset,textAttributes) \
+ ( (This)->lpVtbl -> get_attributes(This,offset,startOffset,endOffset,textAttributes) )
+
+#define IAccessibleText_get_caretOffset(This,offset) \
+ ( (This)->lpVtbl -> get_caretOffset(This,offset) )
+
+#define IAccessibleText_get_characterExtents(This,offset,coordType,x,y,width,height) \
+ ( (This)->lpVtbl -> get_characterExtents(This,offset,coordType,x,y,width,height) )
+
+#define IAccessibleText_get_nSelections(This,nSelections) \
+ ( (This)->lpVtbl -> get_nSelections(This,nSelections) )
+
+#define IAccessibleText_get_offsetAtPoint(This,x,y,coordType,offset) \
+ ( (This)->lpVtbl -> get_offsetAtPoint(This,x,y,coordType,offset) )
+
+#define IAccessibleText_get_selection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> get_selection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleText_get_text(This,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_text(This,startOffset,endOffset,text) )
+
+#define IAccessibleText_get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleText_get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleText_get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleText_removeSelection(This,selectionIndex) \
+ ( (This)->lpVtbl -> removeSelection(This,selectionIndex) )
+
+#define IAccessibleText_setCaretOffset(This,offset) \
+ ( (This)->lpVtbl -> setCaretOffset(This,offset) )
+
+#define IAccessibleText_setSelection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> setSelection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleText_get_nCharacters(This,nCharacters) \
+ ( (This)->lpVtbl -> get_nCharacters(This,nCharacters) )
+
+#define IAccessibleText_scrollSubstringTo(This,startIndex,endIndex,scrollType) \
+ ( (This)->lpVtbl -> scrollSubstringTo(This,startIndex,endIndex,scrollType) )
+
+#define IAccessibleText_scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) \
+ ( (This)->lpVtbl -> scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) )
+
+#define IAccessibleText_get_newText(This,newText) \
+ ( (This)->lpVtbl -> get_newText(This,newText) )
+
+#define IAccessibleText_get_oldText(This,oldText) \
+ ( (This)->lpVtbl -> get_oldText(This,oldText) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleText_INTERFACE_DEFINED__ */
+
+
+/* Additional Prototypes for ALL interfaces */
+
+unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
+unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
+unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
+void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleText_i.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleText_i.c
new file mode 100644
index 0000000000..564c790b78
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleText_i.c
@@ -0,0 +1,79 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:54:00 2012
+ */
+/* Compiler settings for AccessibleText.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleText,0x24FD2FFB,0x3AAD,0x4a08,0x83,0x35,0xA3,0xAD,0x89,0xC0,0xFB,0x4B);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleText_p.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleText_p.c
new file mode 100644
index 0000000000..b2512f74ef
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleText_p.c
@@ -0,0 +1,1203 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:54:00 2012
+ */
+/* Compiler settings for AccessibleText.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if defined(_M_AMD64)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "AccessibleText.h"
+
+#define TYPE_FORMAT_STRING_SIZE 67
+#define PROC_FORMAT_STRING_SIZE 939
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 1
+
+typedef struct _AccessibleText_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } AccessibleText_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _AccessibleText_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } AccessibleText_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _AccessibleText_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } AccessibleText_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const AccessibleText_MIDL_TYPE_FORMAT_STRING AccessibleText__MIDL_TypeFormatString;
+extern const AccessibleText_MIDL_PROC_FORMAT_STRING AccessibleText__MIDL_ProcFormatString;
+extern const AccessibleText_MIDL_EXPR_FORMAT_STRING AccessibleText__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleText_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleText_ProxyInfo;
+
+
+extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
+
+#if !defined(__RPC_WIN64__)
+#error Invalid build platform for this stub.
+#endif
+
+static const AccessibleText_MIDL_PROC_FORMAT_STRING AccessibleText__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure addSelection */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x3 ), /* 3 */
+/* 8 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 10 */ NdrFcShort( 0x10 ), /* 16 */
+/* 12 */ NdrFcShort( 0x8 ), /* 8 */
+/* 14 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 16 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 18 */ NdrFcShort( 0x0 ), /* 0 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+/* 24 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startOffset */
+
+/* 26 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 28 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 30 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 32 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 34 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 36 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 38 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 40 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 42 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_attributes */
+
+/* 44 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 46 */ NdrFcLong( 0x0 ), /* 0 */
+/* 50 */ NdrFcShort( 0x4 ), /* 4 */
+/* 52 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 54 */ NdrFcShort( 0x8 ), /* 8 */
+/* 56 */ NdrFcShort( 0x40 ), /* 64 */
+/* 58 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x5, /* 5 */
+/* 60 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 62 */ NdrFcShort( 0x1 ), /* 1 */
+/* 64 */ NdrFcShort( 0x0 ), /* 0 */
+/* 66 */ NdrFcShort( 0x0 ), /* 0 */
+/* 68 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 70 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 72 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 74 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter startOffset */
+
+/* 76 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 78 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 80 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 82 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 84 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 86 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter textAttributes */
+
+/* 88 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 90 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 92 */ NdrFcShort( 0x24 ), /* Type Offset=36 */
+
+ /* Return value */
+
+/* 94 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 96 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 98 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_caretOffset */
+
+/* 100 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 102 */ NdrFcLong( 0x0 ), /* 0 */
+/* 106 */ NdrFcShort( 0x5 ), /* 5 */
+/* 108 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 110 */ NdrFcShort( 0x0 ), /* 0 */
+/* 112 */ NdrFcShort( 0x24 ), /* 36 */
+/* 114 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 116 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 118 */ NdrFcShort( 0x0 ), /* 0 */
+/* 120 */ NdrFcShort( 0x0 ), /* 0 */
+/* 122 */ NdrFcShort( 0x0 ), /* 0 */
+/* 124 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 126 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 128 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 130 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 132 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 134 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 136 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_characterExtents */
+
+/* 138 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 140 */ NdrFcLong( 0x0 ), /* 0 */
+/* 144 */ NdrFcShort( 0x6 ), /* 6 */
+/* 146 */ NdrFcShort( 0x40 ), /* X64 Stack size/offset = 64 */
+/* 148 */ NdrFcShort( 0xe ), /* 14 */
+/* 150 */ NdrFcShort( 0x78 ), /* 120 */
+/* 152 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x7, /* 7 */
+/* 154 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 156 */ NdrFcShort( 0x0 ), /* 0 */
+/* 158 */ NdrFcShort( 0x0 ), /* 0 */
+/* 160 */ NdrFcShort( 0x0 ), /* 0 */
+/* 162 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 164 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 166 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 168 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter coordType */
+
+/* 170 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 172 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 174 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter x */
+
+/* 176 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 178 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 180 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 182 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 184 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 186 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter width */
+
+/* 188 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 190 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 192 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter height */
+
+/* 194 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 196 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 198 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 200 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 202 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
+/* 204 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nSelections */
+
+/* 206 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 208 */ NdrFcLong( 0x0 ), /* 0 */
+/* 212 */ NdrFcShort( 0x7 ), /* 7 */
+/* 214 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 216 */ NdrFcShort( 0x0 ), /* 0 */
+/* 218 */ NdrFcShort( 0x24 ), /* 36 */
+/* 220 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 222 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 224 */ NdrFcShort( 0x0 ), /* 0 */
+/* 226 */ NdrFcShort( 0x0 ), /* 0 */
+/* 228 */ NdrFcShort( 0x0 ), /* 0 */
+/* 230 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nSelections */
+
+/* 232 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 234 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 236 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 238 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 240 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 242 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_offsetAtPoint */
+
+/* 244 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 246 */ NdrFcLong( 0x0 ), /* 0 */
+/* 250 */ NdrFcShort( 0x8 ), /* 8 */
+/* 252 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 254 */ NdrFcShort( 0x16 ), /* 22 */
+/* 256 */ NdrFcShort( 0x24 ), /* 36 */
+/* 258 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x5, /* 5 */
+/* 260 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 262 */ NdrFcShort( 0x0 ), /* 0 */
+/* 264 */ NdrFcShort( 0x0 ), /* 0 */
+/* 266 */ NdrFcShort( 0x0 ), /* 0 */
+/* 268 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter x */
+
+/* 270 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 272 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 274 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 276 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 278 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 280 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter coordType */
+
+/* 282 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 284 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 286 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter offset */
+
+/* 288 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 290 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 292 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 294 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 296 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 298 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selection */
+
+/* 300 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 302 */ NdrFcLong( 0x0 ), /* 0 */
+/* 306 */ NdrFcShort( 0x9 ), /* 9 */
+/* 308 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 310 */ NdrFcShort( 0x8 ), /* 8 */
+/* 312 */ NdrFcShort( 0x40 ), /* 64 */
+/* 314 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 316 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 318 */ NdrFcShort( 0x0 ), /* 0 */
+/* 320 */ NdrFcShort( 0x0 ), /* 0 */
+/* 322 */ NdrFcShort( 0x0 ), /* 0 */
+/* 324 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter selectionIndex */
+
+/* 326 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 328 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 330 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter startOffset */
+
+/* 332 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 334 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 336 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 338 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 340 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 342 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 344 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 346 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 348 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_text */
+
+/* 350 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 352 */ NdrFcLong( 0x0 ), /* 0 */
+/* 356 */ NdrFcShort( 0xa ), /* 10 */
+/* 358 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 360 */ NdrFcShort( 0x10 ), /* 16 */
+/* 362 */ NdrFcShort( 0x8 ), /* 8 */
+/* 364 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 366 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 368 */ NdrFcShort( 0x1 ), /* 1 */
+/* 370 */ NdrFcShort( 0x0 ), /* 0 */
+/* 372 */ NdrFcShort( 0x0 ), /* 0 */
+/* 374 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startOffset */
+
+/* 376 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 378 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 380 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 382 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 384 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 386 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter text */
+
+/* 388 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 390 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 392 */ NdrFcShort( 0x24 ), /* Type Offset=36 */
+
+ /* Return value */
+
+/* 394 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 396 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 398 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_textBeforeOffset */
+
+/* 400 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 402 */ NdrFcLong( 0x0 ), /* 0 */
+/* 406 */ NdrFcShort( 0xb ), /* 11 */
+/* 408 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
+/* 410 */ NdrFcShort( 0xe ), /* 14 */
+/* 412 */ NdrFcShort( 0x40 ), /* 64 */
+/* 414 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x6, /* 6 */
+/* 416 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 418 */ NdrFcShort( 0x1 ), /* 1 */
+/* 420 */ NdrFcShort( 0x0 ), /* 0 */
+/* 422 */ NdrFcShort( 0x0 ), /* 0 */
+/* 424 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 426 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 428 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 430 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter boundaryType */
+
+/* 432 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 434 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 436 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter startOffset */
+
+/* 438 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 440 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 442 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 444 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 446 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 448 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter text */
+
+/* 450 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 452 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 454 */ NdrFcShort( 0x24 ), /* Type Offset=36 */
+
+ /* Return value */
+
+/* 456 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 458 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 460 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_textAfterOffset */
+
+/* 462 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 464 */ NdrFcLong( 0x0 ), /* 0 */
+/* 468 */ NdrFcShort( 0xc ), /* 12 */
+/* 470 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
+/* 472 */ NdrFcShort( 0xe ), /* 14 */
+/* 474 */ NdrFcShort( 0x40 ), /* 64 */
+/* 476 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x6, /* 6 */
+/* 478 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 480 */ NdrFcShort( 0x1 ), /* 1 */
+/* 482 */ NdrFcShort( 0x0 ), /* 0 */
+/* 484 */ NdrFcShort( 0x0 ), /* 0 */
+/* 486 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 488 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 490 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 492 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter boundaryType */
+
+/* 494 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 496 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 498 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter startOffset */
+
+/* 500 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 502 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 504 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 506 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 508 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 510 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter text */
+
+/* 512 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 514 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 516 */ NdrFcShort( 0x24 ), /* Type Offset=36 */
+
+ /* Return value */
+
+/* 518 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 520 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 522 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_textAtOffset */
+
+/* 524 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 526 */ NdrFcLong( 0x0 ), /* 0 */
+/* 530 */ NdrFcShort( 0xd ), /* 13 */
+/* 532 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
+/* 534 */ NdrFcShort( 0xe ), /* 14 */
+/* 536 */ NdrFcShort( 0x40 ), /* 64 */
+/* 538 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x6, /* 6 */
+/* 540 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 542 */ NdrFcShort( 0x1 ), /* 1 */
+/* 544 */ NdrFcShort( 0x0 ), /* 0 */
+/* 546 */ NdrFcShort( 0x0 ), /* 0 */
+/* 548 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 550 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 552 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 554 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter boundaryType */
+
+/* 556 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 558 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 560 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter startOffset */
+
+/* 562 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 564 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 566 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 568 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 570 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 572 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter text */
+
+/* 574 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 576 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 578 */ NdrFcShort( 0x24 ), /* Type Offset=36 */
+
+ /* Return value */
+
+/* 580 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 582 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 584 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure removeSelection */
+
+/* 586 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 588 */ NdrFcLong( 0x0 ), /* 0 */
+/* 592 */ NdrFcShort( 0xe ), /* 14 */
+/* 594 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 596 */ NdrFcShort( 0x8 ), /* 8 */
+/* 598 */ NdrFcShort( 0x8 ), /* 8 */
+/* 600 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 602 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 604 */ NdrFcShort( 0x0 ), /* 0 */
+/* 606 */ NdrFcShort( 0x0 ), /* 0 */
+/* 608 */ NdrFcShort( 0x0 ), /* 0 */
+/* 610 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter selectionIndex */
+
+/* 612 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 614 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 616 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 618 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 620 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 622 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure setCaretOffset */
+
+/* 624 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 626 */ NdrFcLong( 0x0 ), /* 0 */
+/* 630 */ NdrFcShort( 0xf ), /* 15 */
+/* 632 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 634 */ NdrFcShort( 0x8 ), /* 8 */
+/* 636 */ NdrFcShort( 0x8 ), /* 8 */
+/* 638 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 640 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 642 */ NdrFcShort( 0x0 ), /* 0 */
+/* 644 */ NdrFcShort( 0x0 ), /* 0 */
+/* 646 */ NdrFcShort( 0x0 ), /* 0 */
+/* 648 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 650 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 652 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 654 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 656 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 658 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 660 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure setSelection */
+
+/* 662 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 664 */ NdrFcLong( 0x0 ), /* 0 */
+/* 668 */ NdrFcShort( 0x10 ), /* 16 */
+/* 670 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 672 */ NdrFcShort( 0x18 ), /* 24 */
+/* 674 */ NdrFcShort( 0x8 ), /* 8 */
+/* 676 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 678 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 680 */ NdrFcShort( 0x0 ), /* 0 */
+/* 682 */ NdrFcShort( 0x0 ), /* 0 */
+/* 684 */ NdrFcShort( 0x0 ), /* 0 */
+/* 686 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter selectionIndex */
+
+/* 688 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 690 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 692 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter startOffset */
+
+/* 694 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 696 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 698 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 700 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 702 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 704 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 706 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 708 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 710 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nCharacters */
+
+/* 712 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 714 */ NdrFcLong( 0x0 ), /* 0 */
+/* 718 */ NdrFcShort( 0x11 ), /* 17 */
+/* 720 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 722 */ NdrFcShort( 0x0 ), /* 0 */
+/* 724 */ NdrFcShort( 0x24 ), /* 36 */
+/* 726 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 728 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 730 */ NdrFcShort( 0x0 ), /* 0 */
+/* 732 */ NdrFcShort( 0x0 ), /* 0 */
+/* 734 */ NdrFcShort( 0x0 ), /* 0 */
+/* 736 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nCharacters */
+
+/* 738 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 740 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 742 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 744 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 746 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 748 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure scrollSubstringTo */
+
+/* 750 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 752 */ NdrFcLong( 0x0 ), /* 0 */
+/* 756 */ NdrFcShort( 0x12 ), /* 18 */
+/* 758 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 760 */ NdrFcShort( 0x16 ), /* 22 */
+/* 762 */ NdrFcShort( 0x8 ), /* 8 */
+/* 764 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 766 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 768 */ NdrFcShort( 0x0 ), /* 0 */
+/* 770 */ NdrFcShort( 0x0 ), /* 0 */
+/* 772 */ NdrFcShort( 0x0 ), /* 0 */
+/* 774 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startIndex */
+
+/* 776 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 778 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 780 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endIndex */
+
+/* 782 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 784 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 786 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter scrollType */
+
+/* 788 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 790 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 792 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 794 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 796 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 798 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure scrollSubstringToPoint */
+
+/* 800 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 802 */ NdrFcLong( 0x0 ), /* 0 */
+/* 806 */ NdrFcShort( 0x13 ), /* 19 */
+/* 808 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
+/* 810 */ NdrFcShort( 0x26 ), /* 38 */
+/* 812 */ NdrFcShort( 0x8 ), /* 8 */
+/* 814 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x6, /* 6 */
+/* 816 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 818 */ NdrFcShort( 0x0 ), /* 0 */
+/* 820 */ NdrFcShort( 0x0 ), /* 0 */
+/* 822 */ NdrFcShort( 0x0 ), /* 0 */
+/* 824 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startIndex */
+
+/* 826 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 828 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 830 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endIndex */
+
+/* 832 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 834 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 836 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter coordinateType */
+
+/* 838 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 840 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 842 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter x */
+
+/* 844 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 846 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 848 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 850 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 852 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 854 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 856 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 858 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 860 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_newText */
+
+/* 862 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 864 */ NdrFcLong( 0x0 ), /* 0 */
+/* 868 */ NdrFcShort( 0x14 ), /* 20 */
+/* 870 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 872 */ NdrFcShort( 0x0 ), /* 0 */
+/* 874 */ NdrFcShort( 0x8 ), /* 8 */
+/* 876 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 878 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 880 */ NdrFcShort( 0x1 ), /* 1 */
+/* 882 */ NdrFcShort( 0x0 ), /* 0 */
+/* 884 */ NdrFcShort( 0x0 ), /* 0 */
+/* 886 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter newText */
+
+/* 888 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
+/* 890 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 892 */ NdrFcShort( 0x32 ), /* Type Offset=50 */
+
+ /* Return value */
+
+/* 894 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 896 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 898 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_oldText */
+
+/* 900 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 902 */ NdrFcLong( 0x0 ), /* 0 */
+/* 906 */ NdrFcShort( 0x15 ), /* 21 */
+/* 908 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 910 */ NdrFcShort( 0x0 ), /* 0 */
+/* 912 */ NdrFcShort( 0x8 ), /* 8 */
+/* 914 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 916 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 918 */ NdrFcShort( 0x1 ), /* 1 */
+/* 920 */ NdrFcShort( 0x0 ), /* 0 */
+/* 922 */ NdrFcShort( 0x0 ), /* 0 */
+/* 924 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter oldText */
+
+/* 926 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
+/* 928 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 930 */ NdrFcShort( 0x32 ), /* Type Offset=50 */
+
+ /* Return value */
+
+/* 932 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 934 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 936 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const AccessibleText_MIDL_TYPE_FORMAT_STRING AccessibleText__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 4 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+/* 6 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 8 */ NdrFcShort( 0x1c ), /* Offset= 28 (36) */
+/* 10 */
+ 0x13, 0x0, /* FC_OP */
+/* 12 */ NdrFcShort( 0xe ), /* Offset= 14 (26) */
+/* 14 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 16 */ NdrFcShort( 0x2 ), /* 2 */
+/* 18 */ 0x9, /* Corr desc: FC_ULONG */
+ 0x0, /* */
+/* 20 */ NdrFcShort( 0xfffc ), /* -4 */
+/* 22 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 24 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 26 */
+ 0x17, /* FC_CSTRUCT */
+ 0x3, /* 3 */
+/* 28 */ NdrFcShort( 0x8 ), /* 8 */
+/* 30 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (14) */
+/* 32 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 34 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 36 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 38 */ NdrFcShort( 0x0 ), /* 0 */
+/* 40 */ NdrFcShort( 0x8 ), /* 8 */
+/* 42 */ NdrFcShort( 0x0 ), /* 0 */
+/* 44 */ NdrFcShort( 0xffde ), /* Offset= -34 (10) */
+/* 46 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 48 */ NdrFcShort( 0x2 ), /* Offset= 2 (50) */
+/* 50 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 52 */ NdrFcShort( 0x10 ), /* 16 */
+/* 54 */ NdrFcShort( 0x0 ), /* 0 */
+/* 56 */ NdrFcShort( 0x0 ), /* Offset= 0 (56) */
+/* 58 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 60 */ NdrFcShort( 0xffe8 ), /* Offset= -24 (36) */
+/* 62 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 64 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+
+ 0x0
+ }
+ };
+
+static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
+ {
+
+ {
+ BSTR_UserSize
+ ,BSTR_UserMarshal
+ ,BSTR_UserUnmarshal
+ ,BSTR_UserFree
+ }
+
+ };
+
+
+
+/* Standard interface: __MIDL_itf_AccessibleText_0000_0000, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IAccessibleText, ver. 0.0,
+ GUID={0x24FD2FFB,0x3AAD,0x4a08,{0x83,0x35,0xA3,0xAD,0x89,0xC0,0xFB,0x4B}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleText_FormatStringOffsetTable[] =
+ {
+ 0,
+ 44,
+ 100,
+ 138,
+ 206,
+ 244,
+ 300,
+ 350,
+ 400,
+ 462,
+ 524,
+ 586,
+ 624,
+ 662,
+ 712,
+ 750,
+ 800,
+ 862,
+ 900
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleText_ProxyInfo =
+ {
+ &Object_StubDesc,
+ AccessibleText__MIDL_ProcFormatString.Format,
+ &IAccessibleText_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleText_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ AccessibleText__MIDL_ProcFormatString.Format,
+ &IAccessibleText_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(22) _IAccessibleTextProxyVtbl =
+{
+ &IAccessibleText_ProxyInfo,
+ &IID_IAccessibleText,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::addSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_attributes */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_caretOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_characterExtents */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_nSelections */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_offsetAtPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_selection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_text */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textBeforeOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textAfterOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textAtOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::removeSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::setCaretOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::setSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_nCharacters */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringTo */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringToPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_newText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_oldText */
+};
+
+const CInterfaceStubVtbl _IAccessibleTextStubVtbl =
+{
+ &IID_IAccessibleText,
+ &IAccessibleText_ServerInfo,
+ 22,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ AccessibleText__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x700022b, /* MIDL Version 7.0.555 */
+ 0,
+ UserMarshalRoutines,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _AccessibleText_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_IAccessibleTextProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _AccessibleText_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_IAccessibleTextStubVtbl,
+ 0
+};
+
+PCInterfaceName const _AccessibleText_InterfaceNamesList[] =
+{
+ "IAccessibleText",
+ 0
+};
+
+
+#define _AccessibleText_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleText, pIID, n)
+
+int __stdcall _AccessibleText_IID_Lookup( const IID * pIID, int * pIndex )
+{
+
+ if(!_AccessibleText_CHECK_IID(0))
+ {
+ *pIndex = 0;
+ return 1;
+ }
+
+ return 0;
+}
+
+const ExtendedProxyFileInfo AccessibleText_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _AccessibleText_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _AccessibleText_StubVtblList,
+ (const PCInterfaceName * ) & _AccessibleText_InterfaceNamesList,
+ 0, /* no delegation */
+ & _AccessibleText_IID_Lookup,
+ 1,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* defined(_M_AMD64)*/
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleValue.h b/src/3rdparty/iaccessible2/generated/amd64/AccessibleValue.h
new file mode 100644
index 0000000000..b27f9bb0c2
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleValue.h
@@ -0,0 +1,188 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:54:00 2012
+ */
+/* Compiler settings for AccessibleValue.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __AccessibleValue_h__
+#define __AccessibleValue_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IAccessibleValue_FWD_DEFINED__
+#define __IAccessibleValue_FWD_DEFINED__
+typedef interface IAccessibleValue IAccessibleValue;
+#endif /* __IAccessibleValue_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "objidl.h"
+#include "oaidl.h"
+#include "oleacc.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#ifndef __IAccessibleValue_INTERFACE_DEFINED__
+#define __IAccessibleValue_INTERFACE_DEFINED__
+
+/* interface IAccessibleValue */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleValue;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("35855B5B-C566-4fd0-A7B1-E65465600394")
+ IAccessibleValue : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_currentValue(
+ /* [retval][out] */ VARIANT *currentValue) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE setCurrentValue(
+ /* [in] */ VARIANT value) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_maximumValue(
+ /* [retval][out] */ VARIANT *maximumValue) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_minimumValue(
+ /* [retval][out] */ VARIANT *minimumValue) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleValueVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleValue * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleValue * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleValue * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentValue )(
+ IAccessibleValue * This,
+ /* [retval][out] */ VARIANT *currentValue);
+
+ HRESULT ( STDMETHODCALLTYPE *setCurrentValue )(
+ IAccessibleValue * This,
+ /* [in] */ VARIANT value);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_maximumValue )(
+ IAccessibleValue * This,
+ /* [retval][out] */ VARIANT *maximumValue);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_minimumValue )(
+ IAccessibleValue * This,
+ /* [retval][out] */ VARIANT *minimumValue);
+
+ END_INTERFACE
+ } IAccessibleValueVtbl;
+
+ interface IAccessibleValue
+ {
+ CONST_VTBL struct IAccessibleValueVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleValue_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleValue_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleValue_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleValue_get_currentValue(This,currentValue) \
+ ( (This)->lpVtbl -> get_currentValue(This,currentValue) )
+
+#define IAccessibleValue_setCurrentValue(This,value) \
+ ( (This)->lpVtbl -> setCurrentValue(This,value) )
+
+#define IAccessibleValue_get_maximumValue(This,maximumValue) \
+ ( (This)->lpVtbl -> get_maximumValue(This,maximumValue) )
+
+#define IAccessibleValue_get_minimumValue(This,minimumValue) \
+ ( (This)->lpVtbl -> get_minimumValue(This,minimumValue) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleValue_INTERFACE_DEFINED__ */
+
+
+/* Additional Prototypes for ALL interfaces */
+
+unsigned long __RPC_USER VARIANT_UserSize( unsigned long *, unsigned long , VARIANT * );
+unsigned char * __RPC_USER VARIANT_UserMarshal( unsigned long *, unsigned char *, VARIANT * );
+unsigned char * __RPC_USER VARIANT_UserUnmarshal(unsigned long *, unsigned char *, VARIANT * );
+void __RPC_USER VARIANT_UserFree( unsigned long *, VARIANT * );
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleValue_i.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleValue_i.c
new file mode 100644
index 0000000000..bc757ff1a1
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleValue_i.c
@@ -0,0 +1,79 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:54:00 2012
+ */
+/* Compiler settings for AccessibleValue.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleValue,0x35855B5B,0xC566,0x4fd0,0xA7,0xB1,0xE6,0x54,0x65,0x60,0x03,0x94);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleValue_p.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleValue_p.c
new file mode 100644
index 0000000000..c3fd72ceb2
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/AccessibleValue_p.c
@@ -0,0 +1,1029 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:54:00 2012
+ */
+/* Compiler settings for AccessibleValue.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if defined(_M_AMD64)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "AccessibleValue.h"
+
+#define TYPE_FORMAT_STRING_SIZE 1007
+#define PROC_FORMAT_STRING_SIZE 153
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 1
+
+typedef struct _AccessibleValue_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } AccessibleValue_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _AccessibleValue_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } AccessibleValue_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _AccessibleValue_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } AccessibleValue_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const AccessibleValue_MIDL_TYPE_FORMAT_STRING AccessibleValue__MIDL_TypeFormatString;
+extern const AccessibleValue_MIDL_PROC_FORMAT_STRING AccessibleValue__MIDL_ProcFormatString;
+extern const AccessibleValue_MIDL_EXPR_FORMAT_STRING AccessibleValue__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleValue_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleValue_ProxyInfo;
+
+
+extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
+
+#if !defined(__RPC_WIN64__)
+#error Invalid build platform for this stub.
+#endif
+
+static const AccessibleValue_MIDL_PROC_FORMAT_STRING AccessibleValue__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure get_currentValue */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x3 ), /* 3 */
+/* 8 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 10 */ NdrFcShort( 0x0 ), /* 0 */
+/* 12 */ NdrFcShort( 0x8 ), /* 8 */
+/* 14 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 16 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 18 */ NdrFcShort( 0x1 ), /* 1 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+/* 24 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter currentValue */
+
+/* 26 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
+/* 28 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 30 */ NdrFcShort( 0x3d2 ), /* Type Offset=978 */
+
+ /* Return value */
+
+/* 32 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 34 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 36 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure setCurrentValue */
+
+/* 38 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 40 */ NdrFcLong( 0x0 ), /* 0 */
+/* 44 */ NdrFcShort( 0x4 ), /* 4 */
+/* 46 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 48 */ NdrFcShort( 0x0 ), /* 0 */
+/* 50 */ NdrFcShort( 0x8 ), /* 8 */
+/* 52 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 54 */ 0xa, /* 10 */
+ 0x85, /* Ext Flags: new corr desc, srv corr check, has big amd64 byval param */
+/* 56 */ NdrFcShort( 0x0 ), /* 0 */
+/* 58 */ NdrFcShort( 0x1 ), /* 1 */
+/* 60 */ NdrFcShort( 0x0 ), /* 0 */
+/* 62 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter value */
+
+/* 64 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 66 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 68 */ NdrFcShort( 0x3e4 ), /* Type Offset=996 */
+
+ /* Return value */
+
+/* 70 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 72 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 74 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_maximumValue */
+
+/* 76 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 78 */ NdrFcLong( 0x0 ), /* 0 */
+/* 82 */ NdrFcShort( 0x5 ), /* 5 */
+/* 84 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 86 */ NdrFcShort( 0x0 ), /* 0 */
+/* 88 */ NdrFcShort( 0x8 ), /* 8 */
+/* 90 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 92 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 94 */ NdrFcShort( 0x1 ), /* 1 */
+/* 96 */ NdrFcShort( 0x0 ), /* 0 */
+/* 98 */ NdrFcShort( 0x0 ), /* 0 */
+/* 100 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maximumValue */
+
+/* 102 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
+/* 104 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 106 */ NdrFcShort( 0x3d2 ), /* Type Offset=978 */
+
+ /* Return value */
+
+/* 108 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 110 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 112 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_minimumValue */
+
+/* 114 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 116 */ NdrFcLong( 0x0 ), /* 0 */
+/* 120 */ NdrFcShort( 0x6 ), /* 6 */
+/* 122 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 124 */ NdrFcShort( 0x0 ), /* 0 */
+/* 126 */ NdrFcShort( 0x8 ), /* 8 */
+/* 128 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 130 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 132 */ NdrFcShort( 0x1 ), /* 1 */
+/* 134 */ NdrFcShort( 0x0 ), /* 0 */
+/* 136 */ NdrFcShort( 0x0 ), /* 0 */
+/* 138 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter minimumValue */
+
+/* 140 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
+/* 142 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 144 */ NdrFcShort( 0x3d2 ), /* Type Offset=978 */
+
+ /* Return value */
+
+/* 146 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 148 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 150 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const AccessibleValue_MIDL_TYPE_FORMAT_STRING AccessibleValue__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 4 */ NdrFcShort( 0x3ce ), /* Offset= 974 (978) */
+/* 6 */
+ 0x13, 0x0, /* FC_OP */
+/* 8 */ NdrFcShort( 0x3b6 ), /* Offset= 950 (958) */
+/* 10 */
+ 0x2b, /* FC_NON_ENCAPSULATED_UNION */
+ 0x9, /* FC_ULONG */
+/* 12 */ 0x7, /* Corr desc: FC_USHORT */
+ 0x0, /* */
+/* 14 */ NdrFcShort( 0xfff8 ), /* -8 */
+/* 16 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 18 */ NdrFcShort( 0x2 ), /* Offset= 2 (20) */
+/* 20 */ NdrFcShort( 0x10 ), /* 16 */
+/* 22 */ NdrFcShort( 0x2f ), /* 47 */
+/* 24 */ NdrFcLong( 0x14 ), /* 20 */
+/* 28 */ NdrFcShort( 0x800b ), /* Simple arm type: FC_HYPER */
+/* 30 */ NdrFcLong( 0x3 ), /* 3 */
+/* 34 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 36 */ NdrFcLong( 0x11 ), /* 17 */
+/* 40 */ NdrFcShort( 0x8001 ), /* Simple arm type: FC_BYTE */
+/* 42 */ NdrFcLong( 0x2 ), /* 2 */
+/* 46 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
+/* 48 */ NdrFcLong( 0x4 ), /* 4 */
+/* 52 */ NdrFcShort( 0x800a ), /* Simple arm type: FC_FLOAT */
+/* 54 */ NdrFcLong( 0x5 ), /* 5 */
+/* 58 */ NdrFcShort( 0x800c ), /* Simple arm type: FC_DOUBLE */
+/* 60 */ NdrFcLong( 0xb ), /* 11 */
+/* 64 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
+/* 66 */ NdrFcLong( 0xa ), /* 10 */
+/* 70 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 72 */ NdrFcLong( 0x6 ), /* 6 */
+/* 76 */ NdrFcShort( 0xe8 ), /* Offset= 232 (308) */
+/* 78 */ NdrFcLong( 0x7 ), /* 7 */
+/* 82 */ NdrFcShort( 0x800c ), /* Simple arm type: FC_DOUBLE */
+/* 84 */ NdrFcLong( 0x8 ), /* 8 */
+/* 88 */ NdrFcShort( 0xe2 ), /* Offset= 226 (314) */
+/* 90 */ NdrFcLong( 0xd ), /* 13 */
+/* 94 */ NdrFcShort( 0xf6 ), /* Offset= 246 (340) */
+/* 96 */ NdrFcLong( 0x9 ), /* 9 */
+/* 100 */ NdrFcShort( 0x102 ), /* Offset= 258 (358) */
+/* 102 */ NdrFcLong( 0x2000 ), /* 8192 */
+/* 106 */ NdrFcShort( 0x10e ), /* Offset= 270 (376) */
+/* 108 */ NdrFcLong( 0x24 ), /* 36 */
+/* 112 */ NdrFcShort( 0x304 ), /* Offset= 772 (884) */
+/* 114 */ NdrFcLong( 0x4024 ), /* 16420 */
+/* 118 */ NdrFcShort( 0x2fe ), /* Offset= 766 (884) */
+/* 120 */ NdrFcLong( 0x4011 ), /* 16401 */
+/* 124 */ NdrFcShort( 0x2fc ), /* Offset= 764 (888) */
+/* 126 */ NdrFcLong( 0x4002 ), /* 16386 */
+/* 130 */ NdrFcShort( 0x2fa ), /* Offset= 762 (892) */
+/* 132 */ NdrFcLong( 0x4003 ), /* 16387 */
+/* 136 */ NdrFcShort( 0x2f8 ), /* Offset= 760 (896) */
+/* 138 */ NdrFcLong( 0x4014 ), /* 16404 */
+/* 142 */ NdrFcShort( 0x2f6 ), /* Offset= 758 (900) */
+/* 144 */ NdrFcLong( 0x4004 ), /* 16388 */
+/* 148 */ NdrFcShort( 0x2f4 ), /* Offset= 756 (904) */
+/* 150 */ NdrFcLong( 0x4005 ), /* 16389 */
+/* 154 */ NdrFcShort( 0x2f2 ), /* Offset= 754 (908) */
+/* 156 */ NdrFcLong( 0x400b ), /* 16395 */
+/* 160 */ NdrFcShort( 0x2dc ), /* Offset= 732 (892) */
+/* 162 */ NdrFcLong( 0x400a ), /* 16394 */
+/* 166 */ NdrFcShort( 0x2da ), /* Offset= 730 (896) */
+/* 168 */ NdrFcLong( 0x4006 ), /* 16390 */
+/* 172 */ NdrFcShort( 0x2e4 ), /* Offset= 740 (912) */
+/* 174 */ NdrFcLong( 0x4007 ), /* 16391 */
+/* 178 */ NdrFcShort( 0x2da ), /* Offset= 730 (908) */
+/* 180 */ NdrFcLong( 0x4008 ), /* 16392 */
+/* 184 */ NdrFcShort( 0x2dc ), /* Offset= 732 (916) */
+/* 186 */ NdrFcLong( 0x400d ), /* 16397 */
+/* 190 */ NdrFcShort( 0x2da ), /* Offset= 730 (920) */
+/* 192 */ NdrFcLong( 0x4009 ), /* 16393 */
+/* 196 */ NdrFcShort( 0x2d8 ), /* Offset= 728 (924) */
+/* 198 */ NdrFcLong( 0x6000 ), /* 24576 */
+/* 202 */ NdrFcShort( 0x2d6 ), /* Offset= 726 (928) */
+/* 204 */ NdrFcLong( 0x400c ), /* 16396 */
+/* 208 */ NdrFcShort( 0x2d4 ), /* Offset= 724 (932) */
+/* 210 */ NdrFcLong( 0x10 ), /* 16 */
+/* 214 */ NdrFcShort( 0x8002 ), /* Simple arm type: FC_CHAR */
+/* 216 */ NdrFcLong( 0x12 ), /* 18 */
+/* 220 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
+/* 222 */ NdrFcLong( 0x13 ), /* 19 */
+/* 226 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 228 */ NdrFcLong( 0x15 ), /* 21 */
+/* 232 */ NdrFcShort( 0x800b ), /* Simple arm type: FC_HYPER */
+/* 234 */ NdrFcLong( 0x16 ), /* 22 */
+/* 238 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 240 */ NdrFcLong( 0x17 ), /* 23 */
+/* 244 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 246 */ NdrFcLong( 0xe ), /* 14 */
+/* 250 */ NdrFcShort( 0x2b2 ), /* Offset= 690 (940) */
+/* 252 */ NdrFcLong( 0x400e ), /* 16398 */
+/* 256 */ NdrFcShort( 0x2b6 ), /* Offset= 694 (950) */
+/* 258 */ NdrFcLong( 0x4010 ), /* 16400 */
+/* 262 */ NdrFcShort( 0x2b4 ), /* Offset= 692 (954) */
+/* 264 */ NdrFcLong( 0x4012 ), /* 16402 */
+/* 268 */ NdrFcShort( 0x270 ), /* Offset= 624 (892) */
+/* 270 */ NdrFcLong( 0x4013 ), /* 16403 */
+/* 274 */ NdrFcShort( 0x26e ), /* Offset= 622 (896) */
+/* 276 */ NdrFcLong( 0x4015 ), /* 16405 */
+/* 280 */ NdrFcShort( 0x26c ), /* Offset= 620 (900) */
+/* 282 */ NdrFcLong( 0x4016 ), /* 16406 */
+/* 286 */ NdrFcShort( 0x262 ), /* Offset= 610 (896) */
+/* 288 */ NdrFcLong( 0x4017 ), /* 16407 */
+/* 292 */ NdrFcShort( 0x25c ), /* Offset= 604 (896) */
+/* 294 */ NdrFcLong( 0x0 ), /* 0 */
+/* 298 */ NdrFcShort( 0x0 ), /* Offset= 0 (298) */
+/* 300 */ NdrFcLong( 0x1 ), /* 1 */
+/* 304 */ NdrFcShort( 0x0 ), /* Offset= 0 (304) */
+/* 306 */ NdrFcShort( 0xffff ), /* Offset= -1 (305) */
+/* 308 */
+ 0x15, /* FC_STRUCT */
+ 0x7, /* 7 */
+/* 310 */ NdrFcShort( 0x8 ), /* 8 */
+/* 312 */ 0xb, /* FC_HYPER */
+ 0x5b, /* FC_END */
+/* 314 */
+ 0x13, 0x0, /* FC_OP */
+/* 316 */ NdrFcShort( 0xe ), /* Offset= 14 (330) */
+/* 318 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 320 */ NdrFcShort( 0x2 ), /* 2 */
+/* 322 */ 0x9, /* Corr desc: FC_ULONG */
+ 0x0, /* */
+/* 324 */ NdrFcShort( 0xfffc ), /* -4 */
+/* 326 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 328 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 330 */
+ 0x17, /* FC_CSTRUCT */
+ 0x3, /* 3 */
+/* 332 */ NdrFcShort( 0x8 ), /* 8 */
+/* 334 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (318) */
+/* 336 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 338 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 340 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 342 */ NdrFcLong( 0x0 ), /* 0 */
+/* 346 */ NdrFcShort( 0x0 ), /* 0 */
+/* 348 */ NdrFcShort( 0x0 ), /* 0 */
+/* 350 */ 0xc0, /* 192 */
+ 0x0, /* 0 */
+/* 352 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 354 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 356 */ 0x0, /* 0 */
+ 0x46, /* 70 */
+/* 358 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 360 */ NdrFcLong( 0x20400 ), /* 132096 */
+/* 364 */ NdrFcShort( 0x0 ), /* 0 */
+/* 366 */ NdrFcShort( 0x0 ), /* 0 */
+/* 368 */ 0xc0, /* 192 */
+ 0x0, /* 0 */
+/* 370 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 372 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 374 */ 0x0, /* 0 */
+ 0x46, /* 70 */
+/* 376 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 378 */ NdrFcShort( 0x2 ), /* Offset= 2 (380) */
+/* 380 */
+ 0x13, 0x0, /* FC_OP */
+/* 382 */ NdrFcShort( 0x1e4 ), /* Offset= 484 (866) */
+/* 384 */
+ 0x2a, /* FC_ENCAPSULATED_UNION */
+ 0x89, /* 137 */
+/* 386 */ NdrFcShort( 0x20 ), /* 32 */
+/* 388 */ NdrFcShort( 0xa ), /* 10 */
+/* 390 */ NdrFcLong( 0x8 ), /* 8 */
+/* 394 */ NdrFcShort( 0x50 ), /* Offset= 80 (474) */
+/* 396 */ NdrFcLong( 0xd ), /* 13 */
+/* 400 */ NdrFcShort( 0x70 ), /* Offset= 112 (512) */
+/* 402 */ NdrFcLong( 0x9 ), /* 9 */
+/* 406 */ NdrFcShort( 0x90 ), /* Offset= 144 (550) */
+/* 408 */ NdrFcLong( 0xc ), /* 12 */
+/* 412 */ NdrFcShort( 0xb0 ), /* Offset= 176 (588) */
+/* 414 */ NdrFcLong( 0x24 ), /* 36 */
+/* 418 */ NdrFcShort( 0x102 ), /* Offset= 258 (676) */
+/* 420 */ NdrFcLong( 0x800d ), /* 32781 */
+/* 424 */ NdrFcShort( 0x11e ), /* Offset= 286 (710) */
+/* 426 */ NdrFcLong( 0x10 ), /* 16 */
+/* 430 */ NdrFcShort( 0x138 ), /* Offset= 312 (742) */
+/* 432 */ NdrFcLong( 0x2 ), /* 2 */
+/* 436 */ NdrFcShort( 0x14e ), /* Offset= 334 (770) */
+/* 438 */ NdrFcLong( 0x3 ), /* 3 */
+/* 442 */ NdrFcShort( 0x164 ), /* Offset= 356 (798) */
+/* 444 */ NdrFcLong( 0x14 ), /* 20 */
+/* 448 */ NdrFcShort( 0x17a ), /* Offset= 378 (826) */
+/* 450 */ NdrFcShort( 0xffff ), /* Offset= -1 (449) */
+/* 452 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 454 */ NdrFcShort( 0x0 ), /* 0 */
+/* 456 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 458 */ NdrFcShort( 0x0 ), /* 0 */
+/* 460 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 462 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 466 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 468 */
+ 0x13, 0x0, /* FC_OP */
+/* 470 */ NdrFcShort( 0xff74 ), /* Offset= -140 (330) */
+/* 472 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 474 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 476 */ NdrFcShort( 0x10 ), /* 16 */
+/* 478 */ NdrFcShort( 0x0 ), /* 0 */
+/* 480 */ NdrFcShort( 0x6 ), /* Offset= 6 (486) */
+/* 482 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 484 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 486 */
+ 0x11, 0x0, /* FC_RP */
+/* 488 */ NdrFcShort( 0xffdc ), /* Offset= -36 (452) */
+/* 490 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 492 */ NdrFcShort( 0x0 ), /* 0 */
+/* 494 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 496 */ NdrFcShort( 0x0 ), /* 0 */
+/* 498 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 500 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 504 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 506 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 508 */ NdrFcShort( 0xff58 ), /* Offset= -168 (340) */
+/* 510 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 512 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 514 */ NdrFcShort( 0x10 ), /* 16 */
+/* 516 */ NdrFcShort( 0x0 ), /* 0 */
+/* 518 */ NdrFcShort( 0x6 ), /* Offset= 6 (524) */
+/* 520 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 522 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 524 */
+ 0x11, 0x0, /* FC_RP */
+/* 526 */ NdrFcShort( 0xffdc ), /* Offset= -36 (490) */
+/* 528 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 530 */ NdrFcShort( 0x0 ), /* 0 */
+/* 532 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 534 */ NdrFcShort( 0x0 ), /* 0 */
+/* 536 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 538 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 542 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 544 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 546 */ NdrFcShort( 0xff44 ), /* Offset= -188 (358) */
+/* 548 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 550 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 552 */ NdrFcShort( 0x10 ), /* 16 */
+/* 554 */ NdrFcShort( 0x0 ), /* 0 */
+/* 556 */ NdrFcShort( 0x6 ), /* Offset= 6 (562) */
+/* 558 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 560 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 562 */
+ 0x11, 0x0, /* FC_RP */
+/* 564 */ NdrFcShort( 0xffdc ), /* Offset= -36 (528) */
+/* 566 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 568 */ NdrFcShort( 0x0 ), /* 0 */
+/* 570 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 572 */ NdrFcShort( 0x0 ), /* 0 */
+/* 574 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 576 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 580 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 582 */
+ 0x13, 0x0, /* FC_OP */
+/* 584 */ NdrFcShort( 0x176 ), /* Offset= 374 (958) */
+/* 586 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 588 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 590 */ NdrFcShort( 0x10 ), /* 16 */
+/* 592 */ NdrFcShort( 0x0 ), /* 0 */
+/* 594 */ NdrFcShort( 0x6 ), /* Offset= 6 (600) */
+/* 596 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 598 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 600 */
+ 0x11, 0x0, /* FC_RP */
+/* 602 */ NdrFcShort( 0xffdc ), /* Offset= -36 (566) */
+/* 604 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 606 */ NdrFcLong( 0x2f ), /* 47 */
+/* 610 */ NdrFcShort( 0x0 ), /* 0 */
+/* 612 */ NdrFcShort( 0x0 ), /* 0 */
+/* 614 */ 0xc0, /* 192 */
+ 0x0, /* 0 */
+/* 616 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 618 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 620 */ 0x0, /* 0 */
+ 0x46, /* 70 */
+/* 622 */
+ 0x1b, /* FC_CARRAY */
+ 0x0, /* 0 */
+/* 624 */ NdrFcShort( 0x1 ), /* 1 */
+/* 626 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 628 */ NdrFcShort( 0x4 ), /* 4 */
+/* 630 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 632 */ 0x1, /* FC_BYTE */
+ 0x5b, /* FC_END */
+/* 634 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 636 */ NdrFcShort( 0x18 ), /* 24 */
+/* 638 */ NdrFcShort( 0x0 ), /* 0 */
+/* 640 */ NdrFcShort( 0xa ), /* Offset= 10 (650) */
+/* 642 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 644 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 646 */ NdrFcShort( 0xffd6 ), /* Offset= -42 (604) */
+/* 648 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 650 */
+ 0x13, 0x0, /* FC_OP */
+/* 652 */ NdrFcShort( 0xffe2 ), /* Offset= -30 (622) */
+/* 654 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 656 */ NdrFcShort( 0x0 ), /* 0 */
+/* 658 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 660 */ NdrFcShort( 0x0 ), /* 0 */
+/* 662 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 664 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 668 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 670 */
+ 0x13, 0x0, /* FC_OP */
+/* 672 */ NdrFcShort( 0xffda ), /* Offset= -38 (634) */
+/* 674 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 676 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 678 */ NdrFcShort( 0x10 ), /* 16 */
+/* 680 */ NdrFcShort( 0x0 ), /* 0 */
+/* 682 */ NdrFcShort( 0x6 ), /* Offset= 6 (688) */
+/* 684 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 686 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 688 */
+ 0x11, 0x0, /* FC_RP */
+/* 690 */ NdrFcShort( 0xffdc ), /* Offset= -36 (654) */
+/* 692 */
+ 0x1d, /* FC_SMFARRAY */
+ 0x0, /* 0 */
+/* 694 */ NdrFcShort( 0x8 ), /* 8 */
+/* 696 */ 0x1, /* FC_BYTE */
+ 0x5b, /* FC_END */
+/* 698 */
+ 0x15, /* FC_STRUCT */
+ 0x3, /* 3 */
+/* 700 */ NdrFcShort( 0x10 ), /* 16 */
+/* 702 */ 0x8, /* FC_LONG */
+ 0x6, /* FC_SHORT */
+/* 704 */ 0x6, /* FC_SHORT */
+ 0x4c, /* FC_EMBEDDED_COMPLEX */
+/* 706 */ 0x0, /* 0 */
+ NdrFcShort( 0xfff1 ), /* Offset= -15 (692) */
+ 0x5b, /* FC_END */
+/* 710 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 712 */ NdrFcShort( 0x20 ), /* 32 */
+/* 714 */ NdrFcShort( 0x0 ), /* 0 */
+/* 716 */ NdrFcShort( 0xa ), /* Offset= 10 (726) */
+/* 718 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 720 */ 0x36, /* FC_POINTER */
+ 0x4c, /* FC_EMBEDDED_COMPLEX */
+/* 722 */ 0x0, /* 0 */
+ NdrFcShort( 0xffe7 ), /* Offset= -25 (698) */
+ 0x5b, /* FC_END */
+/* 726 */
+ 0x11, 0x0, /* FC_RP */
+/* 728 */ NdrFcShort( 0xff12 ), /* Offset= -238 (490) */
+/* 730 */
+ 0x1b, /* FC_CARRAY */
+ 0x0, /* 0 */
+/* 732 */ NdrFcShort( 0x1 ), /* 1 */
+/* 734 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 736 */ NdrFcShort( 0x0 ), /* 0 */
+/* 738 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 740 */ 0x1, /* FC_BYTE */
+ 0x5b, /* FC_END */
+/* 742 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 744 */ NdrFcShort( 0x10 ), /* 16 */
+/* 746 */ NdrFcShort( 0x0 ), /* 0 */
+/* 748 */ NdrFcShort( 0x6 ), /* Offset= 6 (754) */
+/* 750 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 752 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 754 */
+ 0x13, 0x0, /* FC_OP */
+/* 756 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (730) */
+/* 758 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 760 */ NdrFcShort( 0x2 ), /* 2 */
+/* 762 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 764 */ NdrFcShort( 0x0 ), /* 0 */
+/* 766 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 768 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 770 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 772 */ NdrFcShort( 0x10 ), /* 16 */
+/* 774 */ NdrFcShort( 0x0 ), /* 0 */
+/* 776 */ NdrFcShort( 0x6 ), /* Offset= 6 (782) */
+/* 778 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 780 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 782 */
+ 0x13, 0x0, /* FC_OP */
+/* 784 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (758) */
+/* 786 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 788 */ NdrFcShort( 0x4 ), /* 4 */
+/* 790 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 792 */ NdrFcShort( 0x0 ), /* 0 */
+/* 794 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 796 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 798 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 800 */ NdrFcShort( 0x10 ), /* 16 */
+/* 802 */ NdrFcShort( 0x0 ), /* 0 */
+/* 804 */ NdrFcShort( 0x6 ), /* Offset= 6 (810) */
+/* 806 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 808 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 810 */
+ 0x13, 0x0, /* FC_OP */
+/* 812 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (786) */
+/* 814 */
+ 0x1b, /* FC_CARRAY */
+ 0x7, /* 7 */
+/* 816 */ NdrFcShort( 0x8 ), /* 8 */
+/* 818 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 820 */ NdrFcShort( 0x0 ), /* 0 */
+/* 822 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 824 */ 0xb, /* FC_HYPER */
+ 0x5b, /* FC_END */
+/* 826 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 828 */ NdrFcShort( 0x10 ), /* 16 */
+/* 830 */ NdrFcShort( 0x0 ), /* 0 */
+/* 832 */ NdrFcShort( 0x6 ), /* Offset= 6 (838) */
+/* 834 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 836 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 838 */
+ 0x13, 0x0, /* FC_OP */
+/* 840 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (814) */
+/* 842 */
+ 0x15, /* FC_STRUCT */
+ 0x3, /* 3 */
+/* 844 */ NdrFcShort( 0x8 ), /* 8 */
+/* 846 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 848 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 850 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 852 */ NdrFcShort( 0x8 ), /* 8 */
+/* 854 */ 0x7, /* Corr desc: FC_USHORT */
+ 0x0, /* */
+/* 856 */ NdrFcShort( 0xffc8 ), /* -56 */
+/* 858 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 860 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 862 */ NdrFcShort( 0xffec ), /* Offset= -20 (842) */
+/* 864 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 866 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 868 */ NdrFcShort( 0x38 ), /* 56 */
+/* 870 */ NdrFcShort( 0xffec ), /* Offset= -20 (850) */
+/* 872 */ NdrFcShort( 0x0 ), /* Offset= 0 (872) */
+/* 874 */ 0x6, /* FC_SHORT */
+ 0x6, /* FC_SHORT */
+/* 876 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 878 */ 0x40, /* FC_STRUCTPAD4 */
+ 0x4c, /* FC_EMBEDDED_COMPLEX */
+/* 880 */ 0x0, /* 0 */
+ NdrFcShort( 0xfe0f ), /* Offset= -497 (384) */
+ 0x5b, /* FC_END */
+/* 884 */
+ 0x13, 0x0, /* FC_OP */
+/* 886 */ NdrFcShort( 0xff04 ), /* Offset= -252 (634) */
+/* 888 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 890 */ 0x1, /* FC_BYTE */
+ 0x5c, /* FC_PAD */
+/* 892 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 894 */ 0x6, /* FC_SHORT */
+ 0x5c, /* FC_PAD */
+/* 896 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 898 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+/* 900 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 902 */ 0xb, /* FC_HYPER */
+ 0x5c, /* FC_PAD */
+/* 904 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 906 */ 0xa, /* FC_FLOAT */
+ 0x5c, /* FC_PAD */
+/* 908 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 910 */ 0xc, /* FC_DOUBLE */
+ 0x5c, /* FC_PAD */
+/* 912 */
+ 0x13, 0x0, /* FC_OP */
+/* 914 */ NdrFcShort( 0xfda2 ), /* Offset= -606 (308) */
+/* 916 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 918 */ NdrFcShort( 0xfda4 ), /* Offset= -604 (314) */
+/* 920 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 922 */ NdrFcShort( 0xfdba ), /* Offset= -582 (340) */
+/* 924 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 926 */ NdrFcShort( 0xfdc8 ), /* Offset= -568 (358) */
+/* 928 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 930 */ NdrFcShort( 0xfdd6 ), /* Offset= -554 (376) */
+/* 932 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 934 */ NdrFcShort( 0x2 ), /* Offset= 2 (936) */
+/* 936 */
+ 0x13, 0x0, /* FC_OP */
+/* 938 */ NdrFcShort( 0x14 ), /* Offset= 20 (958) */
+/* 940 */
+ 0x15, /* FC_STRUCT */
+ 0x7, /* 7 */
+/* 942 */ NdrFcShort( 0x10 ), /* 16 */
+/* 944 */ 0x6, /* FC_SHORT */
+ 0x1, /* FC_BYTE */
+/* 946 */ 0x1, /* FC_BYTE */
+ 0x8, /* FC_LONG */
+/* 948 */ 0xb, /* FC_HYPER */
+ 0x5b, /* FC_END */
+/* 950 */
+ 0x13, 0x0, /* FC_OP */
+/* 952 */ NdrFcShort( 0xfff4 ), /* Offset= -12 (940) */
+/* 954 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 956 */ 0x2, /* FC_CHAR */
+ 0x5c, /* FC_PAD */
+/* 958 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x7, /* 7 */
+/* 960 */ NdrFcShort( 0x20 ), /* 32 */
+/* 962 */ NdrFcShort( 0x0 ), /* 0 */
+/* 964 */ NdrFcShort( 0x0 ), /* Offset= 0 (964) */
+/* 966 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 968 */ 0x6, /* FC_SHORT */
+ 0x6, /* FC_SHORT */
+/* 970 */ 0x6, /* FC_SHORT */
+ 0x6, /* FC_SHORT */
+/* 972 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 974 */ NdrFcShort( 0xfc3c ), /* Offset= -964 (10) */
+/* 976 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 978 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 980 */ NdrFcShort( 0x0 ), /* 0 */
+/* 982 */ NdrFcShort( 0x18 ), /* 24 */
+/* 984 */ NdrFcShort( 0x0 ), /* 0 */
+/* 986 */ NdrFcShort( 0xfc2c ), /* Offset= -980 (6) */
+/* 988 */
+ 0x11, 0x0, /* FC_RP */
+/* 990 */ NdrFcShort( 0x6 ), /* Offset= 6 (996) */
+/* 992 */
+ 0x12, 0x0, /* FC_UP */
+/* 994 */ NdrFcShort( 0xffdc ), /* Offset= -36 (958) */
+/* 996 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 998 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1000 */ NdrFcShort( 0x18 ), /* 24 */
+/* 1002 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1004 */ NdrFcShort( 0xfff4 ), /* Offset= -12 (992) */
+
+ 0x0
+ }
+ };
+
+static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
+ {
+
+ {
+ VARIANT_UserSize
+ ,VARIANT_UserMarshal
+ ,VARIANT_UserUnmarshal
+ ,VARIANT_UserFree
+ }
+
+ };
+
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IAccessibleValue, ver. 0.0,
+ GUID={0x35855B5B,0xC566,0x4fd0,{0xA7,0xB1,0xE6,0x54,0x65,0x60,0x03,0x94}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleValue_FormatStringOffsetTable[] =
+ {
+ 0,
+ 38,
+ 76,
+ 114
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleValue_ProxyInfo =
+ {
+ &Object_StubDesc,
+ AccessibleValue__MIDL_ProcFormatString.Format,
+ &IAccessibleValue_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleValue_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ AccessibleValue__MIDL_ProcFormatString.Format,
+ &IAccessibleValue_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(7) _IAccessibleValueProxyVtbl =
+{
+ &IAccessibleValue_ProxyInfo,
+ &IID_IAccessibleValue,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleValue::get_currentValue */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleValue::setCurrentValue */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleValue::get_maximumValue */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleValue::get_minimumValue */
+};
+
+const CInterfaceStubVtbl _IAccessibleValueStubVtbl =
+{
+ &IID_IAccessibleValue,
+ &IAccessibleValue_ServerInfo,
+ 7,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ AccessibleValue__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x700022b, /* MIDL Version 7.0.555 */
+ 0,
+ UserMarshalRoutines,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _AccessibleValue_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_IAccessibleValueProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _AccessibleValue_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_IAccessibleValueStubVtbl,
+ 0
+};
+
+PCInterfaceName const _AccessibleValue_InterfaceNamesList[] =
+{
+ "IAccessibleValue",
+ 0
+};
+
+
+#define _AccessibleValue_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleValue, pIID, n)
+
+int __stdcall _AccessibleValue_IID_Lookup( const IID * pIID, int * pIndex )
+{
+
+ if(!_AccessibleValue_CHECK_IID(0))
+ {
+ *pIndex = 0;
+ return 1;
+ }
+
+ return 0;
+}
+
+const ExtendedProxyFileInfo AccessibleValue_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _AccessibleValue_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _AccessibleValue_StubVtblList,
+ (const PCInterfaceName * ) & _AccessibleValue_InterfaceNamesList,
+ 0, /* no delegation */
+ & _AccessibleValue_IID_Lookup,
+ 1,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* defined(_M_AMD64)*/
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/IA2CommonTypes.h b/src/3rdparty/iaccessible2/generated/amd64/IA2CommonTypes.h
new file mode 100644
index 0000000000..5b5a313541
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/IA2CommonTypes.h
@@ -0,0 +1,102 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:54:00 2012
+ */
+/* Compiler settings for IA2CommonTypes.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+
+#ifndef __IA2CommonTypes_h__
+#define __IA2CommonTypes_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/* interface __MIDL_itf_IA2CommonTypes_0000_0000 */
+/* [local] */
+
+
+enum IA2ScrollType
+ { IA2_SCROLL_TYPE_TOP_LEFT = 0,
+ IA2_SCROLL_TYPE_BOTTOM_RIGHT = ( IA2_SCROLL_TYPE_TOP_LEFT + 1 ) ,
+ IA2_SCROLL_TYPE_TOP_EDGE = ( IA2_SCROLL_TYPE_BOTTOM_RIGHT + 1 ) ,
+ IA2_SCROLL_TYPE_BOTTOM_EDGE = ( IA2_SCROLL_TYPE_TOP_EDGE + 1 ) ,
+ IA2_SCROLL_TYPE_LEFT_EDGE = ( IA2_SCROLL_TYPE_BOTTOM_EDGE + 1 ) ,
+ IA2_SCROLL_TYPE_RIGHT_EDGE = ( IA2_SCROLL_TYPE_LEFT_EDGE + 1 ) ,
+ IA2_SCROLL_TYPE_ANYWHERE = ( IA2_SCROLL_TYPE_RIGHT_EDGE + 1 )
+ } ;
+
+enum IA2CoordinateType
+ { IA2_COORDTYPE_SCREEN_RELATIVE = 0,
+ IA2_COORDTYPE_PARENT_RELATIVE = ( IA2_COORDTYPE_SCREEN_RELATIVE + 1 )
+ } ;
+
+enum IA2TextSpecialOffsets
+ { IA2_TEXT_OFFSET_LENGTH = -1,
+ IA2_TEXT_OFFSET_CARET = -2
+ } ;
+
+enum IA2TableModelChangeType
+ { IA2_TABLE_MODEL_CHANGE_INSERT = 0,
+ IA2_TABLE_MODEL_CHANGE_DELETE = ( IA2_TABLE_MODEL_CHANGE_INSERT + 1 ) ,
+ IA2_TABLE_MODEL_CHANGE_UPDATE = ( IA2_TABLE_MODEL_CHANGE_DELETE + 1 )
+ } ;
+typedef struct IA2TableModelChange
+ {
+ enum IA2TableModelChangeType type;
+ long firstRow;
+ long lastRow;
+ long firstColumn;
+ long lastColumn;
+ } IA2TableModelChange;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_IA2CommonTypes_0000_0000_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_IA2CommonTypes_0000_0000_v0_0_s_ifspec;
+
+/* Additional Prototypes for ALL interfaces */
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/IA2TypeLibrary.h b/src/3rdparty/iaccessible2/generated/amd64/IA2TypeLibrary.h
new file mode 100644
index 0000000000..31142c6b44
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/IA2TypeLibrary.h
@@ -0,0 +1,103 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:54:00 2012
+ */
+/* Compiler settings for IA2TypeLibrary.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+
+#ifndef __IA2TypeLibrary_h__
+#define __IA2TypeLibrary_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/* interface __MIDL_itf_IA2TypeLibrary_0000_0000 */
+/* [local] */
+
+
+// Type Library Definitions
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_IA2TypeLibrary_0000_0000_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_IA2TypeLibrary_0000_0000_v0_0_s_ifspec;
+
+
+#ifndef __IAccessible2Lib_LIBRARY_DEFINED__
+#define __IAccessible2Lib_LIBRARY_DEFINED__
+
+/* library IAccessible2Lib */
+/* [hidden][version][helpstring][uuid] */
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+EXTERN_C const IID LIBID_IAccessible2Lib;
+#endif /* __IAccessible2Lib_LIBRARY_DEFINED__ */
+
+/* Additional Prototypes for ALL interfaces */
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/IA2TypeLibrary.tlb b/src/3rdparty/iaccessible2/generated/amd64/IA2TypeLibrary.tlb
new file mode 100644
index 0000000000..44e7cdc173
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/IA2TypeLibrary.tlb
Binary files differ
diff --git a/src/3rdparty/iaccessible2/generated/amd64/IA2TypeLibrary_i.c b/src/3rdparty/iaccessible2/generated/amd64/IA2TypeLibrary_i.c
new file mode 100644
index 0000000000..f3eabd2c49
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/IA2TypeLibrary_i.c
@@ -0,0 +1,79 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:54:00 2012
+ */
+/* Compiler settings for IA2TypeLibrary.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, LIBID_IAccessible2Lib,0xc974e070,0x3787,0x490a,0x87,0xb0,0xe3,0x33,0xb0,0x6c,0xa1,0xe2);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/dlldata.c b/src/3rdparty/iaccessible2/generated/amd64/dlldata.c
new file mode 100644
index 0000000000..e1e15a1fc0
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/dlldata.c
@@ -0,0 +1,64 @@
+/*********************************************************
+ DllData file -- generated by MIDL compiler
+
+ DO NOT ALTER THIS FILE
+
+ This file is regenerated by MIDL on every IDL file compile.
+
+ To completely reconstruct this file, delete it and rerun MIDL
+ on all the IDL files in this DLL, specifying this file for the
+ /dlldata command line option
+
+*********************************************************/
+
+#define PROXY_DELEGATION
+
+#include <rpcproxy.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EXTERN_PROXY_FILE( Accessible2 )
+EXTERN_PROXY_FILE( AccessibleAction )
+EXTERN_PROXY_FILE( AccessibleApplication )
+EXTERN_PROXY_FILE( AccessibleComponent )
+EXTERN_PROXY_FILE( AccessibleEditableText )
+EXTERN_PROXY_FILE( AccessibleHyperlink )
+EXTERN_PROXY_FILE( AccessibleHypertext )
+EXTERN_PROXY_FILE( AccessibleImage )
+EXTERN_PROXY_FILE( AccessibleRelation )
+EXTERN_PROXY_FILE( AccessibleTable )
+EXTERN_PROXY_FILE( AccessibleTable2 )
+EXTERN_PROXY_FILE( AccessibleTableCell )
+EXTERN_PROXY_FILE( AccessibleText )
+EXTERN_PROXY_FILE( AccessibleValue )
+
+
+PROXYFILE_LIST_START
+/* Start of list */
+ REFERENCE_PROXY_FILE( Accessible2 ),
+ REFERENCE_PROXY_FILE( AccessibleAction ),
+ REFERENCE_PROXY_FILE( AccessibleApplication ),
+ REFERENCE_PROXY_FILE( AccessibleComponent ),
+ REFERENCE_PROXY_FILE( AccessibleEditableText ),
+ REFERENCE_PROXY_FILE( AccessibleHyperlink ),
+ REFERENCE_PROXY_FILE( AccessibleHypertext ),
+ REFERENCE_PROXY_FILE( AccessibleImage ),
+ REFERENCE_PROXY_FILE( AccessibleRelation ),
+ REFERENCE_PROXY_FILE( AccessibleTable ),
+ REFERENCE_PROXY_FILE( AccessibleTable2 ),
+ REFERENCE_PROXY_FILE( AccessibleTableCell ),
+ REFERENCE_PROXY_FILE( AccessibleText ),
+ REFERENCE_PROXY_FILE( AccessibleValue ),
+/* End of list */
+PROXYFILE_LIST_END
+
+
+DLLDATA_ROUTINES( aProxyFileList, GET_DLL_CLSID )
+
+#ifdef __cplusplus
+} /*extern "C" */
+#endif
+
+/* end of generated dlldata file */
diff --git a/src/3rdparty/iaccessible2/generated/x86/Accessible2.h b/src/3rdparty/iaccessible2/generated/x86/Accessible2.h
new file mode 100644
index 0000000000..dcf13c0d32
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/Accessible2.h
@@ -0,0 +1,585 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:51 2012
+ */
+/* Compiler settings for Accessible2.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __Accessible2_h__
+#define __Accessible2_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IAccessible2_FWD_DEFINED__
+#define __IAccessible2_FWD_DEFINED__
+typedef interface IAccessible2 IAccessible2;
+#endif /* __IAccessible2_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "objidl.h"
+#include "oaidl.h"
+#include "oleacc.h"
+#include "AccessibleRelation.h"
+#include "AccessibleStates.h"
+#include "IA2CommonTypes.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/* interface __MIDL_itf_Accessible2_0000_0000 */
+/* [local] */
+
+typedef struct IA2Locale
+ {
+ BSTR language;
+ BSTR country;
+ BSTR variant;
+ } IA2Locale;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_Accessible2_0000_0000_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_Accessible2_0000_0000_v0_0_s_ifspec;
+
+#ifndef __IAccessible2_INTERFACE_DEFINED__
+#define __IAccessible2_INTERFACE_DEFINED__
+
+/* interface IAccessible2 */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessible2;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("E89F726E-C4F4-4c19-BB19-B647D7FA8478")
+ IAccessible2 : public IAccessible
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nRelations(
+ /* [retval][out] */ long *nRelations) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_relation(
+ /* [in] */ long relationIndex,
+ /* [retval][out] */ IAccessibleRelation **relation) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_relations(
+ /* [in] */ long maxRelations,
+ /* [length_is][size_is][out] */ IAccessibleRelation **relations,
+ /* [retval][out] */ long *nRelations) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE role(
+ /* [retval][out] */ long *role) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE scrollTo(
+ /* [in] */ enum IA2ScrollType scrollType) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE scrollToPoint(
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_groupPosition(
+ /* [out] */ long *groupLevel,
+ /* [out] */ long *similarItemsInGroup,
+ /* [retval][out] */ long *positionInGroup) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_states(
+ /* [retval][out] */ AccessibleStates *states) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_extendedRole(
+ /* [retval][out] */ BSTR *extendedRole) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_localizedExtendedRole(
+ /* [retval][out] */ BSTR *localizedExtendedRole) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nExtendedStates(
+ /* [retval][out] */ long *nExtendedStates) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_extendedStates(
+ /* [in] */ long maxExtendedStates,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **extendedStates,
+ /* [retval][out] */ long *nExtendedStates) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_localizedExtendedStates(
+ /* [in] */ long maxLocalizedExtendedStates,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **localizedExtendedStates,
+ /* [retval][out] */ long *nLocalizedExtendedStates) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_uniqueID(
+ /* [retval][out] */ long *uniqueID) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_windowHandle(
+ /* [retval][out] */ HWND *windowHandle) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_indexInParent(
+ /* [retval][out] */ long *indexInParent) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_locale(
+ /* [retval][out] */ IA2Locale *locale) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_attributes(
+ /* [retval][out] */ BSTR *attributes) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessible2Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessible2 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessible2 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessible2 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ IAccessible2 * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ IAccessible2 * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ IAccessible2 * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [range][in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ IAccessible2 * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accParent )(
+ IAccessible2 * This,
+ /* [retval][out] */ IDispatch **ppdispParent);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChildCount )(
+ IAccessible2 * This,
+ /* [retval][out] */ long *pcountChildren);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChild )(
+ IAccessible2 * This,
+ /* [in] */ VARIANT varChild,
+ /* [retval][out] */ IDispatch **ppdispChild);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accName )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszName);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accValue )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszValue);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDescription )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszDescription);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accRole )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ VARIANT *pvarRole);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accState )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ VARIANT *pvarState);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelp )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszHelp);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelpTopic )(
+ IAccessible2 * This,
+ /* [out] */ BSTR *pszHelpFile,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ long *pidTopic);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accKeyboardShortcut )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszKeyboardShortcut);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accFocus )(
+ IAccessible2 * This,
+ /* [retval][out] */ VARIANT *pvarChild);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accSelection )(
+ IAccessible2 * This,
+ /* [retval][out] */ VARIANT *pvarChildren);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDefaultAction )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszDefaultAction);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accSelect )(
+ IAccessible2 * This,
+ /* [in] */ long flagsSelect,
+ /* [optional][in] */ VARIANT varChild);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accLocation )(
+ IAccessible2 * This,
+ /* [out] */ long *pxLeft,
+ /* [out] */ long *pyTop,
+ /* [out] */ long *pcxWidth,
+ /* [out] */ long *pcyHeight,
+ /* [optional][in] */ VARIANT varChild);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accNavigate )(
+ IAccessible2 * This,
+ /* [in] */ long navDir,
+ /* [optional][in] */ VARIANT varStart,
+ /* [retval][out] */ VARIANT *pvarEndUpAt);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accHitTest )(
+ IAccessible2 * This,
+ /* [in] */ long xLeft,
+ /* [in] */ long yTop,
+ /* [retval][out] */ VARIANT *pvarChild);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accDoDefaultAction )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild);
+
+ /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accName )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [in] */ BSTR szName);
+
+ /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accValue )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [in] */ BSTR szValue);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRelations )(
+ IAccessible2 * This,
+ /* [retval][out] */ long *nRelations);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relation )(
+ IAccessible2 * This,
+ /* [in] */ long relationIndex,
+ /* [retval][out] */ IAccessibleRelation **relation);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relations )(
+ IAccessible2 * This,
+ /* [in] */ long maxRelations,
+ /* [length_is][size_is][out] */ IAccessibleRelation **relations,
+ /* [retval][out] */ long *nRelations);
+
+ HRESULT ( STDMETHODCALLTYPE *role )(
+ IAccessible2 * This,
+ /* [retval][out] */ long *role);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollTo )(
+ IAccessible2 * This,
+ /* [in] */ enum IA2ScrollType scrollType);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollToPoint )(
+ IAccessible2 * This,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_groupPosition )(
+ IAccessible2 * This,
+ /* [out] */ long *groupLevel,
+ /* [out] */ long *similarItemsInGroup,
+ /* [retval][out] */ long *positionInGroup);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_states )(
+ IAccessible2 * This,
+ /* [retval][out] */ AccessibleStates *states);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedRole )(
+ IAccessible2 * This,
+ /* [retval][out] */ BSTR *extendedRole);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedRole )(
+ IAccessible2 * This,
+ /* [retval][out] */ BSTR *localizedExtendedRole);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nExtendedStates )(
+ IAccessible2 * This,
+ /* [retval][out] */ long *nExtendedStates);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedStates )(
+ IAccessible2 * This,
+ /* [in] */ long maxExtendedStates,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **extendedStates,
+ /* [retval][out] */ long *nExtendedStates);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedStates )(
+ IAccessible2 * This,
+ /* [in] */ long maxLocalizedExtendedStates,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **localizedExtendedStates,
+ /* [retval][out] */ long *nLocalizedExtendedStates);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_uniqueID )(
+ IAccessible2 * This,
+ /* [retval][out] */ long *uniqueID);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_windowHandle )(
+ IAccessible2 * This,
+ /* [retval][out] */ HWND *windowHandle);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_indexInParent )(
+ IAccessible2 * This,
+ /* [retval][out] */ long *indexInParent);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_locale )(
+ IAccessible2 * This,
+ /* [retval][out] */ IA2Locale *locale);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )(
+ IAccessible2 * This,
+ /* [retval][out] */ BSTR *attributes);
+
+ END_INTERFACE
+ } IAccessible2Vtbl;
+
+ interface IAccessible2
+ {
+ CONST_VTBL struct IAccessible2Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessible2_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessible2_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessible2_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessible2_GetTypeInfoCount(This,pctinfo) \
+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IAccessible2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IAccessible2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IAccessible2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IAccessible2_get_accParent(This,ppdispParent) \
+ ( (This)->lpVtbl -> get_accParent(This,ppdispParent) )
+
+#define IAccessible2_get_accChildCount(This,pcountChildren) \
+ ( (This)->lpVtbl -> get_accChildCount(This,pcountChildren) )
+
+#define IAccessible2_get_accChild(This,varChild,ppdispChild) \
+ ( (This)->lpVtbl -> get_accChild(This,varChild,ppdispChild) )
+
+#define IAccessible2_get_accName(This,varChild,pszName) \
+ ( (This)->lpVtbl -> get_accName(This,varChild,pszName) )
+
+#define IAccessible2_get_accValue(This,varChild,pszValue) \
+ ( (This)->lpVtbl -> get_accValue(This,varChild,pszValue) )
+
+#define IAccessible2_get_accDescription(This,varChild,pszDescription) \
+ ( (This)->lpVtbl -> get_accDescription(This,varChild,pszDescription) )
+
+#define IAccessible2_get_accRole(This,varChild,pvarRole) \
+ ( (This)->lpVtbl -> get_accRole(This,varChild,pvarRole) )
+
+#define IAccessible2_get_accState(This,varChild,pvarState) \
+ ( (This)->lpVtbl -> get_accState(This,varChild,pvarState) )
+
+#define IAccessible2_get_accHelp(This,varChild,pszHelp) \
+ ( (This)->lpVtbl -> get_accHelp(This,varChild,pszHelp) )
+
+#define IAccessible2_get_accHelpTopic(This,pszHelpFile,varChild,pidTopic) \
+ ( (This)->lpVtbl -> get_accHelpTopic(This,pszHelpFile,varChild,pidTopic) )
+
+#define IAccessible2_get_accKeyboardShortcut(This,varChild,pszKeyboardShortcut) \
+ ( (This)->lpVtbl -> get_accKeyboardShortcut(This,varChild,pszKeyboardShortcut) )
+
+#define IAccessible2_get_accFocus(This,pvarChild) \
+ ( (This)->lpVtbl -> get_accFocus(This,pvarChild) )
+
+#define IAccessible2_get_accSelection(This,pvarChildren) \
+ ( (This)->lpVtbl -> get_accSelection(This,pvarChildren) )
+
+#define IAccessible2_get_accDefaultAction(This,varChild,pszDefaultAction) \
+ ( (This)->lpVtbl -> get_accDefaultAction(This,varChild,pszDefaultAction) )
+
+#define IAccessible2_accSelect(This,flagsSelect,varChild) \
+ ( (This)->lpVtbl -> accSelect(This,flagsSelect,varChild) )
+
+#define IAccessible2_accLocation(This,pxLeft,pyTop,pcxWidth,pcyHeight,varChild) \
+ ( (This)->lpVtbl -> accLocation(This,pxLeft,pyTop,pcxWidth,pcyHeight,varChild) )
+
+#define IAccessible2_accNavigate(This,navDir,varStart,pvarEndUpAt) \
+ ( (This)->lpVtbl -> accNavigate(This,navDir,varStart,pvarEndUpAt) )
+
+#define IAccessible2_accHitTest(This,xLeft,yTop,pvarChild) \
+ ( (This)->lpVtbl -> accHitTest(This,xLeft,yTop,pvarChild) )
+
+#define IAccessible2_accDoDefaultAction(This,varChild) \
+ ( (This)->lpVtbl -> accDoDefaultAction(This,varChild) )
+
+#define IAccessible2_put_accName(This,varChild,szName) \
+ ( (This)->lpVtbl -> put_accName(This,varChild,szName) )
+
+#define IAccessible2_put_accValue(This,varChild,szValue) \
+ ( (This)->lpVtbl -> put_accValue(This,varChild,szValue) )
+
+
+#define IAccessible2_get_nRelations(This,nRelations) \
+ ( (This)->lpVtbl -> get_nRelations(This,nRelations) )
+
+#define IAccessible2_get_relation(This,relationIndex,relation) \
+ ( (This)->lpVtbl -> get_relation(This,relationIndex,relation) )
+
+#define IAccessible2_get_relations(This,maxRelations,relations,nRelations) \
+ ( (This)->lpVtbl -> get_relations(This,maxRelations,relations,nRelations) )
+
+#define IAccessible2_role(This,role) \
+ ( (This)->lpVtbl -> role(This,role) )
+
+#define IAccessible2_scrollTo(This,scrollType) \
+ ( (This)->lpVtbl -> scrollTo(This,scrollType) )
+
+#define IAccessible2_scrollToPoint(This,coordinateType,x,y) \
+ ( (This)->lpVtbl -> scrollToPoint(This,coordinateType,x,y) )
+
+#define IAccessible2_get_groupPosition(This,groupLevel,similarItemsInGroup,positionInGroup) \
+ ( (This)->lpVtbl -> get_groupPosition(This,groupLevel,similarItemsInGroup,positionInGroup) )
+
+#define IAccessible2_get_states(This,states) \
+ ( (This)->lpVtbl -> get_states(This,states) )
+
+#define IAccessible2_get_extendedRole(This,extendedRole) \
+ ( (This)->lpVtbl -> get_extendedRole(This,extendedRole) )
+
+#define IAccessible2_get_localizedExtendedRole(This,localizedExtendedRole) \
+ ( (This)->lpVtbl -> get_localizedExtendedRole(This,localizedExtendedRole) )
+
+#define IAccessible2_get_nExtendedStates(This,nExtendedStates) \
+ ( (This)->lpVtbl -> get_nExtendedStates(This,nExtendedStates) )
+
+#define IAccessible2_get_extendedStates(This,maxExtendedStates,extendedStates,nExtendedStates) \
+ ( (This)->lpVtbl -> get_extendedStates(This,maxExtendedStates,extendedStates,nExtendedStates) )
+
+#define IAccessible2_get_localizedExtendedStates(This,maxLocalizedExtendedStates,localizedExtendedStates,nLocalizedExtendedStates) \
+ ( (This)->lpVtbl -> get_localizedExtendedStates(This,maxLocalizedExtendedStates,localizedExtendedStates,nLocalizedExtendedStates) )
+
+#define IAccessible2_get_uniqueID(This,uniqueID) \
+ ( (This)->lpVtbl -> get_uniqueID(This,uniqueID) )
+
+#define IAccessible2_get_windowHandle(This,windowHandle) \
+ ( (This)->lpVtbl -> get_windowHandle(This,windowHandle) )
+
+#define IAccessible2_get_indexInParent(This,indexInParent) \
+ ( (This)->lpVtbl -> get_indexInParent(This,indexInParent) )
+
+#define IAccessible2_get_locale(This,locale) \
+ ( (This)->lpVtbl -> get_locale(This,locale) )
+
+#define IAccessible2_get_attributes(This,attributes) \
+ ( (This)->lpVtbl -> get_attributes(This,attributes) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessible2_INTERFACE_DEFINED__ */
+
+
+/* Additional Prototypes for ALL interfaces */
+
+unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
+unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
+unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
+void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
+
+unsigned long __RPC_USER HWND_UserSize( unsigned long *, unsigned long , HWND * );
+unsigned char * __RPC_USER HWND_UserMarshal( unsigned long *, unsigned char *, HWND * );
+unsigned char * __RPC_USER HWND_UserUnmarshal(unsigned long *, unsigned char *, HWND * );
+void __RPC_USER HWND_UserFree( unsigned long *, HWND * );
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/Accessible2_i.c b/src/3rdparty/iaccessible2/generated/x86/Accessible2_i.c
new file mode 100644
index 0000000000..df0f94063e
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/Accessible2_i.c
@@ -0,0 +1,79 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:51 2012
+ */
+/* Compiler settings for Accessible2.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_IAccessible2,0xE89F726E,0xC4F4,0x4c19,0xBB,0x19,0xB6,0x47,0xD7,0xFA,0x84,0x78);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/Accessible2_p.c b/src/3rdparty/iaccessible2/generated/x86/Accessible2_p.c
new file mode 100644
index 0000000000..abb5883868
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/Accessible2_p.c
@@ -0,0 +1,1190 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:51 2012
+ */
+/* Compiler settings for Accessible2.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if !defined(_M_IA64) && !defined(_M_AMD64)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+#pragma warning( disable: 4100 ) /* unreferenced arguments in x86 call */
+
+#pragma optimize("", off )
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "Accessible2.h"
+
+#define TYPE_FORMAT_STRING_SIZE 189
+#define PROC_FORMAT_STRING_SIZE 715
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 2
+
+typedef struct _Accessible2_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } Accessible2_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _Accessible2_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } Accessible2_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _Accessible2_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } Accessible2_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const Accessible2_MIDL_TYPE_FORMAT_STRING Accessible2__MIDL_TypeFormatString;
+extern const Accessible2_MIDL_PROC_FORMAT_STRING Accessible2__MIDL_ProcFormatString;
+extern const Accessible2_MIDL_EXPR_FORMAT_STRING Accessible2__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessible2_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessible2_ProxyInfo;
+
+
+extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
+
+#if !defined(__RPC_WIN32__)
+#error Invalid build platform for this stub.
+#endif
+
+#if !(TARGET_IS_NT50_OR_LATER)
+#error You need Windows 2000 or later to run this stub because it uses these features:
+#error /robust command line switch.
+#error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems.
+#error This app will fail with the RPC_X_WRONG_STUB_VERSION error.
+#endif
+
+
+static const Accessible2_MIDL_PROC_FORMAT_STRING Accessible2__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure get_nRelations */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x1c ), /* 28 */
+/* 8 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 10 */ NdrFcShort( 0x0 ), /* 0 */
+/* 12 */ NdrFcShort( 0x24 ), /* 36 */
+/* 14 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 16 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 18 */ NdrFcShort( 0x0 ), /* 0 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nRelations */
+
+/* 24 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 26 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 28 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 30 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 32 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 34 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_relation */
+
+/* 36 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 38 */ NdrFcLong( 0x0 ), /* 0 */
+/* 42 */ NdrFcShort( 0x1d ), /* 29 */
+/* 44 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 46 */ NdrFcShort( 0x8 ), /* 8 */
+/* 48 */ NdrFcShort( 0x8 ), /* 8 */
+/* 50 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 52 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 54 */ NdrFcShort( 0x0 ), /* 0 */
+/* 56 */ NdrFcShort( 0x0 ), /* 0 */
+/* 58 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter relationIndex */
+
+/* 60 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 62 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 64 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter relation */
+
+/* 66 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 68 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 70 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
+
+ /* Return value */
+
+/* 72 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 74 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 76 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_relations */
+
+/* 78 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 80 */ NdrFcLong( 0x0 ), /* 0 */
+/* 84 */ NdrFcShort( 0x1e ), /* 30 */
+/* 86 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 88 */ NdrFcShort( 0x8 ), /* 8 */
+/* 90 */ NdrFcShort( 0x24 ), /* 36 */
+/* 92 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 94 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 96 */ NdrFcShort( 0x1 ), /* 1 */
+/* 98 */ NdrFcShort( 0x0 ), /* 0 */
+/* 100 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxRelations */
+
+/* 102 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 104 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 106 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter relations */
+
+/* 108 */ NdrFcShort( 0x113 ), /* Flags: must size, must free, out, simple ref, */
+/* 110 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 112 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Parameter nRelations */
+
+/* 114 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 116 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 118 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 120 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 122 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 124 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure role */
+
+/* 126 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 128 */ NdrFcLong( 0x0 ), /* 0 */
+/* 132 */ NdrFcShort( 0x1f ), /* 31 */
+/* 134 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 136 */ NdrFcShort( 0x0 ), /* 0 */
+/* 138 */ NdrFcShort( 0x24 ), /* 36 */
+/* 140 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 142 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 144 */ NdrFcShort( 0x0 ), /* 0 */
+/* 146 */ NdrFcShort( 0x0 ), /* 0 */
+/* 148 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter role */
+
+/* 150 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 152 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 154 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 156 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 158 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 160 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure scrollTo */
+
+/* 162 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 164 */ NdrFcLong( 0x0 ), /* 0 */
+/* 168 */ NdrFcShort( 0x20 ), /* 32 */
+/* 170 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 172 */ NdrFcShort( 0x6 ), /* 6 */
+/* 174 */ NdrFcShort( 0x8 ), /* 8 */
+/* 176 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 178 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 180 */ NdrFcShort( 0x0 ), /* 0 */
+/* 182 */ NdrFcShort( 0x0 ), /* 0 */
+/* 184 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter scrollType */
+
+/* 186 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 188 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 190 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 192 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 194 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 196 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure scrollToPoint */
+
+/* 198 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 200 */ NdrFcLong( 0x0 ), /* 0 */
+/* 204 */ NdrFcShort( 0x21 ), /* 33 */
+/* 206 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 208 */ NdrFcShort( 0x16 ), /* 22 */
+/* 210 */ NdrFcShort( 0x8 ), /* 8 */
+/* 212 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 214 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 216 */ NdrFcShort( 0x0 ), /* 0 */
+/* 218 */ NdrFcShort( 0x0 ), /* 0 */
+/* 220 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter coordinateType */
+
+/* 222 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 224 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 226 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter x */
+
+/* 228 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 230 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 232 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 234 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 236 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 238 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 240 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 242 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 244 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_groupPosition */
+
+/* 246 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 248 */ NdrFcLong( 0x0 ), /* 0 */
+/* 252 */ NdrFcShort( 0x22 ), /* 34 */
+/* 254 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 256 */ NdrFcShort( 0x0 ), /* 0 */
+/* 258 */ NdrFcShort( 0x5c ), /* 92 */
+/* 260 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 262 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 264 */ NdrFcShort( 0x0 ), /* 0 */
+/* 266 */ NdrFcShort( 0x0 ), /* 0 */
+/* 268 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter groupLevel */
+
+/* 270 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 272 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 274 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter similarItemsInGroup */
+
+/* 276 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 278 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 280 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter positionInGroup */
+
+/* 282 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 284 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 286 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 288 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 290 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 292 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_states */
+
+/* 294 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 296 */ NdrFcLong( 0x0 ), /* 0 */
+/* 300 */ NdrFcShort( 0x23 ), /* 35 */
+/* 302 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 304 */ NdrFcShort( 0x0 ), /* 0 */
+/* 306 */ NdrFcShort( 0x24 ), /* 36 */
+/* 308 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 310 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 312 */ NdrFcShort( 0x0 ), /* 0 */
+/* 314 */ NdrFcShort( 0x0 ), /* 0 */
+/* 316 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter states */
+
+/* 318 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 320 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 322 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 324 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 326 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 328 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_extendedRole */
+
+/* 330 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 332 */ NdrFcLong( 0x0 ), /* 0 */
+/* 336 */ NdrFcShort( 0x24 ), /* 36 */
+/* 338 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 340 */ NdrFcShort( 0x0 ), /* 0 */
+/* 342 */ NdrFcShort( 0x8 ), /* 8 */
+/* 344 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 346 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 348 */ NdrFcShort( 0x1 ), /* 1 */
+/* 350 */ NdrFcShort( 0x0 ), /* 0 */
+/* 352 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter extendedRole */
+
+/* 354 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 356 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 358 */ NdrFcShort( 0x54 ), /* Type Offset=84 */
+
+ /* Return value */
+
+/* 360 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 362 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 364 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_localizedExtendedRole */
+
+/* 366 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 368 */ NdrFcLong( 0x0 ), /* 0 */
+/* 372 */ NdrFcShort( 0x25 ), /* 37 */
+/* 374 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 376 */ NdrFcShort( 0x0 ), /* 0 */
+/* 378 */ NdrFcShort( 0x8 ), /* 8 */
+/* 380 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 382 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 384 */ NdrFcShort( 0x1 ), /* 1 */
+/* 386 */ NdrFcShort( 0x0 ), /* 0 */
+/* 388 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter localizedExtendedRole */
+
+/* 390 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 392 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 394 */ NdrFcShort( 0x54 ), /* Type Offset=84 */
+
+ /* Return value */
+
+/* 396 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 398 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 400 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nExtendedStates */
+
+/* 402 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 404 */ NdrFcLong( 0x0 ), /* 0 */
+/* 408 */ NdrFcShort( 0x26 ), /* 38 */
+/* 410 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 412 */ NdrFcShort( 0x0 ), /* 0 */
+/* 414 */ NdrFcShort( 0x24 ), /* 36 */
+/* 416 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 418 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 420 */ NdrFcShort( 0x0 ), /* 0 */
+/* 422 */ NdrFcShort( 0x0 ), /* 0 */
+/* 424 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nExtendedStates */
+
+/* 426 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 428 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 430 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 432 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 434 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 436 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_extendedStates */
+
+/* 438 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 440 */ NdrFcLong( 0x0 ), /* 0 */
+/* 444 */ NdrFcShort( 0x27 ), /* 39 */
+/* 446 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 448 */ NdrFcShort( 0x8 ), /* 8 */
+/* 450 */ NdrFcShort( 0x24 ), /* 36 */
+/* 452 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 454 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 456 */ NdrFcShort( 0x1 ), /* 1 */
+/* 458 */ NdrFcShort( 0x0 ), /* 0 */
+/* 460 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxExtendedStates */
+
+/* 462 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 464 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 466 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter extendedStates */
+
+/* 468 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 470 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 472 */ NdrFcShort( 0x5e ), /* Type Offset=94 */
+
+ /* Parameter nExtendedStates */
+
+/* 474 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 476 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 478 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 480 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 482 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 484 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_localizedExtendedStates */
+
+/* 486 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 488 */ NdrFcLong( 0x0 ), /* 0 */
+/* 492 */ NdrFcShort( 0x28 ), /* 40 */
+/* 494 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 496 */ NdrFcShort( 0x8 ), /* 8 */
+/* 498 */ NdrFcShort( 0x24 ), /* 36 */
+/* 500 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 502 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 504 */ NdrFcShort( 0x1 ), /* 1 */
+/* 506 */ NdrFcShort( 0x0 ), /* 0 */
+/* 508 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxLocalizedExtendedStates */
+
+/* 510 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 512 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 514 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter localizedExtendedStates */
+
+/* 516 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 518 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 520 */ NdrFcShort( 0x5e ), /* Type Offset=94 */
+
+ /* Parameter nLocalizedExtendedStates */
+
+/* 522 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 524 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 526 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 528 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 530 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 532 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_uniqueID */
+
+/* 534 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 536 */ NdrFcLong( 0x0 ), /* 0 */
+/* 540 */ NdrFcShort( 0x29 ), /* 41 */
+/* 542 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 544 */ NdrFcShort( 0x0 ), /* 0 */
+/* 546 */ NdrFcShort( 0x24 ), /* 36 */
+/* 548 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 550 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 552 */ NdrFcShort( 0x0 ), /* 0 */
+/* 554 */ NdrFcShort( 0x0 ), /* 0 */
+/* 556 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter uniqueID */
+
+/* 558 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 560 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 562 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 564 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 566 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 568 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_windowHandle */
+
+/* 570 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 572 */ NdrFcLong( 0x0 ), /* 0 */
+/* 576 */ NdrFcShort( 0x2a ), /* 42 */
+/* 578 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 580 */ NdrFcShort( 0x0 ), /* 0 */
+/* 582 */ NdrFcShort( 0x8 ), /* 8 */
+/* 584 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 586 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 588 */ NdrFcShort( 0x1 ), /* 1 */
+/* 590 */ NdrFcShort( 0x0 ), /* 0 */
+/* 592 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter windowHandle */
+
+/* 594 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 596 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 598 */ NdrFcShort( 0x98 ), /* Type Offset=152 */
+
+ /* Return value */
+
+/* 600 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 602 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 604 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_indexInParent */
+
+/* 606 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 608 */ NdrFcLong( 0x0 ), /* 0 */
+/* 612 */ NdrFcShort( 0x2b ), /* 43 */
+/* 614 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 616 */ NdrFcShort( 0x0 ), /* 0 */
+/* 618 */ NdrFcShort( 0x24 ), /* 36 */
+/* 620 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 622 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 624 */ NdrFcShort( 0x0 ), /* 0 */
+/* 626 */ NdrFcShort( 0x0 ), /* 0 */
+/* 628 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter indexInParent */
+
+/* 630 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 632 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 634 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 636 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 638 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 640 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_locale */
+
+/* 642 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 644 */ NdrFcLong( 0x0 ), /* 0 */
+/* 648 */ NdrFcShort( 0x2c ), /* 44 */
+/* 650 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 652 */ NdrFcShort( 0x0 ), /* 0 */
+/* 654 */ NdrFcShort( 0x8 ), /* 8 */
+/* 656 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 658 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 660 */ NdrFcShort( 0x1 ), /* 1 */
+/* 662 */ NdrFcShort( 0x0 ), /* 0 */
+/* 664 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter locale */
+
+/* 666 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
+/* 668 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 670 */ NdrFcShort( 0xa6 ), /* Type Offset=166 */
+
+ /* Return value */
+
+/* 672 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 674 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 676 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_attributes */
+
+/* 678 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 680 */ NdrFcLong( 0x0 ), /* 0 */
+/* 684 */ NdrFcShort( 0x2d ), /* 45 */
+/* 686 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 688 */ NdrFcShort( 0x0 ), /* 0 */
+/* 690 */ NdrFcShort( 0x8 ), /* 8 */
+/* 692 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 694 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 696 */ NdrFcShort( 0x1 ), /* 1 */
+/* 698 */ NdrFcShort( 0x0 ), /* 0 */
+/* 700 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter attributes */
+
+/* 702 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 704 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 706 */ NdrFcShort( 0x54 ), /* Type Offset=84 */
+
+ /* Return value */
+
+/* 708 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 710 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 712 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const Accessible2_MIDL_TYPE_FORMAT_STRING Accessible2__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 4 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+/* 6 */
+ 0x11, 0x10, /* FC_RP [pointer_deref] */
+/* 8 */ NdrFcShort( 0x2 ), /* Offset= 2 (10) */
+/* 10 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 12 */ NdrFcLong( 0x7cdf86ee ), /* 2095023854 */
+/* 16 */ NdrFcShort( 0xc3da ), /* -15398 */
+/* 18 */ NdrFcShort( 0x496a ), /* 18794 */
+/* 20 */ 0xbd, /* 189 */
+ 0xa4, /* 164 */
+/* 22 */ 0x28, /* 40 */
+ 0x1b, /* 27 */
+/* 24 */ 0x33, /* 51 */
+ 0x6e, /* 110 */
+/* 26 */ 0x1f, /* 31 */
+ 0xdc, /* 220 */
+/* 28 */
+ 0x11, 0x0, /* FC_RP */
+/* 30 */ NdrFcShort( 0x2 ), /* Offset= 2 (32) */
+/* 32 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 34 */ NdrFcShort( 0x0 ), /* 0 */
+/* 36 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x0, /* */
+/* 38 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 40 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 42 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 44 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 46 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 48 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 50 */ NdrFcShort( 0xffd8 ), /* Offset= -40 (10) */
+/* 52 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 54 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 56 */ NdrFcShort( 0x1c ), /* Offset= 28 (84) */
+/* 58 */
+ 0x13, 0x0, /* FC_OP */
+/* 60 */ NdrFcShort( 0xe ), /* Offset= 14 (74) */
+/* 62 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 64 */ NdrFcShort( 0x2 ), /* 2 */
+/* 66 */ 0x9, /* Corr desc: FC_ULONG */
+ 0x0, /* */
+/* 68 */ NdrFcShort( 0xfffc ), /* -4 */
+/* 70 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 72 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 74 */
+ 0x17, /* FC_CSTRUCT */
+ 0x3, /* 3 */
+/* 76 */ NdrFcShort( 0x8 ), /* 8 */
+/* 78 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (62) */
+/* 80 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 82 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 84 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 86 */ NdrFcShort( 0x0 ), /* 0 */
+/* 88 */ NdrFcShort( 0x4 ), /* 4 */
+/* 90 */ NdrFcShort( 0x0 ), /* 0 */
+/* 92 */ NdrFcShort( 0xffde ), /* Offset= -34 (58) */
+/* 94 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 96 */ NdrFcShort( 0x2 ), /* Offset= 2 (98) */
+/* 98 */
+ 0x13, 0x0, /* FC_OP */
+/* 100 */ NdrFcShort( 0x2 ), /* Offset= 2 (102) */
+/* 102 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 104 */ NdrFcShort( 0x0 ), /* 0 */
+/* 106 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x0, /* */
+/* 108 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 110 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 112 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 114 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 116 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 118 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 120 */ NdrFcShort( 0xffdc ), /* Offset= -36 (84) */
+/* 122 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 124 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 126 */ NdrFcShort( 0x1a ), /* Offset= 26 (152) */
+/* 128 */
+ 0x13, 0x0, /* FC_OP */
+/* 130 */ NdrFcShort( 0x2 ), /* Offset= 2 (132) */
+/* 132 */
+ 0x2a, /* FC_ENCAPSULATED_UNION */
+ 0x48, /* 72 */
+/* 134 */ NdrFcShort( 0x4 ), /* 4 */
+/* 136 */ NdrFcShort( 0x2 ), /* 2 */
+/* 138 */ NdrFcLong( 0x48746457 ), /* 1215587415 */
+/* 142 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 144 */ NdrFcLong( 0x52746457 ), /* 1383359575 */
+/* 148 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 150 */ NdrFcShort( 0xffff ), /* Offset= -1 (149) */
+/* 152 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 154 */ NdrFcShort( 0x1 ), /* 1 */
+/* 156 */ NdrFcShort( 0x4 ), /* 4 */
+/* 158 */ NdrFcShort( 0x0 ), /* 0 */
+/* 160 */ NdrFcShort( 0xffe0 ), /* Offset= -32 (128) */
+/* 162 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 164 */ NdrFcShort( 0x2 ), /* Offset= 2 (166) */
+/* 166 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 168 */ NdrFcShort( 0xc ), /* 12 */
+/* 170 */ NdrFcShort( 0x0 ), /* 0 */
+/* 172 */ NdrFcShort( 0x0 ), /* Offset= 0 (172) */
+/* 174 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 176 */ NdrFcShort( 0xffa4 ), /* Offset= -92 (84) */
+/* 178 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 180 */ NdrFcShort( 0xffa0 ), /* Offset= -96 (84) */
+/* 182 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 184 */ NdrFcShort( 0xff9c ), /* Offset= -100 (84) */
+/* 186 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+
+ 0x0
+ }
+ };
+
+static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
+ {
+
+ {
+ BSTR_UserSize
+ ,BSTR_UserMarshal
+ ,BSTR_UserUnmarshal
+ ,BSTR_UserFree
+ },
+ {
+ HWND_UserSize
+ ,HWND_UserMarshal
+ ,HWND_UserUnmarshal
+ ,HWND_UserFree
+ }
+
+ };
+
+
+
+/* Standard interface: __MIDL_itf_Accessible2_0000_0000, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IDispatch, ver. 0.0,
+ GUID={0x00020400,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IAccessible, ver. 0.0,
+ GUID={0x618736e0,0x3c3d,0x11cf,{0x81,0x0c,0x00,0xaa,0x00,0x38,0x9b,0x71}} */
+
+
+/* Object interface: IAccessible2, ver. 0.0,
+ GUID={0xE89F726E,0xC4F4,0x4c19,{0xBB,0x19,0xB6,0x47,0xD7,0xFA,0x84,0x78}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessible2_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 0,
+ 36,
+ 78,
+ 126,
+ 162,
+ 198,
+ 246,
+ 294,
+ 330,
+ 366,
+ 402,
+ 438,
+ 486,
+ 534,
+ 570,
+ 606,
+ 642,
+ 678
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessible2_ProxyInfo =
+ {
+ &Object_StubDesc,
+ Accessible2__MIDL_ProcFormatString.Format,
+ &IAccessible2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessible2_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ Accessible2__MIDL_ProcFormatString.Format,
+ &IAccessible2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(46) _IAccessible2ProxyVtbl =
+{
+ &IAccessible2_ProxyInfo,
+ &IID_IAccessible2,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IDispatch::GetTypeInfoCount */ ,
+ 0 /* IDispatch::GetTypeInfo */ ,
+ 0 /* IDispatch::GetIDsOfNames */ ,
+ 0 /* IDispatch_Invoke_Proxy */ ,
+ 0 /* IAccessible::get_accParent */ ,
+ 0 /* IAccessible::get_accChildCount */ ,
+ 0 /* IAccessible::get_accChild */ ,
+ 0 /* IAccessible::get_accName */ ,
+ 0 /* IAccessible::get_accValue */ ,
+ 0 /* IAccessible::get_accDescription */ ,
+ 0 /* IAccessible::get_accRole */ ,
+ 0 /* IAccessible::get_accState */ ,
+ 0 /* IAccessible::get_accHelp */ ,
+ 0 /* IAccessible::get_accHelpTopic */ ,
+ 0 /* IAccessible::get_accKeyboardShortcut */ ,
+ 0 /* IAccessible::get_accFocus */ ,
+ 0 /* IAccessible::get_accSelection */ ,
+ 0 /* IAccessible::get_accDefaultAction */ ,
+ 0 /* IAccessible::accSelect */ ,
+ 0 /* IAccessible::accLocation */ ,
+ 0 /* IAccessible::accNavigate */ ,
+ 0 /* IAccessible::accHitTest */ ,
+ 0 /* IAccessible::accDoDefaultAction */ ,
+ 0 /* IAccessible::put_accName */ ,
+ 0 /* IAccessible::put_accValue */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_nRelations */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_relation */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_relations */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::role */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::scrollTo */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::scrollToPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_groupPosition */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_states */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_extendedRole */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_localizedExtendedRole */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_nExtendedStates */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_extendedStates */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_localizedExtendedStates */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_uniqueID */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_windowHandle */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_indexInParent */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_locale */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_attributes */
+};
+
+
+static const PRPC_STUB_FUNCTION IAccessible2_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _IAccessible2StubVtbl =
+{
+ &IID_IAccessible2,
+ &IAccessible2_ServerInfo,
+ 46,
+ &IAccessible2_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ Accessible2__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x700022b, /* MIDL Version 7.0.555 */
+ 0,
+ UserMarshalRoutines,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _Accessible2_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_IAccessible2ProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _Accessible2_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_IAccessible2StubVtbl,
+ 0
+};
+
+PCInterfaceName const _Accessible2_InterfaceNamesList[] =
+{
+ "IAccessible2",
+ 0
+};
+
+const IID * const _Accessible2_BaseIIDList[] =
+{
+ &IID_IAccessible,
+ 0
+};
+
+
+#define _Accessible2_CHECK_IID(n) IID_GENERIC_CHECK_IID( _Accessible2, pIID, n)
+
+int __stdcall _Accessible2_IID_Lookup( const IID * pIID, int * pIndex )
+{
+
+ if(!_Accessible2_CHECK_IID(0))
+ {
+ *pIndex = 0;
+ return 1;
+ }
+
+ return 0;
+}
+
+const ExtendedProxyFileInfo Accessible2_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _Accessible2_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _Accessible2_StubVtblList,
+ (const PCInterfaceName * ) & _Accessible2_InterfaceNamesList,
+ (const IID ** ) & _Accessible2_BaseIIDList,
+ & _Accessible2_IID_Lookup,
+ 1,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#pragma optimize("", on )
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* !defined(_M_IA64) && !defined(_M_AMD64)*/
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleAction.h b/src/3rdparty/iaccessible2/generated/x86/AccessibleAction.h
new file mode 100644
index 0000000000..c1ebabb899
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleAction.h
@@ -0,0 +1,220 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:51 2012
+ */
+/* Compiler settings for AccessibleAction.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __AccessibleAction_h__
+#define __AccessibleAction_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IAccessibleAction_FWD_DEFINED__
+#define __IAccessibleAction_FWD_DEFINED__
+typedef interface IAccessibleAction IAccessibleAction;
+#endif /* __IAccessibleAction_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "objidl.h"
+#include "oaidl.h"
+#include "oleacc.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#ifndef __IAccessibleAction_INTERFACE_DEFINED__
+#define __IAccessibleAction_INTERFACE_DEFINED__
+
+/* interface IAccessibleAction */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleAction;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("B70D9F59-3B5A-4dba-AB9E-22012F607DF5")
+ IAccessibleAction : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE nActions(
+ /* [retval][out] */ long *nActions) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE doAction(
+ /* [in] */ long actionIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_description(
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *description) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_keyBinding(
+ /* [in] */ long actionIndex,
+ /* [in] */ long nMaxBindings,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **keyBindings,
+ /* [retval][out] */ long *nBindings) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_name(
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *name) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_localizedName(
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *localizedName) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleActionVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleAction * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleAction * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleAction * This);
+
+ HRESULT ( STDMETHODCALLTYPE *nActions )(
+ IAccessibleAction * This,
+ /* [retval][out] */ long *nActions);
+
+ HRESULT ( STDMETHODCALLTYPE *doAction )(
+ IAccessibleAction * This,
+ /* [in] */ long actionIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_description )(
+ IAccessibleAction * This,
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_keyBinding )(
+ IAccessibleAction * This,
+ /* [in] */ long actionIndex,
+ /* [in] */ long nMaxBindings,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **keyBindings,
+ /* [retval][out] */ long *nBindings);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )(
+ IAccessibleAction * This,
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *name);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedName )(
+ IAccessibleAction * This,
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *localizedName);
+
+ END_INTERFACE
+ } IAccessibleActionVtbl;
+
+ interface IAccessibleAction
+ {
+ CONST_VTBL struct IAccessibleActionVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleAction_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleAction_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleAction_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleAction_nActions(This,nActions) \
+ ( (This)->lpVtbl -> nActions(This,nActions) )
+
+#define IAccessibleAction_doAction(This,actionIndex) \
+ ( (This)->lpVtbl -> doAction(This,actionIndex) )
+
+#define IAccessibleAction_get_description(This,actionIndex,description) \
+ ( (This)->lpVtbl -> get_description(This,actionIndex,description) )
+
+#define IAccessibleAction_get_keyBinding(This,actionIndex,nMaxBindings,keyBindings,nBindings) \
+ ( (This)->lpVtbl -> get_keyBinding(This,actionIndex,nMaxBindings,keyBindings,nBindings) )
+
+#define IAccessibleAction_get_name(This,actionIndex,name) \
+ ( (This)->lpVtbl -> get_name(This,actionIndex,name) )
+
+#define IAccessibleAction_get_localizedName(This,actionIndex,localizedName) \
+ ( (This)->lpVtbl -> get_localizedName(This,actionIndex,localizedName) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleAction_INTERFACE_DEFINED__ */
+
+
+/* Additional Prototypes for ALL interfaces */
+
+unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
+unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
+unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
+void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleAction_i.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleAction_i.c
new file mode 100644
index 0000000000..ea097ef5d6
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleAction_i.c
@@ -0,0 +1,79 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:51 2012
+ */
+/* Compiler settings for AccessibleAction.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleAction,0xB70D9F59,0x3B5A,0x4dba,0xAB,0x9E,0x22,0x01,0x2F,0x60,0x7D,0xF5);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleAction_p.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleAction_p.c
new file mode 100644
index 0000000000..41854575bd
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleAction_p.c
@@ -0,0 +1,563 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:51 2012
+ */
+/* Compiler settings for AccessibleAction.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if !defined(_M_IA64) && !defined(_M_AMD64)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+#pragma warning( disable: 4100 ) /* unreferenced arguments in x86 call */
+
+#pragma optimize("", off )
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "AccessibleAction.h"
+
+#define TYPE_FORMAT_STRING_SIZE 77
+#define PROC_FORMAT_STRING_SIZE 253
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 1
+
+typedef struct _AccessibleAction_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } AccessibleAction_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _AccessibleAction_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } AccessibleAction_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _AccessibleAction_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } AccessibleAction_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const AccessibleAction_MIDL_TYPE_FORMAT_STRING AccessibleAction__MIDL_TypeFormatString;
+extern const AccessibleAction_MIDL_PROC_FORMAT_STRING AccessibleAction__MIDL_ProcFormatString;
+extern const AccessibleAction_MIDL_EXPR_FORMAT_STRING AccessibleAction__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleAction_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleAction_ProxyInfo;
+
+
+extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
+
+#if !defined(__RPC_WIN32__)
+#error Invalid build platform for this stub.
+#endif
+
+#if !(TARGET_IS_NT50_OR_LATER)
+#error You need Windows 2000 or later to run this stub because it uses these features:
+#error /robust command line switch.
+#error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems.
+#error This app will fail with the RPC_X_WRONG_STUB_VERSION error.
+#endif
+
+
+static const AccessibleAction_MIDL_PROC_FORMAT_STRING AccessibleAction__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure nActions */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x3 ), /* 3 */
+/* 8 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 10 */ NdrFcShort( 0x0 ), /* 0 */
+/* 12 */ NdrFcShort( 0x24 ), /* 36 */
+/* 14 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 16 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 18 */ NdrFcShort( 0x0 ), /* 0 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nActions */
+
+/* 24 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 26 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 28 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 30 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 32 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 34 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure doAction */
+
+/* 36 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 38 */ NdrFcLong( 0x0 ), /* 0 */
+/* 42 */ NdrFcShort( 0x4 ), /* 4 */
+/* 44 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 46 */ NdrFcShort( 0x8 ), /* 8 */
+/* 48 */ NdrFcShort( 0x8 ), /* 8 */
+/* 50 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 52 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 54 */ NdrFcShort( 0x0 ), /* 0 */
+/* 56 */ NdrFcShort( 0x0 ), /* 0 */
+/* 58 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter actionIndex */
+
+/* 60 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 62 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 64 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 66 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 68 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 70 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_description */
+
+/* 72 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 74 */ NdrFcLong( 0x0 ), /* 0 */
+/* 78 */ NdrFcShort( 0x5 ), /* 5 */
+/* 80 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 82 */ NdrFcShort( 0x8 ), /* 8 */
+/* 84 */ NdrFcShort( 0x8 ), /* 8 */
+/* 86 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 88 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 90 */ NdrFcShort( 0x1 ), /* 1 */
+/* 92 */ NdrFcShort( 0x0 ), /* 0 */
+/* 94 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter actionIndex */
+
+/* 96 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 98 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 100 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter description */
+
+/* 102 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 104 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 106 */ NdrFcShort( 0x24 ), /* Type Offset=36 */
+
+ /* Return value */
+
+/* 108 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 110 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 112 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_keyBinding */
+
+/* 114 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 116 */ NdrFcLong( 0x0 ), /* 0 */
+/* 120 */ NdrFcShort( 0x6 ), /* 6 */
+/* 122 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 124 */ NdrFcShort( 0x10 ), /* 16 */
+/* 126 */ NdrFcShort( 0x24 ), /* 36 */
+/* 128 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x5, /* 5 */
+/* 130 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 132 */ NdrFcShort( 0x1 ), /* 1 */
+/* 134 */ NdrFcShort( 0x0 ), /* 0 */
+/* 136 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter actionIndex */
+
+/* 138 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 140 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 142 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter nMaxBindings */
+
+/* 144 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 146 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 148 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter keyBindings */
+
+/* 150 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 152 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 154 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
+
+ /* Parameter nBindings */
+
+/* 156 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 158 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 160 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 162 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 164 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 166 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_name */
+
+/* 168 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 170 */ NdrFcLong( 0x0 ), /* 0 */
+/* 174 */ NdrFcShort( 0x7 ), /* 7 */
+/* 176 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 178 */ NdrFcShort( 0x8 ), /* 8 */
+/* 180 */ NdrFcShort( 0x8 ), /* 8 */
+/* 182 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 184 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 186 */ NdrFcShort( 0x1 ), /* 1 */
+/* 188 */ NdrFcShort( 0x0 ), /* 0 */
+/* 190 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter actionIndex */
+
+/* 192 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 194 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 196 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter name */
+
+/* 198 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 200 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 202 */ NdrFcShort( 0x24 ), /* Type Offset=36 */
+
+ /* Return value */
+
+/* 204 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 206 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 208 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_localizedName */
+
+/* 210 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 212 */ NdrFcLong( 0x0 ), /* 0 */
+/* 216 */ NdrFcShort( 0x8 ), /* 8 */
+/* 218 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 220 */ NdrFcShort( 0x8 ), /* 8 */
+/* 222 */ NdrFcShort( 0x8 ), /* 8 */
+/* 224 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 226 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 228 */ NdrFcShort( 0x1 ), /* 1 */
+/* 230 */ NdrFcShort( 0x0 ), /* 0 */
+/* 232 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter actionIndex */
+
+/* 234 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 236 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 238 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter localizedName */
+
+/* 240 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 242 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 244 */ NdrFcShort( 0x24 ), /* Type Offset=36 */
+
+ /* Return value */
+
+/* 246 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 248 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 250 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const AccessibleAction_MIDL_TYPE_FORMAT_STRING AccessibleAction__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 4 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+/* 6 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 8 */ NdrFcShort( 0x1c ), /* Offset= 28 (36) */
+/* 10 */
+ 0x13, 0x0, /* FC_OP */
+/* 12 */ NdrFcShort( 0xe ), /* Offset= 14 (26) */
+/* 14 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 16 */ NdrFcShort( 0x2 ), /* 2 */
+/* 18 */ 0x9, /* Corr desc: FC_ULONG */
+ 0x0, /* */
+/* 20 */ NdrFcShort( 0xfffc ), /* -4 */
+/* 22 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 24 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 26 */
+ 0x17, /* FC_CSTRUCT */
+ 0x3, /* 3 */
+/* 28 */ NdrFcShort( 0x8 ), /* 8 */
+/* 30 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (14) */
+/* 32 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 34 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 36 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 38 */ NdrFcShort( 0x0 ), /* 0 */
+/* 40 */ NdrFcShort( 0x4 ), /* 4 */
+/* 42 */ NdrFcShort( 0x0 ), /* 0 */
+/* 44 */ NdrFcShort( 0xffde ), /* Offset= -34 (10) */
+/* 46 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 48 */ NdrFcShort( 0x2 ), /* Offset= 2 (50) */
+/* 50 */
+ 0x13, 0x0, /* FC_OP */
+/* 52 */ NdrFcShort( 0x2 ), /* Offset= 2 (54) */
+/* 54 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 56 */ NdrFcShort( 0x0 ), /* 0 */
+/* 58 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x0, /* */
+/* 60 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 62 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 64 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 66 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 68 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 70 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 72 */ NdrFcShort( 0xffdc ), /* Offset= -36 (36) */
+/* 74 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+
+ 0x0
+ }
+ };
+
+static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
+ {
+
+ {
+ BSTR_UserSize
+ ,BSTR_UserMarshal
+ ,BSTR_UserUnmarshal
+ ,BSTR_UserFree
+ }
+
+ };
+
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IAccessibleAction, ver. 0.0,
+ GUID={0xB70D9F59,0x3B5A,0x4dba,{0xAB,0x9E,0x22,0x01,0x2F,0x60,0x7D,0xF5}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleAction_FormatStringOffsetTable[] =
+ {
+ 0,
+ 36,
+ 72,
+ 114,
+ 168,
+ 210
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleAction_ProxyInfo =
+ {
+ &Object_StubDesc,
+ AccessibleAction__MIDL_ProcFormatString.Format,
+ &IAccessibleAction_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleAction_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ AccessibleAction__MIDL_ProcFormatString.Format,
+ &IAccessibleAction_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(9) _IAccessibleActionProxyVtbl =
+{
+ &IAccessibleAction_ProxyInfo,
+ &IID_IAccessibleAction,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::nActions */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::doAction */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_description */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_keyBinding */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_name */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_localizedName */
+};
+
+const CInterfaceStubVtbl _IAccessibleActionStubVtbl =
+{
+ &IID_IAccessibleAction,
+ &IAccessibleAction_ServerInfo,
+ 9,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ AccessibleAction__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x700022b, /* MIDL Version 7.0.555 */
+ 0,
+ UserMarshalRoutines,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _AccessibleAction_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_IAccessibleActionProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _AccessibleAction_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_IAccessibleActionStubVtbl,
+ 0
+};
+
+PCInterfaceName const _AccessibleAction_InterfaceNamesList[] =
+{
+ "IAccessibleAction",
+ 0
+};
+
+
+#define _AccessibleAction_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleAction, pIID, n)
+
+int __stdcall _AccessibleAction_IID_Lookup( const IID * pIID, int * pIndex )
+{
+
+ if(!_AccessibleAction_CHECK_IID(0))
+ {
+ *pIndex = 0;
+ return 1;
+ }
+
+ return 0;
+}
+
+const ExtendedProxyFileInfo AccessibleAction_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _AccessibleAction_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _AccessibleAction_StubVtblList,
+ (const PCInterfaceName * ) & _AccessibleAction_InterfaceNamesList,
+ 0, /* no delegation */
+ & _AccessibleAction_IID_Lookup,
+ 1,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#pragma optimize("", on )
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* !defined(_M_IA64) && !defined(_M_AMD64)*/
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleApplication.h b/src/3rdparty/iaccessible2/generated/x86/AccessibleApplication.h
new file mode 100644
index 0000000000..e14096869c
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleApplication.h
@@ -0,0 +1,188 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:52 2012
+ */
+/* Compiler settings for AccessibleApplication.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __AccessibleApplication_h__
+#define __AccessibleApplication_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IAccessibleApplication_FWD_DEFINED__
+#define __IAccessibleApplication_FWD_DEFINED__
+typedef interface IAccessibleApplication IAccessibleApplication;
+#endif /* __IAccessibleApplication_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "objidl.h"
+#include "oaidl.h"
+#include "oleacc.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#ifndef __IAccessibleApplication_INTERFACE_DEFINED__
+#define __IAccessibleApplication_INTERFACE_DEFINED__
+
+/* interface IAccessibleApplication */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleApplication;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("D49DED83-5B25-43F4-9B95-93B44595979E")
+ IAccessibleApplication : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_appName(
+ /* [retval][out] */ BSTR *name) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_appVersion(
+ /* [retval][out] */ BSTR *version) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_toolkitName(
+ /* [retval][out] */ BSTR *name) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_toolkitVersion(
+ /* [retval][out] */ BSTR *version) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleApplicationVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleApplication * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleApplication * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleApplication * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appName )(
+ IAccessibleApplication * This,
+ /* [retval][out] */ BSTR *name);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appVersion )(
+ IAccessibleApplication * This,
+ /* [retval][out] */ BSTR *version);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_toolkitName )(
+ IAccessibleApplication * This,
+ /* [retval][out] */ BSTR *name);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_toolkitVersion )(
+ IAccessibleApplication * This,
+ /* [retval][out] */ BSTR *version);
+
+ END_INTERFACE
+ } IAccessibleApplicationVtbl;
+
+ interface IAccessibleApplication
+ {
+ CONST_VTBL struct IAccessibleApplicationVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleApplication_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleApplication_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleApplication_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleApplication_get_appName(This,name) \
+ ( (This)->lpVtbl -> get_appName(This,name) )
+
+#define IAccessibleApplication_get_appVersion(This,version) \
+ ( (This)->lpVtbl -> get_appVersion(This,version) )
+
+#define IAccessibleApplication_get_toolkitName(This,name) \
+ ( (This)->lpVtbl -> get_toolkitName(This,name) )
+
+#define IAccessibleApplication_get_toolkitVersion(This,version) \
+ ( (This)->lpVtbl -> get_toolkitVersion(This,version) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleApplication_INTERFACE_DEFINED__ */
+
+
+/* Additional Prototypes for ALL interfaces */
+
+unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
+unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
+unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
+void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleApplication_i.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleApplication_i.c
new file mode 100644
index 0000000000..daa0c1f7d3
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleApplication_i.c
@@ -0,0 +1,79 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:52 2012
+ */
+/* Compiler settings for AccessibleApplication.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleApplication,0xD49DED83,0x5B25,0x43F4,0x9B,0x95,0x93,0xB4,0x45,0x95,0x97,0x9E);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleApplication_p.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleApplication_p.c
new file mode 100644
index 0000000000..4e51a63fff
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleApplication_p.c
@@ -0,0 +1,428 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:52 2012
+ */
+/* Compiler settings for AccessibleApplication.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if !defined(_M_IA64) && !defined(_M_AMD64)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+#pragma warning( disable: 4100 ) /* unreferenced arguments in x86 call */
+
+#pragma optimize("", off )
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "AccessibleApplication.h"
+
+#define TYPE_FORMAT_STRING_SIZE 43
+#define PROC_FORMAT_STRING_SIZE 145
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 1
+
+typedef struct _AccessibleApplication_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } AccessibleApplication_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _AccessibleApplication_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } AccessibleApplication_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _AccessibleApplication_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } AccessibleApplication_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const AccessibleApplication_MIDL_TYPE_FORMAT_STRING AccessibleApplication__MIDL_TypeFormatString;
+extern const AccessibleApplication_MIDL_PROC_FORMAT_STRING AccessibleApplication__MIDL_ProcFormatString;
+extern const AccessibleApplication_MIDL_EXPR_FORMAT_STRING AccessibleApplication__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleApplication_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleApplication_ProxyInfo;
+
+
+extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
+
+#if !defined(__RPC_WIN32__)
+#error Invalid build platform for this stub.
+#endif
+
+#if !(TARGET_IS_NT50_OR_LATER)
+#error You need Windows 2000 or later to run this stub because it uses these features:
+#error /robust command line switch.
+#error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems.
+#error This app will fail with the RPC_X_WRONG_STUB_VERSION error.
+#endif
+
+
+static const AccessibleApplication_MIDL_PROC_FORMAT_STRING AccessibleApplication__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure get_appName */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x3 ), /* 3 */
+/* 8 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 10 */ NdrFcShort( 0x0 ), /* 0 */
+/* 12 */ NdrFcShort( 0x8 ), /* 8 */
+/* 14 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 16 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 18 */ NdrFcShort( 0x1 ), /* 1 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter name */
+
+/* 24 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 26 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 28 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 30 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 32 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 34 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_appVersion */
+
+/* 36 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 38 */ NdrFcLong( 0x0 ), /* 0 */
+/* 42 */ NdrFcShort( 0x4 ), /* 4 */
+/* 44 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 46 */ NdrFcShort( 0x0 ), /* 0 */
+/* 48 */ NdrFcShort( 0x8 ), /* 8 */
+/* 50 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 52 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 54 */ NdrFcShort( 0x1 ), /* 1 */
+/* 56 */ NdrFcShort( 0x0 ), /* 0 */
+/* 58 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter version */
+
+/* 60 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 62 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 64 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 66 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 68 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 70 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_toolkitName */
+
+/* 72 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 74 */ NdrFcLong( 0x0 ), /* 0 */
+/* 78 */ NdrFcShort( 0x5 ), /* 5 */
+/* 80 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 82 */ NdrFcShort( 0x0 ), /* 0 */
+/* 84 */ NdrFcShort( 0x8 ), /* 8 */
+/* 86 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 88 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 90 */ NdrFcShort( 0x1 ), /* 1 */
+/* 92 */ NdrFcShort( 0x0 ), /* 0 */
+/* 94 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter name */
+
+/* 96 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 98 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 100 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 102 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 104 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 106 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_toolkitVersion */
+
+/* 108 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 110 */ NdrFcLong( 0x0 ), /* 0 */
+/* 114 */ NdrFcShort( 0x6 ), /* 6 */
+/* 116 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 118 */ NdrFcShort( 0x0 ), /* 0 */
+/* 120 */ NdrFcShort( 0x8 ), /* 8 */
+/* 122 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 124 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 126 */ NdrFcShort( 0x1 ), /* 1 */
+/* 128 */ NdrFcShort( 0x0 ), /* 0 */
+/* 130 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter version */
+
+/* 132 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 134 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 136 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 138 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 140 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 142 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const AccessibleApplication_MIDL_TYPE_FORMAT_STRING AccessibleApplication__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 4 */ NdrFcShort( 0x1c ), /* Offset= 28 (32) */
+/* 6 */
+ 0x13, 0x0, /* FC_OP */
+/* 8 */ NdrFcShort( 0xe ), /* Offset= 14 (22) */
+/* 10 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 12 */ NdrFcShort( 0x2 ), /* 2 */
+/* 14 */ 0x9, /* Corr desc: FC_ULONG */
+ 0x0, /* */
+/* 16 */ NdrFcShort( 0xfffc ), /* -4 */
+/* 18 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 20 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 22 */
+ 0x17, /* FC_CSTRUCT */
+ 0x3, /* 3 */
+/* 24 */ NdrFcShort( 0x8 ), /* 8 */
+/* 26 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (10) */
+/* 28 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 30 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 32 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 34 */ NdrFcShort( 0x0 ), /* 0 */
+/* 36 */ NdrFcShort( 0x4 ), /* 4 */
+/* 38 */ NdrFcShort( 0x0 ), /* 0 */
+/* 40 */ NdrFcShort( 0xffde ), /* Offset= -34 (6) */
+
+ 0x0
+ }
+ };
+
+static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
+ {
+
+ {
+ BSTR_UserSize
+ ,BSTR_UserMarshal
+ ,BSTR_UserUnmarshal
+ ,BSTR_UserFree
+ }
+
+ };
+
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IAccessibleApplication, ver. 0.0,
+ GUID={0xD49DED83,0x5B25,0x43F4,{0x9B,0x95,0x93,0xB4,0x45,0x95,0x97,0x9E}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleApplication_FormatStringOffsetTable[] =
+ {
+ 0,
+ 36,
+ 72,
+ 108
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleApplication_ProxyInfo =
+ {
+ &Object_StubDesc,
+ AccessibleApplication__MIDL_ProcFormatString.Format,
+ &IAccessibleApplication_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleApplication_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ AccessibleApplication__MIDL_ProcFormatString.Format,
+ &IAccessibleApplication_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(7) _IAccessibleApplicationProxyVtbl =
+{
+ &IAccessibleApplication_ProxyInfo,
+ &IID_IAccessibleApplication,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleApplication::get_appName */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleApplication::get_appVersion */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleApplication::get_toolkitName */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleApplication::get_toolkitVersion */
+};
+
+const CInterfaceStubVtbl _IAccessibleApplicationStubVtbl =
+{
+ &IID_IAccessibleApplication,
+ &IAccessibleApplication_ServerInfo,
+ 7,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ AccessibleApplication__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x700022b, /* MIDL Version 7.0.555 */
+ 0,
+ UserMarshalRoutines,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _AccessibleApplication_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_IAccessibleApplicationProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _AccessibleApplication_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_IAccessibleApplicationStubVtbl,
+ 0
+};
+
+PCInterfaceName const _AccessibleApplication_InterfaceNamesList[] =
+{
+ "IAccessibleApplication",
+ 0
+};
+
+
+#define _AccessibleApplication_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleApplication, pIID, n)
+
+int __stdcall _AccessibleApplication_IID_Lookup( const IID * pIID, int * pIndex )
+{
+
+ if(!_AccessibleApplication_CHECK_IID(0))
+ {
+ *pIndex = 0;
+ return 1;
+ }
+
+ return 0;
+}
+
+const ExtendedProxyFileInfo AccessibleApplication_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _AccessibleApplication_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _AccessibleApplication_StubVtblList,
+ (const PCInterfaceName * ) & _AccessibleApplication_InterfaceNamesList,
+ 0, /* no delegation */
+ & _AccessibleApplication_IID_Lookup,
+ 1,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#pragma optimize("", on )
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* !defined(_M_IA64) && !defined(_M_AMD64)*/
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleComponent.h b/src/3rdparty/iaccessible2/generated/x86/AccessibleComponent.h
new file mode 100644
index 0000000000..a5d6fa625b
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleComponent.h
@@ -0,0 +1,185 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:52 2012
+ */
+/* Compiler settings for AccessibleComponent.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __AccessibleComponent_h__
+#define __AccessibleComponent_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IAccessibleComponent_FWD_DEFINED__
+#define __IAccessibleComponent_FWD_DEFINED__
+typedef interface IAccessibleComponent IAccessibleComponent;
+#endif /* __IAccessibleComponent_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "objidl.h"
+#include "oaidl.h"
+#include "oleacc.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/* interface __MIDL_itf_AccessibleComponent_0000_0000 */
+/* [local] */
+
+typedef long IA2Color;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_AccessibleComponent_0000_0000_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_AccessibleComponent_0000_0000_v0_0_s_ifspec;
+
+#ifndef __IAccessibleComponent_INTERFACE_DEFINED__
+#define __IAccessibleComponent_INTERFACE_DEFINED__
+
+/* interface IAccessibleComponent */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleComponent;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("1546D4B0-4C98-4bda-89AE-9A64748BDDE4")
+ IAccessibleComponent : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_locationInParent(
+ /* [out] */ long *x,
+ /* [retval][out] */ long *y) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_foreground(
+ /* [retval][out] */ IA2Color *foreground) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_background(
+ /* [retval][out] */ IA2Color *background) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleComponentVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleComponent * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleComponent * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleComponent * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_locationInParent )(
+ IAccessibleComponent * This,
+ /* [out] */ long *x,
+ /* [retval][out] */ long *y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_foreground )(
+ IAccessibleComponent * This,
+ /* [retval][out] */ IA2Color *foreground);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_background )(
+ IAccessibleComponent * This,
+ /* [retval][out] */ IA2Color *background);
+
+ END_INTERFACE
+ } IAccessibleComponentVtbl;
+
+ interface IAccessibleComponent
+ {
+ CONST_VTBL struct IAccessibleComponentVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleComponent_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleComponent_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleComponent_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleComponent_get_locationInParent(This,x,y) \
+ ( (This)->lpVtbl -> get_locationInParent(This,x,y) )
+
+#define IAccessibleComponent_get_foreground(This,foreground) \
+ ( (This)->lpVtbl -> get_foreground(This,foreground) )
+
+#define IAccessibleComponent_get_background(This,background) \
+ ( (This)->lpVtbl -> get_background(This,background) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleComponent_INTERFACE_DEFINED__ */
+
+
+/* Additional Prototypes for ALL interfaces */
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleComponent_i.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleComponent_i.c
new file mode 100644
index 0000000000..b48fee274b
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleComponent_i.c
@@ -0,0 +1,79 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:52 2012
+ */
+/* Compiler settings for AccessibleComponent.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleComponent,0x1546D4B0,0x4C98,0x4bda,0x89,0xAE,0x9A,0x64,0x74,0x8B,0xDD,0xE4);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleComponent_p.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleComponent_p.c
new file mode 100644
index 0000000000..23230ff0ac
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleComponent_p.c
@@ -0,0 +1,369 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:52 2012
+ */
+/* Compiler settings for AccessibleComponent.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if !defined(_M_IA64) && !defined(_M_AMD64)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+#pragma warning( disable: 4100 ) /* unreferenced arguments in x86 call */
+
+#pragma optimize("", off )
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "AccessibleComponent.h"
+
+#define TYPE_FORMAT_STRING_SIZE 7
+#define PROC_FORMAT_STRING_SIZE 115
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 0
+
+typedef struct _AccessibleComponent_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } AccessibleComponent_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _AccessibleComponent_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } AccessibleComponent_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _AccessibleComponent_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } AccessibleComponent_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const AccessibleComponent_MIDL_TYPE_FORMAT_STRING AccessibleComponent__MIDL_TypeFormatString;
+extern const AccessibleComponent_MIDL_PROC_FORMAT_STRING AccessibleComponent__MIDL_ProcFormatString;
+extern const AccessibleComponent_MIDL_EXPR_FORMAT_STRING AccessibleComponent__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleComponent_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleComponent_ProxyInfo;
+
+
+
+#if !defined(__RPC_WIN32__)
+#error Invalid build platform for this stub.
+#endif
+
+#if !(TARGET_IS_NT50_OR_LATER)
+#error You need Windows 2000 or later to run this stub because it uses these features:
+#error /robust command line switch.
+#error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems.
+#error This app will fail with the RPC_X_WRONG_STUB_VERSION error.
+#endif
+
+
+static const AccessibleComponent_MIDL_PROC_FORMAT_STRING AccessibleComponent__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure get_locationInParent */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x3 ), /* 3 */
+/* 8 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 10 */ NdrFcShort( 0x0 ), /* 0 */
+/* 12 */ NdrFcShort( 0x40 ), /* 64 */
+/* 14 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 16 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 18 */ NdrFcShort( 0x0 ), /* 0 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter x */
+
+/* 24 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 26 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 28 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 30 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 32 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 34 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 36 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 38 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 40 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_foreground */
+
+/* 42 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 44 */ NdrFcLong( 0x0 ), /* 0 */
+/* 48 */ NdrFcShort( 0x4 ), /* 4 */
+/* 50 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 52 */ NdrFcShort( 0x0 ), /* 0 */
+/* 54 */ NdrFcShort( 0x24 ), /* 36 */
+/* 56 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 58 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 60 */ NdrFcShort( 0x0 ), /* 0 */
+/* 62 */ NdrFcShort( 0x0 ), /* 0 */
+/* 64 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter foreground */
+
+/* 66 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 68 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 70 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 72 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 74 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 76 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_background */
+
+/* 78 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 80 */ NdrFcLong( 0x0 ), /* 0 */
+/* 84 */ NdrFcShort( 0x5 ), /* 5 */
+/* 86 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 88 */ NdrFcShort( 0x0 ), /* 0 */
+/* 90 */ NdrFcShort( 0x24 ), /* 36 */
+/* 92 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 94 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 96 */ NdrFcShort( 0x0 ), /* 0 */
+/* 98 */ NdrFcShort( 0x0 ), /* 0 */
+/* 100 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter background */
+
+/* 102 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 104 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 106 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 108 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 110 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 112 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const AccessibleComponent_MIDL_TYPE_FORMAT_STRING AccessibleComponent__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 4 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+
+ 0x0
+ }
+ };
+
+
+/* Standard interface: __MIDL_itf_AccessibleComponent_0000_0000, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IAccessibleComponent, ver. 0.0,
+ GUID={0x1546D4B0,0x4C98,0x4bda,{0x89,0xAE,0x9A,0x64,0x74,0x8B,0xDD,0xE4}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleComponent_FormatStringOffsetTable[] =
+ {
+ 0,
+ 42,
+ 78
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleComponent_ProxyInfo =
+ {
+ &Object_StubDesc,
+ AccessibleComponent__MIDL_ProcFormatString.Format,
+ &IAccessibleComponent_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleComponent_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ AccessibleComponent__MIDL_ProcFormatString.Format,
+ &IAccessibleComponent_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(6) _IAccessibleComponentProxyVtbl =
+{
+ &IAccessibleComponent_ProxyInfo,
+ &IID_IAccessibleComponent,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleComponent::get_locationInParent */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleComponent::get_foreground */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleComponent::get_background */
+};
+
+const CInterfaceStubVtbl _IAccessibleComponentStubVtbl =
+{
+ &IID_IAccessibleComponent,
+ &IAccessibleComponent_ServerInfo,
+ 6,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ AccessibleComponent__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x700022b, /* MIDL Version 7.0.555 */
+ 0,
+ 0,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _AccessibleComponent_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_IAccessibleComponentProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _AccessibleComponent_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_IAccessibleComponentStubVtbl,
+ 0
+};
+
+PCInterfaceName const _AccessibleComponent_InterfaceNamesList[] =
+{
+ "IAccessibleComponent",
+ 0
+};
+
+
+#define _AccessibleComponent_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleComponent, pIID, n)
+
+int __stdcall _AccessibleComponent_IID_Lookup( const IID * pIID, int * pIndex )
+{
+
+ if(!_AccessibleComponent_CHECK_IID(0))
+ {
+ *pIndex = 0;
+ return 1;
+ }
+
+ return 0;
+}
+
+const ExtendedProxyFileInfo AccessibleComponent_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _AccessibleComponent_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _AccessibleComponent_StubVtblList,
+ (const PCInterfaceName * ) & _AccessibleComponent_InterfaceNamesList,
+ 0, /* no delegation */
+ & _AccessibleComponent_IID_Lookup,
+ 1,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#pragma optimize("", on )
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* !defined(_M_IA64) && !defined(_M_AMD64)*/
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleEditableText.h b/src/3rdparty/iaccessible2/generated/x86/AccessibleEditableText.h
new file mode 100644
index 0000000000..3afeefbac0
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleEditableText.h
@@ -0,0 +1,235 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:53 2012
+ */
+/* Compiler settings for AccessibleEditableText.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __AccessibleEditableText_h__
+#define __AccessibleEditableText_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IAccessibleEditableText_FWD_DEFINED__
+#define __IAccessibleEditableText_FWD_DEFINED__
+typedef interface IAccessibleEditableText IAccessibleEditableText;
+#endif /* __IAccessibleEditableText_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "objidl.h"
+#include "oaidl.h"
+#include "oleacc.h"
+#include "IA2CommonTypes.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#ifndef __IAccessibleEditableText_INTERFACE_DEFINED__
+#define __IAccessibleEditableText_INTERFACE_DEFINED__
+
+/* interface IAccessibleEditableText */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleEditableText;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("A59AA09A-7011-4b65-939D-32B1FB5547E3")
+ IAccessibleEditableText : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE copyText(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE deleteText(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE insertText(
+ /* [in] */ long offset,
+ /* [in] */ BSTR *text) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE cutText(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE pasteText(
+ /* [in] */ long offset) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE replaceText(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [in] */ BSTR *text) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE setAttributes(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [in] */ BSTR *attributes) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleEditableTextVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleEditableText * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleEditableText * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleEditableText * This);
+
+ HRESULT ( STDMETHODCALLTYPE *copyText )(
+ IAccessibleEditableText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ HRESULT ( STDMETHODCALLTYPE *deleteText )(
+ IAccessibleEditableText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ HRESULT ( STDMETHODCALLTYPE *insertText )(
+ IAccessibleEditableText * This,
+ /* [in] */ long offset,
+ /* [in] */ BSTR *text);
+
+ HRESULT ( STDMETHODCALLTYPE *cutText )(
+ IAccessibleEditableText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ HRESULT ( STDMETHODCALLTYPE *pasteText )(
+ IAccessibleEditableText * This,
+ /* [in] */ long offset);
+
+ HRESULT ( STDMETHODCALLTYPE *replaceText )(
+ IAccessibleEditableText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [in] */ BSTR *text);
+
+ HRESULT ( STDMETHODCALLTYPE *setAttributes )(
+ IAccessibleEditableText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [in] */ BSTR *attributes);
+
+ END_INTERFACE
+ } IAccessibleEditableTextVtbl;
+
+ interface IAccessibleEditableText
+ {
+ CONST_VTBL struct IAccessibleEditableTextVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleEditableText_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleEditableText_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleEditableText_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleEditableText_copyText(This,startOffset,endOffset) \
+ ( (This)->lpVtbl -> copyText(This,startOffset,endOffset) )
+
+#define IAccessibleEditableText_deleteText(This,startOffset,endOffset) \
+ ( (This)->lpVtbl -> deleteText(This,startOffset,endOffset) )
+
+#define IAccessibleEditableText_insertText(This,offset,text) \
+ ( (This)->lpVtbl -> insertText(This,offset,text) )
+
+#define IAccessibleEditableText_cutText(This,startOffset,endOffset) \
+ ( (This)->lpVtbl -> cutText(This,startOffset,endOffset) )
+
+#define IAccessibleEditableText_pasteText(This,offset) \
+ ( (This)->lpVtbl -> pasteText(This,offset) )
+
+#define IAccessibleEditableText_replaceText(This,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> replaceText(This,startOffset,endOffset,text) )
+
+#define IAccessibleEditableText_setAttributes(This,startOffset,endOffset,attributes) \
+ ( (This)->lpVtbl -> setAttributes(This,startOffset,endOffset,attributes) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleEditableText_INTERFACE_DEFINED__ */
+
+
+/* Additional Prototypes for ALL interfaces */
+
+unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
+unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
+unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
+void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleEditableText_i.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleEditableText_i.c
new file mode 100644
index 0000000000..c578bf5078
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleEditableText_i.c
@@ -0,0 +1,79 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:53 2012
+ */
+/* Compiler settings for AccessibleEditableText.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleEditableText,0xA59AA09A,0x7011,0x4b65,0x93,0x9D,0x32,0xB1,0xFB,0x55,0x47,0xE3);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleEditableText_p.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleEditableText_p.c
new file mode 100644
index 0000000000..28d1e4b333
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleEditableText_p.c
@@ -0,0 +1,584 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:53 2012
+ */
+/* Compiler settings for AccessibleEditableText.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if !defined(_M_IA64) && !defined(_M_AMD64)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+#pragma warning( disable: 4100 ) /* unreferenced arguments in x86 call */
+
+#pragma optimize("", off )
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "AccessibleEditableText.h"
+
+#define TYPE_FORMAT_STRING_SIZE 43
+#define PROC_FORMAT_STRING_SIZE 301
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 1
+
+typedef struct _AccessibleEditableText_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } AccessibleEditableText_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _AccessibleEditableText_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } AccessibleEditableText_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _AccessibleEditableText_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } AccessibleEditableText_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const AccessibleEditableText_MIDL_TYPE_FORMAT_STRING AccessibleEditableText__MIDL_TypeFormatString;
+extern const AccessibleEditableText_MIDL_PROC_FORMAT_STRING AccessibleEditableText__MIDL_ProcFormatString;
+extern const AccessibleEditableText_MIDL_EXPR_FORMAT_STRING AccessibleEditableText__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleEditableText_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleEditableText_ProxyInfo;
+
+
+extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
+
+#if !defined(__RPC_WIN32__)
+#error Invalid build platform for this stub.
+#endif
+
+#if !(TARGET_IS_NT50_OR_LATER)
+#error You need Windows 2000 or later to run this stub because it uses these features:
+#error /robust command line switch.
+#error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems.
+#error This app will fail with the RPC_X_WRONG_STUB_VERSION error.
+#endif
+
+
+static const AccessibleEditableText_MIDL_PROC_FORMAT_STRING AccessibleEditableText__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure copyText */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x3 ), /* 3 */
+/* 8 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 10 */ NdrFcShort( 0x10 ), /* 16 */
+/* 12 */ NdrFcShort( 0x8 ), /* 8 */
+/* 14 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 16 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 18 */ NdrFcShort( 0x0 ), /* 0 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startOffset */
+
+/* 24 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 26 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 28 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 30 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 32 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 34 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 36 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 38 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 40 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure deleteText */
+
+/* 42 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 44 */ NdrFcLong( 0x0 ), /* 0 */
+/* 48 */ NdrFcShort( 0x4 ), /* 4 */
+/* 50 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 52 */ NdrFcShort( 0x10 ), /* 16 */
+/* 54 */ NdrFcShort( 0x8 ), /* 8 */
+/* 56 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 58 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 60 */ NdrFcShort( 0x0 ), /* 0 */
+/* 62 */ NdrFcShort( 0x0 ), /* 0 */
+/* 64 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startOffset */
+
+/* 66 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 68 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 70 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 72 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 74 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 76 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 78 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 80 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 82 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure insertText */
+
+/* 84 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 86 */ NdrFcLong( 0x0 ), /* 0 */
+/* 90 */ NdrFcShort( 0x5 ), /* 5 */
+/* 92 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 94 */ NdrFcShort( 0x8 ), /* 8 */
+/* 96 */ NdrFcShort( 0x8 ), /* 8 */
+/* 98 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 100 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 102 */ NdrFcShort( 0x0 ), /* 0 */
+/* 104 */ NdrFcShort( 0x1 ), /* 1 */
+/* 106 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 108 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 110 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 112 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter text */
+
+/* 114 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 116 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 118 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 120 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 122 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 124 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure cutText */
+
+/* 126 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 128 */ NdrFcLong( 0x0 ), /* 0 */
+/* 132 */ NdrFcShort( 0x6 ), /* 6 */
+/* 134 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 136 */ NdrFcShort( 0x10 ), /* 16 */
+/* 138 */ NdrFcShort( 0x8 ), /* 8 */
+/* 140 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 142 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 144 */ NdrFcShort( 0x0 ), /* 0 */
+/* 146 */ NdrFcShort( 0x0 ), /* 0 */
+/* 148 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startOffset */
+
+/* 150 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 152 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 154 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 156 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 158 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 160 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 162 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 164 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 166 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure pasteText */
+
+/* 168 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 170 */ NdrFcLong( 0x0 ), /* 0 */
+/* 174 */ NdrFcShort( 0x7 ), /* 7 */
+/* 176 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 178 */ NdrFcShort( 0x8 ), /* 8 */
+/* 180 */ NdrFcShort( 0x8 ), /* 8 */
+/* 182 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 184 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 186 */ NdrFcShort( 0x0 ), /* 0 */
+/* 188 */ NdrFcShort( 0x0 ), /* 0 */
+/* 190 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 192 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 194 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 196 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 198 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 200 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 202 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure replaceText */
+
+/* 204 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 206 */ NdrFcLong( 0x0 ), /* 0 */
+/* 210 */ NdrFcShort( 0x8 ), /* 8 */
+/* 212 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 214 */ NdrFcShort( 0x10 ), /* 16 */
+/* 216 */ NdrFcShort( 0x8 ), /* 8 */
+/* 218 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 220 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 222 */ NdrFcShort( 0x0 ), /* 0 */
+/* 224 */ NdrFcShort( 0x1 ), /* 1 */
+/* 226 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startOffset */
+
+/* 228 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 230 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 232 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 234 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 236 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 238 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter text */
+
+/* 240 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 242 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 244 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 246 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 248 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 250 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure setAttributes */
+
+/* 252 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 254 */ NdrFcLong( 0x0 ), /* 0 */
+/* 258 */ NdrFcShort( 0x9 ), /* 9 */
+/* 260 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 262 */ NdrFcShort( 0x10 ), /* 16 */
+/* 264 */ NdrFcShort( 0x8 ), /* 8 */
+/* 266 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 268 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 270 */ NdrFcShort( 0x0 ), /* 0 */
+/* 272 */ NdrFcShort( 0x1 ), /* 1 */
+/* 274 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startOffset */
+
+/* 276 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 278 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 280 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 282 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 284 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 286 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter attributes */
+
+/* 288 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 290 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 292 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 294 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 296 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 298 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const AccessibleEditableText_MIDL_TYPE_FORMAT_STRING AccessibleEditableText__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0x0, /* FC_RP */
+/* 4 */ NdrFcShort( 0x1c ), /* Offset= 28 (32) */
+/* 6 */
+ 0x12, 0x0, /* FC_UP */
+/* 8 */ NdrFcShort( 0xe ), /* Offset= 14 (22) */
+/* 10 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 12 */ NdrFcShort( 0x2 ), /* 2 */
+/* 14 */ 0x9, /* Corr desc: FC_ULONG */
+ 0x0, /* */
+/* 16 */ NdrFcShort( 0xfffc ), /* -4 */
+/* 18 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 20 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 22 */
+ 0x17, /* FC_CSTRUCT */
+ 0x3, /* 3 */
+/* 24 */ NdrFcShort( 0x8 ), /* 8 */
+/* 26 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (10) */
+/* 28 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 30 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 32 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 34 */ NdrFcShort( 0x0 ), /* 0 */
+/* 36 */ NdrFcShort( 0x4 ), /* 4 */
+/* 38 */ NdrFcShort( 0x0 ), /* 0 */
+/* 40 */ NdrFcShort( 0xffde ), /* Offset= -34 (6) */
+
+ 0x0
+ }
+ };
+
+static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
+ {
+
+ {
+ BSTR_UserSize
+ ,BSTR_UserMarshal
+ ,BSTR_UserUnmarshal
+ ,BSTR_UserFree
+ }
+
+ };
+
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IAccessibleEditableText, ver. 0.0,
+ GUID={0xA59AA09A,0x7011,0x4b65,{0x93,0x9D,0x32,0xB1,0xFB,0x55,0x47,0xE3}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleEditableText_FormatStringOffsetTable[] =
+ {
+ 0,
+ 42,
+ 84,
+ 126,
+ 168,
+ 204,
+ 252
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleEditableText_ProxyInfo =
+ {
+ &Object_StubDesc,
+ AccessibleEditableText__MIDL_ProcFormatString.Format,
+ &IAccessibleEditableText_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleEditableText_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ AccessibleEditableText__MIDL_ProcFormatString.Format,
+ &IAccessibleEditableText_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(10) _IAccessibleEditableTextProxyVtbl =
+{
+ &IAccessibleEditableText_ProxyInfo,
+ &IID_IAccessibleEditableText,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::copyText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::deleteText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::insertText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::cutText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::pasteText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::replaceText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::setAttributes */
+};
+
+const CInterfaceStubVtbl _IAccessibleEditableTextStubVtbl =
+{
+ &IID_IAccessibleEditableText,
+ &IAccessibleEditableText_ServerInfo,
+ 10,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ AccessibleEditableText__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x700022b, /* MIDL Version 7.0.555 */
+ 0,
+ UserMarshalRoutines,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _AccessibleEditableText_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_IAccessibleEditableTextProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _AccessibleEditableText_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_IAccessibleEditableTextStubVtbl,
+ 0
+};
+
+PCInterfaceName const _AccessibleEditableText_InterfaceNamesList[] =
+{
+ "IAccessibleEditableText",
+ 0
+};
+
+
+#define _AccessibleEditableText_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleEditableText, pIID, n)
+
+int __stdcall _AccessibleEditableText_IID_Lookup( const IID * pIID, int * pIndex )
+{
+
+ if(!_AccessibleEditableText_CHECK_IID(0))
+ {
+ *pIndex = 0;
+ return 1;
+ }
+
+ return 0;
+}
+
+const ExtendedProxyFileInfo AccessibleEditableText_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _AccessibleEditableText_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _AccessibleEditableText_StubVtblList,
+ (const PCInterfaceName * ) & _AccessibleEditableText_InterfaceNamesList,
+ 0, /* no delegation */
+ & _AccessibleEditableText_IID_Lookup,
+ 1,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#pragma optimize("", on )
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* !defined(_M_IA64) && !defined(_M_AMD64)*/
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleEventID.h b/src/3rdparty/iaccessible2/generated/x86/AccessibleEventID.h
new file mode 100644
index 0000000000..252375d0c6
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleEventID.h
@@ -0,0 +1,105 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:53 2012
+ */
+/* Compiler settings for AccessibleEventID.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+
+#ifndef __AccessibleEventID_h__
+#define __AccessibleEventID_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/* interface __MIDL_itf_AccessibleEventID_0000_0000 */
+/* [local] */
+
+
+enum IA2EventID
+ { IA2_EVENT_ACTION_CHANGED = 0x101,
+ IA2_EVENT_ACTIVE_DECENDENT_CHANGED = ( IA2_EVENT_ACTION_CHANGED + 1 ) ,
+ IA2_EVENT_ACTIVE_DESCENDANT_CHANGED = IA2_EVENT_ACTIVE_DECENDENT_CHANGED,
+ IA2_EVENT_DOCUMENT_ATTRIBUTE_CHANGED = ( IA2_EVENT_ACTIVE_DESCENDANT_CHANGED + 1 ) ,
+ IA2_EVENT_DOCUMENT_CONTENT_CHANGED = ( IA2_EVENT_DOCUMENT_ATTRIBUTE_CHANGED + 1 ) ,
+ IA2_EVENT_DOCUMENT_LOAD_COMPLETE = ( IA2_EVENT_DOCUMENT_CONTENT_CHANGED + 1 ) ,
+ IA2_EVENT_DOCUMENT_LOAD_STOPPED = ( IA2_EVENT_DOCUMENT_LOAD_COMPLETE + 1 ) ,
+ IA2_EVENT_DOCUMENT_RELOAD = ( IA2_EVENT_DOCUMENT_LOAD_STOPPED + 1 ) ,
+ IA2_EVENT_HYPERLINK_END_INDEX_CHANGED = ( IA2_EVENT_DOCUMENT_RELOAD + 1 ) ,
+ IA2_EVENT_HYPERLINK_NUMBER_OF_ANCHORS_CHANGED = ( IA2_EVENT_HYPERLINK_END_INDEX_CHANGED + 1 ) ,
+ IA2_EVENT_HYPERLINK_SELECTED_LINK_CHANGED = ( IA2_EVENT_HYPERLINK_NUMBER_OF_ANCHORS_CHANGED + 1 ) ,
+ IA2_EVENT_HYPERTEXT_LINK_ACTIVATED = ( IA2_EVENT_HYPERLINK_SELECTED_LINK_CHANGED + 1 ) ,
+ IA2_EVENT_HYPERTEXT_LINK_SELECTED = ( IA2_EVENT_HYPERTEXT_LINK_ACTIVATED + 1 ) ,
+ IA2_EVENT_HYPERLINK_START_INDEX_CHANGED = ( IA2_EVENT_HYPERTEXT_LINK_SELECTED + 1 ) ,
+ IA2_EVENT_HYPERTEXT_CHANGED = ( IA2_EVENT_HYPERLINK_START_INDEX_CHANGED + 1 ) ,
+ IA2_EVENT_HYPERTEXT_NLINKS_CHANGED = ( IA2_EVENT_HYPERTEXT_CHANGED + 1 ) ,
+ IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED = ( IA2_EVENT_HYPERTEXT_NLINKS_CHANGED + 1 ) ,
+ IA2_EVENT_PAGE_CHANGED = ( IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED + 1 ) ,
+ IA2_EVENT_SECTION_CHANGED = ( IA2_EVENT_PAGE_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_CAPTION_CHANGED = ( IA2_EVENT_SECTION_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_COLUMN_DESCRIPTION_CHANGED = ( IA2_EVENT_TABLE_CAPTION_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_COLUMN_HEADER_CHANGED = ( IA2_EVENT_TABLE_COLUMN_DESCRIPTION_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_MODEL_CHANGED = ( IA2_EVENT_TABLE_COLUMN_HEADER_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_ROW_DESCRIPTION_CHANGED = ( IA2_EVENT_TABLE_MODEL_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_ROW_HEADER_CHANGED = ( IA2_EVENT_TABLE_ROW_DESCRIPTION_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_SUMMARY_CHANGED = ( IA2_EVENT_TABLE_ROW_HEADER_CHANGED + 1 ) ,
+ IA2_EVENT_TEXT_ATTRIBUTE_CHANGED = ( IA2_EVENT_TABLE_SUMMARY_CHANGED + 1 ) ,
+ IA2_EVENT_TEXT_CARET_MOVED = ( IA2_EVENT_TEXT_ATTRIBUTE_CHANGED + 1 ) ,
+ IA2_EVENT_TEXT_CHANGED = ( IA2_EVENT_TEXT_CARET_MOVED + 1 ) ,
+ IA2_EVENT_TEXT_COLUMN_CHANGED = ( IA2_EVENT_TEXT_CHANGED + 1 ) ,
+ IA2_EVENT_TEXT_INSERTED = ( IA2_EVENT_TEXT_COLUMN_CHANGED + 1 ) ,
+ IA2_EVENT_TEXT_REMOVED = ( IA2_EVENT_TEXT_INSERTED + 1 ) ,
+ IA2_EVENT_TEXT_UPDATED = ( IA2_EVENT_TEXT_REMOVED + 1 ) ,
+ IA2_EVENT_TEXT_SELECTION_CHANGED = ( IA2_EVENT_TEXT_UPDATED + 1 ) ,
+ IA2_EVENT_VISIBLE_DATA_CHANGED = ( IA2_EVENT_TEXT_SELECTION_CHANGED + 1 )
+ } ;
+
+
+extern RPC_IF_HANDLE __MIDL_itf_AccessibleEventID_0000_0000_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_AccessibleEventID_0000_0000_v0_0_s_ifspec;
+
+/* Additional Prototypes for ALL interfaces */
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleHyperlink.h b/src/3rdparty/iaccessible2/generated/x86/AccessibleHyperlink.h
new file mode 100644
index 0000000000..858e6bbd9a
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleHyperlink.h
@@ -0,0 +1,252 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:53 2012
+ */
+/* Compiler settings for AccessibleHyperlink.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __AccessibleHyperlink_h__
+#define __AccessibleHyperlink_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IAccessibleHyperlink_FWD_DEFINED__
+#define __IAccessibleHyperlink_FWD_DEFINED__
+typedef interface IAccessibleHyperlink IAccessibleHyperlink;
+#endif /* __IAccessibleHyperlink_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "objidl.h"
+#include "oaidl.h"
+#include "oleacc.h"
+#include "AccessibleAction.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#ifndef __IAccessibleHyperlink_INTERFACE_DEFINED__
+#define __IAccessibleHyperlink_INTERFACE_DEFINED__
+
+/* interface IAccessibleHyperlink */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleHyperlink;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("01C20F2B-3DD2-400f-949F-AD00BDAB1D41")
+ IAccessibleHyperlink : public IAccessibleAction
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_anchor(
+ /* [in] */ long index,
+ /* [retval][out] */ VARIANT *anchor) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_anchorTarget(
+ /* [in] */ long index,
+ /* [retval][out] */ VARIANT *anchorTarget) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_startIndex(
+ /* [retval][out] */ long *index) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_endIndex(
+ /* [retval][out] */ long *index) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_valid(
+ /* [retval][out] */ boolean *valid) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleHyperlinkVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleHyperlink * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleHyperlink * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleHyperlink * This);
+
+ HRESULT ( STDMETHODCALLTYPE *nActions )(
+ IAccessibleHyperlink * This,
+ /* [retval][out] */ long *nActions);
+
+ HRESULT ( STDMETHODCALLTYPE *doAction )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long actionIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_description )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_keyBinding )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long actionIndex,
+ /* [in] */ long nMaxBindings,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **keyBindings,
+ /* [retval][out] */ long *nBindings);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *name);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedName )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *localizedName);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_anchor )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long index,
+ /* [retval][out] */ VARIANT *anchor);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_anchorTarget )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long index,
+ /* [retval][out] */ VARIANT *anchorTarget);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_startIndex )(
+ IAccessibleHyperlink * This,
+ /* [retval][out] */ long *index);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_endIndex )(
+ IAccessibleHyperlink * This,
+ /* [retval][out] */ long *index);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_valid )(
+ IAccessibleHyperlink * This,
+ /* [retval][out] */ boolean *valid);
+
+ END_INTERFACE
+ } IAccessibleHyperlinkVtbl;
+
+ interface IAccessibleHyperlink
+ {
+ CONST_VTBL struct IAccessibleHyperlinkVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleHyperlink_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleHyperlink_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleHyperlink_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleHyperlink_nActions(This,nActions) \
+ ( (This)->lpVtbl -> nActions(This,nActions) )
+
+#define IAccessibleHyperlink_doAction(This,actionIndex) \
+ ( (This)->lpVtbl -> doAction(This,actionIndex) )
+
+#define IAccessibleHyperlink_get_description(This,actionIndex,description) \
+ ( (This)->lpVtbl -> get_description(This,actionIndex,description) )
+
+#define IAccessibleHyperlink_get_keyBinding(This,actionIndex,nMaxBindings,keyBindings,nBindings) \
+ ( (This)->lpVtbl -> get_keyBinding(This,actionIndex,nMaxBindings,keyBindings,nBindings) )
+
+#define IAccessibleHyperlink_get_name(This,actionIndex,name) \
+ ( (This)->lpVtbl -> get_name(This,actionIndex,name) )
+
+#define IAccessibleHyperlink_get_localizedName(This,actionIndex,localizedName) \
+ ( (This)->lpVtbl -> get_localizedName(This,actionIndex,localizedName) )
+
+
+#define IAccessibleHyperlink_get_anchor(This,index,anchor) \
+ ( (This)->lpVtbl -> get_anchor(This,index,anchor) )
+
+#define IAccessibleHyperlink_get_anchorTarget(This,index,anchorTarget) \
+ ( (This)->lpVtbl -> get_anchorTarget(This,index,anchorTarget) )
+
+#define IAccessibleHyperlink_get_startIndex(This,index) \
+ ( (This)->lpVtbl -> get_startIndex(This,index) )
+
+#define IAccessibleHyperlink_get_endIndex(This,index) \
+ ( (This)->lpVtbl -> get_endIndex(This,index) )
+
+#define IAccessibleHyperlink_get_valid(This,valid) \
+ ( (This)->lpVtbl -> get_valid(This,valid) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleHyperlink_INTERFACE_DEFINED__ */
+
+
+/* Additional Prototypes for ALL interfaces */
+
+unsigned long __RPC_USER VARIANT_UserSize( unsigned long *, unsigned long , VARIANT * );
+unsigned char * __RPC_USER VARIANT_UserMarshal( unsigned long *, unsigned char *, VARIANT * );
+unsigned char * __RPC_USER VARIANT_UserUnmarshal(unsigned long *, unsigned char *, VARIANT * );
+void __RPC_USER VARIANT_UserFree( unsigned long *, VARIANT * );
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleHyperlink_i.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleHyperlink_i.c
new file mode 100644
index 0000000000..ef0921fe4c
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleHyperlink_i.c
@@ -0,0 +1,79 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:53 2012
+ */
+/* Compiler settings for AccessibleHyperlink.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleHyperlink,0x01C20F2B,0x3DD2,0x400f,0x94,0x9F,0xAD,0x00,0xBD,0xAB,0x1D,0x41);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleHyperlink_p.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleHyperlink_p.c
new file mode 100644
index 0000000000..c608123261
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleHyperlink_p.c
@@ -0,0 +1,1191 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:53 2012
+ */
+/* Compiler settings for AccessibleHyperlink.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if !defined(_M_IA64) && !defined(_M_AMD64)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+#pragma warning( disable: 4100 ) /* unreferenced arguments in x86 call */
+
+#pragma optimize("", off )
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "AccessibleHyperlink.h"
+
+#define TYPE_FORMAT_STRING_SIZE 1047
+#define PROC_FORMAT_STRING_SIZE 193
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 1
+
+typedef struct _AccessibleHyperlink_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } AccessibleHyperlink_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _AccessibleHyperlink_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } AccessibleHyperlink_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _AccessibleHyperlink_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } AccessibleHyperlink_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const AccessibleHyperlink_MIDL_TYPE_FORMAT_STRING AccessibleHyperlink__MIDL_TypeFormatString;
+extern const AccessibleHyperlink_MIDL_PROC_FORMAT_STRING AccessibleHyperlink__MIDL_ProcFormatString;
+extern const AccessibleHyperlink_MIDL_EXPR_FORMAT_STRING AccessibleHyperlink__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleHyperlink_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleHyperlink_ProxyInfo;
+
+
+extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
+
+#if !defined(__RPC_WIN32__)
+#error Invalid build platform for this stub.
+#endif
+
+#if !(TARGET_IS_NT50_OR_LATER)
+#error You need Windows 2000 or later to run this stub because it uses these features:
+#error /robust command line switch.
+#error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems.
+#error This app will fail with the RPC_X_WRONG_STUB_VERSION error.
+#endif
+
+
+static const AccessibleHyperlink_MIDL_PROC_FORMAT_STRING AccessibleHyperlink__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure get_anchor */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x9 ), /* 9 */
+/* 8 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 10 */ NdrFcShort( 0x8 ), /* 8 */
+/* 12 */ NdrFcShort( 0x8 ), /* 8 */
+/* 14 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 16 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 18 */ NdrFcShort( 0x1 ), /* 1 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter index */
+
+/* 24 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 26 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 28 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter anchor */
+
+/* 30 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
+/* 32 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 34 */ NdrFcShort( 0x404 ), /* Type Offset=1028 */
+
+ /* Return value */
+
+/* 36 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 38 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 40 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_anchorTarget */
+
+/* 42 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 44 */ NdrFcLong( 0x0 ), /* 0 */
+/* 48 */ NdrFcShort( 0xa ), /* 10 */
+/* 50 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 52 */ NdrFcShort( 0x8 ), /* 8 */
+/* 54 */ NdrFcShort( 0x8 ), /* 8 */
+/* 56 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 58 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 60 */ NdrFcShort( 0x1 ), /* 1 */
+/* 62 */ NdrFcShort( 0x0 ), /* 0 */
+/* 64 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter index */
+
+/* 66 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 68 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 70 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter anchorTarget */
+
+/* 72 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
+/* 74 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 76 */ NdrFcShort( 0x404 ), /* Type Offset=1028 */
+
+ /* Return value */
+
+/* 78 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 80 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 82 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_startIndex */
+
+/* 84 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 86 */ NdrFcLong( 0x0 ), /* 0 */
+/* 90 */ NdrFcShort( 0xb ), /* 11 */
+/* 92 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 94 */ NdrFcShort( 0x0 ), /* 0 */
+/* 96 */ NdrFcShort( 0x24 ), /* 36 */
+/* 98 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 100 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 102 */ NdrFcShort( 0x0 ), /* 0 */
+/* 104 */ NdrFcShort( 0x0 ), /* 0 */
+/* 106 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter index */
+
+/* 108 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 110 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 112 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 114 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 116 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 118 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_endIndex */
+
+/* 120 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 122 */ NdrFcLong( 0x0 ), /* 0 */
+/* 126 */ NdrFcShort( 0xc ), /* 12 */
+/* 128 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 130 */ NdrFcShort( 0x0 ), /* 0 */
+/* 132 */ NdrFcShort( 0x24 ), /* 36 */
+/* 134 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 136 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 138 */ NdrFcShort( 0x0 ), /* 0 */
+/* 140 */ NdrFcShort( 0x0 ), /* 0 */
+/* 142 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter index */
+
+/* 144 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 146 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 148 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 150 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 152 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 154 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_valid */
+
+/* 156 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 158 */ NdrFcLong( 0x0 ), /* 0 */
+/* 162 */ NdrFcShort( 0xd ), /* 13 */
+/* 164 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 166 */ NdrFcShort( 0x0 ), /* 0 */
+/* 168 */ NdrFcShort( 0x21 ), /* 33 */
+/* 170 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 172 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 174 */ NdrFcShort( 0x0 ), /* 0 */
+/* 176 */ NdrFcShort( 0x0 ), /* 0 */
+/* 178 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter valid */
+
+/* 180 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 182 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 184 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 186 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 188 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 190 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const AccessibleHyperlink_MIDL_TYPE_FORMAT_STRING AccessibleHyperlink__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 4 */ NdrFcShort( 0x400 ), /* Offset= 1024 (1028) */
+/* 6 */
+ 0x13, 0x0, /* FC_OP */
+/* 8 */ NdrFcShort( 0x3e8 ), /* Offset= 1000 (1008) */
+/* 10 */
+ 0x2b, /* FC_NON_ENCAPSULATED_UNION */
+ 0x9, /* FC_ULONG */
+/* 12 */ 0x7, /* Corr desc: FC_USHORT */
+ 0x0, /* */
+/* 14 */ NdrFcShort( 0xfff8 ), /* -8 */
+/* 16 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 18 */ NdrFcShort( 0x2 ), /* Offset= 2 (20) */
+/* 20 */ NdrFcShort( 0x10 ), /* 16 */
+/* 22 */ NdrFcShort( 0x2f ), /* 47 */
+/* 24 */ NdrFcLong( 0x14 ), /* 20 */
+/* 28 */ NdrFcShort( 0x800b ), /* Simple arm type: FC_HYPER */
+/* 30 */ NdrFcLong( 0x3 ), /* 3 */
+/* 34 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 36 */ NdrFcLong( 0x11 ), /* 17 */
+/* 40 */ NdrFcShort( 0x8001 ), /* Simple arm type: FC_BYTE */
+/* 42 */ NdrFcLong( 0x2 ), /* 2 */
+/* 46 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
+/* 48 */ NdrFcLong( 0x4 ), /* 4 */
+/* 52 */ NdrFcShort( 0x800a ), /* Simple arm type: FC_FLOAT */
+/* 54 */ NdrFcLong( 0x5 ), /* 5 */
+/* 58 */ NdrFcShort( 0x800c ), /* Simple arm type: FC_DOUBLE */
+/* 60 */ NdrFcLong( 0xb ), /* 11 */
+/* 64 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
+/* 66 */ NdrFcLong( 0xa ), /* 10 */
+/* 70 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 72 */ NdrFcLong( 0x6 ), /* 6 */
+/* 76 */ NdrFcShort( 0xe8 ), /* Offset= 232 (308) */
+/* 78 */ NdrFcLong( 0x7 ), /* 7 */
+/* 82 */ NdrFcShort( 0x800c ), /* Simple arm type: FC_DOUBLE */
+/* 84 */ NdrFcLong( 0x8 ), /* 8 */
+/* 88 */ NdrFcShort( 0xe2 ), /* Offset= 226 (314) */
+/* 90 */ NdrFcLong( 0xd ), /* 13 */
+/* 94 */ NdrFcShort( 0xf6 ), /* Offset= 246 (340) */
+/* 96 */ NdrFcLong( 0x9 ), /* 9 */
+/* 100 */ NdrFcShort( 0x102 ), /* Offset= 258 (358) */
+/* 102 */ NdrFcLong( 0x2000 ), /* 8192 */
+/* 106 */ NdrFcShort( 0x10e ), /* Offset= 270 (376) */
+/* 108 */ NdrFcLong( 0x24 ), /* 36 */
+/* 112 */ NdrFcShort( 0x336 ), /* Offset= 822 (934) */
+/* 114 */ NdrFcLong( 0x4024 ), /* 16420 */
+/* 118 */ NdrFcShort( 0x330 ), /* Offset= 816 (934) */
+/* 120 */ NdrFcLong( 0x4011 ), /* 16401 */
+/* 124 */ NdrFcShort( 0x32e ), /* Offset= 814 (938) */
+/* 126 */ NdrFcLong( 0x4002 ), /* 16386 */
+/* 130 */ NdrFcShort( 0x32c ), /* Offset= 812 (942) */
+/* 132 */ NdrFcLong( 0x4003 ), /* 16387 */
+/* 136 */ NdrFcShort( 0x32a ), /* Offset= 810 (946) */
+/* 138 */ NdrFcLong( 0x4014 ), /* 16404 */
+/* 142 */ NdrFcShort( 0x328 ), /* Offset= 808 (950) */
+/* 144 */ NdrFcLong( 0x4004 ), /* 16388 */
+/* 148 */ NdrFcShort( 0x326 ), /* Offset= 806 (954) */
+/* 150 */ NdrFcLong( 0x4005 ), /* 16389 */
+/* 154 */ NdrFcShort( 0x324 ), /* Offset= 804 (958) */
+/* 156 */ NdrFcLong( 0x400b ), /* 16395 */
+/* 160 */ NdrFcShort( 0x30e ), /* Offset= 782 (942) */
+/* 162 */ NdrFcLong( 0x400a ), /* 16394 */
+/* 166 */ NdrFcShort( 0x30c ), /* Offset= 780 (946) */
+/* 168 */ NdrFcLong( 0x4006 ), /* 16390 */
+/* 172 */ NdrFcShort( 0x316 ), /* Offset= 790 (962) */
+/* 174 */ NdrFcLong( 0x4007 ), /* 16391 */
+/* 178 */ NdrFcShort( 0x30c ), /* Offset= 780 (958) */
+/* 180 */ NdrFcLong( 0x4008 ), /* 16392 */
+/* 184 */ NdrFcShort( 0x30e ), /* Offset= 782 (966) */
+/* 186 */ NdrFcLong( 0x400d ), /* 16397 */
+/* 190 */ NdrFcShort( 0x30c ), /* Offset= 780 (970) */
+/* 192 */ NdrFcLong( 0x4009 ), /* 16393 */
+/* 196 */ NdrFcShort( 0x30a ), /* Offset= 778 (974) */
+/* 198 */ NdrFcLong( 0x6000 ), /* 24576 */
+/* 202 */ NdrFcShort( 0x308 ), /* Offset= 776 (978) */
+/* 204 */ NdrFcLong( 0x400c ), /* 16396 */
+/* 208 */ NdrFcShort( 0x306 ), /* Offset= 774 (982) */
+/* 210 */ NdrFcLong( 0x10 ), /* 16 */
+/* 214 */ NdrFcShort( 0x8002 ), /* Simple arm type: FC_CHAR */
+/* 216 */ NdrFcLong( 0x12 ), /* 18 */
+/* 220 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
+/* 222 */ NdrFcLong( 0x13 ), /* 19 */
+/* 226 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 228 */ NdrFcLong( 0x15 ), /* 21 */
+/* 232 */ NdrFcShort( 0x800b ), /* Simple arm type: FC_HYPER */
+/* 234 */ NdrFcLong( 0x16 ), /* 22 */
+/* 238 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 240 */ NdrFcLong( 0x17 ), /* 23 */
+/* 244 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 246 */ NdrFcLong( 0xe ), /* 14 */
+/* 250 */ NdrFcShort( 0x2e4 ), /* Offset= 740 (990) */
+/* 252 */ NdrFcLong( 0x400e ), /* 16398 */
+/* 256 */ NdrFcShort( 0x2e8 ), /* Offset= 744 (1000) */
+/* 258 */ NdrFcLong( 0x4010 ), /* 16400 */
+/* 262 */ NdrFcShort( 0x2e6 ), /* Offset= 742 (1004) */
+/* 264 */ NdrFcLong( 0x4012 ), /* 16402 */
+/* 268 */ NdrFcShort( 0x2a2 ), /* Offset= 674 (942) */
+/* 270 */ NdrFcLong( 0x4013 ), /* 16403 */
+/* 274 */ NdrFcShort( 0x2a0 ), /* Offset= 672 (946) */
+/* 276 */ NdrFcLong( 0x4015 ), /* 16405 */
+/* 280 */ NdrFcShort( 0x29e ), /* Offset= 670 (950) */
+/* 282 */ NdrFcLong( 0x4016 ), /* 16406 */
+/* 286 */ NdrFcShort( 0x294 ), /* Offset= 660 (946) */
+/* 288 */ NdrFcLong( 0x4017 ), /* 16407 */
+/* 292 */ NdrFcShort( 0x28e ), /* Offset= 654 (946) */
+/* 294 */ NdrFcLong( 0x0 ), /* 0 */
+/* 298 */ NdrFcShort( 0x0 ), /* Offset= 0 (298) */
+/* 300 */ NdrFcLong( 0x1 ), /* 1 */
+/* 304 */ NdrFcShort( 0x0 ), /* Offset= 0 (304) */
+/* 306 */ NdrFcShort( 0xffff ), /* Offset= -1 (305) */
+/* 308 */
+ 0x15, /* FC_STRUCT */
+ 0x7, /* 7 */
+/* 310 */ NdrFcShort( 0x8 ), /* 8 */
+/* 312 */ 0xb, /* FC_HYPER */
+ 0x5b, /* FC_END */
+/* 314 */
+ 0x13, 0x0, /* FC_OP */
+/* 316 */ NdrFcShort( 0xe ), /* Offset= 14 (330) */
+/* 318 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 320 */ NdrFcShort( 0x2 ), /* 2 */
+/* 322 */ 0x9, /* Corr desc: FC_ULONG */
+ 0x0, /* */
+/* 324 */ NdrFcShort( 0xfffc ), /* -4 */
+/* 326 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 328 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 330 */
+ 0x17, /* FC_CSTRUCT */
+ 0x3, /* 3 */
+/* 332 */ NdrFcShort( 0x8 ), /* 8 */
+/* 334 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (318) */
+/* 336 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 338 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 340 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 342 */ NdrFcLong( 0x0 ), /* 0 */
+/* 346 */ NdrFcShort( 0x0 ), /* 0 */
+/* 348 */ NdrFcShort( 0x0 ), /* 0 */
+/* 350 */ 0xc0, /* 192 */
+ 0x0, /* 0 */
+/* 352 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 354 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 356 */ 0x0, /* 0 */
+ 0x46, /* 70 */
+/* 358 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 360 */ NdrFcLong( 0x20400 ), /* 132096 */
+/* 364 */ NdrFcShort( 0x0 ), /* 0 */
+/* 366 */ NdrFcShort( 0x0 ), /* 0 */
+/* 368 */ 0xc0, /* 192 */
+ 0x0, /* 0 */
+/* 370 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 372 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 374 */ 0x0, /* 0 */
+ 0x46, /* 70 */
+/* 376 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 378 */ NdrFcShort( 0x2 ), /* Offset= 2 (380) */
+/* 380 */
+ 0x13, 0x0, /* FC_OP */
+/* 382 */ NdrFcShort( 0x216 ), /* Offset= 534 (916) */
+/* 384 */
+ 0x2a, /* FC_ENCAPSULATED_UNION */
+ 0x49, /* 73 */
+/* 386 */ NdrFcShort( 0x18 ), /* 24 */
+/* 388 */ NdrFcShort( 0xa ), /* 10 */
+/* 390 */ NdrFcLong( 0x8 ), /* 8 */
+/* 394 */ NdrFcShort( 0x5a ), /* Offset= 90 (484) */
+/* 396 */ NdrFcLong( 0xd ), /* 13 */
+/* 400 */ NdrFcShort( 0x7e ), /* Offset= 126 (526) */
+/* 402 */ NdrFcLong( 0x9 ), /* 9 */
+/* 406 */ NdrFcShort( 0x9e ), /* Offset= 158 (564) */
+/* 408 */ NdrFcLong( 0xc ), /* 12 */
+/* 412 */ NdrFcShort( 0xc8 ), /* Offset= 200 (612) */
+/* 414 */ NdrFcLong( 0x24 ), /* 36 */
+/* 418 */ NdrFcShort( 0x124 ), /* Offset= 292 (710) */
+/* 420 */ NdrFcLong( 0x800d ), /* 32781 */
+/* 424 */ NdrFcShort( 0x140 ), /* Offset= 320 (744) */
+/* 426 */ NdrFcLong( 0x10 ), /* 16 */
+/* 430 */ NdrFcShort( 0x15a ), /* Offset= 346 (776) */
+/* 432 */ NdrFcLong( 0x2 ), /* 2 */
+/* 436 */ NdrFcShort( 0x174 ), /* Offset= 372 (808) */
+/* 438 */ NdrFcLong( 0x3 ), /* 3 */
+/* 442 */ NdrFcShort( 0x18e ), /* Offset= 398 (840) */
+/* 444 */ NdrFcLong( 0x14 ), /* 20 */
+/* 448 */ NdrFcShort( 0x1a8 ), /* Offset= 424 (872) */
+/* 450 */ NdrFcShort( 0xffff ), /* Offset= -1 (449) */
+/* 452 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 454 */ NdrFcShort( 0x4 ), /* 4 */
+/* 456 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 458 */ NdrFcShort( 0x0 ), /* 0 */
+/* 460 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 462 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 464 */
+ 0x48, /* FC_VARIABLE_REPEAT */
+ 0x49, /* FC_FIXED_OFFSET */
+/* 466 */ NdrFcShort( 0x4 ), /* 4 */
+/* 468 */ NdrFcShort( 0x0 ), /* 0 */
+/* 470 */ NdrFcShort( 0x1 ), /* 1 */
+/* 472 */ NdrFcShort( 0x0 ), /* 0 */
+/* 474 */ NdrFcShort( 0x0 ), /* 0 */
+/* 476 */ 0x13, 0x0, /* FC_OP */
+/* 478 */ NdrFcShort( 0xff6c ), /* Offset= -148 (330) */
+/* 480 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 482 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 484 */
+ 0x16, /* FC_PSTRUCT */
+ 0x3, /* 3 */
+/* 486 */ NdrFcShort( 0x8 ), /* 8 */
+/* 488 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 490 */
+ 0x46, /* FC_NO_REPEAT */
+ 0x5c, /* FC_PAD */
+/* 492 */ NdrFcShort( 0x4 ), /* 4 */
+/* 494 */ NdrFcShort( 0x4 ), /* 4 */
+/* 496 */ 0x11, 0x0, /* FC_RP */
+/* 498 */ NdrFcShort( 0xffd2 ), /* Offset= -46 (452) */
+/* 500 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 502 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 504 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 506 */ NdrFcShort( 0x0 ), /* 0 */
+/* 508 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 510 */ NdrFcShort( 0x0 ), /* 0 */
+/* 512 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 514 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 518 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 520 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 522 */ NdrFcShort( 0xff4a ), /* Offset= -182 (340) */
+/* 524 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 526 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 528 */ NdrFcShort( 0x8 ), /* 8 */
+/* 530 */ NdrFcShort( 0x0 ), /* 0 */
+/* 532 */ NdrFcShort( 0x6 ), /* Offset= 6 (538) */
+/* 534 */ 0x8, /* FC_LONG */
+ 0x36, /* FC_POINTER */
+/* 536 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 538 */
+ 0x11, 0x0, /* FC_RP */
+/* 540 */ NdrFcShort( 0xffdc ), /* Offset= -36 (504) */
+/* 542 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 544 */ NdrFcShort( 0x0 ), /* 0 */
+/* 546 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 548 */ NdrFcShort( 0x0 ), /* 0 */
+/* 550 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 552 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 556 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 558 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 560 */ NdrFcShort( 0xff36 ), /* Offset= -202 (358) */
+/* 562 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 564 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 566 */ NdrFcShort( 0x8 ), /* 8 */
+/* 568 */ NdrFcShort( 0x0 ), /* 0 */
+/* 570 */ NdrFcShort( 0x6 ), /* Offset= 6 (576) */
+/* 572 */ 0x8, /* FC_LONG */
+ 0x36, /* FC_POINTER */
+/* 574 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 576 */
+ 0x11, 0x0, /* FC_RP */
+/* 578 */ NdrFcShort( 0xffdc ), /* Offset= -36 (542) */
+/* 580 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 582 */ NdrFcShort( 0x4 ), /* 4 */
+/* 584 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 586 */ NdrFcShort( 0x0 ), /* 0 */
+/* 588 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 590 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 592 */
+ 0x48, /* FC_VARIABLE_REPEAT */
+ 0x49, /* FC_FIXED_OFFSET */
+/* 594 */ NdrFcShort( 0x4 ), /* 4 */
+/* 596 */ NdrFcShort( 0x0 ), /* 0 */
+/* 598 */ NdrFcShort( 0x1 ), /* 1 */
+/* 600 */ NdrFcShort( 0x0 ), /* 0 */
+/* 602 */ NdrFcShort( 0x0 ), /* 0 */
+/* 604 */ 0x13, 0x0, /* FC_OP */
+/* 606 */ NdrFcShort( 0x192 ), /* Offset= 402 (1008) */
+/* 608 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 610 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 612 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 614 */ NdrFcShort( 0x8 ), /* 8 */
+/* 616 */ NdrFcShort( 0x0 ), /* 0 */
+/* 618 */ NdrFcShort( 0x6 ), /* Offset= 6 (624) */
+/* 620 */ 0x8, /* FC_LONG */
+ 0x36, /* FC_POINTER */
+/* 622 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 624 */
+ 0x11, 0x0, /* FC_RP */
+/* 626 */ NdrFcShort( 0xffd2 ), /* Offset= -46 (580) */
+/* 628 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 630 */ NdrFcLong( 0x2f ), /* 47 */
+/* 634 */ NdrFcShort( 0x0 ), /* 0 */
+/* 636 */ NdrFcShort( 0x0 ), /* 0 */
+/* 638 */ 0xc0, /* 192 */
+ 0x0, /* 0 */
+/* 640 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 642 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 644 */ 0x0, /* 0 */
+ 0x46, /* 70 */
+/* 646 */
+ 0x1b, /* FC_CARRAY */
+ 0x0, /* 0 */
+/* 648 */ NdrFcShort( 0x1 ), /* 1 */
+/* 650 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 652 */ NdrFcShort( 0x4 ), /* 4 */
+/* 654 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 656 */ 0x1, /* FC_BYTE */
+ 0x5b, /* FC_END */
+/* 658 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 660 */ NdrFcShort( 0x10 ), /* 16 */
+/* 662 */ NdrFcShort( 0x0 ), /* 0 */
+/* 664 */ NdrFcShort( 0xa ), /* Offset= 10 (674) */
+/* 666 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 668 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 670 */ NdrFcShort( 0xffd6 ), /* Offset= -42 (628) */
+/* 672 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 674 */
+ 0x13, 0x0, /* FC_OP */
+/* 676 */ NdrFcShort( 0xffe2 ), /* Offset= -30 (646) */
+/* 678 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 680 */ NdrFcShort( 0x4 ), /* 4 */
+/* 682 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 684 */ NdrFcShort( 0x0 ), /* 0 */
+/* 686 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 688 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 690 */
+ 0x48, /* FC_VARIABLE_REPEAT */
+ 0x49, /* FC_FIXED_OFFSET */
+/* 692 */ NdrFcShort( 0x4 ), /* 4 */
+/* 694 */ NdrFcShort( 0x0 ), /* 0 */
+/* 696 */ NdrFcShort( 0x1 ), /* 1 */
+/* 698 */ NdrFcShort( 0x0 ), /* 0 */
+/* 700 */ NdrFcShort( 0x0 ), /* 0 */
+/* 702 */ 0x13, 0x0, /* FC_OP */
+/* 704 */ NdrFcShort( 0xffd2 ), /* Offset= -46 (658) */
+/* 706 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 708 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 710 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 712 */ NdrFcShort( 0x8 ), /* 8 */
+/* 714 */ NdrFcShort( 0x0 ), /* 0 */
+/* 716 */ NdrFcShort( 0x6 ), /* Offset= 6 (722) */
+/* 718 */ 0x8, /* FC_LONG */
+ 0x36, /* FC_POINTER */
+/* 720 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 722 */
+ 0x11, 0x0, /* FC_RP */
+/* 724 */ NdrFcShort( 0xffd2 ), /* Offset= -46 (678) */
+/* 726 */
+ 0x1d, /* FC_SMFARRAY */
+ 0x0, /* 0 */
+/* 728 */ NdrFcShort( 0x8 ), /* 8 */
+/* 730 */ 0x1, /* FC_BYTE */
+ 0x5b, /* FC_END */
+/* 732 */
+ 0x15, /* FC_STRUCT */
+ 0x3, /* 3 */
+/* 734 */ NdrFcShort( 0x10 ), /* 16 */
+/* 736 */ 0x8, /* FC_LONG */
+ 0x6, /* FC_SHORT */
+/* 738 */ 0x6, /* FC_SHORT */
+ 0x4c, /* FC_EMBEDDED_COMPLEX */
+/* 740 */ 0x0, /* 0 */
+ NdrFcShort( 0xfff1 ), /* Offset= -15 (726) */
+ 0x5b, /* FC_END */
+/* 744 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 746 */ NdrFcShort( 0x18 ), /* 24 */
+/* 748 */ NdrFcShort( 0x0 ), /* 0 */
+/* 750 */ NdrFcShort( 0xa ), /* Offset= 10 (760) */
+/* 752 */ 0x8, /* FC_LONG */
+ 0x36, /* FC_POINTER */
+/* 754 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 756 */ NdrFcShort( 0xffe8 ), /* Offset= -24 (732) */
+/* 758 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 760 */
+ 0x11, 0x0, /* FC_RP */
+/* 762 */ NdrFcShort( 0xfefe ), /* Offset= -258 (504) */
+/* 764 */
+ 0x1b, /* FC_CARRAY */
+ 0x0, /* 0 */
+/* 766 */ NdrFcShort( 0x1 ), /* 1 */
+/* 768 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 770 */ NdrFcShort( 0x0 ), /* 0 */
+/* 772 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 774 */ 0x1, /* FC_BYTE */
+ 0x5b, /* FC_END */
+/* 776 */
+ 0x16, /* FC_PSTRUCT */
+ 0x3, /* 3 */
+/* 778 */ NdrFcShort( 0x8 ), /* 8 */
+/* 780 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 782 */
+ 0x46, /* FC_NO_REPEAT */
+ 0x5c, /* FC_PAD */
+/* 784 */ NdrFcShort( 0x4 ), /* 4 */
+/* 786 */ NdrFcShort( 0x4 ), /* 4 */
+/* 788 */ 0x13, 0x0, /* FC_OP */
+/* 790 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (764) */
+/* 792 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 794 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 796 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 798 */ NdrFcShort( 0x2 ), /* 2 */
+/* 800 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 802 */ NdrFcShort( 0x0 ), /* 0 */
+/* 804 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 806 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 808 */
+ 0x16, /* FC_PSTRUCT */
+ 0x3, /* 3 */
+/* 810 */ NdrFcShort( 0x8 ), /* 8 */
+/* 812 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 814 */
+ 0x46, /* FC_NO_REPEAT */
+ 0x5c, /* FC_PAD */
+/* 816 */ NdrFcShort( 0x4 ), /* 4 */
+/* 818 */ NdrFcShort( 0x4 ), /* 4 */
+/* 820 */ 0x13, 0x0, /* FC_OP */
+/* 822 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (796) */
+/* 824 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 826 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 828 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 830 */ NdrFcShort( 0x4 ), /* 4 */
+/* 832 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 834 */ NdrFcShort( 0x0 ), /* 0 */
+/* 836 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 838 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 840 */
+ 0x16, /* FC_PSTRUCT */
+ 0x3, /* 3 */
+/* 842 */ NdrFcShort( 0x8 ), /* 8 */
+/* 844 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 846 */
+ 0x46, /* FC_NO_REPEAT */
+ 0x5c, /* FC_PAD */
+/* 848 */ NdrFcShort( 0x4 ), /* 4 */
+/* 850 */ NdrFcShort( 0x4 ), /* 4 */
+/* 852 */ 0x13, 0x0, /* FC_OP */
+/* 854 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (828) */
+/* 856 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 858 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 860 */
+ 0x1b, /* FC_CARRAY */
+ 0x7, /* 7 */
+/* 862 */ NdrFcShort( 0x8 ), /* 8 */
+/* 864 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 866 */ NdrFcShort( 0x0 ), /* 0 */
+/* 868 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 870 */ 0xb, /* FC_HYPER */
+ 0x5b, /* FC_END */
+/* 872 */
+ 0x16, /* FC_PSTRUCT */
+ 0x3, /* 3 */
+/* 874 */ NdrFcShort( 0x8 ), /* 8 */
+/* 876 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 878 */
+ 0x46, /* FC_NO_REPEAT */
+ 0x5c, /* FC_PAD */
+/* 880 */ NdrFcShort( 0x4 ), /* 4 */
+/* 882 */ NdrFcShort( 0x4 ), /* 4 */
+/* 884 */ 0x13, 0x0, /* FC_OP */
+/* 886 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (860) */
+/* 888 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 890 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 892 */
+ 0x15, /* FC_STRUCT */
+ 0x3, /* 3 */
+/* 894 */ NdrFcShort( 0x8 ), /* 8 */
+/* 896 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 898 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 900 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 902 */ NdrFcShort( 0x8 ), /* 8 */
+/* 904 */ 0x7, /* Corr desc: FC_USHORT */
+ 0x0, /* */
+/* 906 */ NdrFcShort( 0xffd8 ), /* -40 */
+/* 908 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 910 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 912 */ NdrFcShort( 0xffec ), /* Offset= -20 (892) */
+/* 914 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 916 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 918 */ NdrFcShort( 0x28 ), /* 40 */
+/* 920 */ NdrFcShort( 0xffec ), /* Offset= -20 (900) */
+/* 922 */ NdrFcShort( 0x0 ), /* Offset= 0 (922) */
+/* 924 */ 0x6, /* FC_SHORT */
+ 0x6, /* FC_SHORT */
+/* 926 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 928 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 930 */ NdrFcShort( 0xfdde ), /* Offset= -546 (384) */
+/* 932 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 934 */
+ 0x13, 0x0, /* FC_OP */
+/* 936 */ NdrFcShort( 0xfeea ), /* Offset= -278 (658) */
+/* 938 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 940 */ 0x1, /* FC_BYTE */
+ 0x5c, /* FC_PAD */
+/* 942 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 944 */ 0x6, /* FC_SHORT */
+ 0x5c, /* FC_PAD */
+/* 946 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 948 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+/* 950 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 952 */ 0xb, /* FC_HYPER */
+ 0x5c, /* FC_PAD */
+/* 954 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 956 */ 0xa, /* FC_FLOAT */
+ 0x5c, /* FC_PAD */
+/* 958 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 960 */ 0xc, /* FC_DOUBLE */
+ 0x5c, /* FC_PAD */
+/* 962 */
+ 0x13, 0x0, /* FC_OP */
+/* 964 */ NdrFcShort( 0xfd70 ), /* Offset= -656 (308) */
+/* 966 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 968 */ NdrFcShort( 0xfd72 ), /* Offset= -654 (314) */
+/* 970 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 972 */ NdrFcShort( 0xfd88 ), /* Offset= -632 (340) */
+/* 974 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 976 */ NdrFcShort( 0xfd96 ), /* Offset= -618 (358) */
+/* 978 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 980 */ NdrFcShort( 0xfda4 ), /* Offset= -604 (376) */
+/* 982 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 984 */ NdrFcShort( 0x2 ), /* Offset= 2 (986) */
+/* 986 */
+ 0x13, 0x0, /* FC_OP */
+/* 988 */ NdrFcShort( 0x14 ), /* Offset= 20 (1008) */
+/* 990 */
+ 0x15, /* FC_STRUCT */
+ 0x7, /* 7 */
+/* 992 */ NdrFcShort( 0x10 ), /* 16 */
+/* 994 */ 0x6, /* FC_SHORT */
+ 0x1, /* FC_BYTE */
+/* 996 */ 0x1, /* FC_BYTE */
+ 0x8, /* FC_LONG */
+/* 998 */ 0xb, /* FC_HYPER */
+ 0x5b, /* FC_END */
+/* 1000 */
+ 0x13, 0x0, /* FC_OP */
+/* 1002 */ NdrFcShort( 0xfff4 ), /* Offset= -12 (990) */
+/* 1004 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 1006 */ 0x2, /* FC_CHAR */
+ 0x5c, /* FC_PAD */
+/* 1008 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x7, /* 7 */
+/* 1010 */ NdrFcShort( 0x20 ), /* 32 */
+/* 1012 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1014 */ NdrFcShort( 0x0 ), /* Offset= 0 (1014) */
+/* 1016 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 1018 */ 0x6, /* FC_SHORT */
+ 0x6, /* FC_SHORT */
+/* 1020 */ 0x6, /* FC_SHORT */
+ 0x6, /* FC_SHORT */
+/* 1022 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 1024 */ NdrFcShort( 0xfc0a ), /* Offset= -1014 (10) */
+/* 1026 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 1028 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 1030 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1032 */ NdrFcShort( 0x10 ), /* 16 */
+/* 1034 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1036 */ NdrFcShort( 0xfbfa ), /* Offset= -1030 (6) */
+/* 1038 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 1040 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+/* 1042 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 1044 */ 0x3, /* FC_SMALL */
+ 0x5c, /* FC_PAD */
+
+ 0x0
+ }
+ };
+
+static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
+ {
+
+ {
+ VARIANT_UserSize
+ ,VARIANT_UserMarshal
+ ,VARIANT_UserUnmarshal
+ ,VARIANT_UserFree
+ }
+
+ };
+
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IAccessibleAction, ver. 0.0,
+ GUID={0xB70D9F59,0x3B5A,0x4dba,{0xAB,0x9E,0x22,0x01,0x2F,0x60,0x7D,0xF5}} */
+
+
+/* Object interface: IAccessibleHyperlink, ver. 0.0,
+ GUID={0x01C20F2B,0x3DD2,0x400f,{0x94,0x9F,0xAD,0x00,0xBD,0xAB,0x1D,0x41}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleHyperlink_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 0,
+ 42,
+ 84,
+ 120,
+ 156
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleHyperlink_ProxyInfo =
+ {
+ &Object_StubDesc,
+ AccessibleHyperlink__MIDL_ProcFormatString.Format,
+ &IAccessibleHyperlink_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleHyperlink_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ AccessibleHyperlink__MIDL_ProcFormatString.Format,
+ &IAccessibleHyperlink_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(14) _IAccessibleHyperlinkProxyVtbl =
+{
+ &IAccessibleHyperlink_ProxyInfo,
+ &IID_IAccessibleHyperlink,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IAccessibleAction::nActions */ ,
+ 0 /* IAccessibleAction::doAction */ ,
+ 0 /* IAccessibleAction::get_description */ ,
+ 0 /* IAccessibleAction::get_keyBinding */ ,
+ 0 /* IAccessibleAction::get_name */ ,
+ 0 /* IAccessibleAction::get_localizedName */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_anchor */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_anchorTarget */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_startIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_endIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_valid */
+};
+
+
+static const PRPC_STUB_FUNCTION IAccessibleHyperlink_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _IAccessibleHyperlinkStubVtbl =
+{
+ &IID_IAccessibleHyperlink,
+ &IAccessibleHyperlink_ServerInfo,
+ 14,
+ &IAccessibleHyperlink_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ AccessibleHyperlink__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x700022b, /* MIDL Version 7.0.555 */
+ 0,
+ UserMarshalRoutines,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _AccessibleHyperlink_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_IAccessibleHyperlinkProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _AccessibleHyperlink_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_IAccessibleHyperlinkStubVtbl,
+ 0
+};
+
+PCInterfaceName const _AccessibleHyperlink_InterfaceNamesList[] =
+{
+ "IAccessibleHyperlink",
+ 0
+};
+
+const IID * const _AccessibleHyperlink_BaseIIDList[] =
+{
+ &IID_IAccessibleAction,
+ 0
+};
+
+
+#define _AccessibleHyperlink_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleHyperlink, pIID, n)
+
+int __stdcall _AccessibleHyperlink_IID_Lookup( const IID * pIID, int * pIndex )
+{
+
+ if(!_AccessibleHyperlink_CHECK_IID(0))
+ {
+ *pIndex = 0;
+ return 1;
+ }
+
+ return 0;
+}
+
+const ExtendedProxyFileInfo AccessibleHyperlink_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _AccessibleHyperlink_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _AccessibleHyperlink_StubVtblList,
+ (const PCInterfaceName * ) & _AccessibleHyperlink_InterfaceNamesList,
+ (const IID ** ) & _AccessibleHyperlink_BaseIIDList,
+ & _AccessibleHyperlink_IID_Lookup,
+ 1,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#pragma optimize("", on )
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* !defined(_M_IA64) && !defined(_M_AMD64)*/
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleHypertext.h b/src/3rdparty/iaccessible2/generated/x86/AccessibleHypertext.h
new file mode 100644
index 0000000000..180fb394b6
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleHypertext.h
@@ -0,0 +1,349 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:53 2012
+ */
+/* Compiler settings for AccessibleHypertext.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __AccessibleHypertext_h__
+#define __AccessibleHypertext_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IAccessibleHypertext_FWD_DEFINED__
+#define __IAccessibleHypertext_FWD_DEFINED__
+typedef interface IAccessibleHypertext IAccessibleHypertext;
+#endif /* __IAccessibleHypertext_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "objidl.h"
+#include "oaidl.h"
+#include "oleacc.h"
+#include "AccessibleText.h"
+#include "AccessibleHyperlink.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#ifndef __IAccessibleHypertext_INTERFACE_DEFINED__
+#define __IAccessibleHypertext_INTERFACE_DEFINED__
+
+/* interface IAccessibleHypertext */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleHypertext;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("6B4F8BBF-F1F2-418a-B35E-A195BC4103B9")
+ IAccessibleHypertext : public IAccessibleText
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nHyperlinks(
+ /* [retval][out] */ long *hyperlinkCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_hyperlink(
+ /* [in] */ long index,
+ /* [retval][out] */ IAccessibleHyperlink **hyperlink) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_hyperlinkIndex(
+ /* [in] */ long charIndex,
+ /* [retval][out] */ long *hyperlinkIndex) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleHypertextVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleHypertext * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleHypertext * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleHypertext * This);
+
+ HRESULT ( STDMETHODCALLTYPE *addSelection )(
+ IAccessibleHypertext * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )(
+ IAccessibleHypertext * This,
+ /* [in] */ long offset,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *textAttributes);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )(
+ IAccessibleHypertext * This,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )(
+ IAccessibleHypertext * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [out] */ long *x,
+ /* [out] */ long *y,
+ /* [out] */ long *width,
+ /* [retval][out] */ long *height);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )(
+ IAccessibleHypertext * This,
+ /* [retval][out] */ long *nSelections);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )(
+ IAccessibleHypertext * This,
+ /* [in] */ long x,
+ /* [in] */ long y,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )(
+ IAccessibleHypertext * This,
+ /* [in] */ long selectionIndex,
+ /* [out] */ long *startOffset,
+ /* [retval][out] */ long *endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )(
+ IAccessibleHypertext * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )(
+ IAccessibleHypertext * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )(
+ IAccessibleHypertext * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )(
+ IAccessibleHypertext * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ HRESULT ( STDMETHODCALLTYPE *removeSelection )(
+ IAccessibleHypertext * This,
+ /* [in] */ long selectionIndex);
+
+ HRESULT ( STDMETHODCALLTYPE *setCaretOffset )(
+ IAccessibleHypertext * This,
+ /* [in] */ long offset);
+
+ HRESULT ( STDMETHODCALLTYPE *setSelection )(
+ IAccessibleHypertext * This,
+ /* [in] */ long selectionIndex,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )(
+ IAccessibleHypertext * This,
+ /* [retval][out] */ long *nCharacters);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )(
+ IAccessibleHypertext * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2ScrollType scrollType);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )(
+ IAccessibleHypertext * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )(
+ IAccessibleHypertext * This,
+ /* [retval][out] */ IA2TextSegment *newText);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )(
+ IAccessibleHypertext * This,
+ /* [retval][out] */ IA2TextSegment *oldText);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nHyperlinks )(
+ IAccessibleHypertext * This,
+ /* [retval][out] */ long *hyperlinkCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlink )(
+ IAccessibleHypertext * This,
+ /* [in] */ long index,
+ /* [retval][out] */ IAccessibleHyperlink **hyperlink);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlinkIndex )(
+ IAccessibleHypertext * This,
+ /* [in] */ long charIndex,
+ /* [retval][out] */ long *hyperlinkIndex);
+
+ END_INTERFACE
+ } IAccessibleHypertextVtbl;
+
+ interface IAccessibleHypertext
+ {
+ CONST_VTBL struct IAccessibleHypertextVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleHypertext_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleHypertext_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleHypertext_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleHypertext_addSelection(This,startOffset,endOffset) \
+ ( (This)->lpVtbl -> addSelection(This,startOffset,endOffset) )
+
+#define IAccessibleHypertext_get_attributes(This,offset,startOffset,endOffset,textAttributes) \
+ ( (This)->lpVtbl -> get_attributes(This,offset,startOffset,endOffset,textAttributes) )
+
+#define IAccessibleHypertext_get_caretOffset(This,offset) \
+ ( (This)->lpVtbl -> get_caretOffset(This,offset) )
+
+#define IAccessibleHypertext_get_characterExtents(This,offset,coordType,x,y,width,height) \
+ ( (This)->lpVtbl -> get_characterExtents(This,offset,coordType,x,y,width,height) )
+
+#define IAccessibleHypertext_get_nSelections(This,nSelections) \
+ ( (This)->lpVtbl -> get_nSelections(This,nSelections) )
+
+#define IAccessibleHypertext_get_offsetAtPoint(This,x,y,coordType,offset) \
+ ( (This)->lpVtbl -> get_offsetAtPoint(This,x,y,coordType,offset) )
+
+#define IAccessibleHypertext_get_selection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> get_selection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleHypertext_get_text(This,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_text(This,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext_get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext_get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext_get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext_removeSelection(This,selectionIndex) \
+ ( (This)->lpVtbl -> removeSelection(This,selectionIndex) )
+
+#define IAccessibleHypertext_setCaretOffset(This,offset) \
+ ( (This)->lpVtbl -> setCaretOffset(This,offset) )
+
+#define IAccessibleHypertext_setSelection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> setSelection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleHypertext_get_nCharacters(This,nCharacters) \
+ ( (This)->lpVtbl -> get_nCharacters(This,nCharacters) )
+
+#define IAccessibleHypertext_scrollSubstringTo(This,startIndex,endIndex,scrollType) \
+ ( (This)->lpVtbl -> scrollSubstringTo(This,startIndex,endIndex,scrollType) )
+
+#define IAccessibleHypertext_scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) \
+ ( (This)->lpVtbl -> scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) )
+
+#define IAccessibleHypertext_get_newText(This,newText) \
+ ( (This)->lpVtbl -> get_newText(This,newText) )
+
+#define IAccessibleHypertext_get_oldText(This,oldText) \
+ ( (This)->lpVtbl -> get_oldText(This,oldText) )
+
+
+#define IAccessibleHypertext_get_nHyperlinks(This,hyperlinkCount) \
+ ( (This)->lpVtbl -> get_nHyperlinks(This,hyperlinkCount) )
+
+#define IAccessibleHypertext_get_hyperlink(This,index,hyperlink) \
+ ( (This)->lpVtbl -> get_hyperlink(This,index,hyperlink) )
+
+#define IAccessibleHypertext_get_hyperlinkIndex(This,charIndex,hyperlinkIndex) \
+ ( (This)->lpVtbl -> get_hyperlinkIndex(This,charIndex,hyperlinkIndex) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleHypertext_INTERFACE_DEFINED__ */
+
+
+/* Additional Prototypes for ALL interfaces */
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleHypertext_i.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleHypertext_i.c
new file mode 100644
index 0000000000..e6edec9fe7
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleHypertext_i.c
@@ -0,0 +1,79 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:53 2012
+ */
+/* Compiler settings for AccessibleHypertext.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleHypertext,0x6B4F8BBF,0xF1F2,0x418a,0xB3,0x5E,0xA1,0x95,0xBC,0x41,0x03,0xB9);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleHypertext_p.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleHypertext_p.c
new file mode 100644
index 0000000000..40eddde608
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleHypertext_p.c
@@ -0,0 +1,463 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:53 2012
+ */
+/* Compiler settings for AccessibleHypertext.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if !defined(_M_IA64) && !defined(_M_AMD64)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+#pragma warning( disable: 4100 ) /* unreferenced arguments in x86 call */
+
+#pragma optimize("", off )
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "AccessibleHypertext.h"
+
+#define TYPE_FORMAT_STRING_SIZE 29
+#define PROC_FORMAT_STRING_SIZE 121
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 0
+
+typedef struct _AccessibleHypertext_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } AccessibleHypertext_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _AccessibleHypertext_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } AccessibleHypertext_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _AccessibleHypertext_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } AccessibleHypertext_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const AccessibleHypertext_MIDL_TYPE_FORMAT_STRING AccessibleHypertext__MIDL_TypeFormatString;
+extern const AccessibleHypertext_MIDL_PROC_FORMAT_STRING AccessibleHypertext__MIDL_ProcFormatString;
+extern const AccessibleHypertext_MIDL_EXPR_FORMAT_STRING AccessibleHypertext__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleHypertext_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleHypertext_ProxyInfo;
+
+
+
+#if !defined(__RPC_WIN32__)
+#error Invalid build platform for this stub.
+#endif
+
+#if !(TARGET_IS_NT50_OR_LATER)
+#error You need Windows 2000 or later to run this stub because it uses these features:
+#error /robust command line switch.
+#error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems.
+#error This app will fail with the RPC_X_WRONG_STUB_VERSION error.
+#endif
+
+
+static const AccessibleHypertext_MIDL_PROC_FORMAT_STRING AccessibleHypertext__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure get_nHyperlinks */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x16 ), /* 22 */
+/* 8 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 10 */ NdrFcShort( 0x0 ), /* 0 */
+/* 12 */ NdrFcShort( 0x24 ), /* 36 */
+/* 14 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 16 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 18 */ NdrFcShort( 0x0 ), /* 0 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter hyperlinkCount */
+
+/* 24 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 26 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 28 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 30 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 32 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 34 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_hyperlink */
+
+/* 36 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 38 */ NdrFcLong( 0x0 ), /* 0 */
+/* 42 */ NdrFcShort( 0x17 ), /* 23 */
+/* 44 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 46 */ NdrFcShort( 0x8 ), /* 8 */
+/* 48 */ NdrFcShort( 0x8 ), /* 8 */
+/* 50 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 52 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 54 */ NdrFcShort( 0x0 ), /* 0 */
+/* 56 */ NdrFcShort( 0x0 ), /* 0 */
+/* 58 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter index */
+
+/* 60 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 62 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 64 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter hyperlink */
+
+/* 66 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 68 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 70 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
+
+ /* Return value */
+
+/* 72 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 74 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 76 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_hyperlinkIndex */
+
+/* 78 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 80 */ NdrFcLong( 0x0 ), /* 0 */
+/* 84 */ NdrFcShort( 0x18 ), /* 24 */
+/* 86 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 88 */ NdrFcShort( 0x8 ), /* 8 */
+/* 90 */ NdrFcShort( 0x24 ), /* 36 */
+/* 92 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 94 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 96 */ NdrFcShort( 0x0 ), /* 0 */
+/* 98 */ NdrFcShort( 0x0 ), /* 0 */
+/* 100 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter charIndex */
+
+/* 102 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 104 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 106 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter hyperlinkIndex */
+
+/* 108 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 110 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 112 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 114 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 116 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 118 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const AccessibleHypertext_MIDL_TYPE_FORMAT_STRING AccessibleHypertext__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 4 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+/* 6 */
+ 0x11, 0x10, /* FC_RP [pointer_deref] */
+/* 8 */ NdrFcShort( 0x2 ), /* Offset= 2 (10) */
+/* 10 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 12 */ NdrFcLong( 0x1c20f2b ), /* 29495083 */
+/* 16 */ NdrFcShort( 0x3dd2 ), /* 15826 */
+/* 18 */ NdrFcShort( 0x400f ), /* 16399 */
+/* 20 */ 0x94, /* 148 */
+ 0x9f, /* 159 */
+/* 22 */ 0xad, /* 173 */
+ 0x0, /* 0 */
+/* 24 */ 0xbd, /* 189 */
+ 0xab, /* 171 */
+/* 26 */ 0x1d, /* 29 */
+ 0x41, /* 65 */
+
+ 0x0
+ }
+ };
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IAccessibleText, ver. 0.0,
+ GUID={0x24FD2FFB,0x3AAD,0x4a08,{0x83,0x35,0xA3,0xAD,0x89,0xC0,0xFB,0x4B}} */
+
+
+/* Object interface: IAccessibleHypertext, ver. 0.0,
+ GUID={0x6B4F8BBF,0xF1F2,0x418a,{0xB3,0x5E,0xA1,0x95,0xBC,0x41,0x03,0xB9}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleHypertext_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 0,
+ 36,
+ 78
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleHypertext_ProxyInfo =
+ {
+ &Object_StubDesc,
+ AccessibleHypertext__MIDL_ProcFormatString.Format,
+ &IAccessibleHypertext_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleHypertext_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ AccessibleHypertext__MIDL_ProcFormatString.Format,
+ &IAccessibleHypertext_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(25) _IAccessibleHypertextProxyVtbl =
+{
+ &IAccessibleHypertext_ProxyInfo,
+ &IID_IAccessibleHypertext,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IAccessibleText::addSelection */ ,
+ 0 /* IAccessibleText::get_attributes */ ,
+ 0 /* IAccessibleText::get_caretOffset */ ,
+ 0 /* IAccessibleText::get_characterExtents */ ,
+ 0 /* IAccessibleText::get_nSelections */ ,
+ 0 /* IAccessibleText::get_offsetAtPoint */ ,
+ 0 /* IAccessibleText::get_selection */ ,
+ 0 /* IAccessibleText::get_text */ ,
+ 0 /* IAccessibleText::get_textBeforeOffset */ ,
+ 0 /* IAccessibleText::get_textAfterOffset */ ,
+ 0 /* IAccessibleText::get_textAtOffset */ ,
+ 0 /* IAccessibleText::removeSelection */ ,
+ 0 /* IAccessibleText::setCaretOffset */ ,
+ 0 /* IAccessibleText::setSelection */ ,
+ 0 /* IAccessibleText::get_nCharacters */ ,
+ 0 /* IAccessibleText::scrollSubstringTo */ ,
+ 0 /* IAccessibleText::scrollSubstringToPoint */ ,
+ 0 /* IAccessibleText::get_newText */ ,
+ 0 /* IAccessibleText::get_oldText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_nHyperlinks */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_hyperlink */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_hyperlinkIndex */
+};
+
+
+static const PRPC_STUB_FUNCTION IAccessibleHypertext_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _IAccessibleHypertextStubVtbl =
+{
+ &IID_IAccessibleHypertext,
+ &IAccessibleHypertext_ServerInfo,
+ 25,
+ &IAccessibleHypertext_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ AccessibleHypertext__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x700022b, /* MIDL Version 7.0.555 */
+ 0,
+ 0,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _AccessibleHypertext_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_IAccessibleHypertextProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _AccessibleHypertext_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_IAccessibleHypertextStubVtbl,
+ 0
+};
+
+PCInterfaceName const _AccessibleHypertext_InterfaceNamesList[] =
+{
+ "IAccessibleHypertext",
+ 0
+};
+
+const IID * const _AccessibleHypertext_BaseIIDList[] =
+{
+ &IID_IAccessibleText,
+ 0
+};
+
+
+#define _AccessibleHypertext_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleHypertext, pIID, n)
+
+int __stdcall _AccessibleHypertext_IID_Lookup( const IID * pIID, int * pIndex )
+{
+
+ if(!_AccessibleHypertext_CHECK_IID(0))
+ {
+ *pIndex = 0;
+ return 1;
+ }
+
+ return 0;
+}
+
+const ExtendedProxyFileInfo AccessibleHypertext_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _AccessibleHypertext_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _AccessibleHypertext_StubVtblList,
+ (const PCInterfaceName * ) & _AccessibleHypertext_InterfaceNamesList,
+ (const IID ** ) & _AccessibleHypertext_BaseIIDList,
+ & _AccessibleHypertext_IID_Lookup,
+ 1,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#pragma optimize("", on )
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* !defined(_M_IA64) && !defined(_M_AMD64)*/
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleImage.h b/src/3rdparty/iaccessible2/generated/x86/AccessibleImage.h
new file mode 100644
index 0000000000..d240bb6156
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleImage.h
@@ -0,0 +1,185 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:53 2012
+ */
+/* Compiler settings for AccessibleImage.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __AccessibleImage_h__
+#define __AccessibleImage_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IAccessibleImage_FWD_DEFINED__
+#define __IAccessibleImage_FWD_DEFINED__
+typedef interface IAccessibleImage IAccessibleImage;
+#endif /* __IAccessibleImage_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "objidl.h"
+#include "oaidl.h"
+#include "oleacc.h"
+#include "IA2CommonTypes.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#ifndef __IAccessibleImage_INTERFACE_DEFINED__
+#define __IAccessibleImage_INTERFACE_DEFINED__
+
+/* interface IAccessibleImage */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleImage;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("FE5ABB3D-615E-4f7b-909F-5F0EDA9E8DDE")
+ IAccessibleImage : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_description(
+ /* [retval][out] */ BSTR *description) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_imagePosition(
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [out] */ long *x,
+ /* [retval][out] */ long *y) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_imageSize(
+ /* [out] */ long *height,
+ /* [retval][out] */ long *width) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleImageVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleImage * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleImage * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleImage * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_description )(
+ IAccessibleImage * This,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_imagePosition )(
+ IAccessibleImage * This,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [out] */ long *x,
+ /* [retval][out] */ long *y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_imageSize )(
+ IAccessibleImage * This,
+ /* [out] */ long *height,
+ /* [retval][out] */ long *width);
+
+ END_INTERFACE
+ } IAccessibleImageVtbl;
+
+ interface IAccessibleImage
+ {
+ CONST_VTBL struct IAccessibleImageVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleImage_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleImage_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleImage_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleImage_get_description(This,description) \
+ ( (This)->lpVtbl -> get_description(This,description) )
+
+#define IAccessibleImage_get_imagePosition(This,coordinateType,x,y) \
+ ( (This)->lpVtbl -> get_imagePosition(This,coordinateType,x,y) )
+
+#define IAccessibleImage_get_imageSize(This,height,width) \
+ ( (This)->lpVtbl -> get_imageSize(This,height,width) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleImage_INTERFACE_DEFINED__ */
+
+
+/* Additional Prototypes for ALL interfaces */
+
+unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
+unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
+unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
+void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleImage_i.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleImage_i.c
new file mode 100644
index 0000000000..37fa8696d1
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleImage_i.c
@@ -0,0 +1,79 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:53 2012
+ */
+/* Compiler settings for AccessibleImage.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleImage,0xFE5ABB3D,0x615E,0x4f7b,0x90,0x9F,0x5F,0x0E,0xDA,0x9E,0x8D,0xDE);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleImage_p.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleImage_p.c
new file mode 100644
index 0000000000..daa8af2e29
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleImage_p.c
@@ -0,0 +1,423 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:53 2012
+ */
+/* Compiler settings for AccessibleImage.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if !defined(_M_IA64) && !defined(_M_AMD64)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+#pragma warning( disable: 4100 ) /* unreferenced arguments in x86 call */
+
+#pragma optimize("", off )
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "AccessibleImage.h"
+
+#define TYPE_FORMAT_STRING_SIZE 47
+#define PROC_FORMAT_STRING_SIZE 127
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 1
+
+typedef struct _AccessibleImage_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } AccessibleImage_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _AccessibleImage_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } AccessibleImage_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _AccessibleImage_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } AccessibleImage_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const AccessibleImage_MIDL_TYPE_FORMAT_STRING AccessibleImage__MIDL_TypeFormatString;
+extern const AccessibleImage_MIDL_PROC_FORMAT_STRING AccessibleImage__MIDL_ProcFormatString;
+extern const AccessibleImage_MIDL_EXPR_FORMAT_STRING AccessibleImage__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleImage_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleImage_ProxyInfo;
+
+
+extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
+
+#if !defined(__RPC_WIN32__)
+#error Invalid build platform for this stub.
+#endif
+
+#if !(TARGET_IS_NT50_OR_LATER)
+#error You need Windows 2000 or later to run this stub because it uses these features:
+#error /robust command line switch.
+#error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems.
+#error This app will fail with the RPC_X_WRONG_STUB_VERSION error.
+#endif
+
+
+static const AccessibleImage_MIDL_PROC_FORMAT_STRING AccessibleImage__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure get_description */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x3 ), /* 3 */
+/* 8 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 10 */ NdrFcShort( 0x0 ), /* 0 */
+/* 12 */ NdrFcShort( 0x8 ), /* 8 */
+/* 14 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 16 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 18 */ NdrFcShort( 0x1 ), /* 1 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter description */
+
+/* 24 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 26 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 28 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 30 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 32 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 34 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_imagePosition */
+
+/* 36 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 38 */ NdrFcLong( 0x0 ), /* 0 */
+/* 42 */ NdrFcShort( 0x4 ), /* 4 */
+/* 44 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 46 */ NdrFcShort( 0x6 ), /* 6 */
+/* 48 */ NdrFcShort( 0x40 ), /* 64 */
+/* 50 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 52 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 54 */ NdrFcShort( 0x0 ), /* 0 */
+/* 56 */ NdrFcShort( 0x0 ), /* 0 */
+/* 58 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter coordinateType */
+
+/* 60 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 62 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 64 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter x */
+
+/* 66 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 68 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 70 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 72 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 74 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 76 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 78 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 80 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 82 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_imageSize */
+
+/* 84 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 86 */ NdrFcLong( 0x0 ), /* 0 */
+/* 90 */ NdrFcShort( 0x5 ), /* 5 */
+/* 92 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 94 */ NdrFcShort( 0x0 ), /* 0 */
+/* 96 */ NdrFcShort( 0x40 ), /* 64 */
+/* 98 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 100 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 102 */ NdrFcShort( 0x0 ), /* 0 */
+/* 104 */ NdrFcShort( 0x0 ), /* 0 */
+/* 106 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter height */
+
+/* 108 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 110 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 112 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter width */
+
+/* 114 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 116 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 118 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 120 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 122 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 124 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const AccessibleImage_MIDL_TYPE_FORMAT_STRING AccessibleImage__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 4 */ NdrFcShort( 0x1c ), /* Offset= 28 (32) */
+/* 6 */
+ 0x13, 0x0, /* FC_OP */
+/* 8 */ NdrFcShort( 0xe ), /* Offset= 14 (22) */
+/* 10 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 12 */ NdrFcShort( 0x2 ), /* 2 */
+/* 14 */ 0x9, /* Corr desc: FC_ULONG */
+ 0x0, /* */
+/* 16 */ NdrFcShort( 0xfffc ), /* -4 */
+/* 18 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 20 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 22 */
+ 0x17, /* FC_CSTRUCT */
+ 0x3, /* 3 */
+/* 24 */ NdrFcShort( 0x8 ), /* 8 */
+/* 26 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (10) */
+/* 28 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 30 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 32 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 34 */ NdrFcShort( 0x0 ), /* 0 */
+/* 36 */ NdrFcShort( 0x4 ), /* 4 */
+/* 38 */ NdrFcShort( 0x0 ), /* 0 */
+/* 40 */ NdrFcShort( 0xffde ), /* Offset= -34 (6) */
+/* 42 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 44 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+
+ 0x0
+ }
+ };
+
+static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
+ {
+
+ {
+ BSTR_UserSize
+ ,BSTR_UserMarshal
+ ,BSTR_UserUnmarshal
+ ,BSTR_UserFree
+ }
+
+ };
+
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IAccessibleImage, ver. 0.0,
+ GUID={0xFE5ABB3D,0x615E,0x4f7b,{0x90,0x9F,0x5F,0x0E,0xDA,0x9E,0x8D,0xDE}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleImage_FormatStringOffsetTable[] =
+ {
+ 0,
+ 36,
+ 84
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleImage_ProxyInfo =
+ {
+ &Object_StubDesc,
+ AccessibleImage__MIDL_ProcFormatString.Format,
+ &IAccessibleImage_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleImage_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ AccessibleImage__MIDL_ProcFormatString.Format,
+ &IAccessibleImage_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(6) _IAccessibleImageProxyVtbl =
+{
+ &IAccessibleImage_ProxyInfo,
+ &IID_IAccessibleImage,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleImage::get_description */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleImage::get_imagePosition */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleImage::get_imageSize */
+};
+
+const CInterfaceStubVtbl _IAccessibleImageStubVtbl =
+{
+ &IID_IAccessibleImage,
+ &IAccessibleImage_ServerInfo,
+ 6,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ AccessibleImage__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x700022b, /* MIDL Version 7.0.555 */
+ 0,
+ UserMarshalRoutines,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _AccessibleImage_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_IAccessibleImageProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _AccessibleImage_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_IAccessibleImageStubVtbl,
+ 0
+};
+
+PCInterfaceName const _AccessibleImage_InterfaceNamesList[] =
+{
+ "IAccessibleImage",
+ 0
+};
+
+
+#define _AccessibleImage_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleImage, pIID, n)
+
+int __stdcall _AccessibleImage_IID_Lookup( const IID * pIID, int * pIndex )
+{
+
+ if(!_AccessibleImage_CHECK_IID(0))
+ {
+ *pIndex = 0;
+ return 1;
+ }
+
+ return 0;
+}
+
+const ExtendedProxyFileInfo AccessibleImage_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _AccessibleImage_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _AccessibleImage_StubVtblList,
+ (const PCInterfaceName * ) & _AccessibleImage_InterfaceNamesList,
+ 0, /* no delegation */
+ & _AccessibleImage_IID_Lookup,
+ 1,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#pragma optimize("", on )
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* !defined(_M_IA64) && !defined(_M_AMD64)*/
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleRelation.h b/src/3rdparty/iaccessible2/generated/x86/AccessibleRelation.h
new file mode 100644
index 0000000000..b24908a421
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleRelation.h
@@ -0,0 +1,244 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:54 2012
+ */
+/* Compiler settings for AccessibleRelation.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __AccessibleRelation_h__
+#define __AccessibleRelation_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IAccessibleRelation_FWD_DEFINED__
+#define __IAccessibleRelation_FWD_DEFINED__
+typedef interface IAccessibleRelation IAccessibleRelation;
+#endif /* __IAccessibleRelation_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "objidl.h"
+#include "oaidl.h"
+#include "oleacc.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/* interface __MIDL_itf_AccessibleRelation_0000_0000 */
+/* [local] */
+
+#define IA2_RELATION_CONTROLLED_BY ( L"controlledBy" )
+
+#define IA2_RELATION_CONTROLLER_FOR ( L"controllerFor" )
+
+#define IA2_RELATION_DESCRIBED_BY ( L"describedBy" )
+
+#define IA2_RELATION_DESCRIPTION_FOR ( L"descriptionFor" )
+
+#define IA2_RELATION_EMBEDDED_BY ( L"embeddedBy" )
+
+#define IA2_RELATION_EMBEDS ( L"embeds" )
+
+#define IA2_RELATION_FLOWS_FROM ( L"flowsFrom" )
+
+#define IA2_RELATION_FLOWS_TO ( L"flowsTo" )
+
+#define IA2_RELATION_LABEL_FOR ( L"labelFor" )
+
+#define IA2_RELATION_LABELED_BY ( L"labelledBy" )
+
+#define IA2_RELATION_LABELLED_BY ( L"labelledBy" )
+
+#define IA2_RELATION_MEMBER_OF ( L"memberOf" )
+
+#define IA2_RELATION_NODE_CHILD_OF ( L"nodeChildOf" )
+
+#define IA2_RELATION_PARENT_WINDOW_OF ( L"parentWindowOf" )
+
+#define IA2_RELATION_POPUP_FOR ( L"popupFor" )
+
+#define IA2_RELATION_SUBWINDOW_OF ( L"subwindowOf" )
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_AccessibleRelation_0000_0000_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_AccessibleRelation_0000_0000_v0_0_s_ifspec;
+
+#ifndef __IAccessibleRelation_INTERFACE_DEFINED__
+#define __IAccessibleRelation_INTERFACE_DEFINED__
+
+/* interface IAccessibleRelation */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleRelation;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("7CDF86EE-C3DA-496a-BDA4-281B336E1FDC")
+ IAccessibleRelation : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_relationType(
+ /* [retval][out] */ BSTR *relationType) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_localizedRelationType(
+ /* [retval][out] */ BSTR *localizedRelationType) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nTargets(
+ /* [retval][out] */ long *nTargets) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_target(
+ /* [in] */ long targetIndex,
+ /* [retval][out] */ IUnknown **target) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_targets(
+ /* [in] */ long maxTargets,
+ /* [length_is][size_is][out] */ IUnknown **targets,
+ /* [retval][out] */ long *nTargets) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleRelationVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleRelation * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleRelation * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleRelation * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relationType )(
+ IAccessibleRelation * This,
+ /* [retval][out] */ BSTR *relationType);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedRelationType )(
+ IAccessibleRelation * This,
+ /* [retval][out] */ BSTR *localizedRelationType);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nTargets )(
+ IAccessibleRelation * This,
+ /* [retval][out] */ long *nTargets);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_target )(
+ IAccessibleRelation * This,
+ /* [in] */ long targetIndex,
+ /* [retval][out] */ IUnknown **target);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_targets )(
+ IAccessibleRelation * This,
+ /* [in] */ long maxTargets,
+ /* [length_is][size_is][out] */ IUnknown **targets,
+ /* [retval][out] */ long *nTargets);
+
+ END_INTERFACE
+ } IAccessibleRelationVtbl;
+
+ interface IAccessibleRelation
+ {
+ CONST_VTBL struct IAccessibleRelationVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleRelation_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleRelation_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleRelation_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleRelation_get_relationType(This,relationType) \
+ ( (This)->lpVtbl -> get_relationType(This,relationType) )
+
+#define IAccessibleRelation_get_localizedRelationType(This,localizedRelationType) \
+ ( (This)->lpVtbl -> get_localizedRelationType(This,localizedRelationType) )
+
+#define IAccessibleRelation_get_nTargets(This,nTargets) \
+ ( (This)->lpVtbl -> get_nTargets(This,nTargets) )
+
+#define IAccessibleRelation_get_target(This,targetIndex,target) \
+ ( (This)->lpVtbl -> get_target(This,targetIndex,target) )
+
+#define IAccessibleRelation_get_targets(This,maxTargets,targets,nTargets) \
+ ( (This)->lpVtbl -> get_targets(This,maxTargets,targets,nTargets) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleRelation_INTERFACE_DEFINED__ */
+
+
+/* Additional Prototypes for ALL interfaces */
+
+unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
+unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
+unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
+void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleRelation_i.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleRelation_i.c
new file mode 100644
index 0000000000..58c8b78be7
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleRelation_i.c
@@ -0,0 +1,79 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:54 2012
+ */
+/* Compiler settings for AccessibleRelation.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleRelation,0x7CDF86EE,0xC3DA,0x496a,0xBD,0xA4,0x28,0x1B,0x33,0x6E,0x1F,0xDC);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleRelation_p.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleRelation_p.c
new file mode 100644
index 0000000000..a3a6cbd632
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleRelation_p.c
@@ -0,0 +1,527 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:54 2012
+ */
+/* Compiler settings for AccessibleRelation.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if !defined(_M_IA64) && !defined(_M_AMD64)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+#pragma warning( disable: 4100 ) /* unreferenced arguments in x86 call */
+
+#pragma optimize("", off )
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "AccessibleRelation.h"
+
+#define TYPE_FORMAT_STRING_SIZE 95
+#define PROC_FORMAT_STRING_SIZE 199
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 1
+
+typedef struct _AccessibleRelation_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } AccessibleRelation_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _AccessibleRelation_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } AccessibleRelation_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _AccessibleRelation_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } AccessibleRelation_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const AccessibleRelation_MIDL_TYPE_FORMAT_STRING AccessibleRelation__MIDL_TypeFormatString;
+extern const AccessibleRelation_MIDL_PROC_FORMAT_STRING AccessibleRelation__MIDL_ProcFormatString;
+extern const AccessibleRelation_MIDL_EXPR_FORMAT_STRING AccessibleRelation__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleRelation_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleRelation_ProxyInfo;
+
+
+extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
+
+#if !defined(__RPC_WIN32__)
+#error Invalid build platform for this stub.
+#endif
+
+#if !(TARGET_IS_NT50_OR_LATER)
+#error You need Windows 2000 or later to run this stub because it uses these features:
+#error /robust command line switch.
+#error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems.
+#error This app will fail with the RPC_X_WRONG_STUB_VERSION error.
+#endif
+
+
+static const AccessibleRelation_MIDL_PROC_FORMAT_STRING AccessibleRelation__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure get_relationType */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x3 ), /* 3 */
+/* 8 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 10 */ NdrFcShort( 0x0 ), /* 0 */
+/* 12 */ NdrFcShort( 0x8 ), /* 8 */
+/* 14 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 16 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 18 */ NdrFcShort( 0x1 ), /* 1 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter relationType */
+
+/* 24 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 26 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 28 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 30 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 32 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 34 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_localizedRelationType */
+
+/* 36 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 38 */ NdrFcLong( 0x0 ), /* 0 */
+/* 42 */ NdrFcShort( 0x4 ), /* 4 */
+/* 44 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 46 */ NdrFcShort( 0x0 ), /* 0 */
+/* 48 */ NdrFcShort( 0x8 ), /* 8 */
+/* 50 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 52 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 54 */ NdrFcShort( 0x1 ), /* 1 */
+/* 56 */ NdrFcShort( 0x0 ), /* 0 */
+/* 58 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter localizedRelationType */
+
+/* 60 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 62 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 64 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 66 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 68 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 70 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nTargets */
+
+/* 72 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 74 */ NdrFcLong( 0x0 ), /* 0 */
+/* 78 */ NdrFcShort( 0x5 ), /* 5 */
+/* 80 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 82 */ NdrFcShort( 0x0 ), /* 0 */
+/* 84 */ NdrFcShort( 0x24 ), /* 36 */
+/* 86 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 88 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 90 */ NdrFcShort( 0x0 ), /* 0 */
+/* 92 */ NdrFcShort( 0x0 ), /* 0 */
+/* 94 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nTargets */
+
+/* 96 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 98 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 100 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 102 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 104 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 106 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_target */
+
+/* 108 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 110 */ NdrFcLong( 0x0 ), /* 0 */
+/* 114 */ NdrFcShort( 0x6 ), /* 6 */
+/* 116 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 118 */ NdrFcShort( 0x8 ), /* 8 */
+/* 120 */ NdrFcShort( 0x8 ), /* 8 */
+/* 122 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 124 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 126 */ NdrFcShort( 0x0 ), /* 0 */
+/* 128 */ NdrFcShort( 0x0 ), /* 0 */
+/* 130 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter targetIndex */
+
+/* 132 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 134 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 136 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter target */
+
+/* 138 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 140 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 142 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
+
+ /* Return value */
+
+/* 144 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 146 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 148 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_targets */
+
+/* 150 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 152 */ NdrFcLong( 0x0 ), /* 0 */
+/* 156 */ NdrFcShort( 0x7 ), /* 7 */
+/* 158 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 160 */ NdrFcShort( 0x8 ), /* 8 */
+/* 162 */ NdrFcShort( 0x24 ), /* 36 */
+/* 164 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 166 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 168 */ NdrFcShort( 0x1 ), /* 1 */
+/* 170 */ NdrFcShort( 0x0 ), /* 0 */
+/* 172 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxTargets */
+
+/* 174 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 176 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 178 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter targets */
+
+/* 180 */ NdrFcShort( 0x113 ), /* Flags: must size, must free, out, simple ref, */
+/* 182 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 184 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Parameter nTargets */
+
+/* 186 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 188 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 190 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 192 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 194 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 196 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const AccessibleRelation_MIDL_TYPE_FORMAT_STRING AccessibleRelation__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 4 */ NdrFcShort( 0x1c ), /* Offset= 28 (32) */
+/* 6 */
+ 0x13, 0x0, /* FC_OP */
+/* 8 */ NdrFcShort( 0xe ), /* Offset= 14 (22) */
+/* 10 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 12 */ NdrFcShort( 0x2 ), /* 2 */
+/* 14 */ 0x9, /* Corr desc: FC_ULONG */
+ 0x0, /* */
+/* 16 */ NdrFcShort( 0xfffc ), /* -4 */
+/* 18 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 20 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 22 */
+ 0x17, /* FC_CSTRUCT */
+ 0x3, /* 3 */
+/* 24 */ NdrFcShort( 0x8 ), /* 8 */
+/* 26 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (10) */
+/* 28 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 30 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 32 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 34 */ NdrFcShort( 0x0 ), /* 0 */
+/* 36 */ NdrFcShort( 0x4 ), /* 4 */
+/* 38 */ NdrFcShort( 0x0 ), /* 0 */
+/* 40 */ NdrFcShort( 0xffde ), /* Offset= -34 (6) */
+/* 42 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 44 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+/* 46 */
+ 0x11, 0x10, /* FC_RP [pointer_deref] */
+/* 48 */ NdrFcShort( 0x2 ), /* Offset= 2 (50) */
+/* 50 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 52 */ NdrFcLong( 0x0 ), /* 0 */
+/* 56 */ NdrFcShort( 0x0 ), /* 0 */
+/* 58 */ NdrFcShort( 0x0 ), /* 0 */
+/* 60 */ 0xc0, /* 192 */
+ 0x0, /* 0 */
+/* 62 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 64 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 66 */ 0x0, /* 0 */
+ 0x46, /* 70 */
+/* 68 */
+ 0x11, 0x0, /* FC_RP */
+/* 70 */ NdrFcShort( 0x2 ), /* Offset= 2 (72) */
+/* 72 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 74 */ NdrFcShort( 0x0 ), /* 0 */
+/* 76 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x0, /* */
+/* 78 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 80 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 82 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 84 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 86 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 88 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 90 */ NdrFcShort( 0xffd8 ), /* Offset= -40 (50) */
+/* 92 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+
+ 0x0
+ }
+ };
+
+static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
+ {
+
+ {
+ BSTR_UserSize
+ ,BSTR_UserMarshal
+ ,BSTR_UserUnmarshal
+ ,BSTR_UserFree
+ }
+
+ };
+
+
+
+/* Standard interface: __MIDL_itf_AccessibleRelation_0000_0000, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IAccessibleRelation, ver. 0.0,
+ GUID={0x7CDF86EE,0xC3DA,0x496a,{0xBD,0xA4,0x28,0x1B,0x33,0x6E,0x1F,0xDC}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleRelation_FormatStringOffsetTable[] =
+ {
+ 0,
+ 36,
+ 72,
+ 108,
+ 150
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleRelation_ProxyInfo =
+ {
+ &Object_StubDesc,
+ AccessibleRelation__MIDL_ProcFormatString.Format,
+ &IAccessibleRelation_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleRelation_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ AccessibleRelation__MIDL_ProcFormatString.Format,
+ &IAccessibleRelation_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(8) _IAccessibleRelationProxyVtbl =
+{
+ &IAccessibleRelation_ProxyInfo,
+ &IID_IAccessibleRelation,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleRelation::get_relationType */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleRelation::get_localizedRelationType */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleRelation::get_nTargets */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleRelation::get_target */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleRelation::get_targets */
+};
+
+const CInterfaceStubVtbl _IAccessibleRelationStubVtbl =
+{
+ &IID_IAccessibleRelation,
+ &IAccessibleRelation_ServerInfo,
+ 8,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ AccessibleRelation__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x700022b, /* MIDL Version 7.0.555 */
+ 0,
+ UserMarshalRoutines,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _AccessibleRelation_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_IAccessibleRelationProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _AccessibleRelation_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_IAccessibleRelationStubVtbl,
+ 0
+};
+
+PCInterfaceName const _AccessibleRelation_InterfaceNamesList[] =
+{
+ "IAccessibleRelation",
+ 0
+};
+
+
+#define _AccessibleRelation_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleRelation, pIID, n)
+
+int __stdcall _AccessibleRelation_IID_Lookup( const IID * pIID, int * pIndex )
+{
+
+ if(!_AccessibleRelation_CHECK_IID(0))
+ {
+ *pIndex = 0;
+ return 1;
+ }
+
+ return 0;
+}
+
+const ExtendedProxyFileInfo AccessibleRelation_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _AccessibleRelation_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _AccessibleRelation_StubVtblList,
+ (const PCInterfaceName * ) & _AccessibleRelation_InterfaceNamesList,
+ 0, /* no delegation */
+ & _AccessibleRelation_IID_Lookup,
+ 1,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#pragma optimize("", on )
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* !defined(_M_IA64) && !defined(_M_AMD64)*/
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleRole.h b/src/3rdparty/iaccessible2/generated/x86/AccessibleRole.h
new file mode 100644
index 0000000000..221d1d00f6
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleRole.h
@@ -0,0 +1,118 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:54 2012
+ */
+/* Compiler settings for AccessibleRole.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+
+#ifndef __AccessibleRole_h__
+#define __AccessibleRole_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+/* header files for imported files */
+#include "objidl.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/* interface __MIDL_itf_AccessibleRole_0000_0000 */
+/* [local] */
+
+
+enum IA2Role
+ { IA2_ROLE_UNKNOWN = 0,
+ IA2_ROLE_CANVAS = 0x401,
+ IA2_ROLE_CAPTION = ( IA2_ROLE_CANVAS + 1 ) ,
+ IA2_ROLE_CHECK_MENU_ITEM = ( IA2_ROLE_CAPTION + 1 ) ,
+ IA2_ROLE_COLOR_CHOOSER = ( IA2_ROLE_CHECK_MENU_ITEM + 1 ) ,
+ IA2_ROLE_DATE_EDITOR = ( IA2_ROLE_COLOR_CHOOSER + 1 ) ,
+ IA2_ROLE_DESKTOP_ICON = ( IA2_ROLE_DATE_EDITOR + 1 ) ,
+ IA2_ROLE_DESKTOP_PANE = ( IA2_ROLE_DESKTOP_ICON + 1 ) ,
+ IA2_ROLE_DIRECTORY_PANE = ( IA2_ROLE_DESKTOP_PANE + 1 ) ,
+ IA2_ROLE_EDITBAR = ( IA2_ROLE_DIRECTORY_PANE + 1 ) ,
+ IA2_ROLE_EMBEDDED_OBJECT = ( IA2_ROLE_EDITBAR + 1 ) ,
+ IA2_ROLE_ENDNOTE = ( IA2_ROLE_EMBEDDED_OBJECT + 1 ) ,
+ IA2_ROLE_FILE_CHOOSER = ( IA2_ROLE_ENDNOTE + 1 ) ,
+ IA2_ROLE_FONT_CHOOSER = ( IA2_ROLE_FILE_CHOOSER + 1 ) ,
+ IA2_ROLE_FOOTER = ( IA2_ROLE_FONT_CHOOSER + 1 ) ,
+ IA2_ROLE_FOOTNOTE = ( IA2_ROLE_FOOTER + 1 ) ,
+ IA2_ROLE_FORM = ( IA2_ROLE_FOOTNOTE + 1 ) ,
+ IA2_ROLE_FRAME = ( IA2_ROLE_FORM + 1 ) ,
+ IA2_ROLE_GLASS_PANE = ( IA2_ROLE_FRAME + 1 ) ,
+ IA2_ROLE_HEADER = ( IA2_ROLE_GLASS_PANE + 1 ) ,
+ IA2_ROLE_HEADING = ( IA2_ROLE_HEADER + 1 ) ,
+ IA2_ROLE_ICON = ( IA2_ROLE_HEADING + 1 ) ,
+ IA2_ROLE_IMAGE_MAP = ( IA2_ROLE_ICON + 1 ) ,
+ IA2_ROLE_INPUT_METHOD_WINDOW = ( IA2_ROLE_IMAGE_MAP + 1 ) ,
+ IA2_ROLE_INTERNAL_FRAME = ( IA2_ROLE_INPUT_METHOD_WINDOW + 1 ) ,
+ IA2_ROLE_LABEL = ( IA2_ROLE_INTERNAL_FRAME + 1 ) ,
+ IA2_ROLE_LAYERED_PANE = ( IA2_ROLE_LABEL + 1 ) ,
+ IA2_ROLE_NOTE = ( IA2_ROLE_LAYERED_PANE + 1 ) ,
+ IA2_ROLE_OPTION_PANE = ( IA2_ROLE_NOTE + 1 ) ,
+ IA2_ROLE_PAGE = ( IA2_ROLE_OPTION_PANE + 1 ) ,
+ IA2_ROLE_PARAGRAPH = ( IA2_ROLE_PAGE + 1 ) ,
+ IA2_ROLE_RADIO_MENU_ITEM = ( IA2_ROLE_PARAGRAPH + 1 ) ,
+ IA2_ROLE_REDUNDANT_OBJECT = ( IA2_ROLE_RADIO_MENU_ITEM + 1 ) ,
+ IA2_ROLE_ROOT_PANE = ( IA2_ROLE_REDUNDANT_OBJECT + 1 ) ,
+ IA2_ROLE_RULER = ( IA2_ROLE_ROOT_PANE + 1 ) ,
+ IA2_ROLE_SCROLL_PANE = ( IA2_ROLE_RULER + 1 ) ,
+ IA2_ROLE_SECTION = ( IA2_ROLE_SCROLL_PANE + 1 ) ,
+ IA2_ROLE_SHAPE = ( IA2_ROLE_SECTION + 1 ) ,
+ IA2_ROLE_SPLIT_PANE = ( IA2_ROLE_SHAPE + 1 ) ,
+ IA2_ROLE_TEAR_OFF_MENU = ( IA2_ROLE_SPLIT_PANE + 1 ) ,
+ IA2_ROLE_TERMINAL = ( IA2_ROLE_TEAR_OFF_MENU + 1 ) ,
+ IA2_ROLE_TEXT_FRAME = ( IA2_ROLE_TERMINAL + 1 ) ,
+ IA2_ROLE_TOGGLE_BUTTON = ( IA2_ROLE_TEXT_FRAME + 1 ) ,
+ IA2_ROLE_VIEW_PORT = ( IA2_ROLE_TOGGLE_BUTTON + 1 ) ,
+ IA2_ROLE_COMPLEMENTARY_CONTENT = ( IA2_ROLE_VIEW_PORT + 1 )
+ } ;
+
+
+extern RPC_IF_HANDLE __MIDL_itf_AccessibleRole_0000_0000_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_AccessibleRole_0000_0000_v0_0_s_ifspec;
+
+/* Additional Prototypes for ALL interfaces */
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleStates.h b/src/3rdparty/iaccessible2/generated/x86/AccessibleStates.h
new file mode 100644
index 0000000000..058d2e548e
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleStates.h
@@ -0,0 +1,95 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:54 2012
+ */
+/* Compiler settings for AccessibleStates.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+
+#ifndef __AccessibleStates_h__
+#define __AccessibleStates_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+/* header files for imported files */
+#include "objidl.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/* interface __MIDL_itf_AccessibleStates_0000_0000 */
+/* [local] */
+
+typedef long AccessibleStates;
+
+
+enum IA2States
+ { IA2_STATE_ACTIVE = 0x1,
+ IA2_STATE_ARMED = 0x2,
+ IA2_STATE_DEFUNCT = 0x4,
+ IA2_STATE_EDITABLE = 0x8,
+ IA2_STATE_HORIZONTAL = 0x10,
+ IA2_STATE_ICONIFIED = 0x20,
+ IA2_STATE_INVALID_ENTRY = 0x40,
+ IA2_STATE_MANAGES_DESCENDANTS = 0x80,
+ IA2_STATE_MODAL = 0x100,
+ IA2_STATE_MULTI_LINE = 0x200,
+ IA2_STATE_OPAQUE = 0x400,
+ IA2_STATE_REQUIRED = 0x800,
+ IA2_STATE_SELECTABLE_TEXT = 0x1000,
+ IA2_STATE_SINGLE_LINE = 0x2000,
+ IA2_STATE_STALE = 0x4000,
+ IA2_STATE_SUPPORTS_AUTOCOMPLETION = 0x8000,
+ IA2_STATE_TRANSIENT = 0x10000,
+ IA2_STATE_VERTICAL = 0x20000,
+ IA2_STATE_CHECKABLE = 0x40000,
+ IA2_STATE_PINNED = 0x80000
+ } ;
+
+
+extern RPC_IF_HANDLE __MIDL_itf_AccessibleStates_0000_0000_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_AccessibleStates_0000_0000_v0_0_s_ifspec;
+
+/* Additional Prototypes for ALL interfaces */
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleTable.h b/src/3rdparty/iaccessible2/generated/x86/AccessibleTable.h
new file mode 100644
index 0000000000..0f7dd49efc
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleTable.h
@@ -0,0 +1,497 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:54 2012
+ */
+/* Compiler settings for AccessibleTable.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __AccessibleTable_h__
+#define __AccessibleTable_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IAccessibleTable_FWD_DEFINED__
+#define __IAccessibleTable_FWD_DEFINED__
+typedef interface IAccessibleTable IAccessibleTable;
+#endif /* __IAccessibleTable_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "objidl.h"
+#include "oaidl.h"
+#include "oleacc.h"
+#include "Accessible2.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#ifndef __IAccessibleTable_INTERFACE_DEFINED__
+#define __IAccessibleTable_INTERFACE_DEFINED__
+
+/* interface IAccessibleTable */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleTable;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("35AD8070-C20C-4fb4-B094-F4F7275DD469")
+ IAccessibleTable : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_accessibleAt(
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ IUnknown **accessible) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_caption(
+ /* [retval][out] */ IUnknown **accessible) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_childIndex(
+ /* [in] */ long rowIndex,
+ /* [in] */ long columnIndex,
+ /* [retval][out] */ long *cellIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnDescription(
+ /* [in] */ long column,
+ /* [retval][out] */ BSTR *description) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnExtentAt(
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ long *nColumnsSpanned) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnHeader(
+ /* [out] */ IAccessibleTable **accessibleTable,
+ /* [retval][out] */ long *startingRowIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnIndex(
+ /* [in] */ long cellIndex,
+ /* [retval][out] */ long *columnIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nColumns(
+ /* [retval][out] */ long *columnCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nRows(
+ /* [retval][out] */ long *rowCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedChildren(
+ /* [retval][out] */ long *cellCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedColumns(
+ /* [retval][out] */ long *columnCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedRows(
+ /* [retval][out] */ long *rowCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowDescription(
+ /* [in] */ long row,
+ /* [retval][out] */ BSTR *description) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowExtentAt(
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ long *nRowsSpanned) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowHeader(
+ /* [out] */ IAccessibleTable **accessibleTable,
+ /* [retval][out] */ long *startingColumnIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowIndex(
+ /* [in] */ long cellIndex,
+ /* [retval][out] */ long *rowIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedChildren(
+ /* [in] */ long maxChildren,
+ /* [length_is][length_is][size_is][size_is][out] */ long **children,
+ /* [retval][out] */ long *nChildren) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedColumns(
+ /* [in] */ long maxColumns,
+ /* [length_is][length_is][size_is][size_is][out] */ long **columns,
+ /* [retval][out] */ long *nColumns) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedRows(
+ /* [in] */ long maxRows,
+ /* [length_is][length_is][size_is][size_is][out] */ long **rows,
+ /* [retval][out] */ long *nRows) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_summary(
+ /* [retval][out] */ IUnknown **accessible) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isColumnSelected(
+ /* [in] */ long column,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isRowSelected(
+ /* [in] */ long row,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isSelected(
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE selectRow(
+ /* [in] */ long row) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE selectColumn(
+ /* [in] */ long column) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE unselectRow(
+ /* [in] */ long row) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE unselectColumn(
+ /* [in] */ long column) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowColumnExtentsAtIndex(
+ /* [in] */ long index,
+ /* [out] */ long *row,
+ /* [out] */ long *column,
+ /* [out] */ long *rowExtents,
+ /* [out] */ long *columnExtents,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_modelChange(
+ /* [retval][out] */ IA2TableModelChange *modelChange) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleTableVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleTable * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleTable * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleTable * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_accessibleAt )(
+ IAccessibleTable * This,
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ IUnknown **accessible);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caption )(
+ IAccessibleTable * This,
+ /* [retval][out] */ IUnknown **accessible);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_childIndex )(
+ IAccessibleTable * This,
+ /* [in] */ long rowIndex,
+ /* [in] */ long columnIndex,
+ /* [retval][out] */ long *cellIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnDescription )(
+ IAccessibleTable * This,
+ /* [in] */ long column,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnExtentAt )(
+ IAccessibleTable * This,
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ long *nColumnsSpanned);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnHeader )(
+ IAccessibleTable * This,
+ /* [out] */ IAccessibleTable **accessibleTable,
+ /* [retval][out] */ long *startingRowIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnIndex )(
+ IAccessibleTable * This,
+ /* [in] */ long cellIndex,
+ /* [retval][out] */ long *columnIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nColumns )(
+ IAccessibleTable * This,
+ /* [retval][out] */ long *columnCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRows )(
+ IAccessibleTable * This,
+ /* [retval][out] */ long *rowCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedChildren )(
+ IAccessibleTable * This,
+ /* [retval][out] */ long *cellCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedColumns )(
+ IAccessibleTable * This,
+ /* [retval][out] */ long *columnCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedRows )(
+ IAccessibleTable * This,
+ /* [retval][out] */ long *rowCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowDescription )(
+ IAccessibleTable * This,
+ /* [in] */ long row,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowExtentAt )(
+ IAccessibleTable * This,
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ long *nRowsSpanned);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowHeader )(
+ IAccessibleTable * This,
+ /* [out] */ IAccessibleTable **accessibleTable,
+ /* [retval][out] */ long *startingColumnIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowIndex )(
+ IAccessibleTable * This,
+ /* [in] */ long cellIndex,
+ /* [retval][out] */ long *rowIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedChildren )(
+ IAccessibleTable * This,
+ /* [in] */ long maxChildren,
+ /* [length_is][length_is][size_is][size_is][out] */ long **children,
+ /* [retval][out] */ long *nChildren);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedColumns )(
+ IAccessibleTable * This,
+ /* [in] */ long maxColumns,
+ /* [length_is][length_is][size_is][size_is][out] */ long **columns,
+ /* [retval][out] */ long *nColumns);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedRows )(
+ IAccessibleTable * This,
+ /* [in] */ long maxRows,
+ /* [length_is][length_is][size_is][size_is][out] */ long **rows,
+ /* [retval][out] */ long *nRows);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_summary )(
+ IAccessibleTable * This,
+ /* [retval][out] */ IUnknown **accessible);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isColumnSelected )(
+ IAccessibleTable * This,
+ /* [in] */ long column,
+ /* [retval][out] */ boolean *isSelected);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRowSelected )(
+ IAccessibleTable * This,
+ /* [in] */ long row,
+ /* [retval][out] */ boolean *isSelected);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSelected )(
+ IAccessibleTable * This,
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ boolean *isSelected);
+
+ HRESULT ( STDMETHODCALLTYPE *selectRow )(
+ IAccessibleTable * This,
+ /* [in] */ long row);
+
+ HRESULT ( STDMETHODCALLTYPE *selectColumn )(
+ IAccessibleTable * This,
+ /* [in] */ long column);
+
+ HRESULT ( STDMETHODCALLTYPE *unselectRow )(
+ IAccessibleTable * This,
+ /* [in] */ long row);
+
+ HRESULT ( STDMETHODCALLTYPE *unselectColumn )(
+ IAccessibleTable * This,
+ /* [in] */ long column);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowColumnExtentsAtIndex )(
+ IAccessibleTable * This,
+ /* [in] */ long index,
+ /* [out] */ long *row,
+ /* [out] */ long *column,
+ /* [out] */ long *rowExtents,
+ /* [out] */ long *columnExtents,
+ /* [retval][out] */ boolean *isSelected);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_modelChange )(
+ IAccessibleTable * This,
+ /* [retval][out] */ IA2TableModelChange *modelChange);
+
+ END_INTERFACE
+ } IAccessibleTableVtbl;
+
+ interface IAccessibleTable
+ {
+ CONST_VTBL struct IAccessibleTableVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleTable_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleTable_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleTable_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleTable_get_accessibleAt(This,row,column,accessible) \
+ ( (This)->lpVtbl -> get_accessibleAt(This,row,column,accessible) )
+
+#define IAccessibleTable_get_caption(This,accessible) \
+ ( (This)->lpVtbl -> get_caption(This,accessible) )
+
+#define IAccessibleTable_get_childIndex(This,rowIndex,columnIndex,cellIndex) \
+ ( (This)->lpVtbl -> get_childIndex(This,rowIndex,columnIndex,cellIndex) )
+
+#define IAccessibleTable_get_columnDescription(This,column,description) \
+ ( (This)->lpVtbl -> get_columnDescription(This,column,description) )
+
+#define IAccessibleTable_get_columnExtentAt(This,row,column,nColumnsSpanned) \
+ ( (This)->lpVtbl -> get_columnExtentAt(This,row,column,nColumnsSpanned) )
+
+#define IAccessibleTable_get_columnHeader(This,accessibleTable,startingRowIndex) \
+ ( (This)->lpVtbl -> get_columnHeader(This,accessibleTable,startingRowIndex) )
+
+#define IAccessibleTable_get_columnIndex(This,cellIndex,columnIndex) \
+ ( (This)->lpVtbl -> get_columnIndex(This,cellIndex,columnIndex) )
+
+#define IAccessibleTable_get_nColumns(This,columnCount) \
+ ( (This)->lpVtbl -> get_nColumns(This,columnCount) )
+
+#define IAccessibleTable_get_nRows(This,rowCount) \
+ ( (This)->lpVtbl -> get_nRows(This,rowCount) )
+
+#define IAccessibleTable_get_nSelectedChildren(This,cellCount) \
+ ( (This)->lpVtbl -> get_nSelectedChildren(This,cellCount) )
+
+#define IAccessibleTable_get_nSelectedColumns(This,columnCount) \
+ ( (This)->lpVtbl -> get_nSelectedColumns(This,columnCount) )
+
+#define IAccessibleTable_get_nSelectedRows(This,rowCount) \
+ ( (This)->lpVtbl -> get_nSelectedRows(This,rowCount) )
+
+#define IAccessibleTable_get_rowDescription(This,row,description) \
+ ( (This)->lpVtbl -> get_rowDescription(This,row,description) )
+
+#define IAccessibleTable_get_rowExtentAt(This,row,column,nRowsSpanned) \
+ ( (This)->lpVtbl -> get_rowExtentAt(This,row,column,nRowsSpanned) )
+
+#define IAccessibleTable_get_rowHeader(This,accessibleTable,startingColumnIndex) \
+ ( (This)->lpVtbl -> get_rowHeader(This,accessibleTable,startingColumnIndex) )
+
+#define IAccessibleTable_get_rowIndex(This,cellIndex,rowIndex) \
+ ( (This)->lpVtbl -> get_rowIndex(This,cellIndex,rowIndex) )
+
+#define IAccessibleTable_get_selectedChildren(This,maxChildren,children,nChildren) \
+ ( (This)->lpVtbl -> get_selectedChildren(This,maxChildren,children,nChildren) )
+
+#define IAccessibleTable_get_selectedColumns(This,maxColumns,columns,nColumns) \
+ ( (This)->lpVtbl -> get_selectedColumns(This,maxColumns,columns,nColumns) )
+
+#define IAccessibleTable_get_selectedRows(This,maxRows,rows,nRows) \
+ ( (This)->lpVtbl -> get_selectedRows(This,maxRows,rows,nRows) )
+
+#define IAccessibleTable_get_summary(This,accessible) \
+ ( (This)->lpVtbl -> get_summary(This,accessible) )
+
+#define IAccessibleTable_get_isColumnSelected(This,column,isSelected) \
+ ( (This)->lpVtbl -> get_isColumnSelected(This,column,isSelected) )
+
+#define IAccessibleTable_get_isRowSelected(This,row,isSelected) \
+ ( (This)->lpVtbl -> get_isRowSelected(This,row,isSelected) )
+
+#define IAccessibleTable_get_isSelected(This,row,column,isSelected) \
+ ( (This)->lpVtbl -> get_isSelected(This,row,column,isSelected) )
+
+#define IAccessibleTable_selectRow(This,row) \
+ ( (This)->lpVtbl -> selectRow(This,row) )
+
+#define IAccessibleTable_selectColumn(This,column) \
+ ( (This)->lpVtbl -> selectColumn(This,column) )
+
+#define IAccessibleTable_unselectRow(This,row) \
+ ( (This)->lpVtbl -> unselectRow(This,row) )
+
+#define IAccessibleTable_unselectColumn(This,column) \
+ ( (This)->lpVtbl -> unselectColumn(This,column) )
+
+#define IAccessibleTable_get_rowColumnExtentsAtIndex(This,index,row,column,rowExtents,columnExtents,isSelected) \
+ ( (This)->lpVtbl -> get_rowColumnExtentsAtIndex(This,index,row,column,rowExtents,columnExtents,isSelected) )
+
+#define IAccessibleTable_get_modelChange(This,modelChange) \
+ ( (This)->lpVtbl -> get_modelChange(This,modelChange) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleTable_INTERFACE_DEFINED__ */
+
+
+/* Additional Prototypes for ALL interfaces */
+
+unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
+unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
+unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
+void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleTable2.h b/src/3rdparty/iaccessible2/generated/x86/AccessibleTable2.h
new file mode 100644
index 0000000000..d511869de4
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleTable2.h
@@ -0,0 +1,367 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:55 2012
+ */
+/* Compiler settings for AccessibleTable2.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __AccessibleTable2_h__
+#define __AccessibleTable2_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IAccessibleTable2_FWD_DEFINED__
+#define __IAccessibleTable2_FWD_DEFINED__
+typedef interface IAccessibleTable2 IAccessibleTable2;
+#endif /* __IAccessibleTable2_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "objidl.h"
+#include "oaidl.h"
+#include "oleacc.h"
+#include "Accessible2.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#ifndef __IAccessibleTable2_INTERFACE_DEFINED__
+#define __IAccessibleTable2_INTERFACE_DEFINED__
+
+/* interface IAccessibleTable2 */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleTable2;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("6167f295-06f0-4cdd-a1fa-02e25153d869")
+ IAccessibleTable2 : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_cellAt(
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ IUnknown **cell) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_caption(
+ /* [retval][out] */ IUnknown **accessible) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnDescription(
+ /* [in] */ long column,
+ /* [retval][out] */ BSTR *description) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nColumns(
+ /* [retval][out] */ long *columnCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nRows(
+ /* [retval][out] */ long *rowCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedCells(
+ /* [retval][out] */ long *cellCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedColumns(
+ /* [retval][out] */ long *columnCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedRows(
+ /* [retval][out] */ long *rowCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowDescription(
+ /* [in] */ long row,
+ /* [retval][out] */ BSTR *description) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedCells(
+ /* [size_is][size_is][size_is][out] */ IUnknown ***cells,
+ /* [retval][out] */ long *nSelectedCells) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedColumns(
+ /* [size_is][size_is][out] */ long **selectedColumns,
+ /* [retval][out] */ long *nColumns) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedRows(
+ /* [size_is][size_is][out] */ long **selectedRows,
+ /* [retval][out] */ long *nRows) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_summary(
+ /* [retval][out] */ IUnknown **accessible) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isColumnSelected(
+ /* [in] */ long column,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isRowSelected(
+ /* [in] */ long row,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE selectRow(
+ /* [in] */ long row) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE selectColumn(
+ /* [in] */ long column) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE unselectRow(
+ /* [in] */ long row) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE unselectColumn(
+ /* [in] */ long column) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_modelChange(
+ /* [retval][out] */ IA2TableModelChange *modelChange) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleTable2Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleTable2 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleTable2 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleTable2 * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_cellAt )(
+ IAccessibleTable2 * This,
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ IUnknown **cell);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caption )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ IUnknown **accessible);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnDescription )(
+ IAccessibleTable2 * This,
+ /* [in] */ long column,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nColumns )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ long *columnCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRows )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ long *rowCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedCells )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ long *cellCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedColumns )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ long *columnCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedRows )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ long *rowCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowDescription )(
+ IAccessibleTable2 * This,
+ /* [in] */ long row,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedCells )(
+ IAccessibleTable2 * This,
+ /* [size_is][size_is][size_is][out] */ IUnknown ***cells,
+ /* [retval][out] */ long *nSelectedCells);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedColumns )(
+ IAccessibleTable2 * This,
+ /* [size_is][size_is][out] */ long **selectedColumns,
+ /* [retval][out] */ long *nColumns);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedRows )(
+ IAccessibleTable2 * This,
+ /* [size_is][size_is][out] */ long **selectedRows,
+ /* [retval][out] */ long *nRows);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_summary )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ IUnknown **accessible);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isColumnSelected )(
+ IAccessibleTable2 * This,
+ /* [in] */ long column,
+ /* [retval][out] */ boolean *isSelected);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRowSelected )(
+ IAccessibleTable2 * This,
+ /* [in] */ long row,
+ /* [retval][out] */ boolean *isSelected);
+
+ HRESULT ( STDMETHODCALLTYPE *selectRow )(
+ IAccessibleTable2 * This,
+ /* [in] */ long row);
+
+ HRESULT ( STDMETHODCALLTYPE *selectColumn )(
+ IAccessibleTable2 * This,
+ /* [in] */ long column);
+
+ HRESULT ( STDMETHODCALLTYPE *unselectRow )(
+ IAccessibleTable2 * This,
+ /* [in] */ long row);
+
+ HRESULT ( STDMETHODCALLTYPE *unselectColumn )(
+ IAccessibleTable2 * This,
+ /* [in] */ long column);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_modelChange )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ IA2TableModelChange *modelChange);
+
+ END_INTERFACE
+ } IAccessibleTable2Vtbl;
+
+ interface IAccessibleTable2
+ {
+ CONST_VTBL struct IAccessibleTable2Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleTable2_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleTable2_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleTable2_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleTable2_get_cellAt(This,row,column,cell) \
+ ( (This)->lpVtbl -> get_cellAt(This,row,column,cell) )
+
+#define IAccessibleTable2_get_caption(This,accessible) \
+ ( (This)->lpVtbl -> get_caption(This,accessible) )
+
+#define IAccessibleTable2_get_columnDescription(This,column,description) \
+ ( (This)->lpVtbl -> get_columnDescription(This,column,description) )
+
+#define IAccessibleTable2_get_nColumns(This,columnCount) \
+ ( (This)->lpVtbl -> get_nColumns(This,columnCount) )
+
+#define IAccessibleTable2_get_nRows(This,rowCount) \
+ ( (This)->lpVtbl -> get_nRows(This,rowCount) )
+
+#define IAccessibleTable2_get_nSelectedCells(This,cellCount) \
+ ( (This)->lpVtbl -> get_nSelectedCells(This,cellCount) )
+
+#define IAccessibleTable2_get_nSelectedColumns(This,columnCount) \
+ ( (This)->lpVtbl -> get_nSelectedColumns(This,columnCount) )
+
+#define IAccessibleTable2_get_nSelectedRows(This,rowCount) \
+ ( (This)->lpVtbl -> get_nSelectedRows(This,rowCount) )
+
+#define IAccessibleTable2_get_rowDescription(This,row,description) \
+ ( (This)->lpVtbl -> get_rowDescription(This,row,description) )
+
+#define IAccessibleTable2_get_selectedCells(This,cells,nSelectedCells) \
+ ( (This)->lpVtbl -> get_selectedCells(This,cells,nSelectedCells) )
+
+#define IAccessibleTable2_get_selectedColumns(This,selectedColumns,nColumns) \
+ ( (This)->lpVtbl -> get_selectedColumns(This,selectedColumns,nColumns) )
+
+#define IAccessibleTable2_get_selectedRows(This,selectedRows,nRows) \
+ ( (This)->lpVtbl -> get_selectedRows(This,selectedRows,nRows) )
+
+#define IAccessibleTable2_get_summary(This,accessible) \
+ ( (This)->lpVtbl -> get_summary(This,accessible) )
+
+#define IAccessibleTable2_get_isColumnSelected(This,column,isSelected) \
+ ( (This)->lpVtbl -> get_isColumnSelected(This,column,isSelected) )
+
+#define IAccessibleTable2_get_isRowSelected(This,row,isSelected) \
+ ( (This)->lpVtbl -> get_isRowSelected(This,row,isSelected) )
+
+#define IAccessibleTable2_selectRow(This,row) \
+ ( (This)->lpVtbl -> selectRow(This,row) )
+
+#define IAccessibleTable2_selectColumn(This,column) \
+ ( (This)->lpVtbl -> selectColumn(This,column) )
+
+#define IAccessibleTable2_unselectRow(This,row) \
+ ( (This)->lpVtbl -> unselectRow(This,row) )
+
+#define IAccessibleTable2_unselectColumn(This,column) \
+ ( (This)->lpVtbl -> unselectColumn(This,column) )
+
+#define IAccessibleTable2_get_modelChange(This,modelChange) \
+ ( (This)->lpVtbl -> get_modelChange(This,modelChange) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleTable2_INTERFACE_DEFINED__ */
+
+
+/* Additional Prototypes for ALL interfaces */
+
+unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
+unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
+unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
+void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleTable2_i.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleTable2_i.c
new file mode 100644
index 0000000000..f5444155ad
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleTable2_i.c
@@ -0,0 +1,79 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:55 2012
+ */
+/* Compiler settings for AccessibleTable2.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleTable2,0x6167f295,0x06f0,0x4cdd,0xa1,0xfa,0x02,0xe2,0x51,0x53,0xd8,0x69);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleTable2_p.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleTable2_p.c
new file mode 100644
index 0000000000..f4b782f9dc
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleTable2_p.c
@@ -0,0 +1,1091 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:55 2012
+ */
+/* Compiler settings for AccessibleTable2.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if !defined(_M_IA64) && !defined(_M_AMD64)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+#pragma warning( disable: 4100 ) /* unreferenced arguments in x86 call */
+
+#pragma optimize("", off )
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "AccessibleTable2.h"
+
+#define TYPE_FORMAT_STRING_SIZE 141
+#define PROC_FORMAT_STRING_SIZE 775
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 1
+
+typedef struct _AccessibleTable2_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } AccessibleTable2_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _AccessibleTable2_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } AccessibleTable2_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _AccessibleTable2_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } AccessibleTable2_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const AccessibleTable2_MIDL_TYPE_FORMAT_STRING AccessibleTable2__MIDL_TypeFormatString;
+extern const AccessibleTable2_MIDL_PROC_FORMAT_STRING AccessibleTable2__MIDL_ProcFormatString;
+extern const AccessibleTable2_MIDL_EXPR_FORMAT_STRING AccessibleTable2__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleTable2_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleTable2_ProxyInfo;
+
+
+extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
+
+#if !defined(__RPC_WIN32__)
+#error Invalid build platform for this stub.
+#endif
+
+#if !(TARGET_IS_NT50_OR_LATER)
+#error You need Windows 2000 or later to run this stub because it uses these features:
+#error /robust command line switch.
+#error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems.
+#error This app will fail with the RPC_X_WRONG_STUB_VERSION error.
+#endif
+
+
+static const AccessibleTable2_MIDL_PROC_FORMAT_STRING AccessibleTable2__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure get_cellAt */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x3 ), /* 3 */
+/* 8 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 10 */ NdrFcShort( 0x10 ), /* 16 */
+/* 12 */ NdrFcShort( 0x8 ), /* 8 */
+/* 14 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 16 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 18 */ NdrFcShort( 0x0 ), /* 0 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 24 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 26 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 28 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter column */
+
+/* 30 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 32 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 34 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter cell */
+
+/* 36 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 38 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 40 */ NdrFcShort( 0x2 ), /* Type Offset=2 */
+
+ /* Return value */
+
+/* 42 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 44 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 46 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_caption */
+
+/* 48 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 50 */ NdrFcLong( 0x0 ), /* 0 */
+/* 54 */ NdrFcShort( 0x4 ), /* 4 */
+/* 56 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 58 */ NdrFcShort( 0x0 ), /* 0 */
+/* 60 */ NdrFcShort( 0x8 ), /* 8 */
+/* 62 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 64 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 66 */ NdrFcShort( 0x0 ), /* 0 */
+/* 68 */ NdrFcShort( 0x0 ), /* 0 */
+/* 70 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessible */
+
+/* 72 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 74 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 76 */ NdrFcShort( 0x2 ), /* Type Offset=2 */
+
+ /* Return value */
+
+/* 78 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 80 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 82 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnDescription */
+
+/* 84 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 86 */ NdrFcLong( 0x0 ), /* 0 */
+/* 90 */ NdrFcShort( 0x5 ), /* 5 */
+/* 92 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 94 */ NdrFcShort( 0x8 ), /* 8 */
+/* 96 */ NdrFcShort( 0x8 ), /* 8 */
+/* 98 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 100 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 102 */ NdrFcShort( 0x1 ), /* 1 */
+/* 104 */ NdrFcShort( 0x0 ), /* 0 */
+/* 106 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 108 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 110 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 112 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter description */
+
+/* 114 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 116 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 118 */ NdrFcShort( 0x36 ), /* Type Offset=54 */
+
+ /* Return value */
+
+/* 120 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 122 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 124 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nColumns */
+
+/* 126 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 128 */ NdrFcLong( 0x0 ), /* 0 */
+/* 132 */ NdrFcShort( 0x6 ), /* 6 */
+/* 134 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 136 */ NdrFcShort( 0x0 ), /* 0 */
+/* 138 */ NdrFcShort( 0x24 ), /* 36 */
+/* 140 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 142 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 144 */ NdrFcShort( 0x0 ), /* 0 */
+/* 146 */ NdrFcShort( 0x0 ), /* 0 */
+/* 148 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter columnCount */
+
+/* 150 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 152 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 154 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 156 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 158 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 160 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nRows */
+
+/* 162 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 164 */ NdrFcLong( 0x0 ), /* 0 */
+/* 168 */ NdrFcShort( 0x7 ), /* 7 */
+/* 170 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 172 */ NdrFcShort( 0x0 ), /* 0 */
+/* 174 */ NdrFcShort( 0x24 ), /* 36 */
+/* 176 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 178 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 180 */ NdrFcShort( 0x0 ), /* 0 */
+/* 182 */ NdrFcShort( 0x0 ), /* 0 */
+/* 184 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter rowCount */
+
+/* 186 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 188 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 190 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 192 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 194 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 196 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nSelectedCells */
+
+/* 198 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 200 */ NdrFcLong( 0x0 ), /* 0 */
+/* 204 */ NdrFcShort( 0x8 ), /* 8 */
+/* 206 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 208 */ NdrFcShort( 0x0 ), /* 0 */
+/* 210 */ NdrFcShort( 0x24 ), /* 36 */
+/* 212 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 214 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 216 */ NdrFcShort( 0x0 ), /* 0 */
+/* 218 */ NdrFcShort( 0x0 ), /* 0 */
+/* 220 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cellCount */
+
+/* 222 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 224 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 226 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 228 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 230 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 232 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nSelectedColumns */
+
+/* 234 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 236 */ NdrFcLong( 0x0 ), /* 0 */
+/* 240 */ NdrFcShort( 0x9 ), /* 9 */
+/* 242 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 244 */ NdrFcShort( 0x0 ), /* 0 */
+/* 246 */ NdrFcShort( 0x24 ), /* 36 */
+/* 248 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 250 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 252 */ NdrFcShort( 0x0 ), /* 0 */
+/* 254 */ NdrFcShort( 0x0 ), /* 0 */
+/* 256 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter columnCount */
+
+/* 258 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 260 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 262 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 264 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 266 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 268 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nSelectedRows */
+
+/* 270 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 272 */ NdrFcLong( 0x0 ), /* 0 */
+/* 276 */ NdrFcShort( 0xa ), /* 10 */
+/* 278 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 280 */ NdrFcShort( 0x0 ), /* 0 */
+/* 282 */ NdrFcShort( 0x24 ), /* 36 */
+/* 284 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 286 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 288 */ NdrFcShort( 0x0 ), /* 0 */
+/* 290 */ NdrFcShort( 0x0 ), /* 0 */
+/* 292 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter rowCount */
+
+/* 294 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 296 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 298 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 300 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 302 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 304 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowDescription */
+
+/* 306 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 308 */ NdrFcLong( 0x0 ), /* 0 */
+/* 312 */ NdrFcShort( 0xb ), /* 11 */
+/* 314 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 316 */ NdrFcShort( 0x8 ), /* 8 */
+/* 318 */ NdrFcShort( 0x8 ), /* 8 */
+/* 320 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 322 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 324 */ NdrFcShort( 0x1 ), /* 1 */
+/* 326 */ NdrFcShort( 0x0 ), /* 0 */
+/* 328 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 330 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 332 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 334 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter description */
+
+/* 336 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 338 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 340 */ NdrFcShort( 0x36 ), /* Type Offset=54 */
+
+ /* Return value */
+
+/* 342 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 344 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 346 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selectedCells */
+
+/* 348 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 350 */ NdrFcLong( 0x0 ), /* 0 */
+/* 354 */ NdrFcShort( 0xc ), /* 12 */
+/* 356 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 358 */ NdrFcShort( 0x0 ), /* 0 */
+/* 360 */ NdrFcShort( 0x24 ), /* 36 */
+/* 362 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 364 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 366 */ NdrFcShort( 0x1 ), /* 1 */
+/* 368 */ NdrFcShort( 0x0 ), /* 0 */
+/* 370 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cells */
+
+/* 372 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 374 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 376 */ NdrFcShort( 0x44 ), /* Type Offset=68 */
+
+ /* Parameter nSelectedCells */
+
+/* 378 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 380 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 382 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 384 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 386 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 388 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selectedColumns */
+
+/* 390 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 392 */ NdrFcLong( 0x0 ), /* 0 */
+/* 396 */ NdrFcShort( 0xd ), /* 13 */
+/* 398 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 400 */ NdrFcShort( 0x0 ), /* 0 */
+/* 402 */ NdrFcShort( 0x24 ), /* 36 */
+/* 404 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 406 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 408 */ NdrFcShort( 0x1 ), /* 1 */
+/* 410 */ NdrFcShort( 0x0 ), /* 0 */
+/* 412 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter selectedColumns */
+
+/* 414 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 416 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 418 */ NdrFcShort( 0x62 ), /* Type Offset=98 */
+
+ /* Parameter nColumns */
+
+/* 420 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 422 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 424 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 426 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 428 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 430 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selectedRows */
+
+/* 432 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 434 */ NdrFcLong( 0x0 ), /* 0 */
+/* 438 */ NdrFcShort( 0xe ), /* 14 */
+/* 440 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 442 */ NdrFcShort( 0x0 ), /* 0 */
+/* 444 */ NdrFcShort( 0x24 ), /* 36 */
+/* 446 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 448 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 450 */ NdrFcShort( 0x1 ), /* 1 */
+/* 452 */ NdrFcShort( 0x0 ), /* 0 */
+/* 454 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter selectedRows */
+
+/* 456 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 458 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 460 */ NdrFcShort( 0x62 ), /* Type Offset=98 */
+
+ /* Parameter nRows */
+
+/* 462 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 464 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 466 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 468 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 470 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 472 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_summary */
+
+/* 474 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 476 */ NdrFcLong( 0x0 ), /* 0 */
+/* 480 */ NdrFcShort( 0xf ), /* 15 */
+/* 482 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 484 */ NdrFcShort( 0x0 ), /* 0 */
+/* 486 */ NdrFcShort( 0x8 ), /* 8 */
+/* 488 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 490 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 492 */ NdrFcShort( 0x0 ), /* 0 */
+/* 494 */ NdrFcShort( 0x0 ), /* 0 */
+/* 496 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessible */
+
+/* 498 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 500 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 502 */ NdrFcShort( 0x2 ), /* Type Offset=2 */
+
+ /* Return value */
+
+/* 504 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 506 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 508 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isColumnSelected */
+
+/* 510 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 512 */ NdrFcLong( 0x0 ), /* 0 */
+/* 516 */ NdrFcShort( 0x10 ), /* 16 */
+/* 518 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 520 */ NdrFcShort( 0x8 ), /* 8 */
+/* 522 */ NdrFcShort( 0x21 ), /* 33 */
+/* 524 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 526 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 528 */ NdrFcShort( 0x0 ), /* 0 */
+/* 530 */ NdrFcShort( 0x0 ), /* 0 */
+/* 532 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 534 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 536 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 538 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 540 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 542 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 544 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 546 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 548 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 550 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isRowSelected */
+
+/* 552 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 554 */ NdrFcLong( 0x0 ), /* 0 */
+/* 558 */ NdrFcShort( 0x11 ), /* 17 */
+/* 560 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 562 */ NdrFcShort( 0x8 ), /* 8 */
+/* 564 */ NdrFcShort( 0x21 ), /* 33 */
+/* 566 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 568 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 570 */ NdrFcShort( 0x0 ), /* 0 */
+/* 572 */ NdrFcShort( 0x0 ), /* 0 */
+/* 574 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 576 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 578 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 580 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 582 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 584 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 586 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 588 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 590 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 592 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure selectRow */
+
+/* 594 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 596 */ NdrFcLong( 0x0 ), /* 0 */
+/* 600 */ NdrFcShort( 0x12 ), /* 18 */
+/* 602 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 604 */ NdrFcShort( 0x8 ), /* 8 */
+/* 606 */ NdrFcShort( 0x8 ), /* 8 */
+/* 608 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 610 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 612 */ NdrFcShort( 0x0 ), /* 0 */
+/* 614 */ NdrFcShort( 0x0 ), /* 0 */
+/* 616 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 618 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 620 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 622 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 624 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 626 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 628 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure selectColumn */
+
+/* 630 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 632 */ NdrFcLong( 0x0 ), /* 0 */
+/* 636 */ NdrFcShort( 0x13 ), /* 19 */
+/* 638 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 640 */ NdrFcShort( 0x8 ), /* 8 */
+/* 642 */ NdrFcShort( 0x8 ), /* 8 */
+/* 644 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 646 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 648 */ NdrFcShort( 0x0 ), /* 0 */
+/* 650 */ NdrFcShort( 0x0 ), /* 0 */
+/* 652 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 654 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 656 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 658 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 660 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 662 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 664 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure unselectRow */
+
+/* 666 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 668 */ NdrFcLong( 0x0 ), /* 0 */
+/* 672 */ NdrFcShort( 0x14 ), /* 20 */
+/* 674 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 676 */ NdrFcShort( 0x8 ), /* 8 */
+/* 678 */ NdrFcShort( 0x8 ), /* 8 */
+/* 680 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 682 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 684 */ NdrFcShort( 0x0 ), /* 0 */
+/* 686 */ NdrFcShort( 0x0 ), /* 0 */
+/* 688 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 690 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 692 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 694 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 696 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 698 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 700 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure unselectColumn */
+
+/* 702 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 704 */ NdrFcLong( 0x0 ), /* 0 */
+/* 708 */ NdrFcShort( 0x15 ), /* 21 */
+/* 710 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 712 */ NdrFcShort( 0x8 ), /* 8 */
+/* 714 */ NdrFcShort( 0x8 ), /* 8 */
+/* 716 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 718 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 720 */ NdrFcShort( 0x0 ), /* 0 */
+/* 722 */ NdrFcShort( 0x0 ), /* 0 */
+/* 724 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 726 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 728 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 730 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 732 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 734 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 736 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_modelChange */
+
+/* 738 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 740 */ NdrFcLong( 0x0 ), /* 0 */
+/* 744 */ NdrFcShort( 0x16 ), /* 22 */
+/* 746 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 748 */ NdrFcShort( 0x0 ), /* 0 */
+/* 750 */ NdrFcShort( 0x8 ), /* 8 */
+/* 752 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 754 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 756 */ NdrFcShort( 0x0 ), /* 0 */
+/* 758 */ NdrFcShort( 0x0 ), /* 0 */
+/* 760 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter modelChange */
+
+/* 762 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
+/* 764 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 766 */ NdrFcShort( 0x7e ), /* Type Offset=126 */
+
+ /* Return value */
+
+/* 768 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 770 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 772 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const AccessibleTable2_MIDL_TYPE_FORMAT_STRING AccessibleTable2__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0x10, /* FC_RP [pointer_deref] */
+/* 4 */ NdrFcShort( 0x2 ), /* Offset= 2 (6) */
+/* 6 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 8 */ NdrFcLong( 0x0 ), /* 0 */
+/* 12 */ NdrFcShort( 0x0 ), /* 0 */
+/* 14 */ NdrFcShort( 0x0 ), /* 0 */
+/* 16 */ 0xc0, /* 192 */
+ 0x0, /* 0 */
+/* 18 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 20 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 22 */ 0x0, /* 0 */
+ 0x46, /* 70 */
+/* 24 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 26 */ NdrFcShort( 0x1c ), /* Offset= 28 (54) */
+/* 28 */
+ 0x13, 0x0, /* FC_OP */
+/* 30 */ NdrFcShort( 0xe ), /* Offset= 14 (44) */
+/* 32 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 34 */ NdrFcShort( 0x2 ), /* 2 */
+/* 36 */ 0x9, /* Corr desc: FC_ULONG */
+ 0x0, /* */
+/* 38 */ NdrFcShort( 0xfffc ), /* -4 */
+/* 40 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 42 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 44 */
+ 0x17, /* FC_CSTRUCT */
+ 0x3, /* 3 */
+/* 46 */ NdrFcShort( 0x8 ), /* 8 */
+/* 48 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (32) */
+/* 50 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 52 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 54 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 56 */ NdrFcShort( 0x0 ), /* 0 */
+/* 58 */ NdrFcShort( 0x4 ), /* 4 */
+/* 60 */ NdrFcShort( 0x0 ), /* 0 */
+/* 62 */ NdrFcShort( 0xffde ), /* Offset= -34 (28) */
+/* 64 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 66 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+/* 68 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 70 */ NdrFcShort( 0x2 ), /* Offset= 2 (72) */
+/* 72 */
+ 0x13, 0x0, /* FC_OP */
+/* 74 */ NdrFcShort( 0x2 ), /* Offset= 2 (76) */
+/* 76 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 78 */ NdrFcShort( 0x0 ), /* 0 */
+/* 80 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 82 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 84 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 86 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 90 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 92 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 94 */ NdrFcShort( 0xffa8 ), /* Offset= -88 (6) */
+/* 96 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 98 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 100 */ NdrFcShort( 0x2 ), /* Offset= 2 (102) */
+/* 102 */
+ 0x13, 0x0, /* FC_OP */
+/* 104 */ NdrFcShort( 0x2 ), /* Offset= 2 (106) */
+/* 106 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 108 */ NdrFcShort( 0x4 ), /* 4 */
+/* 110 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 112 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 114 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 116 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 118 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 120 */ 0x3, /* FC_SMALL */
+ 0x5c, /* FC_PAD */
+/* 122 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 124 */ NdrFcShort( 0x2 ), /* Offset= 2 (126) */
+/* 126 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 128 */ NdrFcShort( 0x14 ), /* 20 */
+/* 130 */ NdrFcShort( 0x0 ), /* 0 */
+/* 132 */ NdrFcShort( 0x0 ), /* Offset= 0 (132) */
+/* 134 */ 0xd, /* FC_ENUM16 */
+ 0x8, /* FC_LONG */
+/* 136 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 138 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+
+ 0x0
+ }
+ };
+
+static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
+ {
+
+ {
+ BSTR_UserSize
+ ,BSTR_UserMarshal
+ ,BSTR_UserUnmarshal
+ ,BSTR_UserFree
+ }
+
+ };
+
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IAccessibleTable2, ver. 0.0,
+ GUID={0x6167f295,0x06f0,0x4cdd,{0xa1,0xfa,0x02,0xe2,0x51,0x53,0xd8,0x69}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleTable2_FormatStringOffsetTable[] =
+ {
+ 0,
+ 48,
+ 84,
+ 126,
+ 162,
+ 198,
+ 234,
+ 270,
+ 306,
+ 348,
+ 390,
+ 432,
+ 474,
+ 510,
+ 552,
+ 594,
+ 630,
+ 666,
+ 702,
+ 738
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleTable2_ProxyInfo =
+ {
+ &Object_StubDesc,
+ AccessibleTable2__MIDL_ProcFormatString.Format,
+ &IAccessibleTable2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleTable2_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ AccessibleTable2__MIDL_ProcFormatString.Format,
+ &IAccessibleTable2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(23) _IAccessibleTable2ProxyVtbl =
+{
+ &IAccessibleTable2_ProxyInfo,
+ &IID_IAccessibleTable2,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_cellAt */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_caption */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_columnDescription */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nColumns */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nRows */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nSelectedCells */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nSelectedColumns */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nSelectedRows */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_rowDescription */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_selectedCells */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_selectedColumns */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_selectedRows */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_summary */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_isColumnSelected */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_isRowSelected */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::selectRow */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::selectColumn */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::unselectRow */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::unselectColumn */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_modelChange */
+};
+
+const CInterfaceStubVtbl _IAccessibleTable2StubVtbl =
+{
+ &IID_IAccessibleTable2,
+ &IAccessibleTable2_ServerInfo,
+ 23,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ AccessibleTable2__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x700022b, /* MIDL Version 7.0.555 */
+ 0,
+ UserMarshalRoutines,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _AccessibleTable2_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_IAccessibleTable2ProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _AccessibleTable2_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_IAccessibleTable2StubVtbl,
+ 0
+};
+
+PCInterfaceName const _AccessibleTable2_InterfaceNamesList[] =
+{
+ "IAccessibleTable2",
+ 0
+};
+
+
+#define _AccessibleTable2_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleTable2, pIID, n)
+
+int __stdcall _AccessibleTable2_IID_Lookup( const IID * pIID, int * pIndex )
+{
+
+ if(!_AccessibleTable2_CHECK_IID(0))
+ {
+ *pIndex = 0;
+ return 1;
+ }
+
+ return 0;
+}
+
+const ExtendedProxyFileInfo AccessibleTable2_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _AccessibleTable2_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _AccessibleTable2_StubVtblList,
+ (const PCInterfaceName * ) & _AccessibleTable2_InterfaceNamesList,
+ 0, /* no delegation */
+ & _AccessibleTable2_IID_Lookup,
+ 1,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#pragma optimize("", on )
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* !defined(_M_IA64) && !defined(_M_AMD64)*/
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleTableCell.h b/src/3rdparty/iaccessible2/generated/x86/AccessibleTableCell.h
new file mode 100644
index 0000000000..621768e149
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleTableCell.h
@@ -0,0 +1,246 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:55 2012
+ */
+/* Compiler settings for AccessibleTableCell.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __AccessibleTableCell_h__
+#define __AccessibleTableCell_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IAccessibleTableCell_FWD_DEFINED__
+#define __IAccessibleTableCell_FWD_DEFINED__
+typedef interface IAccessibleTableCell IAccessibleTableCell;
+#endif /* __IAccessibleTableCell_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "objidl.h"
+#include "oaidl.h"
+#include "oleacc.h"
+#include "Accessible2.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#ifndef __IAccessibleTableCell_INTERFACE_DEFINED__
+#define __IAccessibleTableCell_INTERFACE_DEFINED__
+
+/* interface IAccessibleTableCell */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleTableCell;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("594116B1-C99F-4847-AD06-0A7A86ECE645")
+ IAccessibleTableCell : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnExtent(
+ /* [retval][out] */ long *nColumnsSpanned) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnHeaderCells(
+ /* [size_is][size_is][size_is][out] */ IUnknown ***cellAccessibles,
+ /* [retval][out] */ long *nColumnHeaderCells) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnIndex(
+ /* [retval][out] */ long *columnIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowExtent(
+ /* [retval][out] */ long *nRowsSpanned) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowHeaderCells(
+ /* [size_is][size_is][size_is][out] */ IUnknown ***cellAccessibles,
+ /* [retval][out] */ long *nRowHeaderCells) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowIndex(
+ /* [retval][out] */ long *rowIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isSelected(
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowColumnExtents(
+ /* [out] */ long *row,
+ /* [out] */ long *column,
+ /* [out] */ long *rowExtents,
+ /* [out] */ long *columnExtents,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_table(
+ /* [retval][out] */ IUnknown **table) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleTableCellVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleTableCell * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleTableCell * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleTableCell * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnExtent )(
+ IAccessibleTableCell * This,
+ /* [retval][out] */ long *nColumnsSpanned);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnHeaderCells )(
+ IAccessibleTableCell * This,
+ /* [size_is][size_is][size_is][out] */ IUnknown ***cellAccessibles,
+ /* [retval][out] */ long *nColumnHeaderCells);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnIndex )(
+ IAccessibleTableCell * This,
+ /* [retval][out] */ long *columnIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowExtent )(
+ IAccessibleTableCell * This,
+ /* [retval][out] */ long *nRowsSpanned);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowHeaderCells )(
+ IAccessibleTableCell * This,
+ /* [size_is][size_is][size_is][out] */ IUnknown ***cellAccessibles,
+ /* [retval][out] */ long *nRowHeaderCells);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowIndex )(
+ IAccessibleTableCell * This,
+ /* [retval][out] */ long *rowIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSelected )(
+ IAccessibleTableCell * This,
+ /* [retval][out] */ boolean *isSelected);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowColumnExtents )(
+ IAccessibleTableCell * This,
+ /* [out] */ long *row,
+ /* [out] */ long *column,
+ /* [out] */ long *rowExtents,
+ /* [out] */ long *columnExtents,
+ /* [retval][out] */ boolean *isSelected);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_table )(
+ IAccessibleTableCell * This,
+ /* [retval][out] */ IUnknown **table);
+
+ END_INTERFACE
+ } IAccessibleTableCellVtbl;
+
+ interface IAccessibleTableCell
+ {
+ CONST_VTBL struct IAccessibleTableCellVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleTableCell_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleTableCell_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleTableCell_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleTableCell_get_columnExtent(This,nColumnsSpanned) \
+ ( (This)->lpVtbl -> get_columnExtent(This,nColumnsSpanned) )
+
+#define IAccessibleTableCell_get_columnHeaderCells(This,cellAccessibles,nColumnHeaderCells) \
+ ( (This)->lpVtbl -> get_columnHeaderCells(This,cellAccessibles,nColumnHeaderCells) )
+
+#define IAccessibleTableCell_get_columnIndex(This,columnIndex) \
+ ( (This)->lpVtbl -> get_columnIndex(This,columnIndex) )
+
+#define IAccessibleTableCell_get_rowExtent(This,nRowsSpanned) \
+ ( (This)->lpVtbl -> get_rowExtent(This,nRowsSpanned) )
+
+#define IAccessibleTableCell_get_rowHeaderCells(This,cellAccessibles,nRowHeaderCells) \
+ ( (This)->lpVtbl -> get_rowHeaderCells(This,cellAccessibles,nRowHeaderCells) )
+
+#define IAccessibleTableCell_get_rowIndex(This,rowIndex) \
+ ( (This)->lpVtbl -> get_rowIndex(This,rowIndex) )
+
+#define IAccessibleTableCell_get_isSelected(This,isSelected) \
+ ( (This)->lpVtbl -> get_isSelected(This,isSelected) )
+
+#define IAccessibleTableCell_get_rowColumnExtents(This,row,column,rowExtents,columnExtents,isSelected) \
+ ( (This)->lpVtbl -> get_rowColumnExtents(This,row,column,rowExtents,columnExtents,isSelected) )
+
+#define IAccessibleTableCell_get_table(This,table) \
+ ( (This)->lpVtbl -> get_table(This,table) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleTableCell_INTERFACE_DEFINED__ */
+
+
+/* Additional Prototypes for ALL interfaces */
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleTableCell_i.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleTableCell_i.c
new file mode 100644
index 0000000000..4ea10e057d
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleTableCell_i.c
@@ -0,0 +1,79 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:55 2012
+ */
+/* Compiler settings for AccessibleTableCell.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleTableCell,0x594116B1,0xC99F,0x4847,0xAD,0x06,0x0A,0x7A,0x86,0xEC,0xE6,0x45);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleTableCell_p.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleTableCell_p.c
new file mode 100644
index 0000000000..2627caaef9
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleTableCell_p.c
@@ -0,0 +1,637 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:55 2012
+ */
+/* Compiler settings for AccessibleTableCell.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if !defined(_M_IA64) && !defined(_M_AMD64)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+#pragma warning( disable: 4100 ) /* unreferenced arguments in x86 call */
+
+#pragma optimize("", off )
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "AccessibleTableCell.h"
+
+#define TYPE_FORMAT_STRING_SIZE 63
+#define PROC_FORMAT_STRING_SIZE 361
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 0
+
+typedef struct _AccessibleTableCell_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } AccessibleTableCell_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _AccessibleTableCell_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } AccessibleTableCell_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _AccessibleTableCell_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } AccessibleTableCell_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const AccessibleTableCell_MIDL_TYPE_FORMAT_STRING AccessibleTableCell__MIDL_TypeFormatString;
+extern const AccessibleTableCell_MIDL_PROC_FORMAT_STRING AccessibleTableCell__MIDL_ProcFormatString;
+extern const AccessibleTableCell_MIDL_EXPR_FORMAT_STRING AccessibleTableCell__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleTableCell_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleTableCell_ProxyInfo;
+
+
+
+#if !defined(__RPC_WIN32__)
+#error Invalid build platform for this stub.
+#endif
+
+#if !(TARGET_IS_NT50_OR_LATER)
+#error You need Windows 2000 or later to run this stub because it uses these features:
+#error /robust command line switch.
+#error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems.
+#error This app will fail with the RPC_X_WRONG_STUB_VERSION error.
+#endif
+
+
+static const AccessibleTableCell_MIDL_PROC_FORMAT_STRING AccessibleTableCell__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure get_columnExtent */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x3 ), /* 3 */
+/* 8 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 10 */ NdrFcShort( 0x0 ), /* 0 */
+/* 12 */ NdrFcShort( 0x24 ), /* 36 */
+/* 14 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 16 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 18 */ NdrFcShort( 0x0 ), /* 0 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nColumnsSpanned */
+
+/* 24 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 26 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 28 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 30 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 32 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 34 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnHeaderCells */
+
+/* 36 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 38 */ NdrFcLong( 0x0 ), /* 0 */
+/* 42 */ NdrFcShort( 0x4 ), /* 4 */
+/* 44 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 46 */ NdrFcShort( 0x0 ), /* 0 */
+/* 48 */ NdrFcShort( 0x24 ), /* 36 */
+/* 50 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 52 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 54 */ NdrFcShort( 0x1 ), /* 1 */
+/* 56 */ NdrFcShort( 0x0 ), /* 0 */
+/* 58 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cellAccessibles */
+
+/* 60 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 62 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 64 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
+
+ /* Parameter nColumnHeaderCells */
+
+/* 66 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 68 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 70 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 72 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 74 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 76 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnIndex */
+
+/* 78 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 80 */ NdrFcLong( 0x0 ), /* 0 */
+/* 84 */ NdrFcShort( 0x5 ), /* 5 */
+/* 86 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 88 */ NdrFcShort( 0x0 ), /* 0 */
+/* 90 */ NdrFcShort( 0x24 ), /* 36 */
+/* 92 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 94 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 96 */ NdrFcShort( 0x0 ), /* 0 */
+/* 98 */ NdrFcShort( 0x0 ), /* 0 */
+/* 100 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter columnIndex */
+
+/* 102 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 104 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 106 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 108 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 110 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 112 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowExtent */
+
+/* 114 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 116 */ NdrFcLong( 0x0 ), /* 0 */
+/* 120 */ NdrFcShort( 0x6 ), /* 6 */
+/* 122 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 124 */ NdrFcShort( 0x0 ), /* 0 */
+/* 126 */ NdrFcShort( 0x24 ), /* 36 */
+/* 128 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 130 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 132 */ NdrFcShort( 0x0 ), /* 0 */
+/* 134 */ NdrFcShort( 0x0 ), /* 0 */
+/* 136 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nRowsSpanned */
+
+/* 138 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 140 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 142 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 144 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 146 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 148 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowHeaderCells */
+
+/* 150 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 152 */ NdrFcLong( 0x0 ), /* 0 */
+/* 156 */ NdrFcShort( 0x7 ), /* 7 */
+/* 158 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 160 */ NdrFcShort( 0x0 ), /* 0 */
+/* 162 */ NdrFcShort( 0x24 ), /* 36 */
+/* 164 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 166 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 168 */ NdrFcShort( 0x1 ), /* 1 */
+/* 170 */ NdrFcShort( 0x0 ), /* 0 */
+/* 172 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cellAccessibles */
+
+/* 174 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 176 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 178 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
+
+ /* Parameter nRowHeaderCells */
+
+/* 180 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 182 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 184 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 186 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 188 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 190 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowIndex */
+
+/* 192 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 194 */ NdrFcLong( 0x0 ), /* 0 */
+/* 198 */ NdrFcShort( 0x8 ), /* 8 */
+/* 200 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 202 */ NdrFcShort( 0x0 ), /* 0 */
+/* 204 */ NdrFcShort( 0x24 ), /* 36 */
+/* 206 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 208 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 210 */ NdrFcShort( 0x0 ), /* 0 */
+/* 212 */ NdrFcShort( 0x0 ), /* 0 */
+/* 214 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter rowIndex */
+
+/* 216 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 218 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 220 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 222 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 224 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 226 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isSelected */
+
+/* 228 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 230 */ NdrFcLong( 0x0 ), /* 0 */
+/* 234 */ NdrFcShort( 0x9 ), /* 9 */
+/* 236 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 238 */ NdrFcShort( 0x0 ), /* 0 */
+/* 240 */ NdrFcShort( 0x21 ), /* 33 */
+/* 242 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 244 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 246 */ NdrFcShort( 0x0 ), /* 0 */
+/* 248 */ NdrFcShort( 0x0 ), /* 0 */
+/* 250 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter isSelected */
+
+/* 252 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 254 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 256 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 258 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 260 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 262 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowColumnExtents */
+
+/* 264 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 266 */ NdrFcLong( 0x0 ), /* 0 */
+/* 270 */ NdrFcShort( 0xa ), /* 10 */
+/* 272 */ NdrFcShort( 0x1c ), /* x86 Stack size/offset = 28 */
+/* 274 */ NdrFcShort( 0x0 ), /* 0 */
+/* 276 */ NdrFcShort( 0x91 ), /* 145 */
+/* 278 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x6, /* 6 */
+/* 280 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 282 */ NdrFcShort( 0x0 ), /* 0 */
+/* 284 */ NdrFcShort( 0x0 ), /* 0 */
+/* 286 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 288 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 290 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 292 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter column */
+
+/* 294 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 296 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 298 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter rowExtents */
+
+/* 300 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 302 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 304 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter columnExtents */
+
+/* 306 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 308 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 310 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 312 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 314 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 316 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 318 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 320 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 322 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_table */
+
+/* 324 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 326 */ NdrFcLong( 0x0 ), /* 0 */
+/* 330 */ NdrFcShort( 0xb ), /* 11 */
+/* 332 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 334 */ NdrFcShort( 0x0 ), /* 0 */
+/* 336 */ NdrFcShort( 0x8 ), /* 8 */
+/* 338 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 340 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 342 */ NdrFcShort( 0x0 ), /* 0 */
+/* 344 */ NdrFcShort( 0x0 ), /* 0 */
+/* 346 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter table */
+
+/* 348 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 350 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 352 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+/* 354 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 356 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 358 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const AccessibleTableCell_MIDL_TYPE_FORMAT_STRING AccessibleTableCell__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 4 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+/* 6 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 8 */ NdrFcShort( 0x2 ), /* Offset= 2 (10) */
+/* 10 */
+ 0x13, 0x0, /* FC_OP */
+/* 12 */ NdrFcShort( 0x14 ), /* Offset= 20 (32) */
+/* 14 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 16 */ NdrFcLong( 0x0 ), /* 0 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+/* 24 */ 0xc0, /* 192 */
+ 0x0, /* 0 */
+/* 26 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 28 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 30 */ 0x0, /* 0 */
+ 0x46, /* 70 */
+/* 32 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 34 */ NdrFcShort( 0x0 ), /* 0 */
+/* 36 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 38 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 40 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 42 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 46 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 48 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 50 */ NdrFcShort( 0xffdc ), /* Offset= -36 (14) */
+/* 52 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 54 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 56 */ 0x3, /* FC_SMALL */
+ 0x5c, /* FC_PAD */
+/* 58 */
+ 0x11, 0x10, /* FC_RP [pointer_deref] */
+/* 60 */ NdrFcShort( 0xffd2 ), /* Offset= -46 (14) */
+
+ 0x0
+ }
+ };
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IAccessibleTableCell, ver. 0.0,
+ GUID={0x594116B1,0xC99F,0x4847,{0xAD,0x06,0x0A,0x7A,0x86,0xEC,0xE6,0x45}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleTableCell_FormatStringOffsetTable[] =
+ {
+ 0,
+ 36,
+ 78,
+ 114,
+ 150,
+ 192,
+ 228,
+ 264,
+ 324
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleTableCell_ProxyInfo =
+ {
+ &Object_StubDesc,
+ AccessibleTableCell__MIDL_ProcFormatString.Format,
+ &IAccessibleTableCell_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleTableCell_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ AccessibleTableCell__MIDL_ProcFormatString.Format,
+ &IAccessibleTableCell_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(12) _IAccessibleTableCellProxyVtbl =
+{
+ &IAccessibleTableCell_ProxyInfo,
+ &IID_IAccessibleTableCell,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_columnExtent */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_columnHeaderCells */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_columnIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_rowExtent */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_rowHeaderCells */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_rowIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_isSelected */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_rowColumnExtents */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_table */
+};
+
+const CInterfaceStubVtbl _IAccessibleTableCellStubVtbl =
+{
+ &IID_IAccessibleTableCell,
+ &IAccessibleTableCell_ServerInfo,
+ 12,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ AccessibleTableCell__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x700022b, /* MIDL Version 7.0.555 */
+ 0,
+ 0,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _AccessibleTableCell_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_IAccessibleTableCellProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _AccessibleTableCell_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_IAccessibleTableCellStubVtbl,
+ 0
+};
+
+PCInterfaceName const _AccessibleTableCell_InterfaceNamesList[] =
+{
+ "IAccessibleTableCell",
+ 0
+};
+
+
+#define _AccessibleTableCell_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleTableCell, pIID, n)
+
+int __stdcall _AccessibleTableCell_IID_Lookup( const IID * pIID, int * pIndex )
+{
+
+ if(!_AccessibleTableCell_CHECK_IID(0))
+ {
+ *pIndex = 0;
+ return 1;
+ }
+
+ return 0;
+}
+
+const ExtendedProxyFileInfo AccessibleTableCell_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _AccessibleTableCell_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _AccessibleTableCell_StubVtblList,
+ (const PCInterfaceName * ) & _AccessibleTableCell_InterfaceNamesList,
+ 0, /* no delegation */
+ & _AccessibleTableCell_IID_Lookup,
+ 1,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#pragma optimize("", on )
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* !defined(_M_IA64) && !defined(_M_AMD64)*/
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleTable_i.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleTable_i.c
new file mode 100644
index 0000000000..0fa33967ac
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleTable_i.c
@@ -0,0 +1,79 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:54 2012
+ */
+/* Compiler settings for AccessibleTable.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleTable,0x35AD8070,0xC20C,0x4fb4,0xB0,0x94,0xF4,0xF7,0x27,0x5D,0xD4,0x69);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleTable_p.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleTable_p.c
new file mode 100644
index 0000000000..9ec9ffdb46
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleTable_p.c
@@ -0,0 +1,1526 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:54 2012
+ */
+/* Compiler settings for AccessibleTable.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if !defined(_M_IA64) && !defined(_M_AMD64)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+#pragma warning( disable: 4100 ) /* unreferenced arguments in x86 call */
+
+#pragma optimize("", off )
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "AccessibleTable.h"
+
+#define TYPE_FORMAT_STRING_SIZE 139
+#define PROC_FORMAT_STRING_SIZE 1219
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 1
+
+typedef struct _AccessibleTable_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } AccessibleTable_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _AccessibleTable_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } AccessibleTable_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _AccessibleTable_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } AccessibleTable_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const AccessibleTable_MIDL_TYPE_FORMAT_STRING AccessibleTable__MIDL_TypeFormatString;
+extern const AccessibleTable_MIDL_PROC_FORMAT_STRING AccessibleTable__MIDL_ProcFormatString;
+extern const AccessibleTable_MIDL_EXPR_FORMAT_STRING AccessibleTable__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleTable_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleTable_ProxyInfo;
+
+
+extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
+
+#if !defined(__RPC_WIN32__)
+#error Invalid build platform for this stub.
+#endif
+
+#if !(TARGET_IS_NT50_OR_LATER)
+#error You need Windows 2000 or later to run this stub because it uses these features:
+#error /robust command line switch.
+#error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems.
+#error This app will fail with the RPC_X_WRONG_STUB_VERSION error.
+#endif
+
+
+static const AccessibleTable_MIDL_PROC_FORMAT_STRING AccessibleTable__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure get_accessibleAt */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x3 ), /* 3 */
+/* 8 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 10 */ NdrFcShort( 0x10 ), /* 16 */
+/* 12 */ NdrFcShort( 0x8 ), /* 8 */
+/* 14 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 16 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 18 */ NdrFcShort( 0x0 ), /* 0 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 24 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 26 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 28 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter column */
+
+/* 30 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 32 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 34 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter accessible */
+
+/* 36 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 38 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 40 */ NdrFcShort( 0x2 ), /* Type Offset=2 */
+
+ /* Return value */
+
+/* 42 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 44 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 46 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_caption */
+
+/* 48 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 50 */ NdrFcLong( 0x0 ), /* 0 */
+/* 54 */ NdrFcShort( 0x4 ), /* 4 */
+/* 56 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 58 */ NdrFcShort( 0x0 ), /* 0 */
+/* 60 */ NdrFcShort( 0x8 ), /* 8 */
+/* 62 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 64 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 66 */ NdrFcShort( 0x0 ), /* 0 */
+/* 68 */ NdrFcShort( 0x0 ), /* 0 */
+/* 70 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessible */
+
+/* 72 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 74 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 76 */ NdrFcShort( 0x2 ), /* Type Offset=2 */
+
+ /* Return value */
+
+/* 78 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 80 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 82 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_childIndex */
+
+/* 84 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 86 */ NdrFcLong( 0x0 ), /* 0 */
+/* 90 */ NdrFcShort( 0x5 ), /* 5 */
+/* 92 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 94 */ NdrFcShort( 0x10 ), /* 16 */
+/* 96 */ NdrFcShort( 0x24 ), /* 36 */
+/* 98 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 100 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 102 */ NdrFcShort( 0x0 ), /* 0 */
+/* 104 */ NdrFcShort( 0x0 ), /* 0 */
+/* 106 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter rowIndex */
+
+/* 108 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 110 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 112 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter columnIndex */
+
+/* 114 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 116 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 118 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter cellIndex */
+
+/* 120 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 122 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 124 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 126 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 128 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 130 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnDescription */
+
+/* 132 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 134 */ NdrFcLong( 0x0 ), /* 0 */
+/* 138 */ NdrFcShort( 0x6 ), /* 6 */
+/* 140 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 142 */ NdrFcShort( 0x8 ), /* 8 */
+/* 144 */ NdrFcShort( 0x8 ), /* 8 */
+/* 146 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 148 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 150 */ NdrFcShort( 0x1 ), /* 1 */
+/* 152 */ NdrFcShort( 0x0 ), /* 0 */
+/* 154 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 156 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 158 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 160 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter description */
+
+/* 162 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 164 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 166 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+/* 168 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 170 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 172 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnExtentAt */
+
+/* 174 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 176 */ NdrFcLong( 0x0 ), /* 0 */
+/* 180 */ NdrFcShort( 0x7 ), /* 7 */
+/* 182 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 184 */ NdrFcShort( 0x10 ), /* 16 */
+/* 186 */ NdrFcShort( 0x24 ), /* 36 */
+/* 188 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 190 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 192 */ NdrFcShort( 0x0 ), /* 0 */
+/* 194 */ NdrFcShort( 0x0 ), /* 0 */
+/* 196 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 198 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 200 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 202 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter column */
+
+/* 204 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 206 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 208 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter nColumnsSpanned */
+
+/* 210 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 212 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 214 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 216 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 218 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 220 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnHeader */
+
+/* 222 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 224 */ NdrFcLong( 0x0 ), /* 0 */
+/* 228 */ NdrFcShort( 0x8 ), /* 8 */
+/* 230 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 232 */ NdrFcShort( 0x0 ), /* 0 */
+/* 234 */ NdrFcShort( 0x24 ), /* 36 */
+/* 236 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 238 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 240 */ NdrFcShort( 0x0 ), /* 0 */
+/* 242 */ NdrFcShort( 0x0 ), /* 0 */
+/* 244 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessibleTable */
+
+/* 246 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 248 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 250 */ NdrFcShort( 0x44 ), /* Type Offset=68 */
+
+ /* Parameter startingRowIndex */
+
+/* 252 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 254 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 256 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 258 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 260 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 262 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnIndex */
+
+/* 264 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 266 */ NdrFcLong( 0x0 ), /* 0 */
+/* 270 */ NdrFcShort( 0x9 ), /* 9 */
+/* 272 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 274 */ NdrFcShort( 0x8 ), /* 8 */
+/* 276 */ NdrFcShort( 0x24 ), /* 36 */
+/* 278 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 280 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 282 */ NdrFcShort( 0x0 ), /* 0 */
+/* 284 */ NdrFcShort( 0x0 ), /* 0 */
+/* 286 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cellIndex */
+
+/* 288 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 290 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 292 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter columnIndex */
+
+/* 294 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 296 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 298 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 300 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 302 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 304 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nColumns */
+
+/* 306 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 308 */ NdrFcLong( 0x0 ), /* 0 */
+/* 312 */ NdrFcShort( 0xa ), /* 10 */
+/* 314 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 316 */ NdrFcShort( 0x0 ), /* 0 */
+/* 318 */ NdrFcShort( 0x24 ), /* 36 */
+/* 320 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 322 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 324 */ NdrFcShort( 0x0 ), /* 0 */
+/* 326 */ NdrFcShort( 0x0 ), /* 0 */
+/* 328 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter columnCount */
+
+/* 330 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 332 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 334 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 336 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 338 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 340 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nRows */
+
+/* 342 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 344 */ NdrFcLong( 0x0 ), /* 0 */
+/* 348 */ NdrFcShort( 0xb ), /* 11 */
+/* 350 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 352 */ NdrFcShort( 0x0 ), /* 0 */
+/* 354 */ NdrFcShort( 0x24 ), /* 36 */
+/* 356 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 358 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 360 */ NdrFcShort( 0x0 ), /* 0 */
+/* 362 */ NdrFcShort( 0x0 ), /* 0 */
+/* 364 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter rowCount */
+
+/* 366 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 368 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 370 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 372 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 374 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 376 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nSelectedChildren */
+
+/* 378 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 380 */ NdrFcLong( 0x0 ), /* 0 */
+/* 384 */ NdrFcShort( 0xc ), /* 12 */
+/* 386 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 388 */ NdrFcShort( 0x0 ), /* 0 */
+/* 390 */ NdrFcShort( 0x24 ), /* 36 */
+/* 392 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 394 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 396 */ NdrFcShort( 0x0 ), /* 0 */
+/* 398 */ NdrFcShort( 0x0 ), /* 0 */
+/* 400 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cellCount */
+
+/* 402 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 404 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 406 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 408 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 410 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 412 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nSelectedColumns */
+
+/* 414 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 416 */ NdrFcLong( 0x0 ), /* 0 */
+/* 420 */ NdrFcShort( 0xd ), /* 13 */
+/* 422 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 424 */ NdrFcShort( 0x0 ), /* 0 */
+/* 426 */ NdrFcShort( 0x24 ), /* 36 */
+/* 428 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 430 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 432 */ NdrFcShort( 0x0 ), /* 0 */
+/* 434 */ NdrFcShort( 0x0 ), /* 0 */
+/* 436 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter columnCount */
+
+/* 438 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 440 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 442 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 444 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 446 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 448 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nSelectedRows */
+
+/* 450 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 452 */ NdrFcLong( 0x0 ), /* 0 */
+/* 456 */ NdrFcShort( 0xe ), /* 14 */
+/* 458 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 460 */ NdrFcShort( 0x0 ), /* 0 */
+/* 462 */ NdrFcShort( 0x24 ), /* 36 */
+/* 464 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 466 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 468 */ NdrFcShort( 0x0 ), /* 0 */
+/* 470 */ NdrFcShort( 0x0 ), /* 0 */
+/* 472 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter rowCount */
+
+/* 474 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 476 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 478 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 480 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 482 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 484 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowDescription */
+
+/* 486 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 488 */ NdrFcLong( 0x0 ), /* 0 */
+/* 492 */ NdrFcShort( 0xf ), /* 15 */
+/* 494 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 496 */ NdrFcShort( 0x8 ), /* 8 */
+/* 498 */ NdrFcShort( 0x8 ), /* 8 */
+/* 500 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 502 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 504 */ NdrFcShort( 0x1 ), /* 1 */
+/* 506 */ NdrFcShort( 0x0 ), /* 0 */
+/* 508 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 510 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 512 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 514 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter description */
+
+/* 516 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 518 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 520 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+/* 522 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 524 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 526 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowExtentAt */
+
+/* 528 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 530 */ NdrFcLong( 0x0 ), /* 0 */
+/* 534 */ NdrFcShort( 0x10 ), /* 16 */
+/* 536 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 538 */ NdrFcShort( 0x10 ), /* 16 */
+/* 540 */ NdrFcShort( 0x24 ), /* 36 */
+/* 542 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 544 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 546 */ NdrFcShort( 0x0 ), /* 0 */
+/* 548 */ NdrFcShort( 0x0 ), /* 0 */
+/* 550 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 552 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 554 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 556 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter column */
+
+/* 558 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 560 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 562 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter nRowsSpanned */
+
+/* 564 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 566 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 568 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 570 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 572 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 574 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowHeader */
+
+/* 576 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 578 */ NdrFcLong( 0x0 ), /* 0 */
+/* 582 */ NdrFcShort( 0x11 ), /* 17 */
+/* 584 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 586 */ NdrFcShort( 0x0 ), /* 0 */
+/* 588 */ NdrFcShort( 0x24 ), /* 36 */
+/* 590 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 592 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 594 */ NdrFcShort( 0x0 ), /* 0 */
+/* 596 */ NdrFcShort( 0x0 ), /* 0 */
+/* 598 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessibleTable */
+
+/* 600 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 602 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 604 */ NdrFcShort( 0x44 ), /* Type Offset=68 */
+
+ /* Parameter startingColumnIndex */
+
+/* 606 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 608 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 610 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 612 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 614 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 616 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowIndex */
+
+/* 618 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 620 */ NdrFcLong( 0x0 ), /* 0 */
+/* 624 */ NdrFcShort( 0x12 ), /* 18 */
+/* 626 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 628 */ NdrFcShort( 0x8 ), /* 8 */
+/* 630 */ NdrFcShort( 0x24 ), /* 36 */
+/* 632 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 634 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 636 */ NdrFcShort( 0x0 ), /* 0 */
+/* 638 */ NdrFcShort( 0x0 ), /* 0 */
+/* 640 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cellIndex */
+
+/* 642 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 644 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 646 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter rowIndex */
+
+/* 648 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 650 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 652 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 654 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 656 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 658 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selectedChildren */
+
+/* 660 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 662 */ NdrFcLong( 0x0 ), /* 0 */
+/* 666 */ NdrFcShort( 0x13 ), /* 19 */
+/* 668 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 670 */ NdrFcShort( 0x8 ), /* 8 */
+/* 672 */ NdrFcShort( 0x24 ), /* 36 */
+/* 674 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 676 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 678 */ NdrFcShort( 0x1 ), /* 1 */
+/* 680 */ NdrFcShort( 0x0 ), /* 0 */
+/* 682 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxChildren */
+
+/* 684 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 686 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 688 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter children */
+
+/* 690 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 692 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 694 */ NdrFcShort( 0x5a ), /* Type Offset=90 */
+
+ /* Parameter nChildren */
+
+/* 696 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 698 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 700 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 702 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 704 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 706 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selectedColumns */
+
+/* 708 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 710 */ NdrFcLong( 0x0 ), /* 0 */
+/* 714 */ NdrFcShort( 0x14 ), /* 20 */
+/* 716 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 718 */ NdrFcShort( 0x8 ), /* 8 */
+/* 720 */ NdrFcShort( 0x24 ), /* 36 */
+/* 722 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 724 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 726 */ NdrFcShort( 0x1 ), /* 1 */
+/* 728 */ NdrFcShort( 0x0 ), /* 0 */
+/* 730 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxColumns */
+
+/* 732 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 734 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 736 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter columns */
+
+/* 738 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 740 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 742 */ NdrFcShort( 0x5a ), /* Type Offset=90 */
+
+ /* Parameter nColumns */
+
+/* 744 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 746 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 748 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 750 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 752 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 754 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selectedRows */
+
+/* 756 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 758 */ NdrFcLong( 0x0 ), /* 0 */
+/* 762 */ NdrFcShort( 0x15 ), /* 21 */
+/* 764 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 766 */ NdrFcShort( 0x8 ), /* 8 */
+/* 768 */ NdrFcShort( 0x24 ), /* 36 */
+/* 770 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 772 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 774 */ NdrFcShort( 0x1 ), /* 1 */
+/* 776 */ NdrFcShort( 0x0 ), /* 0 */
+/* 778 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxRows */
+
+/* 780 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 782 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 784 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter rows */
+
+/* 786 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 788 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 790 */ NdrFcShort( 0x5a ), /* Type Offset=90 */
+
+ /* Parameter nRows */
+
+/* 792 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 794 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 796 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 798 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 800 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 802 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_summary */
+
+/* 804 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 806 */ NdrFcLong( 0x0 ), /* 0 */
+/* 810 */ NdrFcShort( 0x16 ), /* 22 */
+/* 812 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 814 */ NdrFcShort( 0x0 ), /* 0 */
+/* 816 */ NdrFcShort( 0x8 ), /* 8 */
+/* 818 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 820 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 822 */ NdrFcShort( 0x0 ), /* 0 */
+/* 824 */ NdrFcShort( 0x0 ), /* 0 */
+/* 826 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessible */
+
+/* 828 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 830 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 832 */ NdrFcShort( 0x2 ), /* Type Offset=2 */
+
+ /* Return value */
+
+/* 834 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 836 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 838 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isColumnSelected */
+
+/* 840 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 842 */ NdrFcLong( 0x0 ), /* 0 */
+/* 846 */ NdrFcShort( 0x17 ), /* 23 */
+/* 848 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 850 */ NdrFcShort( 0x8 ), /* 8 */
+/* 852 */ NdrFcShort( 0x21 ), /* 33 */
+/* 854 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 856 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 858 */ NdrFcShort( 0x0 ), /* 0 */
+/* 860 */ NdrFcShort( 0x0 ), /* 0 */
+/* 862 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 864 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 866 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 868 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 870 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 872 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 874 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 876 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 878 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 880 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isRowSelected */
+
+/* 882 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 884 */ NdrFcLong( 0x0 ), /* 0 */
+/* 888 */ NdrFcShort( 0x18 ), /* 24 */
+/* 890 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 892 */ NdrFcShort( 0x8 ), /* 8 */
+/* 894 */ NdrFcShort( 0x21 ), /* 33 */
+/* 896 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 898 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 900 */ NdrFcShort( 0x0 ), /* 0 */
+/* 902 */ NdrFcShort( 0x0 ), /* 0 */
+/* 904 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 906 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 908 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 910 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 912 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 914 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 916 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 918 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 920 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 922 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isSelected */
+
+/* 924 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 926 */ NdrFcLong( 0x0 ), /* 0 */
+/* 930 */ NdrFcShort( 0x19 ), /* 25 */
+/* 932 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 934 */ NdrFcShort( 0x10 ), /* 16 */
+/* 936 */ NdrFcShort( 0x21 ), /* 33 */
+/* 938 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 940 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 942 */ NdrFcShort( 0x0 ), /* 0 */
+/* 944 */ NdrFcShort( 0x0 ), /* 0 */
+/* 946 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 948 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 950 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 952 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter column */
+
+/* 954 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 956 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 958 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 960 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 962 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 964 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 966 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 968 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 970 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure selectRow */
+
+/* 972 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 974 */ NdrFcLong( 0x0 ), /* 0 */
+/* 978 */ NdrFcShort( 0x1a ), /* 26 */
+/* 980 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 982 */ NdrFcShort( 0x8 ), /* 8 */
+/* 984 */ NdrFcShort( 0x8 ), /* 8 */
+/* 986 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 988 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 990 */ NdrFcShort( 0x0 ), /* 0 */
+/* 992 */ NdrFcShort( 0x0 ), /* 0 */
+/* 994 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 996 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 998 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1000 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1002 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1004 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1006 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure selectColumn */
+
+/* 1008 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1010 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1014 */ NdrFcShort( 0x1b ), /* 27 */
+/* 1016 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1018 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1020 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1022 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 1024 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1026 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1028 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1030 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 1032 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1034 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1036 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1038 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1040 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1042 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure unselectRow */
+
+/* 1044 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1046 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1050 */ NdrFcShort( 0x1c ), /* 28 */
+/* 1052 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1054 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1056 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1058 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 1060 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1062 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1064 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1066 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 1068 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1070 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1072 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1074 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1076 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1078 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure unselectColumn */
+
+/* 1080 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1082 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1086 */ NdrFcShort( 0x1d ), /* 29 */
+/* 1088 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1090 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1092 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1094 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 1096 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1098 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1100 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1102 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 1104 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1106 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1108 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1110 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1112 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1114 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowColumnExtentsAtIndex */
+
+/* 1116 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1118 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1122 */ NdrFcShort( 0x1e ), /* 30 */
+/* 1124 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */
+/* 1126 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1128 */ NdrFcShort( 0x91 ), /* 145 */
+/* 1130 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x7, /* 7 */
+/* 1132 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1134 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1136 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1138 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter index */
+
+/* 1140 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1142 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1144 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter row */
+
+/* 1146 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1148 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1150 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter column */
+
+/* 1152 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1154 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1156 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter rowExtents */
+
+/* 1158 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1160 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 1162 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter columnExtents */
+
+/* 1164 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1166 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 1168 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 1170 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1172 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 1174 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1176 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1178 */ NdrFcShort( 0x1c ), /* x86 Stack size/offset = 28 */
+/* 1180 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_modelChange */
+
+/* 1182 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1184 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1188 */ NdrFcShort( 0x1f ), /* 31 */
+/* 1190 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1192 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1194 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1196 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1198 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1200 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1202 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1204 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter modelChange */
+
+/* 1206 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
+/* 1208 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1210 */ NdrFcShort( 0x7c ), /* Type Offset=124 */
+
+ /* Return value */
+
+/* 1212 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1214 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1216 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const AccessibleTable_MIDL_TYPE_FORMAT_STRING AccessibleTable__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0x10, /* FC_RP [pointer_deref] */
+/* 4 */ NdrFcShort( 0x2 ), /* Offset= 2 (6) */
+/* 6 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 8 */ NdrFcLong( 0x0 ), /* 0 */
+/* 12 */ NdrFcShort( 0x0 ), /* 0 */
+/* 14 */ NdrFcShort( 0x0 ), /* 0 */
+/* 16 */ 0xc0, /* 192 */
+ 0x0, /* 0 */
+/* 18 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 20 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 22 */ 0x0, /* 0 */
+ 0x46, /* 70 */
+/* 24 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 26 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+/* 28 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 30 */ NdrFcShort( 0x1c ), /* Offset= 28 (58) */
+/* 32 */
+ 0x13, 0x0, /* FC_OP */
+/* 34 */ NdrFcShort( 0xe ), /* Offset= 14 (48) */
+/* 36 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 38 */ NdrFcShort( 0x2 ), /* 2 */
+/* 40 */ 0x9, /* Corr desc: FC_ULONG */
+ 0x0, /* */
+/* 42 */ NdrFcShort( 0xfffc ), /* -4 */
+/* 44 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 46 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 48 */
+ 0x17, /* FC_CSTRUCT */
+ 0x3, /* 3 */
+/* 50 */ NdrFcShort( 0x8 ), /* 8 */
+/* 52 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (36) */
+/* 54 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 56 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 58 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 60 */ NdrFcShort( 0x0 ), /* 0 */
+/* 62 */ NdrFcShort( 0x4 ), /* 4 */
+/* 64 */ NdrFcShort( 0x0 ), /* 0 */
+/* 66 */ NdrFcShort( 0xffde ), /* Offset= -34 (32) */
+/* 68 */
+ 0x11, 0x10, /* FC_RP [pointer_deref] */
+/* 70 */ NdrFcShort( 0x2 ), /* Offset= 2 (72) */
+/* 72 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 74 */ NdrFcLong( 0x35ad8070 ), /* 900563056 */
+/* 78 */ NdrFcShort( 0xc20c ), /* -15860 */
+/* 80 */ NdrFcShort( 0x4fb4 ), /* 20404 */
+/* 82 */ 0xb0, /* 176 */
+ 0x94, /* 148 */
+/* 84 */ 0xf4, /* 244 */
+ 0xf7, /* 247 */
+/* 86 */ 0x27, /* 39 */
+ 0x5d, /* 93 */
+/* 88 */ 0xd4, /* 212 */
+ 0x69, /* 105 */
+/* 90 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 92 */ NdrFcShort( 0x2 ), /* Offset= 2 (94) */
+/* 94 */
+ 0x13, 0x0, /* FC_OP */
+/* 96 */ NdrFcShort( 0x2 ), /* Offset= 2 (98) */
+/* 98 */
+ 0x1c, /* FC_CVARRAY */
+ 0x3, /* 3 */
+/* 100 */ NdrFcShort( 0x4 ), /* 4 */
+/* 102 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x0, /* */
+/* 104 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 106 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 108 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 110 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 112 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 114 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 116 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 118 */ 0x3, /* FC_SMALL */
+ 0x5c, /* FC_PAD */
+/* 120 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 122 */ NdrFcShort( 0x2 ), /* Offset= 2 (124) */
+/* 124 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 126 */ NdrFcShort( 0x14 ), /* 20 */
+/* 128 */ NdrFcShort( 0x0 ), /* 0 */
+/* 130 */ NdrFcShort( 0x0 ), /* Offset= 0 (130) */
+/* 132 */ 0xd, /* FC_ENUM16 */
+ 0x8, /* FC_LONG */
+/* 134 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 136 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+
+ 0x0
+ }
+ };
+
+static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
+ {
+
+ {
+ BSTR_UserSize
+ ,BSTR_UserMarshal
+ ,BSTR_UserUnmarshal
+ ,BSTR_UserFree
+ }
+
+ };
+
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IAccessibleTable, ver. 0.0,
+ GUID={0x35AD8070,0xC20C,0x4fb4,{0xB0,0x94,0xF4,0xF7,0x27,0x5D,0xD4,0x69}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleTable_FormatStringOffsetTable[] =
+ {
+ 0,
+ 48,
+ 84,
+ 132,
+ 174,
+ 222,
+ 264,
+ 306,
+ 342,
+ 378,
+ 414,
+ 450,
+ 486,
+ 528,
+ 576,
+ 618,
+ 660,
+ 708,
+ 756,
+ 804,
+ 840,
+ 882,
+ 924,
+ 972,
+ 1008,
+ 1044,
+ 1080,
+ 1116,
+ 1182
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleTable_ProxyInfo =
+ {
+ &Object_StubDesc,
+ AccessibleTable__MIDL_ProcFormatString.Format,
+ &IAccessibleTable_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleTable_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ AccessibleTable__MIDL_ProcFormatString.Format,
+ &IAccessibleTable_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(32) _IAccessibleTableProxyVtbl =
+{
+ &IAccessibleTable_ProxyInfo,
+ &IID_IAccessibleTable,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_accessibleAt */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_caption */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_childIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_columnDescription */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_columnExtentAt */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_columnHeader */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_columnIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_nColumns */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_nRows */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_nSelectedChildren */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_nSelectedColumns */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_nSelectedRows */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowDescription */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowExtentAt */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowHeader */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_selectedChildren */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_selectedColumns */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_selectedRows */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_summary */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_isColumnSelected */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_isRowSelected */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_isSelected */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::selectRow */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::selectColumn */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::unselectRow */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::unselectColumn */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowColumnExtentsAtIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_modelChange */
+};
+
+const CInterfaceStubVtbl _IAccessibleTableStubVtbl =
+{
+ &IID_IAccessibleTable,
+ &IAccessibleTable_ServerInfo,
+ 32,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ AccessibleTable__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x700022b, /* MIDL Version 7.0.555 */
+ 0,
+ UserMarshalRoutines,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _AccessibleTable_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_IAccessibleTableProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _AccessibleTable_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_IAccessibleTableStubVtbl,
+ 0
+};
+
+PCInterfaceName const _AccessibleTable_InterfaceNamesList[] =
+{
+ "IAccessibleTable",
+ 0
+};
+
+
+#define _AccessibleTable_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleTable, pIID, n)
+
+int __stdcall _AccessibleTable_IID_Lookup( const IID * pIID, int * pIndex )
+{
+
+ if(!_AccessibleTable_CHECK_IID(0))
+ {
+ *pIndex = 0;
+ return 1;
+ }
+
+ return 0;
+}
+
+const ExtendedProxyFileInfo AccessibleTable_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _AccessibleTable_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _AccessibleTable_StubVtblList,
+ (const PCInterfaceName * ) & _AccessibleTable_InterfaceNamesList,
+ 0, /* no delegation */
+ & _AccessibleTable_IID_Lookup,
+ 1,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#pragma optimize("", on )
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* !defined(_M_IA64) && !defined(_M_AMD64)*/
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleText.h b/src/3rdparty/iaccessible2/generated/x86/AccessibleText.h
new file mode 100644
index 0000000000..4ad53cfa7e
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleText.h
@@ -0,0 +1,435 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:55 2012
+ */
+/* Compiler settings for AccessibleText.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __AccessibleText_h__
+#define __AccessibleText_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IAccessibleText_FWD_DEFINED__
+#define __IAccessibleText_FWD_DEFINED__
+typedef interface IAccessibleText IAccessibleText;
+#endif /* __IAccessibleText_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "objidl.h"
+#include "oaidl.h"
+#include "oleacc.h"
+#include "IA2CommonTypes.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/* interface __MIDL_itf_AccessibleText_0000_0000 */
+/* [local] */
+
+typedef struct IA2TextSegment
+ {
+ BSTR text;
+ long start;
+ long end;
+ } IA2TextSegment;
+
+
+enum IA2TextBoundaryType
+ { IA2_TEXT_BOUNDARY_CHAR = 0,
+ IA2_TEXT_BOUNDARY_WORD = ( IA2_TEXT_BOUNDARY_CHAR + 1 ) ,
+ IA2_TEXT_BOUNDARY_SENTENCE = ( IA2_TEXT_BOUNDARY_WORD + 1 ) ,
+ IA2_TEXT_BOUNDARY_PARAGRAPH = ( IA2_TEXT_BOUNDARY_SENTENCE + 1 ) ,
+ IA2_TEXT_BOUNDARY_LINE = ( IA2_TEXT_BOUNDARY_PARAGRAPH + 1 ) ,
+ IA2_TEXT_BOUNDARY_ALL = ( IA2_TEXT_BOUNDARY_LINE + 1 )
+ } ;
+
+
+extern RPC_IF_HANDLE __MIDL_itf_AccessibleText_0000_0000_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_AccessibleText_0000_0000_v0_0_s_ifspec;
+
+#ifndef __IAccessibleText_INTERFACE_DEFINED__
+#define __IAccessibleText_INTERFACE_DEFINED__
+
+/* interface IAccessibleText */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleText;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("24FD2FFB-3AAD-4a08-8335-A3AD89C0FB4B")
+ IAccessibleText : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE addSelection(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_attributes(
+ /* [in] */ long offset,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *textAttributes) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_caretOffset(
+ /* [retval][out] */ long *offset) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_characterExtents(
+ /* [in] */ long offset,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [out] */ long *x,
+ /* [out] */ long *y,
+ /* [out] */ long *width,
+ /* [retval][out] */ long *height) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelections(
+ /* [retval][out] */ long *nSelections) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_offsetAtPoint(
+ /* [in] */ long x,
+ /* [in] */ long y,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [retval][out] */ long *offset) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selection(
+ /* [in] */ long selectionIndex,
+ /* [out] */ long *startOffset,
+ /* [retval][out] */ long *endOffset) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_text(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [retval][out] */ BSTR *text) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_textBeforeOffset(
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_textAfterOffset(
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_textAtOffset(
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE removeSelection(
+ /* [in] */ long selectionIndex) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE setCaretOffset(
+ /* [in] */ long offset) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE setSelection(
+ /* [in] */ long selectionIndex,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nCharacters(
+ /* [retval][out] */ long *nCharacters) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE scrollSubstringTo(
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2ScrollType scrollType) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE scrollSubstringToPoint(
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_newText(
+ /* [retval][out] */ IA2TextSegment *newText) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_oldText(
+ /* [retval][out] */ IA2TextSegment *oldText) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleTextVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleText * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleText * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleText * This);
+
+ HRESULT ( STDMETHODCALLTYPE *addSelection )(
+ IAccessibleText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )(
+ IAccessibleText * This,
+ /* [in] */ long offset,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *textAttributes);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )(
+ IAccessibleText * This,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )(
+ IAccessibleText * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [out] */ long *x,
+ /* [out] */ long *y,
+ /* [out] */ long *width,
+ /* [retval][out] */ long *height);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )(
+ IAccessibleText * This,
+ /* [retval][out] */ long *nSelections);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )(
+ IAccessibleText * This,
+ /* [in] */ long x,
+ /* [in] */ long y,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )(
+ IAccessibleText * This,
+ /* [in] */ long selectionIndex,
+ /* [out] */ long *startOffset,
+ /* [retval][out] */ long *endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )(
+ IAccessibleText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )(
+ IAccessibleText * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )(
+ IAccessibleText * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )(
+ IAccessibleText * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ HRESULT ( STDMETHODCALLTYPE *removeSelection )(
+ IAccessibleText * This,
+ /* [in] */ long selectionIndex);
+
+ HRESULT ( STDMETHODCALLTYPE *setCaretOffset )(
+ IAccessibleText * This,
+ /* [in] */ long offset);
+
+ HRESULT ( STDMETHODCALLTYPE *setSelection )(
+ IAccessibleText * This,
+ /* [in] */ long selectionIndex,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )(
+ IAccessibleText * This,
+ /* [retval][out] */ long *nCharacters);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )(
+ IAccessibleText * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2ScrollType scrollType);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )(
+ IAccessibleText * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )(
+ IAccessibleText * This,
+ /* [retval][out] */ IA2TextSegment *newText);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )(
+ IAccessibleText * This,
+ /* [retval][out] */ IA2TextSegment *oldText);
+
+ END_INTERFACE
+ } IAccessibleTextVtbl;
+
+ interface IAccessibleText
+ {
+ CONST_VTBL struct IAccessibleTextVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleText_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleText_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleText_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleText_addSelection(This,startOffset,endOffset) \
+ ( (This)->lpVtbl -> addSelection(This,startOffset,endOffset) )
+
+#define IAccessibleText_get_attributes(This,offset,startOffset,endOffset,textAttributes) \
+ ( (This)->lpVtbl -> get_attributes(This,offset,startOffset,endOffset,textAttributes) )
+
+#define IAccessibleText_get_caretOffset(This,offset) \
+ ( (This)->lpVtbl -> get_caretOffset(This,offset) )
+
+#define IAccessibleText_get_characterExtents(This,offset,coordType,x,y,width,height) \
+ ( (This)->lpVtbl -> get_characterExtents(This,offset,coordType,x,y,width,height) )
+
+#define IAccessibleText_get_nSelections(This,nSelections) \
+ ( (This)->lpVtbl -> get_nSelections(This,nSelections) )
+
+#define IAccessibleText_get_offsetAtPoint(This,x,y,coordType,offset) \
+ ( (This)->lpVtbl -> get_offsetAtPoint(This,x,y,coordType,offset) )
+
+#define IAccessibleText_get_selection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> get_selection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleText_get_text(This,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_text(This,startOffset,endOffset,text) )
+
+#define IAccessibleText_get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleText_get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleText_get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleText_removeSelection(This,selectionIndex) \
+ ( (This)->lpVtbl -> removeSelection(This,selectionIndex) )
+
+#define IAccessibleText_setCaretOffset(This,offset) \
+ ( (This)->lpVtbl -> setCaretOffset(This,offset) )
+
+#define IAccessibleText_setSelection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> setSelection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleText_get_nCharacters(This,nCharacters) \
+ ( (This)->lpVtbl -> get_nCharacters(This,nCharacters) )
+
+#define IAccessibleText_scrollSubstringTo(This,startIndex,endIndex,scrollType) \
+ ( (This)->lpVtbl -> scrollSubstringTo(This,startIndex,endIndex,scrollType) )
+
+#define IAccessibleText_scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) \
+ ( (This)->lpVtbl -> scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) )
+
+#define IAccessibleText_get_newText(This,newText) \
+ ( (This)->lpVtbl -> get_newText(This,newText) )
+
+#define IAccessibleText_get_oldText(This,oldText) \
+ ( (This)->lpVtbl -> get_oldText(This,oldText) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleText_INTERFACE_DEFINED__ */
+
+
+/* Additional Prototypes for ALL interfaces */
+
+unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
+unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
+unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
+void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleText_i.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleText_i.c
new file mode 100644
index 0000000000..bfa9e763c1
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleText_i.c
@@ -0,0 +1,79 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:55 2012
+ */
+/* Compiler settings for AccessibleText.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleText,0x24FD2FFB,0x3AAD,0x4a08,0x83,0x35,0xA3,0xAD,0x89,0xC0,0xFB,0x4B);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleText_p.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleText_p.c
new file mode 100644
index 0000000000..ea56621c62
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleText_p.c
@@ -0,0 +1,1196 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:55 2012
+ */
+/* Compiler settings for AccessibleText.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if !defined(_M_IA64) && !defined(_M_AMD64)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+#pragma warning( disable: 4100 ) /* unreferenced arguments in x86 call */
+
+#pragma optimize("", off )
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "AccessibleText.h"
+
+#define TYPE_FORMAT_STRING_SIZE 67
+#define PROC_FORMAT_STRING_SIZE 901
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 1
+
+typedef struct _AccessibleText_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } AccessibleText_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _AccessibleText_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } AccessibleText_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _AccessibleText_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } AccessibleText_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const AccessibleText_MIDL_TYPE_FORMAT_STRING AccessibleText__MIDL_TypeFormatString;
+extern const AccessibleText_MIDL_PROC_FORMAT_STRING AccessibleText__MIDL_ProcFormatString;
+extern const AccessibleText_MIDL_EXPR_FORMAT_STRING AccessibleText__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleText_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleText_ProxyInfo;
+
+
+extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
+
+#if !defined(__RPC_WIN32__)
+#error Invalid build platform for this stub.
+#endif
+
+#if !(TARGET_IS_NT50_OR_LATER)
+#error You need Windows 2000 or later to run this stub because it uses these features:
+#error /robust command line switch.
+#error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems.
+#error This app will fail with the RPC_X_WRONG_STUB_VERSION error.
+#endif
+
+
+static const AccessibleText_MIDL_PROC_FORMAT_STRING AccessibleText__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure addSelection */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x3 ), /* 3 */
+/* 8 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 10 */ NdrFcShort( 0x10 ), /* 16 */
+/* 12 */ NdrFcShort( 0x8 ), /* 8 */
+/* 14 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 16 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 18 */ NdrFcShort( 0x0 ), /* 0 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startOffset */
+
+/* 24 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 26 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 28 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 30 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 32 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 34 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 36 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 38 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 40 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_attributes */
+
+/* 42 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 44 */ NdrFcLong( 0x0 ), /* 0 */
+/* 48 */ NdrFcShort( 0x4 ), /* 4 */
+/* 50 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 52 */ NdrFcShort( 0x8 ), /* 8 */
+/* 54 */ NdrFcShort( 0x40 ), /* 64 */
+/* 56 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x5, /* 5 */
+/* 58 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 60 */ NdrFcShort( 0x1 ), /* 1 */
+/* 62 */ NdrFcShort( 0x0 ), /* 0 */
+/* 64 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 66 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 68 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 70 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter startOffset */
+
+/* 72 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 74 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 76 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 78 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 80 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 82 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter textAttributes */
+
+/* 84 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 86 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 88 */ NdrFcShort( 0x24 ), /* Type Offset=36 */
+
+ /* Return value */
+
+/* 90 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 92 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 94 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_caretOffset */
+
+/* 96 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 98 */ NdrFcLong( 0x0 ), /* 0 */
+/* 102 */ NdrFcShort( 0x5 ), /* 5 */
+/* 104 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 106 */ NdrFcShort( 0x0 ), /* 0 */
+/* 108 */ NdrFcShort( 0x24 ), /* 36 */
+/* 110 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 112 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 114 */ NdrFcShort( 0x0 ), /* 0 */
+/* 116 */ NdrFcShort( 0x0 ), /* 0 */
+/* 118 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 120 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 122 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 124 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 126 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 128 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 130 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_characterExtents */
+
+/* 132 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 134 */ NdrFcLong( 0x0 ), /* 0 */
+/* 138 */ NdrFcShort( 0x6 ), /* 6 */
+/* 140 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */
+/* 142 */ NdrFcShort( 0xe ), /* 14 */
+/* 144 */ NdrFcShort( 0x78 ), /* 120 */
+/* 146 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x7, /* 7 */
+/* 148 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 150 */ NdrFcShort( 0x0 ), /* 0 */
+/* 152 */ NdrFcShort( 0x0 ), /* 0 */
+/* 154 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 156 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 158 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 160 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter coordType */
+
+/* 162 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 164 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 166 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter x */
+
+/* 168 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 170 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 172 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 174 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 176 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 178 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter width */
+
+/* 180 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 182 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 184 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter height */
+
+/* 186 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 188 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 190 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 192 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 194 */ NdrFcShort( 0x1c ), /* x86 Stack size/offset = 28 */
+/* 196 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nSelections */
+
+/* 198 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 200 */ NdrFcLong( 0x0 ), /* 0 */
+/* 204 */ NdrFcShort( 0x7 ), /* 7 */
+/* 206 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 208 */ NdrFcShort( 0x0 ), /* 0 */
+/* 210 */ NdrFcShort( 0x24 ), /* 36 */
+/* 212 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 214 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 216 */ NdrFcShort( 0x0 ), /* 0 */
+/* 218 */ NdrFcShort( 0x0 ), /* 0 */
+/* 220 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nSelections */
+
+/* 222 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 224 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 226 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 228 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 230 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 232 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_offsetAtPoint */
+
+/* 234 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 236 */ NdrFcLong( 0x0 ), /* 0 */
+/* 240 */ NdrFcShort( 0x8 ), /* 8 */
+/* 242 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 244 */ NdrFcShort( 0x16 ), /* 22 */
+/* 246 */ NdrFcShort( 0x24 ), /* 36 */
+/* 248 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x5, /* 5 */
+/* 250 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 252 */ NdrFcShort( 0x0 ), /* 0 */
+/* 254 */ NdrFcShort( 0x0 ), /* 0 */
+/* 256 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter x */
+
+/* 258 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 260 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 262 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 264 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 266 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 268 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter coordType */
+
+/* 270 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 272 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 274 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter offset */
+
+/* 276 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 278 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 280 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 282 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 284 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 286 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selection */
+
+/* 288 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 290 */ NdrFcLong( 0x0 ), /* 0 */
+/* 294 */ NdrFcShort( 0x9 ), /* 9 */
+/* 296 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 298 */ NdrFcShort( 0x8 ), /* 8 */
+/* 300 */ NdrFcShort( 0x40 ), /* 64 */
+/* 302 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 304 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 306 */ NdrFcShort( 0x0 ), /* 0 */
+/* 308 */ NdrFcShort( 0x0 ), /* 0 */
+/* 310 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter selectionIndex */
+
+/* 312 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 314 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 316 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter startOffset */
+
+/* 318 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 320 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 322 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 324 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 326 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 328 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 330 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 332 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 334 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_text */
+
+/* 336 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 338 */ NdrFcLong( 0x0 ), /* 0 */
+/* 342 */ NdrFcShort( 0xa ), /* 10 */
+/* 344 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 346 */ NdrFcShort( 0x10 ), /* 16 */
+/* 348 */ NdrFcShort( 0x8 ), /* 8 */
+/* 350 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 352 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 354 */ NdrFcShort( 0x1 ), /* 1 */
+/* 356 */ NdrFcShort( 0x0 ), /* 0 */
+/* 358 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startOffset */
+
+/* 360 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 362 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 364 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 366 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 368 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 370 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter text */
+
+/* 372 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 374 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 376 */ NdrFcShort( 0x24 ), /* Type Offset=36 */
+
+ /* Return value */
+
+/* 378 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 380 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 382 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_textBeforeOffset */
+
+/* 384 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 386 */ NdrFcLong( 0x0 ), /* 0 */
+/* 390 */ NdrFcShort( 0xb ), /* 11 */
+/* 392 */ NdrFcShort( 0x1c ), /* x86 Stack size/offset = 28 */
+/* 394 */ NdrFcShort( 0xe ), /* 14 */
+/* 396 */ NdrFcShort( 0x40 ), /* 64 */
+/* 398 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x6, /* 6 */
+/* 400 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 402 */ NdrFcShort( 0x1 ), /* 1 */
+/* 404 */ NdrFcShort( 0x0 ), /* 0 */
+/* 406 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 408 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 410 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 412 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter boundaryType */
+
+/* 414 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 416 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 418 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter startOffset */
+
+/* 420 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 422 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 424 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 426 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 428 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 430 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter text */
+
+/* 432 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 434 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 436 */ NdrFcShort( 0x24 ), /* Type Offset=36 */
+
+ /* Return value */
+
+/* 438 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 440 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 442 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_textAfterOffset */
+
+/* 444 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 446 */ NdrFcLong( 0x0 ), /* 0 */
+/* 450 */ NdrFcShort( 0xc ), /* 12 */
+/* 452 */ NdrFcShort( 0x1c ), /* x86 Stack size/offset = 28 */
+/* 454 */ NdrFcShort( 0xe ), /* 14 */
+/* 456 */ NdrFcShort( 0x40 ), /* 64 */
+/* 458 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x6, /* 6 */
+/* 460 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 462 */ NdrFcShort( 0x1 ), /* 1 */
+/* 464 */ NdrFcShort( 0x0 ), /* 0 */
+/* 466 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 468 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 470 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 472 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter boundaryType */
+
+/* 474 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 476 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 478 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter startOffset */
+
+/* 480 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 482 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 484 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 486 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 488 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 490 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter text */
+
+/* 492 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 494 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 496 */ NdrFcShort( 0x24 ), /* Type Offset=36 */
+
+ /* Return value */
+
+/* 498 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 500 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 502 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_textAtOffset */
+
+/* 504 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 506 */ NdrFcLong( 0x0 ), /* 0 */
+/* 510 */ NdrFcShort( 0xd ), /* 13 */
+/* 512 */ NdrFcShort( 0x1c ), /* x86 Stack size/offset = 28 */
+/* 514 */ NdrFcShort( 0xe ), /* 14 */
+/* 516 */ NdrFcShort( 0x40 ), /* 64 */
+/* 518 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x6, /* 6 */
+/* 520 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 522 */ NdrFcShort( 0x1 ), /* 1 */
+/* 524 */ NdrFcShort( 0x0 ), /* 0 */
+/* 526 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 528 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 530 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 532 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter boundaryType */
+
+/* 534 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 536 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 538 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter startOffset */
+
+/* 540 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 542 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 544 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 546 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 548 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 550 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter text */
+
+/* 552 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 554 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 556 */ NdrFcShort( 0x24 ), /* Type Offset=36 */
+
+ /* Return value */
+
+/* 558 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 560 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 562 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure removeSelection */
+
+/* 564 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 566 */ NdrFcLong( 0x0 ), /* 0 */
+/* 570 */ NdrFcShort( 0xe ), /* 14 */
+/* 572 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 574 */ NdrFcShort( 0x8 ), /* 8 */
+/* 576 */ NdrFcShort( 0x8 ), /* 8 */
+/* 578 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 580 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 582 */ NdrFcShort( 0x0 ), /* 0 */
+/* 584 */ NdrFcShort( 0x0 ), /* 0 */
+/* 586 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter selectionIndex */
+
+/* 588 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 590 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 592 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 594 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 596 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 598 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure setCaretOffset */
+
+/* 600 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 602 */ NdrFcLong( 0x0 ), /* 0 */
+/* 606 */ NdrFcShort( 0xf ), /* 15 */
+/* 608 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 610 */ NdrFcShort( 0x8 ), /* 8 */
+/* 612 */ NdrFcShort( 0x8 ), /* 8 */
+/* 614 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 616 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 618 */ NdrFcShort( 0x0 ), /* 0 */
+/* 620 */ NdrFcShort( 0x0 ), /* 0 */
+/* 622 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 624 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 626 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 628 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 630 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 632 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 634 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure setSelection */
+
+/* 636 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 638 */ NdrFcLong( 0x0 ), /* 0 */
+/* 642 */ NdrFcShort( 0x10 ), /* 16 */
+/* 644 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 646 */ NdrFcShort( 0x18 ), /* 24 */
+/* 648 */ NdrFcShort( 0x8 ), /* 8 */
+/* 650 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 652 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 654 */ NdrFcShort( 0x0 ), /* 0 */
+/* 656 */ NdrFcShort( 0x0 ), /* 0 */
+/* 658 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter selectionIndex */
+
+/* 660 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 662 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 664 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter startOffset */
+
+/* 666 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 668 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 670 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 672 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 674 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 676 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 678 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 680 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 682 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nCharacters */
+
+/* 684 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 686 */ NdrFcLong( 0x0 ), /* 0 */
+/* 690 */ NdrFcShort( 0x11 ), /* 17 */
+/* 692 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 694 */ NdrFcShort( 0x0 ), /* 0 */
+/* 696 */ NdrFcShort( 0x24 ), /* 36 */
+/* 698 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 700 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 702 */ NdrFcShort( 0x0 ), /* 0 */
+/* 704 */ NdrFcShort( 0x0 ), /* 0 */
+/* 706 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nCharacters */
+
+/* 708 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 710 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 712 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 714 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 716 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 718 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure scrollSubstringTo */
+
+/* 720 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 722 */ NdrFcLong( 0x0 ), /* 0 */
+/* 726 */ NdrFcShort( 0x12 ), /* 18 */
+/* 728 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 730 */ NdrFcShort( 0x16 ), /* 22 */
+/* 732 */ NdrFcShort( 0x8 ), /* 8 */
+/* 734 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 736 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 738 */ NdrFcShort( 0x0 ), /* 0 */
+/* 740 */ NdrFcShort( 0x0 ), /* 0 */
+/* 742 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startIndex */
+
+/* 744 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 746 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 748 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endIndex */
+
+/* 750 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 752 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 754 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter scrollType */
+
+/* 756 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 758 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 760 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 762 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 764 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 766 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure scrollSubstringToPoint */
+
+/* 768 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 770 */ NdrFcLong( 0x0 ), /* 0 */
+/* 774 */ NdrFcShort( 0x13 ), /* 19 */
+/* 776 */ NdrFcShort( 0x1c ), /* x86 Stack size/offset = 28 */
+/* 778 */ NdrFcShort( 0x26 ), /* 38 */
+/* 780 */ NdrFcShort( 0x8 ), /* 8 */
+/* 782 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x6, /* 6 */
+/* 784 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 786 */ NdrFcShort( 0x0 ), /* 0 */
+/* 788 */ NdrFcShort( 0x0 ), /* 0 */
+/* 790 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startIndex */
+
+/* 792 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 794 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 796 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endIndex */
+
+/* 798 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 800 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 802 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter coordinateType */
+
+/* 804 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 806 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 808 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter x */
+
+/* 810 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 812 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 814 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 816 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 818 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 820 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 822 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 824 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 826 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_newText */
+
+/* 828 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 830 */ NdrFcLong( 0x0 ), /* 0 */
+/* 834 */ NdrFcShort( 0x14 ), /* 20 */
+/* 836 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 838 */ NdrFcShort( 0x0 ), /* 0 */
+/* 840 */ NdrFcShort( 0x8 ), /* 8 */
+/* 842 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 844 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 846 */ NdrFcShort( 0x1 ), /* 1 */
+/* 848 */ NdrFcShort( 0x0 ), /* 0 */
+/* 850 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter newText */
+
+/* 852 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
+/* 854 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 856 */ NdrFcShort( 0x32 ), /* Type Offset=50 */
+
+ /* Return value */
+
+/* 858 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 860 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 862 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_oldText */
+
+/* 864 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 866 */ NdrFcLong( 0x0 ), /* 0 */
+/* 870 */ NdrFcShort( 0x15 ), /* 21 */
+/* 872 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 874 */ NdrFcShort( 0x0 ), /* 0 */
+/* 876 */ NdrFcShort( 0x8 ), /* 8 */
+/* 878 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 880 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 882 */ NdrFcShort( 0x1 ), /* 1 */
+/* 884 */ NdrFcShort( 0x0 ), /* 0 */
+/* 886 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter oldText */
+
+/* 888 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
+/* 890 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 892 */ NdrFcShort( 0x32 ), /* Type Offset=50 */
+
+ /* Return value */
+
+/* 894 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 896 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 898 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const AccessibleText_MIDL_TYPE_FORMAT_STRING AccessibleText__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 4 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+/* 6 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 8 */ NdrFcShort( 0x1c ), /* Offset= 28 (36) */
+/* 10 */
+ 0x13, 0x0, /* FC_OP */
+/* 12 */ NdrFcShort( 0xe ), /* Offset= 14 (26) */
+/* 14 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 16 */ NdrFcShort( 0x2 ), /* 2 */
+/* 18 */ 0x9, /* Corr desc: FC_ULONG */
+ 0x0, /* */
+/* 20 */ NdrFcShort( 0xfffc ), /* -4 */
+/* 22 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 24 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 26 */
+ 0x17, /* FC_CSTRUCT */
+ 0x3, /* 3 */
+/* 28 */ NdrFcShort( 0x8 ), /* 8 */
+/* 30 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (14) */
+/* 32 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 34 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 36 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 38 */ NdrFcShort( 0x0 ), /* 0 */
+/* 40 */ NdrFcShort( 0x4 ), /* 4 */
+/* 42 */ NdrFcShort( 0x0 ), /* 0 */
+/* 44 */ NdrFcShort( 0xffde ), /* Offset= -34 (10) */
+/* 46 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 48 */ NdrFcShort( 0x2 ), /* Offset= 2 (50) */
+/* 50 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 52 */ NdrFcShort( 0xc ), /* 12 */
+/* 54 */ NdrFcShort( 0x0 ), /* 0 */
+/* 56 */ NdrFcShort( 0x0 ), /* Offset= 0 (56) */
+/* 58 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 60 */ NdrFcShort( 0xffe8 ), /* Offset= -24 (36) */
+/* 62 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 64 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+
+ 0x0
+ }
+ };
+
+static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
+ {
+
+ {
+ BSTR_UserSize
+ ,BSTR_UserMarshal
+ ,BSTR_UserUnmarshal
+ ,BSTR_UserFree
+ }
+
+ };
+
+
+
+/* Standard interface: __MIDL_itf_AccessibleText_0000_0000, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IAccessibleText, ver. 0.0,
+ GUID={0x24FD2FFB,0x3AAD,0x4a08,{0x83,0x35,0xA3,0xAD,0x89,0xC0,0xFB,0x4B}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleText_FormatStringOffsetTable[] =
+ {
+ 0,
+ 42,
+ 96,
+ 132,
+ 198,
+ 234,
+ 288,
+ 336,
+ 384,
+ 444,
+ 504,
+ 564,
+ 600,
+ 636,
+ 684,
+ 720,
+ 768,
+ 828,
+ 864
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleText_ProxyInfo =
+ {
+ &Object_StubDesc,
+ AccessibleText__MIDL_ProcFormatString.Format,
+ &IAccessibleText_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleText_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ AccessibleText__MIDL_ProcFormatString.Format,
+ &IAccessibleText_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(22) _IAccessibleTextProxyVtbl =
+{
+ &IAccessibleText_ProxyInfo,
+ &IID_IAccessibleText,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::addSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_attributes */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_caretOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_characterExtents */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_nSelections */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_offsetAtPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_selection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_text */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textBeforeOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textAfterOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textAtOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::removeSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::setCaretOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::setSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_nCharacters */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringTo */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringToPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_newText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_oldText */
+};
+
+const CInterfaceStubVtbl _IAccessibleTextStubVtbl =
+{
+ &IID_IAccessibleText,
+ &IAccessibleText_ServerInfo,
+ 22,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ AccessibleText__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x700022b, /* MIDL Version 7.0.555 */
+ 0,
+ UserMarshalRoutines,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _AccessibleText_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_IAccessibleTextProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _AccessibleText_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_IAccessibleTextStubVtbl,
+ 0
+};
+
+PCInterfaceName const _AccessibleText_InterfaceNamesList[] =
+{
+ "IAccessibleText",
+ 0
+};
+
+
+#define _AccessibleText_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleText, pIID, n)
+
+int __stdcall _AccessibleText_IID_Lookup( const IID * pIID, int * pIndex )
+{
+
+ if(!_AccessibleText_CHECK_IID(0))
+ {
+ *pIndex = 0;
+ return 1;
+ }
+
+ return 0;
+}
+
+const ExtendedProxyFileInfo AccessibleText_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _AccessibleText_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _AccessibleText_StubVtblList,
+ (const PCInterfaceName * ) & _AccessibleText_InterfaceNamesList,
+ 0, /* no delegation */
+ & _AccessibleText_IID_Lookup,
+ 1,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#pragma optimize("", on )
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* !defined(_M_IA64) && !defined(_M_AMD64)*/
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleValue.h b/src/3rdparty/iaccessible2/generated/x86/AccessibleValue.h
new file mode 100644
index 0000000000..6ef70c261f
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleValue.h
@@ -0,0 +1,188 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:55 2012
+ */
+/* Compiler settings for AccessibleValue.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __AccessibleValue_h__
+#define __AccessibleValue_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IAccessibleValue_FWD_DEFINED__
+#define __IAccessibleValue_FWD_DEFINED__
+typedef interface IAccessibleValue IAccessibleValue;
+#endif /* __IAccessibleValue_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "objidl.h"
+#include "oaidl.h"
+#include "oleacc.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#ifndef __IAccessibleValue_INTERFACE_DEFINED__
+#define __IAccessibleValue_INTERFACE_DEFINED__
+
+/* interface IAccessibleValue */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleValue;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("35855B5B-C566-4fd0-A7B1-E65465600394")
+ IAccessibleValue : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_currentValue(
+ /* [retval][out] */ VARIANT *currentValue) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE setCurrentValue(
+ /* [in] */ VARIANT value) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_maximumValue(
+ /* [retval][out] */ VARIANT *maximumValue) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_minimumValue(
+ /* [retval][out] */ VARIANT *minimumValue) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleValueVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleValue * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleValue * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleValue * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentValue )(
+ IAccessibleValue * This,
+ /* [retval][out] */ VARIANT *currentValue);
+
+ HRESULT ( STDMETHODCALLTYPE *setCurrentValue )(
+ IAccessibleValue * This,
+ /* [in] */ VARIANT value);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_maximumValue )(
+ IAccessibleValue * This,
+ /* [retval][out] */ VARIANT *maximumValue);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_minimumValue )(
+ IAccessibleValue * This,
+ /* [retval][out] */ VARIANT *minimumValue);
+
+ END_INTERFACE
+ } IAccessibleValueVtbl;
+
+ interface IAccessibleValue
+ {
+ CONST_VTBL struct IAccessibleValueVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleValue_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleValue_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleValue_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleValue_get_currentValue(This,currentValue) \
+ ( (This)->lpVtbl -> get_currentValue(This,currentValue) )
+
+#define IAccessibleValue_setCurrentValue(This,value) \
+ ( (This)->lpVtbl -> setCurrentValue(This,value) )
+
+#define IAccessibleValue_get_maximumValue(This,maximumValue) \
+ ( (This)->lpVtbl -> get_maximumValue(This,maximumValue) )
+
+#define IAccessibleValue_get_minimumValue(This,minimumValue) \
+ ( (This)->lpVtbl -> get_minimumValue(This,minimumValue) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleValue_INTERFACE_DEFINED__ */
+
+
+/* Additional Prototypes for ALL interfaces */
+
+unsigned long __RPC_USER VARIANT_UserSize( unsigned long *, unsigned long , VARIANT * );
+unsigned char * __RPC_USER VARIANT_UserMarshal( unsigned long *, unsigned char *, VARIANT * );
+unsigned char * __RPC_USER VARIANT_UserUnmarshal(unsigned long *, unsigned char *, VARIANT * );
+void __RPC_USER VARIANT_UserFree( unsigned long *, VARIANT * );
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleValue_i.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleValue_i.c
new file mode 100644
index 0000000000..dffdb123af
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleValue_i.c
@@ -0,0 +1,79 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:55 2012
+ */
+/* Compiler settings for AccessibleValue.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleValue,0x35855B5B,0xC566,0x4fd0,0xA7,0xB1,0xE6,0x54,0x65,0x60,0x03,0x94);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleValue_p.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleValue_p.c
new file mode 100644
index 0000000000..166e2149b4
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/AccessibleValue_p.c
@@ -0,0 +1,1105 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:55 2012
+ */
+/* Compiler settings for AccessibleValue.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if !defined(_M_IA64) && !defined(_M_AMD64)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+#pragma warning( disable: 4100 ) /* unreferenced arguments in x86 call */
+
+#pragma optimize("", off )
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "AccessibleValue.h"
+
+#define TYPE_FORMAT_STRING_SIZE 1053
+#define PROC_FORMAT_STRING_SIZE 145
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 1
+
+typedef struct _AccessibleValue_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } AccessibleValue_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _AccessibleValue_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } AccessibleValue_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _AccessibleValue_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } AccessibleValue_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const AccessibleValue_MIDL_TYPE_FORMAT_STRING AccessibleValue__MIDL_TypeFormatString;
+extern const AccessibleValue_MIDL_PROC_FORMAT_STRING AccessibleValue__MIDL_ProcFormatString;
+extern const AccessibleValue_MIDL_EXPR_FORMAT_STRING AccessibleValue__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleValue_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleValue_ProxyInfo;
+
+
+extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
+
+#if !defined(__RPC_WIN32__)
+#error Invalid build platform for this stub.
+#endif
+
+#if !(TARGET_IS_NT50_OR_LATER)
+#error You need Windows 2000 or later to run this stub because it uses these features:
+#error /robust command line switch.
+#error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems.
+#error This app will fail with the RPC_X_WRONG_STUB_VERSION error.
+#endif
+
+
+static const AccessibleValue_MIDL_PROC_FORMAT_STRING AccessibleValue__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure get_currentValue */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x3 ), /* 3 */
+/* 8 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 10 */ NdrFcShort( 0x0 ), /* 0 */
+/* 12 */ NdrFcShort( 0x8 ), /* 8 */
+/* 14 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 16 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 18 */ NdrFcShort( 0x1 ), /* 1 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter currentValue */
+
+/* 24 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
+/* 26 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 28 */ NdrFcShort( 0x404 ), /* Type Offset=1028 */
+
+ /* Return value */
+
+/* 30 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 32 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 34 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure setCurrentValue */
+
+/* 36 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 38 */ NdrFcLong( 0x0 ), /* 0 */
+/* 42 */ NdrFcShort( 0x4 ), /* 4 */
+/* 44 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 46 */ NdrFcShort( 0x0 ), /* 0 */
+/* 48 */ NdrFcShort( 0x8 ), /* 8 */
+/* 50 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 52 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 54 */ NdrFcShort( 0x0 ), /* 0 */
+/* 56 */ NdrFcShort( 0x1 ), /* 1 */
+/* 58 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter value */
+
+/* 60 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 62 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 64 */ NdrFcShort( 0x412 ), /* Type Offset=1042 */
+
+ /* Return value */
+
+/* 66 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 68 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 70 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_maximumValue */
+
+/* 72 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 74 */ NdrFcLong( 0x0 ), /* 0 */
+/* 78 */ NdrFcShort( 0x5 ), /* 5 */
+/* 80 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 82 */ NdrFcShort( 0x0 ), /* 0 */
+/* 84 */ NdrFcShort( 0x8 ), /* 8 */
+/* 86 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 88 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 90 */ NdrFcShort( 0x1 ), /* 1 */
+/* 92 */ NdrFcShort( 0x0 ), /* 0 */
+/* 94 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maximumValue */
+
+/* 96 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
+/* 98 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 100 */ NdrFcShort( 0x404 ), /* Type Offset=1028 */
+
+ /* Return value */
+
+/* 102 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 104 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 106 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_minimumValue */
+
+/* 108 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 110 */ NdrFcLong( 0x0 ), /* 0 */
+/* 114 */ NdrFcShort( 0x6 ), /* 6 */
+/* 116 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 118 */ NdrFcShort( 0x0 ), /* 0 */
+/* 120 */ NdrFcShort( 0x8 ), /* 8 */
+/* 122 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 124 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 126 */ NdrFcShort( 0x1 ), /* 1 */
+/* 128 */ NdrFcShort( 0x0 ), /* 0 */
+/* 130 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter minimumValue */
+
+/* 132 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
+/* 134 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 136 */ NdrFcShort( 0x404 ), /* Type Offset=1028 */
+
+ /* Return value */
+
+/* 138 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 140 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 142 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const AccessibleValue_MIDL_TYPE_FORMAT_STRING AccessibleValue__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 4 */ NdrFcShort( 0x400 ), /* Offset= 1024 (1028) */
+/* 6 */
+ 0x13, 0x0, /* FC_OP */
+/* 8 */ NdrFcShort( 0x3e8 ), /* Offset= 1000 (1008) */
+/* 10 */
+ 0x2b, /* FC_NON_ENCAPSULATED_UNION */
+ 0x9, /* FC_ULONG */
+/* 12 */ 0x7, /* Corr desc: FC_USHORT */
+ 0x0, /* */
+/* 14 */ NdrFcShort( 0xfff8 ), /* -8 */
+/* 16 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 18 */ NdrFcShort( 0x2 ), /* Offset= 2 (20) */
+/* 20 */ NdrFcShort( 0x10 ), /* 16 */
+/* 22 */ NdrFcShort( 0x2f ), /* 47 */
+/* 24 */ NdrFcLong( 0x14 ), /* 20 */
+/* 28 */ NdrFcShort( 0x800b ), /* Simple arm type: FC_HYPER */
+/* 30 */ NdrFcLong( 0x3 ), /* 3 */
+/* 34 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 36 */ NdrFcLong( 0x11 ), /* 17 */
+/* 40 */ NdrFcShort( 0x8001 ), /* Simple arm type: FC_BYTE */
+/* 42 */ NdrFcLong( 0x2 ), /* 2 */
+/* 46 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
+/* 48 */ NdrFcLong( 0x4 ), /* 4 */
+/* 52 */ NdrFcShort( 0x800a ), /* Simple arm type: FC_FLOAT */
+/* 54 */ NdrFcLong( 0x5 ), /* 5 */
+/* 58 */ NdrFcShort( 0x800c ), /* Simple arm type: FC_DOUBLE */
+/* 60 */ NdrFcLong( 0xb ), /* 11 */
+/* 64 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
+/* 66 */ NdrFcLong( 0xa ), /* 10 */
+/* 70 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 72 */ NdrFcLong( 0x6 ), /* 6 */
+/* 76 */ NdrFcShort( 0xe8 ), /* Offset= 232 (308) */
+/* 78 */ NdrFcLong( 0x7 ), /* 7 */
+/* 82 */ NdrFcShort( 0x800c ), /* Simple arm type: FC_DOUBLE */
+/* 84 */ NdrFcLong( 0x8 ), /* 8 */
+/* 88 */ NdrFcShort( 0xe2 ), /* Offset= 226 (314) */
+/* 90 */ NdrFcLong( 0xd ), /* 13 */
+/* 94 */ NdrFcShort( 0xf6 ), /* Offset= 246 (340) */
+/* 96 */ NdrFcLong( 0x9 ), /* 9 */
+/* 100 */ NdrFcShort( 0x102 ), /* Offset= 258 (358) */
+/* 102 */ NdrFcLong( 0x2000 ), /* 8192 */
+/* 106 */ NdrFcShort( 0x10e ), /* Offset= 270 (376) */
+/* 108 */ NdrFcLong( 0x24 ), /* 36 */
+/* 112 */ NdrFcShort( 0x336 ), /* Offset= 822 (934) */
+/* 114 */ NdrFcLong( 0x4024 ), /* 16420 */
+/* 118 */ NdrFcShort( 0x330 ), /* Offset= 816 (934) */
+/* 120 */ NdrFcLong( 0x4011 ), /* 16401 */
+/* 124 */ NdrFcShort( 0x32e ), /* Offset= 814 (938) */
+/* 126 */ NdrFcLong( 0x4002 ), /* 16386 */
+/* 130 */ NdrFcShort( 0x32c ), /* Offset= 812 (942) */
+/* 132 */ NdrFcLong( 0x4003 ), /* 16387 */
+/* 136 */ NdrFcShort( 0x32a ), /* Offset= 810 (946) */
+/* 138 */ NdrFcLong( 0x4014 ), /* 16404 */
+/* 142 */ NdrFcShort( 0x328 ), /* Offset= 808 (950) */
+/* 144 */ NdrFcLong( 0x4004 ), /* 16388 */
+/* 148 */ NdrFcShort( 0x326 ), /* Offset= 806 (954) */
+/* 150 */ NdrFcLong( 0x4005 ), /* 16389 */
+/* 154 */ NdrFcShort( 0x324 ), /* Offset= 804 (958) */
+/* 156 */ NdrFcLong( 0x400b ), /* 16395 */
+/* 160 */ NdrFcShort( 0x30e ), /* Offset= 782 (942) */
+/* 162 */ NdrFcLong( 0x400a ), /* 16394 */
+/* 166 */ NdrFcShort( 0x30c ), /* Offset= 780 (946) */
+/* 168 */ NdrFcLong( 0x4006 ), /* 16390 */
+/* 172 */ NdrFcShort( 0x316 ), /* Offset= 790 (962) */
+/* 174 */ NdrFcLong( 0x4007 ), /* 16391 */
+/* 178 */ NdrFcShort( 0x30c ), /* Offset= 780 (958) */
+/* 180 */ NdrFcLong( 0x4008 ), /* 16392 */
+/* 184 */ NdrFcShort( 0x30e ), /* Offset= 782 (966) */
+/* 186 */ NdrFcLong( 0x400d ), /* 16397 */
+/* 190 */ NdrFcShort( 0x30c ), /* Offset= 780 (970) */
+/* 192 */ NdrFcLong( 0x4009 ), /* 16393 */
+/* 196 */ NdrFcShort( 0x30a ), /* Offset= 778 (974) */
+/* 198 */ NdrFcLong( 0x6000 ), /* 24576 */
+/* 202 */ NdrFcShort( 0x308 ), /* Offset= 776 (978) */
+/* 204 */ NdrFcLong( 0x400c ), /* 16396 */
+/* 208 */ NdrFcShort( 0x306 ), /* Offset= 774 (982) */
+/* 210 */ NdrFcLong( 0x10 ), /* 16 */
+/* 214 */ NdrFcShort( 0x8002 ), /* Simple arm type: FC_CHAR */
+/* 216 */ NdrFcLong( 0x12 ), /* 18 */
+/* 220 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
+/* 222 */ NdrFcLong( 0x13 ), /* 19 */
+/* 226 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 228 */ NdrFcLong( 0x15 ), /* 21 */
+/* 232 */ NdrFcShort( 0x800b ), /* Simple arm type: FC_HYPER */
+/* 234 */ NdrFcLong( 0x16 ), /* 22 */
+/* 238 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 240 */ NdrFcLong( 0x17 ), /* 23 */
+/* 244 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 246 */ NdrFcLong( 0xe ), /* 14 */
+/* 250 */ NdrFcShort( 0x2e4 ), /* Offset= 740 (990) */
+/* 252 */ NdrFcLong( 0x400e ), /* 16398 */
+/* 256 */ NdrFcShort( 0x2e8 ), /* Offset= 744 (1000) */
+/* 258 */ NdrFcLong( 0x4010 ), /* 16400 */
+/* 262 */ NdrFcShort( 0x2e6 ), /* Offset= 742 (1004) */
+/* 264 */ NdrFcLong( 0x4012 ), /* 16402 */
+/* 268 */ NdrFcShort( 0x2a2 ), /* Offset= 674 (942) */
+/* 270 */ NdrFcLong( 0x4013 ), /* 16403 */
+/* 274 */ NdrFcShort( 0x2a0 ), /* Offset= 672 (946) */
+/* 276 */ NdrFcLong( 0x4015 ), /* 16405 */
+/* 280 */ NdrFcShort( 0x29e ), /* Offset= 670 (950) */
+/* 282 */ NdrFcLong( 0x4016 ), /* 16406 */
+/* 286 */ NdrFcShort( 0x294 ), /* Offset= 660 (946) */
+/* 288 */ NdrFcLong( 0x4017 ), /* 16407 */
+/* 292 */ NdrFcShort( 0x28e ), /* Offset= 654 (946) */
+/* 294 */ NdrFcLong( 0x0 ), /* 0 */
+/* 298 */ NdrFcShort( 0x0 ), /* Offset= 0 (298) */
+/* 300 */ NdrFcLong( 0x1 ), /* 1 */
+/* 304 */ NdrFcShort( 0x0 ), /* Offset= 0 (304) */
+/* 306 */ NdrFcShort( 0xffff ), /* Offset= -1 (305) */
+/* 308 */
+ 0x15, /* FC_STRUCT */
+ 0x7, /* 7 */
+/* 310 */ NdrFcShort( 0x8 ), /* 8 */
+/* 312 */ 0xb, /* FC_HYPER */
+ 0x5b, /* FC_END */
+/* 314 */
+ 0x13, 0x0, /* FC_OP */
+/* 316 */ NdrFcShort( 0xe ), /* Offset= 14 (330) */
+/* 318 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 320 */ NdrFcShort( 0x2 ), /* 2 */
+/* 322 */ 0x9, /* Corr desc: FC_ULONG */
+ 0x0, /* */
+/* 324 */ NdrFcShort( 0xfffc ), /* -4 */
+/* 326 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 328 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 330 */
+ 0x17, /* FC_CSTRUCT */
+ 0x3, /* 3 */
+/* 332 */ NdrFcShort( 0x8 ), /* 8 */
+/* 334 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (318) */
+/* 336 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 338 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 340 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 342 */ NdrFcLong( 0x0 ), /* 0 */
+/* 346 */ NdrFcShort( 0x0 ), /* 0 */
+/* 348 */ NdrFcShort( 0x0 ), /* 0 */
+/* 350 */ 0xc0, /* 192 */
+ 0x0, /* 0 */
+/* 352 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 354 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 356 */ 0x0, /* 0 */
+ 0x46, /* 70 */
+/* 358 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 360 */ NdrFcLong( 0x20400 ), /* 132096 */
+/* 364 */ NdrFcShort( 0x0 ), /* 0 */
+/* 366 */ NdrFcShort( 0x0 ), /* 0 */
+/* 368 */ 0xc0, /* 192 */
+ 0x0, /* 0 */
+/* 370 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 372 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 374 */ 0x0, /* 0 */
+ 0x46, /* 70 */
+/* 376 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 378 */ NdrFcShort( 0x2 ), /* Offset= 2 (380) */
+/* 380 */
+ 0x13, 0x0, /* FC_OP */
+/* 382 */ NdrFcShort( 0x216 ), /* Offset= 534 (916) */
+/* 384 */
+ 0x2a, /* FC_ENCAPSULATED_UNION */
+ 0x49, /* 73 */
+/* 386 */ NdrFcShort( 0x18 ), /* 24 */
+/* 388 */ NdrFcShort( 0xa ), /* 10 */
+/* 390 */ NdrFcLong( 0x8 ), /* 8 */
+/* 394 */ NdrFcShort( 0x5a ), /* Offset= 90 (484) */
+/* 396 */ NdrFcLong( 0xd ), /* 13 */
+/* 400 */ NdrFcShort( 0x7e ), /* Offset= 126 (526) */
+/* 402 */ NdrFcLong( 0x9 ), /* 9 */
+/* 406 */ NdrFcShort( 0x9e ), /* Offset= 158 (564) */
+/* 408 */ NdrFcLong( 0xc ), /* 12 */
+/* 412 */ NdrFcShort( 0xc8 ), /* Offset= 200 (612) */
+/* 414 */ NdrFcLong( 0x24 ), /* 36 */
+/* 418 */ NdrFcShort( 0x124 ), /* Offset= 292 (710) */
+/* 420 */ NdrFcLong( 0x800d ), /* 32781 */
+/* 424 */ NdrFcShort( 0x140 ), /* Offset= 320 (744) */
+/* 426 */ NdrFcLong( 0x10 ), /* 16 */
+/* 430 */ NdrFcShort( 0x15a ), /* Offset= 346 (776) */
+/* 432 */ NdrFcLong( 0x2 ), /* 2 */
+/* 436 */ NdrFcShort( 0x174 ), /* Offset= 372 (808) */
+/* 438 */ NdrFcLong( 0x3 ), /* 3 */
+/* 442 */ NdrFcShort( 0x18e ), /* Offset= 398 (840) */
+/* 444 */ NdrFcLong( 0x14 ), /* 20 */
+/* 448 */ NdrFcShort( 0x1a8 ), /* Offset= 424 (872) */
+/* 450 */ NdrFcShort( 0xffff ), /* Offset= -1 (449) */
+/* 452 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 454 */ NdrFcShort( 0x4 ), /* 4 */
+/* 456 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 458 */ NdrFcShort( 0x0 ), /* 0 */
+/* 460 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 462 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 464 */
+ 0x48, /* FC_VARIABLE_REPEAT */
+ 0x49, /* FC_FIXED_OFFSET */
+/* 466 */ NdrFcShort( 0x4 ), /* 4 */
+/* 468 */ NdrFcShort( 0x0 ), /* 0 */
+/* 470 */ NdrFcShort( 0x1 ), /* 1 */
+/* 472 */ NdrFcShort( 0x0 ), /* 0 */
+/* 474 */ NdrFcShort( 0x0 ), /* 0 */
+/* 476 */ 0x13, 0x0, /* FC_OP */
+/* 478 */ NdrFcShort( 0xff6c ), /* Offset= -148 (330) */
+/* 480 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 482 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 484 */
+ 0x16, /* FC_PSTRUCT */
+ 0x3, /* 3 */
+/* 486 */ NdrFcShort( 0x8 ), /* 8 */
+/* 488 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 490 */
+ 0x46, /* FC_NO_REPEAT */
+ 0x5c, /* FC_PAD */
+/* 492 */ NdrFcShort( 0x4 ), /* 4 */
+/* 494 */ NdrFcShort( 0x4 ), /* 4 */
+/* 496 */ 0x11, 0x0, /* FC_RP */
+/* 498 */ NdrFcShort( 0xffd2 ), /* Offset= -46 (452) */
+/* 500 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 502 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 504 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 506 */ NdrFcShort( 0x0 ), /* 0 */
+/* 508 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 510 */ NdrFcShort( 0x0 ), /* 0 */
+/* 512 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 514 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 518 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 520 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 522 */ NdrFcShort( 0xff4a ), /* Offset= -182 (340) */
+/* 524 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 526 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 528 */ NdrFcShort( 0x8 ), /* 8 */
+/* 530 */ NdrFcShort( 0x0 ), /* 0 */
+/* 532 */ NdrFcShort( 0x6 ), /* Offset= 6 (538) */
+/* 534 */ 0x8, /* FC_LONG */
+ 0x36, /* FC_POINTER */
+/* 536 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 538 */
+ 0x11, 0x0, /* FC_RP */
+/* 540 */ NdrFcShort( 0xffdc ), /* Offset= -36 (504) */
+/* 542 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 544 */ NdrFcShort( 0x0 ), /* 0 */
+/* 546 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 548 */ NdrFcShort( 0x0 ), /* 0 */
+/* 550 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 552 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 556 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 558 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 560 */ NdrFcShort( 0xff36 ), /* Offset= -202 (358) */
+/* 562 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 564 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 566 */ NdrFcShort( 0x8 ), /* 8 */
+/* 568 */ NdrFcShort( 0x0 ), /* 0 */
+/* 570 */ NdrFcShort( 0x6 ), /* Offset= 6 (576) */
+/* 572 */ 0x8, /* FC_LONG */
+ 0x36, /* FC_POINTER */
+/* 574 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 576 */
+ 0x11, 0x0, /* FC_RP */
+/* 578 */ NdrFcShort( 0xffdc ), /* Offset= -36 (542) */
+/* 580 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 582 */ NdrFcShort( 0x4 ), /* 4 */
+/* 584 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 586 */ NdrFcShort( 0x0 ), /* 0 */
+/* 588 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 590 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 592 */
+ 0x48, /* FC_VARIABLE_REPEAT */
+ 0x49, /* FC_FIXED_OFFSET */
+/* 594 */ NdrFcShort( 0x4 ), /* 4 */
+/* 596 */ NdrFcShort( 0x0 ), /* 0 */
+/* 598 */ NdrFcShort( 0x1 ), /* 1 */
+/* 600 */ NdrFcShort( 0x0 ), /* 0 */
+/* 602 */ NdrFcShort( 0x0 ), /* 0 */
+/* 604 */ 0x13, 0x0, /* FC_OP */
+/* 606 */ NdrFcShort( 0x192 ), /* Offset= 402 (1008) */
+/* 608 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 610 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 612 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 614 */ NdrFcShort( 0x8 ), /* 8 */
+/* 616 */ NdrFcShort( 0x0 ), /* 0 */
+/* 618 */ NdrFcShort( 0x6 ), /* Offset= 6 (624) */
+/* 620 */ 0x8, /* FC_LONG */
+ 0x36, /* FC_POINTER */
+/* 622 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 624 */
+ 0x11, 0x0, /* FC_RP */
+/* 626 */ NdrFcShort( 0xffd2 ), /* Offset= -46 (580) */
+/* 628 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 630 */ NdrFcLong( 0x2f ), /* 47 */
+/* 634 */ NdrFcShort( 0x0 ), /* 0 */
+/* 636 */ NdrFcShort( 0x0 ), /* 0 */
+/* 638 */ 0xc0, /* 192 */
+ 0x0, /* 0 */
+/* 640 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 642 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 644 */ 0x0, /* 0 */
+ 0x46, /* 70 */
+/* 646 */
+ 0x1b, /* FC_CARRAY */
+ 0x0, /* 0 */
+/* 648 */ NdrFcShort( 0x1 ), /* 1 */
+/* 650 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 652 */ NdrFcShort( 0x4 ), /* 4 */
+/* 654 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 656 */ 0x1, /* FC_BYTE */
+ 0x5b, /* FC_END */
+/* 658 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 660 */ NdrFcShort( 0x10 ), /* 16 */
+/* 662 */ NdrFcShort( 0x0 ), /* 0 */
+/* 664 */ NdrFcShort( 0xa ), /* Offset= 10 (674) */
+/* 666 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 668 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 670 */ NdrFcShort( 0xffd6 ), /* Offset= -42 (628) */
+/* 672 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 674 */
+ 0x13, 0x0, /* FC_OP */
+/* 676 */ NdrFcShort( 0xffe2 ), /* Offset= -30 (646) */
+/* 678 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 680 */ NdrFcShort( 0x4 ), /* 4 */
+/* 682 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 684 */ NdrFcShort( 0x0 ), /* 0 */
+/* 686 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 688 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 690 */
+ 0x48, /* FC_VARIABLE_REPEAT */
+ 0x49, /* FC_FIXED_OFFSET */
+/* 692 */ NdrFcShort( 0x4 ), /* 4 */
+/* 694 */ NdrFcShort( 0x0 ), /* 0 */
+/* 696 */ NdrFcShort( 0x1 ), /* 1 */
+/* 698 */ NdrFcShort( 0x0 ), /* 0 */
+/* 700 */ NdrFcShort( 0x0 ), /* 0 */
+/* 702 */ 0x13, 0x0, /* FC_OP */
+/* 704 */ NdrFcShort( 0xffd2 ), /* Offset= -46 (658) */
+/* 706 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 708 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 710 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 712 */ NdrFcShort( 0x8 ), /* 8 */
+/* 714 */ NdrFcShort( 0x0 ), /* 0 */
+/* 716 */ NdrFcShort( 0x6 ), /* Offset= 6 (722) */
+/* 718 */ 0x8, /* FC_LONG */
+ 0x36, /* FC_POINTER */
+/* 720 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 722 */
+ 0x11, 0x0, /* FC_RP */
+/* 724 */ NdrFcShort( 0xffd2 ), /* Offset= -46 (678) */
+/* 726 */
+ 0x1d, /* FC_SMFARRAY */
+ 0x0, /* 0 */
+/* 728 */ NdrFcShort( 0x8 ), /* 8 */
+/* 730 */ 0x1, /* FC_BYTE */
+ 0x5b, /* FC_END */
+/* 732 */
+ 0x15, /* FC_STRUCT */
+ 0x3, /* 3 */
+/* 734 */ NdrFcShort( 0x10 ), /* 16 */
+/* 736 */ 0x8, /* FC_LONG */
+ 0x6, /* FC_SHORT */
+/* 738 */ 0x6, /* FC_SHORT */
+ 0x4c, /* FC_EMBEDDED_COMPLEX */
+/* 740 */ 0x0, /* 0 */
+ NdrFcShort( 0xfff1 ), /* Offset= -15 (726) */
+ 0x5b, /* FC_END */
+/* 744 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 746 */ NdrFcShort( 0x18 ), /* 24 */
+/* 748 */ NdrFcShort( 0x0 ), /* 0 */
+/* 750 */ NdrFcShort( 0xa ), /* Offset= 10 (760) */
+/* 752 */ 0x8, /* FC_LONG */
+ 0x36, /* FC_POINTER */
+/* 754 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 756 */ NdrFcShort( 0xffe8 ), /* Offset= -24 (732) */
+/* 758 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 760 */
+ 0x11, 0x0, /* FC_RP */
+/* 762 */ NdrFcShort( 0xfefe ), /* Offset= -258 (504) */
+/* 764 */
+ 0x1b, /* FC_CARRAY */
+ 0x0, /* 0 */
+/* 766 */ NdrFcShort( 0x1 ), /* 1 */
+/* 768 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 770 */ NdrFcShort( 0x0 ), /* 0 */
+/* 772 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 774 */ 0x1, /* FC_BYTE */
+ 0x5b, /* FC_END */
+/* 776 */
+ 0x16, /* FC_PSTRUCT */
+ 0x3, /* 3 */
+/* 778 */ NdrFcShort( 0x8 ), /* 8 */
+/* 780 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 782 */
+ 0x46, /* FC_NO_REPEAT */
+ 0x5c, /* FC_PAD */
+/* 784 */ NdrFcShort( 0x4 ), /* 4 */
+/* 786 */ NdrFcShort( 0x4 ), /* 4 */
+/* 788 */ 0x13, 0x0, /* FC_OP */
+/* 790 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (764) */
+/* 792 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 794 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 796 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 798 */ NdrFcShort( 0x2 ), /* 2 */
+/* 800 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 802 */ NdrFcShort( 0x0 ), /* 0 */
+/* 804 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 806 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 808 */
+ 0x16, /* FC_PSTRUCT */
+ 0x3, /* 3 */
+/* 810 */ NdrFcShort( 0x8 ), /* 8 */
+/* 812 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 814 */
+ 0x46, /* FC_NO_REPEAT */
+ 0x5c, /* FC_PAD */
+/* 816 */ NdrFcShort( 0x4 ), /* 4 */
+/* 818 */ NdrFcShort( 0x4 ), /* 4 */
+/* 820 */ 0x13, 0x0, /* FC_OP */
+/* 822 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (796) */
+/* 824 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 826 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 828 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 830 */ NdrFcShort( 0x4 ), /* 4 */
+/* 832 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 834 */ NdrFcShort( 0x0 ), /* 0 */
+/* 836 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 838 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 840 */
+ 0x16, /* FC_PSTRUCT */
+ 0x3, /* 3 */
+/* 842 */ NdrFcShort( 0x8 ), /* 8 */
+/* 844 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 846 */
+ 0x46, /* FC_NO_REPEAT */
+ 0x5c, /* FC_PAD */
+/* 848 */ NdrFcShort( 0x4 ), /* 4 */
+/* 850 */ NdrFcShort( 0x4 ), /* 4 */
+/* 852 */ 0x13, 0x0, /* FC_OP */
+/* 854 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (828) */
+/* 856 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 858 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 860 */
+ 0x1b, /* FC_CARRAY */
+ 0x7, /* 7 */
+/* 862 */ NdrFcShort( 0x8 ), /* 8 */
+/* 864 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 866 */ NdrFcShort( 0x0 ), /* 0 */
+/* 868 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 870 */ 0xb, /* FC_HYPER */
+ 0x5b, /* FC_END */
+/* 872 */
+ 0x16, /* FC_PSTRUCT */
+ 0x3, /* 3 */
+/* 874 */ NdrFcShort( 0x8 ), /* 8 */
+/* 876 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 878 */
+ 0x46, /* FC_NO_REPEAT */
+ 0x5c, /* FC_PAD */
+/* 880 */ NdrFcShort( 0x4 ), /* 4 */
+/* 882 */ NdrFcShort( 0x4 ), /* 4 */
+/* 884 */ 0x13, 0x0, /* FC_OP */
+/* 886 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (860) */
+/* 888 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 890 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 892 */
+ 0x15, /* FC_STRUCT */
+ 0x3, /* 3 */
+/* 894 */ NdrFcShort( 0x8 ), /* 8 */
+/* 896 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 898 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 900 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 902 */ NdrFcShort( 0x8 ), /* 8 */
+/* 904 */ 0x7, /* Corr desc: FC_USHORT */
+ 0x0, /* */
+/* 906 */ NdrFcShort( 0xffd8 ), /* -40 */
+/* 908 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 910 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 912 */ NdrFcShort( 0xffec ), /* Offset= -20 (892) */
+/* 914 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 916 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 918 */ NdrFcShort( 0x28 ), /* 40 */
+/* 920 */ NdrFcShort( 0xffec ), /* Offset= -20 (900) */
+/* 922 */ NdrFcShort( 0x0 ), /* Offset= 0 (922) */
+/* 924 */ 0x6, /* FC_SHORT */
+ 0x6, /* FC_SHORT */
+/* 926 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 928 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 930 */ NdrFcShort( 0xfdde ), /* Offset= -546 (384) */
+/* 932 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 934 */
+ 0x13, 0x0, /* FC_OP */
+/* 936 */ NdrFcShort( 0xfeea ), /* Offset= -278 (658) */
+/* 938 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 940 */ 0x1, /* FC_BYTE */
+ 0x5c, /* FC_PAD */
+/* 942 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 944 */ 0x6, /* FC_SHORT */
+ 0x5c, /* FC_PAD */
+/* 946 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 948 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+/* 950 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 952 */ 0xb, /* FC_HYPER */
+ 0x5c, /* FC_PAD */
+/* 954 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 956 */ 0xa, /* FC_FLOAT */
+ 0x5c, /* FC_PAD */
+/* 958 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 960 */ 0xc, /* FC_DOUBLE */
+ 0x5c, /* FC_PAD */
+/* 962 */
+ 0x13, 0x0, /* FC_OP */
+/* 964 */ NdrFcShort( 0xfd70 ), /* Offset= -656 (308) */
+/* 966 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 968 */ NdrFcShort( 0xfd72 ), /* Offset= -654 (314) */
+/* 970 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 972 */ NdrFcShort( 0xfd88 ), /* Offset= -632 (340) */
+/* 974 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 976 */ NdrFcShort( 0xfd96 ), /* Offset= -618 (358) */
+/* 978 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 980 */ NdrFcShort( 0xfda4 ), /* Offset= -604 (376) */
+/* 982 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 984 */ NdrFcShort( 0x2 ), /* Offset= 2 (986) */
+/* 986 */
+ 0x13, 0x0, /* FC_OP */
+/* 988 */ NdrFcShort( 0x14 ), /* Offset= 20 (1008) */
+/* 990 */
+ 0x15, /* FC_STRUCT */
+ 0x7, /* 7 */
+/* 992 */ NdrFcShort( 0x10 ), /* 16 */
+/* 994 */ 0x6, /* FC_SHORT */
+ 0x1, /* FC_BYTE */
+/* 996 */ 0x1, /* FC_BYTE */
+ 0x8, /* FC_LONG */
+/* 998 */ 0xb, /* FC_HYPER */
+ 0x5b, /* FC_END */
+/* 1000 */
+ 0x13, 0x0, /* FC_OP */
+/* 1002 */ NdrFcShort( 0xfff4 ), /* Offset= -12 (990) */
+/* 1004 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 1006 */ 0x2, /* FC_CHAR */
+ 0x5c, /* FC_PAD */
+/* 1008 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x7, /* 7 */
+/* 1010 */ NdrFcShort( 0x20 ), /* 32 */
+/* 1012 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1014 */ NdrFcShort( 0x0 ), /* Offset= 0 (1014) */
+/* 1016 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 1018 */ 0x6, /* FC_SHORT */
+ 0x6, /* FC_SHORT */
+/* 1020 */ 0x6, /* FC_SHORT */
+ 0x6, /* FC_SHORT */
+/* 1022 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 1024 */ NdrFcShort( 0xfc0a ), /* Offset= -1014 (10) */
+/* 1026 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 1028 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 1030 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1032 */ NdrFcShort( 0x10 ), /* 16 */
+/* 1034 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1036 */ NdrFcShort( 0xfbfa ), /* Offset= -1030 (6) */
+/* 1038 */
+ 0x12, 0x0, /* FC_UP */
+/* 1040 */ NdrFcShort( 0xffe0 ), /* Offset= -32 (1008) */
+/* 1042 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 1044 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1046 */ NdrFcShort( 0x10 ), /* 16 */
+/* 1048 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1050 */ NdrFcShort( 0xfff4 ), /* Offset= -12 (1038) */
+
+ 0x0
+ }
+ };
+
+static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
+ {
+
+ {
+ VARIANT_UserSize
+ ,VARIANT_UserMarshal
+ ,VARIANT_UserUnmarshal
+ ,VARIANT_UserFree
+ }
+
+ };
+
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IAccessibleValue, ver. 0.0,
+ GUID={0x35855B5B,0xC566,0x4fd0,{0xA7,0xB1,0xE6,0x54,0x65,0x60,0x03,0x94}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleValue_FormatStringOffsetTable[] =
+ {
+ 0,
+ 36,
+ 72,
+ 108
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleValue_ProxyInfo =
+ {
+ &Object_StubDesc,
+ AccessibleValue__MIDL_ProcFormatString.Format,
+ &IAccessibleValue_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleValue_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ AccessibleValue__MIDL_ProcFormatString.Format,
+ &IAccessibleValue_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(7) _IAccessibleValueProxyVtbl =
+{
+ &IAccessibleValue_ProxyInfo,
+ &IID_IAccessibleValue,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleValue::get_currentValue */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleValue::setCurrentValue */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleValue::get_maximumValue */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleValue::get_minimumValue */
+};
+
+const CInterfaceStubVtbl _IAccessibleValueStubVtbl =
+{
+ &IID_IAccessibleValue,
+ &IAccessibleValue_ServerInfo,
+ 7,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ AccessibleValue__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x700022b, /* MIDL Version 7.0.555 */
+ 0,
+ UserMarshalRoutines,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _AccessibleValue_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_IAccessibleValueProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _AccessibleValue_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_IAccessibleValueStubVtbl,
+ 0
+};
+
+PCInterfaceName const _AccessibleValue_InterfaceNamesList[] =
+{
+ "IAccessibleValue",
+ 0
+};
+
+
+#define _AccessibleValue_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleValue, pIID, n)
+
+int __stdcall _AccessibleValue_IID_Lookup( const IID * pIID, int * pIndex )
+{
+
+ if(!_AccessibleValue_CHECK_IID(0))
+ {
+ *pIndex = 0;
+ return 1;
+ }
+
+ return 0;
+}
+
+const ExtendedProxyFileInfo AccessibleValue_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _AccessibleValue_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _AccessibleValue_StubVtblList,
+ (const PCInterfaceName * ) & _AccessibleValue_InterfaceNamesList,
+ 0, /* no delegation */
+ & _AccessibleValue_IID_Lookup,
+ 1,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#pragma optimize("", on )
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* !defined(_M_IA64) && !defined(_M_AMD64)*/
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/IA2CommonTypes.h b/src/3rdparty/iaccessible2/generated/x86/IA2CommonTypes.h
new file mode 100644
index 0000000000..7d1df601e6
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/IA2CommonTypes.h
@@ -0,0 +1,102 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:56 2012
+ */
+/* Compiler settings for IA2CommonTypes.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+
+#ifndef __IA2CommonTypes_h__
+#define __IA2CommonTypes_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/* interface __MIDL_itf_IA2CommonTypes_0000_0000 */
+/* [local] */
+
+
+enum IA2ScrollType
+ { IA2_SCROLL_TYPE_TOP_LEFT = 0,
+ IA2_SCROLL_TYPE_BOTTOM_RIGHT = ( IA2_SCROLL_TYPE_TOP_LEFT + 1 ) ,
+ IA2_SCROLL_TYPE_TOP_EDGE = ( IA2_SCROLL_TYPE_BOTTOM_RIGHT + 1 ) ,
+ IA2_SCROLL_TYPE_BOTTOM_EDGE = ( IA2_SCROLL_TYPE_TOP_EDGE + 1 ) ,
+ IA2_SCROLL_TYPE_LEFT_EDGE = ( IA2_SCROLL_TYPE_BOTTOM_EDGE + 1 ) ,
+ IA2_SCROLL_TYPE_RIGHT_EDGE = ( IA2_SCROLL_TYPE_LEFT_EDGE + 1 ) ,
+ IA2_SCROLL_TYPE_ANYWHERE = ( IA2_SCROLL_TYPE_RIGHT_EDGE + 1 )
+ } ;
+
+enum IA2CoordinateType
+ { IA2_COORDTYPE_SCREEN_RELATIVE = 0,
+ IA2_COORDTYPE_PARENT_RELATIVE = ( IA2_COORDTYPE_SCREEN_RELATIVE + 1 )
+ } ;
+
+enum IA2TextSpecialOffsets
+ { IA2_TEXT_OFFSET_LENGTH = -1,
+ IA2_TEXT_OFFSET_CARET = -2
+ } ;
+
+enum IA2TableModelChangeType
+ { IA2_TABLE_MODEL_CHANGE_INSERT = 0,
+ IA2_TABLE_MODEL_CHANGE_DELETE = ( IA2_TABLE_MODEL_CHANGE_INSERT + 1 ) ,
+ IA2_TABLE_MODEL_CHANGE_UPDATE = ( IA2_TABLE_MODEL_CHANGE_DELETE + 1 )
+ } ;
+typedef struct IA2TableModelChange
+ {
+ enum IA2TableModelChangeType type;
+ long firstRow;
+ long lastRow;
+ long firstColumn;
+ long lastColumn;
+ } IA2TableModelChange;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_IA2CommonTypes_0000_0000_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_IA2CommonTypes_0000_0000_v0_0_s_ifspec;
+
+/* Additional Prototypes for ALL interfaces */
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/IA2TypeLibrary.h b/src/3rdparty/iaccessible2/generated/x86/IA2TypeLibrary.h
new file mode 100644
index 0000000000..e80b2722f9
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/IA2TypeLibrary.h
@@ -0,0 +1,103 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:56 2012
+ */
+/* Compiler settings for IA2TypeLibrary.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+
+#ifndef __IA2TypeLibrary_h__
+#define __IA2TypeLibrary_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/* interface __MIDL_itf_IA2TypeLibrary_0000_0000 */
+/* [local] */
+
+
+// Type Library Definitions
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_IA2TypeLibrary_0000_0000_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_IA2TypeLibrary_0000_0000_v0_0_s_ifspec;
+
+
+#ifndef __IAccessible2Lib_LIBRARY_DEFINED__
+#define __IAccessible2Lib_LIBRARY_DEFINED__
+
+/* library IAccessible2Lib */
+/* [hidden][version][helpstring][uuid] */
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+EXTERN_C const IID LIBID_IAccessible2Lib;
+#endif /* __IAccessible2Lib_LIBRARY_DEFINED__ */
+
+/* Additional Prototypes for ALL interfaces */
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/IA2TypeLibrary.tlb b/src/3rdparty/iaccessible2/generated/x86/IA2TypeLibrary.tlb
new file mode 100644
index 0000000000..b4c56c7aaa
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/IA2TypeLibrary.tlb
Binary files differ
diff --git a/src/3rdparty/iaccessible2/generated/x86/IA2TypeLibrary_i.c b/src/3rdparty/iaccessible2/generated/x86/IA2TypeLibrary_i.c
new file mode 100644
index 0000000000..1bf9d5159d
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/IA2TypeLibrary_i.c
@@ -0,0 +1,79 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Thu Mar 08 14:53:56 2012
+ */
+/* Compiler settings for IA2TypeLibrary.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, LIBID_IAccessible2Lib,0xc974e070,0x3787,0x490a,0x87,0xb0,0xe3,0x33,0xb0,0x6c,0xa1,0xe2);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/dlldata.c b/src/3rdparty/iaccessible2/generated/x86/dlldata.c
new file mode 100644
index 0000000000..e1e15a1fc0
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/dlldata.c
@@ -0,0 +1,64 @@
+/*********************************************************
+ DllData file -- generated by MIDL compiler
+
+ DO NOT ALTER THIS FILE
+
+ This file is regenerated by MIDL on every IDL file compile.
+
+ To completely reconstruct this file, delete it and rerun MIDL
+ on all the IDL files in this DLL, specifying this file for the
+ /dlldata command line option
+
+*********************************************************/
+
+#define PROXY_DELEGATION
+
+#include <rpcproxy.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EXTERN_PROXY_FILE( Accessible2 )
+EXTERN_PROXY_FILE( AccessibleAction )
+EXTERN_PROXY_FILE( AccessibleApplication )
+EXTERN_PROXY_FILE( AccessibleComponent )
+EXTERN_PROXY_FILE( AccessibleEditableText )
+EXTERN_PROXY_FILE( AccessibleHyperlink )
+EXTERN_PROXY_FILE( AccessibleHypertext )
+EXTERN_PROXY_FILE( AccessibleImage )
+EXTERN_PROXY_FILE( AccessibleRelation )
+EXTERN_PROXY_FILE( AccessibleTable )
+EXTERN_PROXY_FILE( AccessibleTable2 )
+EXTERN_PROXY_FILE( AccessibleTableCell )
+EXTERN_PROXY_FILE( AccessibleText )
+EXTERN_PROXY_FILE( AccessibleValue )
+
+
+PROXYFILE_LIST_START
+/* Start of list */
+ REFERENCE_PROXY_FILE( Accessible2 ),
+ REFERENCE_PROXY_FILE( AccessibleAction ),
+ REFERENCE_PROXY_FILE( AccessibleApplication ),
+ REFERENCE_PROXY_FILE( AccessibleComponent ),
+ REFERENCE_PROXY_FILE( AccessibleEditableText ),
+ REFERENCE_PROXY_FILE( AccessibleHyperlink ),
+ REFERENCE_PROXY_FILE( AccessibleHypertext ),
+ REFERENCE_PROXY_FILE( AccessibleImage ),
+ REFERENCE_PROXY_FILE( AccessibleRelation ),
+ REFERENCE_PROXY_FILE( AccessibleTable ),
+ REFERENCE_PROXY_FILE( AccessibleTable2 ),
+ REFERENCE_PROXY_FILE( AccessibleTableCell ),
+ REFERENCE_PROXY_FILE( AccessibleText ),
+ REFERENCE_PROXY_FILE( AccessibleValue ),
+/* End of list */
+PROXYFILE_LIST_END
+
+
+DLLDATA_ROUTINES( aProxyFileList, GET_DLL_CLSID )
+
+#ifdef __cplusplus
+} /*extern "C" */
+#endif
+
+/* end of generated dlldata file */
diff --git a/src/3rdparty/iaccessible2/iaccessible2.pri b/src/3rdparty/iaccessible2/iaccessible2.pri
new file mode 100644
index 0000000000..f89655a9a0
--- /dev/null
+++ b/src/3rdparty/iaccessible2/iaccessible2.pri
@@ -0,0 +1,88 @@
+
+ARCH_SUBDIR=x86
+contains(QMAKE_TARGET.arch, x86_64): {
+ ARCH_SUBDIR=amd64
+} else {
+ !contains(QMAKE_TARGET.arch, x86): message("ERROR: Could not detect architecture from QMAKE_TARGET.arch")
+}
+
+MIDL_GENERATED = $$PWD/generated/$${ARCH_SUBDIR}
+
+INCLUDEPATH += $$MIDL_GENERATED
+
+SOURCES += $${MIDL_GENERATED}/Accessible2_p.c \
+ $${MIDL_GENERATED}/AccessibleAction_p.c \
+ $${MIDL_GENERATED}/AccessibleApplication_p.c \
+ $${MIDL_GENERATED}/AccessibleComponent_p.c \
+ $${MIDL_GENERATED}/AccessibleEditableText_p.c \
+ $${MIDL_GENERATED}/AccessibleHyperlink_p.c \
+ $${MIDL_GENERATED}/AccessibleHypertext_p.c \
+ $${MIDL_GENERATED}/AccessibleImage_p.c \
+ $${MIDL_GENERATED}/AccessibleRelation_p.c \
+ $${MIDL_GENERATED}/AccessibleTable2_p.c \
+ $${MIDL_GENERATED}/AccessibleTableCell_p.c \
+ $${MIDL_GENERATED}/AccessibleTable_p.c \
+ $${MIDL_GENERATED}/AccessibleText_p.c \
+ $${MIDL_GENERATED}/AccessibleValue_p.c
+
+SOURCES += $${MIDL_GENERATED}/Accessible2_i.c \
+ $${MIDL_GENERATED}/AccessibleAction_i.c \
+ $${MIDL_GENERATED}/AccessibleApplication_i.c \
+ $${MIDL_GENERATED}/AccessibleComponent_i.c \
+ $${MIDL_GENERATED}/AccessibleEditableText_i.c \
+ $${MIDL_GENERATED}/AccessibleHyperlink_i.c \
+ $${MIDL_GENERATED}/AccessibleHypertext_i.c \
+ $${MIDL_GENERATED}/AccessibleImage_i.c \
+ $${MIDL_GENERATED}/AccessibleRelation_i.c \
+ $${MIDL_GENERATED}/AccessibleTable2_i.c \
+ $${MIDL_GENERATED}/AccessibleTableCell_i.c \
+ $${MIDL_GENERATED}/AccessibleTable_i.c \
+ $${MIDL_GENERATED}/AccessibleText_i.c \
+ $${MIDL_GENERATED}/AccessibleValue_i.c
+
+SOURCES += $${MIDL_GENERATED}/IA2TypeLibrary_i.c \
+ $${MIDL_GENERATED}/dlldata.c
+
+HEADERS += $${MIDL_GENERATED}/Accessible2.h \
+ $${MIDL_GENERATED}/AccessibleAction.h \
+ $${MIDL_GENERATED}/AccessibleApplication.h \
+ $${MIDL_GENERATED}/AccessibleComponent.h \
+ $${MIDL_GENERATED}/AccessibleEditableText.h \
+ $${MIDL_GENERATED}/AccessibleEventID.h \
+ $${MIDL_GENERATED}/AccessibleHyperlink.h \
+ $${MIDL_GENERATED}/AccessibleHypertext.h \
+ $${MIDL_GENERATED}/AccessibleImage.h \
+ $${MIDL_GENERATED}/AccessibleRelation.h \
+ $${MIDL_GENERATED}/AccessibleRole.h \
+ $${MIDL_GENERATED}/AccessibleStates.h \
+ $${MIDL_GENERATED}/AccessibleTable.h \
+ $${MIDL_GENERATED}/AccessibleTable2.h \
+ $${MIDL_GENERATED}/AccessibleTableCell.h \
+ $${MIDL_GENERATED}/AccessibleText.h \
+ $${MIDL_GENERATED}/AccessibleValue.h \
+ $${MIDL_GENERATED}/IA2CommonTypes.h \
+ $${MIDL_GENERATED}/IA2TypeLibrary.h
+
+
+OTHER_FILES = \
+ $$PWD/idl/Accessible2.idl \
+ $$PWD/idl/AccessibleAction.idl \
+ $$PWD/idl/AccessibleApplication.idl \
+ $$PWD/idl/AccessibleComponent.idl \
+ $$PWD/idl/AccessibleEditableText.idl \
+ $$PWD/idl/AccessibleEventID.idl \
+ $$PWD/idl/AccessibleHyperlink.idl \
+ $$PWD/idl/AccessibleHypertext.idl \
+ $$PWD/idl/AccessibleImage.idl \
+ $$PWD/idl/AccessibleRelation.idl \
+ $$PWD/idl/AccessibleRole.idl \
+ $$PWD/idl/AccessibleStates.idl \
+ $$PWD/idl/AccessibleTable.idl \
+ $$PWD/idl/AccessibleTable2.idl \
+ $$PWD/idl/AccessibleTableCell.idl \
+ $$PWD/idl/AccessibleText.idl \
+ $$PWD/idl/AccessibleValue.idl \
+ $$PWD/idl/IA2CommonTypes.idl \
+ $$PWD/idl/IA2TypeLibrary.idl
+
+LIBS += -lRpcRT4
diff --git a/src/3rdparty/iaccessible2/idl/Accessible2.idl b/src/3rdparty/iaccessible2/idl/Accessible2.idl
new file mode 100644
index 0000000000..6a0d750483
--- /dev/null
+++ b/src/3rdparty/iaccessible2/idl/Accessible2.idl
@@ -0,0 +1,679 @@
+/*************************************************************************
+ *
+ * File Name (Accessible2.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2010 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+/** @mainpage
+
+ @section _interfaces Interfaces
+ IAccessible2\n
+ IAccessibleAction\n
+ IAccessibleApplication\n
+ IAccessibleComponent\n
+ IAccessibleHypertext\n
+ IAccessibleHyperlink\n
+ IAccessibleImage\n
+ IAccessibleRelation\n
+ IAccessibleTable [Deprecated]\n
+ IAccessibleTable2\n
+ IAccessibleTableCell\n
+ IAccessibleText\n
+ IAccessibleEditableText\n
+ IAccessibleValue
+
+ @section _structs Structs
+ IA2Locale\n
+ IA2TableModelChange\n
+ IA2TextSegment
+
+ @section _enums Enums
+ ::IA2CoordinateType values define the requested coordinate type (screen or parent window).\n
+ ::IA2EventID values identify events.\n
+ ::IA2Role values defines roles which are in addition to the existing MSAA roles.\n
+ ::IA2ScrollType values define where to place an object or substring on the screen.\n
+ ::IA2States values define states which are in addition to the existing MSAA states.\n
+ ::IA2TableModelChangeType values describe the kinds of changes made to a table (insert, delete, update).\n
+ ::IA2TextBoundaryType values define the requested text unit (character, word, sentence, line, paragraph).\n
+ ::IA2TextSpecialOffsets values define special offsets for use in the text interfaces.
+
+ @section _constants Constants
+ @ref grpRelations
+
+ @section _misc Miscellaneous
+ @ref _licensePage "BSD License"\n
+ @ref _generalInfo "General Information"\n
+
+ @page _licensePage BSD License
+ %IAccessible2 IDL Specification
+
+ Copyright (c) 2007, 2010 Linux Foundation\n
+ Copyright (c) 2006 IBM Corporation\n
+ Copyright (c) 2000, 2006 Sun Microsystems, Inc.\n
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials
+ provided with the distribution.
+
+ 3. Neither the name of the Linux Foundation nor the names of its
+ contributors may be used to endorse or promote products
+ derived from this software without specific prior written
+ permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This BSD License conforms to the Open Source Initiative "Simplified
+ BSD License" as published at:
+ http://www.opensource.org/licenses/bsd-license.php
+
+ %IAccessible2 is a trademark of the Linux Foundation. The %IAccessible2
+ mark may be used in accordance with the
+ <a href="http://www.linuxfoundation.org/collaborate/workgroups/accessibility/trademark-policy">
+ Linux Foundation Trademark Policy</a> to indicate compliance with the %IAccessible2 specification.
+
+ @page _generalInfo General Information
+ The following information is applicable to two or more interfaces.
+
+ @ref _errors\n
+ @ref _memory\n
+ &nbsp;&nbsp;@ref _arrayConsideration\n
+ @ref _indexes\n
+ @ref _enums\n
+ @ref _specialOffsets\n
+ @ref _dicoveringInterfaces\n
+ @ref _changingInterfaces\n
+ @ref _applicationInfo\n
+ @ref _childIDs\n
+ @ref _variants\n
+ @ref _iaaction-iahyperlink\n
+ @ref _trademark
+
+ @section _errors Error Handling
+ HRESULT values are defined by the Microsoft&reg; Win32&reg; API. For more information, refer to
+ <a href="http://msdn2.microsoft.com/en-us/library/bb401631.aspx">Interpreting HRESULT Values</a>
+ in MSDN&reg;.
+
+ Note that the S_FALSE return value is considered a non-error value and the
+ SUCCEEDED macro will return TRUE. S_FALSE is used when there is no failure
+ but there was nothing valid to return, e.g. in IAccessible2::attributes when
+ there are no attributes. When S_FALSE is returned [out] pointer types should
+ be NULL and [out] longs should generally be 0, but sometimes -1 is used such
+ as IAccessible2::indexInParent, IAccessibleText::caretOffset, and
+ IAccessibleHypertext::hyperlinkIndex.
+
+ Note that for BSTR [out] variables common COM practice is that the server does
+ the SysAllocString and the client does the SysFreeString. Also note that when
+ NULL is returned there is no need for the client to call SysFreeString. Please
+ refer to the documentation for each method for more details regarding error handling.
+
+ @section _memory Memory Management
+ The following memory management issues should be considered:
+ @li Although [out] BSTR variables are declared by the client, their space is
+ allocated by the server. They need to be freed with SysFreeString by the
+ client at end of life; the same is true when BSTRs are used in structs or
+ arrays which are passed to the server.
+ @li If there is no valid [out] BSTR to return, the server should return S_FALSE and
+ assign NULL to the output, e.g. *theOutBSTR = NULL;.
+ @li COM interfaces need to be referenced with AddRef when used and dereferenced
+ with Release at end of life.
+ @li Single [out] longs, HWNDs, booleans, and structs are declared by the caller
+ and passed by reference. The marshaller does all the memory management.
+
+ The following articles may be helpful for understanding memory management issues:
+ @li An article by Don Box in a
+ <a href="http://www.microsoft.com/msj/1196/activex1196.aspx">Q & A section</a>
+ of the November 1996 edition of the Microsoft Systems Journal.
+ @li A posting to a CodeGuru forum,
+ <a href="http://www.codeguru.com/forum/showthread.php?t=364511">Windows SDK
+ String: What are the rules for BSTR allocation and deallocation?</a>
+
+ @subsection _arrayConsideration Special Consideration when using Arrays
+ There are several methods which return arrays. In the case of IAccessible2::relations
+ and IAccessibleRelation::targets the client must allocate and free the arrays.
+
+ For the remaining methods which return arrays, the server must allocate the array
+ and the client must free the array when no longer needed. These methods are
+ IAccessible2::extendedStates, IAccessible2::localizedExtendedStates,
+ IAccessibleAction::keyBinding, IAccessibleTable2::selectedCells,
+ IAccessibleTable2::selectedColumns, and IAccessibleTable2::selectedRows. For
+ those methods, the server must allocate both the top level array and any storage
+ associated with it, e.g. for BSTRs. The server must allocate the arrays with
+ CoTaskMemAlloc and any BSTRs with SysAllocString. The client must use CoTaskMemFree
+ to free the array and any BSTRs must be freed with SysFreeString.
+
+ Also, the IDL for those six methods includes an extraneous [in] parameter for the
+ caller to specify the max size of the array. This parameter will be ignored by
+ the COM server.
+
+ @section _indexes Zero and One Based Indexes
+ Unless otherwise specified all offsets and indexes are 0 based.
+
+ @section _enums Enums
+ Note that enums start at 0.
+
+ @section _specialOffsets Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods
+ IAccessibleText and IAccessibleEditableText can use one or more of the following
+ special offset values. They are defined in the ::IA2TextSpecialOffsets enum.
+ @li Using ::IA2_TEXT_OFFSET_LENGTH (-1) as an offset in any of the IAccessibleText or
+ IAccessibleEditableText methods is the same as specifying the length of the string.
+ @li Using ::IA2_TEXT_OFFSET_CARET (-2) as an offset for IAccessibleText::textBeforeOffset,
+ IAccessibleText::textAtOffset, and IAccessibleText::textAfterOffset indicates that the
+ text related to the physical location of the caret should be used. This is needed for
+ applications that consider the character offset of the end of one line (as reached by
+ pressing the End key) the same as the offset of the first character on the next line.
+ Since the same offset is associated with two different lines a special means is needed
+ to fetch text from the line where the caret is physically located.
+
+ @section _dicoveringInterfaces Discovery of Interfaces
+ In general AT (Assistive Technology) should try IAccessible2 interfaces, followed by using
+ the MSAA (Microsoft&reg; Active Accessibility&reg;) interfaces. (In cases where the an application
+ is known to have custom interfaces which provide information not supplied by IAccessible2
+ or MSAA, then those custom interfaces can be used.) The AT can then, by default, support
+ unknown IAccessible2/MSAA applications, without the application developers having to request
+ AT vendors for support on an individual application by application basis.
+
+ When you have a reference to an IAccessible and require a reference to an IAccessible2 use
+ QueryService as follows:
+ @code
+ // pAcc is a reference to the accessible object's IAccessible interface.
+ IServiceProvider *pService = NULL;
+ hr = pAcc->QueryInterface(IID_IServiceProvider, (void **)&pService);
+ if(SUCCEEDED(hr)) {
+ IAccessible2 *pIA2 = NULL;
+ hr = pService->QueryService(IID_IAccessible, IID_IAccessible2, (void**)&pIA2);
+ if (SUCCEEDED(hr) && pIA2) {
+ // The control supports IAccessible2.
+ // pIA2 is the reference to the accessible object's IAccessible2 interface.
+ }
+ }
+ @endcode
+
+ @section _changingInterfaces Changing between Accessible Interfaces
+ Note that developers must always implement MSAA's IAccessible and, if needed, some
+ of the interfaces in the set of IAccessible2 interfaces. Although the IAccessible2
+ IDL is coded such that IAccessible2 is a subclass of MSAA's IAccessible, none of
+ MSAA's IAccessible methods are redefined by IAccessible2.
+
+ QueryService must be used to switch from a reference to an MSAA IAccessible interface
+ to another interface. This has been
+ <a href="http://www.accessinteropalliance.org/docs/Introducing_IAccessibleEx.doc">
+ documented by Microsoft</a> and the pertinent facts have been extracted below:
+
+ @par
+ Why use QueryService instead of just using QueryInterface to get IAccessibleEx
+ directly? The reason is that since MSAA 2.0, clients don't talk to a server's
+ IAccessible interface directly; instead they talk to an intermediate MSAA-provided
+ wrapper that calls through to the original IAccessible. This wrapper provides services
+ such as implementing IDispatch, supplying information from MSAA 2.0's Dynamic Annotation
+ service, and scaling locations when running on Windows Vista with DPI scaling enabled.
+ QueryService is the supported way to expose additional interfaces from an existing
+ IAccessible and was originally used by MSHTML to expose IHTMLElement objects corresponding
+ to IAccessibles. QueryService is often more convenient for servers to implement than
+ QueryInterface because it does not have the same requirements for preserving object
+ identity or symmetry/transitivity as QueryInterface, so QueryService allows servers to
+ easily implement the interface on the same object or a separate object. The latter is
+ often hard to do with QueryInterface unless the original object supports aggregation.
+
+ Two related references in MSDN&reg; are:
+ @li <a href="http://msdn.microsoft.com/en-us/library/ms696078(VS.85).aspx">
+ "Using QueryService to expose a native object model interface for an IAccessible object"</a>
+ @li <a href="http://msdn.microsoft.com/en-us/library/ms528415.aspx#acc_obj">
+ "Accessing the Internet Explorer Object Associated with an Accessible Object"</a>
+
+ Based on this information from Microsoft, QueryService must be used to switch back and forth
+ between a reference to an MSAA IAccessible interface and any of the IAccessible2 interfaces.
+
+ Regarding switching between any of the IAccessible2 interfaces, applications implementing
+ IAccessible2 should implement the IAccessible2 interfaces on a single object since ATs
+ will be using QueryInterface to switch between the IAccessilbe2 interfaces. Implementing
+ the IAccessible2 interfaces on separate objects would require the use of QueryService.
+ There is one exception, IAccessibleApplication can be implemented on a separate object so
+ its common code doesn't have to be included in each accessible object. ATs should use
+ QueryService to access IAccessibleApplication.
+
+ @section _applicationInfo Access to Information about the Application
+ Servers implementing IAccessible2 should provide access to the IAccessibleApplication
+ interface via QueryService from any object so that ATs can easily determine specific
+ information about the application such as its name or version.
+
+ @section _childIDs Child IDs
+ The IAccessible2 interfaces do not support child IDs, i.e. simple child elements.
+ Full accessible objects must be created for each object that supports IAccessible2.
+ Therefore MSAA's get_accChild should never return a child ID (other than CHILDID_SELF)
+ for an object that implements any of the IAccessible2 interfaces.
+
+ Microsoft's UI Automation specification has the same limitation and this was resolved
+ in the UI Automation Express specification by adding IAccessibleEx::GetObjectForChild
+ and IAccessibleEx::GetIAccessiblePair. These methods allow mapping back and forth
+ between an IAccessibleEx and an {IAccessible, Child ID} pair. A future version of
+ IAccessible2 may include similar methods to map back and forth between an IAccessible2
+ and an {IAccessible, Child ID} pair.
+
+ @section _variants VARIANTs
+ Some methods return a VARIANT. Implementers need to make sure that the return type is
+ specified, i.e. VT_I4, VT_IDISPATCH, etc. The methods that return VARIANTs are
+ IAccessibleHyperlink::anchor, IAccessibleHyperlink::anchorTarget, IAccessibleValue::currentValue,
+ IAccessibleValue::maximumValue, IAccessibleValue::minimumValue.
+
+ @section _iaaction-iahyperlink IAccessibleHyperlink as subclass of IAccessibleAction
+ In this version of the IDL, IAccessibleHyperlink is a subclass of IAccessibleAction.
+ However, there is no practical need for that inheritance and in some cases, such as
+ an image map of smart tags, it doesn't make sense because such an image map doesn't
+ have actionable objects; it's the secondary smart tags that are actionable. As a
+ result, implementations should not rely on the inheritance as it may be removed in
+ a later version of the IDL.
+
+ @section _trademark Trademark Attribution
+ The names of actual companies and products mentioned herein may be the trademarks of
+ their respective owners. In particular, Active Accessibility, Microsoft, MSDN, and Win32
+ are trademarks of the Microsoft group of companies in the U.S.A. and/or other countries.
+
+**/
+
+import "objidl.idl";
+import "oaidl.idl";
+import "oleacc.idl";
+import "AccessibleRelation.idl";
+import "AccessibleStates.idl";
+import "IA2CommonTypes.idl";
+
+/** A structure defining the locale of an accessible object.
+
+IAccessible2::locale returns this struct.
+*/
+typedef struct IA2Locale {
+ BSTR language; ///< ISO 639-1 Alpha-2 two character language code
+ BSTR country; ///< ISO 3166-1 Alpha-2 two character country code
+ BSTR variant; ///< Application specific variant of the locale
+} IA2Locale;
+
+/** @brief This interface exposes the primary set of information about an
+ IAccessible2 enabled accessible object.
+
+ This interface must always be provided for objects that support some
+ portion of the collection of the %IAccessible2 interfaces.
+
+ Please refer to @ref _changingInterfaces "Changing between Accessible Interfaces"
+ for special considerations related to use of the MSAA IAccessible interface and
+ the set of %IAccessible2 interfaces.
+ */
+[object, uuid(E89F726E-C4F4-4c19-BB19-B647D7FA8478)]
+interface IAccessible2 : IAccessible
+{
+
+ /** @brief Returns the number of accessible relations for this object.
+ @param [out] nRelations
+ @retval S_OK
+ */
+ [propget] HRESULT nRelations
+ (
+ [out, retval] long *nRelations
+ );
+
+ /** @brief Returns one accessible relation for this object.
+ @param [in] relationIndex
+ 0 based
+ @param [out] relation
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT relation
+ (
+ [in] long relationIndex,
+ [out, retval] IAccessibleRelation **relation
+ );
+
+ /** @brief Returns multiple accessible relations for this object.
+ @param [in] maxRelations
+ maximum size of the array allocated by the client
+ @param [out] relations
+ The array of accessible relation objects. Note that this array is to be
+ allocated by the client and freed when no longer needed. Refer to @ref
+ _arrayConsideration "Special Consideration when using Arrays" for more details.
+ @param [out] nRelations
+ actual number of relations in the returned array (not more than maxRelations)
+ @retval S_OK
+ @retval S_FALSE if there are no relations, nRelations is set to 0
+ */
+ [propget] HRESULT relations
+ (
+ [in] long maxRelations,
+ [out, size_is(maxRelations), length_is(*nRelations)]
+ IAccessibleRelation **relations,
+ [out, retval] long *nRelations
+ );
+
+ /** @brief Returns the role of an %IAccessible2 object.
+ @param [out] role
+ The role of an %IAccessible2 object.
+ @retval S_OK
+ @note
+ @li For convenience MSAA roles are also passed through this method so the
+ AT doesn't have to also fetch roles through MSAA's get_accRole.
+ @li %IAccessible2 roles should not be passed through MSAA's get_accRole.
+ @li For compatibility with non IAccessible2 enabled ATs, IAccessible2
+ applications should also add support to get_accRole to return the closest
+ MSAA role or ROLE_SYSTEM_CLIENT (the MSAA defined default role) if there
+ is not a good match.
+ @li This method is missing a [propget] prefix in the IDL. The result is the
+ method is named role in generated C++ code instead of get_role.
+ */
+ HRESULT role
+ (
+ [out, retval] long *role
+ );
+
+ /** @brief Makes an object visible on the screen.
+ @param [in] scrollType
+ Defines where the object should be placed on the screen.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ HRESULT scrollTo
+ (
+ [in] enum IA2ScrollType scrollType
+ );
+
+ /** @brief Moves the top left of an object to a specified location.
+
+ @param [in] coordinateType
+ Specifies whether the coordinates are relative to the screen or the parent object.
+ @param [in] x
+ Defines the x coordinate.
+ @param [in] y
+ Defines the y coordinate.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ HRESULT scrollToPoint
+ (
+ [in] enum IA2CoordinateType coordinateType,
+ [in] long x,
+ [in] long y
+ );
+
+ /** @brief Returns grouping information.
+
+ Used for tree items, list items, tab panel labels, radio buttons, etc.
+ Also used for collections of non-text objects.
+
+ @param [out] groupLevel
+ 1 based, 0 indicates that this value is not applicable
+ @param [out] similarItemsInGroup
+ 1 based, 0 indicates that this value is not applicable
+ @param [out] positionInGroup
+ 1 based, 0 indicates that this value is not applicable. This is an index
+ into the objects in the current group, not an index into all the objects
+ at the same group level.
+ @retval S_OK if at least one value is valid
+ @retval S_FALSE if no values are valid, [out] values are 0s
+ @note This method is meant to describe the nature of an object's containment
+ structure. It's exposed by trees, tree grids, nested lists, nested menus,
+ but not headings, which uses the level object attribute. It is also exposed
+ by radio buttons (with groupLevel == 0).
+ @note This is normally not implemented on a combo box to describe the nature
+ of its contents. Normally an AT will get that information from its child list
+ object. However, in some cases when non-edit combo boxes are not able to be structured
+ such that the list is a child of the combo box, this method is implemented on
+ the combo box itself. ATs can use this interface if a child list is not found.
+ */
+ [propget] HRESULT groupPosition
+ (
+ [out] long *groupLevel,
+ [out] long *similarItemsInGroup,
+ [out, retval] long *positionInGroup
+ );
+
+ /** @brief Returns the bit strip containing any IAccessible2 states.
+
+ The IAccessible2 states are in addition to the MSAA states and are defined in
+ the IA2States enum.
+
+ @param [out] states
+ @retval S_OK
+ */
+ [propget] HRESULT states
+ (
+ [out, retval] AccessibleStates *states
+ );
+
+ /** @brief Returns the extended role.
+
+ An extended role is a role which is dynamically generated by the application.
+ It is not predefined by the %IAccessible2 specification.
+
+ @param [out] extendedRole
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ */
+ [propget] HRESULT extendedRole
+ (
+ [out, retval] BSTR *extendedRole
+ );
+
+ /** @brief Returns the localized extended role.
+ @param [out] localizedExtendedRole
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ */
+ [propget] HRESULT localizedExtendedRole
+ (
+ [out, retval] BSTR *localizedExtendedRole
+ );
+
+ /** @brief Returns the number of extended states.
+ @param [out] nExtendedStates
+ @retval S_OK
+ */
+ [propget] HRESULT nExtendedStates
+ (
+ [out, retval] long *nExtendedStates
+ );
+
+ /** @brief Returns the extended states (array of strings).
+
+ An extended state is a state which is dynamically generated by the application.
+ It is not predefined by the %IAccessible2 specification.
+
+ @param [in] maxExtendedStates
+ This parameter is ignored. Refer to @ref _arrayConsideration
+ "Special Consideration when using Arrays" for more details.
+ @param [out] extendedStates
+ This array is allocated by the server. Free it with CoTaskMemFree.
+ @param [out] nExtendedStates
+ The number of extended states returned; the size of the returned array.
+ @retval S_OK
+ @retval S_FALSE if there are no states, [out] values are NULL and 0 respectively
+ */
+ [propget] HRESULT extendedStates
+ (
+ [in] long maxExtendedStates,
+ [out, size_is(,maxExtendedStates), length_is(,*nExtendedStates)] BSTR **extendedStates,
+ [out, retval] long *nExtendedStates
+ );
+
+ /** @brief Returns the localized extended states (array of strings).
+ @param [in] maxLocalizedExtendedStates
+ This parameter is ignored. Refer to @ref _arrayConsideration
+ "Special Consideration when using Arrays" for more details.
+ @param [out] localizedExtendedStates
+ This array is allocated by the server. Free it with CoTaskMemFree.
+ @param [out] nLocalizedExtendedStates
+ The number of localized extended states returned; the size of the returned array.
+ @retval S_OK
+ @retval S_FALSE if there are no states, [out] values are NULL and 0 respectively
+ */
+ [propget] HRESULT localizedExtendedStates
+ (
+ [in] long maxLocalizedExtendedStates,
+ [out, size_is(,maxLocalizedExtendedStates), length_is(,*nLocalizedExtendedStates)] BSTR **localizedExtendedStates,
+ [out, retval] long *nLocalizedExtendedStates
+ );
+
+ /** @brief Returns the unique ID.
+
+ The uniqueID is an identifier for this object, is unique within the
+ current window, and remains the same for the lifetime of the accessible
+ object.
+
+ The uniqueID is not related to:
+ - the MSAA objectID which is used by the server to disambiguate between
+ IAccessibles per HWND or
+ - the MSAA childID which is used to disambiguate between children being
+ managed by an IAccessible.
+
+ This value is provided so the AT can have access to a unique runtime persistent
+ identifier even when not handling an event for the object.
+
+ An example of when this value is useful is if the AT wants to build a cache.
+ The AT could cache the uniqueIDs in addition to other data being cached.
+ When an event is fired the AT could map the uniqueID to its internal model.
+ Thus, if there's a REORDER/SHOW/HIDE event the AT knows which part of the
+ internal structure has been invalidated and can refetch just that part.
+
+ This value can also be used by an AT to determine when the current control
+ has changed. If the role is the same for two controls that are adjacent in
+ the tab order, this can be used to detect the new control.
+
+ Another use of this value by an AT is to identify when a grouping object has
+ changed, e.g. when moving from a radio button in one group to a radio button in a
+ different group.
+
+ One means of implementing this would be to create a factory with a 32 bit number
+ generator and a reuse pool. The number generator would emit numbers starting
+ at 1. Each time an object's life cycle ended, its number would be saved into a
+ reuse pool. The number generator would be used whenever the reuse pool was empty.
+
+ Another way to create a unique ID is to generate it from a pointer value, e.g. an
+ object's address. That would be unique because no two active objects can use the
+ same allocated memory space.
+
+ @param [out] uniqueID
+ @retval S_OK
+ */
+ [propget] HRESULT uniqueID
+ (
+ [out, retval] long *uniqueID
+ );
+
+ /** @brief Returns the window handle for the parent window which contains this object.
+
+ This is the same window handle which will be passed for any events that occur on the
+ object, but is cached in the accessible object for use when it would be helpful to
+ access the window handle in cases where an event isn't fired on this object.
+
+ A use case is when a screen reader is grabbing an entire web page on a page load.
+ Without the availability of windowHandle, the AT would have to get the window handle
+ by using WindowFromAccessibleObject on each IAccessible, which is slow because it's
+ implemented by oleacc.dll as a loop which crawls up the ancestor chain and looks for
+ a ROLE_WINDOW object, mapping that back to a window handle.
+
+ @param [out] windowHandle
+ @retval S_OK
+ */
+ [propget] HRESULT windowHandle
+ (
+ [out, retval] HWND *windowHandle
+ );
+
+ /** @brief Returns the index of this object in its parent object.
+ @param [out] indexInParent
+ 0 based; -1 indicates there is no parent; the upper bound is the value
+ returned by the parent's IAccessible::get_accChildCount.
+ @retval S_OK
+ @retval S_FALSE if no parent, [out] value is -1
+ */
+ [propget] HRESULT indexInParent
+ (
+ [out, retval] long *indexInParent
+ );
+
+ /** @brief Returns the IA2Locale of the accessible object.
+ @param [out] locale
+ @retval S_OK
+ */
+ [propget] HRESULT locale
+ (
+ [out, retval] IA2Locale *locale
+ );
+
+ /** @brief Returns the attributes specific to this %IAccessible2 object, such as a cell's formula.
+ @param [out] attributes
+ @retval S_OK
+ @retval S_FALSE returned if there is nothing to return, [out] value is NULL
+ */
+ [propget] HRESULT attributes
+ (
+ [out, retval] BSTR *attributes
+ );
+
+}
+
diff --git a/src/3rdparty/iaccessible2/idl/AccessibleAction.idl b/src/3rdparty/iaccessible2/idl/AccessibleAction.idl
new file mode 100644
index 0000000000..edab0d288b
--- /dev/null
+++ b/src/3rdparty/iaccessible2/idl/AccessibleAction.idl
@@ -0,0 +1,194 @@
+/*************************************************************************
+ *
+ * File Name (AccessibleAction.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2010 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+import "objidl.idl";
+import "oaidl.idl";
+import "oleacc.idl";
+
+/** @brief This interface gives access to actions that can be executed
+ for accessible objects.
+
+ Every accessible object that can be manipulated via the native GUI beyond the
+ methods available either in the MSAA IAccessible interface or in the set of
+ IAccessible2 interfaces (other than this IAccessibleAction interface) should
+ support the IAccessibleAction interface in order to provide Assistive Technology
+ access to all the actions that can be performed by the object. Each action can
+ be performed or queried for a name, description or associated key bindings.
+ Actions are needed more for ATs that assist the mobility impaired, such as
+ on-screen keyboards and voice command software. By providing actions directly,
+ the AT can present them to the user without the user having to perform the extra
+ steps to navigate a context menu.
+
+ The first action should be equivalent to the MSAA default action. If there is
+ only one action, %IAccessibleAction should also be implemented.
+*/
+[object, uuid(B70D9F59-3B5A-4dba-AB9E-22012F607DF5)]
+interface IAccessibleAction : IUnknown
+{
+
+ /** @brief Returns the number of accessible actions available in this object.
+
+ If there are more than one, the first one is considered the
+ "default" action of the object.
+ @param [out] nActions
+ The returned value of the number of actions is zero if there are
+ no actions.
+ @retval S_OK
+ @note This method is missing a [propget] prefix in the IDL. The result is the
+ method is named nActions in generated C++ code instead of get_nActions.
+ */
+ HRESULT nActions
+ (
+ [out,retval] long* nActions
+ );
+
+ /** @brief Performs the specified Action on the object.
+ @param [in] actionIndex
+ 0 based index specifying the action to perform. If it lies outside
+ the valid range no action is performed.
+ @retval S_OK
+ @retval S_FALSE if action could not be performed
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ HRESULT doAction
+ (
+ [in] long actionIndex
+ );
+
+ /** @brief Returns a description of the specified action of the object.
+ @param [in] actionIndex
+ 0 based index specifying which action's description to return.
+ If it lies outside the valid range an empty string is returned.
+ @param [out] description
+ The returned value is a localized string of the specified action.
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT description
+ (
+ [in] long actionIndex,
+ [out, retval] BSTR *description
+ );
+
+ /** @brief Returns an array of BSTRs describing one or more key bindings, if
+ there are any, associated with the specified action.
+
+ The returned strings are the localized human readable key sequences to be
+ used to activate each action, e.g. "Ctrl+Shift+D". Since these key
+ sequences are to be used when the object has focus, they are like
+ mnemonics (access keys), and not like shortcut (accelerator) keys.
+
+ There is no need to implement this method for single action controls since
+ that would be redundant with the standard MSAA programming practice of
+ getting the mnemonic from get_accKeyboardShortcut.
+
+ An AT such as an On Screen Keyboard might not expose these bindings but
+ provide alternative means of activation.
+
+ Note: the client allocates and passes in an array of pointers. The server
+ allocates the BSTRs and passes back one or more pointers to these BSTRs into
+ the array of pointers allocated by the client. The client is responsible
+ for deallocating the BSTRs.
+
+ @param [in] actionIndex
+ 0 based index specifying which action's key bindings should be returned.
+ @param [in] nMaxBindings
+ This parameter is ignored. Refer to @ref _arrayConsideration
+ "Special Consideration when using Arrays" for more details.
+ @param [out] keyBindings
+ An array of BSTRs, allocated by the server, one for each key binding.
+ Free it with CoTaskMemFree.
+ @param [out] nBindings
+ The number of key bindings returned; the size of the returned array.
+ @retval S_OK
+ @retval S_FALSE if there are no key bindings, [out] values are NULL and 0 respectively
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT keyBinding
+ (
+ [in] long actionIndex,
+ [in] long nMaxBindings,
+ [out, size_is(,nMaxBindings), length_is(,*nBindings)] BSTR **keyBindings,
+ [out, retval] long *nBindings
+ );
+
+ /** @brief Returns the non-localized name of specified action.
+ @param [in] actionIndex
+ 0 based index specifying which action's non-localized name should be returned.
+ @param [out] name
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT name
+ (
+ [in] long actionIndex,
+ [out, retval] BSTR *name
+ );
+
+ /** @brief Returns the localized name of specified action.
+ @param [in] actionIndex
+ 0 based index specifying which action's localized name should be returned.
+ @param [out] localizedName
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT localizedName
+ (
+ [in] long actionIndex,
+ [out, retval] BSTR *localizedName
+ );
+
+}
diff --git a/src/3rdparty/iaccessible2/idl/AccessibleApplication.idl b/src/3rdparty/iaccessible2/idl/AccessibleApplication.idl
new file mode 100644
index 0000000000..ed15aa0018
--- /dev/null
+++ b/src/3rdparty/iaccessible2/idl/AccessibleApplication.idl
@@ -0,0 +1,121 @@
+/*************************************************************************
+ *
+ * File Name (AccessibleApplication.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2010 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+
+import "objidl.idl";
+import "oaidl.idl";
+import "oleacc.idl";
+
+/** @brief This interface gives access to the application's name and version information.
+
+ This interface provides the AT with the information it needs to differentiate
+ this application from other applications, from other versions of this
+ application, or from other versions of this application running on different
+ versions of an accessibility bridge or accessibility toolkit.
+
+ Servers implementing IAccessible2 should provide access to the %IAccessibleApplication
+ interface via QueryService from any object so that ATs can easily determine specific
+ information about the application such as its name or version.
+*/
+[object, uuid(D49DED83-5B25-43F4-9B95-93B44595979E)]
+interface IAccessibleApplication : IUnknown
+{
+
+ /** @brief Returns the application name.
+ @param [out] name
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ */
+ [propget] HRESULT appName
+ (
+ [out, retval] BSTR *name
+ );
+
+ /** @brief Returns the application version.
+ @param [out] version
+ The version string must not contain levels when it is know beforehand that
+ this information will never require a change in a client's behavior.
+ For example, use "3.6.0" rather than "3.6.0.v201005131500".
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ */
+ [propget] HRESULT appVersion
+ (
+ [out, retval] BSTR *version
+ );
+
+ /** @brief Returns the toolkit/bridge name.
+ @param [out] name
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ */
+ [propget] HRESULT toolkitName
+ (
+ [out, retval] BSTR *name
+ );
+
+ /** @brief Returns the toolkit/bridge version.
+ @param [out] version
+ The version string must not contain levels when it is know beforehand that
+ this information will never require a change in a client's behavior.
+ For example, use "3.6.0" rather than "3.6.0.v201005131500".
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ */
+ [propget] HRESULT toolkitVersion
+ (
+ [out, retval] BSTR *version
+ );
+
+}
+
diff --git a/src/3rdparty/iaccessible2/idl/AccessibleComponent.idl b/src/3rdparty/iaccessible2/idl/AccessibleComponent.idl
new file mode 100644
index 0000000000..bea623a938
--- /dev/null
+++ b/src/3rdparty/iaccessible2/idl/AccessibleComponent.idl
@@ -0,0 +1,124 @@
+/*************************************************************************
+ *
+ * File Name (AccessibleComponent.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2010 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+import "objidl.idl";
+import "oaidl.idl";
+import "oleacc.idl";
+
+/** A value specifying a color in ARGB format, where each 8 bit color component
+specifies alpha, red, green, and blue respectively. The alpha value is optional.
+*/
+typedef long IA2Color;
+
+/** @brief This interface is implemented by any object that can be rendered
+ on the screen.
+
+ This interface provides the standard mechanism for an assistive technology
+ to retrieve information concerning the graphical representation of an object.
+ Coordinates used by the functions of this interface are specified in
+ different coordinate systems. Their scale is the same and is equal to
+ that of the screen coordinate system. In other words all coordinates
+ are measured in pixels. They differ in their respective origin:
+ <ul>
+ <li>The screen coordinate system has its origin in the upper left
+ corner of the current screen.</li>
+ <li>The origin of the parent coordinate system is the upper left corner
+ of the parent's bounding box. With no parent the screen coordinate
+ system is used instead.</li>
+ </ul>
+*/
+[object, uuid(1546D4B0-4C98-4bda-89AE-9A64748BDDE4)]
+interface IAccessibleComponent : IUnknown
+{
+
+ /** @brief Returns the location of the upper left corner of the object's
+ bounding box relative to the immediate parent object.
+
+ The coordinates of the bounding box are given relative to the parent's
+ coordinate system. The coordinates of the returned position are relative
+ to this object's parent or relative to the screen on which this object
+ is rendered if it has no parent. If the object is not on any screen
+ the returned position is (0,0).
+
+ @param [out] x
+ @param [out] y
+ @retval S_OK
+ */
+ [propget] HRESULT locationInParent
+ (
+ [out] long *x,
+ [out, retval] long *y
+ );
+
+ /** @brief Returns the foreground color of this object.
+ @param [out] foreground
+ The returned color is the foreground color of this object or, if
+ that is not supported, the default foreground color.
+ @retval S_OK
+ */
+ [propget] HRESULT foreground
+ (
+ [out, retval] IA2Color *foreground
+ );
+
+ /** @brief Returns the background color of this object.
+ @param [out] background
+ The returned color is the background color of this object or, if
+ that is not supported, the default background color.
+ @retval S_OK
+ */
+ [propget] HRESULT background
+ (
+ [out, retval] IA2Color *background
+ );
+}
diff --git a/src/3rdparty/iaccessible2/idl/AccessibleEditableText.idl b/src/3rdparty/iaccessible2/idl/AccessibleEditableText.idl
new file mode 100644
index 0000000000..48fefd30ef
--- /dev/null
+++ b/src/3rdparty/iaccessible2/idl/AccessibleEditableText.idl
@@ -0,0 +1,259 @@
+/*************************************************************************
+ *
+ * File Name (AccessibleEditableText.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2010 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+import "objidl.idl";
+import "oaidl.idl";
+import "oleacc.idl";
+import "IA2CommonTypes.idl";
+
+/** @brief This interface provides clipboard capability to text objects.
+
+ This interface is typically used in conjunction with the IAccessibleText
+ interface and complements that interface with the additional capability of
+ clipboard operations. Note that even a read only text object can support
+ the copy capability so this interface is not limited to editable objects.
+
+ The substrings used with this interface are specified as follows:
+ If startOffset is less than endOffset, the substring starts with the
+ character at startOffset and ends with the character just before endOffset.
+ If endOffset is lower than startOffset, the result is the same as a call
+ with the two arguments exchanged. The whole text can be defined by passing
+ the indices zero and IAccessibleText::nCharacters. If both indices have the
+ same value, an empty string is defined.
+
+ Refer to the @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about a special offset constant that can be used in %IAccessibleEditableText methods.
+*/
+[object, uuid(A59AA09A-7011-4b65-939D-32B1FB5547E3)]
+interface IAccessibleEditableText : IUnknown
+{
+
+ /** @brief Copies the text range into the clipboard.
+
+ The selection is set to the specified offsets and then selection is copied into
+ the system clipboard.
+
+ @param [in] startOffset
+ Start index of the text to moved into the clipboard.
+ The valid range is 0..length.
+ @param [in] endOffset
+ End index of the text to moved into the clipboard.
+ The valid range is 0..length.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ @note Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about special offsets that can be used in %IAccessibleEditableText
+ methods.
+ */
+ HRESULT copyText
+ (
+ [in] long startOffset,
+ [in] long endOffset
+ );
+
+ /** @brief Deletes a range of text.
+
+ The text between and including the two given indices is deleted
+ from the text represented by this object.
+
+ @param [in] startOffset
+ Start index of the text to be deleted.
+ The valid range is 0..length.
+ @param [in] endOffset
+ End index of the text to be deleted.
+ The valid range is 0..length.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ @note Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about special offsets that can be used in %IAccessibleEditableText
+ methods.
+ */
+ HRESULT deleteText
+ (
+ [in] long startOffset,
+ [in] long endOffset
+ );
+
+ /** @brief Inserts text at the specified position.
+
+ The specified string is inserted at the given index into the text
+ represented by this object.
+
+ @param [in] offset
+ Index at which to insert the text.
+ The valid range is 0..length.
+ Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about special offsets that can be used in %IAccessibleEditableText
+ methods.
+ @param [in] text
+ Text that is inserted.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ HRESULT insertText
+ (
+ [in] long offset,
+ [in] BSTR *text
+ );
+
+ /** @brief Deletes a range of text and copies it to the clipboard.
+
+ The selection is set to the specified offsets, the selection is then copied into
+ the system clipboard, and then the selection is deleted.
+
+ @param [in] startOffset
+ Start index of the text to be deleted.
+ The valid range is 0..length.
+ @param [in] endOffset
+ End index of the text to be deleted.
+ The valid range is 0..length.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ @note Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about special offsets that can be used in %IAccessibleEditableText
+ methods.
+ */
+ HRESULT cutText
+ (
+ [in] long startOffset,
+ [in] long endOffset
+ );
+
+ /** @brief Pastes content from the clipboard.
+
+ Any existing selection is removed, the clipboard content is then pasted into
+ this object's text at the given offset. This method is similar to the insertText
+ method. If the index is not valid the system clipboard content is not inserted. The
+ behavior is the same as when Ctrl+V is used, i.e. the pasted contents are not
+ necessarily plain text.
+
+ @param [in] offset
+ Index at which to insert the content from the system clipboard into
+ the text represented by this object.
+ The valid range is 0..length.
+ Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about special offsets that can be used in %IAccessibleEditableText
+ methods.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ HRESULT pasteText
+ (
+ [in] long offset
+ );
+
+ /** @brief Replaces text.
+
+ The text between the two given indices is replaced by the specified
+ replacement string. This method is equivalent to calling first
+ IAccessibleEditableText::deleteText with the two indices and then
+ calling IAccessibleEditableText::insertText with the replacement text
+ at the start index.
+
+ @param [in] startOffset
+ Start index of the text to be replaced.
+ The valid range is 0..length.
+ @param [in] endOffset
+ End index of the text to be replaced.
+ The valid range is 0..length.
+ @param [in] text
+ The Text that replaces the text between the given indices.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ @note Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about special offsets that can be used in %IAccessibleEditableText
+ methods.
+ */
+ HRESULT replaceText
+ (
+ [in] long startOffset,
+ [in] long endOffset,
+ [in] BSTR *text
+ );
+
+ /** @brief Replaces the attributes of a text range by the given set of attributes.
+
+ Sets the attributes for the text between the two given indices. The old
+ attributes are replaced by the new list of attributes.
+
+ @param [in] startOffset
+ Start index of the text whose attributes are modified.
+ The valid range is 0..length.
+ @param [in] endOffset
+ End index of the text whose attributes are modified.
+ The valid range is 0..length.
+ @param [in] attributes
+ Set of attributes that replaces the old list of attributes of
+ the specified text portion.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ @note Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about special offsets that can be used in %IAccessibleEditableText
+ methods.
+ */
+ HRESULT setAttributes
+ (
+ [in] long startOffset,
+ [in] long endOffset,
+ [in] BSTR *attributes
+ );
+}
+
diff --git a/src/3rdparty/iaccessible2/idl/AccessibleEventID.idl b/src/3rdparty/iaccessible2/idl/AccessibleEventID.idl
new file mode 100644
index 0000000000..1db957d6e5
--- /dev/null
+++ b/src/3rdparty/iaccessible2/idl/AccessibleEventID.idl
@@ -0,0 +1,230 @@
+/*************************************************************************
+ *
+ * File Name (AccessibleEventID.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2010 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+/** %IAccessible2 specific event constants
+
+ This enum defines the event IDs fired by %IAccessible2 objects. The event IDs
+ are in addition to those used by MSAA.
+*/
+enum IA2EventID {
+
+ /** The change of the number or attributes of actions of an accessible
+ object is signaled by events of this type.
+ */
+ IA2_EVENT_ACTION_CHANGED = 0x101,
+
+ /** <b>Deprecated.</b> The active descendant of a component has changed.
+
+ Note: This event constant is misspelled and thus is deprecated and will be
+ removed in a later version. Please use the correctly spelled version which
+ follows.
+ */
+ IA2_EVENT_ACTIVE_DECENDENT_CHANGED,
+
+ /** The active descendant of a component has changed. The active descendant
+ is used in objects with transient children.
+
+ Note: Due to the fact that MSAA's WinEvents don't allow the active child index
+ to be passed on the IA2_EVENT_ACTIVE_DESCENDANT_CHANGED event the manages
+ descendants scheme can't be used. Instead the active child object has to fire
+ MSAA's EVENT_OBJECT_FOCUS. In a future release a new event mechanism may be
+ added to provide for event specific data to be passed with the event. At that
+ time the IA2_EVENT_ACTIVE_DECENDENT_CHANGED event and
+ IA2_STATE_MANAGES_DESCENDANTS state would be useful.
+ */
+ IA2_EVENT_ACTIVE_DESCENDANT_CHANGED = IA2_EVENT_ACTIVE_DECENDENT_CHANGED,
+
+ /** The document wide attributes of the document object have changed.
+ */
+ IA2_EVENT_DOCUMENT_ATTRIBUTE_CHANGED,
+
+ /** The contents of the document have changed.
+ */
+ IA2_EVENT_DOCUMENT_CONTENT_CHANGED,
+
+ /** The loading of the document has completed.
+ */
+ IA2_EVENT_DOCUMENT_LOAD_COMPLETE,
+
+ /** The loading of the document was interrupted.
+ */
+ IA2_EVENT_DOCUMENT_LOAD_STOPPED,
+
+ /** The document contents are being reloaded.
+ */
+ IA2_EVENT_DOCUMENT_RELOAD,
+
+ /** The ending index of this link within the containing string has changed.
+ */
+ IA2_EVENT_HYPERLINK_END_INDEX_CHANGED,
+
+ /** The number of anchors associated with this hyperlink object has changed.
+ */
+ IA2_EVENT_HYPERLINK_NUMBER_OF_ANCHORS_CHANGED,
+
+ /** The hyperlink selected state changed from selected to unselected or
+ from unselected to selected.
+ */
+ IA2_EVENT_HYPERLINK_SELECTED_LINK_CHANGED,
+
+ /** One of the links associated with the hypertext object has been activated.
+ */
+ IA2_EVENT_HYPERTEXT_LINK_ACTIVATED,
+
+ /** One of the links associated with the hypertext object has been selected.
+ */
+ IA2_EVENT_HYPERTEXT_LINK_SELECTED,
+
+ /** The starting index of this link within the containing string has changed.
+ */
+ IA2_EVENT_HYPERLINK_START_INDEX_CHANGED,
+
+ /** Focus has changed from one hypertext object to another, or focus moved
+ from a non-hypertext object to a hypertext object, or focus moved from a
+ hypertext object to a non-hypertext object.
+ */
+ IA2_EVENT_HYPERTEXT_CHANGED,
+
+ /** The number of hyperlinks associated with a hypertext object changed
+ */
+ IA2_EVENT_HYPERTEXT_NLINKS_CHANGED,
+
+ /** An object's attributes changed.
+ Also see ::IA2_EVENT_TEXT_ATTRIBUTE_CHANGED.
+ */
+ IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED,
+
+ /** A slide changed in a presentation document or a page boundary was
+ crossed in a word processing document.
+ */
+ IA2_EVENT_PAGE_CHANGED,
+
+ /** The caret moved from one section to the next.
+ */
+ IA2_EVENT_SECTION_CHANGED,
+
+ /** A table caption changed.
+ */
+ IA2_EVENT_TABLE_CAPTION_CHANGED,
+
+ /** A table's column description changed.
+ */
+ IA2_EVENT_TABLE_COLUMN_DESCRIPTION_CHANGED,
+
+ /** A table's column header changed.
+ */
+ IA2_EVENT_TABLE_COLUMN_HEADER_CHANGED,
+
+ /** A table's data changed.
+ */
+ IA2_EVENT_TABLE_MODEL_CHANGED,
+
+ /** A table's row description changed.
+ */
+ IA2_EVENT_TABLE_ROW_DESCRIPTION_CHANGED,
+
+ /** A table's row header changed.
+ */
+ IA2_EVENT_TABLE_ROW_HEADER_CHANGED,
+
+ /** A table's summary changed.
+ */
+ IA2_EVENT_TABLE_SUMMARY_CHANGED,
+
+ /** A text object's attributes changed.
+ Also see ::IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED.
+ */
+ IA2_EVENT_TEXT_ATTRIBUTE_CHANGED,
+
+ /** The caret has moved to a new position.
+ */
+ IA2_EVENT_TEXT_CARET_MOVED,
+
+ /** <b>Deprecated.</b> This event is equivalent to ::IA2_EVENT_TEXT_UPDATED.
+ */
+ IA2_EVENT_TEXT_CHANGED,
+
+ /** The caret moved from one column to the next.
+ */
+ IA2_EVENT_TEXT_COLUMN_CHANGED,
+
+ /** Text was inserted.
+ */
+ IA2_EVENT_TEXT_INSERTED,
+
+ /** Text was removed.
+ */
+ IA2_EVENT_TEXT_REMOVED,
+
+ /** This event indicates general text changes, i.e. changes to text that are
+ exposed through the IAccessibleText interface. For compatibility with ATK/AT-SPI
+ which does not have an equivalent event, servers can alternatively fire
+ ::IA2_EVENT_TEXT_REMOVED and ::IA2_EVENT_TEXT_INSERTED.
+ */
+ IA2_EVENT_TEXT_UPDATED,
+
+ /** The text selection changed. Later versions of Microsoft development environments
+ have an equivalent event identified, EVENT_OBJECT_TEXTSELECTIONCHANGED. Servers
+ should use that if it is available and use IA2_EVENT_TEXT_SELECTION_CHANGED otherwise.
+ Clients should be prepared to respond to either event.
+
+ */
+ IA2_EVENT_TEXT_SELECTION_CHANGED,
+
+ /** A visible data event indicates the change of the visual appearance
+ of an accessible object. This includes for example most of the
+ attributes available via the IAccessibleComponent interface.
+ */
+ IA2_EVENT_VISIBLE_DATA_CHANGED
+
+};
diff --git a/src/3rdparty/iaccessible2/idl/AccessibleHyperlink.idl b/src/3rdparty/iaccessible2/idl/AccessibleHyperlink.idl
new file mode 100644
index 0000000000..9311176d9c
--- /dev/null
+++ b/src/3rdparty/iaccessible2/idl/AccessibleHyperlink.idl
@@ -0,0 +1,187 @@
+/*************************************************************************
+ *
+ * File Name (AccessibleHyperlink.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2010 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+import "objidl.idl";
+import "oaidl.idl";
+import "oleacc.idl";
+import "AccessibleAction.idl";
+
+/** @brief This interface represents hyperlinks.
+
+ This interface represents a hyperlink associated with a single substring
+ of text or single non-text object. Non-text objects can have either a
+ single link or a collection of links such as when the non-text object is
+ an image map.
+
+ Linked objects and anchors are implementation dependent. This interface is derived
+ from IAccessibleAction. IAccessibleAction::nActions is one greater than the
+ maximum value for the indices used with the methods of this interface.
+
+ Furthermore, the object that implements this interface has to be connected
+ implicitly or explicitly with an object that implements IAccessibleText.
+ IAccessibleHyperlink::startIndex and IAccessibleHyperlink::endIndex are
+ indices with respect to the text exposed by IAccessibleText.
+
+ This interface provides access to a single object which can have multiple actions.
+ An example is an image map which is an image with multiple links each of which is
+ associated with a separate non-overlapping area of the image. This interface could
+ also be applied to other kinds of objects with multiple actions such as "smart tags"
+ which are objects, typically strings, which have multiple actions such as
+ "Activate URI", "Bookmark URI", etc.
+
+ An interesting use case is an image map where each area is associated with multiple
+ actions, e.g. an image map of smart tags. In this case you would have to implement
+ two levels of accessible hyperlinks. The first level hyperlinks would only implement
+ anchor and anchorTarget. The anchors would all reference the image object. The
+ anchorTargets would reference the second level accessible hyperlink objects. None
+ of the IAccessibleAction methods would be implemented on the first level hyperlink
+ objects. The second level hyperlink objects would implement the IAccessibleAction
+ methods. Their anchors would also reference the image object and their anchorTargets
+ would reference URLs or the objects that would be activated.
+
+ This use case demonstrates that in some cases there is no need for IAccessibleHyperlink
+ to derive from IAccessibleAction. As a result it may be removed in a later version of
+ the IDL and it is suggested that implementations should not rely on the inheritance.
+
+*/
+[object, uuid(01C20F2B-3DD2-400f-949F-AD00BDAB1D41)]
+interface IAccessibleHyperlink : IAccessibleAction
+{
+
+ /** @brief Returns an object that represents the link anchor, as appropriate
+ for the link at the specified index.
+ @param [in] index
+ A 0 based index identifies the anchor when, as in the case of an image map,
+ there is more than one link represented by this object. The valid maximal
+ index is indicated by IAccessibleAction::nActions.
+ @param [out] anchor
+ This is an implementation dependent value. For example, for a text link this
+ method could return the substring of the containing string where the substring
+ is overridden with link behavior, and for an image link this method could return
+ an IUnknown VARIANT for IAccessibleImage. See the section about
+ @ref _variants "VARIANTs" for additional information.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT anchor
+ (
+ [in] long index,
+ [out, retval] VARIANT *anchor
+ );
+
+ /** @brief Returns an object representing the target of the link, as appropriate
+ for the link at the specified index.
+ @param [in] index
+ A 0 based index identifies the anchor when, as in the case of an image map,
+ there is more than one link represented by this object. The valid maximal
+ index is indicated by IAccessibleAction::nActions.
+ @param [out] anchorTarget
+ This is an implementation dependent value. For example this method could
+ return a BSTR VARIANT of the URI. Alternatively this method could return an
+ IUnknown VARIANT of a COM interface representing a target object to be
+ activated when the link is activated. See the section about
+ @ref _variants "VARIANTs" for additional information.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT anchorTarget
+ (
+ [in] long index,
+ [out, retval] VARIANT *anchorTarget
+ );
+
+ /** @brief Returns the 0 based character offset at which the textual representation of the hyperlink starts.
+
+ The returned value is related to the IAccessibleText interface of the object that
+ owns this hyperlink.
+ @param [out] index
+ @retval S_OK
+ */
+ [propget] HRESULT startIndex
+ (
+ [out, retval] long *index
+ );
+
+ /** @brief Returns the 0 based character offset at which the textual representation of the hyperlink ends.
+
+ The returned value is related to the IAccessibleText interface of the object that
+ owns this hyperlink. The character at the index is not part of the hypertext.
+ @param [out] index
+ @retval S_OK
+ */
+ [propget] HRESULT endIndex
+ (
+ [out, retval] long *index
+ );
+
+ /** @brief Returns whether the target object referenced by this link is still valid.
+
+ This is a volatile state that may change without sending an appropriate event.
+ Returns TRUE if the referenced target is still valid and FALSE otherwise.
+
+ This has also been used to indicate whether or not the URI of the anchorTarget
+ is malformed.
+
+ @param [out] valid
+ If false, one or more of the object's links are invalid.
+ If true, all of the object's links are valid.
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is FALSE
+ @note This method is not being used, is deprecated, and should not be implemented or
+ used. It is likely that this method will be removed in a later version of the IDL.
+ */
+ [propget] HRESULT valid
+ (
+ [out, retval] boolean *valid
+ );
+}
diff --git a/src/3rdparty/iaccessible2/idl/AccessibleHypertext.idl b/src/3rdparty/iaccessible2/idl/AccessibleHypertext.idl
new file mode 100644
index 0000000000..13093bf610
--- /dev/null
+++ b/src/3rdparty/iaccessible2/idl/AccessibleHypertext.idl
@@ -0,0 +1,123 @@
+/*************************************************************************
+ *
+ * File Name (AccessibleHypertext.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2010 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+import "objidl.idl";
+import "oaidl.idl";
+import "oleacc.idl";
+import "AccessibleText.idl";
+import "AccessibleHyperlink.idl";
+
+/** @brief This interface exposes information about hypertext in a document.
+
+ The %IAccessibleHypertext interface is the main interface to expose
+ hyperlinks in a document, typically a text document, that are used
+ to reference other documents. A typical implementation is to implement
+ this interface on the smallest text object such as a paragraph of text.
+*/
+[object, uuid(6B4F8BBF-F1F2-418a-B35E-A195BC4103B9)]
+interface IAccessibleHypertext : IAccessibleText
+{
+
+ /** @brief Returns the number of links and link groups contained within this hypertext
+ paragraph.
+ @param [out] hyperlinkCount
+ The number of links and link groups within this hypertext paragraph.
+ Returns 0 if there is no link.
+ @retval S_OK
+ */
+ [propget] HRESULT nHyperlinks
+ (
+ [out, retval] long *hyperlinkCount
+ );
+
+ /** @brief Returns the specified link.
+
+ The returned IAccessibleHyperlink object encapsulates the hyperlink and
+ provides several kinds of information describing it.
+ @param [in] index
+ This 0 based index specifies the hyperlink to return.
+ @param [out] hyperlink
+ If the given index is valid, i.e. lies in the interval from 0 to the number
+ of links minus one, a reference to the specified hyperlink object is returned.
+ If the index is invalid then a NULL pointer is returned.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT hyperlink
+ (
+ [in] long index,
+ [out, retval] IAccessibleHyperlink **hyperlink
+ );
+
+ /** @brief Returns the index of the hyperlink that is associated with this character index.
+
+ This is the case when a link spans the given character index.
+ @param [in] charIndex
+ A 0 based index of the character for which to return the link index. If
+ IAccessibleText is used to represent the text containing the link, then the
+ character index is only valid if it is greater than or equal to zero and
+ lower than the number of characters in the text.
+ @param [out] hyperlinkIndex
+ Returns the 0 based index of the hyperlink that is associated with this
+ character index, or -1 if charIndex is not on a link.
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is -1
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT hyperlinkIndex
+ (
+ [in] long charIndex,
+ [out, retval] long *hyperlinkIndex
+ );
+
+}
diff --git a/src/3rdparty/iaccessible2/idl/AccessibleImage.idl b/src/3rdparty/iaccessible2/idl/AccessibleImage.idl
new file mode 100644
index 0000000000..e347614e29
--- /dev/null
+++ b/src/3rdparty/iaccessible2/idl/AccessibleImage.idl
@@ -0,0 +1,111 @@
+/*************************************************************************
+ *
+ * File Name (AccessibleImage.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2010 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+import "objidl.idl";
+import "oaidl.idl";
+import "oleacc.idl";
+import "IA2CommonTypes.idl";
+
+/** @brief This interface represents images and icons.
+
+ This interface is used for a representation of images like icons on buttons.
+ %IAccessibleImage only needs to be implemented in certain situations. Some
+ examples are:
+ <ol>
+ <li>The accessible name and description are not enough to fully
+ describe the image, e.g. when the accessible description is used to define the
+ behavior of an actionable image and the image itself conveys semantically
+ significant information.
+ <li>The user can edit the content that includes an
+ image and therefore the user needs to be able to review the image's position.
+ </ol>
+*/
+[object, uuid(FE5ABB3D-615E-4f7b-909F-5F0EDA9E8DDE)]
+interface IAccessibleImage : IUnknown
+{
+ /** @brief Returns the localized description of the image.
+ @param [out] description
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ */
+ [propget] HRESULT description
+ (
+ [out, retval] BSTR *description
+ );
+
+ /** @brief Returns the coordinates of the image.
+ @param [in] coordinateType
+ Specifies whether the returned coordinates should be relative to the screen or the parent object.
+ @param [out] x
+ @param [out] y
+ @retval S_OK
+ */
+ [propget] HRESULT imagePosition
+ (
+ [in] enum IA2CoordinateType coordinateType,
+ [out] long *x,
+ [out, retval] long *y
+ );
+
+ /** @brief Returns the size of the image in units specified by parent's coordinate system.
+ @param [out] height
+ @param [out] width
+ @retval S_OK
+ */
+
+ [propget] HRESULT imageSize
+ (
+ [out] long *height,
+ [out, retval] long *width
+ );
+}
diff --git a/src/3rdparty/iaccessible2/idl/AccessibleRelation.idl b/src/3rdparty/iaccessible2/idl/AccessibleRelation.idl
new file mode 100644
index 0000000000..b0c6dfcc97
--- /dev/null
+++ b/src/3rdparty/iaccessible2/idl/AccessibleRelation.idl
@@ -0,0 +1,197 @@
+/*************************************************************************
+ *
+ * File Name (AccessibleRelation.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2010 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+import "objidl.idl";
+import "oaidl.idl";
+import "oleacc.idl";
+
+/** @defgroup grpRelations Relations
+ Use the following constants to compare against the BSTRs returned by
+ IAccessibleRelation::relationType.
+*/
+///@{
+
+/** Some attribute of this object is affected by a target object. */
+const WCHAR *const IA2_RELATION_CONTROLLED_BY = L"controlledBy";
+
+/** This object is interactive and controls some attribute of a target object. */
+const WCHAR *const IA2_RELATION_CONTROLLER_FOR = L"controllerFor";
+
+/** This object is described by the target object. */
+const WCHAR *const IA2_RELATION_DESCRIBED_BY = L"describedBy";
+
+/** This object is describes the target object. */
+const WCHAR *const IA2_RELATION_DESCRIPTION_FOR = L"descriptionFor";
+
+/** This object is embedded by a target object. */
+const WCHAR *const IA2_RELATION_EMBEDDED_BY = L"embeddedBy";
+
+/** This object embeds a target object. This relation can be used on the
+ OBJID_CLIENT accessible for a top level window to show where the content
+ areas are.
+*/
+const WCHAR *const IA2_RELATION_EMBEDS = L"embeds";
+
+/** Content flows to this object from a target object.
+ This relation and IA2_RELATION_FLOWS_TO are useful to tie text and non-text
+ objects together in order to allow assistive technology to follow the
+ intended reading order.
+*/
+const WCHAR *const IA2_RELATION_FLOWS_FROM = L"flowsFrom";
+
+/** Content flows from this object to a target object. */
+const WCHAR *const IA2_RELATION_FLOWS_TO = L"flowsTo";
+
+/** This object is label for a target object. */
+const WCHAR *const IA2_RELATION_LABEL_FOR = L"labelFor";
+
+/** This object is labelled by a target object. Note that the double L spelling
+ which follows is preferred. Please use it instead. This single L version may
+ be removed in a later version.
+*/
+const WCHAR *const IA2_RELATION_LABELED_BY = L"labelledBy";
+
+/** This object is labelled by a target object. */
+const WCHAR *const IA2_RELATION_LABELLED_BY = L"labelledBy";
+
+/** This object is a member of a group of one or more objects. When
+ there is more than one object in the group each member may have one and the
+ same target, e.g. a grouping object. It is also possible that each member has
+ multiple additional targets, e.g. one for every other member in the group.
+*/
+const WCHAR *const IA2_RELATION_MEMBER_OF = L"memberOf";
+
+/** This object is a child of a target object. */
+const WCHAR *const IA2_RELATION_NODE_CHILD_OF = L"nodeChildOf";
+
+/** This object is a parent window of the target object. */
+const WCHAR *const IA2_RELATION_PARENT_WINDOW_OF = L"parentWindowOf";
+
+/** This object is a transient component related to the target object.
+ When this object is activated the target object doesn't lose focus.
+*/
+const WCHAR *const IA2_RELATION_POPUP_FOR = L"popupFor";
+
+/** This object is a sub window of a target object. */
+const WCHAR *const IA2_RELATION_SUBWINDOW_OF = L"subwindowOf";
+
+///@}
+
+/// This interface gives access to an object's set of relations.
+[object, uuid(7CDF86EE-C3DA-496a-BDA4-281B336E1FDC)]
+interface IAccessibleRelation : IUnknown
+{
+ /** @brief Returns the type of the relation.
+ @param [out] relationType
+ The strings returned are defined @ref grpRelations "in this section of the documentation".
+ @retval S_OK
+ */
+ [propget] HRESULT relationType
+ (
+ [out, retval] BSTR *relationType
+ );
+
+ /** @brief Returns a localized version of the relation type.
+ @param [out] localizedRelationType
+ @retval S_OK
+ */
+ [propget] HRESULT localizedRelationType
+ (
+ [out, retval] BSTR *localizedRelationType
+ );
+
+ /** @brief Returns the number of targets for this relation.
+ @param [out] nTargets
+ @retval S_OK
+ */
+ [propget] HRESULT nTargets
+ (
+ [out, retval] long *nTargets
+ );
+
+ /** @brief Returns one accessible relation target.
+ @param [in] targetIndex
+ 0 based index
+ @param [out] target
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ @note Use QueryInterface to get IAccessible2.
+ */
+ [propget] HRESULT target
+ (
+ [in] long targetIndex,
+ [out, retval] IUnknown **target
+ );
+
+ /** @brief Returns multiple accessible relation targets
+ @param [in] maxTargets
+ maximum size of the array allocated by the client
+ @param [out] targets
+ The array of target objects. Note that this array is to be allocated by the
+ client and freed when no longer needed. Refer to @ref _arrayConsideration
+ "Special Consideration when using Arrays" for more details. You will need to use
+ QueryInterface on the IUnknown to get the IAccessible2.
+ @param [out] nTargets
+ actual number of targets in the returned array (not more than maxTargets)
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed, e.g. a negative value
+ */
+ [propget] HRESULT targets
+ (
+ [in] long maxTargets,
+ [out, size_is(maxTargets), length_is(*nTargets)]
+ IUnknown **targets,
+ [out, retval] long *nTargets
+ );
+
+}
diff --git a/src/3rdparty/iaccessible2/idl/AccessibleRole.idl b/src/3rdparty/iaccessible2/idl/AccessibleRole.idl
new file mode 100644
index 0000000000..385e02d05a
--- /dev/null
+++ b/src/3rdparty/iaccessible2/idl/AccessibleRole.idl
@@ -0,0 +1,293 @@
+/*************************************************************************
+ *
+ * File Name (AccessibleRole.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2010 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+import "objidl.idl";
+
+/** Collection of roles
+
+ This enumerator defines an extended set of accessible roles of objects implementing
+ the %IAccessible2 interface. These roles are in addition to the MSAA roles obtained
+ through the MSAA get_accRole method. Examples are 'footnote', 'heading', and
+ 'label'. You obtain an object's %IAccessible2 roles by calling IAccessible2::role.
+*/
+enum IA2Role {
+
+ /** Unknown role. The object contains some Accessible information, but its
+ role is not known.
+ */
+ IA2_ROLE_UNKNOWN = 0,
+
+ /** An object that can be drawn into and to manage events from the objects
+ drawn into it. Also refer to ::IA2_ROLE_FRAME,
+ ::IA2_ROLE_GLASS_PANE, and ::IA2_ROLE_LAYERED_PANE.
+ */
+ IA2_ROLE_CANVAS = 0x401,
+
+ /// A caption describing another object.
+ IA2_ROLE_CAPTION,
+
+ /// Used for check buttons that are menu items.
+ IA2_ROLE_CHECK_MENU_ITEM,
+
+ /// A specialized dialog that lets the user choose a color.
+ IA2_ROLE_COLOR_CHOOSER,
+
+ /// A date editor.
+ IA2_ROLE_DATE_EDITOR,
+
+ /** An iconified internal frame in an ::IA2_ROLE_DESKTOP_PANE.
+ Also refer to ::IA2_ROLE_INTERNAL_FRAME.
+ */
+ IA2_ROLE_DESKTOP_ICON,
+
+ /** A desktop pane. A pane that supports internal frames and iconified
+ versions of those internal frames. Also refer to ::IA2_ROLE_INTERNAL_FRAME.
+ */
+ IA2_ROLE_DESKTOP_PANE,
+
+ /** A directory pane. A pane that allows the user to navigate through
+ and select the contents of a directory. May be used by a file chooser.
+ Also refer to ::IA2_ROLE_FILE_CHOOSER.
+ */
+ IA2_ROLE_DIRECTORY_PANE,
+
+ /** An editable text object in a toolbar. <b>Deprecated.</b>
+ The edit bar role was meant for a text area in a tool bar. However, to detect
+ a text area in a tool bar the AT can query the parent.
+ */
+ IA2_ROLE_EDITBAR,
+
+ /// Embedded (OLE) object.
+ IA2_ROLE_EMBEDDED_OBJECT,
+
+ /// Text that is used as an endnote (footnote at the end of a chapter or section).
+ IA2_ROLE_ENDNOTE,
+
+ /** A file chooser. A specialized dialog that displays the files in the
+ directory and lets the user select a file, browse a different directory,
+ or specify a filename. May use the directory pane to show the contents of
+ a directory.
+ Also refer to ::IA2_ROLE_DIRECTORY_PANE.
+ */
+ IA2_ROLE_FILE_CHOOSER,
+
+ /** A font chooser. A font chooser is a component that lets the user pick
+ various attributes for fonts.
+ */
+ IA2_ROLE_FONT_CHOOSER,
+
+ /** Footer of a document page.
+ Also refer to ::IA2_ROLE_HEADER.
+ */
+ IA2_ROLE_FOOTER,
+
+ /// Text that is used as a footnote. Also refer to ::IA2_ROLE_ENDNOTE.
+ IA2_ROLE_FOOTNOTE,
+
+ /** A container of form controls. An example of the use of this role is to
+ represent an HTML FORM tag.
+ */
+ IA2_ROLE_FORM,
+
+ /** Frame role. A top level window with a title bar, border, menu bar, etc.
+ It is often used as the primary window for an application. Also refer to
+ ::IA2_ROLE_CANVAS and the MSAA roles of dialog and window.
+ */
+ IA2_ROLE_FRAME,
+
+ /** A glass pane. A pane that is guaranteed to be painted on top of all panes
+ beneath it. Also refer to ::IA2_ROLE_CANVAS, ::IA2_ROLE_INTERNAL_FRAME, and
+ ::IA2_ROLE_ROOT_PANE.
+ */
+ IA2_ROLE_GLASS_PANE,
+
+ /** Header of a document page.
+ Also refer to ::IA2_ROLE_FOOTER.
+ */
+ IA2_ROLE_HEADER,
+
+ /// Heading. Use the IAccessible2::attributes level attribute to determine the heading level.
+ IA2_ROLE_HEADING,
+
+ /// A small fixed size picture, typically used to decorate components.
+ IA2_ROLE_ICON,
+
+ /** An image map object. Usually a graphic with multiple hotspots, where
+ each hotspot can be activated resulting in the loading of another document
+ or section of a document.
+ */
+ IA2_ROLE_IMAGE_MAP,
+
+ /** An object which is used to allow input of characters not found on a keyboard,
+ such as the input of Chinese characters on a Western keyboard.
+ */
+ IA2_ROLE_INPUT_METHOD_WINDOW,
+
+ /** An internal frame. A frame-like object that is clipped by a desktop pane.
+ The desktop pane, internal frame, and desktop icon objects are often used to
+ create multiple document interfaces within an application.
+ Also refer to ::IA2_ROLE_DESKTOP_ICON, ::IA2_ROLE_DESKTOP_PANE, and ::IA2_ROLE_FRAME.
+ */
+ IA2_ROLE_INTERNAL_FRAME,
+
+ /// An object used to present an icon or short string in an interface.
+ IA2_ROLE_LABEL,
+
+ /** A layered pane. A specialized pane that allows its children to be drawn
+ in layers, providing a form of stacking order. This is usually the pane that
+ holds the menu bar as well as the pane that contains most of the visual
+ components in a window.
+ Also refer to ::IA2_ROLE_CANVAS, ::IA2_ROLE_GLASS_PANE, and ::IA2_ROLE_ROOT_PANE.
+ */
+ IA2_ROLE_LAYERED_PANE,
+
+ /// An embedded note which is not visible until activated.
+ IA2_ROLE_NOTE,
+
+ /** A specialized pane whose primary use is inside a dialog.
+ Also refer to MSAA's dialog role.
+ */
+ IA2_ROLE_OPTION_PANE,
+
+ /** An object representing a page of document content. It is used in documents
+ which are accessed by the user on a page by page basis.
+ */
+ IA2_ROLE_PAGE,
+
+ /// A paragraph of text.
+ IA2_ROLE_PARAGRAPH,
+
+ /** A radio button that is a menu item.
+ Also refer to MSAA's button and menu item roles.
+ */
+ IA2_ROLE_RADIO_MENU_ITEM,
+
+ /** An object which is redundant with another object in the accessible hierarchy.
+ ATs typically ignore objects with this role.
+ */
+ IA2_ROLE_REDUNDANT_OBJECT,
+
+ /** A root pane. A specialized pane that has a glass pane and a layered pane
+ as its children.
+ Also refer to ::IA2_ROLE_GLASS_PANE and ::IA2_ROLE_LAYERED_PANE
+ */
+ IA2_ROLE_ROOT_PANE,
+
+ /** A ruler such as those used in word processors.
+ */
+ IA2_ROLE_RULER,
+
+ /** A scroll pane. An object that allows a user to incrementally view a large
+ amount of information. Its children can include scroll bars and a viewport.
+ Also refer to ::IA2_ROLE_VIEW_PORT and MSAA's scroll bar role.
+ */
+ IA2_ROLE_SCROLL_PANE,
+
+ /** A container of document content. An example of the use of this role is to
+ represent an HTML DIV tag. A section may be used as a region. A region is a
+ group of elements that together form a perceivable unit. A region does not
+ necessarily follow the logical structure of the content, but follows the
+ perceivable structure of the page. A region may have an attribute in the set
+ of IAccessible2::attributes which indicates that it is "live". A live region
+ is content that is likely to change in response to a timed change, a user
+ event, or some other programmed logic or event.
+ */
+ IA2_ROLE_SECTION,
+
+ /// Object with graphical representation used to represent content on draw pages.
+ IA2_ROLE_SHAPE,
+
+ /** A split pane. A specialized panel that presents two other panels at the
+ same time. Between the two panels is a divider the user can manipulate to make
+ one panel larger and the other panel smaller.
+ */
+ IA2_ROLE_SPLIT_PANE,
+
+ /** An object that forms part of a menu system but which can be "undocked"
+ from or "torn off" the menu system to exist as a separate window.
+ */
+ IA2_ROLE_TEAR_OFF_MENU,
+
+ /// An object used as a terminal emulator.
+ IA2_ROLE_TERMINAL,
+
+ /// Collection of objects that constitute a logical text entity.
+ IA2_ROLE_TEXT_FRAME,
+
+ /** A toggle button. A specialized push button that can be checked or unchecked,
+ but does not provide a separate indicator for the current state.
+ Also refer to MSAA's roles of push button, check box, and radio button.
+ <BR><B>Note:</B> IA2_ROLE_TOGGLE_BUTTON should not be used. Instead, use MSAA's
+ ROLE_SYSTEM_PUSHBUTTON and STATE_SYSTEM_PRESSED.
+ */
+ IA2_ROLE_TOGGLE_BUTTON,
+
+ /** A viewport. An object usually used in a scroll pane. It represents the
+ portion of the entire data that the user can see. As the user manipulates
+ the scroll bars, the contents of the viewport can change.
+ Also refer to ::IA2_ROLE_SCROLL_PANE.
+ */
+ IA2_ROLE_VIEW_PORT,
+
+ /** An object containing content which is complementary to the main content of
+ a document, but remains meaningful when separated from the main content. There
+ are various types of content that would appropriately have this role. For example,
+ in the case where content is delivered via a web portal to a web browser, this may
+ include but not be limited to show times, current weather, related articles, or
+ stocks to watch. The complementary role indicates that contained content is relevant
+ to the main content. If the complementary content is completely separable main
+ content, it may be appropriate to use a more general role.
+ */
+ IA2_ROLE_COMPLEMENTARY_CONTENT
+
+};
diff --git a/src/3rdparty/iaccessible2/idl/AccessibleStates.idl b/src/3rdparty/iaccessible2/idl/AccessibleStates.idl
new file mode 100644
index 0000000000..0304b643da
--- /dev/null
+++ b/src/3rdparty/iaccessible2/idl/AccessibleStates.idl
@@ -0,0 +1,209 @@
+/*************************************************************************
+ *
+ * File Name (AccessibleStates.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2010 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+import "objidl.idl";
+
+typedef long AccessibleStates;
+
+/** %IAccessible2 specific state bit constants
+
+ This enum defines the state bits returned by IAccessible2::states. The
+ %IAccessible2 state bits are in addition to those returned by MSAA.
+*/
+enum IA2States {
+
+/** Indicates a window is currently the active window, or is an active subelement
+ within a container or table.
+
+ This state can be used to indicate the current active item in a container, even
+ if the container itself is not currently active. In other words this would indicate
+ the item that will get focus if you tab to the container.
+
+ This information is important for knowing what to report for trees and potentially
+ other containers in a virtual buffer.
+
+ Also, see ::IA2_STATE_MANAGES_DESCENDANTS for more information.
+*/
+IA2_STATE_ACTIVE = 0x1,
+
+/** Indicates that the object is armed.
+
+ Used to indicate that the control is "pressed" and will be invoked when the
+ actuator, e.g. a mouse button, is "released". An AT which either monitors the
+ mouse or synthesizes mouse events might need to know that, and possibly a talking
+ interface would even let the user know about it. It could also potentially be
+ useful to on screen keyboards or test tools since the information does indicate
+ something about the state of the interface, for example, code operating asynchronously
+ might need to wait for the armed state to change before doing something else.
+
+*/
+IA2_STATE_ARMED = 0x2,
+
+/** Indicates the user interface object corresponding to this object no longer exists. */
+IA2_STATE_DEFUNCT = 0x4,
+
+/** An object with this state has a caret and implements the IAccessibleText interface.
+
+ Such fields may be read-only, so STATE_SYSTEM_READONLY is valid in combination
+ with IA2_STATE_EDITABLE.
+
+*/
+IA2_STATE_EDITABLE = 0x8,
+
+/** Indicates the orientation of this object is horizontal. */
+IA2_STATE_HORIZONTAL = 0x10,
+
+/** Indicates this object is minimized and is represented only by an icon. */
+IA2_STATE_ICONIFIED = 0x20,
+
+/** Indicates an input validation failure. */
+IA2_STATE_INVALID_ENTRY = 0x40,
+
+/** Indicates that this object manages its children.
+
+ Note: Due to the fact that MSAA's WinEvents don't allow the active child index
+ to be passed on the IA2_EVENT_ACTIVE_DESCENDANT_CHANGED event, the manages
+ descendants scheme can't be used. Instead the active child object has to fire
+ MSAA's EVENT_OBJECT_FOCUS. In a future release a new event mechanism may be
+ added to provide for event specific data to be passed with the event. At that
+ time the IA2_EVENT_ACTIVE_DECENDENT_CHANGED event and
+ IA2_STATE_MANAGES_DESCENDANTS state would be useful.
+*/
+IA2_STATE_MANAGES_DESCENDANTS = 0x80,
+
+/** Indicates that an object is modal.
+
+ Modal objects have the behavior that something must be done with the object
+ before the user can interact with an object in a different window.
+*/
+IA2_STATE_MODAL = 0x100,
+
+/** Indicates this text object can contain multiple lines of text. */
+IA2_STATE_MULTI_LINE = 0x200,
+
+/** Indicates this object paints every pixel within its rectangular region. */
+IA2_STATE_OPAQUE = 0x400,
+
+/** Indicates that user interaction is required.
+
+ An example of when this state is used is when a field in a form must be filled
+ before a form can be processed.
+*/
+IA2_STATE_REQUIRED = 0x800,
+
+/** Indicates an object which supports text selection.
+
+ Note: This is different than MSAA STATE_SYSTEM_SELECTABLE.
+*/
+IA2_STATE_SELECTABLE_TEXT = 0x1000,
+
+/** Indicates that this text object can contain only a single line of text. */
+IA2_STATE_SINGLE_LINE = 0x2000,
+
+/** Indicates that the accessible object is stale.
+
+ This state is used when the accessible object no longer accurately
+ represents the state of the object which it is representing such as when an
+ object is transient or when an object has been or is in the process of being
+ destroyed or when the object's index in its parent has changed.
+*/
+IA2_STATE_STALE = 0x4000,
+
+/** Indicates that the object implements autocompletion.
+
+ This state indicates that a text control will respond to the input of
+ one ore more characters and cause a sub-item to become selected. The
+ selection may also result in events fired on the parent object.
+*/
+IA2_STATE_SUPPORTS_AUTOCOMPLETION = 0x8000,
+
+/** Indicates this object is transient.
+
+ An object has this state when its parent object has the state ::IA2_STATE_MANAGES_DESCENDANTS.
+ For example, a list item object may be managed by its parent list object and may only
+ exist as long as the object is actually rendered. Similarly a table cell's accessible
+ object may exist only while the cell has focus. However, from the perspective of an
+ assistive technology a transient object behaves like a non-transient object. As a
+ result it is likely that this state is not of use to an assistive technology, but it
+ is provided in case an assistive technology determines that knowledge of the transient
+ nature of the object is useful and also for harmony with the Linux accessibility API.
+
+ Also, see ::IA2_STATE_MANAGES_DESCENDANTS for more information.
+ */
+IA2_STATE_TRANSIENT = 0x10000,
+
+/** Indicates the orientation of this object is vertical. */
+IA2_STATE_VERTICAL = 0x20000,
+
+/** Indicates this object is checkable.
+
+ The standard checkable objects are check boxes, radio buttons, check box menu
+ items, radio menu items, and toggle buttons. Since assistive technology will
+ determine that these objects are checkable via the object's role the checkable
+ state is not required. However, this state is necessary in those cases where
+ an object has a role which is not one of the previously mentioned roles. An
+ example is a table cell which indicates whether or not an email has an attachment,
+ whether or not an mail is considered spam, and whether or not an email has been read.
+ */
+IA2_STATE_CHECKABLE = 0x40000,
+
+/** Indicates this object is pinned.
+
+ This state indicates that an object is fixed at a certain location. One example
+ is a browser tab that when pinned cannot be moved until unpinned. Another example
+ is a movable or floating object that when pinned remains in its pinned location
+ until being unpinned.
+ */
+IA2_STATE_PINNED = 0x80000
+
+};
diff --git a/src/3rdparty/iaccessible2/idl/AccessibleTable.idl b/src/3rdparty/iaccessible2/idl/AccessibleTable.idl
new file mode 100644
index 0000000000..69c99a7515
--- /dev/null
+++ b/src/3rdparty/iaccessible2/idl/AccessibleTable.idl
@@ -0,0 +1,551 @@
+/*************************************************************************
+ *
+ * File Name (AccessibleTable.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2010 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+import "objidl.idl";
+import "oaidl.idl";
+import "oleacc.idl";
+import "Accessible2.idl";
+import "IA2CommonTypes.idl";
+
+/** @brief This interface gives access to a two-dimensional table.
+
+ Typically all accessible objects that represent cells or cell-clusters of a table
+ will be at the same time children of the table. In this case IAccessible2::indexInParent
+ will return the child index which then can be used when calling IAccessibleTable::rowIndex
+ and IAccessibleTable::columnIndex.
+
+ However, in some cases that kind of implementation will not be possible. When
+ the table cells are not direct children of a table, the object representing
+ the cell can define a "table-cell-index" object attribute identifying the 0
+ based table cell index. This object attribute is obtained by parsing the
+ attribute string returned by IAccessible2::attributes. The "table-cell-index"
+ attribute can be used just like a child index of the typical case. ATs should
+ first test for the presence of the "table-cell-index" attribute and if it is not
+ present then IAccessible2::indexInParent can be used as in the typical case
+ where cells are direct children of the table.
+
+ The range of valid coordinates for this interface are implementation dependent.
+ However, that range includes at least the intervals from the from the first row
+ or column with the index 0 up to the last (but not including) used row or column
+ as returned by IAccessibleTable::nRows and IAccessibleTable::nColumns.
+
+ Note that newer implementations are now using IAccessibleTable2 and IAccessibleTableCell
+ rather than this interface.
+*/
+[object, uuid(35AD8070-C20C-4fb4-B094-F4F7275DD469)]
+interface IAccessibleTable : IUnknown
+{
+
+ /** @brief Returns the accessible object at the specified row and column in
+ the table. This object could be an IAccessible or an IAccessible2.
+ @param [in] row
+ The 0 based row index for which to retrieve the cell.
+ @param [in] column
+ The 0 based column index for which to retrieve the cell.
+ @param [out] accessible
+ If both row and column index are valid then the corresponding accessible
+ object is returned that represents the requested cell regardless of whether
+ the cell is currently visible (on the screen).
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed, [out] value is NULL
+ */
+ [propget] HRESULT accessibleAt
+ (
+ [in] long row,
+ [in] long column,
+ [out, retval] IUnknown **accessible
+ );
+
+ /** @brief Returns the caption for the table. The returned object could be
+ an IAccessible or an IAccessible2.
+ @param [out] accessible
+ If the table has a caption then a reference to it is returned, else a NULL
+ pointer is returned.
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ */
+ [propget] HRESULT caption
+ (
+ [out, retval] IUnknown **accessible
+ );
+
+ /** @brief Translates the given row and column indexes into the corresponding cell index.
+ @param [in] rowIndex
+ 0 based row index for the cell.
+ @param [in] columnIndex
+ 0 based column index for the cell.
+ @param [out] cellIndex
+ Returns the 0 based index of the cell at the specified row and column indexes.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed, [out] value is 0
+ @note The returned value is not necessarily a child index of the immediate parent.
+ In cases where the table cells are not direct children of the table the index
+ is actually the cell index, i.e. conceptually it's an index into a one dimensional
+ array of cells laid out in row order.
+ */
+ [propget] HRESULT childIndex
+ (
+ [in] long rowIndex,
+ [in] long columnIndex,
+ [out, retval] long *cellIndex
+ );
+
+ /** @brief Returns the description text of the specified column in the table.
+ @param [in] column
+ The 0 based index of the column for which to retrieve the description.
+ @param [out] description
+ Returns the description text of the specified column in the table if such a
+ description exists. Otherwise a NULL pointer is returned.
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ @retval E_INVALIDARG if bad [in] passed, [out] value is NULL
+ */
+ [propget] HRESULT columnDescription
+ (
+ [in] long column,
+ [out, retval] BSTR *description
+ );
+
+ /** @brief Returns the number of columns occupied by the accessible object
+ at the specified row and column in the table.
+
+ The result is greater than 1 if the specified cell spans multiple columns.
+ @param [in] row
+ 0 based row index of the accessible for which to return the column extent.
+ @param [in] column
+ 0 based column index of the accessible for which to return the column extent.
+ @param [out] nColumnsSpanned
+ Returns the 1 based column extent of the specified cell.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed, [out] value is 0
+ */
+ [propget] HRESULT columnExtentAt
+ (
+ [in] long row,
+ [in] long column,
+ [out, retval] long *nColumnsSpanned
+ );
+
+ /** @brief Returns the column headers as an %IAccessibleTable object.
+
+ Content and size of the returned table are implementation dependent.
+ @param [out] accessibleTable
+ The column header
+ @param [out] startingRowIndex
+ The 0 based row index where the header starts, usually 0.
+ @retval S_OK
+ @retval S_FALSE if there is no header, [out] values are NULL and 0 respectively
+ */
+ [propget] HRESULT columnHeader
+ (
+ [out] IAccessibleTable **accessibleTable,
+ [out, retval] long *startingRowIndex
+ );
+
+ /** @brief Translates the given cell index into the corresponding column index.
+ @param [in] cellIndex
+ 0 based index of the cell in the parent or closest ancestor table. Typically this
+ is the value returned from IAccessible2::indexInParent, but in the case where the
+ table cells are not direct children of the table this is the cell index specified
+ by the "table-cell-index" object attribute obtained from parsing the attributes
+ string returned by calling IAccessible2::attributes on the cell object.
+ @param [out] columnIndex
+ Returns the 0 based column index of the cell of the specified child or the index of
+ the first column if the child spans multiple columns.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed, [out] value is 0
+ */
+ [propget] HRESULT columnIndex
+ (
+ [in] long cellIndex,
+ [out, retval] long *columnIndex
+ );
+
+ /** @brief Returns the total number of columns in table
+ @param [out] columnCount
+ Number of columns in table (including columns outside the current viewport)
+ @retval S_OK
+ */
+ [propget] HRESULT nColumns
+ (
+ [out, retval] long *columnCount
+ );
+
+ /** @brief Returns the total number of rows in table
+ @param [out] rowCount
+ Number of rows in table (including rows outside the current viewport)
+ @retval S_OK
+ */
+ [propget] HRESULT nRows
+ (
+ [out, retval] long *rowCount
+ );
+
+ /** @brief Returns the total number of selected cells
+ @param [out] cellCount
+ Number of cells currently selected
+ @retval S_OK
+ */
+ [propget] HRESULT nSelectedChildren
+ (
+ [out, retval] long *cellCount
+ );
+
+ /** @brief Returns the total number of selected columns
+ @param [out] columnCount
+ Number of columns currently selected
+ @retval S_OK
+ */
+ [propget] HRESULT nSelectedColumns
+ (
+ [out, retval] long *columnCount
+ );
+
+ /** @brief Returns the total number of selected rows
+ @param [out] rowCount
+ Number of rows currently selected
+ @retval S_OK
+ */
+ [propget] HRESULT nSelectedRows
+ (
+ [out, retval] long *rowCount
+ );
+
+ /** @brief Returns the description text of the specified row in the table.
+ @param [in] row
+ The 0 based index of the row for which to retrieve the description.
+ @param [out] description
+ Returns the description text of the specified row in the table if such a
+ description exists. Otherwise a NULL pointer is returned.
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ @retval E_INVALIDARG if bad [in] passed, [out] value is NULL
+ */
+ [propget] HRESULT rowDescription
+ (
+ [in] long row,
+ [out, retval] BSTR *description
+ );
+
+ /** @brief Returns the number of rows occupied by the accessible object
+ at the specified row and column in the table.
+
+ The result is greater than 1 if the specified cell spans multiple rows.
+ @param [in] row
+ 0 based row index of the accessible for which to return the row extent.
+ @param [in] column
+ 0 based column index of the accessible for which to return the row extent.
+ @param [out] nRowsSpanned
+ Returns the row extent of the specified cell.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed, [out] value is 0
+ */
+ [propget] HRESULT rowExtentAt
+ (
+ [in] long row,
+ [in] long column,
+ [out, retval] long *nRowsSpanned
+ );
+
+ /** @brief Returns the row headers as an %IAccessibleTable object.
+
+ Content and size of the returned table are implementation dependent.
+ @param [out] accessibleTable
+ The row header.
+ @param [out] startingColumnIndex
+ The 0 based column index where the header starts, usually 0.
+ @retval S_OK
+ @retval S_FALSE if there is no header, [out] values are NULL and 0 respectively
+ */
+ [propget] HRESULT rowHeader
+ (
+ [out] IAccessibleTable **accessibleTable,
+ [out, retval] long *startingColumnIndex
+ );
+
+ /** @brief Translates the given cell index into a row index.
+ @param [in] cellIndex
+ 0 based index of the cell in the parent or closest ancestor table. Typically this
+ is the value returned from IAccessible2::indexInParent, but in the case where the
+ table cells are not direct children of the table this is the cell index specified
+ by the "table-cell-index" object attribute obtained from parsing the attributes
+ string returned by calling IAccessible2::attributes on the cell object.
+ @param [out] rowIndex
+ 0 based row index
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed, [out] value is 0
+ */
+ [propget] HRESULT rowIndex
+ (
+ [in] long cellIndex,
+ [out, retval] long *rowIndex
+ );
+
+ /** @brief Returns a list of cell indexes currently selected (0 based).
+ @param [in] maxChildren
+ This parameter is ignored. Refer to @ref _arrayConsideration
+ "Special Consideration when using Arrays" for more details.
+ @param [out] children
+ An array of cell indexes of selected cells (each index is 0 based),
+ allocated by the server. Free it with CoTaskMemFree.
+ @param [out] nChildren
+ The number of cell indexes returned; the size of the returned array.
+ @retval S_OK
+ @retval S_FALSE if there are none, [out] values are NULL and 0 respectively
+ */
+ [propget] HRESULT selectedChildren
+ (
+ [in] long maxChildren,
+ [out, size_is(,maxChildren), length_is(,*nChildren)] long **children,
+ [out, retval] long *nChildren
+ );
+
+ /** @brief Returns a list of column indexes currently selected (0 based).
+ @param [in] maxColumns
+ This parameter is ignored. Refer to @ref _arrayConsideration
+ "Special Consideration when using Arrays" for more details.
+ @param [out] columns
+ An array of column indexes of selected columns (each index is 0 based), allocated
+ by the server. Free it with CoTaskMemFree.
+ @param [out] nColumns
+ The number of column indexes returned; the size of the returned array.
+ @retval S_OK
+ @retval S_FALSE if there are none, [out] values are NULL and 0 respectively
+ */
+ [propget] HRESULT selectedColumns
+ (
+ [in] long maxColumns,
+ [out, size_is(,maxColumns), length_is(,*nColumns)] long **columns,
+ [out, retval] long *nColumns
+ );
+
+ /** @brief Returns a list of row indexes currently selected (0 based).
+ @param [in] maxRows
+ This parameter is ignored. Refer to @ref _arrayConsideration
+ "Special Consideration when using Arrays" for more details.
+ @param [out] rows
+ An array of row indexes of selected rows (each index is 0 based), allocated
+ by the server. Free it with CoTaskMemFree.
+ @param [out] nRows
+ The number of row indexes returned; the size of the returned array.
+ @retval S_OK
+ @retval S_FALSE if there are none, [out] values are NULL and 0 respectively
+ */
+ [propget] HRESULT selectedRows
+ (
+ [in] long maxRows,
+ [out, size_is(,maxRows), length_is(,*nRows)] long **rows,
+ [out, retval] long *nRows
+ );
+
+ /** @brief Returns the summary description of the table. The returned object could be
+ an IAccessible or an IAccessible2.
+ @param [out] accessible
+ Returns a reference to an implementation dependent accessible object
+ representing the table's summary or a NULL pointer if the table
+ does not support a summary.
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ */
+ [propget] HRESULT summary
+ (
+ [out, retval] IUnknown **accessible
+ );
+
+ /** @brief Returns a boolean value indicating whether the specified column is
+ completely selected.
+ @param [in] column
+ 0 based index of the column for which to determine whether it is selected.
+ @param [out] isSelected
+ Returns TRUE if the specified column is selected completely and FALSE otherwise.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed, [out] value is FALSE
+ */
+ [propget] HRESULT isColumnSelected
+ (
+ [in] long column,
+ [out, retval] boolean *isSelected
+ );
+
+ /** @brief Returns a boolean value indicating whether the specified row is completely
+ selected.
+ @param [in] row
+ 0 based index of the row for which to determine whether it is selected.
+ @param [out] isSelected
+ Returns TRUE if the specified row is selected completely and FALSE otherwise.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed, [out] value is FALSE
+ */
+ [propget] HRESULT isRowSelected
+ (
+ [in] long row,
+ [out, retval] boolean *isSelected
+ );
+
+ /** @brief Returns a boolean value indicating whether the specified cell is selected.
+ @param [in] row
+ 0 based index of the row for the cell to determine whether it is selected.
+ @param [in] column
+ 0 based index of the column for the cell to determine whether it is selected.
+ @param [out] isSelected
+ Returns TRUE if the specified cell is selected and FALSE otherwise.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed, [out] value is FALSE
+ */
+ [propget] HRESULT isSelected
+ (
+ [in] long row,
+ [in] long column,
+ [out, retval] boolean *isSelected
+ );
+
+ /** @brief Selects a row and unselects all previously selected rows.
+ @param [in] row
+ 0 based index of the row to be selected.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ HRESULT selectRow
+ (
+ [in] long row
+ );
+
+ /** @brief Selects a column and unselects all previously selected columns.
+ @param [in] column
+ 0 based index of the column to be selected.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ HRESULT selectColumn
+ (
+ [in] long column
+ );
+
+ /** @brief Unselects one row, leaving other selected rows selected (if any).
+ @param [in] row
+ 0 based index of the row to be unselected.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ HRESULT unselectRow
+ (
+ [in] long row
+ );
+
+ /** @brief Unselects one column, leaving other selected columns selected (if any).
+ @param [in] column
+ 0 based index of the column to be unselected.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ HRESULT unselectColumn
+ (
+ [in] long column
+ );
+
+ /** @brief Given a cell index, gets the row and column indexes and extents of a cell
+ and whether or not it is selected.
+
+ This is a convenience function. It is not mandatory to implement it.
+ @param [in] index
+ 0 based index of this cell in the table.
+ @param [out] row
+ 0 based row index.
+ @param [out] column
+ 0 based column index.
+ @param [out] rowExtents
+ Number of cells spanned by this cell in this row.
+ @param [out] columnExtents
+ Number of cells spanned by this cell in this column.
+ @param [out] isSelected
+ Indicates if the specified cell is selected.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed, [out] values are 0s and FALSE respectively
+ */
+ [propget] HRESULT rowColumnExtentsAtIndex
+ (
+ [in] long index,
+ [out] long *row,
+ [out] long *column,
+ [out] long *rowExtents,
+ [out] long *columnExtents,
+ [out, retval] boolean *isSelected
+ );
+
+ /** @brief Returns the type and extents describing how a table changed.
+
+ Provided for use by the IA2_EVENT_TABLE_MODEL_CHANGED event handler.
+
+ This data is only guaranteed to be valid while the thread notifying the event
+ continues. Once the handler has returned, the validity of the data depends on
+ how the server manages the life cycle of its objects. Also, note that the server
+ may have different life cycle management strategies for controls depending on
+ whether or not a control manages its children. Lists, trees, and tables can have
+ a large number of children and thus it's possible that the child objects for those
+ controls would only be created as needed. Servers should document their life cycle
+ strategy as this will be of interest to assistive technology or script engines
+ accessing data out of process or from other threads. Servers only need to save the
+ most recent row and column values associated with the change and a scope of the
+ entire application is adequate.
+
+ @param [out] modelChange
+ A struct of (type(insert, delete, update), firstRow, lastRow, firstColumn, lastColumn).
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ */
+ [propget] HRESULT modelChange
+ (
+ [out, retval] IA2TableModelChange *modelChange
+ );
+
+}
diff --git a/src/3rdparty/iaccessible2/idl/AccessibleTable2.idl b/src/3rdparty/iaccessible2/idl/AccessibleTable2.idl
new file mode 100644
index 0000000000..9d7f3e4475
--- /dev/null
+++ b/src/3rdparty/iaccessible2/idl/AccessibleTable2.idl
@@ -0,0 +1,375 @@
+/*************************************************************************
+ *
+ * File Name (AccessibleTable2.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2010 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+import "objidl.idl";
+import "oaidl.idl";
+import "oleacc.idl";
+import "Accessible2.idl";
+import "IA2CommonTypes.idl";
+
+/** @brief This interface gives access to a two-dimensional table.
+
+ Please also refer to the IAccessibleTableCell interface.
+
+ If you want to support older applications you should also support the
+ IAccessibleTable inteface.
+*/
+[object, uuid(6167f295-06f0-4cdd-a1fa-02e25153d869)]
+interface IAccessibleTable2 : IUnknown
+{
+
+ /** @brief Returns the accessible object at the specified row and column in
+ the table. This object could be an IAccessible or an IAccessible2.
+ @param [in] row
+ The 0 based row index for which to retrieve the cell.
+ @param [in] column
+ The 0 based column index for which to retrieve the cell.
+ @param [out] cell
+ If both row and column index are valid then the corresponding accessible
+ object is returned that represents the requested cell regardless of whether
+ the cell is currently visible (on the screen).
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT cellAt
+ (
+ [in] long row,
+ [in] long column,
+ [out, retval] IUnknown **cell
+ );
+
+ /** @brief Returns the caption for the table. The returned object could be
+ an IAccessible or an IAccessible2.
+ @param [out] accessible
+ If the table has a caption then a reference to it is returned, else a NULL
+ pointer is returned.
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ */
+ [propget] HRESULT caption
+ (
+ [out, retval] IUnknown **accessible
+ );
+
+ /** @brief Returns the description text of the specified column in the table.
+ @param [in] column
+ The 0 based index of the column for which to retrieve the description.
+ @param [out] description
+ Returns the description text of the specified column in the table if such a
+ description exists. Otherwise a NULL pointer is returned.
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT columnDescription
+ (
+ [in] long column,
+ [out, retval] BSTR *description
+ );
+
+
+ /** @brief Returns the total number of columns in table
+ @param [out] columnCount
+ Number of columns in table (including columns outside the current viewport)
+ @retval S_OK
+ */
+ [propget] HRESULT nColumns
+ (
+ [out, retval] long *columnCount
+ );
+
+ /** @brief Returns the total number of rows in table
+ @param [out] rowCount
+ Number of rows in table (including rows outside the current viewport)
+ @retval S_OK
+ */
+ [propget] HRESULT nRows
+ (
+ [out, retval] long *rowCount
+ );
+
+ /** @brief Returns the total number of selected cells
+ @param [out] cellCount
+ Number of cells currently selected
+ @retval S_OK
+ */
+ [propget] HRESULT nSelectedCells
+ (
+ [out, retval] long *cellCount
+ );
+
+ /** @brief Returns the total number of selected columns
+ @param [out] columnCount
+ Number of columns currently selected
+ @retval S_OK
+ */
+ [propget] HRESULT nSelectedColumns
+ (
+ [out, retval] long *columnCount
+ );
+
+ /** @brief Returns the total number of selected rows
+ @param [out] rowCount
+ Number of rows currently selected
+ @retval S_OK
+ */
+ [propget] HRESULT nSelectedRows
+ (
+ [out, retval] long *rowCount
+ );
+
+ /** @brief Returns the description text of the specified row in the table.
+ @param [in] row
+ The 0 based index of the row for which to retrieve the description.
+ @param [out] description
+ Returns the description text of the specified row in the table if such a
+ description exists. Otherwise a NULL pointer is returned.
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT rowDescription
+ (
+ [in] long row,
+ [out, retval] BSTR *description
+ );
+
+ /** @brief Returns a list of accessibles currently selected.
+ @param [out] cells
+ Pointer to an array of references to selected accessibles. The array is
+ allocated by the server with CoTaskMemAlloc and freed by the client with
+ CoTaskMemFree.
+ @param [out] nSelectedCells
+ The number of accessibles returned; the size of the returned array.
+ @retval S_OK
+ @retval S_FALSE if there are none, [out] values are NULL and 0 respectively
+ */
+ [propget] HRESULT selectedCells
+ (
+ [out, size_is(,*nSelectedCells,)] IUnknown ***cells,
+ [out, retval] long *nSelectedCells
+ );
+
+ /** @brief Returns a list of column indexes currently selected (0 based).
+ @param [out] selectedColumns
+ A pointer to an array of column indexes of selected columns (each index is
+ 0 based). The array is allocated by the server with CoTaskMemAlloc and
+ freed by the client with CoTaskMemFree.
+ @param [out] nColumns
+ The number of column indexes returned; the size of the returned array.
+ @retval S_OK
+ @retval S_FALSE if there are none, [out] values are NULL and 0 respectively
+ */
+ [propget] HRESULT selectedColumns
+ (
+ [out, size_is(,*nColumns)] long **selectedColumns,
+ [out, retval] long *nColumns
+ );
+
+ /** @brief Returns a list of row indexes currently selected (0 based).
+ @param [out] selectedRows
+ An array of row indexes of selected rows (each index is 0 based). The array
+ is allocated by the server with CoTaskMemAlloc and freed by the client with
+ CoTaskMemFree.
+ @param [out] nRows
+ The number of row indexes returned; the size of the returned array.
+ @retval S_OK
+ @retval S_FALSE if there are none, [out] values are NULL and 0 respectively
+ */
+ [propget] HRESULT selectedRows
+ (
+ [out, size_is(,*nRows)] long **selectedRows,
+ [out, retval] long *nRows
+ );
+
+ /** @brief Returns the summary description of the table. The returned object could be
+ an IAccessible or an IAccessible2.
+ @param [out] accessible
+ Returns a reference to an implementation dependent accessible object
+ representing the table's summary or a NULL pointer if the table
+ does not support a summary.
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ */
+ [propget] HRESULT summary
+ (
+ [out, retval] IUnknown **accessible
+ );
+
+ /** @brief Returns a boolean value indicating whether the specified column is
+ completely selected.
+ @param [in] column
+ 0 based index of the column for which to determine whether it is selected.
+ @param [out] isSelected
+ Returns TRUE if the specified column is selected completely and FALSE otherwise.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT isColumnSelected
+ (
+ [in] long column,
+ [out, retval] boolean *isSelected
+ );
+
+ /** @brief Returns a boolean value indicating whether the specified row is completely
+ selected.
+ @param [in] row
+ 0 based index of the row for which to determine whether it is selected.
+ @param [out] isSelected
+ Returns TRUE if the specified row is selected completely and FALSE otherwise.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT isRowSelected
+ (
+ [in] long row,
+ [out, retval] boolean *isSelected
+ );
+
+ /** @brief Selects a row and unselects all previously selected rows.
+
+ The behavior should mimic that of the application, but for those applications
+ which do not have a means in the GUI to select a full row of cells the behavior
+ should be as follows: First any selected rows in the table are unselected. Then
+ the entire row of cells for the specified row is selected. If any of the
+ cells in the selected row span additional rows, the cells in those rows
+ are also selected.
+ @param [in] row
+ 0 based index of the row to be selected.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ HRESULT selectRow
+ (
+ [in] long row
+ );
+
+ /** @brief Selects a column and unselects all previously selected columns.
+
+ The behavior should mimic that of the application, but for those applications
+ which do not have a means in the GUI to select a full column of cells the behavior
+ should be as follows: First any selected columns in the table are unselected. Then
+ the entire column of cells for the specified column is selected. If any of the
+ cells in the selected column span additional columns, the cells in those columns
+ are also selected.
+ @param [in] column
+ 0 based index of the column to be selected.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ HRESULT selectColumn
+ (
+ [in] long column
+ );
+
+ /** @brief Unselects one row, leaving other selected rows selected (if any).
+
+ The behavior should mimic that of the application, but for those applications
+ which do not have a means in the GUI to unselect a full row of cells the
+ behavior should be as follows: The entire row of cells for the specified
+ row is unselected. If any of the cells in the selected row span additional
+ rows, the cells in those rows are also unselected.
+ @param [in] row
+ 0 based index of the row to be unselected.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ HRESULT unselectRow
+ (
+ [in] long row
+ );
+
+ /** @brief Unselects one column, leaving other selected columns selected (if any).
+
+ The behavior should mimic that of the application, but for those applications
+ which do not have a means in the GUI to unselect a full column of cells the
+ behavior should be as follows: The entire column of cells for the specified
+ column is unselected. If any of the cells in the selected column span additional
+ columns, the cells in those columns are also unselected.
+ @param [in] column
+ 0 based index of the column to be unselected.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ HRESULT unselectColumn
+ (
+ [in] long column
+ );
+
+ /** @brief Returns the type and extents describing how a table changed.
+
+ Provided for use by the IA2_EVENT_TABLE_MODEL_CHANGED event handler.
+
+ This data is only guaranteed to be valid while the thread notifying the event
+ continues. Once the handler has returned, the validity of the data depends on
+ how the server manages the life cycle of its objects. Also, note that the server
+ may have different life cycle management strategies for controls depending on
+ whether or not a control manages its children. Lists, trees, and tables can have
+ a large number of children and thus it's possible that the child objects for those
+ controls would only be created as needed. Servers should document their life cycle
+ strategy as this will be of interest to assistive technology or script engines
+ accessing data out of process or from other threads. Servers only need to save the
+ most recent row and column values associated with the change and a scope of the
+ entire application is adequate.
+
+ @param [out] modelChange
+ A struct of (type(insert, delete, update), firstRow, lastRow, firstColumn, lastColumn).
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ */
+ [propget] HRESULT modelChange
+ (
+ [out, retval] IA2TableModelChange *modelChange
+ );
+
+}
diff --git a/src/3rdparty/iaccessible2/idl/AccessibleTableCell.idl b/src/3rdparty/iaccessible2/idl/AccessibleTableCell.idl
new file mode 100644
index 0000000000..a4cd988384
--- /dev/null
+++ b/src/3rdparty/iaccessible2/idl/AccessibleTableCell.idl
@@ -0,0 +1,194 @@
+/*************************************************************************
+ *
+ * File Name (AccessibleTableCell.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2010 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+import "objidl.idl";
+import "oaidl.idl";
+import "oleacc.idl";
+import "Accessible2.idl";
+
+/** @brief This interface gives access to the cells of a two-dimensional table.
+
+ Please also refer to the IAccessibleTable2 interface.
+
+*/
+[object, uuid(594116B1-C99F-4847-AD06-0A7A86ECE645)]
+interface IAccessibleTableCell : IUnknown
+{
+
+ /** @brief Returns the number of columns occupied by this cell accessible.
+
+ The result is greater than 1 if the specified cell spans multiple columns.
+ @param [out] nColumnsSpanned
+ Returns the 1 based column extent of the specified cell.
+ @retval S_OK
+ */
+ [propget] HRESULT columnExtent
+ (
+ [out, retval] long *nColumnsSpanned
+ );
+
+ /** @brief Returns the column headers as an array of cell accessibles.
+
+ @param [out] cellAccessibles
+ Pointer to an array of references to cell accessibles. The array is allocated
+ by the server. Free it with CoTaskMemFree.
+ @param [out] nColumnHeaderCells
+ The number of accessibles returned; the size of the returned array.
+ @retval S_OK
+ @retval S_FALSE if there is no header, [out] values are NULL and 0 respectively
+ */
+ [propget] HRESULT columnHeaderCells
+ (
+ [out, size_is(,*nColumnHeaderCells,)] IUnknown ***cellAccessibles,
+ [out, retval] long *nColumnHeaderCells
+ );
+
+ /** @brief Translates this cell accessible into the corresponding column index.
+
+ @param [out] columnIndex
+ Returns the 0 based column index of the cell of the specified cell or the index of
+ the first column if the cell spans multiple columns.
+ @retval S_OK
+ */
+ [propget] HRESULT columnIndex
+ (
+ [out, retval] long *columnIndex
+ );
+
+ /** @brief Returns the number of rows occupied by this cell accessible.
+
+ @param [out] nRowsSpanned
+ Returns the row extent of the specified cell.
+ @retval S_OK
+ */
+ [propget] HRESULT rowExtent
+ (
+ [out, retval] long *nRowsSpanned
+ );
+
+ /** @brief Returns the row headers as an array of cell accessibles.
+
+ @param [out] cellAccessibles
+ Pointer to an array of references to cell accessibles. The array is allocated
+ by the server. Free it with CoTaskMemFree.
+ @param [out] nRowHeaderCells
+ The number of accessibles returned; the size of the returned array.
+ @retval S_OK
+ @retval S_FALSE if there is no header, [out] values are NULL and 0 respectively
+ */
+ [propget] HRESULT rowHeaderCells
+ (
+ [out, size_is(,*nRowHeaderCells,)] IUnknown ***cellAccessibles,
+ [out, retval] long *nRowHeaderCells
+ );
+
+ /** @brief Translates this cell accessible into the corresponding row index.
+
+ @param [out] rowIndex
+ Returns the 0 based row index of the specified cell or the index of
+ the first row if the cell spans multiple rows.
+ @retval S_OK
+ */
+ [propget] HRESULT rowIndex
+ (
+ [out, retval] long *rowIndex
+ );
+
+ /** @brief Returns a boolean value indicating whether this cell is selected.
+
+ @param [out] isSelected
+ Returns TRUE if the specified cell is selected and FALSE otherwise.
+ @retval S_OK
+ */
+ [propget] HRESULT isSelected
+ (
+ [out, retval] boolean *isSelected
+ );
+
+ /** @brief Gets the row and column indexes and extents of this cell accessible
+ and whether or not it is selected.
+
+ This is a convenience function. It is not mandatory to implement it.
+ @param [out] row
+ 0 based row index.
+ @param [out] column
+ 0 based column index.
+ @param [out] rowExtents
+ Number of cells spanned by this cell in this row.
+ @param [out] columnExtents
+ Number of cells spanned by this cell in this column.
+ @param [out] isSelected
+ Indicates if the specified cell is selected.
+ @retval S_OK
+ */
+ [propget] HRESULT rowColumnExtents
+ (
+ [out] long *row,
+ [out] long *column,
+ [out] long *rowExtents,
+ [out] long *columnExtents,
+ [out, retval] boolean *isSelected
+ );
+
+ /** @brief Returns a reference to the accessbile of the containing table.
+
+ @param [out] table
+ Returns a reference to the IUnknown of the containing table.
+ @retval S_OK
+ */
+ [propget] HRESULT table
+ (
+ [out, retval] IUnknown **table
+ );
+
+}
diff --git a/src/3rdparty/iaccessible2/idl/AccessibleText.idl b/src/3rdparty/iaccessible2/idl/AccessibleText.idl
new file mode 100644
index 0000000000..86fd93ad90
--- /dev/null
+++ b/src/3rdparty/iaccessible2/idl/AccessibleText.idl
@@ -0,0 +1,674 @@
+/*************************************************************************
+ *
+ * File Name (AccessibleText.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2010 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+import "objidl.idl";
+import "oaidl.idl";
+import "oleacc.idl";
+import "IA2CommonTypes.idl";
+
+/** A structure containing a substring and the start and end offsets in the enclosing string.
+
+ IAccessibleText::newText and IAccessibleText::oldText return this struct.
+*/
+typedef struct IA2TextSegment {
+ BSTR text; ///< A copy of a segment of text taken from an enclosing paragraph.
+ long start; ///< Index of the first character of the segment in the enclosing text.
+ long end; ///< Index of the character following the last character of the segment in the enclosing text.
+} IA2TextSegment;
+
+/** This enum defines values which specify a text boundary type.
+
+ IA2_TEXT_BOUNDARY_SENTENCE is optional. When a method doesn't implement this
+ method it must return S_FALSE. Typically this feature would not be implemented
+ by an application. However, if the application developer was not satisfied with
+ how screen readers have handled the reading of sentences this boundary type
+ could be implemented and screen readers could use the application's version of a
+ sentence rather than the screen reader's.
+
+ The rest of the boundary types must be supported.
+
+ This enum is used in IAccessibleText::textBeforeOffset, IAccessibleText::textAtOffset,
+ and IAccessibleText::textAfterOffset.
+*/
+
+enum IA2TextBoundaryType {
+ IA2_TEXT_BOUNDARY_CHAR, /**< Typically, a single character is returned. In some cases more than
+ one character is returned, for example, when a document contains field
+ data such as a field containing a date, time, or footnote reference.
+ In this case the caret can move over several characters in one movement
+ of the caret. Note that after the caret moves, the caret offset changes
+ by the number of characters in the field, e.g. by 8 characters in the
+ following date: 03/26/07. */
+ IA2_TEXT_BOUNDARY_WORD, /**< The range provided matches the range observed when the application
+ processes the Ctrl + left arrow and Ctrl + right arrow key sequences.
+ Typically this is from the start of one word to the start of the next, but
+ various applications are inconsistent in the handling of the end of a line. */
+ IA2_TEXT_BOUNDARY_SENTENCE, ///< Range is from start of one sentence to the start of another sentence.
+ IA2_TEXT_BOUNDARY_PARAGRAPH, ///< Range is from start of one paragraph to the start of another paragraph.
+ IA2_TEXT_BOUNDARY_LINE, /**< Range is from start of one line to the start of another line. This
+ often means that an end-of-line character will appear at the end of the
+ range. However in the case of some applications an end-of-line character
+ indicates the end of a paragraph and the lines composing the paragraph,
+ other than the last line, do not contain an end of line character. */
+ IA2_TEXT_BOUNDARY_ALL ///< Using this value will cause all text to be returned.
+};
+
+/** @brief This interface gives read-only access to text.
+
+ The %IAccessibleText interface should be implemented by all components
+ that present textual information on the display like buttons,
+ text entry fields, or text portions of the document window. The interface
+ provides access to the text's content, attributes, and spatial location.
+ However, text can not be modified with this interface. That is the task
+ of the IAccessibleEditableText interface.
+
+ The text length, i.e. the number of characters in the text, is
+ returned by IAccessibleText::nCharacters. All methods that operate
+ on particular characters (e.g. IAccessibleText::textAtOffset) use character
+ indices from 0 to length-1. All methods that operate on character positions
+ (e.g. IAccessibleText::text) use indices from 0 to length.
+
+ Please note that accessible text does not necessarily support selection.
+ In this case it should behave as if there where no selection. An empty
+ selection is used for example to express the current cursor position.
+
+ Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about special offsets that can be used in %IAccessibleText methods.
+
+ E_FAIL is returned in the following cases
+ @li endOffset < startOffset
+ @li endoffset > length
+*/
+[object, uuid(24FD2FFB-3AAD-4a08-8335-A3AD89C0FB4B)]
+interface IAccessibleText : IUnknown
+{
+
+ /** @brief Adds a text selection
+ @param [in] startOffset
+ Starting offset ( 0 based).
+ @param [in] endOffset
+ Offset of first character after new selection (0 based).
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ @note Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about special offsets that can be used in %IAccessibleText methods.
+ */
+ HRESULT addSelection
+ (
+ [in] long startOffset,
+ [in] long endOffset
+ );
+
+ /** @brief Returns text attributes.
+ @param [in] offset
+ Text offset (0 based). Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about special offsets that can be used in %IAccessibleText methods.
+ @param [out] startOffset
+ The starting offset of the character range over which all text attributes match
+ those of offset. (0 based)
+ @param [out] endOffset
+ The offset of the first character past the character range over which all text
+ attributes match those of offset. (0 based)
+ @param [out] textAttributes
+ A string of attributes describing the text. The attributes are described in the
+ <a href="http://www.linuxfoundation.org/en/Accessibility/IAccessible2/TextAttributes">
+ text attributes specification</a> on the %IAccessible2 web site.
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] values are 0s and NULL respectively
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT attributes
+ (
+ [in] long offset,
+ [out] long *startOffset,
+ [out] long *endOffset,
+ [out, retval] BSTR *textAttributes
+ );
+
+ /** @brief Returns the position of the caret.
+
+ Returns the 0-based offset of the caret within the text. If the text is
+ implemented as a tree of text objects with embed characters in higher levels
+ representing substrings of child text objects and the caret is in one of the
+ child text objects, then the offset in the higher level text object would be
+ at the embed character representing child text object that contains the caret.
+
+ For example, if the string "one two three" is implemented as a two text objects,
+ with a top level text object containing an embed character "one ? three" and a
+ child text object containing "two" and if the caret is in the descendant object
+ just before the 'o' in "two", then:
+ <ul>
+ <li>the caretOffset for the "one ? three" object would be 4, matching the embed character</li>
+ <li>the caretOffset for "two" would be 2, matching the "o"</li>
+ </ul>
+ The caret position/offset is that of the character logically following it, e.g.
+ to the right of it in a left to right language, or to the left of it in a right
+ to left language.
+ @param [out] offset
+ The returned offset is relative to the text represented by this object.
+ @retval S_OK
+ @retval S_FALSE if the caret is not currently active on this object, i.e. the
+ caret is located on some other object. The returned offset value will be -1.
+ @note S_FALSE (and an offset of -1) will not be returned if the caret is somewhere
+ in the text object or one of its descendants.
+ */
+ [propget] HRESULT caretOffset
+ (
+ [out, retval] long *offset
+ );
+
+
+ /** @brief Returns the bounding box of the specified position.
+
+ The virtual character after the last character of the represented
+ text, i.e. the one at position length is a special case. It represents the
+ current input position and will therefore typically be queried by AT more
+ often than other positions. Because it does not represent an existing character
+ its bounding box is defined in relation to preceding characters. It should be
+ roughly equivalent to the bounding box of some character when inserted at the
+ end of the text. Its height typically being the maximal height of all the
+ characters in the text or the height of the preceding character, its width being
+ at least one pixel so that the bounding box is not degenerate.
+
+ Note that the index 'length' is not always valid. Whether it is or not is
+ implementation dependent. It typically is when text is editable or otherwise
+ when on the screen the caret can be placed behind the text. You can be sure
+ that the index is valid after you have received a ::IA2_EVENT_TEXT_CARET_MOVED
+ event for this index.
+ @param [in] offset
+ Index of the character for which to return its bounding box. The valid range
+ is 0..length. Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about special offsets that can be used in %IAccessibleText methods.
+ @param [in] coordType
+ Specifies if the coordinates are relative to the screen or to the parent window.
+ @param [out] x
+ X coordinate of the top left corner of the bounding box of the referenced character.
+ @param [out] y
+ Y coordinate of the top left corner of the bounding box of the referenced character.
+ @param [out] width
+ Width of the bounding box of the referenced character.
+ @param [out] height
+ Height of the bounding box of the referenced character.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT characterExtents
+ (
+ [in] long offset,
+ [in] enum IA2CoordinateType coordType,
+ [out] long *x,
+ [out] long *y,
+ [out] long *width,
+ [out, retval] long *height
+ );
+
+
+ /** @brief Returns the number of active non-contiguous selections
+ @param [out] nSelections
+ @retval S_OK
+ */
+ [propget] HRESULT nSelections
+ (
+ [out, retval] long *nSelections
+ );
+
+ /** @brief Returns the text position for the specified screen position.
+
+ Given a point return the zero-based index of the character under that
+ point. The same functionality could be achieved by using the bounding
+ boxes for each character as returned by IAccessibleText::characterExtents.
+ The method IAccessibleText::offsetAtPoint, however, can be implemented
+ more efficiently.
+
+ @param [in] x
+ The position's x value for which to look up the index of the character that
+ is rendered on to the display at that point.
+ @param [in] y
+ The position's y value for which to look up the index of the character that
+ is rendered on to the display at that point.
+ @param [in] coordType
+ Screen coordinates or window coordinates.
+ @param [out] offset
+ Index of the character under the given point or -1 if the point
+ is invalid or there is no character under the point.
+ @retval S_OK
+ @retval S_FALSE if nothing to return, [out] value is -1
+
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT offsetAtPoint
+ (
+ [in] long x,
+ [in] long y,
+ [in] enum IA2CoordinateType coordType,
+ [out, retval] long *offset
+ );
+
+ /** @brief Returns the character offsets of Nth active text selection
+
+ Returns the 0-based starting and ending offsets of the Nth selection. If the
+ text is implemented as a tree of text objects with embed characters in higher
+ levels representing substrings of child text objects, consider the following.
+ If the starting selection offset is in one of the child text objects, then the
+ starting offset in the higher level text object would be at the embed character
+ representing the child text object that contains the starting selection offset.
+ If the ending selection offset is in one of the child text objects, then the
+ ending offset in the higher level text object would be just after the embed
+ character representing the child text object that contains the ending selection
+ offset.
+
+ For example, if the string "one two three" is implemented as a two text objects,
+ with a top level text object containing an embed character "one ? three" and a
+ child text object containing "two" and if the selection is the string "two" then:
+ <ul>
+ <li>the startOffset for the "one ? three" object would be 4, matching the embed character and the endOffset would be 5.</li>
+ <li>the startOffset for the "two" object would be 0, and the endOffset would be 3</li>
+ </ul>
+ Selection offsets are that of the character logically following it, e.g.
+ to the right of it in a left to right language or to the left of it in a right to left language.
+ @param [in] selectionIndex
+ Index of selection (0 based).
+ @param [out] startOffset
+ 0 based offset of first selected character
+ @param [out] endOffset
+ 0 based offset of one past the last selected character.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT selection
+ (
+ [in] long selectionIndex,
+ [out] long *startOffset,
+ [out, retval] long *endOffset
+ );
+
+ /** @brief Returns the substring between the two given indices.
+
+ The substring starts with the character at startOffset (inclusive) and up to
+ the character at endOffset (exclusive), if startOffset is less or equal
+ endOffset. If endOffset is lower than startOffset, the result is the same
+ as a call with the two arguments being exchanged.
+
+ The whole text can be requested by passing the indices zero and
+ IAccessibleText::nCharacters. If both indices have the same value, an empty
+ string is returned.
+ @param [in] startOffset
+ Index of the first character to include in the returned string. The valid range
+ is 0..length.
+ @param [in] endOffset
+ Index of the last character to exclude in the returned string. The valid range
+ is 0..length.
+ @param [out] text
+ Returns the substring starting with the character at startOffset (inclusive)
+ and up to the character at endOffset (exclusive), if startOffset is less than
+ or equal to endOffset.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ @note
+ @li The returned string may be longer than endOffset-startOffset bytes if text
+ contains multi-byte characters.
+ @li Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about special offsets that can be used in %IAccessibleText methods.
+ */
+ [propget] HRESULT text
+ (
+ [in] long startOffset,
+ [in] long endOffset,
+ [out, retval] BSTR *text
+ );
+
+ /** @brief Returns a text portion before the given position.
+
+ Returns the substring of the specified text type that is located before the
+ given character and does not include it. The result of this method should be
+ same as a result for IAccessibleText::textAtOffset with a suitably decreased
+ index value.
+
+ For example, if text type is ::IA2_TEXT_BOUNDARY_WORD, then the complete
+ word that is closest to and located before offset is returned.
+
+ If the index is valid, but no suitable word (or other boundary type) is found, a
+ NULL pointer is returned.
+
+ @param [in] offset
+ Index of the character for which to return the text part before it. The index
+ character will not be part of the returned string. The valid range is 0..length.
+ Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about special offsets that can be used in %IAccessibleText methods.
+ @param [in] boundaryType
+ The type of the text portion to return. See ::IA2TextBoundaryType for the
+ complete list.
+ @param [out] startOffset
+ 0 based offset of first character.
+ @param [out] endOffset
+ 0 based offset of one past the last character.
+ @param [out] text
+ Returns the requested text portion. This portion may be empty or invalid when
+ no appropriate text portion is found or text type is invalid.
+ @retval S_OK
+ @retval S_FALSE if the requested boundary type is not implemented, such as
+ ::IA2_TEXT_BOUNDARY_SENTENCE, or if there is nothing to return;
+ [out] values are 0s and NULL respectively
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT textBeforeOffset
+ (
+ [in] long offset,
+ [in] enum IA2TextBoundaryType boundaryType,
+ [out] long *startOffset,
+ [out] long *endOffset,
+ [out, retval] BSTR *text
+ );
+
+ /** @brief Returns a text portion after the given position.
+
+ Returns the substring of the specified text type that is located after the
+ given character and does not include it. The result of this method should be
+ same as a result for IAccessibleText::textAtOffset with a suitably increased
+ index value.
+
+ For example, if text type is ::IA2_TEXT_BOUNDARY_WORD, then the complete
+ word that is closest to and located after offset is returned.
+
+ If the index is valid, but no suitable word (or other text type) is found, a
+ NULL pointer is returned.
+
+ @param [in] offset
+ Index of the character for which to return the text part after it. The index
+ character will not be part of the returned string. The valid range is 0..length.
+ Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about special offsets that can be used in %IAccessibleText methods.
+ @param [in] boundaryType
+ The type of the text portion to return. See ::IA2TextBoundaryType for the complete
+ list.
+ @param [out] startOffset
+ 0 based offset of first character.
+ @param [out] endOffset
+ 0 based offset of one past the last character.
+ @param [out] text
+ Returns the requested text portion. This portion may be empty or invalid when
+ no appropriate text portion is found or text type is invalid.
+ @retval S_OK
+ @retval S_FALSE if the requested boundary type is not implemented, such as
+ ::IA2_TEXT_BOUNDARY_SENTENCE, or if there is nothing to return;
+ [out] values are 0s and NULL respectively
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT textAfterOffset
+ (
+ [in] long offset,
+ [in] enum IA2TextBoundaryType boundaryType,
+ [out] long *startOffset,
+ [out] long *endOffset,
+ [out, retval] BSTR *text
+ );
+
+ /** @brief Returns a text portion that spans the given position.
+
+ Returns the substring of the specified text type at the specified offset.
+
+ If the index is valid, but no suitable word (or other text type) is found, a
+ NULL pointer is returned.
+
+ @param [in] offset
+ Index of the character for which to return the text part before it. The index
+ character will not be part of the returned string. The valid range is 0..length.
+ Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about special offsets that can be used in %IAccessibleText methods.
+ @param [in] boundaryType
+ The type of the text portion to return. See ::IA2TextBoundaryType for the complete
+ list.
+ @param [out] startOffset
+ 0 based offset of first character.
+ @param [out] endOffset
+ 0 based offset of one past the last character.
+ @param [out] text
+ Returns the requested text portion. This portion may be empty or invalid when
+ no appropriate text portion is found or text type is invalid.
+ @retval S_OK
+ @retval S_FALSE if the requested boundary type is not implemented, such as
+ ::IA2_TEXT_BOUNDARY_SENTENCE, or if there is nothing to return;
+ [out] values are 0s and NULL respectively
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT textAtOffset
+ (
+ [in] long offset,
+ [in] enum IA2TextBoundaryType boundaryType,
+ [out] long *startOffset,
+ [out] long *endOffset,
+ [out, retval] BSTR *text
+ );
+
+ /** @brief Unselects a range of text.
+ @param [in] selectionIndex
+ Index of selection to remove (0 based).
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ HRESULT removeSelection
+ (
+ [in] long selectionIndex
+ );
+
+ /** @brief Sets the position of the caret.
+
+ The caret position/offset is that of the character logically following it,
+ e.g. to the right of it in a left to right language.
+
+ Setting the caret position may or may not alter the current selection. A
+ change of the selection is notified to the accessibility event listeners with
+ an ::IA2_EVENT_TEXT_SELECTION_CHANGED event.
+
+ When the new caret position differs from the old one (which, of course, is the
+ standard case) this is notified to the accessibility event listeners with an
+ ::IA2_EVENT_TEXT_CARET_MOVED event.
+ @param [in] offset
+ The new index of the caret. This caret is actually placed to the left side of
+ the character with that index. An index of 0 places the caret so that the next
+ insertion goes before the first character. An index of IAccessibleText::nCharacters
+ leads to insertion after the last character. Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about special offsets that can be used in %IAccessibleText methods.
+ @retval S_OK
+ @retval E_FAIL if the caret cannot be set
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ HRESULT setCaretOffset
+ (
+ [in] long offset
+ );
+
+ /** @brief Changes the bounds of an existing selection.
+ @param [in] selectionIndex
+ Index of selection to change (0 based)
+ @param [in] startOffset
+ New starting offset (0 based)
+ @param [in] endOffset
+ New ending offset (0 based) - the offset of the character just past the last character of the selection.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ @note Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about special offsets that can be used in %IAccessibleText methods.
+ */
+ HRESULT setSelection
+ (
+ [in] long selectionIndex,
+ [in] long startOffset,
+ [in] long endOffset
+ );
+
+ /** @brief Returns total number of characters.
+
+ Note that this may be different than the total number of bytes required to store the
+ text, if the text contains multi-byte characters.
+ @param [out] nCharacters
+ @retval S_OK
+ */
+ [propget] HRESULT nCharacters
+ (
+ [out, retval] long *nCharacters
+ );
+
+ /** @brief Makes a specific part of string visible on screen.
+ @param [in] startIndex
+ 0 based character offset.
+ @param [in] endIndex
+ 0 based character offset - the offset of the character just past the last character of the string.
+ @param [in] scrollType
+ Defines where the object should be placed on the screen.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ @note Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about special offsets that can be used in %IAccessibleText methods.
+ */
+ HRESULT scrollSubstringTo
+ (
+ [in] long startIndex,
+ [in] long endIndex,
+ [in] enum IA2ScrollType scrollType
+ );
+
+ /** @brief Moves the top left of a substring to a specified location.
+
+ @param [in] startIndex
+ 0 based character offset.
+ @param [in] endIndex
+ 0 based character offset - the offset of the character just past the last character of the string.
+ @param [in] coordinateType
+ Specifies whether the coordinates are relative to the screen or the parent object.
+ @param [in] x
+ Defines the x coordinate.
+ @param [in] y
+ Defines the y coordinate.
+ @retval S_OK
+ @retval S_FALSE if the object is already at the specified location.
+ @retval E_INVALIDARG if bad [in] passed
+ @note Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about special offsets that can be used in %IAccessibleText methods.
+ */
+ HRESULT scrollSubstringToPoint
+ (
+ [in] long startIndex,
+ [in] long endIndex,
+ [in] enum IA2CoordinateType coordinateType,
+ [in] long x,
+ [in] long y
+ );
+
+ /** @brief Returns any inserted text.
+
+ Provided for use by the ::IA2_EVENT_TEXT_INSERTED and ::IA2_EVENT_TEXT_UPDATED
+ event handlers.
+
+ This data is only guaranteed to be valid while the thread notifying the event
+ continues. Once the handler has returned, the validity of the data depends on
+ how the server manages the life cycle of its objects. Also, note that the server
+ may have different life cycle management strategies for controls depending on
+ whether or not a control manages its children. Lists, trees, and tables can have
+ a large number of children and thus it's possible that the child objects for those
+ controls would only be created as needed. Servers should document their life cycle
+ strategy as this will be of interest to assistive technology or script engines
+ accessing data out of process or from other threads. Servers only need to save the
+ last inserted block of text and a scope of the entire application is adequate.
+
+ @param [out] newText
+ The text that was just inserted.
+ @retval S_OK
+ @retval S_FALSE If there is nothing to return, the values of IA2TextSegment
+ struct are set as follows: text = NULL, start = 0, end = 0.
+
+ */
+ [propget] HRESULT newText
+ (
+ [out, retval] IA2TextSegment *newText
+ );
+
+ /** @brief Returns any removed text.
+
+ Provided for use by the IA2_EVENT_TEXT_REMOVED/UPDATED event handlers.
+
+ This data is only guaranteed to be valid while the thread notifying the event
+ continues. Once the handler has returned, the validity of the data depends on
+ how the server manages the life cycle of its objects. Also, note that the server
+ may have different life cycle management strategies for controls depending on
+ whether or not a control manages its children. Lists, trees, and tables can have
+ a large number of children and thus it's possible that the child objects for those
+ controls would only be created as needed. Servers should document their life cycle
+ strategy as this will be of interest to assistive technology or script engines
+ accessing data out of process or from other threads. Servers only need to save the
+ last removed block of text and a scope of the entire application is adequate.
+
+ @param [out] oldText
+ The text that was just removed.
+ @retval S_OK
+ @retval S_FALSE If there is nothing to return, the values of IA2TextSegment
+ struct are set as follows: text = NULL, start = 0, end = 0.
+ */
+ [propget] HRESULT oldText
+ (
+ [out, retval] IA2TextSegment *oldText
+ );
+
+}
diff --git a/src/3rdparty/iaccessible2/idl/AccessibleValue.idl b/src/3rdparty/iaccessible2/idl/AccessibleValue.idl
new file mode 100644
index 0000000000..cd013d76f8
--- /dev/null
+++ b/src/3rdparty/iaccessible2/idl/AccessibleValue.idl
@@ -0,0 +1,136 @@
+/*************************************************************************
+ *
+ * File Name (AccessibleValue.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2010 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+import "objidl.idl";
+import "oaidl.idl";
+import "oleacc.idl";
+
+/** @brief This interface gives access to a single numerical value.
+
+ The %IAccessibleValue interface represents a single numerical value and should
+ be implemented by any class that supports numerical value like progress bars
+ and spin boxes. This interface lets you access the value and its upper and
+ lower bounds.
+*/
+[object, uuid(35855B5B-C566-4fd0-A7B1-E65465600394)]
+interface IAccessibleValue : IUnknown
+{
+
+ /** @brief Returns the value of this object as a number.
+
+ The exact return type is implementation dependent. Typical types are long and
+ double.
+ @param [out] currentValue
+ Returns the current value represented by this object. See the section about
+ @ref _variants "VARIANTs" for additional information.
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is a VARIANT with vt = VT_EMPTY
+ */
+ [propget] HRESULT currentValue
+ (
+ [out, retval] VARIANT *currentValue
+ );
+
+ /** @brief Sets the value of this object to the given number.
+
+ The argument is clipped to the valid interval whose upper and lower
+ bounds are returned by the methods IAccessibleValue::maximumValue and
+ IAccessibleValue::minimumValue, i.e. if it is lower than the minimum
+ value the new value will be the minimum and if it is greater than the
+ maximum then the new value will be the maximum.
+
+ @param [in] value
+ The new value represented by this object. The set of admissible types for
+ this argument is implementation dependent.
+ @retval S_OK
+ */
+ HRESULT setCurrentValue
+ (
+ [in] VARIANT value
+ );
+
+ /** @brief Returns the maximal value that can be represented by this object.
+
+ The type of the returned value is implementation dependent. It does not have
+ to be the same type as that returned by method IAccessibleValue::currentValue.
+
+ @param [out] maximumValue
+ Returns the maximal value in an implementation dependent type. If this object
+ has no upper bound then an empty object is returned. See the section about
+ @ref _variants "VARIANTs" for additional information.
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is a VARIANT with vt = VT_EMPTY
+ */
+ [propget] HRESULT maximumValue
+ (
+ [out, retval] VARIANT *maximumValue
+ );
+
+ /** @brief Returns the minimal value that can be represented by this object.
+
+ The type of the returned value is implementation dependent. It does not have
+ to be the same type as that returned by method IAccessibleValue::currentValue.
+
+ @param [out] minimumValue
+ Returns the minimal value in an implementation dependent type. If this object
+ has no lower bound then an empty object is returned. See the section about
+ @ref _variants "VARIANTs" for additional information.
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is a VARIANT with vt = VT_EMPTY
+ */
+ [propget] HRESULT minimumValue
+ (
+ [out, retval] VARIANT *minimumValue
+ );
+
+};
diff --git a/src/3rdparty/iaccessible2/idl/IA2CommonTypes.idl b/src/3rdparty/iaccessible2/idl/IA2CommonTypes.idl
new file mode 100644
index 0000000000..d3da110873
--- /dev/null
+++ b/src/3rdparty/iaccessible2/idl/IA2CommonTypes.idl
@@ -0,0 +1,191 @@
+/*************************************************************************
+ *
+ * File Name (IA2CommonTypes.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2010 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+ /** These constants control the scrolling of an object or substring into a window.
+
+ This enum is used in IAccessible2::scrollTo and IAccessibleText::scrollSubstringTo.
+*/
+enum IA2ScrollType {
+
+ /** Scroll the top left corner of the object or substring such that the top left
+ corner (and as much as possible of the rest of the object or substring) is within
+ the top level window. In cases where the entire object or substring fits within
+ the top level window, the placement of the object or substring is dependent on
+ the application. For example, the object or substring may be scrolled to the
+ closest edge, the furthest edge, or midway between those two edges. In cases
+ where there is a hierarchy of nested scrollable controls, more than one control
+ may have to be scrolled.
+ */
+ IA2_SCROLL_TYPE_TOP_LEFT,
+
+ /** Scroll the bottom right corner of the object or substring such that the bottom right
+ corner (and as much as possible of the rest of the object or substring) is within
+ the top level window. In cases where the entire object or substring fits within
+ the top level window, the placement of the object or substring is dependent on
+ the application. For example, the object or substring may be scrolled to the
+ closest edge, the furthest edge, or midway between those two edges. In cases
+ where there is a hierarchy of nested scrollable controls, more than one control
+ may have to be scrolled.
+ */
+ IA2_SCROLL_TYPE_BOTTOM_RIGHT,
+
+ /** Scroll the top edge of the object or substring such that the top edge
+ (and as much as possible of the rest of the object or substring) is within the
+ top level window. In cases where the entire object or substring fits within
+ the top level window, the placement of the object or substring is dependent on
+ the application. For example, the object or substring may be scrolled to the
+ closest edge, the furthest edge, or midway between those two edges. In cases
+ where there is a hierarchy of nested scrollable controls, more than one control
+ may have to be scrolled.
+ */
+ IA2_SCROLL_TYPE_TOP_EDGE,
+
+ /** Scroll the bottom edge of the object or substring such that the bottom edge
+ (and as much as possible of the rest of the object or substring) is within the
+ top level window. In cases where the entire object or substring fits within
+ the top level window, the placement of the object or substring is dependent on
+ the application. For example, the object or substring may be scrolled to the
+ closest edge, the furthest edge, or midway between those two edges. In cases
+ where there is a hierarchy of nested scrollable controls, more than one control
+ may have to be scrolled.
+ */
+ IA2_SCROLL_TYPE_BOTTOM_EDGE,
+
+ /** Scroll the left edge of the object or substring such that the left edge
+ (and as much as possible of the rest of the object or substring) is within the
+ top level window. In cases where the entire object or substring fits within
+ the top level window, the placement of the object or substring is dependent on
+ the application. For example, the object or substring may be scrolled to the
+ closest edge, the furthest edge, or midway between those two edges. In cases
+ where there is a hierarchy of nested scrollable controls, more than one control
+ may have to be scrolled.
+ */
+ IA2_SCROLL_TYPE_LEFT_EDGE,
+
+ /** Scroll the right edge of the object or substring such that the right edge
+ (and as much as possible of the rest of the object or substring) is within the
+ top level window. In cases where the entire object or substring fits within
+ the top level window, the placement of the object or substring is dependent on
+ the application. For example, the object or substring may be scrolled to the
+ closest edge, the furthest edge, or midway between those two edges. In cases
+ where there is a hierarchy of nested scrollable controls, more than one control
+ may have to be scrolled.
+ */
+ IA2_SCROLL_TYPE_RIGHT_EDGE,
+
+ /** Scroll the object or substring such that as much as possible of the
+ object or substring is within the top level window. The placement of
+ the object is dependent on the application. For example, the object or
+ substring may be scrolled to to closest edge, the furthest edge, or midway
+ between those two edges.
+ */
+ IA2_SCROLL_TYPE_ANYWHERE
+};
+
+/** These constants define which coordinate system a point is located in.
+
+ This enum is used in IAccessible2::scrollToPoint, IAccessibleImage::imagePosition,
+ IAccessibleText::characterExtents, and IAccessibleText::offsetAtPoint, and
+ IAccessibleText::scrollSubstringToPoint.
+*/
+enum IA2CoordinateType {
+
+ /// The coordinates are relative to the screen.
+ IA2_COORDTYPE_SCREEN_RELATIVE,
+
+ /** The coordinates are relative to the upper left corner of the bounding box
+ of the immediate parent.
+ */
+ IA2_COORDTYPE_PARENT_RELATIVE
+
+};
+
+/** Special offsets for use in IAccessibleText and IAccessibleEditableText methods
+
+ Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for more information.
+*/
+enum IA2TextSpecialOffsets {
+ IA2_TEXT_OFFSET_LENGTH = -1, /**< This offset is equivalent to the length of the string. It eliminates
+ the need to call IAccessibleText::nCharacters. */
+ IA2_TEXT_OFFSET_CARET = -2 /**< This offset signifies that the text related to the physical location
+ of the caret should be used. */
+};
+
+/** These constants specify the kind of change made to a table.
+
+ This enum is used in the IA2TableModelChange struct which in turn is used by
+ IAccessibleTable::modelChange and IAccessibleTable2::modelChange.
+*/
+enum IA2TableModelChangeType {
+ IA2_TABLE_MODEL_CHANGE_INSERT, // = 0;
+ IA2_TABLE_MODEL_CHANGE_DELETE,
+ IA2_TABLE_MODEL_CHANGE_UPDATE
+};
+
+/** A structure defining the type of and extents of changes made to a table
+
+ IAccessibleTable::modelChange and IAccessibleTable2::modelChange return this struct.
+ In the case of an insertion or change the row and column offsets define the boundaries
+ of the inserted or changed subtable after the operation. In the case of a deletion
+ the row and column offsets define the boundaries of the subtable being removed before
+ the removal.
+*/
+typedef struct IA2TableModelChange {
+ enum IA2TableModelChangeType type; // insert, delete, update
+ long firstRow; ///< 0 based, inclusive
+ long lastRow; ///< 0 based, inclusive
+ long firstColumn; ///< 0 based, inclusive
+ long lastColumn; ///< 0 based, inclusive
+} IA2TableModelChange;
diff --git a/src/3rdparty/iaccessible2/idl/IA2TypeLibrary.idl b/src/3rdparty/iaccessible2/idl/IA2TypeLibrary.idl
new file mode 100644
index 0000000000..7753825751
--- /dev/null
+++ b/src/3rdparty/iaccessible2/idl/IA2TypeLibrary.idl
@@ -0,0 +1,94 @@
+/*************************************************************************
+ *
+ * File Name (IA2TypeLibrary.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2010 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+// This is not a standalone file. It is to be appended to the end of the
+// merged IDL file.
+
+cpp_quote("")
+cpp_quote("// Type Library Definitions")
+cpp_quote("")
+
+[
+ uuid(c974e070-3787-490a-87b0-e333b06ca1e2),
+ helpstring("IAccessible2 Type Library"),
+ version(1.2),
+ hidden
+]
+
+library IAccessible2Lib
+{
+ importlib ("stdole2.tlb");
+ importlib ("oleacc.dll");
+ interface IAccessible2;
+ interface IAccessibleAction;
+ interface IAccessibleApplication;
+ interface IAccessibleComponent;
+ interface IAccessibleEditableText;
+ interface IAccessibleHyperlink;
+ interface IAccessibleHypertext;
+ interface IAccessibleImage;
+ interface IAccessibleRelation;
+ interface IAccessibleTable;
+ interface IAccessibleTable2;
+ interface IAccessibleTableCell;
+ interface IAccessibleText;
+ interface IAccessibleValue;
+ enum IA2CoordinateType;
+ enum IA2EventID;
+ enum IA2Role;
+ enum IA2ScrollType;
+ enum IA2States;
+ enum IA2TableModelChangeType;
+ enum IA2TextBoundaryType;
+ enum IA2TextSpecialOffsets;
+}
diff --git a/src/3rdparty/iaccessible2/idl/Makefile b/src/3rdparty/iaccessible2/idl/Makefile
new file mode 100644
index 0000000000..eb56d9fb60
--- /dev/null
+++ b/src/3rdparty/iaccessible2/idl/Makefile
@@ -0,0 +1,58 @@
+
+MIDL = midl
+MIDL_OPTS = /out ..\generated
+
+first: all
+
+all: x86 amd64
+
+MIDL_OPTS = /out ..\generated\x86 /env win32
+
+x86:
+ -del ..\generated\x86\dlldata.c
+ -md ..\generated\x86
+ $(MIDL) $(MIDL_OPTS) Accessible2.idl
+ $(MIDL) $(MIDL_OPTS) AccessibleAction.idl
+ $(MIDL) $(MIDL_OPTS) AccessibleApplication.idl
+ $(MIDL) $(MIDL_OPTS) AccessibleComponent.idl
+ $(MIDL) $(MIDL_OPTS) AccessibleEditableText.idl
+ $(MIDL) $(MIDL_OPTS) AccessibleEventID.idl
+ $(MIDL) $(MIDL_OPTS) AccessibleHyperlink.idl
+ $(MIDL) $(MIDL_OPTS) AccessibleHypertext.idl
+ $(MIDL) $(MIDL_OPTS) AccessibleImage.idl
+ $(MIDL) $(MIDL_OPTS) AccessibleRelation.idl
+ $(MIDL) $(MIDL_OPTS) AccessibleRole.idl
+ $(MIDL) $(MIDL_OPTS) AccessibleStates.idl
+ $(MIDL) $(MIDL_OPTS) AccessibleTable.idl
+ $(MIDL) $(MIDL_OPTS) AccessibleTable2.idl
+ $(MIDL) $(MIDL_OPTS) AccessibleTableCell.idl
+ $(MIDL) $(MIDL_OPTS) AccessibleText.idl
+ $(MIDL) $(MIDL_OPTS) AccessibleValue.idl
+ $(MIDL) $(MIDL_OPTS) IA2CommonTypes.idl
+ $(MIDL) $(MIDL_OPTS) IA2TypeLibrary.idl
+
+MIDL_OPTS = /out ..\generated\amd64 /env amd64
+
+amd64:
+ -del ..\generated\amd64\dlldata.c
+ -md ..\generated\amd64
+ $(MIDL) $(MIDL_OPTS) Accessible2.idl
+ $(MIDL) $(MIDL_OPTS) AccessibleAction.idl
+ $(MIDL) $(MIDL_OPTS) AccessibleApplication.idl
+ $(MIDL) $(MIDL_OPTS) AccessibleComponent.idl
+ $(MIDL) $(MIDL_OPTS) AccessibleEditableText.idl
+ $(MIDL) $(MIDL_OPTS) AccessibleEventID.idl
+ $(MIDL) $(MIDL_OPTS) AccessibleHyperlink.idl
+ $(MIDL) $(MIDL_OPTS) AccessibleHypertext.idl
+ $(MIDL) $(MIDL_OPTS) AccessibleImage.idl
+ $(MIDL) $(MIDL_OPTS) AccessibleRelation.idl
+ $(MIDL) $(MIDL_OPTS) AccessibleRole.idl
+ $(MIDL) $(MIDL_OPTS) AccessibleStates.idl
+ $(MIDL) $(MIDL_OPTS) AccessibleTable.idl
+ $(MIDL) $(MIDL_OPTS) AccessibleTable2.idl
+ $(MIDL) $(MIDL_OPTS) AccessibleTableCell.idl
+ $(MIDL) $(MIDL_OPTS) AccessibleText.idl
+ $(MIDL) $(MIDL_OPTS) AccessibleValue.idl
+ $(MIDL) $(MIDL_OPTS) IA2CommonTypes.idl
+ $(MIDL) $(MIDL_OPTS) IA2TypeLibrary.idl
+
diff --git a/src/3rdparty/iaccessible2/idl/README b/src/3rdparty/iaccessible2/idl/README
new file mode 100644
index 0000000000..0a299f16b4
--- /dev/null
+++ b/src/3rdparty/iaccessible2/idl/README
@@ -0,0 +1,6 @@
+Just type
+ nmake
+in this directory to generate the files from the idl files.
+The generated files will be put in
+..\generated\x86 and ..\generated\amd64
+
diff --git a/src/3rdparty/pcre/sljit/sljitUtils.c b/src/3rdparty/pcre/sljit/sljitUtils.c
index 703f405e18..f3b52fece7 100644
--- a/src/3rdparty/pcre/sljit/sljitUtils.c
+++ b/src/3rdparty/pcre/sljit/sljitUtils.c
@@ -233,7 +233,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_w SLJIT_CALL sljit_stack_resize(struct sljit_stac
aligned_new_limit = (new_limit + sljit_page_align) & ~sljit_page_align;
aligned_old_limit = (stack->limit + sljit_page_align) & ~sljit_page_align;
if (aligned_new_limit < aligned_old_limit)
-#ifdef __QNXNTO__
+#if defined(__QNXNTO__) || defined(__LSB_VERSION__)
posix_madvise((void*)aligned_new_limit, aligned_old_limit - aligned_new_limit, POSIX_MADV_DONTNEED);
#else
madvise((void*)aligned_new_limit, aligned_old_limit - aligned_new_limit, MADV_DONTNEED);
diff --git a/src/corelib/global/qprocessordetection.h b/src/corelib/global/qprocessordetection.h
index d62794e706..04e0f19f06 100644
--- a/src/corelib/global/qprocessordetection.h
+++ b/src/corelib/global/qprocessordetection.h
@@ -58,6 +58,10 @@
Q_BYTE_ORDER appropriately for the target processor. For bi-endian
processors, we try to auto-detect the byte order using the __BIG_ENDIAN__,
__LITTLE_ENDIAN__, or __BYTE_ORDER__ preprocessor macros.
+
+ Note: when adding support for new processors, be sure to update
+ config.tests/arch/arch.cpp to ensure that configure can detect the target
+ and host architectures.
*/
/* Machine byte-order, reuse preprocessor provided macros when available */
diff --git a/src/corelib/io/qfilesystemwatcher_polling.cpp b/src/corelib/io/qfilesystemwatcher_polling.cpp
index 92d0a2b6b0..c29fe8c264 100644
--- a/src/corelib/io/qfilesystemwatcher_polling.cpp
+++ b/src/corelib/io/qfilesystemwatcher_polling.cpp
@@ -42,6 +42,8 @@
#include "qfilesystemwatcher_polling_p.h"
#include <QtCore/qtimer.h>
+#ifndef QT_NO_FILESYSTEMWATCHER
+
QT_BEGIN_NAMESPACE
QPollingFileSystemWatcherEngine::QPollingFileSystemWatcherEngine(QObject *parent)
@@ -149,3 +151,4 @@ void QPollingFileSystemWatcherEngine::timeout()
}
QT_END_NAMESPACE
+#endif // !QT_NO_FILESYSTEMWATCHER
diff --git a/src/corelib/io/qfilesystemwatcher_polling_p.h b/src/corelib/io/qfilesystemwatcher_polling_p.h
index e50082c6d3..926c3baa07 100644
--- a/src/corelib/io/qfilesystemwatcher_polling_p.h
+++ b/src/corelib/io/qfilesystemwatcher_polling_p.h
@@ -62,6 +62,7 @@
#include "qfilesystemwatcher_p.h"
+#ifndef QT_NO_FILESYSTEMWATCHER
QT_BEGIN_NAMESPACE
enum { PollingInterval = 1000 };
@@ -122,6 +123,6 @@ private:
};
QT_END_NAMESPACE
-
+#endif // !QT_NO_FILESYSTEMWATCHER
#endif // QFILESYSTEMWATCHER_POLLING_P_H
diff --git a/src/corelib/io/qstandardpaths_mac.cpp b/src/corelib/io/qstandardpaths_mac.cpp
index e3779220af..2890ead48a 100644
--- a/src/corelib/io/qstandardpaths_mac.cpp
+++ b/src/corelib/io/qstandardpaths_mac.cpp
@@ -97,7 +97,7 @@ static QString getFullPath(const FSRef &ref)
{
QByteArray ba(2048, 0);
if (FSRefMakePath(&ref, reinterpret_cast<UInt8 *>(ba.data()), ba.size()) == noErr)
- return QString::fromUtf8(ba).normalized(QString::NormalizationForm_C);
+ return QString::fromUtf8(ba.constData()).normalized(QString::NormalizationForm_C);
return QString();
}
diff --git a/src/corelib/itemmodels/qidentityproxymodel.cpp b/src/corelib/itemmodels/qidentityproxymodel.cpp
index 1f95ac0660..9cac40469a 100644
--- a/src/corelib/itemmodels/qidentityproxymodel.cpp
+++ b/src/corelib/itemmodels/qidentityproxymodel.cpp
@@ -328,87 +328,87 @@ QVariant QIdentityProxyModel::headerData(int section, Qt::Orientation orientatio
/*!
\reimp
*/
-void QIdentityProxyModel::setSourceModel(QAbstractItemModel* sourceModel)
+void QIdentityProxyModel::setSourceModel(QAbstractItemModel* newSourceModel)
{
beginResetModel();
- if (sourceModel) {
- disconnect(sourceModel, SIGNAL(rowsAboutToBeInserted(const QModelIndex &, int, int)),
+ if (sourceModel()) {
+ disconnect(sourceModel(), SIGNAL(rowsAboutToBeInserted(const QModelIndex &, int, int)),
this, SLOT(_q_sourceRowsAboutToBeInserted(const QModelIndex &, int, int)));
- disconnect(sourceModel, SIGNAL(rowsInserted(const QModelIndex &, int, int)),
+ disconnect(sourceModel(), SIGNAL(rowsInserted(const QModelIndex &, int, int)),
this, SLOT(_q_sourceRowsInserted(const QModelIndex &, int, int)));
- disconnect(sourceModel, SIGNAL(rowsAboutToBeRemoved(const QModelIndex &, int, int)),
+ disconnect(sourceModel(), SIGNAL(rowsAboutToBeRemoved(const QModelIndex &, int, int)),
this, SLOT(_q_sourceRowsAboutToBeRemoved(const QModelIndex &, int, int)));
- disconnect(sourceModel, SIGNAL(rowsRemoved(const QModelIndex &, int, int)),
+ disconnect(sourceModel(), SIGNAL(rowsRemoved(const QModelIndex &, int, int)),
this, SLOT(_q_sourceRowsRemoved(const QModelIndex &, int, int)));
- disconnect(sourceModel, SIGNAL(rowsAboutToBeMoved(const QModelIndex &, int, int, const QModelIndex &, int)),
+ disconnect(sourceModel(), SIGNAL(rowsAboutToBeMoved(const QModelIndex &, int, int, const QModelIndex &, int)),
this, SLOT(_q_sourceRowsAboutToBeMoved(const QModelIndex &, int, int, const QModelIndex &, int)));
- disconnect(sourceModel, SIGNAL(rowsMoved(const QModelIndex &, int, int, const QModelIndex &, int)),
+ disconnect(sourceModel(), SIGNAL(rowsMoved(const QModelIndex &, int, int, const QModelIndex &, int)),
this, SLOT(_q_sourceRowsMoved(const QModelIndex &, int, int, const QModelIndex &, int)));
- disconnect(sourceModel, SIGNAL(columnsAboutToBeInserted(const QModelIndex &, int, int)),
+ disconnect(sourceModel(), SIGNAL(columnsAboutToBeInserted(const QModelIndex &, int, int)),
this, SLOT(_q_sourceColumnsAboutToBeInserted(const QModelIndex &, int, int)));
- disconnect(sourceModel, SIGNAL(columnsInserted(const QModelIndex &, int, int)),
+ disconnect(sourceModel(), SIGNAL(columnsInserted(const QModelIndex &, int, int)),
this, SLOT(_q_sourceColumnsInserted(const QModelIndex &, int, int)));
- disconnect(sourceModel, SIGNAL(columnsAboutToBeRemoved(const QModelIndex &, int, int)),
+ disconnect(sourceModel(), SIGNAL(columnsAboutToBeRemoved(const QModelIndex &, int, int)),
this, SLOT(_q_sourceColumnsAboutToBeRemoved(const QModelIndex &, int, int)));
- disconnect(sourceModel, SIGNAL(columnsRemoved(const QModelIndex &, int, int)),
+ disconnect(sourceModel(), SIGNAL(columnsRemoved(const QModelIndex &, int, int)),
this, SLOT(_q_sourceColumnsRemoved(const QModelIndex &, int, int)));
- disconnect(sourceModel, SIGNAL(columnsAboutToBeMoved(const QModelIndex &, int, int, const QModelIndex &, int)),
+ disconnect(sourceModel(), SIGNAL(columnsAboutToBeMoved(const QModelIndex &, int, int, const QModelIndex &, int)),
this, SLOT(_q_sourceColumnsAboutToBeMoved(const QModelIndex &, int, int, const QModelIndex &, int)));
- disconnect(sourceModel, SIGNAL(columnsMoved(const QModelIndex &, int, int, const QModelIndex &, int)),
+ disconnect(sourceModel(), SIGNAL(columnsMoved(const QModelIndex &, int, int, const QModelIndex &, int)),
this, SLOT(_q_sourceColumnsMoved(const QModelIndex &, int, int, const QModelIndex &, int)));
- disconnect(sourceModel, SIGNAL(modelAboutToBeReset()),
+ disconnect(sourceModel(), SIGNAL(modelAboutToBeReset()),
this, SLOT(_q_sourceModelAboutToBeReset()));
- disconnect(sourceModel, SIGNAL(modelReset()),
+ disconnect(sourceModel(), SIGNAL(modelReset()),
this, SLOT(_q_sourceModelReset()));
- disconnect(sourceModel, SIGNAL(dataChanged(const QModelIndex &, const QModelIndex &)),
+ disconnect(sourceModel(), SIGNAL(dataChanged(const QModelIndex &, const QModelIndex &)),
this, SLOT(_q_sourceDataChanged(const QModelIndex &, const QModelIndex &)));
- disconnect(sourceModel, SIGNAL(headerDataChanged(Qt::Orientation,int,int)),
+ disconnect(sourceModel(), SIGNAL(headerDataChanged(Qt::Orientation,int,int)),
this, SLOT(_q_sourceHeaderDataChanged(Qt::Orientation,int,int)));
- disconnect(sourceModel, SIGNAL(layoutAboutToBeChanged()),
+ disconnect(sourceModel(), SIGNAL(layoutAboutToBeChanged()),
this, SLOT(_q_sourceLayoutAboutToBeChanged()));
- disconnect(sourceModel, SIGNAL(layoutChanged()),
+ disconnect(sourceModel(), SIGNAL(layoutChanged()),
this, SLOT(_q_sourceLayoutChanged()));
}
- QAbstractProxyModel::setSourceModel(sourceModel);
+ QAbstractProxyModel::setSourceModel(newSourceModel);
- if (sourceModel) {
- connect(sourceModel, SIGNAL(rowsAboutToBeInserted(const QModelIndex &, int, int)),
+ if (sourceModel()) {
+ connect(sourceModel(), SIGNAL(rowsAboutToBeInserted(const QModelIndex &, int, int)),
SLOT(_q_sourceRowsAboutToBeInserted(const QModelIndex &, int, int)));
- connect(sourceModel, SIGNAL(rowsInserted(const QModelIndex &, int, int)),
+ connect(sourceModel(), SIGNAL(rowsInserted(const QModelIndex &, int, int)),
SLOT(_q_sourceRowsInserted(const QModelIndex &, int, int)));
- connect(sourceModel, SIGNAL(rowsAboutToBeRemoved(const QModelIndex &, int, int)),
+ connect(sourceModel(), SIGNAL(rowsAboutToBeRemoved(const QModelIndex &, int, int)),
SLOT(_q_sourceRowsAboutToBeRemoved(const QModelIndex &, int, int)));
- connect(sourceModel, SIGNAL(rowsRemoved(const QModelIndex &, int, int)),
+ connect(sourceModel(), SIGNAL(rowsRemoved(const QModelIndex &, int, int)),
SLOT(_q_sourceRowsRemoved(const QModelIndex &, int, int)));
- connect(sourceModel, SIGNAL(rowsAboutToBeMoved(const QModelIndex &, int, int, const QModelIndex &, int)),
+ connect(sourceModel(), SIGNAL(rowsAboutToBeMoved(const QModelIndex &, int, int, const QModelIndex &, int)),
SLOT(_q_sourceRowsAboutToBeMoved(const QModelIndex &, int, int, const QModelIndex &, int)));
- connect(sourceModel, SIGNAL(rowsMoved(const QModelIndex &, int, int, const QModelIndex &, int)),
+ connect(sourceModel(), SIGNAL(rowsMoved(const QModelIndex &, int, int, const QModelIndex &, int)),
SLOT(_q_sourceRowsMoved(const QModelIndex &, int, int, const QModelIndex &, int)));
- connect(sourceModel, SIGNAL(columnsAboutToBeInserted(const QModelIndex &, int, int)),
+ connect(sourceModel(), SIGNAL(columnsAboutToBeInserted(const QModelIndex &, int, int)),
SLOT(_q_sourceColumnsAboutToBeInserted(const QModelIndex &, int, int)));
- connect(sourceModel, SIGNAL(columnsInserted(const QModelIndex &, int, int)),
+ connect(sourceModel(), SIGNAL(columnsInserted(const QModelIndex &, int, int)),
SLOT(_q_sourceColumnsInserted(const QModelIndex &, int, int)));
- connect(sourceModel, SIGNAL(columnsAboutToBeRemoved(const QModelIndex &, int, int)),
+ connect(sourceModel(), SIGNAL(columnsAboutToBeRemoved(const QModelIndex &, int, int)),
SLOT(_q_sourceColumnsAboutToBeRemoved(const QModelIndex &, int, int)));
- connect(sourceModel, SIGNAL(columnsRemoved(const QModelIndex &, int, int)),
+ connect(sourceModel(), SIGNAL(columnsRemoved(const QModelIndex &, int, int)),
SLOT(_q_sourceColumnsRemoved(const QModelIndex &, int, int)));
- connect(sourceModel, SIGNAL(columnsAboutToBeMoved(const QModelIndex &, int, int, const QModelIndex &, int)),
+ connect(sourceModel(), SIGNAL(columnsAboutToBeMoved(const QModelIndex &, int, int, const QModelIndex &, int)),
SLOT(_q_sourceColumnsAboutToBeMoved(const QModelIndex &, int, int, const QModelIndex &, int)));
- connect(sourceModel, SIGNAL(columnsMoved(const QModelIndex &, int, int, const QModelIndex &, int)),
+ connect(sourceModel(), SIGNAL(columnsMoved(const QModelIndex &, int, int, const QModelIndex &, int)),
SLOT(_q_sourceColumnsMoved(const QModelIndex &, int, int, const QModelIndex &, int)));
- connect(sourceModel, SIGNAL(modelAboutToBeReset()),
+ connect(sourceModel(), SIGNAL(modelAboutToBeReset()),
SLOT(_q_sourceModelAboutToBeReset()));
- connect(sourceModel, SIGNAL(modelReset()),
+ connect(sourceModel(), SIGNAL(modelReset()),
SLOT(_q_sourceModelReset()));
- connect(sourceModel, SIGNAL(dataChanged(const QModelIndex &, const QModelIndex &)),
+ connect(sourceModel(), SIGNAL(dataChanged(const QModelIndex &, const QModelIndex &)),
SLOT(_q_sourceDataChanged(const QModelIndex &, const QModelIndex &)));
- connect(sourceModel, SIGNAL(headerDataChanged(Qt::Orientation,int,int)),
+ connect(sourceModel(), SIGNAL(headerDataChanged(Qt::Orientation,int,int)),
SLOT(_q_sourceHeaderDataChanged(Qt::Orientation,int,int)));
- connect(sourceModel, SIGNAL(layoutAboutToBeChanged()),
+ connect(sourceModel(), SIGNAL(layoutAboutToBeChanged()),
SLOT(_q_sourceLayoutAboutToBeChanged()));
- connect(sourceModel, SIGNAL(layoutChanged()),
+ connect(sourceModel(), SIGNAL(layoutChanged()),
SLOT(_q_sourceLayoutChanged()));
}
diff --git a/src/corelib/json/qjsondocument.h b/src/corelib/json/qjsondocument.h
index 7eca0302db..e39dc6a27c 100644
--- a/src/corelib/json/qjsondocument.h
+++ b/src/corelib/json/qjsondocument.h
@@ -67,7 +67,8 @@ struct Q_CORE_EXPORT QJsonParseError
IllegalNumber,
StringEscapeSequence,
StringUTF8Scan,
- EndOfString
+ EndOfString,
+ MissingObject
};
int offset;
diff --git a/src/corelib/json/qjsonparser.cpp b/src/corelib/json/qjsonparser.cpp
index a83685da22..b1e6a5a5c7 100644
--- a/src/corelib/json/qjsonparser.cpp
+++ b/src/corelib/json/qjsonparser.cpp
@@ -244,6 +244,10 @@ bool Parser::parseObject()
if (token != ValueSeparator)
break;
token = nextToken();
+ if (token == EndObject) {
+ lastError = QJsonParseError::MissingObject;
+ return false;
+ }
}
DEBUG << "end token=" << token;
@@ -449,6 +453,9 @@ bool Parser::parseValue(QJsonPrivate::Value *val, int baseOffset)
DEBUG << "value: object";
END;
return true;
+ case EndArray:
+ lastError = QJsonParseError::MissingObject;
+ return false;
default:
--json;
if (!parseNumber(val, baseOffset))
diff --git a/src/corelib/kernel/qmetaobject.cpp b/src/corelib/kernel/qmetaobject.cpp
index a8c21657cb..185314520b 100644
--- a/src/corelib/kernel/qmetaobject.cpp
+++ b/src/corelib/kernel/qmetaobject.cpp
@@ -291,13 +291,13 @@ QObject *QMetaObject::newInstance(QGenericArgument val0,
if (idx < 0)
return 0;
- QVariant ret(QMetaType::QObjectStar, (void*)0);
- void *param[] = {ret.data(), val0.data(), val1.data(), val2.data(), val3.data(), val4.data(),
+ QObject *returnValue = 0;
+ void *param[] = {&returnValue, val0.data(), val1.data(), val2.data(), val3.data(), val4.data(),
val5.data(), val6.data(), val7.data(), val8.data(), val9.data()};
if (static_metacall(CreateInstance, idx, param) >= 0)
return 0;
- return *reinterpret_cast<QObject**>(param[0]);
+ return returnValue;
}
/*!
diff --git a/src/corelib/kernel/qmetatype.cpp b/src/corelib/kernel/qmetatype.cpp
index a61894debd..8c2b5a8665 100644
--- a/src/corelib/kernel/qmetatype.cpp
+++ b/src/corelib/kernel/qmetatype.cpp
@@ -1066,6 +1066,60 @@ bool QMetaType::load(QDataStream &stream, int type, void *data)
return true;
}
#endif // QT_NO_DATASTREAM
+namespace {
+class TypeCreator {
+ template<typename T, bool IsAcceptedType = DefinedTypesFilter::Acceptor<T>::IsAccepted>
+ struct CreatorImpl {
+ static void *Create(const int /* type */, const void *copy)
+ {
+ // Using qMetaTypeCreateHelper<T> adds function call cost, even if it is a template (gcc).
+ // This "copy" check is moved out from the switcher by compiler (at least by gcc)
+ return copy ? new T(*static_cast<const T*>(copy)) : new T();
+ }
+ };
+ template<typename T>
+ struct CreatorImpl<T, /* IsAcceptedType = */ false> {
+ static void *Create(const int type, const void *copy)
+ {
+ if (QTypeModuleInfo<T>::IsGui) {
+ if (Q_LIKELY(qMetaTypeGuiHelper))
+ return qMetaTypeGuiHelper[type - QMetaType::FirstGuiType].creator(copy);
+ }
+ if (QTypeModuleInfo<T>::IsWidget) {
+ if (Q_LIKELY(qMetaTypeWidgetsHelper))
+ return qMetaTypeWidgetsHelper[type - QMetaType::FirstWidgetsType].creator(copy);
+ }
+ // This point can be reached only for known types that definition is not available, for example
+ // in bootstrap mode. We have no other choice then ignore it.
+ return 0;
+ }
+ };
+public:
+ TypeCreator(const int type)
+ : m_type(type)
+ {}
+
+ template<typename T>
+ void *delegate(const T *copy) { return CreatorImpl<T>::Create(m_type, copy); }
+ void *delegate(const void*) { return 0; }
+ void *delegate(const QMetaTypeSwitcher::UnknownType *) { return 0; }
+ void *delegate(const QMetaTypeSwitcher::NotBuiltinType *copy)
+ {
+ QMetaType::Creator creator;
+ const QVector<QCustomTypeInfo> * const ct = customTypes();
+ {
+ QReadLocker locker(customTypesLock());
+ if (Q_UNLIKELY(m_type < QMetaType::User || !ct || ct->count() <= m_type - QMetaType::User))
+ return 0;
+ creator = ct->at(m_type - QMetaType::User).creator;
+ }
+ Q_ASSERT_X(creator, "void *QMetaType::create(int type, const void *copy)", "The type was not properly registered");
+ return creator(copy);
+ }
+private:
+ const int m_type;
+};
+} // namespace
/*!
Returns a copy of \a copy, assuming it is of type \a type. If \a
@@ -1075,244 +1129,8 @@ bool QMetaType::load(QDataStream &stream, int type, void *data)
*/
void *QMetaType::create(int type, const void *copy)
{
- if (copy) {
- switch(type) {
- case QMetaType::VoidStar:
- case QMetaType::QObjectStar:
- case QMetaType::QWidgetStar:
- return new void *(*static_cast<void* const *>(copy));
- case QMetaType::Long:
- return new long(*static_cast<const long*>(copy));
- case QMetaType::Int:
- return new int(*static_cast<const int*>(copy));
- case QMetaType::Short:
- return new short(*static_cast<const short*>(copy));
- case QMetaType::Char:
- return new char(*static_cast<const char*>(copy));
- case QMetaType::ULong:
- return new ulong(*static_cast<const ulong*>(copy));
- case QMetaType::UInt:
- return new uint(*static_cast<const uint*>(copy));
- case QMetaType::LongLong:
- return new qlonglong(*static_cast<const qlonglong*>(copy));
- case QMetaType::ULongLong:
- return new qulonglong(*static_cast<const qulonglong*>(copy));
- case QMetaType::UShort:
- return new ushort(*static_cast<const ushort*>(copy));
- case QMetaType::UChar:
- return new uchar(*static_cast<const uchar*>(copy));
- case QMetaType::Bool:
- return new bool(*static_cast<const bool*>(copy));
- case QMetaType::Float:
- return new float(*static_cast<const float*>(copy));
- case QMetaType::Double:
- return new double(*static_cast<const double*>(copy));
- case QMetaType::QChar:
- return new NS(QChar)(*static_cast<const NS(QChar)*>(copy));
-#ifndef QT_BOOTSTRAPPED
- case QMetaType::QVariantMap:
- return new NS(QVariantMap)(*static_cast<const NS(QVariantMap)*>(copy));
- case QMetaType::QVariantHash:
- return new NS(QVariantHash)(*static_cast<const NS(QVariantHash)*>(copy));
- case QMetaType::QVariantList:
- return new NS(QVariantList)(*static_cast<const NS(QVariantList)*>(copy));
- case QMetaType::QVariant:
- return new NS(QVariant)(*static_cast<const NS(QVariant)*>(copy));
-#endif
- case QMetaType::QByteArray:
- return new NS(QByteArray)(*static_cast<const NS(QByteArray)*>(copy));
- case QMetaType::QString:
- return new NS(QString)(*static_cast<const NS(QString)*>(copy));
- case QMetaType::QStringList:
- return new NS(QStringList)(*static_cast<const NS(QStringList)*>(copy));
-#ifndef QT_BOOTSTRAPPED
- case QMetaType::QBitArray:
- return new NS(QBitArray)(*static_cast<const NS(QBitArray)*>(copy));
-#endif
- case QMetaType::QDate:
- return new NS(QDate)(*static_cast<const NS(QDate)*>(copy));
- case QMetaType::QTime:
- return new NS(QTime)(*static_cast<const NS(QTime)*>(copy));
- case QMetaType::QDateTime:
- return new NS(QDateTime)(*static_cast<const NS(QDateTime)*>(copy));
-#ifndef QT_BOOTSTRAPPED
- case QMetaType::QUrl:
- return new NS(QUrl)(*static_cast<const NS(QUrl)*>(copy));
-#endif
- case QMetaType::QLocale:
- return new NS(QLocale)(*static_cast<const NS(QLocale)*>(copy));
-#ifndef QT_NO_GEOM_VARIANT
- case QMetaType::QRect:
- return new NS(QRect)(*static_cast<const NS(QRect)*>(copy));
- case QMetaType::QRectF:
- return new NS(QRectF)(*static_cast<const NS(QRectF)*>(copy));
- case QMetaType::QSize:
- return new NS(QSize)(*static_cast<const NS(QSize)*>(copy));
- case QMetaType::QSizeF:
- return new NS(QSizeF)(*static_cast<const NS(QSizeF)*>(copy));
- case QMetaType::QLine:
- return new NS(QLine)(*static_cast<const NS(QLine)*>(copy));
- case QMetaType::QLineF:
- return new NS(QLineF)(*static_cast<const NS(QLineF)*>(copy));
- case QMetaType::QPoint:
- return new NS(QPoint)(*static_cast<const NS(QPoint)*>(copy));
- case QMetaType::QPointF:
- return new NS(QPointF)(*static_cast<const NS(QPointF)*>(copy));
-#endif
-#ifndef QT_NO_REGEXP
- case QMetaType::QRegExp:
- return new NS(QRegExp)(*static_cast<const NS(QRegExp)*>(copy));
-#endif
-#ifndef QT_BOOTSTRAPPED
-#ifndef QT_NO_REGEXP
- case QMetaType::QRegularExpression:
- return new NS(QRegularExpression)(*static_cast<const NS(QRegularExpression)*>(copy));
-#endif // QT_NO_REGEXP
- case QMetaType::QEasingCurve:
- return new NS(QEasingCurve)(*static_cast<const NS(QEasingCurve)*>(copy));
-#endif // QT_BOOTSTRAPPED
- case QMetaType::QUuid:
- return new NS(QUuid)(*static_cast<const NS(QUuid)*>(copy));
-#ifndef QT_BOOTSTRAPPED
- case QMetaType::QModelIndex:
- return new NS(QModelIndex)(*static_cast<const NS(QModelIndex)*>(copy));
-#endif
- case QMetaType::UnknownType:
- case QMetaType::Void:
- return 0;
- default:
- ;
- }
- } else {
- switch(type) {
- case QMetaType::VoidStar:
- case QMetaType::QObjectStar:
- case QMetaType::QWidgetStar:
- return new void *;
- case QMetaType::Long:
- return new long;
- case QMetaType::Int:
- return new int;
- case QMetaType::Short:
- return new short;
- case QMetaType::Char:
- return new char;
- case QMetaType::ULong:
- return new ulong;
- case QMetaType::UInt:
- return new uint;
- case QMetaType::LongLong:
- return new qlonglong;
- case QMetaType::ULongLong:
- return new qulonglong;
- case QMetaType::UShort:
- return new ushort;
- case QMetaType::UChar:
- return new uchar;
- case QMetaType::Bool:
- return new bool;
- case QMetaType::Float:
- return new float;
- case QMetaType::Double:
- return new double;
- case QMetaType::QChar:
- return new NS(QChar);
-#ifndef QT_BOOTSTRAPPED
- case QMetaType::QVariantMap:
- return new NS(QVariantMap);
- case QMetaType::QVariantHash:
- return new NS(QVariantHash);
- case QMetaType::QVariantList:
- return new NS(QVariantList);
- case QMetaType::QVariant:
- return new NS(QVariant);
-#endif
- case QMetaType::QByteArray:
- return new NS(QByteArray);
- case QMetaType::QString:
- return new NS(QString);
- case QMetaType::QStringList:
- return new NS(QStringList);
-#ifndef QT_BOOTSTRAPPED
- case QMetaType::QBitArray:
- return new NS(QBitArray);
-#endif
- case QMetaType::QDate:
- return new NS(QDate);
- case QMetaType::QTime:
- return new NS(QTime);
- case QMetaType::QDateTime:
- return new NS(QDateTime);
-#ifndef QT_BOOTSTRAPPED
- case QMetaType::QUrl:
- return new NS(QUrl);
-#endif
- case QMetaType::QLocale:
- return new NS(QLocale);
-#ifndef QT_NO_GEOM_VARIANT
- case QMetaType::QRect:
- return new NS(QRect);
- case QMetaType::QRectF:
- return new NS(QRectF);
- case QMetaType::QSize:
- return new NS(QSize);
- case QMetaType::QSizeF:
- return new NS(QSizeF);
- case QMetaType::QLine:
- return new NS(QLine);
- case QMetaType::QLineF:
- return new NS(QLineF);
- case QMetaType::QPoint:
- return new NS(QPoint);
- case QMetaType::QPointF:
- return new NS(QPointF);
-#endif
-#ifndef QT_NO_REGEXP
- case QMetaType::QRegExp:
- return new NS(QRegExp);
-#endif
-#ifndef QT_BOOTSTRAPPED
-#ifndef QT_NO_REGEXP
- case QMetaType::QRegularExpression:
- return new NS(QRegularExpression);
-#endif // QT_NO_REGEXP
- case QMetaType::QEasingCurve:
- return new NS(QEasingCurve);
-#endif // QT_BOOTSTRAPPED
- case QMetaType::QUuid:
- return new NS(QUuid);
-#ifndef QT_BOOTSTRAPPED
- case QMetaType::QModelIndex:
- return new NS(QModelIndex);
-#endif
- case QMetaType::UnknownType:
- case QMetaType::Void:
- return 0;
- default:
- ;
- }
- }
-
- Creator creator = 0;
- if (type >= FirstGuiType && type <= LastGuiType) {
- if (!qMetaTypeGuiHelper)
- return 0;
- creator = qMetaTypeGuiHelper[type - FirstGuiType].creator;
- } else if (type >= FirstWidgetsType && type <= LastWidgetsType) {
- if (!qMetaTypeWidgetsHelper)
- return 0;
- creator = qMetaTypeWidgetsHelper[type - FirstWidgetsType].creator;
- } else {
- const QVector<QCustomTypeInfo> * const ct = customTypes();
- QReadLocker locker(customTypesLock());
- if (type < User || !ct || ct->count() <= type - User)
- return 0;
- if (ct->at(type - User).typeName.isEmpty())
- return 0;
- creator = ct->at(type - User).creator;
- }
-
- return creator(copy);
+ TypeCreator typeCreator(type);
+ return QMetaTypeSwitcher::switcher<void*>(typeCreator, type, copy);
}
namespace {
@@ -1610,13 +1428,9 @@ class Flags
template<typename T, bool IsAcceptedType = DefinedTypesFilter::Acceptor<T>::IsAccepted>
struct FlagsImpl
{
- static quint32 Flags(const int type)
+ static quint32 Flags(const int /* type */)
{
- return (!QTypeInfo<T>::isStatic * QMetaType::MovableType)
- | (QTypeInfo<T>::isComplex * QMetaType::NeedsConstruction)
- | (QTypeInfo<T>::isComplex * QMetaType::NeedsDestruction)
- | (type == QMetaType::QObjectStar ? QMetaType::PointerToQObject : 0)
- | (type == QMetaType::QWidgetStar ? QMetaType::PointerToQObject : 0);
+ return QtPrivate::QMetaTypeTypeFlags<T>::Flags;
}
};
template<typename T>
diff --git a/src/corelib/kernel/qmetatype.h b/src/corelib/kernel/qmetatype.h
index d913e37332..aa73785dac 100644
--- a/src/corelib/kernel/qmetatype.h
+++ b/src/corelib/kernel/qmetatype.h
@@ -447,6 +447,17 @@ namespace QtPrivate {
template <class Result, class Arg0> struct IsPointerToTypeDerivedFromQObject<Result(*)(Arg0)> { enum { Value = false }; };
template <class Result, class Arg0, class Arg1> struct IsPointerToTypeDerivedFromQObject<Result(*)(Arg0, Arg1)> { enum { Value = false }; };
template <class Result, class Arg0, class Arg1, class Arg2> struct IsPointerToTypeDerivedFromQObject<Result(*)(Arg0, Arg1, Arg2)> { enum { Value = false }; };
+
+ template<typename T>
+ struct QMetaTypeTypeFlags
+ {
+ enum { Flags = (!QTypeInfo<T>::isStatic ? QMetaType::MovableType : 0)
+ | (QTypeInfo<T>::isComplex ? QMetaType::NeedsConstruction : 0)
+ | (QTypeInfo<T>::isComplex ? QMetaType::NeedsDestruction : 0)
+ | (IsPointerToTypeDerivedFromQObject<T>::Value ? QMetaType::PointerToQObject : 0)
+ | (Q_IS_ENUM(T) ? QMetaType::IsEnumeration : 0)
+ };
+ };
}
template <typename T>
@@ -460,18 +471,7 @@ int qRegisterMetaType(const char *typeName
if (typedefOf != -1)
return QMetaType::registerTypedef(typeName, typedefOf);
- QMetaType::TypeFlags flags;
- if (!QTypeInfo<T>::isStatic)
- flags |= QMetaType::MovableType;
- if (QTypeInfo<T>::isComplex) {
- flags |= QMetaType::NeedsConstruction;
- flags |= QMetaType::NeedsDestruction;
- }
- if (QtPrivate::IsPointerToTypeDerivedFromQObject<T>::Value)
- flags |= QMetaType::PointerToQObject;
- if (Q_IS_ENUM(T))
- flags |= QMetaType::IsEnumeration;
-
+ QMetaType::TypeFlags flags(QtPrivate::QMetaTypeTypeFlags<T>::Flags);
return QMetaType::registerType(typeName, qMetaTypeDeleteHelper<T>,
qMetaTypeCreateHelper<T>,
qMetaTypeDestructHelper<T>,
diff --git a/src/corelib/kernel/qmetatype_p.h b/src/corelib/kernel/qmetatype_p.h
index b50521c7a6..c73f8d0a20 100644
--- a/src/corelib/kernel/qmetatype_p.h
+++ b/src/corelib/kernel/qmetatype_p.h
@@ -155,9 +155,7 @@ public:
/*constructor*/(qMetaTypeConstructHelper<Type>), \
/*destructor*/(qMetaTypeDestructHelper<Type>), \
/*size*/(QTypeInfo<Type>::sizeOf), \
- /*flags*/(!QTypeInfo<Type>::isStatic * QMetaType::MovableType) \
- | (QTypeInfo<Type>::isComplex * QMetaType::NeedsConstruction) \
- | (QTypeInfo<Type>::isComplex * QMetaType::NeedsDestruction) \
+ /*flags*/QtPrivate::QMetaTypeTypeFlags<Type>::Flags \
}
diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp
index edbb84a657..914441f7a8 100644
--- a/src/corelib/kernel/qobject.cpp
+++ b/src/corelib/kernel/qobject.cpp
@@ -3188,7 +3188,7 @@ void QMetaObject::connectSlotsByName(QObject *o)
}
if (sigIndex < 0)
continue;
- if (QMetaObjectPrivate::connect(co, sigIndex, o, i)) {
+ if (Connection(QMetaObjectPrivate::connect(co, sigIndex, o, i))) {
foundIt = true;
break;
}
diff --git a/src/corelib/kernel/qpointer.cpp b/src/corelib/kernel/qpointer.cpp
index b983bef5fe..f81451d906 100644
--- a/src/corelib/kernel/qpointer.cpp
+++ b/src/corelib/kernel/qpointer.cpp
@@ -44,7 +44,6 @@
\brief The QPointer class is a template class that provides guarded pointers to QObject.
\ingroup objectmodel
- \obsolete Use QWeakPointer instead.
A guarded pointer, QPointer<T>, behaves like a normal C++
pointer \c{T *}, except that it is automatically set to 0 when the
diff --git a/src/corelib/kernel/qpointer.h b/src/corelib/kernel/qpointer.h
index 9b4f8e4332..836c13e3fc 100644
--- a/src/corelib/kernel/qpointer.h
+++ b/src/corelib/kernel/qpointer.h
@@ -49,10 +49,8 @@ QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
-#if QT_DEPRECATED_SINCE(5,0)
-
template <class T>
-class QT_DEPRECATED QPointer
+class QPointer
{
QWeakPointer<T> wp;
@@ -161,8 +159,6 @@ inline bool operator!= (int i, const QPointer<T> &p)
{ Q_ASSERT(i == 0); return !i && !p.isNull(); }
#endif
-#endif // QT_DEPRECATED_SINCE(5,0)
-
QT_END_NAMESPACE
QT_END_HEADER
diff --git a/src/corelib/tools/qregexp.cpp b/src/corelib/tools/qregexp.cpp
index 29b3424315..6462b3df92 100644
--- a/src/corelib/tools/qregexp.cpp
+++ b/src/corelib/tools/qregexp.cpp
@@ -3918,8 +3918,8 @@ static void invalidateEngine(QRegExpPrivate *priv)
\value RegExp A rich Perl-like pattern matching syntax. This is
the default.
- \value RegExp2 Like RegExp, but with \l{greedy quantifiers}. This
- will be the default in Qt 5. (Introduced in Qt 4.2.)
+ \value RegExp2 Like RegExp, but with \l{greedy quantifiers}.
+ (Introduced in Qt 4.2.)
\value Wildcard This provides a simple pattern matching syntax
similar to that used by shells (command interpreters) for "file
diff --git a/src/corelib/tools/qsimd.cpp b/src/corelib/tools/qsimd.cpp
index b3d2d62819..6c07480f99 100644
--- a/src/corelib/tools/qsimd.cpp
+++ b/src/corelib/tools/qsimd.cpp
@@ -108,12 +108,12 @@ static inline uint detectProcessorFeatures()
uint features = 0;
#if defined(Q_OS_LINUX)
- int auxv = ::qt_safe_open("/proc/self/auxv", O_RDONLY);
+ int auxv = qt_safe_open("/proc/self/auxv", O_RDONLY);
if (auxv != -1) {
unsigned long vector[64];
int nread;
while (features == 0) {
- nread = ::qt_safe_read(auxv, (char *)vector, sizeof vector);
+ nread = qt_safe_read(auxv, (char *)vector, sizeof vector);
if (nread <= 0) {
// EOF or error
break;
@@ -130,7 +130,7 @@ static inline uint detectProcessorFeatures()
}
}
- ::qt_safe_close(auxv);
+ qt_safe_close(auxv);
return features;
}
// fall back if /proc/self/auxv wasn't found
diff --git a/src/gui/accessible/qaccessible.cpp b/src/gui/accessible/qaccessible.cpp
index cb89fccc2d..59794a5a06 100644
--- a/src/gui/accessible/qaccessible.cpp
+++ b/src/gui/accessible/qaccessible.cpp
@@ -648,9 +648,8 @@ void QAccessible::setRootObject(QObject *object)
void QAccessible::updateAccessibility(QObject *object, int child, Event reason)
{
Q_ASSERT(object);
-
- QAccessibleEvent event = QAccessibleEvent(reason, object, child);
- updateAccessibility(event);
+ QAccessibleEvent ev(reason, object, child);
+ updateAccessibility(&ev);
}
/*!
@@ -672,7 +671,7 @@ void QAccessible::updateAccessibility(QObject *object, int child, Event reason)
the parameters of the call is expensive you can test isActive() to
avoid unnecessary computations.
*/
-void QAccessible::updateAccessibility(const QAccessibleEvent &event)
+void QAccessible::updateAccessibility(QAccessibleEvent *event)
{
if (updateHandler) {
updateHandler(event);
diff --git a/src/gui/accessible/qaccessible.h b/src/gui/accessible/qaccessible.h
index e8a5cf8bad..ffdd3fe7ce 100644
--- a/src/gui/accessible/qaccessible.h
+++ b/src/gui/accessible/qaccessible.h
@@ -327,7 +327,7 @@ public:
};
typedef QAccessibleInterface*(*InterfaceFactory)(const QString &key, QObject*);
- typedef void(*UpdateHandler)(const QAccessibleEvent &event);
+ typedef void(*UpdateHandler)(QAccessibleEvent *event);
typedef void(*RootObjectHandler)(QObject*);
static void installFactory(InterfaceFactory);
@@ -338,7 +338,7 @@ public:
static QAccessibleInterface *queryAccessibleInterface(QObject *);
QT_DEPRECATED static void updateAccessibility(QObject *object, int child, Event reason);
- static void updateAccessibility(const QAccessibleEvent &event);
+ static void updateAccessibility(QAccessibleEvent *event);
static bool isActive();
static void setRootObject(QObject *object);
diff --git a/src/gui/accessible/qaccessible2.h b/src/gui/accessible/qaccessible2.h
index 708910b8df..56a39b640d 100644
--- a/src/gui/accessible/qaccessible2.h
+++ b/src/gui/accessible/qaccessible2.h
@@ -164,6 +164,9 @@ public:
virtual bool isSelected() const = 0;
// Gets the row and column indexes and extents of this cell accessible and whether or not it is selected.
+ // ### Is this really needed??
+ //
+ // ### Maybe change to QSize cellSize(), we already have accessors for the row, column and selected
virtual void rowColumnExtents(int *row, int *column, int *rowExtents, int *columnExtents, bool *selected) const = 0;
// Returns a reference to the accessbile of the containing table.
virtual QAccessibleInterface* table() const = 0;
diff --git a/src/gui/accessible/qaccessiblebridge.h b/src/gui/accessible/qaccessiblebridge.h
index 147bf30bd0..80830bd01c 100644
--- a/src/gui/accessible/qaccessiblebridge.h
+++ b/src/gui/accessible/qaccessiblebridge.h
@@ -60,7 +60,7 @@ class QAccessibleBridge
public:
virtual ~QAccessibleBridge() {}
virtual void setRootObject(QAccessibleInterface *) = 0;
- virtual void notifyAccessibilityUpdate(const QAccessibleEvent &event) = 0;
+ virtual void notifyAccessibilityUpdate(QAccessibleEvent *event) = 0;
};
struct Q_GUI_EXPORT QAccessibleBridgeFactoryInterface : public QFactoryInterface
diff --git a/src/gui/accessible/qaccessibleobject.cpp b/src/gui/accessible/qaccessibleobject.cpp
index 1f4e005dfe..db4ee242ff 100644
--- a/src/gui/accessible/qaccessibleobject.cpp
+++ b/src/gui/accessible/qaccessibleobject.cpp
@@ -162,6 +162,7 @@ QAccessibleInterface *QAccessibleObject::childAt(int x, int y) const
{
for (int i = 0; i < childCount(); ++i) {
QAccessibleInterface *childIface = child(i);
+ Q_ASSERT(childIface);
if (childIface->rect().contains(x,y)) {
return childIface;
}
diff --git a/src/gui/accessible/qplatformaccessibility_qpa.cpp b/src/gui/accessible/qplatformaccessibility_qpa.cpp
index 9de11e7c1f..057d43add3 100644
--- a/src/gui/accessible/qplatformaccessibility_qpa.cpp
+++ b/src/gui/accessible/qplatformaccessibility_qpa.cpp
@@ -75,7 +75,7 @@ QPlatformAccessibility::~QPlatformAccessibility()
{
}
-void QPlatformAccessibility::notifyAccessibilityUpdate(const QAccessibleEvent &event)
+void QPlatformAccessibility::notifyAccessibilityUpdate(QAccessibleEvent *event)
{
initialize();
diff --git a/src/gui/accessible/qplatformaccessibility_qpa.h b/src/gui/accessible/qplatformaccessibility_qpa.h
index 364f87b0c9..3bd6316d01 100644
--- a/src/gui/accessible/qplatformaccessibility_qpa.h
+++ b/src/gui/accessible/qplatformaccessibility_qpa.h
@@ -57,7 +57,7 @@ public:
QPlatformAccessibility();
virtual ~QPlatformAccessibility();
- virtual void notifyAccessibilityUpdate(const QAccessibleEvent &event);
+ virtual void notifyAccessibilityUpdate(QAccessibleEvent *event);
virtual void setRootObject(QObject *o);
virtual void initialize();
virtual void cleanup();
diff --git a/src/gui/animation/animation.pri b/src/gui/animation/animation.pri
new file mode 100644
index 0000000000..add9ae7119
--- /dev/null
+++ b/src/gui/animation/animation.pri
@@ -0,0 +1,2 @@
+SOURCES += \
+ animation/qguivariantanimation.cpp
diff --git a/src/widgets/animation/qguivariantanimation.cpp b/src/gui/animation/qguivariantanimation.cpp
index c344a18b8a..c344a18b8a 100644
--- a/src/widgets/animation/qguivariantanimation.cpp
+++ b/src/gui/animation/qguivariantanimation.cpp
diff --git a/src/gui/gui.pro b/src/gui/gui.pro
index 2cee31fce1..e6a820b5c4 100644
--- a/src/gui/gui.pro
+++ b/src/gui/gui.pro
@@ -31,6 +31,7 @@ include(painting/painting.pri)
include(util/util.pri)
include(math3d/math3d.pri)
include(opengl/opengl.pri)
+include(animation/animation.pri)
QMAKE_LIBS += $$QMAKE_LIBS_GUI
@@ -150,4 +151,4 @@ win32:!contains(QT_CONFIG, directwrite) {
sse2: SOURCES += $$SSE2_SOURCES
ssse3: SOURCES += $$SSSE3_SOURCES
iwmmxt: SOURCES += $$IWMMXT_SOURCES
- }
+ } \ No newline at end of file
diff --git a/src/gui/image/qbmphandler.cpp b/src/gui/image/qbmphandler.cpp
index f9e11f1390..8ff1e43b71 100644
--- a/src/gui/image/qbmphandler.cpp
+++ b/src/gui/image/qbmphandler.cpp
@@ -260,8 +260,6 @@ static bool read_dib_body(QDataStream &s, const BMP_INFOHDR &bi, int offset, int
d->seek(startpos + BMP_FILEHDR_SIZE + (bi.biSize >= BMP_WIN4? BMP_WIN : bi.biSize)); // goto start of colormap
if (bi.biSize >= BMP_WIN4 || (comp == BMP_BITFIELDS && (nbits == 16 || nbits == 32))) {
- Q_ASSERT(ncols == 0);
-
if (d->read((char *)&red_mask, sizeof(red_mask)) != sizeof(red_mask))
return false;
if (d->read((char *)&green_mask, sizeof(green_mask)) != sizeof(green_mask))
diff --git a/src/gui/kernel/qevent.cpp b/src/gui/kernel/qevent.cpp
index adf5f66679..3e3db64d6f 100644
--- a/src/gui/kernel/qevent.cpp
+++ b/src/gui/kernel/qevent.cpp
@@ -1146,12 +1146,13 @@ QMoveEvent::~QMoveEvent()
/*!
\class QExposeEvent
+ \since 5.0
\brief The QExposeEvent class contains event parameters for expose events.
\ingroup events
- Expose events are sent to widgets when an area of the widget is invalidated
- and needs to be flushed from the backing store.
+ Expose events are sent to windows when an area of the window is invalidated
+ or window visibility in the windowing system changes.
The event handler QWindow::exposeEvent() receives expose events.
*/
@@ -1761,9 +1762,11 @@ void QInputMethodEvent::setTentativeCommitString(const QString &tentativeCommitS
\sa setTentativeCommitString()
*/
-/*! \class QInputMethodQueryEvent
+/*!
+ \class QInputMethodQueryEvent
+ \since 5.0
- This event is sent by the input context to input objects.
+ \brief This event is sent by the input context to input objects.
It is used by the
input method to query a set of properties of the object to be
@@ -3375,9 +3378,10 @@ QWindowStateChangeEvent::~QWindowStateChangeEvent()
gestures. Whenever such a decision is made (the gesture is recognized), the clients will be
notified with a QEvent::TouchCancel event so they can update their state accordingly.
- The touchPoints() function returns a list of all touch points contained in the event.
- Information about each touch point can be retrieved using the QTouchEvent::TouchPoint class.
- The Qt::TouchPointState enum describes the different states that a touch point may have.
+ The touchPoints() function returns a list of all touch points contained in the event. Note that
+ this list may be empty, for example in case of a QEvent::TouchCancel event. Information about
+ each touch point can be retrieved using the QTouchEvent::TouchPoint class. The
+ Qt::TouchPointState enum describes the different states that a touch point may have.
\section1 Event Delivery and Propagation
diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp
index 26690c78cf..d72647091d 100644
--- a/src/gui/kernel/qguiapplication.cpp
+++ b/src/gui/kernel/qguiapplication.cpp
@@ -110,6 +110,7 @@ enum ApplicationResourceFlags
static unsigned applicationResourceFlags = 0;
+QString *QGuiApplicationPrivate::platform_name = 0;
bool QGuiApplicationPrivate::app_do_modal = false;
QPalette *QGuiApplicationPrivate::app_pal = 0; // default application palette
@@ -194,6 +195,7 @@ static inline void clearFontUnlocked()
flow and main settings.
\inmodule QtGui
+ \since 5.0
QGuiApplication contains the main event loop, where all events from the window
system and other sources are processed and dispatched. It also handles the
@@ -361,6 +363,9 @@ QGuiApplication::~QGuiApplication()
#ifndef QT_NO_CURSOR
d->cursor_list.clear();
#endif
+
+ delete QGuiApplicationPrivate::platform_name;
+ QGuiApplicationPrivate::platform_name = 0;
}
QGuiApplicationPrivate::QGuiApplicationPrivate(int &argc, char **argv, int flags)
@@ -470,6 +475,17 @@ QWindow *QGuiApplication::topLevelAt(const QPoint &pos)
return 0;
}
+/*!
+ \property QGuiApplication::platformName
+ \brief The name of the underlying platform plugin.
+ \since 5.0
+*/
+
+QString QGuiApplication::platformName()
+{
+ return QGuiApplicationPrivate::platform_name ?
+ *QGuiApplicationPrivate::platform_name : QString();
+}
static void init_platform(const QString &pluginArgument, const QString &platformPluginPath)
{
@@ -509,7 +525,9 @@ static void init_platform(const QString &pluginArgument, const QString &platform
// Create the platform integration.
QGuiApplicationPrivate::platform_integration = QPlatformIntegrationFactory::create(name, platformPluginPath);
- if (!QGuiApplicationPrivate::platform_integration) {
+ if (QGuiApplicationPrivate::platform_integration) {
+ QGuiApplicationPrivate::platform_name = new QString(name);
+ } else {
QStringList keys = QPlatformIntegrationFactory::keys(platformPluginPath);
QString fatalMessage =
QString::fromLatin1("Failed to load platform plugin \"%1\". Available platforms are: \n").arg(name);
@@ -521,13 +539,22 @@ static void init_platform(const QString &pluginArgument, const QString &platform
}
// Create the platform theme:
- // 1) Ask the platform integration to create a platform theme
- QGuiApplicationPrivate::platform_theme = QGuiApplicationPrivate::platform_integration->platformTheme();
+ // 1) Ask the platform integration for a list of names.
+ const QStringList themeNames = QGuiApplicationPrivate::platform_integration->themeNames();
+ foreach (const QString &themeName, themeNames) {
+ QGuiApplicationPrivate::platform_theme = QPlatformThemeFactory::create(themeName, platformPluginPath);
+ if (QGuiApplicationPrivate::platform_theme)
+ break;
+ }
// 2) If none found, look for a theme plugin. Theme plugins are located in the
// same directory as platform plugins.
if (!QGuiApplicationPrivate::platform_theme) {
- QGuiApplicationPrivate::platform_theme = QPlatformThemeFactory::create(name, platformPluginPath);
+ foreach (const QString &themeName, themeNames) {
+ QGuiApplicationPrivate::platform_theme = QGuiApplicationPrivate::platform_integration->createPlatformTheme(themeName);
+ if (QGuiApplicationPrivate::platform_theme)
+ break;
+ }
// No error message; not having a theme plugin is allowed.
}
@@ -731,6 +758,7 @@ QGuiApplicationPrivate::~QGuiApplicationPrivate()
qt_cleanupFontDatabase();
+ delete platform_theme;
delete platform_integration;
platform_integration = 0;
}
diff --git a/src/gui/kernel/qguiapplication.h b/src/gui/kernel/qguiapplication.h
index 6fdbb000fe..cc7dea422f 100644
--- a/src/gui/kernel/qguiapplication.h
+++ b/src/gui/kernel/qguiapplication.h
@@ -75,7 +75,7 @@ class Q_GUI_EXPORT QGuiApplication : public QCoreApplication
{
Q_OBJECT
Q_PROPERTY(Qt::LayoutDirection layoutDirection READ layoutDirection WRITE setLayoutDirection)
-
+ Q_PROPERTY(QString platformName READ platformName STORED false)
Q_PROPERTY(bool quitOnLastWindowClosed READ quitOnLastWindowClosed WRITE setQuitOnLastWindowClosed)
public:
@@ -86,6 +86,8 @@ public:
static QWindowList topLevelWindows();
static QWindow *topLevelAt(const QPoint &pos);
+ static QString platformName();
+
#ifdef QT_DEPRECATED
static QT_DEPRECATED QWindow *activeWindow() { return focusWindow(); }
#endif
diff --git a/src/gui/kernel/qguiapplication_p.h b/src/gui/kernel/qguiapplication_p.h
index d9477a3e9e..f30a2bb5a0 100644
--- a/src/gui/kernel/qguiapplication_p.h
+++ b/src/gui/kernel/qguiapplication_p.h
@@ -146,6 +146,7 @@ public:
static QGuiApplicationPrivate *instance() { return self; }
+ static QString *platform_name;
static bool app_do_modal;
static Qt::MouseButtons buttons;
diff --git a/src/gui/kernel/qopenglcontext.cpp b/src/gui/kernel/qopenglcontext.cpp
index f9ebf8820c..eaff417f15 100644
--- a/src/gui/kernel/qopenglcontext.cpp
+++ b/src/gui/kernel/qopenglcontext.cpp
@@ -76,6 +76,7 @@ QMutex QOpenGLContextPrivate::makeCurrentTrackerMutex;
/*!
\class QOpenGLContext
+ \since 5.0
\brief The QOpenGLContext represents a native OpenGL context, enabling
OpenGL rendering on a QSurface.
@@ -621,6 +622,7 @@ void QOpenGLContext::deleteQGLContext()
/*!
\class QOpenGLContextGroup
+ \since 5.0
\brief The QOpenGLContextGroup represents a group of contexts sharing
OpenGL resources.
diff --git a/src/gui/kernel/qplatformintegration_qpa.cpp b/src/gui/kernel/qplatformintegration_qpa.cpp
index e8721edce7..786e915a19 100644
--- a/src/gui/kernel/qplatformintegration_qpa.cpp
+++ b/src/gui/kernel/qplatformintegration_qpa.cpp
@@ -44,6 +44,7 @@
#include <QtGui/QPlatformFontDatabase>
#include <QtGui/QPlatformClipboard>
#include <QtGui/QPlatformAccessibility>
+#include <QtGui/QPlatformTheme>
#include <QtGui/private/qguiapplication_p.h>
#include <QtGui/private/qpixmap_raster_p.h>
#include <QtGui/private/qplatformscreen_qpa_p.h>
@@ -259,6 +260,8 @@ QPlatformInputContext *QPlatformIntegration::inputContext() const
return 0;
}
+#ifndef QT_NO_ACCESSIBILITY
+
/*!
Returns the platforms accessibility.
@@ -269,6 +272,8 @@ QPlatformAccessibility *QPlatformIntegration::accessibility() const
return 0;
}
+#endif
+
QVariant QPlatformIntegration::styleHint(StyleHint hint) const
{
switch (hint) {
@@ -315,9 +320,15 @@ void QPlatformIntegration::screenAdded(QPlatformScreen *ps)
emit qGuiApp->screenAdded(screen);
}
-class QPlatformTheme *QPlatformIntegration::platformTheme() const
+QStringList QPlatformIntegration::themeNames() const
{
- return 0;
+ return QStringList();
+}
+
+class QPlatformTheme *QPlatformIntegration::createPlatformTheme(const QString &name) const
+{
+ Q_UNUSED(name)
+ return new QPlatformTheme;
}
QT_END_NAMESPACE
diff --git a/src/gui/kernel/qplatformintegration_qpa.h b/src/gui/kernel/qplatformintegration_qpa.h
index 3f9de9df5e..632b3af613 100644
--- a/src/gui/kernel/qplatformintegration_qpa.h
+++ b/src/gui/kernel/qplatformintegration_qpa.h
@@ -105,7 +105,9 @@ public:
virtual QPlatformDrag *drag() const;
#endif
virtual QPlatformInputContext *inputContext() const;
+#ifndef QT_NO_ACCESSIBILITY
virtual QPlatformAccessibility *accessibility() const;
+#endif
// Access native handles. The window handle is already available from Wid;
virtual QPlatformNativeInterface *nativeInterface() const;
@@ -126,7 +128,8 @@ public:
virtual Qt::KeyboardModifiers queryKeyboardModifiers() const;
- virtual QPlatformTheme *platformTheme() const;
+ virtual QStringList themeNames() const;
+ virtual QPlatformTheme *createPlatformTheme(const QString &name) const;
protected:
void screenAdded(QPlatformScreen *screen);
diff --git a/src/gui/kernel/qplatformnativeinterface_qpa.cpp b/src/gui/kernel/qplatformnativeinterface_qpa.cpp
index f87a2956a3..48e43f5226 100644
--- a/src/gui/kernel/qplatformnativeinterface_qpa.cpp
+++ b/src/gui/kernel/qplatformnativeinterface_qpa.cpp
@@ -43,6 +43,11 @@
QT_BEGIN_NAMESPACE
+void *QPlatformNativeInterface::nativeResourceForIntegration(const QByteArray &resource)
+{
+ Q_UNUSED(resource);
+ return 0;
+}
void *QPlatformNativeInterface::nativeResourceForWindow(const QByteArray &resource, QWindow *window)
{
Q_UNUSED(resource);
diff --git a/src/gui/kernel/qplatformnativeinterface_qpa.h b/src/gui/kernel/qplatformnativeinterface_qpa.h
index b25ebf0fe9..dd1ef22354 100644
--- a/src/gui/kernel/qplatformnativeinterface_qpa.h
+++ b/src/gui/kernel/qplatformnativeinterface_qpa.h
@@ -60,6 +60,7 @@ class Q_GUI_EXPORT QPlatformNativeInterface : public QObject
{
Q_OBJECT
public:
+ virtual void *nativeResourceForIntegration(const QByteArray &resource);
virtual void *nativeResourceForContext(const QByteArray &resource, QOpenGLContext *context);
virtual void *nativeResourceForWindow(const QByteArray &resource, QWindow *window);
virtual void *nativeResourceForBackingStore(const QByteArray &resource, QBackingStore *backingStore);
diff --git a/src/gui/kernel/qplatformsurface_qpa.cpp b/src/gui/kernel/qplatformsurface_qpa.cpp
index 5fd9c073fe..6d3b6503d7 100644
--- a/src/gui/kernel/qplatformsurface_qpa.cpp
+++ b/src/gui/kernel/qplatformsurface_qpa.cpp
@@ -43,7 +43,10 @@
QT_BEGIN_NAMESPACE
-QPlatformSurface::~QPlatformSurface() {}
+QPlatformSurface::~QPlatformSurface()
+{
+
+}
QSurface::SurfaceClass QPlatformSurface::surfaceClass() const
{
diff --git a/src/gui/kernel/qscreen.cpp b/src/gui/kernel/qscreen.cpp
index da0716b7d5..5d7ffdbc2b 100644
--- a/src/gui/kernel/qscreen.cpp
+++ b/src/gui/kernel/qscreen.cpp
@@ -50,6 +50,7 @@ QT_BEGIN_NAMESPACE
/*!
\class QScreen
+ \since 5.0
\brief The QScreen class is used to query screen properties.
A note on logical vs physical dots per inch: physical DPI is based on the
diff --git a/src/gui/kernel/qstylehints.cpp b/src/gui/kernel/qstylehints.cpp
index c98158b6b6..15fcec21d8 100644
--- a/src/gui/kernel/qstylehints.cpp
+++ b/src/gui/kernel/qstylehints.cpp
@@ -50,6 +50,11 @@ static inline QVariant hint(QPlatformIntegration::StyleHint h)
return QGuiApplicationPrivate::platformIntegration()->styleHint(h);
}
+/*!
+ \class QStyleHints
+ \since 5.0
+ \brief The QStyleHints contains platform specific hints and settings.
+ */
QStyleHints::QStyleHints()
: QObject()
{
diff --git a/src/gui/kernel/qsurface.cpp b/src/gui/kernel/qsurface.cpp
index eb2676802b..534135cc2f 100644
--- a/src/gui/kernel/qsurface.cpp
+++ b/src/gui/kernel/qsurface.cpp
@@ -46,6 +46,7 @@ QT_BEGIN_NAMESPACE
/*!
\class QSurface
+ \since 5.0
\brief The QSurface class is an abstraction of renderable surfaces in Qt.
The size of the surface is accessible with the size() function. The rendering
diff --git a/src/gui/kernel/qsurfaceformat.cpp b/src/gui/kernel/qsurfaceformat.cpp
index 9021d82e20..cc6b621047 100644
--- a/src/gui/kernel/qsurfaceformat.cpp
+++ b/src/gui/kernel/qsurfaceformat.cpp
@@ -108,6 +108,7 @@ public:
/*!
\class QSurfaceFormat
+ \since 5.0
\brief The QSurfaceFormat class represents the format of a QSurface.
The format includes the size of the color buffers, red, green, and blue;
diff --git a/src/gui/kernel/qwindow.cpp b/src/gui/kernel/qwindow.cpp
index 367cee70e3..78b6f6f722 100644
--- a/src/gui/kernel/qwindow.cpp
+++ b/src/gui/kernel/qwindow.cpp
@@ -63,6 +63,7 @@ QT_BEGIN_NAMESPACE
/*!
\class QWindow
+ \since 5.0
\brief The QWindow class represents a window in the underlying windowing system.
A window that is supplied a parent becomes a native child window of
@@ -597,6 +598,11 @@ bool QWindow::isActive() const
return false;
QWindow *focus = QGuiApplication::focusWindow();
+
+ // Means the whole application lost the focus
+ if (!focus)
+ return false;
+
if (focus == this)
return true;
diff --git a/src/gui/text/qfontdatabase_qpa.cpp b/src/gui/text/qfontdatabase_qpa.cpp
index 1a1f08f73d..0014efc450 100644
--- a/src/gui/text/qfontdatabase_qpa.cpp
+++ b/src/gui/text/qfontdatabase_qpa.cpp
@@ -207,7 +207,9 @@ QFontEngine *loadEngine(int script, const QFontDef &request,
fallbacks = family->fallbackFamilies;
QPlatformFontDatabase *pfdb = QGuiApplicationPrivate::platformIntegration()->fontDatabase();
- engine = pfdb->fontEngineMulti(engine, QUnicodeTables::Script(script), fallbacks);
+ QFontEngineMulti *pfMultiEngine = pfdb->fontEngineMulti(engine, QUnicodeTables::Script(script));
+ pfMultiEngine->setFallbackFamiliesList(fallbacks);
+ engine = pfMultiEngine;
// Cache Multi font engine as well in case we got the FT single
// font engine when we are actually looking for a Multi one
diff --git a/src/gui/text/qfontengine.cpp b/src/gui/text/qfontengine.cpp
index 364a356b96..5c18ddeef8 100644
--- a/src/gui/text/qfontengine.cpp
+++ b/src/gui/text/qfontengine.cpp
@@ -1366,6 +1366,7 @@ bool QFontEngineMulti::stringToCMap(const QChar *str, int len,
if (!engine(0)->stringToCMap(str, len, glyphs, &ng, flags))
return false;
+ const_cast<QFontEngineMulti *>(this)->ensureFallbackFamiliesQueried();
int glyph_pos = 0;
for (int i = 0; i < len; ++i) {
bool surrogate = (str[i].isHighSurrogate() && i < len-1 && str[i+1].isLowSurrogate());
diff --git a/src/gui/text/qfontengine_p.h b/src/gui/text/qfontengine_p.h
index 1114cdf12c..4741de3000 100644
--- a/src/gui/text/qfontengine_p.h
+++ b/src/gui/text/qfontengine_p.h
@@ -395,12 +395,14 @@ public:
}
virtual bool shouldLoadFontEngineForCharacter(int at, uint ucs4) const;
+ virtual void setFallbackFamiliesList(const QStringList &) {}
protected:
friend class QPSPrintEnginePrivate;
friend class QPSPrintEngineFontMulti;
friend class QRawFont;
virtual void loadEngine(int at) = 0;
+ virtual void ensureFallbackFamiliesQueried() {}
QVector<QFontEngine *> engines;
};
diff --git a/src/gui/text/qfontengine_qpa.cpp b/src/gui/text/qfontengine_qpa.cpp
index 48679824a4..d12e2d651c 100644
--- a/src/gui/text/qfontengine_qpa.cpp
+++ b/src/gui/text/qfontengine_qpa.cpp
@@ -674,6 +674,7 @@ QFontEngineMultiQPA::QFontEngineMultiQPA(QFontEngine *fe, int _script)
, script(_script)
, fallbacksQueried(false)
{
+ fallbackFamilies << QString();
init(fe);
}
@@ -688,36 +689,43 @@ void QFontEngineMultiQPA::init(QFontEngine *fe)
void QFontEngineMultiQPA::loadEngine(int at)
{
- bool canLoadFallbackEngine = true;
- if (!fallbacksQueried) {
- // Original FontEngine to restore after the fill.
- QFontEngine *fe = engines[0];
- fallbackFamilies = QGuiApplicationPrivate::instance()->platformIntegration()->fontDatabase()->fallbacksForFamily(fe->fontDef.family, QFont::Style(fe->fontDef.style)
- , QFont::AnyStyle, QUnicodeTables::Script(script));
- if (fallbackFamilies.size() > 1) {
- engines.fill(0, fallbackFamilies.size() + 1);
- engines[0] = fe;
- } else {
- // Turns out we lied about having any fallback at all.
- canLoadFallbackEngine = false;
- engines[1] = fe;
- }
- fallbacksQueried = true;
- }
+ ensureFallbackFamiliesQueried();
Q_ASSERT(at < engines.size());
Q_ASSERT(engines.at(at) == 0);
QFontDef request = fontDef;
- if (canLoadFallbackEngine) {
- request.styleStrategy |= QFont::NoFontMerging;
- request.family = fallbackFamilies.at(at-1);
- engines[at] = QFontDatabase::findFont(script,
- /*fontprivate = */0,
- request, /*multi = */false);
- }
+ request.styleStrategy |= QFont::NoFontMerging;
+ request.family = fallbackFamilies.at(at-1);
+ engines[at] = QFontDatabase::findFont(script,
+ /*fontprivate = */0,
+ request, /*multi = */false);
Q_ASSERT(engines[at]);
engines[at]->ref.ref();
engines[at]->fontDef = request;
}
+void QFontEngineMultiQPA::ensureFallbackFamiliesQueried()
+{
+ if (fallbacksQueried)
+ return;
+ QStringList fallbacks = QGuiApplicationPrivate::instance()->platformIntegration()->fontDatabase()->fallbacksForFamily(engine(0)->fontDef.family, QFont::Style(engine(0)->fontDef.style)
+ , QFont::AnyStyle, QUnicodeTables::Script(script));
+ setFallbackFamiliesList(fallbacks);
+}
+
+void QFontEngineMultiQPA::setFallbackFamiliesList(const QStringList &fallbacks)
+{
+ // Original FontEngine to restore after the fill.
+ QFontEngine *fe = engines[0];
+ fallbackFamilies = fallbacks;
+ if (!fallbackFamilies.isEmpty()) {
+ engines.fill(0, fallbackFamilies.size() + 1);
+ engines[0] = fe;
+ } else {
+ // Turns out we lied about having any fallback at all.
+ fallbackFamilies << fe->fontDef.family;
+ engines[1] = fe;
+ }
+ fallbacksQueried = true;
+}
/*
This is used indirectly by QtWebKit when using QTextLayout::setRawFont
@@ -750,7 +758,7 @@ QFontEngine* QFontEngineMultiQPA::createMultiFontEngine(QFontEngine *fe, int scr
it++;
}
if (!engine) {
- engine = new QFontEngineMultiQPA(fe, script);
+ engine = QGuiApplicationPrivate::instance()->platformIntegration()->fontDatabase()->fontEngineMulti(fe, QUnicodeTables::Script(script));
QFontCache::instance()->insertEngine(key, engine, /* insertMulti */ !faceIsLocal);
}
Q_ASSERT(engine);
diff --git a/src/gui/text/qfontengine_qpa_p.h b/src/gui/text/qfontengine_qpa_p.h
index 16991ad2ca..e6907149b2 100644
--- a/src/gui/text/qfontengine_qpa_p.h
+++ b/src/gui/text/qfontengine_qpa_p.h
@@ -247,6 +247,7 @@ class Q_GUI_EXPORT QFontEngineMultiQPA : public QFontEngineMulti
{
public:
QFontEngineMultiQPA(QFontEngine *fe, int script, const QStringList &fallbacks);
+ QFontEngineMultiQPA(QFontEngine *fe, int script);
void loadEngine(int at);
static QFontEngine* createMultiFontEngine(QFontEngine *fe, int script);
@@ -254,13 +255,15 @@ public:
int fallbackFamilyCount() const { return fallbackFamilies.size(); }
QString fallbackFamilyAt(int at) const { return fallbackFamilies.at(at); }
+ virtual void ensureFallbackFamiliesQueried();
+ virtual void setFallbackFamiliesList(const QStringList &fallbacks);
+
private:
- QFontEngineMultiQPA(QFontEngine *fe, int script);
void init(QFontEngine *fe);
- QStringList fallbackFamilies;
+ mutable QStringList fallbackFamilies;
int script;
- bool fallbacksQueried;
+ mutable bool fallbacksQueried;
};
QT_END_NAMESPACE
diff --git a/src/gui/text/qfontengine_qpf.cpp b/src/gui/text/qfontengine_qpf.cpp
index fb898a850f..64596ebaf5 100644
--- a/src/gui/text/qfontengine_qpf.cpp
+++ b/src/gui/text/qfontengine_qpf.cpp
@@ -246,16 +246,32 @@ QList<QByteArray> QFontEngineQPF::cleanUpAfterClientCrash(const QList<int> &cras
int fd = QT_OPEN(fileName.constData(), O_RDONLY, 0);
if (fd >= 0) {
- void *header = ::mmap(0, sizeof(QFontEngineQPF::Header), PROT_READ, MAP_SHARED, fd, 0);
- if (header && header != MAP_FAILED) {
- quint32 lockValue = reinterpret_cast<QFontEngineQPF::Header *>(header)->lock;
+ QT_STATBUF st;
+ int nDataSize = 0;
+ if (QT_FSTAT(fd, &st)) {
+#if defined(DEBUG_FONTENGINE)
+ qDebug() << "stat failed! " << fileName;
+#endif
+ } else {
+ nDataSize = st.st_size;
+ }
- if (lockValue && crashedClientIds.contains(lockValue)) {
- removedFonts.append(fileName);
- QFile::remove(QFile::decodeName(fileName));
- }
+ if (nDataSize >= (int)sizeof(QFontEngineQPF::Header)) {
+ void *header = ::mmap(0, sizeof(QFontEngineQPF::Header), PROT_READ, MAP_SHARED, fd, 0);
+ if (header && header != MAP_FAILED) {
+ quint32 lockValue = reinterpret_cast<QFontEngineQPF::Header *>(header)->lock;
- ::munmap(header, sizeof(QFontEngineQPF::Header));
+ if (lockValue && crashedClientIds.contains(lockValue)) {
+ removedFonts.append(fileName);
+ QFile::remove(QFile::decodeName(fileName));
+ }
+
+ ::munmap(header, sizeof(QFontEngineQPF::Header));
+ }
+ } else {
+#if defined(DEBUG_FONTENGINE)
+ qDebug() << "Unsufficient header data in QSF file " << fileName;
+#endif
}
QT_CLOSE(fd);
}
@@ -363,6 +379,7 @@ QFontEngineQPF::QFontEngineQPF(const QFontDef &def, int fileDescriptor, QFontEng
#if defined(DEBUG_FONTENGINE)
qErrnoWarning(errno, "QFontEngineQPF: write() failed for %s", encodedName.constData());
#endif
+ QFile::remove(fileName);
return;
}
} else {
diff --git a/src/gui/text/qplatformfontdatabase_qpa.cpp b/src/gui/text/qplatformfontdatabase_qpa.cpp
index 47a9fe5ab1..6bd8284fa0 100644
--- a/src/gui/text/qplatformfontdatabase_qpa.cpp
+++ b/src/gui/text/qplatformfontdatabase_qpa.cpp
@@ -276,10 +276,9 @@ void QPlatformFontDatabase::populateFontDatabase()
a certain character.
*/
QFontEngineMulti *QPlatformFontDatabase::fontEngineMulti(QFontEngine *fontEngine,
- QUnicodeTables::Script script,
- const QStringList &fallbacks)
+ QUnicodeTables::Script script)
{
- return new QFontEngineMultiQPA(fontEngine, script, fallbacks);
+ return new QFontEngineMultiQPA(fontEngine, script);
}
/*!
diff --git a/src/gui/text/qplatformfontdatabase_qpa.h b/src/gui/text/qplatformfontdatabase_qpa.h
index 5a5a8f321f..3810b75dbf 100644
--- a/src/gui/text/qplatformfontdatabase_qpa.h
+++ b/src/gui/text/qplatformfontdatabase_qpa.h
@@ -89,7 +89,7 @@ class Q_GUI_EXPORT QPlatformFontDatabase
public:
virtual ~QPlatformFontDatabase();
virtual void populateFontDatabase();
- virtual QFontEngineMulti *fontEngineMulti(QFontEngine *fontEngine, QUnicodeTables::Script script, const QStringList &fallbacks);
+ virtual QFontEngineMulti *fontEngineMulti(QFontEngine *fontEngine, QUnicodeTables::Script script);
virtual QFontEngine *fontEngine(const QFontDef &fontDef, QUnicodeTables::Script script, void *handle);
virtual QStringList fallbacksForFamily(const QString family, const QFont::Style &style, const QFont::StyleHint &styleHint, const QUnicodeTables::Script &script) const;
virtual QStringList addApplicationFont(const QByteArray &fontData, const QString &fileName);
diff --git a/src/network/access/qhttpnetworkconnection.cpp b/src/network/access/qhttpnetworkconnection.cpp
index 6aa3a5a5f4..95b81c437d 100644
--- a/src/network/access/qhttpnetworkconnection.cpp
+++ b/src/network/access/qhttpnetworkconnection.cpp
@@ -123,8 +123,8 @@ void QHttpNetworkConnectionPrivate::init()
//push session down to channels
channels[i].networkSession = networkSession;
#endif
- channels[i].init();
}
+
delayedConnectionTimer.setSingleShot(true);
QObject::connect(&delayedConnectionTimer, SIGNAL(timeout()), q, SLOT(_q_connectDelayedChannel()));
}
@@ -135,12 +135,14 @@ void QHttpNetworkConnectionPrivate::pauseConnection()
// Disable all socket notifiers
for (int i = 0; i < channelCount; i++) {
+ if (channels[i].socket) {
#ifndef QT_NO_SSL
- if (encrypt)
- QSslSocketPrivate::pauseSocketNotifiers(static_cast<QSslSocket*>(channels[i].socket));
- else
+ if (encrypt)
+ QSslSocketPrivate::pauseSocketNotifiers(static_cast<QSslSocket*>(channels[i].socket));
+ else
#endif
- QAbstractSocketPrivate::pauseSocketNotifiers(channels[i].socket);
+ QAbstractSocketPrivate::pauseSocketNotifiers(channels[i].socket);
+ }
}
}
@@ -149,16 +151,18 @@ void QHttpNetworkConnectionPrivate::resumeConnection()
state = RunningState;
// Enable all socket notifiers
for (int i = 0; i < channelCount; i++) {
+ if (channels[i].socket) {
#ifndef QT_NO_SSL
- if (encrypt)
- QSslSocketPrivate::resumeSocketNotifiers(static_cast<QSslSocket*>(channels[i].socket));
- else
+ if (encrypt)
+ QSslSocketPrivate::resumeSocketNotifiers(static_cast<QSslSocket*>(channels[i].socket));
+ else
#endif
- QAbstractSocketPrivate::resumeSocketNotifiers(channels[i].socket);
+ QAbstractSocketPrivate::resumeSocketNotifiers(channels[i].socket);
- // Resume pending upload if needed
- if (channels[i].state == QHttpNetworkConnectionChannel::WritingState)
- QMetaObject::invokeMethod(&channels[i], "_q_uploadDataReadyRead", Qt::QueuedConnection);
+ // Resume pending upload if needed
+ if (channels[i].state == QHttpNetworkConnectionChannel::WritingState)
+ QMetaObject::invokeMethod(&channels[i], "_q_uploadDataReadyRead", Qt::QueuedConnection);
+ }
}
// queue _q_startNextRequest
@@ -346,11 +350,15 @@ void QHttpNetworkConnectionPrivate::emitReplyError(QAbstractSocket *socket,
QNetworkReply::NetworkError errorCode)
{
Q_Q(QHttpNetworkConnection);
- if (socket && reply) {
+
+ int i = 0;
+ if (socket)
+ i = indexOf(socket);
+
+ if (reply) {
// this error matters only to this reply
reply->d_func()->errorString = errorDetail(errorCode, socket);
emit reply->finishedWithError(errorCode, reply->d_func()->errorString);
- int i = indexOf(socket);
// remove the corrupt data if any
reply->d_func()->eraseData();
@@ -358,7 +366,8 @@ void QHttpNetworkConnectionPrivate::emitReplyError(QAbstractSocket *socket,
channels[i].close();
channels[i].reply = 0;
channels[i].request = QHttpNetworkRequest();
- channels[i].requeueCurrentlyPipelinedRequests();
+ if (socket)
+ channels[i].requeueCurrentlyPipelinedRequests();
// send the next request
QMetaObject::invokeMethod(q, "_q_startNextRequest", Qt::QueuedConnection);
@@ -582,9 +591,9 @@ void QHttpNetworkConnectionPrivate::requeueRequest(const HttpMessagePair &pair)
bool QHttpNetworkConnectionPrivate::dequeueRequest(QAbstractSocket *socket)
{
- Q_ASSERT(socket);
-
- int i = indexOf(socket);
+ int i = 0;
+ if (socket)
+ i = indexOf(socket);
if (!highPriorityQueue.isEmpty()) {
// remove from queue before sendRequest! else we might pipeline the same request again
@@ -740,15 +749,15 @@ bool QHttpNetworkConnectionPrivate::fillPipeline(QList<HttpMessagePair> &queue,
}
-QString QHttpNetworkConnectionPrivate::errorDetail(QNetworkReply::NetworkError errorCode, QAbstractSocket* socket,
- const QString &extraDetail)
+QString QHttpNetworkConnectionPrivate::errorDetail(QNetworkReply::NetworkError errorCode, QAbstractSocket *socket, const QString &extraDetail)
{
- Q_ASSERT(socket);
-
QString errorString;
switch (errorCode) {
case QNetworkReply::HostNotFoundError:
- errorString = QCoreApplication::translate("QHttp", "Host %1 not found").arg(socket->peerName());
+ if (socket)
+ errorString = QCoreApplication::translate("QHttp", "Host %1 not found").arg(socket->peerName());
+ else
+ errorString = QCoreApplication::translate("QHttp", "Host %1 not found").arg(hostName);
break;
case QNetworkReply::ConnectionRefusedError:
errorString = QCoreApplication::translate("QHttp", "Connection refused");
@@ -891,9 +900,11 @@ void QHttpNetworkConnectionPrivate::_q_startNextRequest()
return;
// try to get a free AND connected socket
for (int i = 0; i < channelCount; ++i) {
- if (!channels[i].reply && !channels[i].isSocketBusy() && channels[i].socket->state() == QAbstractSocket::ConnectedState) {
- if (dequeueRequest(channels[i].socket))
- channels[i].sendRequest();
+ if (channels[i].socket) {
+ if (!channels[i].reply && !channels[i].isSocketBusy() && channels[i].socket->state() == QAbstractSocket::ConnectedState) {
+ if (dequeueRequest(channels[i].socket))
+ channels[i].sendRequest();
+ }
}
}
@@ -908,7 +919,7 @@ void QHttpNetworkConnectionPrivate::_q_startNextRequest()
if (highPriorityQueue.isEmpty() && lowPriorityQueue.isEmpty())
return;
for (int i = 0; i < channelCount; i++)
- if (channels[i].socket->state() == QAbstractSocket::ConnectedState)
+ if (channels[i].socket && channels[i].socket->state() == QAbstractSocket::ConnectedState)
fillPipeline(channels[i].socket);
// If there is not already any connected channels we need to connect a new one.
@@ -916,11 +927,19 @@ void QHttpNetworkConnectionPrivate::_q_startNextRequest()
// connected or not. This is to reuse connected channels before we connect new once.
int queuedRequest = highPriorityQueue.count() + lowPriorityQueue.count();
for (int i = 0; i < channelCount; ++i) {
- if ((channels[i].socket->state() == QAbstractSocket::ConnectingState) || (channels[i].socket->state() == QAbstractSocket::HostLookupState))
- queuedRequest--;
- if ( queuedRequest <=0 )
- break;
- if (!channels[i].reply && !channels[i].isSocketBusy() && (channels[i].socket->state() == QAbstractSocket::UnconnectedState)) {
+ bool connectChannel = false;
+ if (channels[i].socket) {
+ if ((channels[i].socket->state() == QAbstractSocket::ConnectingState) || (channels[i].socket->state() == QAbstractSocket::HostLookupState))
+ queuedRequest--;
+ if ( queuedRequest <=0 )
+ break;
+ if (!channels[i].reply && !channels[i].isSocketBusy() && (channels[i].socket->state() == QAbstractSocket::UnconnectedState))
+ connectChannel = true;
+ } else { // not previously used channel
+ connectChannel = true;
+ }
+
+ if (connectChannel) {
if (networkLayerState == IPv4)
channels[i].networkLayerPreference = QAbstractSocket::IPv4Protocol;
else if (networkLayerState == IPv6)
@@ -928,6 +947,9 @@ void QHttpNetworkConnectionPrivate::_q_startNextRequest()
channels[i].ensureConnection();
queuedRequest--;
}
+
+ if ( queuedRequest <=0 )
+ break;
}
}
@@ -958,8 +980,8 @@ void QHttpNetworkConnectionPrivate::startHostInfoLookup()
#ifndef QT_NO_NETWORKPROXY
if (networkProxy.capabilities() & QNetworkProxy::HostNameLookupCapability) {
lookupHost = networkProxy.hostName();
- } else if (channels[0].socket->proxy().capabilities() & QNetworkProxy::HostNameLookupCapability) {
- lookupHost = channels[0].socket->proxy().hostName();
+ } else if (channels[0].proxy.capabilities() & QNetworkProxy::HostNameLookupCapability) {
+ lookupHost = channels[0].proxy.hostName();
}
#endif
QHostAddress temp;
@@ -1169,13 +1191,13 @@ void QHttpNetworkConnection::setTransparentProxy(const QNetworkProxy &networkPro
{
Q_D(QHttpNetworkConnection);
for (int i = 0; i < d->channelCount; ++i)
- d->channels[i].socket->setProxy(networkProxy);
+ d->channels[i].setProxy(networkProxy);
}
QNetworkProxy QHttpNetworkConnection::transparentProxy() const
{
Q_D(const QHttpNetworkConnection);
- return d->channels[0].socket->proxy();
+ return d->channels[0].proxy;
}
#endif
@@ -1190,7 +1212,7 @@ void QHttpNetworkConnection::setSslConfiguration(const QSslConfiguration &config
// set the config on all channels
for (int i = 0; i < d->channelCount; ++i)
- static_cast<QSslSocket *>(d->channels[i].socket)->setSslConfiguration(config);
+ d->channels[i].setSslConfiguration(config);
}
void QHttpNetworkConnection::ignoreSslErrors(int channel)
@@ -1201,13 +1223,11 @@ void QHttpNetworkConnection::ignoreSslErrors(int channel)
if (channel == -1) { // ignore for all channels
for (int i = 0; i < d->channelCount; ++i) {
- static_cast<QSslSocket *>(d->channels[i].socket)->ignoreSslErrors();
- d->channels[i].ignoreAllSslErrors = true;
+ d->channels[i].ignoreSslErrors();
}
} else {
- static_cast<QSslSocket *>(d->channels[channel].socket)->ignoreSslErrors();
- d->channels[channel].ignoreAllSslErrors = true;
+ d->channels[channel].ignoreSslErrors();
}
}
@@ -1219,13 +1239,11 @@ void QHttpNetworkConnection::ignoreSslErrors(const QList<QSslError> &errors, int
if (channel == -1) { // ignore for all channels
for (int i = 0; i < d->channelCount; ++i) {
- static_cast<QSslSocket *>(d->channels[i].socket)->ignoreSslErrors(errors);
- d->channels[i].ignoreSslErrorsList = errors;
+ d->channels[i].ignoreSslErrors(errors);
}
} else {
- static_cast<QSslSocket *>(d->channels[channel].socket)->ignoreSslErrors(errors);
- d->channels[channel].ignoreSslErrorsList = errors;
+ d->channels[channel].ignoreSslErrors(errors);
}
}
diff --git a/src/network/access/qhttpnetworkconnectionchannel.cpp b/src/network/access/qhttpnetworkconnectionchannel.cpp
index 3991bffa47..d4931bd207 100644
--- a/src/network/access/qhttpnetworkconnectionchannel.cpp
+++ b/src/network/access/qhttpnetworkconnectionchannel.cpp
@@ -65,6 +65,7 @@ QT_BEGIN_NAMESPACE
QHttpNetworkConnectionChannel::QHttpNetworkConnectionChannel()
: socket(0)
, ssl(false)
+ , isInitialized(false)
, state(IdleState)
, reply(0)
, written(0)
@@ -152,19 +153,38 @@ void QHttpNetworkConnectionChannel::init()
QObject::connect(sslSocket, SIGNAL(encryptedBytesWritten(qint64)),
this, SLOT(_q_encryptedBytesWritten(qint64)),
Qt::DirectConnection);
+
+ if (ignoreAllSslErrors)
+ sslSocket->ignoreSslErrors();
+
+ if (!ignoreSslErrorsList.isEmpty())
+ sslSocket->ignoreSslErrors(ignoreSslErrorsList);
+
+ if (!sslConfiguration.isNull())
+ sslSocket->setSslConfiguration(sslConfiguration);
}
+
#endif
+
+#ifndef QT_NO_NETWORKPROXY
+ if (proxy.type() != QNetworkProxy::NoProxy)
+ socket->setProxy(proxy);
+#endif
+ isInitialized = true;
}
void QHttpNetworkConnectionChannel::close()
{
- if (socket->state() == QAbstractSocket::UnconnectedState)
+ if (!socket)
+ state = QHttpNetworkConnectionChannel::IdleState;
+ else if (socket->state() == QAbstractSocket::UnconnectedState)
state = QHttpNetworkConnectionChannel::IdleState;
else
state = QHttpNetworkConnectionChannel::ClosingState;
- socket->close();
+ if (socket)
+ socket->close();
}
@@ -337,9 +357,9 @@ void QHttpNetworkConnectionChannel::_q_receiveReply()
Q_ASSERT(socket);
if (!reply) {
- // heh, how should that happen!
- qWarning() << "QHttpNetworkConnectionChannel::_q_receiveReply() called without QHttpNetworkReply,"
- << socket->bytesAvailable() << "bytes on socket.";
+ if (socket->bytesAvailable() > 0)
+ qWarning() << "QHttpNetworkConnectionChannel::_q_receiveReply() called without QHttpNetworkReply,"
+ << socket->bytesAvailable() << "bytes on socket.";
close();
return;
}
@@ -527,6 +547,9 @@ void QHttpNetworkConnectionChannel::handleUnexpectedEOF()
bool QHttpNetworkConnectionChannel::ensureConnection()
{
+ if (!isInitialized)
+ init();
+
QAbstractSocket::SocketState socketState = socket->state();
// resend this request after we receive the disconnected signal
@@ -835,6 +858,46 @@ bool QHttpNetworkConnectionChannel::resetUploadData()
}
}
+#ifndef QT_NO_NETWORKPROXY
+
+void QHttpNetworkConnectionChannel::setProxy(const QNetworkProxy &networkProxy)
+{
+ if (socket)
+ socket->setProxy(networkProxy);
+
+ proxy = networkProxy;
+}
+
+#endif
+
+#ifndef QT_NO_SSL
+
+void QHttpNetworkConnectionChannel::ignoreSslErrors()
+{
+ if (socket)
+ static_cast<QSslSocket *>(socket)->ignoreSslErrors();
+
+ ignoreAllSslErrors = true;
+}
+
+
+void QHttpNetworkConnectionChannel::ignoreSslErrors(const QList<QSslError> &errors)
+{
+ if (socket)
+ static_cast<QSslSocket *>(socket)->ignoreSslErrors(errors);
+
+ ignoreSslErrorsList = errors;
+}
+
+void QHttpNetworkConnectionChannel::setSslConfiguration(const QSslConfiguration &config)
+{
+ if (socket)
+ static_cast<QSslSocket *>(socket)->setSslConfiguration(config);
+
+ sslConfiguration = config;
+}
+
+#endif
void QHttpNetworkConnectionChannel::pipelineInto(HttpMessagePair &pair)
{
diff --git a/src/network/access/qhttpnetworkconnectionchannel_p.h b/src/network/access/qhttpnetworkconnectionchannel_p.h
index 7da9b514d6..2648cba2a5 100644
--- a/src/network/access/qhttpnetworkconnectionchannel_p.h
+++ b/src/network/access/qhttpnetworkconnectionchannel_p.h
@@ -72,6 +72,7 @@
#ifndef QT_NO_SSL
# include <QtNetwork/qsslsocket.h>
# include <QtNetwork/qsslerror.h>
+# include <QtNetwork/qsslconfiguration.h>
#else
# include <QtNetwork/qtcpsocket.h>
#endif
@@ -100,6 +101,7 @@ public:
};
QAbstractSocket *socket;
bool ssl;
+ bool isInitialized;
ChannelState state;
QHttpNetworkRequest request; // current request
QHttpNetworkReply *reply; // current reply for this request
@@ -118,6 +120,10 @@ public:
#ifndef QT_NO_SSL
bool ignoreAllSslErrors;
QList<QSslError> ignoreSslErrorsList;
+ QSslConfiguration sslConfiguration;
+ void ignoreSslErrors();
+ void ignoreSslErrors(const QList<QSslError> &errors);
+ void setSslConfiguration(const QSslConfiguration &config);
#endif
#ifndef QT_NO_BEARERMANAGEMENT
QSharedPointer<QNetworkSession> networkSession;
@@ -144,6 +150,11 @@ public:
void setConnection(QHttpNetworkConnection *c);
QPointer<QHttpNetworkConnection> connection;
+#ifndef QT_NO_NETWORKPROXY
+ QNetworkProxy proxy;
+ void setProxy(const QNetworkProxy &networkProxy);
+#endif
+
void init();
void close();
diff --git a/src/network/kernel/qnetworkinterface_unix.cpp b/src/network/kernel/qnetworkinterface_unix.cpp
index d5520e4917..fbff6dc4d3 100644
--- a/src/network/kernel/qnetworkinterface_unix.cpp
+++ b/src/network/kernel/qnetworkinterface_unix.cpp
@@ -57,6 +57,10 @@
#endif
#include <net/if.h>
+#if defined(QT_LINUXBASE)
+# define QT_NO_GETIFADDRS
+#endif
+
#ifndef QT_NO_GETIFADDRS
# include <ifaddrs.h>
#endif
@@ -283,7 +287,7 @@ QT_BEGIN_INCLUDE_NAMESPACE
QT_END_INCLUDE_NAMESPACE
# endif
-# if defined(Q_OS_LINUX) && __GLIBC__ - 0 >= 2 && __GLIBC_MINOR__ - 0 >= 1
+# if defined(Q_OS_LINUX) && __GLIBC__ - 0 >= 2 && __GLIBC_MINOR__ - 0 >= 1 && !defined(QT_LINUXBASE)
# include <netpacket/packet.h>
static QList<QNetworkInterfacePrivate *> createInterfaces(ifaddrs *rawList)
diff --git a/src/network/kernel/qnetworkproxy.cpp b/src/network/kernel/qnetworkproxy.cpp
index feef74e737..8d30e81c3b 100644
--- a/src/network/kernel/qnetworkproxy.cpp
+++ b/src/network/kernel/qnetworkproxy.cpp
@@ -426,6 +426,10 @@ template<> void QSharedDataPointer<QNetworkProxyPrivate>::detach()
QNetworkProxy::QNetworkProxy()
: d(0)
{
+ // make sure we have QGlobalNetworkProxy singleton created, otherwise
+ // you don't have any socket engine handler created when directly setting
+ // a proxy to a socket
+ globalNetworkProxy();
}
/*!
@@ -440,6 +444,10 @@ QNetworkProxy::QNetworkProxy(ProxyType type, const QString &hostName, quint16 po
const QString &user, const QString &password)
: d(new QNetworkProxyPrivate(type, hostName, port, user, password))
{
+ // make sure we have QGlobalNetworkProxy singleton created, otherwise
+ // you don't have any socket engine handler created when directly setting
+ // a proxy to a socket
+ globalNetworkProxy();
}
/*!
diff --git a/src/network/socket/qabstractsocket.cpp b/src/network/socket/qabstractsocket.cpp
index 2f66671530..af22b20b21 100644
--- a/src/network/socket/qabstractsocket.cpp
+++ b/src/network/socket/qabstractsocket.cpp
@@ -1457,6 +1457,7 @@ bool QAbstractSocket::bind(const QHostAddress &address, quint16 port, BindMode m
return false;
}
+ if (mode != DefaultForPlatform) {
#ifdef Q_OS_UNIX
if ((mode & ShareAddress) || (mode & ReuseAddressHint))
d->socketEngine->setOption(QAbstractSocketEngine::AddressReusable, 1);
@@ -1473,6 +1474,7 @@ bool QAbstractSocket::bind(const QHostAddress &address, quint16 port, BindMode m
else
d->socketEngine->setOption(QAbstractSocketEngine::BindExclusively, 0);
#endif
+ }
bool result = d->socketEngine->bind(address, port);
d->cachedSocketDescriptor = d->socketEngine->socketDescriptor();
diff --git a/src/network/socket/socket.pri b/src/network/socket/socket.pri
index 48c38a209e..8f93f0d0c0 100644
--- a/src/network/socket/socket.pri
+++ b/src/network/socket/socket.pri
@@ -8,6 +8,7 @@ HEADERS += socket/qabstractsocketengine_p.h \
socket/qtcpsocket.h \
socket/qudpsocket.h \
socket/qtcpserver.h \
+ socket/qtcpsocket_p.h \
socket/qlocalserver.h \
socket/qlocalserver_p.h \
socket/qlocalsocket.h \
diff --git a/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp b/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp
index ebe73bff16..38a6f2f9df 100644
--- a/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp
+++ b/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp
@@ -55,6 +55,7 @@
#include <ft2build.h>
#include FT_TRUETYPE_TABLES_H
+#include FT_ERRORS_H
QT_BEGIN_NAMESPACE
@@ -362,8 +363,8 @@ QStringList QBasicFontDatabase::addTTFile(const QByteArray &fontData, const QByt
// detect symbol fonts
for (int i = 0; i < face->num_charmaps; ++i) {
FT_CharMap cm = face->charmaps[i];
- if (cm->encoding == ft_encoding_adobe_custom
- || cm->encoding == ft_encoding_symbol) {
+ if (cm->encoding == FT_ENCODING_ADOBE_CUSTOM
+ || cm->encoding == FT_ENCODING_MS_SYMBOL) {
writingSystems.setSupported(QFontDatabase::Symbol);
break;
}
diff --git a/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp b/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp
index 69ec3ba08a..a4d2778ba6 100644
--- a/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp
+++ b/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp
@@ -472,10 +472,9 @@ void QFontconfigDatabase::populateFontDatabase()
}
QFontEngineMulti *QFontconfigDatabase::fontEngineMulti(QFontEngine *fontEngine,
- QUnicodeTables::Script script,
- const QStringList &fallbacks)
+ QUnicodeTables::Script script)
{
- return new QFontEngineMultiFontConfig(fontEngine, script, fallbacks);
+ return new QFontEngineMultiFontConfig(fontEngine, script);
}
QFontEngine *QFontconfigDatabase::fontEngine(const QFontDef &f, QUnicodeTables::Script script, void *usrPtr)
@@ -515,24 +514,37 @@ QFontEngine *QFontconfigDatabase::fontEngine(const QFontDef &f, QUnicodeTables::
FcCharSet *charset;
if (match) {
QFontEngineFT::HintStyle default_hint_style;
-
- //hinting
- int hint_style = 0;
- if (FcPatternGetInteger (match, FC_HINT_STYLE, 0, &hint_style) == FcResultNoMatch)
- hint_style = QFontEngineFT::HintFull;
- switch (hint_style) {
- case FC_HINT_NONE:
- default_hint_style = QFontEngineFT::HintNone;
- break;
- case FC_HINT_SLIGHT:
- default_hint_style = QFontEngineFT::HintLight;
- break;
- case FC_HINT_MEDIUM:
- default_hint_style = QFontEngineFT::HintMedium;
- break;
- default:
- default_hint_style = QFontEngineFT::HintFull;
- break;
+ if (f.hintingPreference != QFont::PreferDefaultHinting) {
+ switch (f.hintingPreference) {
+ case QFont::PreferNoHinting:
+ default_hint_style = QFontEngineFT::HintNone;
+ break;
+ case QFont::PreferVerticalHinting:
+ default_hint_style = QFontEngineFT::HintLight;
+ break;
+ case QFont::PreferFullHinting:
+ default:
+ default_hint_style = QFontEngineFT::HintFull;
+ break;
+ }
+ } else {
+ int hint_style = 0;
+ if (FcPatternGetInteger (match, FC_HINT_STYLE, 0, &hint_style) == FcResultNoMatch)
+ hint_style = QFontEngineFT::HintFull;
+ switch (hint_style) {
+ case FC_HINT_NONE:
+ default_hint_style = QFontEngineFT::HintNone;
+ break;
+ case FC_HINT_SLIGHT:
+ default_hint_style = QFontEngineFT::HintLight;
+ break;
+ case FC_HINT_MEDIUM:
+ default_hint_style = QFontEngineFT::HintMedium;
+ break;
+ default:
+ default_hint_style = QFontEngineFT::HintFull;
+ break;
+ }
}
engine->setDefaultHintStyle(default_hint_style);
diff --git a/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase_p.h b/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase_p.h
index d4742167e9..df62ddeb0b 100644
--- a/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase_p.h
+++ b/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase_p.h
@@ -51,7 +51,7 @@ class QFontconfigDatabase : public QBasicFontDatabase
{
public:
void populateFontDatabase();
- QFontEngineMulti *fontEngineMulti(QFontEngine *fontEngine, QUnicodeTables::Script script, const QStringList &fallbacks);
+ QFontEngineMulti *fontEngineMulti(QFontEngine *fontEngine, QUnicodeTables::Script script);
QFontEngine *fontEngine(const QFontDef &fontDef, QUnicodeTables::Script script, void *handle);
QStringList fallbacksForFamily(const QString family, const QFont::Style &style, const QFont::StyleHint &styleHint, const QUnicodeTables::Script &script) const;
QStringList addApplicationFont(const QByteArray &fontData, const QString &fileName);
diff --git a/src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig.cpp b/src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig.cpp
index 2016500767..31828ef01f 100644
--- a/src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig.cpp
+++ b/src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig.cpp
@@ -46,9 +46,8 @@
QT_BEGIN_NAMESPACE
-QFontEngineMultiFontConfig::QFontEngineMultiFontConfig(QFontEngine *fe, int script,
- const QStringList &fallbacks)
- : QFontEngineMultiQPA(fe, script, fallbacks)
+QFontEngineMultiFontConfig::QFontEngineMultiFontConfig(QFontEngine *fe, int script)
+ : QFontEngineMultiQPA(fe, script)
{
}
diff --git a/src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig_p.h b/src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig_p.h
index 260a9b5c70..046d63c190 100644
--- a/src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig_p.h
+++ b/src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig_p.h
@@ -51,7 +51,7 @@ class QFontEngineMultiFontConfig : public QFontEngineMultiQPA
{
Q_OBJECT
public:
- explicit QFontEngineMultiFontConfig(QFontEngine *fe, int script, const QStringList &fallbacks);
+ explicit QFontEngineMultiFontConfig(QFontEngine *fe, int script);
~QFontEngineMultiFontConfig();
diff --git a/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp b/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp
index 602dd6264a..597dbde74f 100644
--- a/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp
+++ b/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp
@@ -77,6 +77,8 @@ void ResourceHelper::clear()
\ingroup qpa
*/
+const char *QGenericUnixTheme::name = "generic";
+
// Helper to return the icon theme paths from XDG.
QStringList QGenericUnixTheme::xdgIconThemePaths()
{
@@ -159,6 +161,8 @@ static inline bool readKdeSystemPalette(const QSettings &kdeSettings, QPalette *
\ingroup qpa
*/
+const char *QKdeTheme::name = "kde";
+
QKdeTheme::QKdeTheme(const QString &kdeHome, int kdeVersion) :
m_kdeHome(kdeHome), m_kdeVersion(kdeVersion),
m_toolButtonStyle(Qt::ToolButtonTextBesideIcon), m_toolBarIconSize(0)
@@ -329,6 +333,8 @@ QPlatformTheme *QKdeTheme::createKdeTheme()
\ingroup qpa
*/
+const char *QGnomeTheme::name = "gnome";
+
QVariant QGnomeTheme::themeHint(QPlatformTheme::ThemeHint hint) const
{
switch (hint) {
@@ -358,23 +364,38 @@ QVariant QGnomeTheme::themeHint(QPlatformTheme::ThemeHint hint) const
\brief Creates a UNIX theme according to the detected desktop environment.
*/
-QPlatformTheme *QGenericUnixTheme::createUnixTheme()
+QPlatformTheme *QGenericUnixTheme::createUnixTheme(const QString &name)
+{
+ if (name == QLatin1String(QGenericUnixTheme::name))
+ return new QGenericUnixTheme;
+ if (name == QLatin1String(QKdeTheme::name))
+ if (QPlatformTheme *kdeTheme = QKdeTheme::createKdeTheme())
+ return kdeTheme;
+ if (name == QLatin1String(QGnomeTheme::name))
+ return new QGnomeTheme;
+ return new QGenericUnixTheme;
+}
+
+QStringList QGenericUnixTheme::themeNames()
{
- QPlatformTheme *result = 0;
+ QStringList result;
if (QGuiApplication::desktopSettingsAware()) {
switch (QGenericUnixServices::desktopEnvironment()) {
- case QGenericUnixServices::DE_UNKNOWN:
- break;
case QGenericUnixServices::DE_KDE:
- result = QKdeTheme::createKdeTheme();
+ result.push_back(QLatin1String(QKdeTheme::name));
break;
case QGenericUnixServices::DE_GNOME:
- result = new QGnomeTheme;
+ result.push_back(QLatin1String(QGnomeTheme::name));
+ break;
+ case QGenericUnixServices::DE_UNKNOWN:
break;
}
- }
- if (!result)
- result = new QGenericUnixTheme;
+ const QByteArray session = qgetenv("DESKTOP_SESSION");
+ if (!session.isEmpty() && session != "default")
+ result.push_back(QString::fromLocal8Bit(session));
+ } // desktopSettingsAware
+ if (result.isEmpty())
+ result.push_back(QLatin1String(QGenericUnixTheme::name));
return result;
}
diff --git a/src/platformsupport/themes/genericunix/qgenericunixthemes_p.h b/src/platformsupport/themes/genericunix/qgenericunixthemes_p.h
index a9db29e8cd..cabffc0212 100644
--- a/src/platformsupport/themes/genericunix/qgenericunixthemes_p.h
+++ b/src/platformsupport/themes/genericunix/qgenericunixthemes_p.h
@@ -67,11 +67,14 @@ class QGenericUnixTheme : public QPlatformTheme
public:
QGenericUnixTheme() {}
- static QPlatformTheme *createUnixTheme();
+ static QPlatformTheme *createUnixTheme(const QString &name);
+ static QStringList themeNames();
virtual QVariant themeHint(ThemeHint hint) const;
static QStringList xdgIconThemePaths();
+
+ static const char *name;
};
class QKdeTheme : public QPlatformTheme
@@ -88,6 +91,8 @@ public:
virtual const QFont *font(Font type) const
{ return m_resources.fonts[type]; }
+ static const char *name;
+
private:
QString globalSettingsFile() const;
void refresh();
@@ -109,6 +114,8 @@ public:
QGnomeTheme() {}
virtual QVariant themeHint(ThemeHint hint) const;
+ static const char *name;
+
private:
};
diff --git a/src/platformsupport/udev/qudevhelper.cpp b/src/platformsupport/udev/qudevhelper.cpp
deleted file mode 100644
index b63ef64ed8..0000000000
--- a/src/platformsupport/udev/qudevhelper.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the plugins of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qudevhelper_p.h"
-#include <libudev.h>
-
-QT_BEGIN_NAMESPACE
-
-void q_udev_devicePath(int type, QString *path)
-{
- *path = QString();
- udev *u = udev_new();
- udev_enumerate *ue = udev_enumerate_new(u);
- udev_enumerate_add_match_subsystem(ue, "input");
- if (type & UDev_Mouse)
- udev_enumerate_add_match_property(ue, "ID_INPUT_MOUSE", "1");
- if (type & UDev_Touchpad)
- udev_enumerate_add_match_property(ue, "ID_INPUT_TOUCHPAD", "1");
- if (type & UDev_Touchscreen)
- udev_enumerate_add_match_property(ue, "ID_INPUT_TOUCHSCREEN", "1");
- udev_enumerate_scan_devices(ue);
- udev_list_entry *entry;
- udev_list_entry_foreach(entry, udev_enumerate_get_list_entry(ue)) {
- const char *syspath = udev_list_entry_get_name(entry);
- udev_device *udevice = udev_device_new_from_syspath(u, syspath);
- QString candidate = QString::fromLocal8Bit(udev_device_get_devnode(udevice));
- udev_device_unref(udevice);
- if (path->isEmpty() && candidate.startsWith(QLatin1String("/dev/input/event")))
- *path = candidate;
- }
- udev_enumerate_unref(ue);
- udev_unref(u);
-}
-
-QT_END_NAMESPACE
diff --git a/src/platformsupport/udev/udev.pri b/src/platformsupport/udev/udev.pri
index c99d4b6810..e22be2c363 100644
--- a/src/platformsupport/udev/udev.pri
+++ b/src/platformsupport/udev/udev.pri
@@ -1,6 +1,6 @@
contains(QT_CONFIG, libudev) {
- HEADERS += $$PWD/qudevhelper_p.h $$PWD/qudevicehelper_p.h
- SOURCES += $$PWD/qudevhelper.cpp $$PWD/qudevicehelper.cpp
+ HEADERS += $$PWD/qudevicehelper_p.h
+ SOURCES += $$PWD/qudevicehelper.cpp
INCLUDEPATH += $$QMAKE_INCDIR_LIBUDEV
}
diff --git a/src/plugins/bearer/generic/qgenericengine.cpp b/src/plugins/bearer/generic/qgenericengine.cpp
index 7b30b5d64c..5682d113ef 100644
--- a/src/plugins/bearer/generic/qgenericengine.cpp
+++ b/src/plugins/bearer/generic/qgenericengine.cpp
@@ -147,6 +147,9 @@ static QNetworkConfiguration::BearerType qGetInterfaceType(const QString &interf
QGenericEngine::QGenericEngine(QObject *parent)
: QBearerEngineImpl(parent)
{
+ //workaround for deadlock in __cxa_guard_acquire with webkit on macos x
+ //initialise the Q_GLOBAL_STATIC in same thread as the AtomicallyInitializedStatic
+ (void)QNetworkInterface::interfaceFromIndex(0);
}
QGenericEngine::~QGenericEngine()
diff --git a/src/plugins/generic/evdevkeyboard/qevdevkeyboardhandler.cpp b/src/plugins/generic/evdevkeyboard/qevdevkeyboardhandler.cpp
index f9237e3325..73aa6419d3 100644
--- a/src/plugins/generic/evdevkeyboard/qevdevkeyboardhandler.cpp
+++ b/src/plugins/generic/evdevkeyboard/qevdevkeyboardhandler.cpp
@@ -62,8 +62,8 @@ QT_BEGIN_NAMESPACE
// simple builtin US keymap
#include "qevdevkeyboard_defaultmap.h"
-QEvdevKeyboardHandler::QEvdevKeyboardHandler(int deviceDescriptor, const QString &device, bool disableZap, bool enableCompose, const QString &keymapFile)
- : m_fd(deviceDescriptor), m_device(device),
+QEvdevKeyboardHandler::QEvdevKeyboardHandler(int deviceDescriptor, bool disableZap, bool enableCompose, const QString &keymapFile)
+ : m_fd(deviceDescriptor),
m_modifiers(0), m_composing(0), m_dead_unicode(0xffff),
m_no_zap(disableZap), m_do_compose(enableCompose),
m_keymap(0), m_keymap_size(0), m_keycompose(0), m_keycompose_size(0)
@@ -136,7 +136,7 @@ QEvdevKeyboardHandler *QEvdevKeyboardHandler::createLinuxInputKeyboardHandler(co
::ioctl(fd, EVIOCSREP, kbdrep);
}
- return new QEvdevKeyboardHandler(fd, device, disableZap, enableCompose, keymapFile);
+ return new QEvdevKeyboardHandler(fd, disableZap, enableCompose, keymapFile);
} else {
qWarning("Cannot open keyboard input device '%s': %s", qPrintable(device), strerror(errno));
return 0;
diff --git a/src/plugins/generic/evdevkeyboard/qevdevkeyboardhandler.h b/src/plugins/generic/evdevkeyboard/qevdevkeyboardhandler.h
index 76b5c5703b..5a1253857f 100644
--- a/src/plugins/generic/evdevkeyboard/qevdevkeyboardhandler.h
+++ b/src/plugins/generic/evdevkeyboard/qevdevkeyboardhandler.h
@@ -125,7 +125,7 @@ class QEvdevKeyboardHandler : public QObject
{
Q_OBJECT
public:
- QEvdevKeyboardHandler(int deviceDescriptor, const QString &device, bool disableZap, bool enableCompose, const QString &keymapFile);
+ QEvdevKeyboardHandler(int deviceDescriptor, bool disableZap, bool enableCompose, const QString &keymapFile);
~QEvdevKeyboardHandler();
enum KeycodeAction {
@@ -174,7 +174,6 @@ private:
void switchLed(int, bool);
int m_fd;
- QString m_device;
// keymap handling
quint8 m_modifiers;
diff --git a/src/plugins/generic/evdevmouse/evdevmouse.pro b/src/plugins/generic/evdevmouse/evdevmouse.pro
index 781d901f28..f322a5bd1a 100644
--- a/src/plugins/generic/evdevmouse/evdevmouse.pro
+++ b/src/plugins/generic/evdevmouse/evdevmouse.pro
@@ -5,12 +5,14 @@ DESTDIR = $$QT.gui.plugins/generic
target.path = $$[QT_INSTALL_PLUGINS]/generic
INSTALLS += target
-HEADERS = qevdevmouse.h
+HEADERS = qevdevmousehandler.h \
+ qevdevmousemanager.h
QT += core-private platformsupport-private
SOURCES = main.cpp \
- qevdevmouse.cpp
+ qevdevmousehandler.cpp \
+ qevdevmousemanager.cpp
OTHER_FILES += \
evdevmouse.json
diff --git a/src/plugins/generic/evdevmouse/main.cpp b/src/plugins/generic/evdevmouse/main.cpp
index 47a4ddf56b..b49c183d7b 100644
--- a/src/plugins/generic/evdevmouse/main.cpp
+++ b/src/plugins/generic/evdevmouse/main.cpp
@@ -40,7 +40,7 @@
****************************************************************************/
#include <qgenericplugin_qpa.h>
-#include "qevdevmouse.h"
+#include "qevdevmousemanager.h"
QT_BEGIN_NAMESPACE
@@ -71,7 +71,7 @@ QObject* QEvdevMousePlugin::create(const QString &key,
const QString &specification)
{
if (!key.compare(QLatin1String("EvdevMouse"), Qt::CaseInsensitive))
- return new QEvdevMouseHandler(key, specification);
+ return new QEvdevMouseManager(key, specification);
return 0;
}
diff --git a/src/plugins/generic/evdevmouse/qevdevmouse.cpp b/src/plugins/generic/evdevmouse/qevdevmousehandler.cpp
index be779c68a5..1821c2b06b 100644
--- a/src/plugins/generic/evdevmouse/qevdevmouse.cpp
+++ b/src/plugins/generic/evdevmouse/qevdevmousehandler.cpp
@@ -39,7 +39,7 @@
**
****************************************************************************/
-#include "qevdevmouse.h"
+#include "qevdevmousehandler.h"
#include <QSocketNotifier>
#include <QStringList>
@@ -48,7 +48,7 @@
#include <qplatformdefs.h>
#include <private/qcore_unix_p.h> // overrides QT_OPEN
-#include <QtPlatformSupport/private/qudevhelper_p.h>
+#include <QtPlatformSupport/private/qudevicehelper_p.h>
#include <errno.h>
@@ -57,61 +57,82 @@
#include <qdebug.h>
+//#define QT_QPA_MOUSE_HANDLER_DEBUG
+
QT_BEGIN_NAMESPACE
-QEvdevMouseHandler::QEvdevMouseHandler(const QString &key,
- const QString &specification)
- : m_notify(0), m_x(0), m_y(0), m_prevx(0), m_prevy(0),
- m_xoffset(0), m_yoffset(0), m_buttons(0)
+QEvdevMouseHandler *QEvdevMouseHandler::createLinuxInputMouseHandler(const QString &key, const QString &specification)
{
- Q_UNUSED(key);
- setObjectName(QLatin1String("Evdev Mouse Handler"));
-
- QString dev;
- q_udev_devicePath(UDev_Mouse | UDev_Touchpad, &dev);
- if (dev.isEmpty())
- dev = QLatin1String("/dev/input/event0");
-
- m_compression = true;
- m_smooth = false;
+#ifdef QT_QPA_MOUSE_HANDLER_DEBUG
+ qWarning() << "Try to create mouse handler with" << key << specification;
+#else
+ Q_UNUSED(key)
+#endif
+
+ QString device = "/dev/input/event0";
+ bool compression = true;
+ bool smooth = false;
int jitterLimit = 0;
+ int xoffset = 0;
+ int yoffset = 0;
QStringList args = specification.split(QLatin1Char(':'));
foreach (const QString &arg, args) {
if (arg == "nocompress")
- m_compression = false;
+ compression = false;
else if (arg.startsWith("dejitter="))
jitterLimit = arg.mid(9).toInt();
else if (arg.startsWith("xoffset="))
- m_xoffset = arg.mid(8).toInt();
+ xoffset = arg.mid(8).toInt();
else if (arg.startsWith("yoffset="))
- m_yoffset = arg.mid(8).toInt();
+ yoffset = arg.mid(8).toInt();
else if (arg.startsWith(QLatin1String("/dev/")))
- dev = arg;
+ device = arg;
}
- m_jitterLimitSquared = jitterLimit*jitterLimit;
- qDebug("evdevmouse: Using device %s", qPrintable(dev));
- m_fd = QT_OPEN(dev.toLocal8Bit().constData(), O_RDONLY | O_NDELAY, 0);
- if (m_fd >= 0) {
- m_notify = new QSocketNotifier(m_fd, QSocketNotifier::Read, this);
- connect(m_notify, SIGNAL(activated(int)), this, SLOT(readMouseData()));
+#ifdef QT_QPA_MOUSE_HANDLER_DEBUG
+ qDebug("evdevmouse: Using device %s", qPrintable(device));
+#endif
+
+ int fd;
+ fd = qt_safe_open(device.toLocal8Bit().constData(), O_RDONLY | O_NDELAY, 0);
+ if (fd >= 0) {
+ return new QEvdevMouseHandler(fd, compression, smooth, jitterLimit, xoffset, yoffset);
} else {
- qWarning("Cannot open mouse input device '%s': %s", qPrintable(dev), strerror(errno));
- return;
+ qWarning("Cannot open mouse input device '%s': %s", qPrintable(device), strerror(errno));
+ return 0;
}
}
+QEvdevMouseHandler::QEvdevMouseHandler(int deviceDescriptor, bool compression, bool smooth, int jitterLimit, int xoffset, int yoffset)
+ : m_notify(0), m_x(0), m_y(0), m_prevx(0), m_prevy(0),
+ m_fd(deviceDescriptor), m_compression(compression), m_smooth(smooth),
+ m_xoffset(xoffset), m_yoffset(yoffset), m_buttons(0)
+{
+ setObjectName(QLatin1String("Evdev Mouse Handler"));
+
+ m_jitterLimitSquared = jitterLimit * jitterLimit;
+
+ // socket notifier for events on the mouse device
+ QSocketNotifier *notifier;
+ notifier = new QSocketNotifier(m_fd, QSocketNotifier::Read, this);
+ connect(notifier, SIGNAL(activated(int)), this, SLOT(readMouseData()));
+}
+
QEvdevMouseHandler::~QEvdevMouseHandler()
{
if (m_fd >= 0)
- QT_CLOSE(m_fd);
+ qt_safe_close(m_fd);
}
void QEvdevMouseHandler::sendMouseEvent()
{
QPoint pos(m_x + m_xoffset, m_y + m_yoffset);
- //qDebug("mouse event %d %d %d", pos.x(), pos.y(), int(m_buttons));
+
+#ifdef QT_QPA_MOUSE_HANDLER_DEBUG
+ qDebug("mouse event %d %d %d", pos.x(), pos.y(), int(m_buttons));
+#endif
+
QWindowSystemInterface::handleMouseEvent(0, pos, pos, m_buttons);
m_prevx = m_x;
m_prevy = m_y;
diff --git a/src/plugins/generic/evdevmouse/qevdevmouse.h b/src/plugins/generic/evdevmouse/qevdevmousehandler.h
index 9542d133f2..7a74eaa701 100644
--- a/src/plugins/generic/evdevmouse/qevdevmouse.h
+++ b/src/plugins/generic/evdevmouse/qevdevmousehandler.h
@@ -39,8 +39,8 @@
**
****************************************************************************/
-#ifndef QEVDEVMOUSE_H
-#define QEVDEVMOUSE_H
+#ifndef QEVDEVMOUSEHANDLER_H
+#define QEVDEVMOUSEHANDLER_H
#include <QObject>
#include <QString>
@@ -55,25 +55,26 @@ class QEvdevMouseHandler : public QObject
{
Q_OBJECT
public:
- QEvdevMouseHandler(const QString &key, const QString &specification);
+ static QEvdevMouseHandler *createLinuxInputMouseHandler(const QString &key, const QString &specification);
~QEvdevMouseHandler();
private slots:
void readMouseData();
private:
+ QEvdevMouseHandler(int deviceDescriptor, bool compression, bool smooth, int jitterLimit, int xoffset, int yoffset);
+
void sendMouseEvent();
- void pathFromUdev(QString *path);
QSocketNotifier *m_notify;
- int m_fd;
int m_x, m_y;
int m_prevx, m_prevy;
- int m_xoffset, m_yoffset;
- int m_smoothx, m_smoothy;
- Qt::MouseButtons m_buttons;
+ int m_fd;
bool m_compression;
bool m_smooth;
+ int m_xoffset, m_yoffset;
+ Qt::MouseButtons m_buttons;
+ int m_smoothx, m_smoothy;
int m_jitterLimitSquared;
};
@@ -81,4 +82,4 @@ QT_END_NAMESPACE
QT_END_HEADER
-#endif // QEVDEVMOUSE_H
+#endif // QEVDEVMOUSEHANDLER_H
diff --git a/src/plugins/generic/evdevmouse/qevdevmousemanager.cpp b/src/plugins/generic/evdevmouse/qevdevmousemanager.cpp
new file mode 100644
index 0000000000..f8e77abe55
--- /dev/null
+++ b/src/plugins/generic/evdevmouse/qevdevmousemanager.cpp
@@ -0,0 +1,138 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
+**
+** This file is part of the QtGui module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this
+** file. Please review the following information to ensure the GNU Lesser
+** General Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qevdevmousemanager.h"
+
+#include <QStringList>
+#include <QCoreApplication>
+
+//#define QT_QPA_MOUSEMANAGER_DEBUG
+
+#ifdef QT_QPA_MOUSEMANAGER_DEBUG
+#include <QDebug>
+#endif
+
+QT_BEGIN_NAMESPACE
+
+QEvdevMouseManager::QEvdevMouseManager(const QString &key, const QString &specification)
+{
+ Q_UNUSED(key);
+
+ bool useUDev = true;
+ QStringList args = specification.split(QLatin1Char(':'));
+ QStringList devices;
+
+ foreach (const QString &arg, args) {
+ if (arg.startsWith("udev") && arg.contains("no")) {
+ useUDev = false;
+ } else if (arg.startsWith("/dev/")) {
+ // if device is specified try to use it
+ devices.append(arg);
+ args.removeAll(arg);
+ }
+ }
+
+ // build new specification without /dev/ elements
+ m_spec = args.join(":");
+
+ // add all mice for devices specified in the argument list
+ foreach (const QString &device, devices)
+ addMouse(device);
+
+ if (useUDev) {
+#ifdef QT_QPA_MOUSEMANAGER_DEBUG
+ qWarning() << "Use UDev for device discovery";
+#endif
+
+ m_udeviceHelper = QUDeviceHelper::createUDeviceHelper(QUDeviceHelper::UDev_Mouse | QUDeviceHelper::UDev_Touchpad, this);
+ if (m_udeviceHelper) {
+ // scan and add already connected keyboards
+ QStringList devices = m_udeviceHelper->scanConnectedDevices();
+ foreach (QString device, devices) {
+ addMouse(device);
+ }
+
+ connect(m_udeviceHelper, SIGNAL(deviceDetected(QString,QUDeviceTypes)), this, SLOT(addMouse(QString)));
+ connect(m_udeviceHelper, SIGNAL(deviceRemoved(QString,QUDeviceTypes)), this, SLOT(removeMouse(QString)));
+ }
+ }
+}
+
+QEvdevMouseManager::~QEvdevMouseManager()
+{
+ qDeleteAll(m_mice);
+ m_mice.clear();
+}
+
+void QEvdevMouseManager::addMouse(const QString &deviceNode)
+{
+#ifdef QT_QPA_MOUSEMANAGER_DEBUG
+ qWarning() << "Adding mouse at" << deviceNode;
+#endif
+
+ QString specification = m_spec;
+
+ if (!deviceNode.isEmpty()) {
+ specification.append(":");
+ specification.append(deviceNode);
+ }
+
+ QEvdevMouseHandler *handler;
+ handler = QEvdevMouseHandler::createLinuxInputMouseHandler("EvdevMouse", specification);
+ if (handler)
+ m_mice.insert(deviceNode, handler);
+ else
+ qWarning("Failed to open mouse");
+}
+
+void QEvdevMouseManager::removeMouse(const QString &deviceNode)
+{
+ if (m_mice.contains(deviceNode)) {
+#ifdef QT_QPA_MOUSEMANAGER_DEBUG
+ qWarning() << "Removing mouse at" << deviceNode;
+#endif
+ QEvdevMouseHandler *handler = m_mice.value(deviceNode);
+ m_mice.remove(deviceNode);
+ delete handler;
+ }
+}
+
+QT_END_NAMESPACE
diff --git a/src/plugins/platforms/uikit/quikitintegration.h b/src/plugins/generic/evdevmouse/qevdevmousemanager.h
index 21ef9efb29..a42257b6a2 100644
--- a/src/plugins/platforms/uikit/quikitintegration.h
+++ b/src/plugins/generic/evdevmouse/qevdevmousemanager.h
@@ -3,7 +3,7 @@
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/
**
-** This file is part of the plugins of the Qt Toolkit.
+** This file is part of the QtGui module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** GNU Lesser General Public License Usage
@@ -39,34 +39,40 @@
**
****************************************************************************/
-#ifndef QPLATFORMINTEGRATION_UIKIT_H
-#define QPLATFORMINTEGRATION_UIKIT_H
+#ifndef QEVDEVMOUSEMANAGER_H
+#define QEVDEVMOUSEMANAGER_H
-#include <QtGui/QPlatformIntegration>
+#include "qevdevmousehandler.h"
-QT_BEGIN_NAMESPACE
+#include <QtPlatformSupport/private/qudevicehelper_p.h>
-class QUIKitIntegration : public QPlatformIntegration
-{
-public:
- QUIKitIntegration();
- ~QUIKitIntegration();
+#include <QObject>
+#include <QHash>
+#include <QSocketNotifier>
- QPlatformPixmap *createPlatformPixmap(QPlatformPixmap::PixelType type) const;
- QPlatformWindow *createPlatformWindow(QWidget *widget, WId winId = 0) const;
- QWindowSurface *createWindowSurface(QWidget *widget, WId winId) const;
+QT_BEGIN_HEADER
- QList<QPlatformScreen *> screens() const;
+QT_BEGIN_NAMESPACE
- QPlatformFontDatabase *fontDatabase() const;
+class QEvdevMouseManager : public QObject
+{
+ Q_OBJECT
+public:
+ explicit QEvdevMouseManager(const QString &key, const QString &specification);
+ ~QEvdevMouseManager();
- QPlatformEventLoopIntegration *createEventLoopIntegration() const;
+private slots:
+ void addMouse(const QString &deviceNode = QString());
+ void removeMouse(const QString &deviceNode);
private:
- QList<QPlatformScreen *> mScreens;
+ QString m_spec;
+ QHash<QString,QEvdevMouseHandler*> m_mice;
+ QUDeviceHelper *m_udeviceHelper;
};
-QT_END_NAMESPACE
+QT_END_HEADER
-#endif
+QT_END_NAMESPACE
+#endif // QEVDEVMOUSEMANAGER_H
diff --git a/src/plugins/generic/evdevtouch/qevdevtouch.cpp b/src/plugins/generic/evdevtouch/qevdevtouch.cpp
index 9e6347457d..b702807cab 100644
--- a/src/plugins/generic/evdevtouch/qevdevtouch.cpp
+++ b/src/plugins/generic/evdevtouch/qevdevtouch.cpp
@@ -46,7 +46,7 @@
#include <QGuiApplication>
#include <QDebug>
#include <QtCore/private/qcore_unix_p.h>
-#include <QtPlatformSupport/private/qudevhelper_p.h>
+#include <QtPlatformSupport/private/qudevicehelper_p.h>
#include <linux/input.h>
#ifdef USE_MTDEV
@@ -146,7 +146,17 @@ QTouchScreenHandler::QTouchScreenHandler(const QString &spec)
setObjectName(QLatin1String("Evdev Touch Handler"));
QString dev;
- q_udev_devicePath(UDev_Touchpad | UDev_Touchscreen, &dev);
+
+ // try to let udev scan for already connected devices
+ QScopedPointer<QUDeviceHelper> udeviceHelper(QUDeviceHelper::createUDeviceHelper(QUDeviceHelper::UDev_Touchpad | QUDeviceHelper::UDev_Touchscreen, this));
+ if (udeviceHelper) {
+ QStringList devices = udeviceHelper->scanConnectedDevices();
+
+ // only the first device found is used for now
+ if (devices.size() > 0)
+ dev = devices[0];
+ }
+
if (dev.isEmpty())
dev = QLatin1String("/dev/input/event0");
diff --git a/src/plugins/platforms/cocoa/cocoa.pro b/src/plugins/platforms/cocoa/cocoa.pro
index b953210720..e861f48e7b 100644
--- a/src/plugins/platforms/cocoa/cocoa.pro
+++ b/src/plugins/platforms/cocoa/cocoa.pro
@@ -27,10 +27,15 @@ OBJECTIVE_SOURCES += main.mm \
qcocoafiledialoghelper.mm \
qcocoafontdialoghelper.mm \
qcocoacursor.mm \
+ qcocoaclipboard.mm \
qcocoadrag.mm \
qmacclipboard.mm \
qmacmime.mm \
qcocoasystemsettings.mm \
+ qcocoainputcontext.mm \
+ qpaintengine_mac.mm \
+ qprintengine_mac.mm \
+ qcocoaprintersupport.mm \
HEADERS += qcocoaintegration.h \
qcocoatheme.h \
@@ -55,17 +60,22 @@ HEADERS += qcocoaintegration.h \
qcocoafiledialoghelper.h \
qcocoafontdialoghelper.h \
qcocoacursor.h \
+ qcocoaclipboard.h \
qcocoadrag.h \
qmacclipboard.h \
qmacmime.h \
qcocoasystemsettings.h \
+ qcocoainputcontext.h \
+ qpaintengine_mac_p.h \
+ qprintengine_mac_p.h \
+ qcocoaprintersupport.h \
FORMS += $$PWD/../../../widgets/dialogs/qfiledialog.ui
RESOURCES += qcocoaresources.qrc
LIBS += -framework Cocoa
-QT += core-private gui-private widgets-private platformsupport-private
+QT += core-private gui-private widgets-private platformsupport-private printsupport
OTHER_FILES += cocoa.json
target.path += $$[QT_INSTALL_PLUGINS]/platforms
diff --git a/src/plugins/platforms/uikit/quikitscreen.h b/src/plugins/platforms/cocoa/qcocoaclipboard.h
index e53589b2c7..27505058bf 100644
--- a/src/plugins/platforms/uikit/quikitscreen.h
+++ b/src/plugins/platforms/cocoa/qcocoaclipboard.h
@@ -39,37 +39,32 @@
**
****************************************************************************/
-#ifndef QUIKITSCREEN_H
-#define QUIKITSCREEN_H
+#ifndef QCOCOACLIPBOARD_H
+#define QCOCOACLIPBOARD_H
-#include <UIKit/UIKit.h>
-
-#include <QtGui/QPlatformScreen>
+#include <qplatformclipboard_qpa.h>
+#include "qmacclipboard.h"
+#include <QtCore/QScopedPointer>
QT_BEGIN_NAMESPACE
-class QUIKitScreen : public QPlatformScreen
+class QCocoaClipboard : public QPlatformClipboard
{
public:
- QUIKitScreen(int screenIndex);
- ~QUIKitScreen();
-
- QRect geometry() const { return m_geometry; }
- int depth() const { return m_depth; }
- QImage::Format format() const { return m_format; }
- QSizeF physicalSize() const { return m_physicalSize; }
+ QCocoaClipboard();
- UIScreen *uiScreen() const;
+ QMimeData *mimeData(QClipboard::Mode mode = QClipboard::Clipboard);
+ void setMimeData(QMimeData *data, QClipboard::Mode mode = QClipboard::Clipboard);
+ bool supportsMode(QClipboard::Mode mode) const;
+ bool ownsMode(QClipboard::Mode mode) const;
+protected:
+ QMacPasteboard *pasteboardForMode(QClipboard::Mode mode) const;
private:
- QRect m_geometry;
- int m_depth;
- QImage::Format m_format;
- QSizeF m_physicalSize;
- int m_index;
+ QScopedPointer<QMacPasteboard> m_clipboard;
+ QScopedPointer<QMacPasteboard> m_find;
};
QT_END_NAMESPACE
-
#endif
diff --git a/src/plugins/platforms/uikit/main.mm b/src/plugins/platforms/cocoa/qcocoaclipboard.mm
index db413c0775..799fb85183 100644
--- a/src/plugins/platforms/uikit/main.mm
+++ b/src/plugins/platforms/cocoa/qcocoaclipboard.mm
@@ -39,36 +39,55 @@
**
****************************************************************************/
-#include <UIKit/UIKit.h>
-
-#include <QtGui/QPlatformIntegrationPlugin>
-#include "quikitintegration.h"
+#include "QCocoaclipboard.h"
+#include "qmacmime.h"
+#include "qmacclipboard.h"
QT_BEGIN_NAMESPACE
-class QUIKitIntegrationPlugin : public QPlatformIntegrationPlugin
+QCocoaClipboard::QCocoaClipboard()
+ :m_clipboard(new QMacPasteboard(kPasteboardClipboard, QMacPasteboardMime::MIME_CLIP))
+ ,m_find(new QMacPasteboard(kPasteboardFind, QMacPasteboardMime::MIME_CLIP))
{
-public:
- QStringList keys() const;
- QPlatformIntegration *create(const QString&, const QStringList&);
-};
-QStringList QUIKitIntegrationPlugin::keys() const
+}
+
+QMimeData *QCocoaClipboard::mimeData(QClipboard::Mode mode)
{
- QStringList list;
- list << "UIKit";
- return list;
+ if (QMacPasteboard *pasteBoard = pasteboardForMode(mode)) {
+ pasteBoard->sync();
+ return pasteBoard->mimeData();
+ }
+ return 0;
}
-QPlatformIntegration * QUIKitIntegrationPlugin::create(const QString& system, const QStringList& paramList)
+void QCocoaClipboard::setMimeData(QMimeData *data, QClipboard::Mode mode)
{
- Q_UNUSED(paramList);
- if (system.toLower() == "uikit")
- return new QUIKitIntegration;
+ if (QMacPasteboard *pasteBoard = pasteboardForMode(mode)) {
+ pasteBoard->sync();
+ pasteBoard->setMimeData(data);
+ emitChanged(mode);
+ }
+}
- return 0;
+bool QCocoaClipboard::supportsMode(QClipboard::Mode mode) const
+{
+ return (mode == QClipboard::Clipboard || mode == QClipboard::FindBuffer);
+}
+
+bool QCocoaClipboard::ownsMode(QClipboard::Mode mode) const
+{
+ return false;
}
-Q_EXPORT_PLUGIN2(UIKit, QUIKitIntegrationPlugin)
+QMacPasteboard *QCocoaClipboard::pasteboardForMode(QClipboard::Mode mode) const
+{
+ if (mode == QClipboard::Clipboard)
+ return m_clipboard.data();
+ else if (mode == QClipboard::FindBuffer)
+ return m_find.data();
+ else
+ return 0;
+}
QT_END_NAMESPACE
diff --git a/src/plugins/platforms/cocoa/qcocoahelpers.h b/src/plugins/platforms/cocoa/qcocoahelpers.h
index 3e3e8fa507..5113aca3f7 100644
--- a/src/plugins/platforms/cocoa/qcocoahelpers.h
+++ b/src/plugins/platforms/cocoa/qcocoahelpers.h
@@ -74,6 +74,15 @@ NSImage *qt_mac_create_nsimage(const QPixmap &pm);
NSSize qt_mac_toNSSize(const QSize &qtSize);
+QColor qt_mac_toQColor(const NSColor *color);
+
+// Creates a mutable shape, it's the caller's responsibility to release.
+HIMutableShapeRef qt_mac_QRegionToHIMutableShape(const QRegion &region);
+
+OSStatus qt_mac_drawCGImage(CGContextRef inContext, const CGRect *inBounds, CGImageRef inImage);
+
+CGFloat qt_mac_get_scalefactor();
+
QChar qt_mac_qtKey2CocoaKey(Qt::Key key);
Qt::Key qt_mac_cocoaKey2QtKey(QChar keyCode);
diff --git a/src/plugins/platforms/cocoa/qcocoahelpers.mm b/src/plugins/platforms/cocoa/qcocoahelpers.mm
index ec4399b66c..60590b966e 100644
--- a/src/plugins/platforms/cocoa/qcocoahelpers.mm
+++ b/src/plugins/platforms/cocoa/qcocoahelpers.mm
@@ -132,11 +132,46 @@ NSImage *qt_mac_create_nsimage(const QPixmap &pm)
return qt_mac_cgimage_to_nsimage(qt_mac_image_to_cgimage(image));
}
+HIMutableShapeRef qt_mac_QRegionToHIMutableShape(const QRegion &region)
+{
+ HIMutableShapeRef shape = HIShapeCreateMutable();
+ QVector<QRect> rects = region.rects();
+ if (!rects.isEmpty()) {
+ int n = rects.count();
+ const QRect *qt_r = rects.constData();
+ while (n--) {
+ CGRect cgRect = CGRectMake(qt_r->x(), qt_r->y(), qt_r->width(), qt_r->height());
+ HIShapeUnionWithRect(shape, &cgRect);
+ ++qt_r;
+ }
+ }
+ return shape;
+}
+
NSSize qt_mac_toNSSize(const QSize &qtSize)
{
return NSMakeSize(qtSize.width(), qtSize.height());
}
+QColor qt_mac_toQColor(const NSColor *color)
+{
+ QColor qtColor;
+ NSString *colorSpace = [color colorSpaceName];
+ if (colorSpace == NSDeviceCMYKColorSpace) {
+ CGFloat cyan, magenta, yellow, black, alpha;
+ [color getCyan:&cyan magenta:&magenta yellow:&yellow black:&black alpha:&alpha];
+ qtColor.setCmykF(cyan, magenta, yellow, black, alpha);
+ } else {
+ NSColor *tmpColor;
+ tmpColor = [color colorUsingColorSpaceName:NSDeviceRGBColorSpace];
+ CGFloat red, green, blue, alpha;
+ [tmpColor getRed:&red green:&green blue:&blue alpha:&alpha];
+ qtColor.setRgbF(red, green, blue, alpha);
+ }
+ return qtColor;
+}
+
+
// Use this method to keep all the information in the TextSegment. As long as it is ordered
// we are in OK shape, and we can influence that ourselves.
struct KeyPair
@@ -519,4 +554,31 @@ NSRect qt_mac_flipRect(const QRect &rect, QWindow *window)
return NSMakeRect(rect.x(), flippedY, rect.width(), rect.height());
}
+OSStatus qt_mac_drawCGImage(CGContextRef inContext, const CGRect *inBounds, CGImageRef inImage)
+{
+ // Verbatim copy if HIViewDrawCGImage (as shown on Carbon-Dev)
+ OSStatus err = noErr;
+
+ require_action(inContext != NULL, InvalidContext, err = paramErr);
+ require_action(inBounds != NULL, InvalidBounds, err = paramErr);
+ require_action(inImage != NULL, InvalidImage, err = paramErr);
+
+ CGContextSaveGState( inContext );
+ CGContextTranslateCTM (inContext, 0, inBounds->origin.y + CGRectGetMaxY(*inBounds));
+ CGContextScaleCTM(inContext, 1, -1);
+
+ CGContextDrawImage(inContext, *inBounds, inImage);
+
+ CGContextRestoreGState(inContext);
+InvalidImage:
+InvalidBounds:
+InvalidContext:
+ return err;
+}
+
+CGFloat qt_mac_get_scalefactor()
+{
+ return [[NSScreen mainScreen] userSpaceScaleFactor];
+}
+
QT_END_NAMESPACE
diff --git a/src/plugins/platforms/uikit/quikitsoftwareinputhandler.h b/src/plugins/platforms/cocoa/qcocoainputcontext.h
index b4627c15ff..172c87e2dc 100644
--- a/src/plugins/platforms/uikit/quikitsoftwareinputhandler.h
+++ b/src/plugins/platforms/cocoa/qcocoainputcontext.h
@@ -1,5 +1,3 @@
-
-
/****************************************************************************
**
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
@@ -41,21 +39,32 @@
**
****************************************************************************/
-#ifndef QUIKITSOFTWAREINPUTHANDLER_H
-#define QUIKITSOFTWAREINPUTHANDLER_H
+#ifndef QCOCOAINPUTCONTEXT_H
+#define QCOCOAINPUTCONTEXT_H
-#include <QtCore/QObject>
+#include <QtGui/QPlatformInputContext>
+#include <QtCore/QPointer>
QT_BEGIN_NAMESPACE
-class QUIKitSoftwareInputHandler : public QObject
+class QCocoaInputContext : public QPlatformInputContext
{
Q_OBJECT
-
public:
- bool eventFilter(QObject *obj, QEvent *event);
+ explicit QCocoaInputContext();
+ ~QCocoaInputContext();
+
+ virtual bool isValid() const { return true; }
+
+ virtual void reset();
+
+private Q_SLOTS:
+ void inputItemChanged();
+
+private:
+ QPointer<QWindow> mWindow;
};
QT_END_NAMESPACE
-#endif
+#endif // QCOCOAINPUTCONTEXT_H
diff --git a/src/plugins/platforms/cocoa/qcocoainputcontext.mm b/src/plugins/platforms/cocoa/qcocoainputcontext.mm
new file mode 100644
index 0000000000..db3488a0f5
--- /dev/null
+++ b/src/plugins/platforms/cocoa/qcocoainputcontext.mm
@@ -0,0 +1,122 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this
+** file. Please review the following information to ensure the GNU Lesser
+** General Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qnsview.h"
+#include "qcocoainputcontext.h"
+#include "qcocoanativeinterface.h"
+#include "qcocoaautoreleasepool.h"
+
+#include <QtCore/QRect>
+#include <QtGui/QGuiApplication>
+#include <QtGui/QWindow>
+
+QT_BEGIN_NAMESPACE
+
+/*!
+ \class QCocoaInputContext
+ \brief Cocoa Input context implementation
+
+ Handles input of foreign characters (particularly East Asian)
+ languages.
+
+ \section1 Testing
+
+ \list
+ \o Select input sources like 'Kotoeri' in Language & Text Preferences
+ \o Compile the \a mainwindows/mdi example and open a text window.
+ \o In the language bar, switch to 'Hiragana'.
+ \o In a text editor control, type the syllable \a 'la'.
+ Underlined characters show up, indicating that there is completion
+ available. Press the Space key two times. A completion popup occurs
+ which shows the options.
+ \endlist
+
+ \section1 Interaction
+
+ Input method support in Cocoa uses NSTextInput protorol. Therefore
+ almost all functionality is implemented in QNSView.
+
+ \ingroup qt-lighthouse-cocoa
+*/
+
+
+
+QCocoaInputContext::QCocoaInputContext()
+ : QPlatformInputContext()
+ , mWindow(QGuiApplication::focusWindow())
+{
+ connect(qApp->inputMethod(), SIGNAL(inputItemChanged()), this, SLOT(inputItemChanged()));
+}
+
+QCocoaInputContext::~QCocoaInputContext()
+{
+}
+
+/*!
+ \brief Cancels a composition.
+*/
+
+void QCocoaInputContext::reset()
+{
+ QPlatformInputContext::reset();
+
+ if (!mWindow) return;
+
+ QCocoaNativeInterface *nativeInterface = qobject_cast<QCocoaNativeInterface *>(QGuiApplication::platformNativeInterface());
+ if (!nativeInterface) return;
+
+ QNSView *view = static_cast<QNSView *>(nativeInterface->nativeResourceForWindow("nsview", mWindow));
+ if (!view) return;
+
+ QCocoaAutoReleasePool pool;
+ NSInputManager *currentIManager = [NSInputManager currentInputManager];
+ if (currentIManager) {
+ [currentIManager markedTextAbandoned:view];
+ [view unmarkText];
+ }
+}
+
+void QCocoaInputContext::inputItemChanged()
+{
+ mWindow = QGuiApplication::focusWindow();
+}
+
+QT_END_NAMESPACE
diff --git a/src/plugins/platforms/cocoa/qcocoaintegration.h b/src/plugins/platforms/cocoa/qcocoaintegration.h
index bf54915365..97e7a7ffde 100644
--- a/src/plugins/platforms/cocoa/qcocoaintegration.h
+++ b/src/plugins/platforms/cocoa/qcocoaintegration.h
@@ -46,6 +46,7 @@
#include "qcocoaautoreleasepool.h"
#include "qcocoacursor.h"
+#include "qcocoaclipboard.h"
#include "qcocoadrag.h"
#include <QtCore/QScopedPointer>
@@ -89,18 +90,24 @@ public:
QPlatformFontDatabase *fontDatabase() const;
QPlatformNativeInterface *nativeInterface() const;
+ QPlatformInputContext *inputContext() const;
QPlatformAccessibility *accessibility() const;
+ QPlatformClipboard *clipboard() const;
QPlatformDrag *drag() const;
- QPlatformTheme *platformTheme() const;
+ QStringList themeNames() const;
+ QPlatformTheme *createPlatformTheme(const QString &name) const;
+
private:
QScopedPointer<QPlatformFontDatabase> mFontDb;
QAbstractEventDispatcher *mEventDispatcher;
+ QScopedPointer<QPlatformInputContext> mInputContext;
QScopedPointer<QPlatformAccessibility> mAccessibility;
QScopedPointer<QPlatformTheme> mPlatformTheme;
QList<QCocoaScreen *> mScreens;
+ QCocoaClipboard *mCocoaClipboard;
QScopedPointer<QCocoaDrag> mCocoaDrag;
};
diff --git a/src/plugins/platforms/cocoa/qcocoaintegration.mm b/src/plugins/platforms/cocoa/qcocoaintegration.mm
index 8411a795c1..f5febd4a16 100644
--- a/src/plugins/platforms/cocoa/qcocoaintegration.mm
+++ b/src/plugins/platforms/cocoa/qcocoaintegration.mm
@@ -52,6 +52,7 @@
#include "qmenu_mac.h"
#include "qcocoafiledialoghelper.h"
#include "qcocoatheme.h"
+#include "qcocoainputcontext.h"
#include "qmacmime.h"
#include <QtGui/qplatformaccessibility_qpa.h>
@@ -90,8 +91,9 @@ QCocoaScreen::~QCocoaScreen()
QCocoaIntegration::QCocoaIntegration()
: mFontDb(new QCoreTextFontDatabase())
, mEventDispatcher(new QCocoaEventDispatcher())
+ , mInputContext(new QCocoaInputContext)
, mAccessibility(new QPlatformAccessibility)
- , mPlatformTheme(new QCocoaTheme)
+ , mCocoaClipboard(new QCocoaClipboard)
, mCocoaDrag(new QCocoaDrag)
{
QCocoaAutoReleasePool pool;
@@ -139,13 +141,19 @@ QCocoaIntegration::QCocoaIntegration()
screenAdded(screen);
}
- QMacPasteboardMime::initialize();
+ QMacPasteboardMime::initializeMimeTypes();
}
QCocoaIntegration::~QCocoaIntegration()
{
[[NSApplication sharedApplication] setDelegate: 0];
+ // Delete the clipboard integration and destroy mime type converters.
+ // Deleting the clipboard integration flushes promised pastes using
+ // the mime converters - the ordering here is important.
+ delete mCocoaClipboard;
+ QMacPasteboardMime::destroyMimeTypes();
+
// Delete screens in reverse order to avoid crash in case of multiple screens
while (!mScreens.isEmpty()) {
delete mScreens.takeLast();
@@ -195,19 +203,36 @@ QPlatformNativeInterface *QCocoaIntegration::nativeInterface() const
return new QCocoaNativeInterface();
}
+QPlatformInputContext *QCocoaIntegration::inputContext() const
+{
+ return mInputContext.data();
+}
+
QPlatformAccessibility *QCocoaIntegration::accessibility() const
{
return mAccessibility.data();
}
+QPlatformClipboard *QCocoaIntegration::clipboard() const
+{
+ return mCocoaClipboard;
+}
+
QPlatformDrag *QCocoaIntegration::drag() const
{
return mCocoaDrag.data();
}
-QPlatformTheme *QCocoaIntegration::platformTheme() const
+QStringList QCocoaIntegration::themeNames() const
+{
+ return QStringList(QLatin1String(QCocoaTheme::name));
+}
+
+QPlatformTheme *QCocoaIntegration::createPlatformTheme(const QString &name) const
{
- return mPlatformTheme.data();
+ if (name == QLatin1String(QCocoaTheme::name))
+ return new QCocoaTheme;
+ return QPlatformIntegration::createPlatformTheme(name);
}
QT_END_NAMESPACE
diff --git a/src/plugins/platforms/cocoa/qcocoanativeinterface.h b/src/plugins/platforms/cocoa/qcocoanativeinterface.h
index 7c6fb38577..8856e90cf3 100644
--- a/src/plugins/platforms/cocoa/qcocoanativeinterface.h
+++ b/src/plugins/platforms/cocoa/qcocoanativeinterface.h
@@ -43,13 +43,34 @@
#define QCOCOANATIVEINTERFACE_H
#include <QtGui/QPlatformNativeInterface>
+#include <QtPrintSupport/QPlatformPrinterSupport>
class QWidget;
class QCocoaNativeInterface : public QPlatformNativeInterface
{
+ Q_OBJECT
public:
void *nativeResourceForWindow(const QByteArray &resourceString, QWindow *window);
+
+private:
+ /*
+ "Virtual" function to create the platform printer support
+ implementation.
+
+ We use an invokable function instead of a virtual one, we do not want
+ this in the QPlatform* API yet.
+
+ This was added here only because QPlatformNativeInterface is a QObject
+ and allow us to use QMetaObject::indexOfMethod() from the printsupport
+ plugin.
+ */
+ Q_INVOKABLE QPlatformPrinterSupport *createPlatformPrinterSupport();
+ /*
+ Function to return the NSPrintInfo * from QMacPaintEnginePrivate.
+ Needed by the native print dialog in the QtPrintSupport library.
+ */
+ Q_INVOKABLE void *NSPrintInfoForPrintEngine(QPrintEngine *printEngine);
};
#endif // QCOCOANATIVEINTERFACE_H
diff --git a/src/plugins/platforms/cocoa/qcocoanativeinterface.mm b/src/plugins/platforms/cocoa/qcocoanativeinterface.mm
index 443369df75..29c2e58959 100644
--- a/src/plugins/platforms/cocoa/qcocoanativeinterface.mm
+++ b/src/plugins/platforms/cocoa/qcocoanativeinterface.mm
@@ -42,6 +42,8 @@
#include "qcocoanativeinterface.h"
#include "qcocoaglcontext.h"
#include "qcocoawindow.h"
+#include "qcocoaprintersupport.h"
+
#include <qbytearray.h>
#include <qwindow.h>
#include "qplatformwindow_qpa.h"
@@ -50,6 +52,8 @@
#include "qopenglcontext.h"
#include <qdebug.h>
+#include "qprintengine_mac_p.h"
+
void *QCocoaNativeInterface::nativeResourceForWindow(const QByteArray &resourceString, QWindow *window)
{
if (!window->handle()) {
@@ -66,3 +70,14 @@ void *QCocoaNativeInterface::nativeResourceForWindow(const QByteArray &resourceS
}
return 0;
}
+
+QPlatformPrinterSupport *QCocoaNativeInterface::createPlatformPrinterSupport()
+{
+ return new QCocoaPrinterSupport();
+}
+
+void *QCocoaNativeInterface::NSPrintInfoForPrintEngine(QPrintEngine *printEngine)
+{
+ QMacPrintEngine *macPrintEngine = static_cast<QMacPrintEngine *>(printEngine);
+ return macPrintEngine->d_func()->printInfo;
+}
diff --git a/src/plugins/platforms/uikit/quikitwindowsurface.h b/src/plugins/platforms/cocoa/qcocoaprintersupport.h
index 6ea1b2ad3c..db473dfabb 100644
--- a/src/plugins/platforms/uikit/quikitwindowsurface.h
+++ b/src/plugins/platforms/cocoa/qcocoaprintersupport.h
@@ -3,7 +3,7 @@
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/
**
-** This file is part of the plugins of the Qt Toolkit.
+** This file is part of the QtPrintSupport module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** GNU Lesser General Public License Usage
@@ -39,26 +39,22 @@
**
****************************************************************************/
-#ifndef QUIKITWINDOWSURFACE_H
-#define QUIKITWINDOWSURFACE_H
+#ifndef QCOCOAPRINTERSUPPORT_H
+#define QCOCOAPRINTERSUPPORT_H
-#include <QtGui/QPlatformIntegration>
+#include <QtPrintSupport/QPlatformPrinterSupport>
-QT_BEGIN_NAMESPACE
-
-class QUIKitWindowSurface : public QWindowSurface
+class QCocoaPrinterSupport : public QPlatformPrinterSupport
{
public:
- QUIKitWindowSurface(QWidget *window);
+ QCocoaPrinterSupport();
+ ~QCocoaPrinterSupport();
- QPaintDevice *paintDevice();
- void flush(QWidget *widget, const QRegion &region, const QPoint &offset);
- WindowSurfaceFeatures features() const;
+ Q_DECL_OVERRIDE QPrintEngine *createNativePrintEngine(QPrinter::PrinterMode printerMode);
+ Q_DECL_OVERRIDE QPaintEngine *createPaintEngine(QPrintEngine *, QPrinter::PrinterMode printerMode);
+ Q_DECL_OVERRIDE QList<QPrinter::PaperSize> supportedPaperSizes(const QPrinterInfo &) const;
-private:
- QPaintDevice *mPaintDevice;
+ Q_DECL_OVERRIDE QList<QPrinterInfo> availablePrinters();
};
-QT_END_NAMESPACE
-
-#endif // QUIKITWINDOWSURFACE_H
+#endif // QCOCOAPRINTERSUPPORT_H
diff --git a/src/plugins/platforms/cocoa/qcocoaprintersupport.mm b/src/plugins/platforms/cocoa/qcocoaprintersupport.mm
new file mode 100644
index 0000000000..6653c81a4a
--- /dev/null
+++ b/src/plugins/platforms/cocoa/qcocoaprintersupport.mm
@@ -0,0 +1,116 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
+**
+** This file is part of the QtPrintSupport module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this
+** file. Please review the following information to ensure the GNU Lesser
+** General Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qcocoaprintersupport.h"
+#include "qprintengine_mac_p.h"
+
+#include <QtPrintSupport/QPrinter>
+#include <QtPrintSupport/QPrinterInfo>
+
+QCocoaPrinterSupport::QCocoaPrinterSupport()
+{ }
+
+QCocoaPrinterSupport::~QCocoaPrinterSupport()
+{ }
+
+QPrintEngine *QCocoaPrinterSupport::createNativePrintEngine(QPrinter::PrinterMode printerMode)
+{
+ return new QMacPrintEngine(printerMode);
+}
+
+QPaintEngine *QCocoaPrinterSupport::createPaintEngine(QPrintEngine *printEngine, QPrinter::PrinterMode printerMode)
+{
+ Q_UNUSED(printerMode);
+ /*
+ QMacPrintEngine multiply inherits from QPrintEngine and QPaintEngine,
+ the cast here allows conversion of QMacPrintEngine* to QPaintEngine*
+ */
+ return static_cast<QMacPrintEngine *>(printEngine);
+}
+
+QList<QPrinter::PaperSize> QCocoaPrinterSupport::supportedPaperSizes(const QPrinterInfo &printerInfo) const
+{
+ QList<QPrinter::PaperSize> returnValue;
+ if (printerInfo.isNull())
+ return returnValue;
+
+ PMPrinter printer = PMPrinterCreateFromPrinterID(QCFString::toCFStringRef(printerInfo.printerName()));
+ if (!printer)
+ return returnValue;
+
+ CFArrayRef array;
+ if (PMPrinterGetPaperList(printer, &array) != noErr) {
+ PMRelease(printer);
+ return returnValue;
+ }
+
+ CFIndex count = CFArrayGetCount(array);
+ for (CFIndex i = 0; i < count; ++i) {
+ PMPaper paper = static_cast<PMPaper>(const_cast<void *>(CFArrayGetValueAtIndex(array, i)));
+ double width, height;
+ if (PMPaperGetWidth(paper, &width) == noErr
+ && PMPaperGetHeight(paper, &height) == noErr) {
+ // width and height are in points, convertQSizeFToPaperSize() expects millimeters
+ static const double OnePointInMillimeters = 1.0 / 72.0 * 25.4;
+ QSizeF size(width * OnePointInMillimeters, height * OnePointInMillimeters);
+ returnValue += QPlatformPrinterSupport::convertQSizeFToPaperSize(size);
+ }
+ }
+
+ PMRelease(printer);
+
+ return returnValue;
+}
+
+QList<QPrinterInfo> QCocoaPrinterSupport::availablePrinters()
+{
+ QList<QPrinterInfo> returnValue;
+ QCFType<CFArrayRef> printerList;
+ if (PMServerCreatePrinterList(kPMServerLocal, &printerList) == noErr) {
+ CFIndex count = CFArrayGetCount(printerList);
+ for (CFIndex i = 0; i < count; ++i) {
+ PMPrinter printer = static_cast<PMPrinter>(const_cast<void *>(CFArrayGetValueAtIndex(printerList, i)));
+ QString printerName = QCFString::toQString(PMPrinterGetName(printer));
+ returnValue += QPlatformPrinterSupport::printerInfo(printerName, PMPrinterIsDefault(printer));
+ }
+ }
+ return returnValue;
+}
diff --git a/src/plugins/platforms/cocoa/qcocoatheme.h b/src/plugins/platforms/cocoa/qcocoatheme.h
index 030db1822c..5cb6f7437d 100644
--- a/src/plugins/platforms/cocoa/qcocoatheme.h
+++ b/src/plugins/platforms/cocoa/qcocoatheme.h
@@ -64,6 +64,9 @@ public:
const QFont *font(Font type = SystemFont) const;
QVariant themeHint(ThemeHint hint) const;
+
+ static const char *name;
+
private:
mutable QPalette *m_systemPalette;
mutable QHash<QPlatformTheme::Palette, QPalette*> m_palettes;
diff --git a/src/plugins/platforms/cocoa/qcocoatheme.mm b/src/plugins/platforms/cocoa/qcocoatheme.mm
index 8ec6e3801e..d17ee30096 100644
--- a/src/plugins/platforms/cocoa/qcocoatheme.mm
+++ b/src/plugins/platforms/cocoa/qcocoatheme.mm
@@ -49,6 +49,8 @@
QT_BEGIN_NAMESPACE
+const char *QCocoaTheme::name = "cocoa";
+
QCocoaTheme::QCocoaTheme()
:m_systemPalette(0)
{
diff --git a/src/plugins/platforms/cocoa/qcocoawindow.h b/src/plugins/platforms/cocoa/qcocoawindow.h
index ba56a8991d..8bdb5535d5 100644
--- a/src/plugins/platforms/cocoa/qcocoawindow.h
+++ b/src/plugins/platforms/cocoa/qcocoawindow.h
@@ -49,17 +49,17 @@
#include "qcocoaglcontext.h"
#include "qnsview.h"
+class QCocoaWindow;
@interface QNSWindow : NSWindow {
-
+ @public QCocoaWindow *m_cocoaPlatformWindow;
}
- (BOOL)canBecomeKeyWindow;
-
@end
@interface QNSPanel : NSPanel {
-
+ @public QCocoaWindow *m_cocoaPlatformWindow;
}
- (BOOL)canBecomeKeyWindow;
@end
@@ -93,6 +93,7 @@ public:
void setGeometry(const QRect &rect);
void setVisible(bool visible);
+ Qt::WindowFlags setWindowFlags(Qt::WindowFlags flags);
void setWindowTitle(const QString &title);
void raise();
void lower();
@@ -101,8 +102,11 @@ public:
bool setMouseGrabEnabled(bool grab);
WId winId() const;
+ void setParent(const QPlatformWindow *window);
+
NSView *contentView() const;
+ void windowWillMove();
void windowDidMove();
void windowDidResize();
void windowWillClose();
@@ -111,8 +115,12 @@ public:
QCocoaGLContext *currentContext() const;
protected:
- void determineWindowClass();
- NSWindow *createWindow();
+ // NSWindow handling. The QCocoaWindow/QNSView can either be displayed
+ // in an existing NSWindow or in one created by Qt.
+ NSWindow *createNSWindow();
+ void setNSWindow(NSWindow *window);
+ void clearNSWindow(NSWindow *window);
+
QRect windowGeometry() const;
QCocoaWindow *parentCocoaWindow() const;
@@ -123,9 +131,9 @@ public: // for QNSView
QNSView *m_contentView;
QNSWindow *m_nsWindow;
+ Qt::WindowFlags m_windowFlags;
+ QPointer<QWindow> m_activePopupWindow;
- quint32 m_windowAttributes;
- quint32 m_windowClass;
bool m_inConstructor;
QCocoaGLContext *m_glContext;
};
diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm
index 3f566ccb44..5c30e7f38b 100644
--- a/src/plugins/platforms/cocoa/qcocoawindow.mm
+++ b/src/plugins/platforms/cocoa/qcocoawindow.mm
@@ -58,73 +58,56 @@
- (BOOL)canBecomeKeyWindow
{
-
// The default implementation returns NO for title-bar less windows,
// override and return yes here to make sure popup windows such as
// the combobox popup can become the key window.
return YES;
}
+- (BOOL)canBecomeMainWindow
+{
+ BOOL canBecomeMain = YES; // By default, windows can become the main window
+
+ // Windows with a transient parent (such as combobox popup windows)
+ // cannot become the main window:
+ if (m_cocoaPlatformWindow->window()->transientParent())
+ canBecomeMain = NO;
+
+ return canBecomeMain;
+}
+
+
@end
@implementation QNSPanel
- (BOOL)canBecomeKeyWindow
{
- return YES;
+ return NO;
}
@end
QCocoaWindow::QCocoaWindow(QWindow *tlw)
: QPlatformWindow(tlw)
- , m_windowAttributes(0)
- , m_windowClass(0)
, m_glContext(0)
, m_inConstructor(true)
{
QCocoaAutoReleasePool pool;
- determineWindowClass();
- m_nsWindow = createWindow();
-
- QNSWindowDelegate *delegate = [[QNSWindowDelegate alloc] initWithQCocoaWindow:this];
- [m_nsWindow setDelegate:delegate];
- [m_nsWindow setAcceptsMouseMovedEvents:YES];
-
- // Prevent Cocoa from releasing the window on close. Qt
- // handles the close event asynchronously and we want to
- // make sure that m_nsWindow stays valid until the
- // QCocoaWindow is deleted by Qt.
- [m_nsWindow setReleasedWhenClosed : NO];
-
m_contentView = [[QNSView alloc] initWithQWindow:tlw platformWindow:this];
-
- [[NSNotificationCenter defaultCenter] addObserver:m_contentView
- selector:@selector(windowDidBecomeKey)
- name:NSWindowDidBecomeKeyNotification
- object:m_nsWindow];
-
- [[NSNotificationCenter defaultCenter] addObserver:m_contentView
- selector:@selector(windowDidResignKey)
- name:NSWindowDidResignKeyNotification
- object:m_nsWindow];
-
- // ### Accept touch events by default.
- // Beware that enabling touch events has a negative impact on the overall performance.
- // We probably need a QWindowSystemInterface API to enable/disable touch events.
- [m_contentView setAcceptsTouchEvents:YES];
-
setGeometry(tlw->geometry());
- [m_nsWindow setContentView:m_contentView];
+ m_nsWindow = createNSWindow();
+ setNSWindow(m_nsWindow);
+
m_inConstructor = false;
}
QCocoaWindow::~QCocoaWindow()
{
- [[NSNotificationCenter defaultCenter] removeObserver:m_contentView];
[m_contentView release];
+ clearNSWindow(m_nsWindow);
[m_nsWindow release];
}
@@ -146,23 +129,44 @@ void QCocoaWindow::setVisible(bool visible)
{
QCocoaAutoReleasePool pool;
#ifdef QT_COCOA_ENABLE_WINDOW_DEBUG
- qDebug() << "QCocoaWindow::setVisible" << this << visible;
+ qDebug() << "QCocoaWindow::setVisible" << window() << visible;
#endif
if (visible) {
- // The parent window might have moved while this window was hidden,
- // update the window geometry if there is a parent.
- if (window()->transientParent())
+ if (window()->transientParent()) {
+ // The parent window might have moved while this window was hidden,
+ // update the window geometry if there is a parent.
setGeometry(window()->geometry());
+ // Register popup windows so that the parent window can
+ // close them when needed.
+ if (window()->windowType() == Qt::Popup) {
+ // qDebug() << "transientParent and popup" << window()->windowType() << Qt::Popup << (window()->windowType() & Qt::Popup);
+
+ QCocoaWindow *parentCocoaWindow = static_cast<QCocoaWindow *>(window()->transientParent()->handle());
+ parentCocoaWindow->m_activePopupWindow = window();
+ }
+
+ }
+
// Make sure the QWindow has a frame ready before we show the NSWindow.
QWindowSystemInterface::handleSynchronousExposeEvent(window(), QRect(QPoint(), geometry().size()));
- [m_nsWindow makeKeyAndOrderFront:nil];
+ if ([m_nsWindow canBecomeKeyWindow])
+ [m_nsWindow makeKeyAndOrderFront:nil];
+ else
+ [m_nsWindow orderFront: nil];
} else {
- [m_nsWindow orderOut:nil];
+ // qDebug() << "close" << this;
+ [m_nsWindow orderOut:m_nsWindow];
}
}
+Qt::WindowFlags QCocoaWindow::setWindowFlags(Qt::WindowFlags flags)
+{
+ m_windowFlags = flags;
+ return m_windowFlags;
+}
+
void QCocoaWindow::setWindowTitle(const QString &title)
{
QCocoaAutoReleasePool pool;
@@ -174,13 +178,14 @@ void QCocoaWindow::setWindowTitle(const QString &title)
void QCocoaWindow::raise()
{
+ //qDebug() << "raise" << this;
// ### handle spaces (see Qt 4 raise_sys in qwidget_mac.mm)
[m_nsWindow orderFront: m_nsWindow];
}
void QCocoaWindow::lower()
{
- [m_nsWindow orderFront: m_nsWindow];
+ [m_nsWindow orderBack: m_nsWindow];
}
void QCocoaWindow::propagateSizeHints()
@@ -229,11 +234,31 @@ WId QCocoaWindow::winId() const
return WId(m_nsWindow);
}
+void QCocoaWindow::setParent(const QPlatformWindow *window)
+{
+ // recreate the window for compatibility
+ clearNSWindow(m_nsWindow);
+ [m_nsWindow close];
+ [m_nsWindow release];
+
+ m_nsWindow = createNSWindow();
+ setNSWindow(m_nsWindow);
+}
+
NSView *QCocoaWindow::contentView() const
{
return [m_nsWindow contentView];
}
+void QCocoaWindow::windowWillMove()
+{
+ // Close any open popups on window move
+ if (m_activePopupWindow) {
+ QWindowSystemInterface::handleSynchronousCloseEvent(m_activePopupWindow);
+ m_activePopupWindow = 0;
+ }
+}
+
void QCocoaWindow::windowDidMove()
{
[m_contentView updateGeometry];
@@ -261,156 +286,95 @@ QCocoaGLContext *QCocoaWindow::currentContext() const
return m_glContext;
}
-/*
- Determine the window class based on the window type and
- window flags, and widget attr Sets m_windowAttributes
- and m_windowClass.
-*/
-void QCocoaWindow::determineWindowClass()
+NSWindow * QCocoaWindow::createNSWindow()
{
+ QCocoaAutoReleasePool pool;
+
+ NSRect frame = qt_mac_flipRect(window()->geometry(), window());
+
Qt::WindowType type = window()->windowType();
Qt::WindowFlags flags = window()->windowFlags();
- const bool popup = (type == Qt::Popup);
-
- if (type == Qt::ToolTip || type == Qt::SplashScreen || popup)
- flags |= Qt::FramelessWindowHint;
-
- m_windowClass = kSheetWindowClass;
-
- if (popup || type == Qt::SplashScreen)
- m_windowClass = kModalWindowClass;
- else if (type == Qt::ToolTip)
- m_windowClass = kHelpWindowClass;
- else if (type == Qt::Tool)
- m_windowClass = kFloatingWindowClass;
- else
- m_windowClass = kDocumentWindowClass;
-
- m_windowAttributes = (kWindowCompositingAttribute | kWindowStandardHandlerAttribute);
-
-// if(qt_mac_is_macsheet(window())) {
-// m_windowClass = kSheetWindowClass;
-// } else
-
- {
- // Shift things around a bit to get the correct window class based on the presence
- // (or lack) of the border.
-
- bool customize = flags & Qt::CustomizeWindowHint;
- bool framelessWindow = (flags & Qt::FramelessWindowHint || (customize && !(flags & Qt::WindowTitleHint)));
- if (framelessWindow) {
- if (m_windowClass == kDocumentWindowClass) {
- m_windowAttributes |= kWindowNoTitleBarAttribute;
- } else if (m_windowClass == kFloatingWindowClass) {
- m_windowAttributes |= kWindowNoTitleBarAttribute;
- } else if (m_windowClass == kMovableModalWindowClass) {
- m_windowClass = kModalWindowClass;
- }
- } else {
- m_windowAttributes |= NSTitledWindowMask;
- if (m_windowClass != kModalWindowClass)
- m_windowAttributes |= NSResizableWindowMask;
- }
+ NSUInteger styleMask;
+ NSWindow *createdWindow = 0;
- // Only add extra decorations (well, buttons) for widgets that can have them
- // and have an actual border we can put them on.
-
- if(m_windowClass != kModalWindowClass && m_windowClass != kMovableModalWindowClass
- && m_windowClass != kSheetWindowClass && m_windowClass != kPlainWindowClass
- && !framelessWindow && m_windowClass != kDrawerWindowClass
- && m_windowClass != kHelpWindowClass) {
- if (flags & Qt::WindowMinimizeButtonHint)
- m_windowAttributes |= NSMiniaturizableWindowMask;
- if (flags & Qt::WindowSystemMenuHint || flags & Qt::WindowCloseButtonHint)
- m_windowAttributes |= NSClosableWindowMask;
+ // Use NSPanel for popup-type windows. (Popup, Tool, ToolTip, SplashScreen)
+ if ((type & Qt::Popup) == Qt::Popup) {
+ if (type == Qt::Popup || type == Qt::ToolTip || type == Qt::SplashScreen) {
+ styleMask = NSBorderlessWindowMask;
} else {
- // Clear these hints so that we aren't call them on invalid windows
- flags &= ~(Qt::WindowMaximizeButtonHint | Qt::WindowMinimizeButtonHint
- | Qt::WindowCloseButtonHint | Qt::WindowSystemMenuHint);
+ styleMask = (NSUtilityWindowMask | NSResizableWindowMask | NSClosableWindowMask |
+ NSMiniaturizableWindowMask | NSTitledWindowMask);
}
+ QNSPanel *window;
+ window = [[QNSPanel alloc] initWithContentRect:frame
+ styleMask: styleMask
+ backing:NSBackingStoreBuffered
+ defer:NO]; // Deferring window creation breaks OpenGL (the GL context is set up
+ // before the window is shown and needs a proper window.).
+ [window setHasShadow:YES];
+ createdWindow = window;
+ } else {
+ styleMask = (NSResizableWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSTitledWindowMask);
+ QNSWindow *window;
+ window = [[QNSWindow alloc] initWithContentRect:frame
+ styleMask: styleMask
+ backing:NSBackingStoreBuffered
+ defer:NO]; // Deferring window creation breaks OpenGL (the GL context is set up
+ // before the window is shown and needs a proper window.).
+ window->m_cocoaPlatformWindow = this;
+ createdWindow = window;
}
-
- if((popup || type == Qt::Tool) && !window()->isModal())
- m_windowAttributes |= kWindowHideOnSuspendAttribute;
- m_windowAttributes |= kWindowLiveResizeAttribute;
+ return createdWindow;
}
-/*
-
-*/
-NSWindow * QCocoaWindow::createWindow()
+void QCocoaWindow::setNSWindow(NSWindow *window)
{
- // Determine if we need to add in our "custom window" attribute. Cocoa is rather clever
- // in deciding if we need the maximize button or not (i.e., it's resizable, so you
- // must need a maximize button). So, the only buttons we have control over are the
- // close and minimize buttons. If someone wants to customize and NOT have the maximize
- // button, then we have to do our hack. We only do it for these cases because otherwise
- // the window looks different when activated. This "QtMacCustomizeWindow" attribute is
- // intruding on a public space and WILL BREAK in the future.
- // One can hope that there is a more public API available by that time.
-/*
- Qt::WindowFlags flags = widget ? widget->windowFlags() : Qt::WindowFlags(0);
- if ((flags & Qt::CustomizeWindowHint)) {
- if ((flags & (Qt::WindowCloseButtonHint | Qt::WindowSystemMenuHint
- | Qt::WindowMinimizeButtonHint | Qt::WindowTitleHint))
- && !(flags & Qt::WindowMaximizeButtonHint))
- wattr |= QtMacCustomizeWindow;
- }
-*/
- NSRect frame = qt_mac_flipRect(window()->geometry(), window());
- QCocoaAutoReleasePool pool;
- NSWindow *window;
-
- switch (m_windowClass) {
- case kMovableModalWindowClass:
- case kModalWindowClass:
- case kSheetWindowClass:
- case kFloatingWindowClass:
- case kOverlayWindowClass:
- case kHelpWindowClass: {
- NSPanel *panel;
-
- BOOL needFloating = NO;
- //BOOL worksWhenModal = (this->window()->windowType() == Qt::Popup);
-
- // Add in the extra flags if necessary.
- switch (m_windowClass) {
- case kSheetWindowClass:
- m_windowAttributes |= NSDocModalWindowMask;
- break;
- case kFloatingWindowClass:
- case kHelpWindowClass:
- needFloating = YES;
- m_windowAttributes |= NSUtilityWindowMask;
- break;
- default:
- break;
- }
+ QNSWindowDelegate *delegate = [[QNSWindowDelegate alloc] initWithQCocoaWindow:this];
+ [window setDelegate:delegate];
+ [window setAcceptsMouseMovedEvents:YES];
- panel = [[QNSPanel alloc] initWithContentRect:frame
- styleMask:m_windowAttributes
- backing:NSBackingStoreBuffered
- defer:NO]; // see window case below
-// ### crashes
-// [panel setFloatingPanel:needFloating];
-// [panel setWorksWhenModal:worksWhenModal];
- window = static_cast<NSWindow *>(panel);
- break;
- }
- default:
- window = [[QNSWindow alloc] initWithContentRect:frame
- styleMask:(NSResizableWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSTitledWindowMask)
- backing:NSBackingStoreBuffered
- defer:NO]; // Deferring window creation breaks OpenGL (the GL context is set up
- // before the window is shown and needs a proper window.).
- break;
- }
+ // Prevent Cocoa from releasing the window on close. Qt
+ // handles the close event asynchronously and we want to
+ // make sure that m_nsWindow stays valid until the
+ // QCocoaWindow is deleted by Qt.
+ [window setReleasedWhenClosed : NO];
- //qt_syncCocoaTitleBarButtons(window, widget);
- return window;
+ [[NSNotificationCenter defaultCenter] addObserver:m_contentView
+ selector:@selector(windowDidBecomeKey)
+ name:NSWindowDidBecomeKeyNotification
+ object:m_nsWindow];
+
+ [[NSNotificationCenter defaultCenter] addObserver:m_contentView
+ selector:@selector(windowDidResignKey)
+ name:NSWindowDidResignKeyNotification
+ object:m_nsWindow];
+
+ [[NSNotificationCenter defaultCenter] addObserver:m_contentView
+ selector:@selector(windowDidBecomeMain)
+ name:NSWindowDidBecomeMainNotification
+ object:m_nsWindow];
+
+ [[NSNotificationCenter defaultCenter] addObserver:m_contentView
+ selector:@selector(windowDidResignMain)
+ name:NSWindowDidResignMainNotification
+ object:m_nsWindow];
+
+
+ // ### Accept touch events by default.
+ // Beware that enabling touch events has a negative impact on the overall performance.
+ // We probably need a QWindowSystemInterface API to enable/disable touch events.
+ [m_contentView setAcceptsTouchEvents:YES];
+
+ [window setContentView:m_contentView];
+}
+
+void QCocoaWindow::clearNSWindow(NSWindow *window)
+{
+ [[NSNotificationCenter defaultCenter] removeObserver:m_contentView];
}
+
// Returns the current global screen geometry for the nswindow associated with this window.
QRect QCocoaWindow::windowGeometry() const
{
diff --git a/src/plugins/platforms/cocoa/qmacclipboard.mm b/src/plugins/platforms/cocoa/qmacclipboard.mm
index d5af6de69c..eff2c5b07a 100644
--- a/src/plugins/platforms/cocoa/qmacclipboard.mm
+++ b/src/plugins/platforms/cocoa/qmacclipboard.mm
@@ -63,106 +63,6 @@ QT_USE_NAMESPACE
*****************************************************************************/
//#define DEBUG_PASTEBOARD
-#ifndef QT_NO_CLIPBOARD
-
-/*****************************************************************************
- QClipboard member functions for mac.
- *****************************************************************************/
-
-static QMacPasteboard *qt_mac_pasteboards[2] = {0, 0};
-
-static inline QMacPasteboard *qt_mac_pasteboard(QClipboard::Mode mode)
-{
- Q_ASSERT(mode == QClipboard::Clipboard || mode == QClipboard::FindBuffer);
- if (mode == QClipboard::Clipboard)
- return qt_mac_pasteboards[0];
- else
- return qt_mac_pasteboards[1];
-}
-
-static void qt_mac_cleanupPasteboard() {
- delete qt_mac_pasteboards[0];
- delete qt_mac_pasteboards[1];
- qt_mac_pasteboards[0] = 0;
- qt_mac_pasteboards[1] = 0;
-}
-
-static bool qt_mac_updateScrap(QClipboard::Mode mode)
-{
- if (!qt_mac_pasteboards[0]) {
- qt_mac_pasteboards[0] = new QMacPasteboard(kPasteboardClipboard, QMacPasteboardMime::MIME_CLIP);
- qt_mac_pasteboards[1] = new QMacPasteboard(kPasteboardFind, QMacPasteboardMime::MIME_CLIP);
- qAddPostRoutine(qt_mac_cleanupPasteboard);
- return true;
- }
- return qt_mac_pasteboard(mode)->sync();
-}
-
-void QClipboard::clear(Mode mode)
-{
- if (!supportsMode(mode))
- return;
- qt_mac_updateScrap(mode);
- qt_mac_pasteboard(mode)->clear();
- setMimeData(0, mode);
-}
-
-void QClipboard::ownerDestroyed()
-{
-}
-
-
-void QClipboard::connectNotify(const char *signal)
-{
- Q_UNUSED(signal);
-}
-
-bool QClipboard::event(QEvent *e)
-{
- if (e->type() != QEvent::Clipboard)
- return QObject::event(e);
-
- if (qt_mac_updateScrap(QClipboard::Clipboard)) {
- emitChanged(QClipboard::Clipboard);
- }
-
- if (qt_mac_updateScrap(QClipboard::FindBuffer)) {
- emitChanged(QClipboard::FindBuffer);
- }
-
- return QObject::event(e);
-}
-
-const QMimeData *QClipboard::mimeData(Mode mode) const
-{
- if (!supportsMode(mode))
- return 0;
- qt_mac_updateScrap(mode);
- return qt_mac_pasteboard(mode)->mimeData();
-}
-
-void QClipboard::setMimeData(QMimeData *src, Mode mode)
-{
- if (!supportsMode(mode))
- return;
- qt_mac_updateScrap(mode);
- qt_mac_pasteboard(mode)->setMimeData(src);
- emitChanged(mode);
-}
-
-bool QClipboard::supportsMode(Mode mode) const
-{
- return (mode == Clipboard || mode == FindBuffer);
-}
-
-bool QClipboard::ownsMode(Mode mode) const
-{
- Q_UNUSED(mode);
- return false;
-}
-
-#endif // QT_NO_CLIPBOARD
-
/*****************************************************************************
QMacPasteboard code
*****************************************************************************/
diff --git a/src/plugins/platforms/cocoa/qmacmime.h b/src/plugins/platforms/cocoa/qmacmime.h
index 842caa5f2f..7226caef28 100644
--- a/src/plugins/platforms/cocoa/qmacmime.h
+++ b/src/plugins/platforms/cocoa/qmacmime.h
@@ -58,7 +58,8 @@ public:
explicit QMacPasteboardMime(char);
virtual ~QMacPasteboardMime();
- static void initialize();
+ static void initializeMimeTypes();
+ static void destroyMimeTypes();
static QList<QMacPasteboardMime*> all(uchar);
static QMacPasteboardMime *convertor(uchar, const QString &mime, QString flav);
diff --git a/src/plugins/platforms/cocoa/qmacmime.mm b/src/plugins/platforms/cocoa/qmacmime.mm
index db86deb91c..8cb684fbea 100644
--- a/src/plugins/platforms/cocoa/qmacmime.mm
+++ b/src/plugins/platforms/cocoa/qmacmime.mm
@@ -64,14 +64,6 @@ extern CGImageRef qt_mac_createCGImageFromQImage(const QImage &img, const QImage
typedef QList<QMacPasteboardMime*> MimeList;
Q_GLOBAL_STATIC(MimeList, globalMimeList)
-
-static void cleanup_mimes()
-{
- MimeList *mimes = globalMimeList();
- while (!mimes->isEmpty())
- delete mimes->takeFirst();
-}
-
Q_GLOBAL_STATIC(QStringList, globalDraggedTypesList)
/*!
@@ -791,11 +783,9 @@ QList<QByteArray> QMacPasteboardMimeVCard::convertFromMime(const QString &mime,
This is an internal function.
*/
-void QMacPasteboardMime::initialize()
+void QMacPasteboardMime::initializeMimeTypes()
{
if (globalMimeList()->isEmpty()) {
- qAddPostRoutine(cleanup_mimes);
-
//standard types that we wrap
new QMacPasteboardMimeTiff;
new QMacPasteboardMimeUnicodeText;
@@ -811,6 +801,16 @@ void QMacPasteboardMime::initialize()
}
/*!
+ \internal
+*/
+void QMacPasteboardMime::destroyMimeTypes()
+{
+ MimeList *mimes = globalMimeList();
+ while (!mimes->isEmpty())
+ delete mimes->takeFirst();
+}
+
+/*!
Returns the most-recently created QMacPasteboardMime of type \a t that can convert
between the \a mime and \a flav formats. Returns 0 if no such convertor
exists.
diff --git a/src/plugins/platforms/cocoa/qnsview.h b/src/plugins/platforms/cocoa/qnsview.h
index 1a1a1cd3b9..f09c9331f6 100644
--- a/src/plugins/platforms/cocoa/qnsview.h
+++ b/src/plugins/platforms/cocoa/qnsview.h
@@ -44,6 +44,7 @@
#include <Cocoa/Cocoa.h>
+#include <QtCore/QPointer>
#include <QtGui/QImage>
#include <QtGui/QAccessible>
@@ -51,12 +52,14 @@ QT_BEGIN_NAMESPACE
class QCocoaWindow;
QT_END_NAMESPACE
-@interface QNSView : NSView {
+@interface QNSView : NSView <NSTextInput> {
CGImageRef m_cgImage;
QWindow *m_window;
QCocoaWindow *m_platformWindow;
Qt::MouseButtons m_buttons;
QAccessibleInterface *m_accessibleRoot;
+ QString m_composingText;
+ bool m_keyEventsAccepted;
QStringList *currentCustomDragTypes;
}
diff --git a/src/plugins/platforms/cocoa/qnsview.mm b/src/plugins/platforms/cocoa/qnsview.mm
index 9ed3332ba5..a28c5959ce 100644
--- a/src/plugins/platforms/cocoa/qnsview.mm
+++ b/src/plugins/platforms/cocoa/qnsview.mm
@@ -51,6 +51,7 @@
#include "qcocoadrag.h"
#include <QtGui/QWindowSystemInterface>
+#include <QtGui/QTextFormat>
#include <QtCore/QDebug>
#ifdef QT_COCOA_ENABLE_ACCESSIBILITY_INSPECTOR
@@ -94,6 +95,7 @@ static QTouchDevice *touchDevice = 0;
m_window = window;
m_platformWindow = platformWindow;
m_accessibleRoot = 0;
+ m_keyEventsAccepted = false;
#ifdef QT_COCOA_ENABLE_ACCESSIBILITY_INSPECTOR
// prevent rift in space-time continuum, disable
@@ -144,14 +146,27 @@ static QTouchDevice *touchDevice = 0;
- (void)windowDidBecomeKey
{
- QWindowSystemInterface::handleWindowActivated(m_window);
+// QWindowSystemInterface::handleWindowActivated(m_window);
}
- (void)windowDidResignKey
{
+// QWindowSystemInterface::handleWindowActivated(0);
+}
+
+- (void)windowDidBecomeMain
+{
+// qDebug() << "window did become main" << m_window;
+ QWindowSystemInterface::handleWindowActivated(m_window);
+}
+
+- (void)windowDidResignMain
+{
+// qDebug() << "window did resign main" << m_window;
QWindowSystemInterface::handleWindowActivated(0);
}
+
- (void) setImage:(QImage *)image
{
CGImageRelease(m_cgImage);
@@ -266,14 +281,24 @@ static QTouchDevice *touchDevice = 0;
qtScreenPoint = QPoint(screenPoint.x, qt_mac_flipYCoordinate(screenPoint.y));
}
ulong timestamp = [theEvent timestamp] * 1000;
-
QWindowSystemInterface::handleMouseEvent(m_window, timestamp, qtWindowPoint, qtScreenPoint, m_buttons);
}
- (void)mouseDown:(NSEvent *)theEvent
{
- m_buttons |= Qt::LeftButton;
- [self handleMouseEvent:theEvent];
+ if (m_platformWindow->m_activePopupWindow) {
+ QWindowSystemInterface::handleSynchronousCloseEvent(m_platformWindow->m_activePopupWindow);
+ m_platformWindow->m_activePopupWindow = 0;
+ }
+ if ([self hasMarkedText]) {
+ NSInputManager* inputManager = [NSInputManager currentInputManager];
+ if ([inputManager wantsToHandleMouseEvents]) {
+ [inputManager handleMouseEvent:theEvent];
+ }
+ } else {
+ m_buttons |= Qt::LeftButton;
+ [self handleMouseEvent:theEvent];
+ }
}
- (void)mouseDragged:(NSEvent *)theEvent
@@ -327,7 +352,53 @@ static QTouchDevice *touchDevice = 0;
- (void)otherMouseDown:(NSEvent *)theEvent
{
- m_buttons |= Qt::RightButton;
+ switch ([theEvent buttonNumber]) {
+ case 3:
+ m_buttons |= Qt::MiddleButton;
+ break;
+ case 4:
+ m_buttons |= Qt::ExtraButton1; // AKA Qt::BackButton
+ break;
+ case 5:
+ m_buttons |= Qt::ExtraButton2; // AKA Qt::ForwardButton
+ break;
+ case 6:
+ m_buttons |= Qt::ExtraButton3;
+ break;
+ case 7:
+ m_buttons |= Qt::ExtraButton4;
+ break;
+ case 8:
+ m_buttons |= Qt::ExtraButton5;
+ break;
+ case 9:
+ m_buttons |= Qt::ExtraButton6;
+ break;
+ case 10:
+ m_buttons |= Qt::ExtraButton7;
+ break;
+ case 11:
+ m_buttons |= Qt::ExtraButton8;
+ break;
+ case 12:
+ m_buttons |= Qt::ExtraButton9;
+ break;
+ case 13:
+ m_buttons |= Qt::ExtraButton10;
+ break;
+ case 14:
+ m_buttons |= Qt::ExtraButton11;
+ break;
+ case 15:
+ m_buttons |= Qt::ExtraButton12;
+ break;
+ case 16:
+ m_buttons |= Qt::ExtraButton13;
+ break;
+ default:
+ m_buttons |= Qt::MiddleButton;
+ break;
+ }
[self handleMouseEvent:theEvent];
}
@@ -340,7 +411,53 @@ static QTouchDevice *touchDevice = 0;
- (void)otherMouseUp:(NSEvent *)theEvent
{
- m_buttons &= QFlag(~int(Qt::MiddleButton));
+ switch ([theEvent buttonNumber]) {
+ case 3:
+ m_buttons &= QFlag(~int(Qt::MiddleButton));
+ break;
+ case 4:
+ m_buttons &= QFlag(~int(Qt::ExtraButton1)); // AKA Qt::BackButton
+ break;
+ case 5:
+ m_buttons &= QFlag(~int(Qt::ExtraButton2)); // AKA Qt::ForwardButton
+ break;
+ case 6:
+ m_buttons &= QFlag(~int(Qt::ExtraButton3));
+ break;
+ case 7:
+ m_buttons &= QFlag(~int(Qt::ExtraButton4));
+ break;
+ case 8:
+ m_buttons &= QFlag(~int(Qt::ExtraButton5));
+ break;
+ case 9:
+ m_buttons &= QFlag(~int(Qt::ExtraButton6));
+ break;
+ case 10:
+ m_buttons &= QFlag(~int(Qt::ExtraButton7));
+ break;
+ case 11:
+ m_buttons &= QFlag(~int(Qt::ExtraButton8));
+ break;
+ case 12:
+ m_buttons &= QFlag(~int(Qt::ExtraButton9));
+ break;
+ case 13:
+ m_buttons &= QFlag(~int(Qt::ExtraButton10));
+ break;
+ case 14:
+ m_buttons &= QFlag(~int(Qt::ExtraButton11));
+ break;
+ case 15:
+ m_buttons &= QFlag(~int(Qt::ExtraButton12));
+ break;
+ case 16:
+ m_buttons &= QFlag(~int(Qt::ExtraButton13));
+ break;
+ default:
+ m_buttons &= QFlag(~int(Qt::MiddleButton));
+ break;
+ }
[self handleMouseEvent:theEvent];
}
@@ -467,12 +584,228 @@ static QTouchDevice *touchDevice = 0;
- (void)keyDown:(NSEvent *)theEvent
{
- [self handleKeyEvent : theEvent eventType :int(QEvent::KeyPress)];
+ QObject *fo = QGuiApplication::focusObject();
+ m_keyEventsAccepted = false;
+ if (fo) {
+ QInputMethodQueryEvent queryEvent(Qt::ImHints);
+ if (QCoreApplication::sendEvent(fo, &queryEvent)) {
+ Qt::InputMethodHints hints = static_cast<Qt::InputMethodHints>(queryEvent.value(Qt::ImHints).toUInt());
+ if (!(hints & Qt::ImhDigitsOnly || hints & Qt::ImhFormattedNumbersOnly || hints & Qt::ImhHiddenText)) {
+ [self interpretKeyEvents:[NSArray arrayWithObject: theEvent]];
+ }
+ }
+ }
+
+ if (!m_keyEventsAccepted && m_composingText.isEmpty()) {
+ [self handleKeyEvent : theEvent eventType :int(QEvent::KeyPress)];
+ }
}
- (void)keyUp:(NSEvent *)theEvent
{
- [self handleKeyEvent : theEvent eventType :int(QEvent::KeyRelease)];
+ if (!m_keyEventsAccepted && m_composingText.isEmpty()) {
+ [self handleKeyEvent : theEvent eventType :int(QEvent::KeyRelease)];
+ }
+}
+
+- (void) doCommandBySelector:(SEL)aSelector
+{
+ [self tryToPerform:aSelector with:self];
+}
+
+- (void) insertText:(id)aString
+{
+ QString commitString;
+ if ([aString length]) {
+ if ([aString isKindOfClass:[NSAttributedString class]]) {
+ commitString = QCFString::toQString(reinterpret_cast<CFStringRef>([aString string]));
+ } else {
+ commitString = QCFString::toQString(reinterpret_cast<CFStringRef>(aString));
+ };
+ }
+ QObject *fo = QGuiApplication::focusObject();
+ if (fo) {
+ QInputMethodEvent e;
+ e.setCommitString(commitString);
+ QCoreApplication::sendEvent(fo, &e);
+ m_keyEventsAccepted = true;
+ }
+
+ m_composingText.clear();
+ }
+
+- (void) setMarkedText:(id)aString selectedRange:(NSRange)selRange
+{
+ QString preeditString;
+
+ QList<QInputMethodEvent::Attribute> attrs;
+ attrs<<QInputMethodEvent::Attribute(QInputMethodEvent::Cursor, selRange.location + selRange.length, 1, QVariant());
+
+ if ([aString isKindOfClass:[NSAttributedString class]]) {
+ // Preedit string has attribution
+ preeditString = QCFString::toQString(reinterpret_cast<CFStringRef>([aString string]));
+ int composingLength = preeditString.length();
+ int index = 0;
+ // Create attributes for individual sections of preedit text
+ while (index < composingLength) {
+ NSRange effectiveRange;
+ NSRange range = NSMakeRange(index, composingLength-index);
+ NSDictionary *attributes = [aString attributesAtIndex:index
+ longestEffectiveRange:&effectiveRange
+ inRange:range];
+ NSNumber *underlineStyle = [attributes objectForKey:NSUnderlineStyleAttributeName];
+ if (underlineStyle) {
+ QColor clr (Qt::black);
+ NSColor *color = [attributes objectForKey:NSUnderlineColorAttributeName];
+ if (color) {
+ clr = qt_mac_toQColor(color);
+ }
+ QTextCharFormat format;
+ format.setFontUnderline(true);
+ format.setUnderlineColor(clr);
+ attrs<<QInputMethodEvent::Attribute(QInputMethodEvent::TextFormat,
+ effectiveRange.location,
+ effectiveRange.length,
+ format);
+ }
+ index = effectiveRange.location + effectiveRange.length;
+ }
+ } else {
+ // No attributes specified, take only the preedit text.
+ preeditString = QCFString::toQString(reinterpret_cast<CFStringRef>(aString));
+ }
+
+ if (attrs.isEmpty()) {
+ QTextCharFormat format;
+ format.setFontUnderline(true);
+ attrs<<QInputMethodEvent::Attribute(QInputMethodEvent::TextFormat,
+ 0, preeditString.length(), format);
+ }
+
+ m_composingText = preeditString;
+
+ QObject *fo = QGuiApplication::focusObject();
+ if (fo) {
+ QInputMethodEvent e(preeditString, attrs);
+ QCoreApplication::sendEvent(fo, &e);
+ m_keyEventsAccepted = true;
+ }
+}
+
+- (void) unmarkText
+{
+ if (!m_composingText.isEmpty()) {
+ QObject *fo = QGuiApplication::focusObject();
+ if (fo) {
+ QInputMethodEvent e;
+ e.setCommitString(m_composingText);
+ QCoreApplication::sendEvent(fo, &e);
+ }
+ }
+ m_composingText.clear();
+}
+
+- (BOOL) hasMarkedText
+{
+ return (m_composingText.isEmpty() ? NO: YES);
+}
+
+- (NSInteger) conversationIdentifier
+{
+ return (NSInteger)self;
+}
+
+- (NSAttributedString *) attributedSubstringFromRange:(NSRange)theRange
+{
+ QObject *fo = QGuiApplication::focusObject();
+ if (!fo)
+ return nil;
+ QInputMethodQueryEvent queryEvent(Qt::ImCurrentSelection);
+ if (!QCoreApplication::sendEvent(fo, &queryEvent))
+ return nil;
+
+ QString selectedText = queryEvent.value(Qt::ImCurrentSelection).toString();
+ if (selectedText.isEmpty())
+ return nil;
+
+ QCFString string(selectedText.mid(theRange.location, theRange.length));
+ const NSString *tmpString = reinterpret_cast<const NSString *>((CFStringRef)string);
+ return [[[NSAttributedString alloc] initWithString:const_cast<NSString *>(tmpString)] autorelease];
+}
+
+- (NSRange) markedRange
+{
+ NSRange range;
+ if (!m_composingText.isEmpty()) {
+ range.location = 0;
+ range.length = m_composingText.length();
+ } else {
+ range.location = NSNotFound;
+ range.length = 0;
+ }
+ return range;
+}
+
+
+- (NSRange) selectedRange
+{
+ NSRange selRange = {NSNotFound, 0};
+ selRange.location = NSNotFound;
+ selRange.length = 0;
+
+ QObject *fo = QGuiApplication::focusObject();
+ if (!fo)
+ return selRange;
+ QInputMethodQueryEvent queryEvent(Qt::ImCurrentSelection);
+ if (!QCoreApplication::sendEvent(fo, &queryEvent))
+ return selRange;
+ QString selectedText = queryEvent.value(Qt::ImCurrentSelection).toString();
+
+ if (!selectedText.isEmpty()) {
+ selRange.location = 0;
+ selRange.length = selectedText.length();
+ }
+ return selRange;
+}
+
+- (NSRect) firstRectForCharacterRange:(NSRange)theRange
+{
+ Q_UNUSED(theRange);
+ QObject *fo = QGuiApplication::focusObject();
+ if (!fo)
+ return NSZeroRect;
+
+ if (!m_window)
+ return NSZeroRect;
+
+ // The returned rect is always based on the internal cursor.
+ QRect mr = qApp->inputMethod()->cursorRectangle().toRect();
+ QPoint mp = m_window->mapToGlobal(mr.bottomLeft());
+
+ NSRect rect;
+ rect.origin.x = mp.x();
+ rect.origin.y = qt_mac_flipYCoordinate(mp.y());
+ rect.size.width = mr.width();
+ rect.size.height = mr.height();
+ return rect;
+}
+
+- (NSUInteger)characterIndexForPoint:(NSPoint)thePoint
+{
+ // We dont support cursor movements using mouse while composing.
+ Q_UNUSED(thePoint);
+ return NSNotFound;
+}
+
+- (NSArray*) validAttributesForMarkedText
+{
+ QObject *fo = QGuiApplication::focusObject();
+ if (!fo)
+ return nil;
+
+ // Support only underline color/style.
+ return [NSArray arrayWithObjects:NSUnderlineColorAttributeName,
+ NSUnderlineStyleAttributeName, nil];
}
-(void)registerDragTypes
diff --git a/src/plugins/platforms/cocoa/qnswindowdelegate.mm b/src/plugins/platforms/cocoa/qnswindowdelegate.mm
index a0e98e0ed1..2548fb4a9d 100644
--- a/src/plugins/platforms/cocoa/qnswindowdelegate.mm
+++ b/src/plugins/platforms/cocoa/qnswindowdelegate.mm
@@ -64,6 +64,14 @@
}
}
+- (void)windowWillMove:(NSNotification *)notification
+{
+ Q_UNUSED(notification);
+ if (m_cocoaWindow) {
+ m_cocoaWindow->windowWillMove();
+ }
+}
+
- (void)windowDidMove:(NSNotification *)notification
{
Q_UNUSED(notification);
diff --git a/src/plugins/platforms/cocoa/qpaintengine_mac.mm b/src/plugins/platforms/cocoa/qpaintengine_mac.mm
new file mode 100644
index 0000000000..8b8445c995
--- /dev/null
+++ b/src/plugins/platforms/cocoa/qpaintengine_mac.mm
@@ -0,0 +1,1788 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this
+** file. Please review the following information to ensure the GNU Lesser
+** General Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qpaintengine_mac_p.h"
+#include "qprintengine_mac_p.h"
+
+#include <qbitmap.h>
+#include <qpaintdevice.h>
+#include <qpainterpath.h>
+#include <qpixmapcache.h>
+#include <private/qpaintengine_raster_p.h>
+#include <qprinter.h>
+#include <qstack.h>
+#include <qtextcodec.h>
+#include <qwidget.h>
+#include <qvarlengtharray.h>
+#include <qdebug.h>
+#include <qcoreapplication.h>
+#include <qmath.h>
+
+#include <QtGui/qplatformpixmap_qpa.h>
+
+#include <private/qfont_p.h>
+#include <private/qfontengine_p.h>
+#include <private/qfontengine_coretext_p.h>
+#include <private/qnumeric_p.h>
+#include <private/qpainter_p.h>
+#include <private/qpainterpath_p.h>
+#include <private/qtextengine_p.h>
+#include <private/qwidget_p.h>
+
+#include "qcocoahelpers.h"
+
+#include <string.h>
+
+QT_BEGIN_NAMESPACE
+
+extern int qt_antialiasing_threshold; // from qcoretextfontdatabase.mm
+
+/*****************************************************************************
+ QCoreGraphicsPaintEngine utility functions
+ *****************************************************************************/
+
+void qt_mac_clip_cg(CGContextRef hd, const QRegion &rgn, CGAffineTransform *orig_xform)
+{
+ CGAffineTransform old_xform = CGAffineTransformIdentity;
+ if (orig_xform) { //setup xforms
+ old_xform = CGContextGetCTM(hd);
+ CGContextConcatCTM(hd, CGAffineTransformInvert(old_xform));
+ CGContextConcatCTM(hd, *orig_xform);
+ }
+
+ //do the clipping
+ CGContextBeginPath(hd);
+ if (rgn.isEmpty()) {
+ CGContextAddRect(hd, CGRectMake(0, 0, 0, 0));
+ } else {
+#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5)
+ if (QSysInfo::MacintoshVersion >= QSysInfo::MV_10_5) {
+ QCFType<HIMutableShapeRef> shape = qt_mac_QRegionToHIMutableShape(rgn);
+ Q_ASSERT(!HIShapeIsEmpty(shape));
+ HIShapeReplacePathInCGContext(shape, hd);
+ } else
+#endif
+ {
+ QVector<QRect> rects = rgn.rects();
+ const int count = rects.size();
+ for (int i = 0; i < count; i++) {
+ const QRect &r = rects[i];
+ CGRect mac_r = CGRectMake(r.x(), r.y(), r.width(), r.height());
+ CGContextAddRect(hd, mac_r);
+ }
+ }
+
+ }
+ CGContextClip(hd);
+
+ if (orig_xform) {//reset xforms
+ CGContextConcatCTM(hd, CGAffineTransformInvert(CGContextGetCTM(hd)));
+ CGContextConcatCTM(hd, old_xform);
+ }
+}
+
+CGColorSpaceRef qt_mac_colorSpaceForDeviceType(const QPaintDevice *paintDevice)
+{
+ bool isWidget = (paintDevice->devType() == QInternal::Widget);
+ return QCoreGraphicsPaintEngine::macDisplayColorSpace(isWidget ? static_cast<const QWidget *>(paintDevice)
+ : 0);
+}
+
+// Implemented for qt_mac_p.h
+QMacCGContext::QMacCGContext(QPainter *p)
+{
+ QPaintEngine *pe = p->paintEngine();
+ if (pe->type() == QPaintEngine::MacPrinter)
+ pe = static_cast<QMacPrintEngine*>(pe)->paintEngine();
+ pe->syncState();
+ context = 0;
+ if (pe->type() == QPaintEngine::CoreGraphics)
+ context = static_cast<QCoreGraphicsPaintEngine*>(pe)->handle();
+
+ int devType = p->device()->devType();
+ if (pe->type() == QPaintEngine::Raster
+ && (devType == QInternal::Widget || devType == QInternal::Pixmap || devType == QInternal::Image)) {
+
+ CGColorSpaceRef colorspace = qt_mac_colorSpaceForDeviceType(pe->paintDevice());
+ uint flags = kCGImageAlphaPremultipliedFirst;
+#ifdef kCGBitmapByteOrder32Host //only needed because CGImage.h added symbols in the minor version
+ flags |= kCGBitmapByteOrder32Host;
+#endif
+ const QImage *image = (const QImage *) pe->paintDevice();
+
+ context = CGBitmapContextCreate((void *) image->bits(), image->width(), image->height(),
+ 8, image->bytesPerLine(), colorspace, flags);
+
+ CGContextTranslateCTM(context, 0, image->height());
+ CGContextScaleCTM(context, 1, -1);
+
+ if (devType == QInternal::Widget) {
+ QRegion clip = p->paintEngine()->systemClip();
+ QTransform native = p->deviceTransform();
+ QTransform logical = p->combinedTransform();
+
+ if (p->hasClipping()) {
+ QRegion r = p->clipRegion();
+ r.translate(native.dx(), native.dy());
+ if (clip.isEmpty())
+ clip = r;
+ else
+ clip &= r;
+ }
+ qt_mac_clip_cg(context, clip, 0);
+
+ CGContextTranslateCTM(context, native.dx(), native.dy());
+ }
+ } else {
+ CGContextRetain(context);
+ }
+}
+
+void qt_mac_cgimage_data_free(void *, const void *memoryToFree, size_t)
+{
+ free(const_cast<void *>(memoryToFree));
+}
+
+CGImageRef qt_mac_create_imagemask(const QPixmap &pixmap, const QRectF &sr)
+{
+ QImage image = pixmap.toImage();
+ if (image.format() != QImage::Format_ARGB32_Premultiplied)
+ image = image.convertToFormat(QImage::Format_ARGB32_Premultiplied);
+
+ const int sx = qRound(sr.x()), sy = qRound(sr.y()), sw = qRound(sr.width()), sh = qRound(sr.height());
+ const int sbpr = image.bytesPerLine();
+ const uint nbytes = sw * sh;
+ // alpha is always 255 for bitmaps, ignore it in this case.
+ const quint32 mask = pixmap.depth() == 1 ? 0x00ffffff : 0xffffffff;
+ quint8 *dptr = static_cast<quint8 *>(malloc(nbytes));
+ quint32 *sptr = reinterpret_cast<quint32 *>(image.scanLine(0)), *srow;
+ for (int y = sy, offset=0; y < sh; ++y) {
+ srow = sptr + (y * (sbpr / 4));
+ for (int x = sx; x < sw; ++x)
+ *(dptr+(offset++)) = (*(srow+x) & mask) ? 255 : 0;
+ }
+ QCFType<CGDataProviderRef> provider = CGDataProviderCreateWithData(0, dptr, nbytes, qt_mac_cgimage_data_free);
+ return CGImageMaskCreate(sw, sh, 8, 8, nbytes / sh, provider, 0, 0);
+}
+
+//conversion
+inline static float qt_mac_convert_color_to_cg(int c) { return ((float)c * 1000 / 255) / 1000; }
+inline static int qt_mac_convert_color_from_cg(float c) { return qRound(c * 255); }
+CGAffineTransform qt_mac_convert_transform_to_cg(const QTransform &t) {
+ return CGAffineTransformMake(t.m11(), t.m12(), t.m21(), t.m22(), t.dx(), t.dy());
+}
+
+/*! \internal
+
+ Returns the CoreGraphics CGContextRef of the paint device. 0 is
+ returned if it can't be obtained. It is the caller's responsibility to
+ CGContextRelease the context when finished using it.
+
+ \warning This function is only available on Mac OS X.
+ \warning This function is duplicated in qmacstyle_mac.mm
+*/
+CGContextRef qt_mac_cg_context(const QPaintDevice *pdev)
+{
+ if (pdev->devType() == QInternal::Pixmap) {
+ const QPixmap *pm = static_cast<const QPixmap*>(pdev);
+ CGColorSpaceRef colorspace = qt_mac_colorSpaceForDeviceType(pdev);
+ uint flags = kCGImageAlphaPremultipliedFirst;
+ flags |= kCGBitmapByteOrder32Host;
+ CGContextRef ret = 0;
+
+ QPlatformPixmap *data = const_cast<QPixmap *>(pm)->data_ptr().data();
+ if (data->classId() == QPlatformPixmap::RasterClass) {
+ QImage *image = data->buffer();
+ ret = CGBitmapContextCreate(image->bits(), image->width(), image->height(),
+ 8, image->bytesPerLine(), colorspace, flags);
+ } else {
+ qDebug() << "qt_mac_cg_context: Unsupported pixmap class";
+ }
+
+ CGContextTranslateCTM(ret, 0, pm->height());
+ CGContextScaleCTM(ret, 1, -1);
+ return ret;
+ } else if (pdev->devType() == QInternal::Widget) {
+ //CGContextRef ret = static_cast<CGContextRef>(static_cast<const QWidget *>(pdev)->macCGHandle());
+ ///CGContextRetain(ret);
+ //return ret;
+ qDebug() << "qt_mac_cg_context: not implemented: Widget class";
+ return 0;
+ }
+ return 0;
+}
+
+inline static QCFType<CGColorRef> cgColorForQColor(const QColor &col, QPaintDevice *pdev)
+{
+ CGFloat components[] = {
+ qt_mac_convert_color_to_cg(col.red()),
+ qt_mac_convert_color_to_cg(col.green()),
+ qt_mac_convert_color_to_cg(col.blue()),
+ qt_mac_convert_color_to_cg(col.alpha())
+ };
+ return CGColorCreate(qt_mac_colorSpaceForDeviceType(pdev), components);
+}
+
+// There's architectural problems with using native gradients
+// on the Mac at the moment, so disable them.
+// #define QT_MAC_USE_NATIVE_GRADIENTS
+
+#ifdef QT_MAC_USE_NATIVE_GRADIENTS
+static bool drawGradientNatively(const QGradient *gradient)
+{
+ return gradient->spread() == QGradient::PadSpread;
+}
+
+// gradiant callback
+static void qt_mac_color_gradient_function(void *info, const CGFloat *in, CGFloat *out)
+{
+ QBrush *brush = static_cast<QBrush *>(info);
+ Q_ASSERT(brush && brush->gradient());
+
+ const QGradientStops stops = brush->gradient()->stops();
+ const int n = stops.count();
+ Q_ASSERT(n >= 1);
+ const QGradientStop *begin = stops.constBegin();
+ const QGradientStop *end = begin + n;
+
+ qreal p = in[0];
+ const QGradientStop *i = begin;
+ while (i != end && i->first < p)
+ ++i;
+
+ QRgb c;
+ if (i == begin) {
+ c = begin->second.rgba();
+ } else if (i == end) {
+ c = (end - 1)->second.rgba();
+ } else {
+ const QGradientStop &s1 = *(i - 1);
+ const QGradientStop &s2 = *i;
+ qreal p1 = s1.first;
+ qreal p2 = s2.first;
+ QRgb c1 = s1.second.rgba();
+ QRgb c2 = s2.second.rgba();
+ int idist = 256 * (p - p1) / (p2 - p1);
+ int dist = 256 - idist;
+ c = qRgba(INTERPOLATE_PIXEL_256(qRed(c1), dist, qRed(c2), idist),
+ INTERPOLATE_PIXEL_256(qGreen(c1), dist, qGreen(c2), idist),
+ INTERPOLATE_PIXEL_256(qBlue(c1), dist, qBlue(c2), idist),
+ INTERPOLATE_PIXEL_256(qAlpha(c1), dist, qAlpha(c2), idist));
+ }
+
+ out[0] = qt_mac_convert_color_to_cg(qRed(c));
+ out[1] = qt_mac_convert_color_to_cg(qGreen(c));
+ out[2] = qt_mac_convert_color_to_cg(qBlue(c));
+ out[3] = qt_mac_convert_color_to_cg(qAlpha(c));
+}
+#endif
+
+//clipping handling
+void QCoreGraphicsPaintEnginePrivate::resetClip()
+{
+ static bool inReset = false;
+ if (inReset)
+ return;
+ inReset = true;
+
+ CGAffineTransform old_xform = CGContextGetCTM(hd);
+
+ //setup xforms
+ CGContextConcatCTM(hd, CGAffineTransformInvert(old_xform));
+ while (stackCount > 0) {
+ restoreGraphicsState();
+ }
+ saveGraphicsState();
+ inReset = false;
+ //reset xforms
+ CGContextConcatCTM(hd, CGAffineTransformInvert(CGContextGetCTM(hd)));
+ CGContextConcatCTM(hd, old_xform);
+}
+
+static CGRect qt_mac_compose_rect(const QRectF &r, float off=0)
+{
+ return CGRectMake(r.x()+off, r.y()+off, r.width(), r.height());
+}
+
+static CGMutablePathRef qt_mac_compose_path(const QPainterPath &p, float off=0)
+{
+ CGMutablePathRef ret = CGPathCreateMutable();
+ QPointF startPt;
+ for (int i=0; i<p.elementCount(); ++i) {
+ const QPainterPath::Element &elm = p.elementAt(i);
+ switch (elm.type) {
+ case QPainterPath::MoveToElement:
+ if (i > 0
+ && p.elementAt(i - 1).x == startPt.x()
+ && p.elementAt(i - 1).y == startPt.y())
+ CGPathCloseSubpath(ret);
+ startPt = QPointF(elm.x, elm.y);
+ CGPathMoveToPoint(ret, 0, elm.x+off, elm.y+off);
+ break;
+ case QPainterPath::LineToElement:
+ CGPathAddLineToPoint(ret, 0, elm.x+off, elm.y+off);
+ break;
+ case QPainterPath::CurveToElement:
+ Q_ASSERT(p.elementAt(i+1).type == QPainterPath::CurveToDataElement);
+ Q_ASSERT(p.elementAt(i+2).type == QPainterPath::CurveToDataElement);
+ CGPathAddCurveToPoint(ret, 0,
+ elm.x+off, elm.y+off,
+ p.elementAt(i+1).x+off, p.elementAt(i+1).y+off,
+ p.elementAt(i+2).x+off, p.elementAt(i+2).y+off);
+ i+=2;
+ break;
+ default:
+ qFatal("QCoreGraphicsPaintEngine::drawPath(), unhandled type: %d", elm.type);
+ break;
+ }
+ }
+ if (!p.isEmpty()
+ && p.elementAt(p.elementCount() - 1).x == startPt.x()
+ && p.elementAt(p.elementCount() - 1).y == startPt.y())
+ CGPathCloseSubpath(ret);
+ return ret;
+}
+
+CGColorSpaceRef QCoreGraphicsPaintEngine::m_genericColorSpace = 0;
+QHash<CGDirectDisplayID, CGColorSpaceRef> QCoreGraphicsPaintEngine::m_displayColorSpaceHash;
+bool QCoreGraphicsPaintEngine::m_postRoutineRegistered = false;
+
+CGColorSpaceRef QCoreGraphicsPaintEngine::macGenericColorSpace()
+{
+#if 0
+ if (!m_genericColorSpace) {
+#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4
+ if (QSysInfo::MacintoshVersion >= QSysInfo::MV_10_4) {
+ m_genericColorSpace = CGColorSpaceCreateWithName(kCGColorSpaceGenericRGB);
+ } else
+#endif
+ {
+ m_genericColorSpace = CGColorSpaceCreateDeviceRGB();
+ }
+ if (!m_postRoutineRegistered) {
+ m_postRoutineRegistered = true;
+ qAddPostRoutine(QCoreGraphicsPaintEngine::cleanUpMacColorSpaces);
+ }
+ }
+ return m_genericColorSpace;
+#else
+ // Just return the main display colorspace for the moment.
+ return macDisplayColorSpace();
+#endif
+}
+
+/*
+ Ideally, we should pass the widget in here, and use CGGetDisplaysWithRect() etc.
+ to support multiple displays correctly.
+*/
+CGColorSpaceRef QCoreGraphicsPaintEngine::macDisplayColorSpace(const QWidget *widget)
+{
+ CGColorSpaceRef colorSpace;
+
+ CGDirectDisplayID displayID;
+ CMProfileRef displayProfile = 0;
+ if (widget == 0) {
+ displayID = CGMainDisplayID();
+ } else {
+ const QRect &qrect = widget->window()->geometry();
+ CGRect rect = CGRectMake(qrect.x(), qrect.y(), qrect.width(), qrect.height());
+ CGDisplayCount throwAway;
+ CGDisplayErr dErr = CGGetDisplaysWithRect(rect, 1, &displayID, &throwAway);
+ if (dErr != kCGErrorSuccess)
+ return macDisplayColorSpace(0); // fall back on main display
+ }
+ if ((colorSpace = m_displayColorSpaceHash.value(displayID)))
+ return colorSpace;
+
+ CMError err = CMGetProfileByAVID((CMDisplayIDType)displayID, &displayProfile);
+ if (err == noErr) {
+ colorSpace = CGColorSpaceCreateWithPlatformColorSpace(displayProfile);
+ } else if (widget) {
+ return macDisplayColorSpace(0); // fall back on main display
+ }
+
+ if (colorSpace == 0)
+ colorSpace = CGColorSpaceCreateDeviceRGB();
+
+ m_displayColorSpaceHash.insert(displayID, colorSpace);
+ CMCloseProfile(displayProfile);
+ if (!m_postRoutineRegistered) {
+ m_postRoutineRegistered = true;
+ qAddPostRoutine(QCoreGraphicsPaintEngine::cleanUpMacColorSpaces);
+ }
+ return colorSpace;
+}
+
+void QCoreGraphicsPaintEngine::cleanUpMacColorSpaces()
+{
+ if (m_genericColorSpace) {
+ CFRelease(m_genericColorSpace);
+ m_genericColorSpace = 0;
+ }
+ QHash<CGDirectDisplayID, CGColorSpaceRef>::const_iterator it = m_displayColorSpaceHash.constBegin();
+ while (it != m_displayColorSpaceHash.constEnd()) {
+ if (it.value())
+ CFRelease(it.value());
+ ++it;
+ }
+ m_displayColorSpaceHash.clear();
+}
+
+//pattern handling (tiling)
+#if 1
+# define QMACPATTERN_MASK_MULTIPLIER 32
+#else
+# define QMACPATTERN_MASK_MULTIPLIER 1
+#endif
+class QMacPattern
+{
+public:
+ QMacPattern() : as_mask(false), pdev(0), image(0) { data.bytes = 0; }
+ ~QMacPattern() { CGImageRelease(image); }
+ int width() {
+ if (image)
+ return CGImageGetWidth(image);
+ if (data.bytes)
+ return 8*QMACPATTERN_MASK_MULTIPLIER;
+ return data.pixmap.width();
+ }
+ int height() {
+ if (image)
+ return CGImageGetHeight(image);
+ if (data.bytes)
+ return 8*QMACPATTERN_MASK_MULTIPLIER;
+ return data.pixmap.height();
+ }
+
+ //input
+ QColor foreground;
+ bool as_mask;
+ struct {
+ QPixmap pixmap;
+ const uchar *bytes;
+ } data;
+ QPaintDevice *pdev;
+ //output
+ CGImageRef image;
+};
+static void qt_mac_draw_pattern(void *info, CGContextRef c)
+{
+ QMacPattern *pat = (QMacPattern*)info;
+ int w = 0, h = 0;
+ bool isBitmap = (pat->data.pixmap.depth() == 1);
+ if (!pat->image) { //lazy cache
+ if (pat->as_mask) {
+ Q_ASSERT(pat->data.bytes);
+ w = h = 8;
+#if (QMACPATTERN_MASK_MULTIPLIER == 1)
+ CGDataProviderRef provider = CGDataProviderCreateWithData(0, pat->data.bytes, w*h, 0);
+ pat->image = CGImageMaskCreate(w, h, 1, 1, 1, provider, 0, false);
+ CGDataProviderRelease(provider);
+#else
+ const int numBytes = (w*h)/sizeof(uchar);
+ uchar xor_bytes[numBytes];
+ for (int i = 0; i < numBytes; ++i)
+ xor_bytes[i] = pat->data.bytes[i] ^ 0xFF;
+ CGDataProviderRef provider = CGDataProviderCreateWithData(0, xor_bytes, w*h, 0);
+ CGImageRef swatch = CGImageMaskCreate(w, h, 1, 1, 1, provider, 0, false);
+ CGDataProviderRelease(provider);
+
+ const QColor c0(0, 0, 0, 0), c1(255, 255, 255, 255);
+ QPixmap pm(w*QMACPATTERN_MASK_MULTIPLIER, h*QMACPATTERN_MASK_MULTIPLIER);
+ pm.fill(c0);
+ CGContextRef pm_ctx = qt_mac_cg_context(&pm);
+ CGContextSetFillColorWithColor(c, cgColorForQColor(c1, pat->pdev));
+ CGRect rect = CGRectMake(0, 0, w, h);
+ for (int x = 0; x < QMACPATTERN_MASK_MULTIPLIER; ++x) {
+ rect.origin.x = x * w;
+ for (int y = 0; y < QMACPATTERN_MASK_MULTIPLIER; ++y) {
+ rect.origin.y = y * h;
+ qt_mac_drawCGImage(pm_ctx, &rect, swatch);
+ }
+ }
+ pat->image = qt_mac_create_imagemask(pm, pm.rect());
+ CGImageRelease(swatch);
+ CGContextRelease(pm_ctx);
+ w *= QMACPATTERN_MASK_MULTIPLIER;
+ h *= QMACPATTERN_MASK_MULTIPLIER;
+#endif
+ } else {
+ w = pat->data.pixmap.width();
+ h = pat->data.pixmap.height();
+ if (isBitmap)
+ pat->image = qt_mac_create_imagemask(pat->data.pixmap, pat->data.pixmap.rect());
+ else
+ pat->image = qt_mac_image_to_cgimage(pat->data.pixmap.toImage());
+ }
+ } else {
+ w = CGImageGetWidth(pat->image);
+ h = CGImageGetHeight(pat->image);
+ }
+
+ //draw
+ bool needRestore = false;
+ if (CGImageIsMask(pat->image)) {
+ CGContextSaveGState(c);
+ CGContextSetFillColorWithColor(c, cgColorForQColor(pat->foreground, pat->pdev));
+ }
+ CGRect rect = CGRectMake(0, 0, w, h);
+ qt_mac_drawCGImage(c, &rect, pat->image);
+ if (needRestore)
+ CGContextRestoreGState(c);
+}
+static void qt_mac_dispose_pattern(void *info)
+{
+ QMacPattern *pat = (QMacPattern*)info;
+ delete pat;
+}
+
+/*****************************************************************************
+ QCoreGraphicsPaintEngine member functions
+ *****************************************************************************/
+
+inline static QPaintEngine::PaintEngineFeatures qt_mac_cg_features()
+{
+ return QPaintEngine::PaintEngineFeatures(QPaintEngine::AllFeatures & ~QPaintEngine::PaintOutsidePaintEvent
+ & ~QPaintEngine::PerspectiveTransform
+ & ~QPaintEngine::ConicalGradientFill
+ & ~QPaintEngine::LinearGradientFill
+ & ~QPaintEngine::RadialGradientFill
+ & ~QPaintEngine::BrushStroke);
+}
+
+QCoreGraphicsPaintEngine::QCoreGraphicsPaintEngine()
+: QPaintEngine(*(new QCoreGraphicsPaintEnginePrivate), qt_mac_cg_features())
+{
+}
+
+QCoreGraphicsPaintEngine::QCoreGraphicsPaintEngine(QPaintEnginePrivate &dptr)
+: QPaintEngine(dptr, qt_mac_cg_features())
+{
+}
+
+QCoreGraphicsPaintEngine::~QCoreGraphicsPaintEngine()
+{
+}
+
+bool
+QCoreGraphicsPaintEngine::begin(QPaintDevice *pdev)
+{
+ Q_D(QCoreGraphicsPaintEngine);
+ if (isActive()) { // already active painting
+ qWarning("QCoreGraphicsPaintEngine::begin: Painter already active");
+ return false;
+ }
+
+ //initialization
+ d->pdev = pdev;
+ d->complexXForm = false;
+ d->cosmeticPen = QCoreGraphicsPaintEnginePrivate::CosmeticSetPenWidth;
+ d->cosmeticPenSize = 1;
+ d->current.clipEnabled = false;
+ d->pixelSize = QPoint(1,1);
+ d->hd = qt_mac_cg_context(pdev);
+ if (d->hd) {
+ d->saveGraphicsState();
+ d->orig_xform = CGContextGetCTM(d->hd);
+ if (d->shading) {
+ CGShadingRelease(d->shading);
+ d->shading = 0;
+ }
+ d->setClip(0); //clear the context's clipping
+ }
+
+ setActive(true);
+
+ if (d->pdev->devType() == QInternal::Widget) { // device is a widget
+ QWidget *w = (QWidget*)d->pdev;
+ bool unclipped = w->testAttribute(Qt::WA_PaintUnclipped);
+
+ if ((w->windowType() == Qt::Desktop)) {
+ if (!unclipped)
+ qWarning("QCoreGraphicsPaintEngine::begin: Does not support clipped desktop on Mac OS X");
+ // ## need to do [qt_mac_window_for(w) makeKeyAndOrderFront]; (need to rename the file)
+ } else if (unclipped) {
+ qWarning("QCoreGraphicsPaintEngine::begin: Does not support unclipped painting");
+ }
+ } else if (d->pdev->devType() == QInternal::Pixmap) { // device is a pixmap
+ QPixmap *pm = (QPixmap*)d->pdev;
+ if (pm->isNull()) {
+ qWarning("QCoreGraphicsPaintEngine::begin: Cannot paint null pixmap");
+ end();
+ return false;
+ }
+ }
+
+ setDirty(QPaintEngine::DirtyPen);
+ setDirty(QPaintEngine::DirtyBrush);
+ setDirty(QPaintEngine::DirtyBackground);
+ setDirty(QPaintEngine::DirtyHints);
+ return true;
+}
+
+bool
+QCoreGraphicsPaintEngine::end()
+{
+ Q_D(QCoreGraphicsPaintEngine);
+ setActive(false);
+ if (d->pdev->devType() == QInternal::Widget && static_cast<QWidget*>(d->pdev)->windowType() == Qt::Desktop) {
+ // ### need to do [qt_mac_window_for(static_cast<QWidget *>(d->pdev)) orderOut]; (need to rename)
+ }
+ if (d->shading) {
+ CGShadingRelease(d->shading);
+ d->shading = 0;
+ }
+ d->pdev = 0;
+ if (d->hd) {
+ d->restoreGraphicsState();
+ CGContextSynchronize(d->hd);
+ CGContextRelease(d->hd);
+ d->hd = 0;
+ }
+ return true;
+}
+
+void
+QCoreGraphicsPaintEngine::updateState(const QPaintEngineState &state)
+{
+ Q_D(QCoreGraphicsPaintEngine);
+ QPaintEngine::DirtyFlags flags = state.state();
+
+ if (flags & DirtyTransform)
+ updateMatrix(state.transform());
+
+ if (flags & DirtyClipEnabled) {
+ if (state.isClipEnabled())
+ updateClipPath(painter()->clipPath(), Qt::ReplaceClip);
+ else
+ updateClipPath(QPainterPath(), Qt::NoClip);
+ }
+
+ if (flags & DirtyClipPath) {
+ updateClipPath(state.clipPath(), state.clipOperation());
+ } else if (flags & DirtyClipRegion) {
+ updateClipRegion(state.clipRegion(), state.clipOperation());
+ }
+
+ // If the clip has changed we need to update all other states
+ // too, since they are included in the system context on OSX,
+ // and changing the clip resets that context back to scratch.
+ if (flags & (DirtyClipPath | DirtyClipRegion | DirtyClipEnabled))
+ flags |= AllDirty;
+
+ if (flags & DirtyPen)
+ updatePen(state.pen());
+ if (flags & (DirtyBrush|DirtyBrushOrigin))
+ updateBrush(state.brush(), state.brushOrigin());
+ if (flags & DirtyFont)
+ updateFont(state.font());
+ if (flags & DirtyOpacity)
+ updateOpacity(state.opacity());
+ if (flags & DirtyHints)
+ updateRenderHints(state.renderHints());
+ if (flags & DirtyCompositionMode)
+ updateCompositionMode(state.compositionMode());
+
+ if (flags & (DirtyPen | DirtyTransform)) {
+ if (!d->current.pen.isCosmetic()) {
+ d->cosmeticPen = QCoreGraphicsPaintEnginePrivate::CosmeticNone;
+ } else if (d->current.transform.m11() < d->current.transform.m22()-1.0 ||
+ d->current.transform.m11() > d->current.transform.m22()+1.0) {
+ d->cosmeticPen = QCoreGraphicsPaintEnginePrivate::CosmeticTransformPath;
+ d->cosmeticPenSize = d->adjustPenWidth(d->current.pen.widthF());
+ if (!d->cosmeticPenSize)
+ d->cosmeticPenSize = 1.0;
+ } else {
+ d->cosmeticPen = QCoreGraphicsPaintEnginePrivate::CosmeticSetPenWidth;
+ static const float sqrt2 = sqrt(2);
+ qreal width = d->current.pen.widthF();
+ if (!width)
+ width = 1;
+ d->cosmeticPenSize = sqrt(pow(d->pixelSize.y(), 2) + pow(d->pixelSize.x(), 2)) / sqrt2 * width;
+ }
+ }
+}
+
+void
+QCoreGraphicsPaintEngine::updatePen(const QPen &pen)
+{
+ Q_D(QCoreGraphicsPaintEngine);
+ Q_ASSERT(isActive());
+ d->current.pen = pen;
+ d->setStrokePen(pen);
+}
+
+void
+QCoreGraphicsPaintEngine::updateBrush(const QBrush &brush, const QPointF &brushOrigin)
+{
+ Q_D(QCoreGraphicsPaintEngine);
+ Q_ASSERT(isActive());
+ d->current.brush = brush;
+
+#ifdef QT_MAC_USE_NATIVE_GRADIENTS
+ // Quartz supports only pad spread
+ if (const QGradient *gradient = brush.gradient()) {
+ if (drawGradientNatively(gradient)) {
+ gccaps |= QPaintEngine::LinearGradientFill | QPaintEngine::RadialGradientFill;
+ } else {
+ gccaps &= ~(QPaintEngine::LinearGradientFill | QPaintEngine::RadialGradientFill);
+ }
+ }
+#endif
+
+ if (d->shading) {
+ CGShadingRelease(d->shading);
+ d->shading = 0;
+ }
+ d->setFillBrush(brushOrigin);
+}
+
+void
+QCoreGraphicsPaintEngine::updateOpacity(qreal opacity)
+{
+ Q_D(QCoreGraphicsPaintEngine);
+ CGContextSetAlpha(d->hd, opacity);
+}
+
+void
+QCoreGraphicsPaintEngine::updateFont(const QFont &)
+{
+ Q_D(QCoreGraphicsPaintEngine);
+ Q_ASSERT(isActive());
+ updatePen(d->current.pen);
+}
+
+void
+QCoreGraphicsPaintEngine::updateMatrix(const QTransform &transform)
+{
+ Q_D(QCoreGraphicsPaintEngine);
+ Q_ASSERT(isActive());
+
+ if (qt_is_nan(transform.m11()) || qt_is_nan(transform.m12()) || qt_is_nan(transform.m13())
+ || qt_is_nan(transform.m21()) || qt_is_nan(transform.m22()) || qt_is_nan(transform.m23())
+ || qt_is_nan(transform.m31()) || qt_is_nan(transform.m32()) || qt_is_nan(transform.m33()))
+ return;
+
+ d->current.transform = transform;
+ d->setTransform(transform.isIdentity() ? 0 : &transform);
+ d->complexXForm = (transform.m11() != 1 || transform.m22() != 1
+ || transform.m12() != 0 || transform.m21() != 0);
+ d->pixelSize = d->devicePixelSize(d->hd);
+}
+
+void
+QCoreGraphicsPaintEngine::updateClipPath(const QPainterPath &p, Qt::ClipOperation op)
+{
+ Q_D(QCoreGraphicsPaintEngine);
+ Q_ASSERT(isActive());
+ if (op == Qt::NoClip) {
+ if (d->current.clipEnabled) {
+ d->current.clipEnabled = false;
+ d->current.clip = QRegion();
+ d->setClip(0);
+ }
+ } else {
+ if (!d->current.clipEnabled)
+ op = Qt::ReplaceClip;
+ d->current.clipEnabled = true;
+ QRegion clipRegion(p.toFillPolygon().toPolygon(), p.fillRule());
+ if (op == Qt::ReplaceClip) {
+ d->current.clip = clipRegion;
+ d->setClip(0);
+ if (p.isEmpty()) {
+ CGRect rect = CGRectMake(0, 0, 0, 0);
+ CGContextClipToRect(d->hd, rect);
+ } else {
+ CGMutablePathRef path = qt_mac_compose_path(p);
+ CGContextBeginPath(d->hd);
+ CGContextAddPath(d->hd, path);
+ if (p.fillRule() == Qt::WindingFill)
+ CGContextClip(d->hd);
+ else
+ CGContextEOClip(d->hd);
+ CGPathRelease(path);
+ }
+ } else if (op == Qt::IntersectClip) {
+ d->current.clip = d->current.clip.intersected(clipRegion);
+ d->setClip(&d->current.clip);
+ }
+ }
+}
+
+void
+QCoreGraphicsPaintEngine::updateClipRegion(const QRegion &clipRegion, Qt::ClipOperation op)
+{
+ Q_D(QCoreGraphicsPaintEngine);
+ Q_ASSERT(isActive());
+ if (op == Qt::NoClip) {
+ d->current.clipEnabled = false;
+ d->current.clip = QRegion();
+ d->setClip(0);
+ } else {
+ if (!d->current.clipEnabled)
+ op = Qt::ReplaceClip;
+ d->current.clipEnabled = true;
+ if (op == Qt::IntersectClip)
+ d->current.clip = d->current.clip.intersected(clipRegion);
+ else if (op == Qt::ReplaceClip)
+ d->current.clip = clipRegion;
+ d->setClip(&d->current.clip);
+ }
+}
+
+void
+QCoreGraphicsPaintEngine::drawPath(const QPainterPath &p)
+{
+ Q_D(QCoreGraphicsPaintEngine);
+ Q_ASSERT(isActive());
+
+ if (state->compositionMode() == QPainter::CompositionMode_Destination)
+ return;
+
+ CGMutablePathRef path = qt_mac_compose_path(p);
+ uchar ops = QCoreGraphicsPaintEnginePrivate::CGStroke;
+ if (p.fillRule() == Qt::WindingFill)
+ ops |= QCoreGraphicsPaintEnginePrivate::CGFill;
+ else
+ ops |= QCoreGraphicsPaintEnginePrivate::CGEOFill;
+ CGContextBeginPath(d->hd);
+ d->drawPath(ops, path);
+ CGPathRelease(path);
+}
+
+void
+QCoreGraphicsPaintEngine::drawRects(const QRectF *rects, int rectCount)
+{
+ Q_D(QCoreGraphicsPaintEngine);
+ Q_ASSERT(isActive());
+
+ if (state->compositionMode() == QPainter::CompositionMode_Destination)
+ return;
+
+ for (int i=0; i<rectCount; ++i) {
+ QRectF r = rects[i];
+
+ CGMutablePathRef path = CGPathCreateMutable();
+ CGPathAddRect(path, 0, qt_mac_compose_rect(r));
+ d->drawPath(QCoreGraphicsPaintEnginePrivate::CGFill|QCoreGraphicsPaintEnginePrivate::CGStroke,
+ path);
+ CGPathRelease(path);
+ }
+}
+
+void
+QCoreGraphicsPaintEngine::drawPoints(const QPointF *points, int pointCount)
+{
+ Q_D(QCoreGraphicsPaintEngine);
+ Q_ASSERT(isActive());
+
+ if (state->compositionMode() == QPainter::CompositionMode_Destination)
+ return;
+
+ if (d->current.pen.capStyle() == Qt::FlatCap)
+ CGContextSetLineCap(d->hd, kCGLineCapSquare);
+
+ CGMutablePathRef path = CGPathCreateMutable();
+ for (int i=0; i < pointCount; i++) {
+ float x = points[i].x(), y = points[i].y();
+ CGPathMoveToPoint(path, 0, x, y);
+ CGPathAddLineToPoint(path, 0, x+0.001, y);
+ }
+
+ bool doRestore = false;
+ if (d->cosmeticPen == QCoreGraphicsPaintEnginePrivate::CosmeticNone && !(state->renderHints() & QPainter::Antialiasing)) {
+ //we don't want adjusted pens for point rendering
+ doRestore = true;
+ d->saveGraphicsState();
+ CGContextSetLineWidth(d->hd, d->current.pen.widthF());
+ }
+ d->drawPath(QCoreGraphicsPaintEnginePrivate::CGStroke, path);
+ if (doRestore)
+ d->restoreGraphicsState();
+ CGPathRelease(path);
+ if (d->current.pen.capStyle() == Qt::FlatCap)
+ CGContextSetLineCap(d->hd, kCGLineCapButt);
+}
+
+void
+QCoreGraphicsPaintEngine::drawEllipse(const QRectF &r)
+{
+ Q_D(QCoreGraphicsPaintEngine);
+ Q_ASSERT(isActive());
+
+ if (state->compositionMode() == QPainter::CompositionMode_Destination)
+ return;
+
+ CGMutablePathRef path = CGPathCreateMutable();
+ CGAffineTransform transform = CGAffineTransformMakeScale(r.width() / r.height(), 1);
+ CGPathAddArc(path, &transform,(r.x() + (r.width() / 2)) / (r.width() / r.height()),
+ r.y() + (r.height() / 2), r.height() / 2, 0, (2 * M_PI), false);
+ d->drawPath(QCoreGraphicsPaintEnginePrivate::CGFill | QCoreGraphicsPaintEnginePrivate::CGStroke,
+ path);
+ CGPathRelease(path);
+}
+
+void
+QCoreGraphicsPaintEngine::drawPolygon(const QPointF *points, int pointCount, PolygonDrawMode mode)
+{
+ Q_D(QCoreGraphicsPaintEngine);
+ Q_ASSERT(isActive());
+
+ if (state->compositionMode() == QPainter::CompositionMode_Destination)
+ return;
+
+ CGMutablePathRef path = CGPathCreateMutable();
+ CGPathMoveToPoint(path, 0, points[0].x(), points[0].y());
+ for (int x = 1; x < pointCount; ++x)
+ CGPathAddLineToPoint(path, 0, points[x].x(), points[x].y());
+ if (mode != PolylineMode && points[0] != points[pointCount-1])
+ CGPathAddLineToPoint(path, 0, points[0].x(), points[0].y());
+ uint op = QCoreGraphicsPaintEnginePrivate::CGStroke;
+ if (mode != PolylineMode)
+ op |= mode == OddEvenMode ? QCoreGraphicsPaintEnginePrivate::CGEOFill
+ : QCoreGraphicsPaintEnginePrivate::CGFill;
+ d->drawPath(op, path);
+ CGPathRelease(path);
+}
+
+void
+QCoreGraphicsPaintEngine::drawLines(const QLineF *lines, int lineCount)
+{
+ Q_D(QCoreGraphicsPaintEngine);
+ Q_ASSERT(isActive());
+
+ if (state->compositionMode() == QPainter::CompositionMode_Destination)
+ return;
+
+ CGMutablePathRef path = CGPathCreateMutable();
+ for (int i = 0; i < lineCount; i++) {
+ const QPointF start = lines[i].p1(), end = lines[i].p2();
+ CGPathMoveToPoint(path, 0, start.x(), start.y());
+ CGPathAddLineToPoint(path, 0, end.x(), end.y());
+ }
+ d->drawPath(QCoreGraphicsPaintEnginePrivate::CGStroke, path);
+ CGPathRelease(path);
+}
+
+void QCoreGraphicsPaintEngine::drawPixmap(const QRectF &r, const QPixmap &pm, const QRectF &sr)
+{
+ Q_D(QCoreGraphicsPaintEngine);
+ Q_ASSERT(isActive());
+
+ if (state->compositionMode() == QPainter::CompositionMode_Destination)
+ return;
+
+ if (pm.isNull())
+ return;
+
+ bool differentSize = (QRectF(0, 0, pm.width(), pm.height()) != sr), doRestore = false;
+ CGRect rect = CGRectMake(r.x(), r.y(), r.width(), r.height());
+ QCFType<CGImageRef> image;
+ bool isBitmap = (pm.depth() == 1);
+ if (isBitmap) {
+ doRestore = true;
+ d->saveGraphicsState();
+
+ const QColor &col = d->current.pen.color();
+ CGContextSetFillColorWithColor(d->hd, cgColorForQColor(col, d->pdev));
+ image = qt_mac_create_imagemask(pm, sr);
+ } else if (differentSize) {
+ QCFType<CGImageRef> img = qt_mac_image_to_cgimage(pm.toImage());
+ image = CGImageCreateWithImageInRect(img, CGRectMake(qRound(sr.x()), qRound(sr.y()), qRound(sr.width()), qRound(sr.height())));
+ } else {
+ image = qt_mac_image_to_cgimage(pm.toImage());
+ }
+ qt_mac_drawCGImage(d->hd, &rect, image);
+ if (doRestore)
+ d->restoreGraphicsState();
+}
+
+static void drawImageReleaseData (void *info, const void *, size_t)
+{
+ delete static_cast<QImage *>(info);
+}
+
+CGImageRef qt_mac_createCGImageFromQImage(const QImage &img, const QImage **imagePtr = 0)
+{
+ QImage *image;
+ if (img.depth() != 32)
+ image = new QImage(img.convertToFormat(QImage::Format_ARGB32_Premultiplied));
+ else
+ image = new QImage(img);
+
+ uint cgflags = kCGImageAlphaNone;
+ switch (image->format()) {
+ case QImage::Format_ARGB32_Premultiplied:
+ cgflags = kCGImageAlphaPremultipliedFirst;
+ break;
+ case QImage::Format_ARGB32:
+ cgflags = kCGImageAlphaFirst;
+ break;
+ case QImage::Format_RGB32:
+ cgflags = kCGImageAlphaNoneSkipFirst;
+ default:
+ break;
+ }
+#if defined(kCGBitmapByteOrder32Host) //only needed because CGImage.h added symbols in the minor version
+ cgflags |= kCGBitmapByteOrder32Host;
+#endif
+ QCFType<CGDataProviderRef> dataProvider = CGDataProviderCreateWithData(image,
+ static_cast<const QImage *>(image)->bits(),
+ image->byteCount(),
+ drawImageReleaseData);
+ if (imagePtr)
+ *imagePtr = image;
+ return CGImageCreate(image->width(), image->height(), 8, 32,
+ image->bytesPerLine(),
+ QCoreGraphicsPaintEngine::macGenericColorSpace(),
+ cgflags, dataProvider, 0, false, kCGRenderingIntentDefault);
+
+}
+
+void QCoreGraphicsPaintEngine::drawImage(const QRectF &r, const QImage &img, const QRectF &sr,
+ Qt::ImageConversionFlags flags)
+{
+ Q_D(QCoreGraphicsPaintEngine);
+ Q_UNUSED(flags);
+ Q_ASSERT(isActive());
+
+ if (img.isNull() || state->compositionMode() == QPainter::CompositionMode_Destination)
+ return;
+
+ const QImage *image;
+ QCFType<CGImageRef> cgimage = qt_mac_createCGImageFromQImage(img, &image);
+ CGRect rect = CGRectMake(r.x(), r.y(), r.width(), r.height());
+ if (QRectF(0, 0, img.width(), img.height()) != sr)
+ cgimage = CGImageCreateWithImageInRect(cgimage, CGRectMake(sr.x(), sr.y(),
+ sr.width(), sr.height()));
+ qt_mac_drawCGImage(d->hd, &rect, cgimage);
+}
+
+void QCoreGraphicsPaintEngine::initialize()
+{
+}
+
+void QCoreGraphicsPaintEngine::cleanup()
+{
+}
+
+CGContextRef
+QCoreGraphicsPaintEngine::handle() const
+{
+ return d_func()->hd;
+}
+
+void
+QCoreGraphicsPaintEngine::drawTiledPixmap(const QRectF &r, const QPixmap &pixmap,
+ const QPointF &p)
+{
+ Q_D(QCoreGraphicsPaintEngine);
+ Q_ASSERT(isActive());
+
+ if (state->compositionMode() == QPainter::CompositionMode_Destination)
+ return;
+
+ //save the old state
+ d->saveGraphicsState();
+
+ //setup the pattern
+ QMacPattern *qpattern = new QMacPattern;
+ qpattern->data.pixmap = pixmap;
+ qpattern->foreground = d->current.pen.color();
+ qpattern->pdev = d->pdev;
+ CGPatternCallbacks callbks;
+ callbks.version = 0;
+ callbks.drawPattern = qt_mac_draw_pattern;
+ callbks.releaseInfo = qt_mac_dispose_pattern;
+ const int width = qpattern->width(), height = qpattern->height();
+ CGAffineTransform trans = CGContextGetCTM(d->hd);
+ CGPatternRef pat = CGPatternCreate(qpattern, CGRectMake(0, 0, width, height),
+ trans, width, height,
+ kCGPatternTilingNoDistortion, true, &callbks);
+ CGColorSpaceRef cs = CGColorSpaceCreatePattern(0);
+ CGContextSetFillColorSpace(d->hd, cs);
+ CGFloat component = 1.0; //just one
+ CGContextSetFillPattern(d->hd, pat, &component);
+ CGSize phase = CGSizeApplyAffineTransform(CGSizeMake(-(p.x()-r.x()), -(p.y()-r.y())), trans);
+ CGContextSetPatternPhase(d->hd, phase);
+
+ //fill the rectangle
+ CGRect mac_rect = CGRectMake(r.x(), r.y(), r.width(), r.height());
+ CGContextFillRect(d->hd, mac_rect);
+
+ //restore the state
+ d->restoreGraphicsState();
+ //cleanup
+ CGColorSpaceRelease(cs);
+ CGPatternRelease(pat);
+}
+
+void QCoreGraphicsPaintEngine::drawTextItem(const QPointF &pos, const QTextItem &item)
+{
+ Q_D(QCoreGraphicsPaintEngine);
+ if (d->current.transform.type() == QTransform::TxProject
+#ifndef QMAC_NATIVE_GRADIENTS
+ || painter()->pen().brush().gradient() //Just let the base engine "emulate" the gradient
+#endif
+ ) {
+ QPaintEngine::drawTextItem(pos, item);
+ return;
+ }
+
+ if (state->compositionMode() == QPainter::CompositionMode_Destination)
+ return;
+
+ const QTextItemInt &ti = static_cast<const QTextItemInt &>(item);
+
+ QPen oldPen = painter()->pen();
+ QBrush oldBrush = painter()->brush();
+ QPointF oldBrushOrigin = painter()->brushOrigin();
+ updatePen(Qt::NoPen);
+ updateBrush(oldPen.brush(), QPointF(0, 0));
+
+ Q_ASSERT(type() == QPaintEngine::CoreGraphics);
+
+ QFontEngine *fe = ti.fontEngine;
+
+ const bool textAA = state->renderHints() & QPainter::TextAntialiasing && fe->fontDef.pointSize > qt_antialiasing_threshold && !(fe->fontDef.styleStrategy & QFont::NoAntialias);
+ const bool lineAA = state->renderHints() & QPainter::Antialiasing;
+ if (textAA != lineAA)
+ CGContextSetShouldAntialias(d->hd, textAA);
+
+ if (ti.glyphs.numGlyphs) {
+ switch (fe->type()) {
+ case QFontEngine::Mac:
+ static_cast<QCoreTextFontEngine *>(fe)->draw(d->hd, pos.x(), pos.y(), ti, paintDevice()->height());
+ break;
+ case QFontEngine::Box:
+ d->drawBoxTextItem(pos, ti);
+ break;
+ default:
+ break;
+ }
+ }
+
+ if (textAA != lineAA)
+ CGContextSetShouldAntialias(d->hd, !textAA);
+
+ updatePen(oldPen);
+ updateBrush(oldBrush, oldBrushOrigin);
+}
+
+QPainter::RenderHints
+QCoreGraphicsPaintEngine::supportedRenderHints() const
+{
+ return QPainter::RenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing | QPainter::SmoothPixmapTransform);
+}
+enum CGCompositeMode {
+ kCGCompositeModeClear = 0,
+ kCGCompositeModeCopy = 1,
+ kCGCompositeModeSourceOver = 2,
+ kCGCompositeModeSourceIn = 3,
+ kCGCompositeModeSourceOut = 4,
+ kCGCompositeModeSourceAtop = 5,
+ kCGCompositeModeDestinationOver = 6,
+ kCGCompositeModeDestinationIn = 7,
+ kCGCompositeModeDestinationOut = 8,
+ kCGCompositeModeDestinationAtop = 9,
+ kCGCompositeModeXOR = 10,
+ kCGCompositeModePlusDarker = 11, // (max (0, (1-d) + (1-s)))
+ kCGCompositeModePlusLighter = 12, // (min (1, s + d))
+ };
+extern "C" {
+ extern void CGContextSetCompositeOperation(CGContextRef, int);
+} // private function, but is in all versions of OS X.
+void
+QCoreGraphicsPaintEngine::updateCompositionMode(QPainter::CompositionMode mode)
+{
+#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5)
+ if (QSysInfo::MacintoshVersion >= QSysInfo::MV_10_5) {
+ int cg_mode = kCGBlendModeNormal;
+ switch (mode) {
+ case QPainter::CompositionMode_Multiply:
+ cg_mode = kCGBlendModeMultiply;
+ break;
+ case QPainter::CompositionMode_Screen:
+ cg_mode = kCGBlendModeScreen;
+ break;
+ case QPainter::CompositionMode_Overlay:
+ cg_mode = kCGBlendModeOverlay;
+ break;
+ case QPainter::CompositionMode_Darken:
+ cg_mode = kCGBlendModeDarken;
+ break;
+ case QPainter::CompositionMode_Lighten:
+ cg_mode = kCGBlendModeLighten;
+ break;
+ case QPainter::CompositionMode_ColorDodge:
+ cg_mode = kCGBlendModeColorDodge;
+ break;
+ case QPainter::CompositionMode_ColorBurn:
+ cg_mode = kCGBlendModeColorBurn;
+ break;
+ case QPainter::CompositionMode_HardLight:
+ cg_mode = kCGBlendModeHardLight;
+ break;
+ case QPainter::CompositionMode_SoftLight:
+ cg_mode = kCGBlendModeSoftLight;
+ break;
+ case QPainter::CompositionMode_Difference:
+ cg_mode = kCGBlendModeDifference;
+ break;
+ case QPainter::CompositionMode_Exclusion:
+ cg_mode = kCGBlendModeExclusion;
+ break;
+ case QPainter::CompositionMode_Plus:
+ cg_mode = kCGBlendModePlusLighter;
+ break;
+ case QPainter::CompositionMode_SourceOver:
+ cg_mode = kCGBlendModeNormal;
+ break;
+ case QPainter::CompositionMode_DestinationOver:
+ cg_mode = kCGBlendModeDestinationOver;
+ break;
+ case QPainter::CompositionMode_Clear:
+ cg_mode = kCGBlendModeClear;
+ break;
+ case QPainter::CompositionMode_Source:
+ cg_mode = kCGBlendModeCopy;
+ break;
+ case QPainter::CompositionMode_Destination:
+ cg_mode = -1;
+ break;
+ case QPainter::CompositionMode_SourceIn:
+ cg_mode = kCGBlendModeSourceIn;
+ break;
+ case QPainter::CompositionMode_DestinationIn:
+ cg_mode = kCGCompositeModeDestinationIn;
+ break;
+ case QPainter::CompositionMode_SourceOut:
+ cg_mode = kCGBlendModeSourceOut;
+ break;
+ case QPainter::CompositionMode_DestinationOut:
+ cg_mode = kCGBlendModeDestinationOver;
+ break;
+ case QPainter::CompositionMode_SourceAtop:
+ cg_mode = kCGBlendModeSourceAtop;
+ break;
+ case QPainter::CompositionMode_DestinationAtop:
+ cg_mode = kCGBlendModeDestinationAtop;
+ break;
+ case QPainter::CompositionMode_Xor:
+ cg_mode = kCGBlendModeXOR;
+ break;
+ default:
+ break;
+ }
+ if (cg_mode > -1) {
+ CGContextSetBlendMode(d_func()->hd, CGBlendMode(cg_mode));
+ }
+ } else
+#endif
+ // The standard porter duff ops.
+ if (QSysInfo::MacintoshVersion >= QSysInfo::MV_10_3
+ && mode <= QPainter::CompositionMode_Xor) {
+ int cg_mode = kCGCompositeModeCopy;
+ switch (mode) {
+ case QPainter::CompositionMode_SourceOver:
+ cg_mode = kCGCompositeModeSourceOver;
+ break;
+ case QPainter::CompositionMode_DestinationOver:
+ cg_mode = kCGCompositeModeDestinationOver;
+ break;
+ case QPainter::CompositionMode_Clear:
+ cg_mode = kCGCompositeModeClear;
+ break;
+ default:
+ qWarning("QCoreGraphicsPaintEngine: Unhandled composition mode %d", (int)mode);
+ break;
+ case QPainter::CompositionMode_Source:
+ cg_mode = kCGCompositeModeCopy;
+ break;
+ case QPainter::CompositionMode_Destination:
+ cg_mode = CGCompositeMode(-1);
+ break;
+ case QPainter::CompositionMode_SourceIn:
+ cg_mode = kCGCompositeModeSourceIn;
+ break;
+ case QPainter::CompositionMode_DestinationIn:
+ cg_mode = kCGCompositeModeDestinationIn;
+ break;
+ case QPainter::CompositionMode_SourceOut:
+ cg_mode = kCGCompositeModeSourceOut;
+ break;
+ case QPainter::CompositionMode_DestinationOut:
+ cg_mode = kCGCompositeModeDestinationOut;
+ break;
+ case QPainter::CompositionMode_SourceAtop:
+ cg_mode = kCGCompositeModeSourceAtop;
+ break;
+ case QPainter::CompositionMode_DestinationAtop:
+ cg_mode = kCGCompositeModeDestinationAtop;
+ break;
+ case QPainter::CompositionMode_Xor:
+ cg_mode = kCGCompositeModeXOR;
+ break;
+ }
+ if (cg_mode > -1)
+ CGContextSetCompositeOperation(d_func()->hd, CGCompositeMode(cg_mode));
+ } else {
+#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4)
+ bool needPrivateAPI = false;
+ if (QSysInfo::MacintoshVersion >= QSysInfo::MV_10_4) {
+ int cg_mode = kCGBlendModeNormal;
+ switch (mode) {
+ case QPainter::CompositionMode_Multiply:
+ cg_mode = kCGBlendModeMultiply;
+ break;
+ case QPainter::CompositionMode_Screen:
+ cg_mode = kCGBlendModeScreen;
+ break;
+ case QPainter::CompositionMode_Overlay:
+ cg_mode = kCGBlendModeOverlay;
+ break;
+ case QPainter::CompositionMode_Darken:
+ cg_mode = kCGBlendModeDarken;
+ break;
+ case QPainter::CompositionMode_Lighten:
+ cg_mode = kCGBlendModeLighten;
+ break;
+ case QPainter::CompositionMode_ColorDodge:
+ cg_mode = kCGBlendModeColorDodge;
+ break;
+ case QPainter::CompositionMode_ColorBurn:
+ cg_mode = kCGBlendModeColorBurn;
+ break;
+ case QPainter::CompositionMode_HardLight:
+ cg_mode = kCGBlendModeHardLight;
+ break;
+ case QPainter::CompositionMode_SoftLight:
+ cg_mode = kCGBlendModeSoftLight;
+ break;
+ case QPainter::CompositionMode_Difference:
+ cg_mode = kCGBlendModeDifference;
+ break;
+ case QPainter::CompositionMode_Exclusion:
+ cg_mode = kCGBlendModeExclusion;
+ break;
+ case QPainter::CompositionMode_Plus:
+ needPrivateAPI = true;
+ cg_mode = kCGCompositeModePlusLighter;
+ break;
+ default:
+ break;
+ }
+ if (!needPrivateAPI)
+ CGContextSetBlendMode(d_func()->hd, CGBlendMode(cg_mode));
+ else
+ CGContextSetCompositeOperation(d_func()->hd, CGCompositeMode(cg_mode));
+ }
+#endif
+ }
+}
+
+void
+QCoreGraphicsPaintEngine::updateRenderHints(QPainter::RenderHints hints)
+{
+ Q_D(QCoreGraphicsPaintEngine);
+ CGContextSetShouldAntialias(d->hd, hints & QPainter::Antialiasing);
+ static const CGFloat ScaleFactor = qt_mac_get_scalefactor();
+ if (ScaleFactor > 1.) {
+ CGContextSetInterpolationQuality(d->hd, kCGInterpolationHigh);
+ } else {
+ CGContextSetInterpolationQuality(d->hd, (hints & QPainter::SmoothPixmapTransform) ?
+ kCGInterpolationHigh : kCGInterpolationNone);
+ }
+ bool textAntialiasing = (hints & QPainter::TextAntialiasing) == QPainter::TextAntialiasing;
+ if (!textAntialiasing || d->disabledSmoothFonts) {
+ d->disabledSmoothFonts = !textAntialiasing;
+ CGContextSetShouldSmoothFonts(d->hd, textAntialiasing);
+ }
+}
+
+/*
+ Returns the size of one device pixel in user-space coordinates.
+*/
+QPointF QCoreGraphicsPaintEnginePrivate::devicePixelSize(CGContextRef)
+{
+ QPointF p1 = current.transform.inverted().map(QPointF(0, 0));
+ QPointF p2 = current.transform.inverted().map(QPointF(1, 1));
+ return QPointF(qAbs(p2.x() - p1.x()), qAbs(p2.y() - p1.y()));
+}
+
+/*
+ Adjusts the pen width so we get correct line widths in the
+ non-transformed, aliased case.
+*/
+float QCoreGraphicsPaintEnginePrivate::adjustPenWidth(float penWidth)
+{
+ Q_Q(QCoreGraphicsPaintEngine);
+ float ret = penWidth;
+ if (!complexXForm && !(q->state->renderHints() & QPainter::Antialiasing)) {
+ if (penWidth < 2)
+ ret = 1;
+ else if (penWidth < 3)
+ ret = 1.5;
+ else
+ ret = penWidth -1;
+ }
+ return ret;
+}
+
+void
+QCoreGraphicsPaintEnginePrivate::setStrokePen(const QPen &pen)
+{
+ //pencap
+ CGLineCap cglinecap = kCGLineCapButt;
+ if (pen.capStyle() == Qt::SquareCap)
+ cglinecap = kCGLineCapSquare;
+ else if (pen.capStyle() == Qt::RoundCap)
+ cglinecap = kCGLineCapRound;
+ CGContextSetLineCap(hd, cglinecap);
+ CGContextSetLineWidth(hd, adjustPenWidth(pen.widthF()));
+
+ //join
+ CGLineJoin cglinejoin = kCGLineJoinMiter;
+ if (pen.joinStyle() == Qt::BevelJoin)
+ cglinejoin = kCGLineJoinBevel;
+ else if (pen.joinStyle() == Qt::RoundJoin)
+ cglinejoin = kCGLineJoinRound;
+ CGContextSetLineJoin(hd, cglinejoin);
+// CGContextSetMiterLimit(hd, pen.miterLimit());
+
+ //pen style
+ QVector<CGFloat> linedashes;
+ if (pen.style() == Qt::CustomDashLine) {
+ QVector<qreal> customs = pen.dashPattern();
+ for (int i = 0; i < customs.size(); ++i)
+ linedashes.append(customs.at(i));
+ } else if (pen.style() == Qt::DashLine) {
+ linedashes.append(4);
+ linedashes.append(2);
+ } else if (pen.style() == Qt::DotLine) {
+ linedashes.append(1);
+ linedashes.append(2);
+ } else if (pen.style() == Qt::DashDotLine) {
+ linedashes.append(4);
+ linedashes.append(2);
+ linedashes.append(1);
+ linedashes.append(2);
+ } else if (pen.style() == Qt::DashDotDotLine) {
+ linedashes.append(4);
+ linedashes.append(2);
+ linedashes.append(1);
+ linedashes.append(2);
+ linedashes.append(1);
+ linedashes.append(2);
+ }
+ const CGFloat cglinewidth = pen.widthF() <= 0.0f ? 1.0f : float(pen.widthF());
+ for (int i = 0; i < linedashes.size(); ++i) {
+ linedashes[i] *= cglinewidth;
+ if (cglinewidth < 3 && (cglinecap == kCGLineCapSquare || cglinecap == kCGLineCapRound)) {
+ if ((i%2))
+ linedashes[i] += cglinewidth/2;
+ else
+ linedashes[i] -= cglinewidth/2;
+ }
+ }
+ CGContextSetLineDash(hd, pen.dashOffset() * cglinewidth, linedashes.data(), linedashes.size());
+
+ // color
+ CGContextSetStrokeColorWithColor(hd, cgColorForQColor(pen.color(), pdev));
+}
+
+// Add our own patterns here to deal with the fact that the coordinate system
+// is flipped vertically with Quartz2D.
+static const uchar *qt_mac_patternForBrush(int brushStyle)
+{
+ Q_ASSERT(brushStyle > Qt::SolidPattern && brushStyle < Qt::LinearGradientPattern);
+ static const uchar dense1_pat[] = { 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x44, 0x00 };
+ static const uchar dense2_pat[] = { 0x00, 0x22, 0x00, 0x88, 0x00, 0x22, 0x00, 0x88 };
+ static const uchar dense3_pat[] = { 0x11, 0xaa, 0x44, 0xaa, 0x11, 0xaa, 0x44, 0xaa };
+ static const uchar dense4_pat[] = { 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55 };
+ static const uchar dense5_pat[] = { 0xee, 0x55, 0xbb, 0x55, 0xee, 0x55, 0xbb, 0x55 };
+ static const uchar dense6_pat[] = { 0xff, 0xdd, 0xff, 0x77, 0xff, 0xdd, 0xff, 0x77 };
+ static const uchar dense7_pat[] = { 0xff, 0xff, 0xbb, 0xff, 0xff, 0xff, 0xbb, 0xff };
+ static const uchar hor_pat[] = { 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff };
+ static const uchar ver_pat[] = { 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef };
+ static const uchar cross_pat[] = { 0xef, 0xef, 0xef, 0xef, 0x00, 0xef, 0xef, 0xef };
+ static const uchar fdiag_pat[] = { 0x7f, 0xbf, 0xdf, 0xef, 0xf7, 0xfb, 0xfd, 0xfe };
+ static const uchar bdiag_pat[] = { 0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f };
+ static const uchar dcross_pat[] = { 0x7e, 0xbd, 0xdb, 0xe7, 0xe7, 0xdb, 0xbd, 0x7e };
+ static const uchar *const pat_tbl[] = {
+ dense1_pat, dense2_pat, dense3_pat, dense4_pat, dense5_pat,
+ dense6_pat, dense7_pat,
+ hor_pat, ver_pat, cross_pat, bdiag_pat, fdiag_pat, dcross_pat };
+ return pat_tbl[brushStyle - Qt::Dense1Pattern];
+}
+
+void QCoreGraphicsPaintEnginePrivate::setFillBrush(const QPointF &offset)
+{
+ // pattern
+ Qt::BrushStyle bs = current.brush.style();
+#ifdef QT_MAC_USE_NATIVE_GRADIENTS
+ if (bs == Qt::LinearGradientPattern || bs == Qt::RadialGradientPattern) {
+ const QGradient *grad = static_cast<const QGradient*>(current.brush.gradient());
+ if (drawGradientNatively(grad)) {
+ Q_ASSERT(grad->spread() == QGradient::PadSpread);
+
+ static const CGFloat domain[] = { 0.0f, +1.0f };
+ static const CGFunctionCallbacks callbacks = { 0, qt_mac_color_gradient_function, 0 };
+ CGFunctionRef fill_func = CGFunctionCreate(reinterpret_cast<void *>(&current.brush),
+ 1, domain, 4, 0, &callbacks);
+
+ CGColorSpaceRef colorspace = qt_mac_colorSpaceForDeviceType(pdev);
+ if (bs == Qt::LinearGradientPattern) {
+ const QLinearGradient *linearGrad = static_cast<const QLinearGradient *>(grad);
+ const QPointF start(linearGrad->start());
+ const QPointF stop(linearGrad->finalStop());
+ shading = CGShadingCreateAxial(colorspace, CGPointMake(start.x(), start.y()),
+ CGPointMake(stop.x(), stop.y()), fill_func, true, true);
+ } else {
+ Q_ASSERT(bs == Qt::RadialGradientPattern);
+ const QRadialGradient *radialGrad = static_cast<const QRadialGradient *>(grad);
+ QPointF center(radialGrad->center());
+ QPointF focal(radialGrad->focalPoint());
+ qreal radius = radialGrad->radius();
+ qreal focalRadius = radialGrad->focalRadius();
+ shading = CGShadingCreateRadial(colorspace, CGPointMake(focal.x(), focal.y()),
+ focalRadius, CGPointMake(center.x(), center.y()), radius, fill_func, false, true);
+ }
+
+ CGFunctionRelease(fill_func);
+ }
+ } else
+#endif
+ if (bs != Qt::SolidPattern && bs != Qt::NoBrush
+#ifndef QT_MAC_USE_NATIVE_GRADIENTS
+ && (bs < Qt::LinearGradientPattern || bs > Qt::ConicalGradientPattern)
+#endif
+ )
+ {
+ QMacPattern *qpattern = new QMacPattern;
+ qpattern->pdev = pdev;
+ CGFloat components[4] = { 1.0, 1.0, 1.0, 1.0 };
+ CGColorSpaceRef base_colorspace = 0;
+ if (bs == Qt::TexturePattern) {
+ qpattern->data.pixmap = current.brush.texture();
+ if (qpattern->data.pixmap.isQBitmap()) {
+ const QColor &col = current.brush.color();
+ components[0] = qt_mac_convert_color_to_cg(col.red());
+ components[1] = qt_mac_convert_color_to_cg(col.green());
+ components[2] = qt_mac_convert_color_to_cg(col.blue());
+ base_colorspace = QCoreGraphicsPaintEngine::macGenericColorSpace();
+ }
+ } else {
+ qpattern->as_mask = true;
+
+ qpattern->data.bytes = qt_mac_patternForBrush(bs);
+ const QColor &col = current.brush.color();
+ components[0] = qt_mac_convert_color_to_cg(col.red());
+ components[1] = qt_mac_convert_color_to_cg(col.green());
+ components[2] = qt_mac_convert_color_to_cg(col.blue());
+ base_colorspace = QCoreGraphicsPaintEngine::macGenericColorSpace();
+ }
+ int width = qpattern->width(), height = qpattern->height();
+ qpattern->foreground = current.brush.color();
+
+ CGColorSpaceRef fill_colorspace = CGColorSpaceCreatePattern(base_colorspace);
+ CGContextSetFillColorSpace(hd, fill_colorspace);
+
+ CGAffineTransform xform = CGContextGetCTM(hd);
+ xform = CGAffineTransformConcat(qt_mac_convert_transform_to_cg(current.brush.transform()), xform);
+ xform = CGAffineTransformTranslate(xform, offset.x(), offset.y());
+
+ CGPatternCallbacks callbks;
+ callbks.version = 0;
+ callbks.drawPattern = qt_mac_draw_pattern;
+ callbks.releaseInfo = qt_mac_dispose_pattern;
+ CGPatternRef fill_pattern = CGPatternCreate(qpattern, CGRectMake(0, 0, width, height),
+ xform, width, height, kCGPatternTilingNoDistortion,
+ !base_colorspace, &callbks);
+ CGContextSetFillPattern(hd, fill_pattern, components);
+
+ CGPatternRelease(fill_pattern);
+ CGColorSpaceRelease(fill_colorspace);
+ } else if (bs != Qt::NoBrush) {
+ CGContextSetFillColorWithColor(hd, cgColorForQColor(current.brush.color(), pdev));
+ }
+}
+
+void
+QCoreGraphicsPaintEnginePrivate::setClip(const QRegion *rgn)
+{
+ Q_Q(QCoreGraphicsPaintEngine);
+ if (hd) {
+ resetClip();
+ QRegion sysClip = q->systemClip();
+ if (!sysClip.isEmpty())
+ qt_mac_clip_cg(hd, sysClip, &orig_xform);
+ if (rgn)
+ qt_mac_clip_cg(hd, *rgn, 0);
+ }
+}
+
+struct qt_mac_cg_transform_path {
+ CGMutablePathRef path;
+ CGAffineTransform transform;
+};
+
+void qt_mac_cg_transform_path_apply(void *info, const CGPathElement *element)
+{
+ Q_ASSERT(info && element);
+ qt_mac_cg_transform_path *t = (qt_mac_cg_transform_path*)info;
+ switch (element->type) {
+ case kCGPathElementMoveToPoint:
+ CGPathMoveToPoint(t->path, &t->transform, element->points[0].x, element->points[0].y);
+ break;
+ case kCGPathElementAddLineToPoint:
+ CGPathAddLineToPoint(t->path, &t->transform, element->points[0].x, element->points[0].y);
+ break;
+ case kCGPathElementAddQuadCurveToPoint:
+ CGPathAddQuadCurveToPoint(t->path, &t->transform, element->points[0].x, element->points[0].y,
+ element->points[1].x, element->points[1].y);
+ break;
+ case kCGPathElementAddCurveToPoint:
+ CGPathAddCurveToPoint(t->path, &t->transform, element->points[0].x, element->points[0].y,
+ element->points[1].x, element->points[1].y,
+ element->points[2].x, element->points[2].y);
+ break;
+ case kCGPathElementCloseSubpath:
+ CGPathCloseSubpath(t->path);
+ break;
+ default:
+ qDebug() << "Unhandled path transform type: " << element->type;
+ }
+}
+
+void QCoreGraphicsPaintEnginePrivate::drawPath(uchar ops, CGMutablePathRef path)
+{
+ Q_Q(QCoreGraphicsPaintEngine);
+ Q_ASSERT((ops & (CGFill | CGEOFill)) != (CGFill | CGEOFill)); //can't really happen
+ if ((ops & (CGFill | CGEOFill))) {
+ if (shading) {
+ Q_ASSERT(path);
+ CGContextBeginPath(hd);
+ CGContextAddPath(hd, path);
+ saveGraphicsState();
+ if (ops & CGFill)
+ CGContextClip(hd);
+ else if (ops & CGEOFill)
+ CGContextEOClip(hd);
+ if (current.brush.gradient()->coordinateMode() == QGradient::ObjectBoundingMode) {
+ CGRect boundingBox = CGPathGetBoundingBox(path);
+ CGContextConcatCTM(hd,
+ CGAffineTransformMake(boundingBox.size.width, 0,
+ 0, boundingBox.size.height,
+ boundingBox.origin.x, boundingBox.origin.y));
+ }
+ CGContextDrawShading(hd, shading);
+ restoreGraphicsState();
+ ops &= ~CGFill;
+ ops &= ~CGEOFill;
+ } else if (current.brush.style() == Qt::NoBrush) {
+ ops &= ~CGFill;
+ ops &= ~CGEOFill;
+ }
+ }
+ if ((ops & CGStroke) && current.pen.style() == Qt::NoPen)
+ ops &= ~CGStroke;
+
+ if (ops & (CGEOFill | CGFill)) {
+ CGContextBeginPath(hd);
+ CGContextAddPath(hd, path);
+ if (ops & CGEOFill) {
+ CGContextEOFillPath(hd);
+ } else {
+ CGContextFillPath(hd);
+ }
+ }
+
+ // Avoid saving and restoring the context if we can.
+ const bool needContextSave = (cosmeticPen != QCoreGraphicsPaintEnginePrivate::CosmeticNone ||
+ !(q->state->renderHints() & QPainter::Antialiasing));
+ if (ops & CGStroke) {
+ if (needContextSave)
+ saveGraphicsState();
+ CGContextBeginPath(hd);
+
+ // Translate a fraction of a pixel size in the y direction
+ // to make sure that primitives painted at pixel borders
+ // fills the right pixel. This is needed since the y xais
+ // in the Quartz coordinate system is inverted compared to Qt.
+ if (!(q->state->renderHints() & QPainter::Antialiasing)) {
+ if (current.pen.style() == Qt::SolidLine || current.pen.width() >= 3)
+ CGContextTranslateCTM(hd, double(pixelSize.x()) * 0.25, double(pixelSize.y()) * 0.25);
+ else if (current.pen.style() == Qt::DotLine && QSysInfo::MacintoshVersion == QSysInfo::MV_10_3)
+ ; // Do nothing.
+ else
+ CGContextTranslateCTM(hd, 0, double(pixelSize.y()) * 0.1);
+ }
+
+ if (cosmeticPen != QCoreGraphicsPaintEnginePrivate::CosmeticNone) {
+ // If antialiazing is enabled, use the cosmetic pen size directly.
+ if (q->state->renderHints() & QPainter::Antialiasing)
+ CGContextSetLineWidth(hd, cosmeticPenSize);
+ else if (current.pen.widthF() <= 1)
+ CGContextSetLineWidth(hd, cosmeticPenSize * 0.9f);
+ else
+ CGContextSetLineWidth(hd, cosmeticPenSize);
+ }
+ if (cosmeticPen == QCoreGraphicsPaintEnginePrivate::CosmeticTransformPath) {
+ qt_mac_cg_transform_path t;
+ t.transform = qt_mac_convert_transform_to_cg(current.transform);
+ t.path = CGPathCreateMutable();
+ CGPathApply(path, &t, qt_mac_cg_transform_path_apply); //transform the path
+ setTransform(0); //unset the context transform
+ CGContextSetLineWidth(hd, cosmeticPenSize);
+ CGContextAddPath(hd, t.path);
+ CGPathRelease(t.path);
+ } else {
+ CGContextAddPath(hd, path);
+ }
+
+ CGContextStrokePath(hd);
+ if (needContextSave)
+ restoreGraphicsState();
+ }
+}
+
+QT_END_NAMESPACE
diff --git a/src/plugins/platforms/cocoa/qpaintengine_mac_p.h b/src/plugins/platforms/cocoa/qpaintengine_mac_p.h
new file mode 100644
index 0000000000..0987d921fc
--- /dev/null
+++ b/src/plugins/platforms/cocoa/qpaintengine_mac_p.h
@@ -0,0 +1,254 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this
+** file. Please review the following information to ensure the GNU Lesser
+** General Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QPAINTENGINE_MAC_P_H
+#define QPAINTENGINE_MAC_P_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include "QtGui/qpaintengine.h"
+#include "private/qpaintengine_p.h"
+#include "private/qpolygonclipper_p.h"
+#include "private/qfont_p.h"
+#include "QtCore/qhash.h"
+
+#include "qt_mac_p.h"
+
+typedef struct CGColorSpace *CGColorSpaceRef;
+QT_BEGIN_NAMESPACE
+
+class QCoreGraphicsPaintEnginePrivate;
+class QCoreGraphicsPaintEngine : public QPaintEngine
+{
+ Q_DECLARE_PRIVATE(QCoreGraphicsPaintEngine)
+
+public:
+ QCoreGraphicsPaintEngine();
+ ~QCoreGraphicsPaintEngine();
+
+ bool begin(QPaintDevice *pdev);
+ bool end();
+ static CGColorSpaceRef macGenericColorSpace();
+ static CGColorSpaceRef macDisplayColorSpace(const QWidget *widget = 0);
+
+ void updateState(const QPaintEngineState &state);
+
+ void updatePen(const QPen &pen);
+ void updateBrush(const QBrush &brush, const QPointF &pt);
+ void updateFont(const QFont &font);
+ void updateOpacity(qreal opacity);
+ void updateMatrix(const QTransform &matrix);
+ void updateTransform(const QTransform &matrix);
+ void updateClipRegion(const QRegion &region, Qt::ClipOperation op);
+ void updateClipPath(const QPainterPath &path, Qt::ClipOperation op);
+ void updateCompositionMode(QPainter::CompositionMode mode);
+ void updateRenderHints(QPainter::RenderHints hints);
+
+ void drawLines(const QLineF *lines, int lineCount);
+ void drawRects(const QRectF *rects, int rectCount);
+ void drawPoints(const QPointF *p, int pointCount);
+ void drawEllipse(const QRectF &r);
+ void drawPath(const QPainterPath &path);
+
+ void drawPolygon(const QPointF *points, int pointCount, PolygonDrawMode mode);
+ void drawPixmap(const QRectF &r, const QPixmap &pm, const QRectF &sr);
+ void drawTiledPixmap(const QRectF &r, const QPixmap &pixmap, const QPointF &s);
+
+ void drawTextItem(const QPointF &pos, const QTextItem &item);
+ void drawImage(const QRectF &r, const QImage &pm, const QRectF &sr,
+ Qt::ImageConversionFlags flags = Qt::AutoColor);
+
+ Type type() const { return QPaintEngine::CoreGraphics; }
+
+ CGContextRef handle() const;
+
+ static void initialize();
+ static void cleanup();
+
+ QPainter::RenderHints supportedRenderHints() const;
+
+ //avoid partial shadowed overload warnings...
+ void drawLines(const QLine *lines, int lineCount) { QPaintEngine::drawLines(lines, lineCount); }
+ void drawRects(const QRect *rects, int rectCount) { QPaintEngine::drawRects(rects, rectCount); }
+ void drawPoints(const QPoint *p, int pointCount) { QPaintEngine::drawPoints(p, pointCount); }
+ void drawEllipse(const QRect &r) { QPaintEngine::drawEllipse(r); }
+ void drawPolygon(const QPoint *points, int pointCount, PolygonDrawMode mode)
+ { QPaintEngine::drawPolygon(points, pointCount, mode); }
+
+ bool supportsTransformations(qreal, const QTransform &) const { return true; };
+
+protected:
+ friend class QMacPrintEngine;
+ friend class QMacPrintEnginePrivate;
+ QCoreGraphicsPaintEngine(QPaintEnginePrivate &dptr);
+
+private:
+ static bool m_postRoutineRegistered;
+ static CGColorSpaceRef m_genericColorSpace;
+ static QHash<CGDirectDisplayID, CGColorSpaceRef> m_displayColorSpaceHash;
+ static void cleanUpMacColorSpaces();
+ Q_DISABLE_COPY(QCoreGraphicsPaintEngine)
+};
+
+/*****************************************************************************
+ Private data
+ *****************************************************************************/
+class QCoreGraphicsPaintEnginePrivate : public QPaintEnginePrivate
+{
+ Q_DECLARE_PUBLIC(QCoreGraphicsPaintEngine)
+public:
+ QCoreGraphicsPaintEnginePrivate()
+ : hd(0), shading(0), stackCount(0), complexXForm(false), disabledSmoothFonts(false)
+ {
+ }
+
+ struct {
+ QPen pen;
+ QBrush brush;
+ uint clipEnabled : 1;
+ QRegion clip;
+ QTransform transform;
+ } current;
+
+ //state info (shared with QD)
+ CGAffineTransform orig_xform;
+
+ //cg structures
+ CGContextRef hd;
+ CGShadingRef shading;
+ int stackCount;
+ bool complexXForm;
+ bool disabledSmoothFonts;
+ enum { CosmeticNone, CosmeticTransformPath, CosmeticSetPenWidth } cosmeticPen;
+
+ // pixel and cosmetic pen size in user coordinates.
+ QPointF pixelSize;
+ float cosmeticPenSize;
+
+ //internal functions
+ enum { CGStroke=0x01, CGEOFill=0x02, CGFill=0x04 };
+ void drawPath(uchar ops, CGMutablePathRef path = 0);
+ void setClip(const QRegion *rgn=0);
+ void resetClip();
+ void setFillBrush(const QPointF &origin=QPoint());
+ void setStrokePen(const QPen &pen);
+ inline void saveGraphicsState();
+ inline void restoreGraphicsState();
+ float penOffset();
+ QPointF devicePixelSize(CGContextRef context);
+ float adjustPenWidth(float penWidth);
+ inline void setTransform(const QTransform *matrix=0)
+ {
+ CGContextConcatCTM(hd, CGAffineTransformInvert(CGContextGetCTM(hd)));
+ CGAffineTransform xform = orig_xform;
+ if (matrix) {
+ extern CGAffineTransform qt_mac_convert_transform_to_cg(const QTransform &);
+ xform = CGAffineTransformConcat(qt_mac_convert_transform_to_cg(*matrix), xform);
+ }
+ CGContextConcatCTM(hd, xform);
+ CGContextSetTextMatrix(hd, xform);
+ }
+};
+
+inline void QCoreGraphicsPaintEnginePrivate::saveGraphicsState()
+{
+ ++stackCount;
+ CGContextSaveGState(hd);
+}
+
+inline void QCoreGraphicsPaintEnginePrivate::restoreGraphicsState()
+{
+ --stackCount;
+ Q_ASSERT(stackCount >= 0);
+ CGContextRestoreGState(hd);
+}
+
+class QMacQuartzPaintDevice : public QPaintDevice
+{
+public:
+ QMacQuartzPaintDevice(CGContextRef cg, int width, int height, int bytesPerLine)
+ : mCG(cg), mWidth(width), mHeight(height), mBytesPerLine(bytesPerLine)
+ { }
+ int devType() const { return QInternal::MacQuartz; }
+ CGContextRef cgContext() const { return mCG; }
+ int metric(PaintDeviceMetric metric) const {
+ switch (metric) {
+ case PdmWidth:
+ return mWidth;
+ case PdmHeight:
+ return mHeight;
+ case PdmWidthMM:
+ return (qt_defaultDpiX() * mWidth) / 2.54;
+ case PdmHeightMM:
+ return (qt_defaultDpiY() * mHeight) / 2.54;
+ case PdmNumColors:
+ return 0;
+ case PdmDepth:
+ return 32;
+ case PdmDpiX:
+ case PdmPhysicalDpiX:
+ return qt_defaultDpiX();
+ case PdmDpiY:
+ case PdmPhysicalDpiY:
+ return qt_defaultDpiY();
+ }
+ return 0;
+ }
+ QPaintEngine *paintEngine() const { qWarning("This function should never be called."); return 0; }
+private:
+ CGContextRef mCG;
+ int mWidth;
+ int mHeight;
+ int mBytesPerLine;
+};
+
+QT_END_NAMESPACE
+
+#endif // QPAINTENGINE_MAC_P_H
diff --git a/src/plugins/platforms/cocoa/qprintengine_mac.mm b/src/plugins/platforms/cocoa/qprintengine_mac.mm
new file mode 100644
index 0000000000..e432b12e67
--- /dev/null
+++ b/src/plugins/platforms/cocoa/qprintengine_mac.mm
@@ -0,0 +1,817 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this
+** file. Please review the following information to ensure the GNU Lesser
+** General Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qprintengine_mac_p.h"
+#include <qdebug.h>
+#include <qthread.h>
+#include <QtCore/qcoreapplication.h>
+#include <QtPrintSupport/QPlatformPrinterSupport>
+
+#include "qcocoaautoreleasepool.h"
+
+#ifndef QT_NO_PRINTER
+
+QT_BEGIN_NAMESPACE
+
+QMacPrintEngine::QMacPrintEngine(QPrinter::PrinterMode mode) : QPaintEngine(*(new QMacPrintEnginePrivate))
+{
+ Q_D(QMacPrintEngine);
+ d->mode = mode;
+ d->initialize();
+}
+
+bool QMacPrintEngine::begin(QPaintDevice *dev)
+{
+ Q_D(QMacPrintEngine);
+
+ Q_ASSERT(dev && dev->devType() == QInternal::Printer);
+ if (!static_cast<QPrinter *>(dev)->isValid())
+ return false;
+
+ if (d->state == QPrinter::Idle && !d->isPrintSessionInitialized()) // Need to reinitialize
+ d->initialize();
+
+ d->paintEngine->state = state;
+ d->paintEngine->begin(dev);
+ Q_ASSERT_X(d->state == QPrinter::Idle, "QMacPrintEngine", "printer already active");
+
+ if (PMSessionValidatePrintSettings(d->session(), d->settings(), kPMDontWantBoolean) != noErr
+ || PMSessionValidatePageFormat(d->session(), d->format(), kPMDontWantBoolean) != noErr) {
+ d->state = QPrinter::Error;
+ return false;
+ }
+
+ if (!d->outputFilename.isEmpty()) {
+ QCFType<CFURLRef> outFile = CFURLCreateWithFileSystemPath(kCFAllocatorSystemDefault,
+ QCFString(d->outputFilename),
+ kCFURLPOSIXPathStyle,
+ false);
+ if (PMSessionSetDestination(d->session(), d->settings(), kPMDestinationFile,
+ kPMDocumentFormatPDF, outFile) != noErr) {
+ qWarning("QMacPrintEngine::begin: Problem setting file [%s]", d->outputFilename.toUtf8().constData());
+ return false;
+ }
+ }
+
+ OSStatus status = PMSessionBeginCGDocumentNoDialog(d->session(), d->settings(), d->format());
+ if (status != noErr) {
+ d->state = QPrinter::Error;
+ return false;
+ }
+
+ d->state = QPrinter::Active;
+ setActive(true);
+ d->newPage_helper();
+ return true;
+}
+
+bool QMacPrintEngine::end()
+{
+ Q_D(QMacPrintEngine);
+ if (d->state == QPrinter::Aborted)
+ return true; // I was just here a function call ago :)
+ if (d->paintEngine->type() == QPaintEngine::CoreGraphics) {
+ // We dont need the paint engine to call restoreGraphicsState()
+ static_cast<QCoreGraphicsPaintEngine*>(d->paintEngine)->d_func()->stackCount = 0;
+ static_cast<QCoreGraphicsPaintEngine*>(d->paintEngine)->d_func()->hd = 0;
+ }
+ d->paintEngine->end();
+ if (d->state != QPrinter::Idle)
+ d->releaseSession();
+ d->state = QPrinter::Idle;
+ return true;
+}
+
+QPaintEngine *
+QMacPrintEngine::paintEngine() const
+{
+ return d_func()->paintEngine;
+}
+
+Qt::HANDLE QMacPrintEngine::handle() const
+{
+ QCoreGraphicsPaintEngine *cgEngine = static_cast<QCoreGraphicsPaintEngine*>(paintEngine());
+ return cgEngine->d_func()->hd;
+}
+
+QMacPrintEnginePrivate::~QMacPrintEnginePrivate()
+{
+ [printInfo release];
+ delete paintEngine;
+}
+
+void QMacPrintEnginePrivate::setPaperSize(QPrinter::PaperSize ps)
+{
+ Q_Q(QMacPrintEngine);
+ QSizeF newSize = QPlatformPrinterSupport::convertPaperSizeToQSizeF(ps);
+ QCFType<CFArrayRef> formats;
+ PMPrinter printer;
+
+ if (PMSessionGetCurrentPrinter(session(), &printer) == noErr
+ && PMSessionCreatePageFormatList(session(), printer, &formats) == noErr) {
+ CFIndex total = CFArrayGetCount(formats);
+ PMPageFormat tmp;
+ PMRect paper;
+ for (CFIndex idx = 0; idx < total; ++idx) {
+ tmp = static_cast<PMPageFormat>(
+ const_cast<void *>(CFArrayGetValueAtIndex(formats, idx)));
+ PMGetUnadjustedPaperRect(tmp, &paper);
+ int wMM = int((paper.right - paper.left) / 72 * 25.4 + 0.5);
+ int hMM = int((paper.bottom - paper.top) / 72 * 25.4 + 0.5);
+ if (newSize.width() == wMM && newSize.height() == hMM) {
+ PMCopyPageFormat(tmp, format());
+ // reset the orientation and resolution as they are lost in the copy.
+ q->setProperty(QPrintEngine::PPK_Orientation, orient);
+ if (PMSessionValidatePageFormat(session(), format(), kPMDontWantBoolean) != noErr) {
+ // Don't know, warn for the moment.
+ qWarning("QMacPrintEngine, problem setting format and resolution for this page size");
+ }
+ break;
+ }
+ }
+ }
+}
+
+QPrinter::PaperSize QMacPrintEnginePrivate::paperSize() const
+{
+ if (hasCustomPaperSize)
+ return QPrinter::Custom;
+ PMRect paper;
+ PMGetUnadjustedPaperRect(format(), &paper);
+ QSizeF sizef((paper.right - paper.left) / 72.0 * 25.4, (paper.bottom - paper.top) / 72.0 * 25.4);
+ return QPlatformPrinterSupport::convertQSizeFToPaperSize(sizef);
+}
+
+QList<QVariant> QMacPrintEnginePrivate::supportedResolutions() const
+{
+ Q_ASSERT_X(printInfo, "QMacPrinterEngine::supportedResolutions",
+ "must have a valid printer session");
+ UInt32 resCount;
+ QList<QVariant> resolutions;
+ PMPrinter printer;
+ if (PMSessionGetCurrentPrinter(session(), &printer) == noErr) {
+ PMResolution res;
+ OSStatus status = PMPrinterGetPrinterResolutionCount(printer, &resCount);
+ if (status == kPMNotImplemented) {
+#if (MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_5)
+ // *Sigh* we have to use the non-indexed version.
+ if (PMPrinterGetPrinterResolution(printer, kPMMinSquareResolution, &res) == noErr)
+ resolutions.append(int(res.hRes));
+ if (PMPrinterGetPrinterResolution(printer, kPMMaxSquareResolution, &res) == noErr) {
+ QVariant var(int(res.hRes));
+ if (!resolutions.contains(var))
+ resolutions.append(var);
+ }
+ if (PMPrinterGetPrinterResolution(printer, kPMDefaultResolution, &res) == noErr) {
+ QVariant var(int(res.hRes));
+ if (!resolutions.contains(var))
+ resolutions.append(var);
+ }
+#endif
+ } else if (status == noErr) {
+ // According to the docs, index start at 1.
+ for (UInt32 i = 1; i <= resCount; ++i) {
+ if (PMPrinterGetIndexedPrinterResolution(printer, i, &res) == noErr)
+ resolutions.append(QVariant(int(res.hRes)));
+ }
+ } else {
+ qWarning("QMacPrintEngine::supportedResolutions: Unexpected error: %ld", long(status));
+ }
+ }
+ return resolutions;
+}
+
+QPrinter::PrinterState QMacPrintEngine::printerState() const
+{
+ return d_func()->state;
+}
+
+bool QMacPrintEngine::newPage()
+{
+ Q_D(QMacPrintEngine);
+ Q_ASSERT(d->state == QPrinter::Active);
+ OSStatus err = PMSessionEndPageNoDialog(d->session());
+ if (err != noErr) {
+ if (err == kPMCancel) {
+ // User canceled, we need to abort!
+ abort();
+ } else {
+ // Not sure what the problem is...
+ qWarning("QMacPrintEngine::newPage: Cannot end current page. %ld", long(err));
+ d->state = QPrinter::Error;
+ }
+ return false;
+ }
+ return d->newPage_helper();
+}
+
+bool QMacPrintEngine::abort()
+{
+ Q_D(QMacPrintEngine);
+ if (d->state != QPrinter::Active)
+ return false;
+ bool ret = end();
+ d->state = QPrinter::Aborted;
+ return ret;
+}
+
+static inline int qt_get_PDMWidth(PMPageFormat pformat, bool fullPage,
+ const PMResolution &resolution)
+{
+ int val = 0;
+ PMRect r;
+ qreal hRatio = resolution.hRes / 72;
+ if (fullPage) {
+ if (PMGetAdjustedPaperRect(pformat, &r) == noErr)
+ val = qRound((r.right - r.left) * hRatio);
+ } else {
+ if (PMGetAdjustedPageRect(pformat, &r) == noErr)
+ val = qRound((r.right - r.left) * hRatio);
+ }
+ return val;
+}
+
+static inline int qt_get_PDMHeight(PMPageFormat pformat, bool fullPage,
+ const PMResolution &resolution)
+{
+ int val = 0;
+ PMRect r;
+ qreal vRatio = resolution.vRes / 72;
+ if (fullPage) {
+ if (PMGetAdjustedPaperRect(pformat, &r) == noErr)
+ val = qRound((r.bottom - r.top) * vRatio);
+ } else {
+ if (PMGetAdjustedPageRect(pformat, &r) == noErr)
+ val = qRound((r.bottom - r.top) * vRatio);
+ }
+ return val;
+}
+
+
+int QMacPrintEngine::metric(QPaintDevice::PaintDeviceMetric m) const
+{
+ Q_D(const QMacPrintEngine);
+ int val = 1;
+ switch (m) {
+ case QPaintDevice::PdmWidth:
+ if (d->hasCustomPaperSize) {
+ val = qRound(d->customSize.width());
+ if (d->hasCustomPageMargins) {
+ val -= qRound(d->leftMargin + d->rightMargin);
+ } else {
+ QList<QVariant> margins = property(QPrintEngine::PPK_PageMargins).toList();
+ val -= qRound(margins.at(0).toDouble() + margins.at(2).toDouble());
+ }
+ } else {
+ val = qt_get_PDMWidth(d->format(), property(PPK_FullPage).toBool(), d->resolution);
+ }
+ break;
+ case QPaintDevice::PdmHeight:
+ if (d->hasCustomPaperSize) {
+ val = qRound(d->customSize.height());
+ if (d->hasCustomPageMargins) {
+ val -= qRound(d->topMargin + d->bottomMargin);
+ } else {
+ QList<QVariant> margins = property(QPrintEngine::PPK_PageMargins).toList();
+ val -= qRound(margins.at(1).toDouble() + margins.at(3).toDouble());
+ }
+ } else {
+ val = qt_get_PDMHeight(d->format(), property(PPK_FullPage).toBool(), d->resolution);
+ }
+ break;
+ case QPaintDevice::PdmWidthMM:
+ val = metric(QPaintDevice::PdmWidth);
+ val = int((val * 254 + 5 * d->resolution.hRes) / (10 * d->resolution.hRes));
+ break;
+ case QPaintDevice::PdmHeightMM:
+ val = metric(QPaintDevice::PdmHeight);
+ val = int((val * 254 + 5 * d->resolution.vRes) / (10 * d->resolution.vRes));
+ break;
+ case QPaintDevice::PdmPhysicalDpiX:
+ case QPaintDevice::PdmPhysicalDpiY: {
+ PMPrinter printer;
+ if (PMSessionGetCurrentPrinter(d->session(), &printer) == noErr) {
+ PMResolution resolution;
+ PMPrinterGetOutputResolution(printer, d->settings(), &resolution);
+ val = (int)resolution.vRes;
+ break;
+ }
+ //otherwise fall through
+ }
+ case QPaintDevice::PdmDpiY:
+ val = (int)d->resolution.vRes;
+ break;
+ case QPaintDevice::PdmDpiX:
+ val = (int)d->resolution.hRes;
+ break;
+ case QPaintDevice::PdmNumColors:
+ val = (1 << metric(QPaintDevice::PdmDepth));
+ break;
+ case QPaintDevice::PdmDepth:
+ val = 24;
+ break;
+ default:
+ val = 0;
+ qWarning("QPrinter::metric: Invalid metric command");
+ }
+ return val;
+}
+
+void QMacPrintEnginePrivate::initialize()
+{
+ Q_Q(QMacPrintEngine);
+
+ Q_ASSERT(!printInfo);
+
+ if (!paintEngine)
+ paintEngine = new QCoreGraphicsPaintEngine();
+
+ q->gccaps = paintEngine->gccaps;
+
+ fullPage = false;
+
+ QCocoaAutoReleasePool pool;
+ printInfo = [[NSPrintInfo alloc] initWithDictionary:[NSDictionary dictionary]];
+
+ PMPrinter printer;
+ if (printInfo && PMSessionGetCurrentPrinter(session(), &printer) == noErr) {
+ QList<QVariant> resolutions = supportedResolutions();
+ if (!resolutions.isEmpty() && mode != QPrinter::ScreenResolution) {
+ if (resolutions.count() > 1 && mode == QPrinter::HighResolution) {
+ int max = 0;
+ for (int i = 0; i < resolutions.count(); ++i) {
+ int value = resolutions.at(i).toInt();
+ if (value > max)
+ max = value;
+ }
+ resolution.hRes = resolution.vRes = max;
+ } else {
+ resolution.hRes = resolution.vRes = resolutions.at(0).toInt();
+ }
+ if (resolution.hRes == 0)
+ resolution.hRes = resolution.vRes = 600;
+ } else {
+ resolution.hRes = resolution.vRes = qt_defaultDpi();
+ }
+ }
+
+ QHash<QMacPrintEngine::PrintEnginePropertyKey, QVariant>::const_iterator propC;
+ for (propC = valueCache.constBegin(); propC != valueCache.constEnd(); propC++) {
+ q->setProperty(propC.key(), propC.value());
+ }
+}
+
+void QMacPrintEnginePrivate::releaseSession()
+{
+ PMSessionEndPageNoDialog(session());
+ PMSessionEndDocumentNoDialog(session());
+ [printInfo release];
+ printInfo = 0;
+}
+
+bool QMacPrintEnginePrivate::newPage_helper()
+{
+ Q_Q(QMacPrintEngine);
+ Q_ASSERT(state == QPrinter::Active);
+
+ if (PMSessionError(session()) != noErr) {
+ q->abort();
+ return false;
+ }
+
+ // pop the stack of saved graphic states, in case we get the same
+ // context back - either way, the stack count should be 0 when we
+ // get the new one
+ QCoreGraphicsPaintEngine *cgEngine = static_cast<QCoreGraphicsPaintEngine*>(paintEngine);
+ while (cgEngine->d_func()->stackCount > 0)
+ cgEngine->d_func()->restoreGraphicsState();
+
+ OSStatus status = PMSessionBeginPageNoDialog(session(), format(), 0);
+ if (status != noErr) {
+ state = QPrinter::Error;
+ return false;
+ }
+
+ QRect page = q->property(QPrintEngine::PPK_PageRect).toRect();
+ QRect paper = q->property(QPrintEngine::PPK_PaperRect).toRect();
+
+ CGContextRef cgContext;
+ OSStatus err = noErr;
+ err = PMSessionGetCGGraphicsContext(session(), &cgContext);
+ if (err != noErr) {
+ qWarning("QMacPrintEngine::newPage: Cannot retrieve CoreGraphics context: %ld", long(err));
+ state = QPrinter::Error;
+ return false;
+ }
+ cgEngine->d_func()->hd = cgContext;
+
+ // Set the resolution as a scaling ration of 72 (the default).
+ CGContextScaleCTM(cgContext, 72 / resolution.hRes, 72 / resolution.vRes);
+
+ CGContextScaleCTM(cgContext, 1, -1);
+ CGContextTranslateCTM(cgContext, 0, -paper.height());
+ if (!fullPage)
+ CGContextTranslateCTM(cgContext, page.x() - paper.x(), page.y() - paper.y());
+ cgEngine->d_func()->orig_xform = CGContextGetCTM(cgContext);
+ cgEngine->d_func()->setClip(0);
+ cgEngine->state->dirtyFlags = QPaintEngine::DirtyFlag(QPaintEngine::AllDirty
+ & ~(QPaintEngine::DirtyClipEnabled
+ | QPaintEngine::DirtyClipRegion
+ | QPaintEngine::DirtyClipPath));
+ if (cgEngine->painter()->hasClipping())
+ cgEngine->state->dirtyFlags |= QPaintEngine::DirtyClipEnabled;
+ cgEngine->syncState();
+ return true;
+}
+
+
+void QMacPrintEngine::updateState(const QPaintEngineState &state)
+{
+ d_func()->paintEngine->updateState(state);
+}
+
+void QMacPrintEngine::drawRects(const QRectF *r, int num)
+{
+ Q_D(QMacPrintEngine);
+ Q_ASSERT(d->state == QPrinter::Active);
+ d->paintEngine->drawRects(r, num);
+}
+
+void QMacPrintEngine::drawPoints(const QPointF *points, int pointCount)
+{
+ Q_D(QMacPrintEngine);
+ Q_ASSERT(d->state == QPrinter::Active);
+ d->paintEngine->drawPoints(points, pointCount);
+}
+
+void QMacPrintEngine::drawEllipse(const QRectF &r)
+{
+ Q_D(QMacPrintEngine);
+ Q_ASSERT(d->state == QPrinter::Active);
+ d->paintEngine->drawEllipse(r);
+}
+
+void QMacPrintEngine::drawLines(const QLineF *lines, int lineCount)
+{
+ Q_D(QMacPrintEngine);
+ Q_ASSERT(d->state == QPrinter::Active);
+ d->paintEngine->drawLines(lines, lineCount);
+}
+
+void QMacPrintEngine::drawPolygon(const QPointF *points, int pointCount, PolygonDrawMode mode)
+{
+ Q_D(QMacPrintEngine);
+ Q_ASSERT(d->state == QPrinter::Active);
+ d->paintEngine->drawPolygon(points, pointCount, mode);
+}
+
+void QMacPrintEngine::drawPixmap(const QRectF &r, const QPixmap &pm, const QRectF &sr)
+{
+ Q_D(QMacPrintEngine);
+ Q_ASSERT(d->state == QPrinter::Active);
+ d->paintEngine->drawPixmap(r, pm, sr);
+}
+
+void QMacPrintEngine::drawImage(const QRectF &r, const QImage &pm, const QRectF &sr, Qt::ImageConversionFlags flags)
+{
+ Q_D(QMacPrintEngine);
+ Q_ASSERT(d->state == QPrinter::Active);
+ d->paintEngine->drawImage(r, pm, sr, flags);
+}
+
+void QMacPrintEngine::drawTextItem(const QPointF &p, const QTextItem &ti)
+{
+ Q_D(QMacPrintEngine);
+ Q_ASSERT(d->state == QPrinter::Active);
+ d->paintEngine->drawTextItem(p, ti);
+}
+
+void QMacPrintEngine::drawTiledPixmap(const QRectF &dr, const QPixmap &pixmap, const QPointF &sr)
+{
+ Q_D(QMacPrintEngine);
+ Q_ASSERT(d->state == QPrinter::Active);
+ d->paintEngine->drawTiledPixmap(dr, pixmap, sr);
+}
+
+void QMacPrintEngine::drawPath(const QPainterPath &path)
+{
+ Q_D(QMacPrintEngine);
+ Q_ASSERT(d->state == QPrinter::Active);
+ d->paintEngine->drawPath(path);
+}
+
+
+void QMacPrintEngine::setProperty(PrintEnginePropertyKey key, const QVariant &value)
+{
+ Q_D(QMacPrintEngine);
+
+ d->valueCache.insert(key, value);
+ if (!d->printInfo)
+ return;
+
+ switch (key) {
+ case PPK_CollateCopies:
+ break;
+ case PPK_ColorMode:
+ break;
+ case PPK_Creator:
+ break;
+ case PPK_DocumentName:
+ break;
+ case PPK_PageOrder:
+ break;
+ case PPK_PaperSource:
+ break;
+ case PPK_SelectionOption:
+ break;
+ case PPK_Resolution: {
+ PMPrinter printer;
+ UInt32 count;
+ if (PMSessionGetCurrentPrinter(d->session(), &printer) != noErr)
+ break;
+ if (PMPrinterGetPrinterResolutionCount(printer, &count) != noErr)
+ break;
+ PMResolution resolution = { 0.0, 0.0 };
+ PMResolution bestResolution = { 0.0, 0.0 };
+ int dpi = value.toInt();
+ int bestDistance = INT_MAX;
+ for (UInt32 i = 1; i <= count; ++i) { // Yes, it starts at 1
+ if (PMPrinterGetIndexedPrinterResolution(printer, i, &resolution) == noErr) {
+ if (dpi == int(resolution.hRes)) {
+ bestResolution = resolution;
+ break;
+ } else {
+ int distance = qAbs(dpi - int(resolution.hRes));
+ if (distance < bestDistance) {
+ bestDistance = distance;
+ bestResolution = resolution;
+ }
+ }
+ }
+ }
+ PMSessionValidatePageFormat(d->session(), d->format(), kPMDontWantBoolean);
+ break;
+ }
+
+ case PPK_FullPage:
+ d->fullPage = value.toBool();
+ break;
+ case PPK_CopyCount: // fallthrough
+ case PPK_NumberOfCopies:
+ PMSetCopies(d->settings(), value.toInt(), false);
+ break;
+ case PPK_Orientation: {
+ if (d->state == QPrinter::Active) {
+ qWarning("QMacPrintEngine::setOrientation: Orientation cannot be changed during a print job, ignoring change");
+ } else {
+ QPrinter::Orientation newOrientation = QPrinter::Orientation(value.toInt());
+ if (d->hasCustomPaperSize && (d->orient != newOrientation))
+ d->customSize = QSizeF(d->customSize.height(), d->customSize.width());
+ d->orient = newOrientation;
+ PMOrientation o = d->orient == QPrinter::Portrait ? kPMPortrait : kPMLandscape;
+ PMSetOrientation(d->format(), o, false);
+ PMSessionValidatePageFormat(d->session(), d->format(), kPMDontWantBoolean);
+ }
+ break; }
+ case PPK_OutputFileName:
+ d->outputFilename = value.toString();
+ break;
+ case PPK_PaperSize:
+ d->setPaperSize(QPrinter::PaperSize(value.toInt()));
+ break;
+ case PPK_PrinterName: {
+ bool printerNameSet = false;
+ OSStatus status = noErr;
+ QCFType<CFArrayRef> printerList;
+ status = PMServerCreatePrinterList(kPMServerLocal, &printerList);
+ if (status == noErr) {
+ CFIndex count = CFArrayGetCount(printerList);
+ for (CFIndex i=0; i<count; ++i) {
+ PMPrinter printer = static_cast<PMPrinter>(const_cast<void *>(CFArrayGetValueAtIndex(printerList, i)));
+ QString name = QCFString::toQString(PMPrinterGetName(printer));
+ if (name == value.toString()) {
+ status = PMSessionSetCurrentPMPrinter(d->session(), printer);
+ printerNameSet = true;
+ break;
+ }
+ }
+ }
+ if (status != noErr)
+ qWarning("QMacPrintEngine::setPrinterName: Error setting printer: %ld", long(status));
+ if (!printerNameSet) {
+ qWarning("QMacPrintEngine::setPrinterName: Failed to set printer named '%s'.", qPrintable(value.toString()));
+ d->releaseSession();
+ d->state = QPrinter::Idle;
+ }
+ break; }
+ case PPK_SuppressSystemPrintStatus:
+ break;
+ case PPK_CustomPaperSize:
+ {
+ PMOrientation orientation;
+ PMGetOrientation(d->format(), &orientation);
+ d->hasCustomPaperSize = true;
+ d->customSize = value.toSizeF();
+ if (orientation != kPMPortrait)
+ d->customSize = QSizeF(d->customSize.height(), d->customSize.width());
+ break;
+ }
+ case PPK_PageMargins:
+ {
+ QList<QVariant> margins(value.toList());
+ Q_ASSERT(margins.size() == 4);
+ d->leftMargin = margins.at(0).toDouble();
+ d->topMargin = margins.at(1).toDouble();
+ d->rightMargin = margins.at(2).toDouble();
+ d->bottomMargin = margins.at(3).toDouble();
+ d->hasCustomPageMargins = true;
+ break;
+ }
+
+ default:
+ break;
+ }
+}
+
+QVariant QMacPrintEngine::property(PrintEnginePropertyKey key) const
+{
+ Q_D(const QMacPrintEngine);
+ QVariant ret;
+
+ if (!d->printInfo && d->valueCache.contains(key))
+ return *d->valueCache.find(key);
+
+ switch (key) {
+ case PPK_CollateCopies:
+ ret = false;
+ break;
+ case PPK_ColorMode:
+ ret = QPrinter::Color;
+ break;
+ case PPK_Creator:
+ break;
+ case PPK_DocumentName:
+ break;
+ case PPK_FullPage:
+ ret = d->fullPage;
+ break;
+ case PPK_NumberOfCopies:
+ ret = 1;
+ break;
+ case PPK_CopyCount: {
+ UInt32 copies = 1;
+ PMGetCopies(d->settings(), &copies);
+ ret = (uint) copies;
+ break;
+ }
+ case PPK_SupportsMultipleCopies:
+ ret = true;
+ break;
+ case PPK_Orientation:
+ PMOrientation orientation;
+ PMGetOrientation(d->format(), &orientation);
+ ret = orientation == kPMPortrait ? QPrinter::Portrait : QPrinter::Landscape;
+ break;
+ case PPK_OutputFileName:
+ ret = d->outputFilename;
+ break;
+ case PPK_PageOrder:
+ break;
+ case PPK_PaperSource:
+ break;
+ case PPK_PageRect: {
+ // PageRect is returned in device pixels
+ QRect r;
+ PMRect macrect, macpaper;
+ qreal hRatio = d->resolution.hRes / 72;
+ qreal vRatio = d->resolution.vRes / 72;
+ if (d->hasCustomPaperSize) {
+ r = QRect(0, 0, qRound(d->customSize.width() * hRatio), qRound(d->customSize.height() * vRatio));
+ if (d->hasCustomPageMargins) {
+ r.adjust(qRound(d->leftMargin * hRatio), qRound(d->topMargin * vRatio),
+ -qRound(d->rightMargin * hRatio), -qRound(d->bottomMargin * vRatio));
+ } else {
+ QList<QVariant> margins = property(QPrintEngine::PPK_PageMargins).toList();
+ r.adjust(qRound(margins.at(0).toDouble() * hRatio),
+ qRound(margins.at(1).toDouble() * vRatio),
+ -qRound(margins.at(2).toDouble() * hRatio),
+ -qRound(margins.at(3).toDouble()) * vRatio);
+ }
+ } else if (PMGetAdjustedPageRect(d->format(), &macrect) == noErr
+ && PMGetAdjustedPaperRect(d->format(), &macpaper) == noErr)
+ {
+ if (d->fullPage || d->hasCustomPageMargins) {
+ r.setCoords(int(macpaper.left * hRatio), int(macpaper.top * vRatio),
+ int(macpaper.right * hRatio), int(macpaper.bottom * vRatio));
+ r.translate(-r.x(), -r.y());
+ if (d->hasCustomPageMargins) {
+ r.adjust(qRound(d->leftMargin * hRatio), qRound(d->topMargin * vRatio),
+ -qRound(d->rightMargin * hRatio), -qRound(d->bottomMargin * vRatio));
+ }
+ } else {
+ r.setCoords(int(macrect.left * hRatio), int(macrect.top * vRatio),
+ int(macrect.right * hRatio), int(macrect.bottom * vRatio));
+ r.translate(int(-macpaper.left * hRatio), int(-macpaper.top * vRatio));
+ }
+ }
+ ret = r;
+ break; }
+ case PPK_PaperSize:
+ ret = d->paperSize();
+ break;
+ case PPK_PaperRect: {
+ QRect r;
+ PMRect macrect;
+ qreal hRatio = d->resolution.hRes / 72;
+ qreal vRatio = d->resolution.vRes / 72;
+ if (d->hasCustomPaperSize) {
+ r = QRect(0, 0, qRound(d->customSize.width() * hRatio), qRound(d->customSize.height() * vRatio));
+ } else if (PMGetAdjustedPaperRect(d->format(), &macrect) == noErr) {
+ r.setCoords(int(macrect.left * hRatio), int(macrect.top * vRatio),
+ int(macrect.right * hRatio), int(macrect.bottom * vRatio));
+ r.translate(-r.x(), -r.y());
+ }
+ ret = r;
+ break; }
+ case PPK_PrinterName: {
+ PMPrinter printer;
+ OSStatus status = PMSessionGetCurrentPrinter(d->session(), &printer);
+ if (status != noErr)
+ qWarning("QMacPrintEngine::printerName: Failed getting current PMPrinter: %ld", long(status));
+ if (printer)
+ ret = QCFString::toQString(PMPrinterGetName(printer));
+ break; }
+ case PPK_Resolution: {
+ ret = d->resolution.hRes;
+ break;
+ }
+ case PPK_SupportedResolutions:
+ ret = d->supportedResolutions();
+ break;
+ case PPK_CustomPaperSize:
+ ret = d->customSize;
+ break;
+ case PPK_PageMargins:
+ {
+ QList<QVariant> margins;
+ if (d->hasCustomPageMargins) {
+ margins << d->leftMargin << d->topMargin
+ << d->rightMargin << d->bottomMargin;
+ } else {
+ PMPaperMargins paperMargins;
+ PMPaper paper;
+ PMGetPageFormatPaper(d->format(), &paper);
+ PMPaperGetMargins(paper, &paperMargins);
+ margins << paperMargins.left << paperMargins.top
+ << paperMargins.right << paperMargins.bottom;
+ }
+ ret = margins;
+ break;
+ }
+ default:
+ break;
+ }
+ return ret;
+}
+
+QT_END_NAMESPACE
+
+#endif // QT_NO_PRINTER
diff --git a/src/plugins/platforms/cocoa/qprintengine_mac_p.h b/src/plugins/platforms/cocoa/qprintengine_mac_p.h
new file mode 100644
index 0000000000..2d37b43dfa
--- /dev/null
+++ b/src/plugins/platforms/cocoa/qprintengine_mac_p.h
@@ -0,0 +1,160 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this
+** file. Please review the following information to ensure the GNU Lesser
+** General Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QPRINTENGINE_MAC_P_H
+#define QPRINTENGINE_MAC_P_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#ifndef QT_NO_PRINTER
+
+#include <QtPrintSupport/qprinter.h>
+#include <QtPrintSupport/qprintengine.h>
+#include <QtGui/private/qpainter_p.h>
+
+#include "qpaintengine_mac_p.h"
+
+#ifdef __OBJC__
+@class NSPrintInfo;
+#else
+typedef void NSPrintInfo;
+#endif
+
+QT_BEGIN_NAMESPACE
+
+class QPrinterPrivate;
+class QMacPrintEnginePrivate;
+class QMacPrintEngine : public QPaintEngine, public QPrintEngine
+{
+ Q_DECLARE_PRIVATE(QMacPrintEngine)
+public:
+ QMacPrintEngine(QPrinter::PrinterMode mode);
+
+ Qt::HANDLE handle() const;
+
+ bool begin(QPaintDevice *dev);
+ bool end();
+ virtual QPaintEngine::Type type() const { return QPaintEngine::MacPrinter; }
+
+ QPaintEngine *paintEngine() const;
+
+ void setProperty(PrintEnginePropertyKey key, const QVariant &value);
+ QVariant property(PrintEnginePropertyKey key) const;
+
+ QPrinter::PrinterState printerState() const;
+
+ bool newPage();
+ bool abort();
+ int metric(QPaintDevice::PaintDeviceMetric) const;
+
+ //forwarded functions
+
+ void updateState(const QPaintEngineState &state);
+
+ virtual void drawLines(const QLineF *lines, int lineCount);
+ virtual void drawRects(const QRectF *r, int num);
+ virtual void drawPoints(const QPointF *p, int pointCount);
+ virtual void drawEllipse(const QRectF &r);
+ virtual void drawPolygon(const QPointF *points, int pointCount, PolygonDrawMode mode);
+ virtual void drawPixmap(const QRectF &r, const QPixmap &pm, const QRectF &sr);
+ virtual void drawImage(const QRectF &r, const QImage &pm, const QRectF &sr, Qt::ImageConversionFlags flags);
+ virtual void drawTextItem(const QPointF &p, const QTextItem &ti);
+ virtual void drawTiledPixmap(const QRectF &r, const QPixmap &pixmap, const QPointF &s);
+ virtual void drawPath(const QPainterPath &);
+
+private:
+ friend class QCocoaNativeInterface;
+};
+
+class QMacPrintEnginePrivate : public QPaintEnginePrivate
+{
+ Q_DECLARE_PUBLIC(QMacPrintEngine)
+public:
+ QPrinter::PrinterMode mode;
+ QPrinter::PrinterState state;
+ QPrinter::Orientation orient;
+ NSPrintInfo *printInfo;
+ PMResolution resolution;
+ QString outputFilename;
+ bool fullPage;
+ QPaintEngine *paintEngine;
+ bool hasCustomPaperSize;
+ QSizeF customSize;
+ bool hasCustomPageMargins;
+ qreal leftMargin;
+ qreal topMargin;
+ qreal rightMargin;
+ qreal bottomMargin;
+ QHash<QMacPrintEngine::PrintEnginePropertyKey, QVariant> valueCache;
+ QMacPrintEnginePrivate() : mode(QPrinter::ScreenResolution), state(QPrinter::Idle),
+ orient(QPrinter::Portrait), printInfo(0), paintEngine(0),
+ hasCustomPaperSize(false), hasCustomPageMargins(false) {}
+ ~QMacPrintEnginePrivate();
+ void initialize();
+ void releaseSession();
+ bool newPage_helper();
+ void setPaperSize(QPrinter::PaperSize ps);
+ QPrinter::PaperSize paperSize() const;
+ QList<QVariant> supportedResolutions() const;
+ inline bool isPrintSessionInitialized() const
+ {
+ return printInfo != 0;
+ }
+
+ PMPageFormat format() const { return static_cast<PMPageFormat>([printInfo PMPageFormat]); }
+ PMPrintSession session() const { return static_cast<PMPrintSession>([printInfo PMPrintSession]); }
+ PMPrintSettings settings() const { return static_cast<PMPrintSettings>([printInfo PMPrintSettings]); }
+};
+
+QT_END_NAMESPACE
+
+#endif // QT_NO_PRINTER
+
+#endif // QPRINTENGINE_WIN_P_H
diff --git a/src/plugins/platforms/cocoa/qt_mac_p.h b/src/plugins/platforms/cocoa/qt_mac_p.h
index b75e6e2bcb..f881965b32 100644
--- a/src/plugins/platforms/cocoa/qt_mac_p.h
+++ b/src/plugins/platforms/cocoa/qt_mac_p.h
@@ -159,7 +159,7 @@ class QMacCGContext
{
CGContextRef context;
public:
- QMacCGContext(QPainter *p); //qpaintengine_mac.cpp
+ QMacCGContext(QPainter *p); //qpaintengine_mac.mm
inline QMacCGContext() { context = 0; }
inline QMacCGContext(const QPaintDevice *pdev) {
extern CGContextRef qt_mac_cg_context(const QPaintDevice *);
diff --git a/src/plugins/platforms/eglfs/eglfs.json b/src/plugins/platforms/eglfs/eglfs.json
new file mode 100644
index 0000000000..c1ad6ca028
--- /dev/null
+++ b/src/plugins/platforms/eglfs/eglfs.json
@@ -0,0 +1,3 @@
+{
+ "Keys": [ "eglfs" ]
+}
diff --git a/src/plugins/platforms/eglfs/eglfs.pro b/src/plugins/platforms/eglfs/eglfs.pro
index 291e09d6ed..ed8503b53c 100644
--- a/src/plugins/platforms/eglfs/eglfs.pro
+++ b/src/plugins/platforms/eglfs/eglfs.pro
@@ -1,6 +1,5 @@
TARGET = qeglfs
-TEMPLATE = lib
-CONFIG += plugin
+load(qt_plugin)
QT += core-private gui-private platformsupport-private
@@ -29,3 +28,6 @@ CONFIG += qpa/genericunixfontdatabase
target.path += $$[QT_INSTALL_PLUGINS]/platforms
INSTALLS += target
+
+OTHER_FILES += \
+ eglfs.json
diff --git a/src/plugins/platforms/eglfs/main.cpp b/src/plugins/platforms/eglfs/main.cpp
index e4167bf173..2ca2199619 100644
--- a/src/plugins/platforms/eglfs/main.cpp
+++ b/src/plugins/platforms/eglfs/main.cpp
@@ -46,6 +46,8 @@ QT_BEGIN_NAMESPACE
class QEglIntegrationPlugin : public QPlatformIntegrationPlugin
{
+ Q_OBJECT
+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QPlatformIntegrationFactoryInterface" FILE "eglfs.json")
public:
QStringList keys() const;
QPlatformIntegration *create(const QString&, const QStringList&);
@@ -67,6 +69,6 @@ QPlatformIntegration* QEglIntegrationPlugin::create(const QString& system, const
return 0;
}
-Q_EXPORT_PLUGIN2(eglintegration, QEglIntegrationPlugin)
-
QT_END_NAMESPACE
+
+#include "main.moc"
diff --git a/src/plugins/platforms/qnx/qqnxwindow.h b/src/plugins/platforms/qnx/qqnxwindow.h
index 9507b08ade..9c03af7594 100644
--- a/src/plugins/platforms/qnx/qqnxwindow.h
+++ b/src/plugins/platforms/qnx/qqnxwindow.h
@@ -60,7 +60,6 @@ QT_BEGIN_NAMESPACE
class QQnxGLContext;
class QQnxScreen;
-class QPlatformGLContext;
class QSurfaceFormat;
class QQnxWindow : public QPlatformWindow
diff --git a/src/plugins/platforms/uikit/README b/src/plugins/platforms/uikit/README
deleted file mode 100644
index f878cce50e..0000000000
--- a/src/plugins/platforms/uikit/README
+++ /dev/null
@@ -1,45 +0,0 @@
-This is a proof-of-concept implemenation of a UIKit based
-QPA plugin. Note that this is completely unsupported, and it is probable
-that many parts of QtCore and other Qt Modules don't work properly.
-
-1) Build Qt
-
-The example Xcode project in the examples subdirectory requires that you do shadow
-builds of Qt in qt-lighthouse-ios-simulator and qt-lighthouse-ios-device directories
-parallel to the sources. To build for simulator make sure that both the Simulator
-configuration *and* the simulator specific target are active. To build for device
-make sure that both the Device configuration *and* the device specific target are
-active.
-
-The setup is configured to use the iOS 4.2 SDKs, you might want to edit the mkspecs
-to fit your need.
-
-After configuring and building Qt you need to also build src/plugins/platforms/uikit.
-
-Simulator:
-----------
-configure -qpa -xplatform qws/macx-iphonesimulator-g++ -arch i386 -developer-build -opengl es1 -no-accessibility -no-qt3support -no-multimedia -no-phonon -no-phonon-backend -no-svg -no-webkit -no-scripttools -no-openssl -no-sql-mysql -no-sql-odbc -no-cups -no-iconv -no-dbus -static -nomake tools -nomake docs -nomake examples -nomake translations
-
-Device:
--------
-configure -qpa -xplatform qws/macx-iphonedevice-g++ -arch armv7 -developer-build -release -opengl es1 -no-accessibility -no-qt3support -no-multimedia -no-phonon -no-phonon-backend -no-svg -no-webkit -no-scripttools -no-openssl -no-sql-mysql -no-sql-odbc -no-cups -no-iconv -no-dbus -static -nomake tools -nomake docs -nomake examples -nomake translations
-
-2) XCode setup:
-- there are examples in the examples subdirectory of the platform plugin
-- to create something fresh do something like:
- - Xcode: Create a "View-based Appplication"
- - remove the nibs and view controller and app controller files
- - remove the reference to "Main nib file" from plist file
- - create a main.mm like in the examples
- - add the qmlapplicationviewer sources to your project (including the moc_*.h)
- (best to link, not copy), the code for this is from the Qt Creator
- mobile Qt Quick application template
- - Add the Qt .a libraries, uikit platform plugin and libz (v1.2.3) to Frameworks
- - add "$(SRCROOT)/../../../../qt-lighthouse-ios-device/include" (or -simulator)
- to the include search paths.
- - add "$(SRCROOT)/../qmltest" to the include search path if you didn't copy but
- linked to the qmlapplicationviewer
- - for device set the architecture to armv7 only
-
-3) Done: Build and Run.
-
diff --git a/src/plugins/platforms/uikit/examples/qmltest/main.mm b/src/plugins/platforms/uikit/examples/qmltest/main.mm
deleted file mode 100644
index 68eef2a353..0000000000
--- a/src/plugins/platforms/uikit/examples/qmltest/main.mm
+++ /dev/null
@@ -1,78 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the plugins of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#import <UIKit/UIKit.h>
-
-#include "qmlapplicationviewer/qmlapplicationviewer.h"
-
-#include <QtGui/QApplication>
-#include <QtCore/QtPlugin>
-#include <QtDeclarative/QDeclarativeEngine>
-
-Q_IMPORT_PLUGIN(UIKit)
-
-static QString qStringFromNSString(NSString *nsstring)
-{
- return QString::fromUtf8([nsstring UTF8String]);
-}
-
-static QString documentsDirectory()
-{
- NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
- NSString *documentsDirectory = [paths objectAtIndex:0];
- return qStringFromNSString(documentsDirectory);
-}
-
-int main(int argc, char *argv[]) {
-
- NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
-
- QApplication app(argc, argv);
- QmlApplicationViewer viewer;
- viewer.setOrientation(QmlApplicationViewer::ScreenOrientationAuto);
- viewer.engine()->setOfflineStoragePath(documentsDirectory());
- NSString *resourcePath = [[NSBundle mainBundle] resourcePath];
- viewer.setMainQmlFile(qStringFromNSString([resourcePath stringByAppendingPathComponent:@"qml/main.qml"]));
- viewer.showMaximized();
- int retVal = app.exec();
- [pool release];
- return retVal;
-}
diff --git a/src/plugins/platforms/uikit/examples/qmltest/qml/main.qml b/src/plugins/platforms/uikit/examples/qmltest/qml/main.qml
deleted file mode 100644
index 07e8eb08a6..0000000000
--- a/src/plugins/platforms/uikit/examples/qmltest/qml/main.qml
+++ /dev/null
@@ -1,112 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the examples of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
-** the names of its contributors may be used to endorse or promote
-** products derived from this software without specific prior written
-** permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick 1.0
-
-Rectangle {
- id: box
- width: 350; height: 250
-
- Rectangle {
- id: redSquare
- width: 80; height: 80
- anchors.top: parent.top; anchors.left: parent.left; anchors.margins: 10
- color: "red"
-
- Text { text: "Click"; font.pixelSize: 16; anchors.centerIn: parent }
-
- MouseArea {
- anchors.fill: parent
- hoverEnabled: true
- acceptedButtons: Qt.LeftButton | Qt.RightButton
-
- onEntered: info.text = 'Entered'
- onExited: info.text = 'Exited (pressed=' + pressed + ')'
-
- onPressed: {
- info.text = 'Pressed (button=' + (mouse.button == Qt.RightButton ? 'right' : 'left')
- + ' shift=' + (mouse.modifiers & Qt.ShiftModifier ? 'true' : 'false') + ')'
- var posInBox = redSquare.mapToItem(box, mouse.x, mouse.y)
- posInfo.text = + mouse.x + ',' + mouse.y + ' in square'
- + ' (' + posInBox.x + ',' + posInBox.y + ' in window)'
- }
-
- onReleased: {
- info.text = 'Released (isClick=' + mouse.isClick + ' wasHeld=' + mouse.wasHeld + ')'
- posInfo.text = ''
- }
-
- onPressAndHold: info.text = 'Press and hold'
- onClicked: info.text = 'Clicked (wasHeld=' + mouse.wasHeld + ')'
- onDoubleClicked: info.text = 'Double clicked'
- }
- }
-
- Rectangle {
- id: blueSquare
- width: 80; height: 80
- x: box.width - width - 10; y: 10 // making this item draggable, so don't use anchors
- color: "blue"
-
- Text { text: "Drag"; font.pixelSize: 16; color: "white"; anchors.centerIn: parent }
-
- MouseArea {
- anchors.fill: parent
- drag.target: blueSquare
- drag.axis: Drag.XandYAxis
- drag.minimumX: 0
- drag.maximumX: box.width - parent.width
- drag.minimumY: 0
- drag.maximumY: box.height - parent.width
- }
- }
-
- Text {
- id: info
- anchors.bottom: posInfo.top; anchors.horizontalCenter: parent.horizontalCenter; anchors.margins: 30
-
- onTextChanged: console.log(text)
- }
-
- Text {
- id: posInfo
- anchors.bottom: parent.bottom; anchors.horizontalCenter: parent.horizontalCenter; anchors.margins: 30
- }
-}
diff --git a/src/plugins/platforms/uikit/examples/qmltest/qmlapplicationviewer/moc_qmlapplicationviewer.cpp b/src/plugins/platforms/uikit/examples/qmltest/qmlapplicationviewer/moc_qmlapplicationviewer.cpp
deleted file mode 100644
index 2b36a87272..0000000000
--- a/src/plugins/platforms/uikit/examples/qmltest/qmlapplicationviewer/moc_qmlapplicationviewer.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the plugins of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/****************************************************************************
-** Meta object code from reading C++ file 'qmlapplicationviewer.h'
-**
-** Created: Fri Feb 18 17:53:42 2011
-** by: The Qt Meta Object Compiler version 62 (Qt 4.7.2)
-**
-** WARNING! All changes made in this file will be lost!
-*****************************************************************************/
-
-#include "qmlapplicationviewer.h"
-#if !defined(Q_MOC_OUTPUT_REVISION)
-#error "The header file 'qmlapplicationviewer.h' doesn't include <QObject>."
-#elif Q_MOC_OUTPUT_REVISION != 62
-#error "This file was generated using the moc from 4.7.2. It"
-#error "cannot be used with the include files from this version of Qt."
-#error "(The moc has changed too much.)"
-#endif
-
-QT_BEGIN_MOC_NAMESPACE
-static const uint qt_meta_data_QmlApplicationViewer[] = {
-
- // content:
- 5, // revision
- 0, // classname
- 0, 0, // classinfo
- 0, 0, // methods
- 0, 0, // properties
- 0, 0, // enums/sets
- 0, 0, // constructors
- 0, // flags
- 0, // signalCount
-
- 0 // eod
-};
-
-static const char qt_meta_stringdata_QmlApplicationViewer[] = {
- "QmlApplicationViewer\0"
-};
-
-const QMetaObject QmlApplicationViewer::staticMetaObject = {
- { &QDeclarativeView::staticMetaObject, qt_meta_stringdata_QmlApplicationViewer,
- qt_meta_data_QmlApplicationViewer, 0 }
-};
-
-#ifdef Q_NO_DATA_RELOCATION
-const QMetaObject &QmlApplicationViewer::getStaticMetaObject() { return staticMetaObject; }
-#endif //Q_NO_DATA_RELOCATION
-
-const QMetaObject *QmlApplicationViewer::metaObject() const
-{
- return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
-}
-
-void *QmlApplicationViewer::qt_metacast(const char *_clname)
-{
- if (!_clname) return 0;
- if (!strcmp(_clname, qt_meta_stringdata_QmlApplicationViewer))
- return static_cast<void*>(const_cast< QmlApplicationViewer*>(this));
- return QDeclarativeView::qt_metacast(_clname);
-}
-
-int QmlApplicationViewer::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
-{
- _id = QDeclarativeView::qt_metacall(_c, _id, _a);
- if (_id < 0)
- return _id;
- return _id;
-}
-QT_END_MOC_NAMESPACE
diff --git a/src/plugins/platforms/uikit/examples/qmltest/qmlapplicationviewer/qmlapplicationviewer.cpp b/src/plugins/platforms/uikit/examples/qmltest/qmlapplicationviewer/qmlapplicationviewer.cpp
deleted file mode 100644
index aba9366d47..0000000000
--- a/src/plugins/platforms/uikit/examples/qmltest/qmlapplicationviewer/qmlapplicationviewer.cpp
+++ /dev/null
@@ -1,179 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the plugins of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-// checksum 0x17fa version 0x3000a
-/*
- This file was generated by the Qt Quick Application wizard of Qt Creator.
- QmlApplicationViewer is a convenience class containing mobile device specific
- code such as screen orientation handling. Also QML paths and debugging are
- handled here.
- It is recommended not to modify this file, since newer versions of Qt Creator
- may offer an updated version of it.
-*/
-
-#include "qmlapplicationviewer.h"
-
-#include <QtCore/QCoreApplication>
-#include <QtCore/QDir>
-#include <QtCore/QFileInfo>
-#include <QtDeclarative/QDeclarativeComponent>
-#include <QtDeclarative/QDeclarativeEngine>
-#include <QtDeclarative/QDeclarativeContext>
-
-#if defined(QMLJSDEBUGGER)
-#include <qt_private/qdeclarativedebughelper_p.h>
-#endif
-
-#if defined(QMLJSDEBUGGER) && !defined(NO_JSDEBUGGER)
-#include <jsdebuggeragent.h>
-#endif
-#if defined(QMLJSDEBUGGER) && !defined(NO_QMLOBSERVER)
-#include <qdeclarativeviewobserver.h>
-#endif
-
-#if defined(QMLJSDEBUGGER)
-
-// Enable debugging before any QDeclarativeEngine is created
-struct QmlJsDebuggingEnabler
-{
- QmlJsDebuggingEnabler()
- {
- QDeclarativeDebugHelper::enableDebugging();
- }
-};
-
-// Execute code in constructor before first QDeclarativeEngine is instantiated
-static QmlJsDebuggingEnabler enableDebuggingHelper;
-
-#endif // QMLJSDEBUGGER
-
-class QmlApplicationViewerPrivate
-{
- QString mainQmlFile;
- friend class QmlApplicationViewer;
- static QString adjustPath(const QString &path);
-};
-
-QString QmlApplicationViewerPrivate::adjustPath(const QString &path)
-{
-#ifdef Q_OS_UNIX
-#ifdef Q_OS_MAC
- if (!QDir::isAbsolutePath(path))
- return QCoreApplication::applicationDirPath()
- + QLatin1String("/../Resources/") + path;
-#else
- const QString pathInShareDir = QCoreApplication::applicationDirPath()
- + QLatin1String("/../share/")
- + QFileInfo(QCoreApplication::applicationFilePath()).fileName()
- + QLatin1Char('/') + path;
- if (QFileInfo(pathInShareDir).exists())
- return pathInShareDir;
-#endif
-#endif
- return path;
-}
-
-QmlApplicationViewer::QmlApplicationViewer(QWidget *parent) :
- QDeclarativeView(parent),
- m_d(new QmlApplicationViewerPrivate)
-{
- connect(engine(), SIGNAL(quit()), SLOT(close()));
- setResizeMode(QDeclarativeView::SizeRootObjectToView);
-#if defined(QMLJSDEBUGGER) && !defined(NO_JSDEBUGGER)
- new QmlJSDebugger::JSDebuggerAgent(engine());
-#endif
-#if defined(QMLJSDEBUGGER) && !defined(NO_QMLOBSERVER)
- new QmlJSDebugger::QDeclarativeViewObserver(this, parent);
-#endif
-}
-
-QmlApplicationViewer::~QmlApplicationViewer()
-{
- delete m_d;
-}
-
-void QmlApplicationViewer::setMainQmlFile(const QString &file)
-{
- m_d->mainQmlFile = QmlApplicationViewerPrivate::adjustPath(file);
- setSource(QUrl::fromLocalFile(m_d->mainQmlFile));
-}
-
-void QmlApplicationViewer::addImportPath(const QString &path)
-{
- engine()->addImportPath(QmlApplicationViewerPrivate::adjustPath(path));
-}
-
-void QmlApplicationViewer::setOrientation(ScreenOrientation orientation)
-{
-// Qt::WidgetAttribute attribute;
-// switch (orientation) {
-//#if QT_VERSION < 0x040702
-// // Qt < 4.7.2 does not yet have the Qt::WA_*Orientation attributes
-// case ScreenOrientationLockPortrait:
-// attribute = static_cast<Qt::WidgetAttribute>(128);
-// break;
-// case ScreenOrientationLockLandscape:
-// attribute = static_cast<Qt::WidgetAttribute>(129);
-// break;
-// default:
-// case ScreenOrientationAuto:
-// attribute = static_cast<Qt::WidgetAttribute>(130);
-// break;
-//#else // QT_VERSION < 0x040702
-// case ScreenOrientationLockPortrait:
-// attribute = Qt::WA_LockPortraitOrientation;
-// break;
-// case ScreenOrientationLockLandscape:
-// attribute = Qt::WA_LockLandscapeOrientation;
-// break;
-// default:
-// case ScreenOrientationAuto:
-// attribute = Qt::WA_AutoOrientation;
-// break;
-//#endif // QT_VERSION < 0x040702
-// };
-// setAttribute(attribute, true);
-}
-
-void QmlApplicationViewer::showExpanded()
-{
- show();
-}
diff --git a/src/plugins/platforms/uikit/examples/qmltest/qmlapplicationviewer/qmlapplicationviewer.h b/src/plugins/platforms/uikit/examples/qmltest/qmlapplicationviewer/qmlapplicationviewer.h
deleted file mode 100644
index e2ee5b5069..0000000000
--- a/src/plugins/platforms/uikit/examples/qmltest/qmlapplicationviewer/qmlapplicationviewer.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the plugins of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-// checksum 0x5a59 version 0x3000a
-/*
- This file was generated by the Qt Quick Application wizard of Qt Creator.
- QmlApplicationViewer is a convenience class containing mobile device specific
- code such as screen orientation handling. Also QML paths and debugging are
- handled here.
- It is recommended not to modify this file, since newer versions of Qt Creator
- may offer an updated version of it.
-*/
-
-#ifndef QMLAPPLICATIONVIEWER_H
-#define QMLAPPLICATIONVIEWER_H
-
-#include <QtDeclarative/QDeclarativeView>
-
-class QmlApplicationViewer : public QDeclarativeView
-{
- Q_OBJECT
-
-public:
- enum ScreenOrientation {
- ScreenOrientationLockPortrait,
- ScreenOrientationLockLandscape,
- ScreenOrientationAuto
- };
-
- explicit QmlApplicationViewer(QWidget *parent = 0);
- virtual ~QmlApplicationViewer();
-
- void setMainQmlFile(const QString &file);
- void addImportPath(const QString &path);
- void setOrientation(ScreenOrientation orientation);
- void showExpanded();
-
-private:
- class QmlApplicationViewerPrivate *m_d;
-};
-
-#endif // QMLAPPLICATIONVIEWER_H
diff --git a/src/plugins/platforms/uikit/examples/qmltest/qmltest-Info.plist b/src/plugins/platforms/uikit/examples/qmltest/qmltest-Info.plist
deleted file mode 100644
index 15665856b0..0000000000
--- a/src/plugins/platforms/uikit/examples/qmltest/qmltest-Info.plist
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
- <key>CFBundleDevelopmentRegion</key>
- <string>English</string>
- <key>CFBundleDisplayName</key>
- <string>${PRODUCT_NAME}</string>
- <key>CFBundleExecutable</key>
- <string>${EXECUTABLE_NAME}</string>
- <key>CFBundleIconFile</key>
- <string></string>
- <key>CFBundleIdentifier</key>
- <string>com.yourcompany.${PRODUCT_NAME:rfc1034identifier}</string>
- <key>CFBundleInfoDictionaryVersion</key>
- <string>6.0</string>
- <key>CFBundleName</key>
- <string>${PRODUCT_NAME}</string>
- <key>CFBundlePackageType</key>
- <string>APPL</string>
- <key>CFBundleSignature</key>
- <string>????</string>
- <key>CFBundleVersion</key>
- <string>1.0</string>
- <key>LSRequiresIPhoneOS</key>
- <true/>
-</dict>
-</plist>
diff --git a/src/plugins/platforms/uikit/examples/qmltest/qmltest.xcodeproj/project.pbxproj b/src/plugins/platforms/uikit/examples/qmltest/qmltest.xcodeproj/project.pbxproj
deleted file mode 100755
index 10bb20fcb9..0000000000
--- a/src/plugins/platforms/uikit/examples/qmltest/qmltest.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,491 +0,0 @@
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 45;
- objects = {
-
-/* Begin PBXBuildFile section */
- 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; };
- 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; };
- 288765A50DF7441C002DB57D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765A40DF7441C002DB57D /* CoreGraphics.framework */; };
- D316594E1338B29E00760B02 /* libQtXml_debug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D31659431338B21000760B02 /* libQtXml_debug.a */; };
- D316594F1338B29E00760B02 /* libQtXmlPatterns_debug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D31659441338B21000760B02 /* libQtXmlPatterns_debug.a */; };
- D35784241345D8C90046D202 /* libQtOpenGL_debug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D35784231345D8C90046D202 /* libQtOpenGL_debug.a */; };
- D35784261345D9940046D202 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D35784251345D9940046D202 /* OpenGLES.framework */; };
- D35784281345D9E00046D202 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D35784271345D9E00046D202 /* QuartzCore.framework */; };
- D3578436134A09990046D202 /* libQtOpenGL.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D3578435134A09990046D202 /* libQtOpenGL.a */; };
- D3578439134A0AAE0046D202 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D35784251345D9940046D202 /* OpenGLES.framework */; };
- D357843A134A0AB10046D202 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D35784271345D9E00046D202 /* QuartzCore.framework */; };
- D3CAA7C813264AAD008BB877 /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = D3CAA7C713264AAD008BB877 /* main.mm */; };
- D3CAA7E613264EA6008BB877 /* moc_qmlapplicationviewer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D3CAA7E313264EA6008BB877 /* moc_qmlapplicationviewer.cpp */; };
- D3CAA7E713264EA6008BB877 /* qmlapplicationviewer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D3CAA7E413264EA6008BB877 /* qmlapplicationviewer.cpp */; };
- D3CAA7EC13264F52008BB877 /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = D3CAA7C713264AAD008BB877 /* main.mm */; };
- D3CAA7ED13264F52008BB877 /* moc_qmlapplicationviewer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D3CAA7E313264EA6008BB877 /* moc_qmlapplicationviewer.cpp */; };
- D3CAA7EE13264F52008BB877 /* qmlapplicationviewer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D3CAA7E413264EA6008BB877 /* qmlapplicationviewer.cpp */; };
- D3CAA7F013264F52008BB877 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; };
- D3CAA7F113264F52008BB877 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; };
- D3CAA7F213264F52008BB877 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765A40DF7441C002DB57D /* CoreGraphics.framework */; };
- D3CAA7FA13264F8A008BB877 /* libz.1.2.3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D3CAA7F913264F8A008BB877 /* libz.1.2.3.dylib */; };
- D3CAA81113264FF0008BB877 /* libz.1.2.3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D3CAA7F913264F8A008BB877 /* libz.1.2.3.dylib */; };
- D3CAA81B13265056008BB877 /* libQtCore_debug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D3CAA81613265056008BB877 /* libQtCore_debug.a */; };
- D3CAA81C13265056008BB877 /* libQtDeclarative_debug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D3CAA81713265056008BB877 /* libQtDeclarative_debug.a */; };
- D3CAA81D13265056008BB877 /* libQtGui_debug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D3CAA81813265056008BB877 /* libQtGui_debug.a */; };
- D3CAA81E13265056008BB877 /* libQtScript_debug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D3CAA81913265056008BB877 /* libQtScript_debug.a */; };
- D3CAA81F13265056008BB877 /* libQtSql_debug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D3CAA81A13265056008BB877 /* libQtSql_debug.a */; };
- D3CAA8211326507D008BB877 /* libquikit_debug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D3CAA8201326507D008BB877 /* libquikit_debug.a */; };
- D3CAA82813265220008BB877 /* libQtNetwork_debug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D3CAA82713265220008BB877 /* libQtNetwork_debug.a */; };
- D3CAA88A132652E5008BB877 /* fonts in Resources */ = {isa = PBXBuildFile; fileRef = D3CAA836132652E5008BB877 /* fonts */; };
- D3CAA88B132652E5008BB877 /* fonts in Resources */ = {isa = PBXBuildFile; fileRef = D3CAA836132652E5008BB877 /* fonts */; };
- D3CAA89113265310008BB877 /* qml in Resources */ = {isa = PBXBuildFile; fileRef = D3CAA88E13265310008BB877 /* qml */; };
- D3CAA89213265310008BB877 /* qml in Resources */ = {isa = PBXBuildFile; fileRef = D3CAA88E13265310008BB877 /* qml */; };
- D3D817B2132A2CFD00CDE422 /* libQtCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D3D817AA132A2CFD00CDE422 /* libQtCore.a */; };
- D3D817B3132A2CFD00CDE422 /* libQtDeclarative.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D3D817AB132A2CFD00CDE422 /* libQtDeclarative.a */; };
- D3D817B4132A2CFD00CDE422 /* libQtGui.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D3D817AC132A2CFD00CDE422 /* libQtGui.a */; };
- D3D817B5132A2CFD00CDE422 /* libQtNetwork.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D3D817AD132A2CFD00CDE422 /* libQtNetwork.a */; };
- D3D817B6132A2CFD00CDE422 /* libQtScript.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D3D817AE132A2CFD00CDE422 /* libQtScript.a */; };
- D3D817B7132A2CFD00CDE422 /* libQtSql.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D3D817AF132A2CFD00CDE422 /* libQtSql.a */; };
- D3D817B8132A2CFD00CDE422 /* libQtXml.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D3D817B0132A2CFD00CDE422 /* libQtXml.a */; };
- D3D817B9132A2CFD00CDE422 /* libQtXmlPatterns.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D3D817B1132A2CFD00CDE422 /* libQtXmlPatterns.a */; };
- D3D817BB132A2D0E00CDE422 /* libquikit.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D3D817BA132A2D0E00CDE422 /* libquikit.a */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXFileReference section */
- 1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
- 1D6058910D05DD3D006BFB54 /* qmltest.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = qmltest.app; sourceTree = BUILT_PRODUCTS_DIR; };
- 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
- 288765A40DF7441C002DB57D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
- 32CA4F630368D1EE00C91783 /* qmltest_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = qmltest_Prefix.pch; sourceTree = "<group>"; };
- 8D1107310486CEB800E47090 /* qmltest-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "qmltest-Info.plist"; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = "<group>"; };
- D31659431338B21000760B02 /* libQtXml_debug.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libQtXml_debug.a; path = "../../../../../../../qt-lighthouse-ios-simulator/lib/libQtXml_debug.a"; sourceTree = SOURCE_ROOT; };
- D31659441338B21000760B02 /* libQtXmlPatterns_debug.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libQtXmlPatterns_debug.a; path = "../../../../../../../qt-lighthouse-ios-simulator/lib/libQtXmlPatterns_debug.a"; sourceTree = SOURCE_ROOT; };
- D35784231345D8C90046D202 /* libQtOpenGL_debug.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libQtOpenGL_debug.a; path = "../../../../../../../qt-lighthouse-ios-simulator/lib/libQtOpenGL_debug.a"; sourceTree = "<group>"; };
- D35784251345D9940046D202 /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; };
- D35784271345D9E00046D202 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
- D3578435134A09990046D202 /* libQtOpenGL.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libQtOpenGL.a; path = "../../../../../../../qt-lighthouse-ios-device/lib/libQtOpenGL.a"; sourceTree = "<group>"; };
- D3CAA7C713264AAD008BB877 /* main.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = main.mm; sourceTree = "<group>"; };
- D3CAA7E313264EA6008BB877 /* moc_qmlapplicationviewer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = moc_qmlapplicationviewer.cpp; path = qmlapplicationviewer/moc_qmlapplicationviewer.cpp; sourceTree = "<group>"; };
- D3CAA7E413264EA6008BB877 /* qmlapplicationviewer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = qmlapplicationviewer.cpp; path = qmlapplicationviewer/qmlapplicationviewer.cpp; sourceTree = "<group>"; };
- D3CAA7E513264EA6008BB877 /* qmlapplicationviewer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = qmlapplicationviewer.h; path = qmlapplicationviewer/qmlapplicationviewer.h; sourceTree = "<group>"; };
- D3CAA7F613264F52008BB877 /* qmltest.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = qmltest.app; sourceTree = BUILT_PRODUCTS_DIR; };
- D3CAA7F913264F8A008BB877 /* libz.1.2.3.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.1.2.3.dylib; path = usr/lib/libz.1.2.3.dylib; sourceTree = SDKROOT; };
- D3CAA81613265056008BB877 /* libQtCore_debug.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libQtCore_debug.a; path = "../../../../../../../qt-lighthouse-ios-simulator/lib/libQtCore_debug.a"; sourceTree = SOURCE_ROOT; };
- D3CAA81713265056008BB877 /* libQtDeclarative_debug.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libQtDeclarative_debug.a; path = "../../../../../../../qt-lighthouse-ios-simulator/lib/libQtDeclarative_debug.a"; sourceTree = SOURCE_ROOT; };
- D3CAA81813265056008BB877 /* libQtGui_debug.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libQtGui_debug.a; path = "../../../../../../../qt-lighthouse-ios-simulator/lib/libQtGui_debug.a"; sourceTree = SOURCE_ROOT; };
- D3CAA81913265056008BB877 /* libQtScript_debug.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libQtScript_debug.a; path = "../../../../../../../qt-lighthouse-ios-simulator/lib/libQtScript_debug.a"; sourceTree = SOURCE_ROOT; };
- D3CAA81A13265056008BB877 /* libQtSql_debug.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libQtSql_debug.a; path = "../../../../../../../qt-lighthouse-ios-simulator/lib/libQtSql_debug.a"; sourceTree = SOURCE_ROOT; };
- D3CAA8201326507D008BB877 /* libquikit_debug.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libquikit_debug.a; path = "../../../../../../../qt-lighthouse-ios-simulator/plugins/platforms/libquikit_debug.a"; sourceTree = SOURCE_ROOT; };
- D3CAA82713265220008BB877 /* libQtNetwork_debug.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libQtNetwork_debug.a; path = "../../../../../../../qt-lighthouse-ios-simulator/lib/libQtNetwork_debug.a"; sourceTree = SOURCE_ROOT; };
- D3CAA836132652E5008BB877 /* fonts */ = {isa = PBXFileReference; lastKnownFileType = folder; name = fonts; path = ../../../../../../lib/fonts; sourceTree = SOURCE_ROOT; };
- D3CAA88E13265310008BB877 /* qml */ = {isa = PBXFileReference; lastKnownFileType = folder; path = qml; sourceTree = SOURCE_ROOT; };
- D3D817AA132A2CFD00CDE422 /* libQtCore.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libQtCore.a; path = "../../../../../../../qt-lighthouse-ios-device/lib/libQtCore.a"; sourceTree = SOURCE_ROOT; };
- D3D817AB132A2CFD00CDE422 /* libQtDeclarative.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libQtDeclarative.a; path = "../../../../../../../qt-lighthouse-ios-device/lib/libQtDeclarative.a"; sourceTree = SOURCE_ROOT; };
- D3D817AC132A2CFD00CDE422 /* libQtGui.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libQtGui.a; path = "../../../../../../../qt-lighthouse-ios-device/lib/libQtGui.a"; sourceTree = SOURCE_ROOT; };
- D3D817AD132A2CFD00CDE422 /* libQtNetwork.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libQtNetwork.a; path = "../../../../../../../qt-lighthouse-ios-device/lib/libQtNetwork.a"; sourceTree = SOURCE_ROOT; };
- D3D817AE132A2CFD00CDE422 /* libQtScript.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libQtScript.a; path = "../../../../../../../qt-lighthouse-ios-device/lib/libQtScript.a"; sourceTree = SOURCE_ROOT; };
- D3D817AF132A2CFD00CDE422 /* libQtSql.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libQtSql.a; path = "../../../../../../../qt-lighthouse-ios-device/lib/libQtSql.a"; sourceTree = SOURCE_ROOT; };
- D3D817B0132A2CFD00CDE422 /* libQtXml.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libQtXml.a; path = "../../../../../../../qt-lighthouse-ios-device/lib/libQtXml.a"; sourceTree = SOURCE_ROOT; };
- D3D817B1132A2CFD00CDE422 /* libQtXmlPatterns.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libQtXmlPatterns.a; path = "../../../../../../../qt-lighthouse-ios-device/lib/libQtXmlPatterns.a"; sourceTree = SOURCE_ROOT; };
- D3D817BA132A2D0E00CDE422 /* libquikit.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libquikit.a; path = "../../../../../../../qt-lighthouse-ios-device/plugins/platforms/libquikit.a"; sourceTree = SOURCE_ROOT; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
- 1D60588F0D05DD3D006BFB54 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- D35784281345D9E00046D202 /* QuartzCore.framework in Frameworks */,
- 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */,
- 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */,
- 288765A50DF7441C002DB57D /* CoreGraphics.framework in Frameworks */,
- D35784261345D9940046D202 /* OpenGLES.framework in Frameworks */,
- D3CAA7FA13264F8A008BB877 /* libz.1.2.3.dylib in Frameworks */,
- D3CAA81B13265056008BB877 /* libQtCore_debug.a in Frameworks */,
- D3CAA81C13265056008BB877 /* libQtDeclarative_debug.a in Frameworks */,
- D3CAA81D13265056008BB877 /* libQtGui_debug.a in Frameworks */,
- D3CAA81E13265056008BB877 /* libQtScript_debug.a in Frameworks */,
- D3CAA81F13265056008BB877 /* libQtSql_debug.a in Frameworks */,
- D3CAA8211326507D008BB877 /* libquikit_debug.a in Frameworks */,
- D3CAA82813265220008BB877 /* libQtNetwork_debug.a in Frameworks */,
- D316594E1338B29E00760B02 /* libQtXml_debug.a in Frameworks */,
- D316594F1338B29E00760B02 /* libQtXmlPatterns_debug.a in Frameworks */,
- D35784241345D8C90046D202 /* libQtOpenGL_debug.a in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- D3CAA7EF13264F52008BB877 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- D357843A134A0AB10046D202 /* QuartzCore.framework in Frameworks */,
- D3578439134A0AAE0046D202 /* OpenGLES.framework in Frameworks */,
- D3CAA7F013264F52008BB877 /* Foundation.framework in Frameworks */,
- D3CAA7F113264F52008BB877 /* UIKit.framework in Frameworks */,
- D3CAA7F213264F52008BB877 /* CoreGraphics.framework in Frameworks */,
- D3CAA81113264FF0008BB877 /* libz.1.2.3.dylib in Frameworks */,
- D3D817B2132A2CFD00CDE422 /* libQtCore.a in Frameworks */,
- D3D817B3132A2CFD00CDE422 /* libQtDeclarative.a in Frameworks */,
- D3D817B4132A2CFD00CDE422 /* libQtGui.a in Frameworks */,
- D3D817B5132A2CFD00CDE422 /* libQtNetwork.a in Frameworks */,
- D3D817B6132A2CFD00CDE422 /* libQtScript.a in Frameworks */,
- D3D817B7132A2CFD00CDE422 /* libQtSql.a in Frameworks */,
- D3D817B8132A2CFD00CDE422 /* libQtXml.a in Frameworks */,
- D3D817B9132A2CFD00CDE422 /* libQtXmlPatterns.a in Frameworks */,
- D3D817BB132A2D0E00CDE422 /* libquikit.a in Frameworks */,
- D3578436134A09990046D202 /* libQtOpenGL.a in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
- 19C28FACFE9D520D11CA2CBB /* Products */ = {
- isa = PBXGroup;
- children = (
- 1D6058910D05DD3D006BFB54 /* qmltest.app */,
- D3CAA7F613264F52008BB877 /* qmltest.app */,
- );
- name = Products;
- sourceTree = "<group>";
- };
- 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = {
- isa = PBXGroup;
- children = (
- 29B97315FDCFA39411CA2CEA /* Other Sources */,
- 29B97317FDCFA39411CA2CEA /* Resources */,
- D3CAA7E213264E8C008BB877 /* QMLApplicationViewer */,
- 29B97323FDCFA39411CA2CEA /* Frameworks */,
- 19C28FACFE9D520D11CA2CBB /* Products */,
- );
- name = CustomTemplate;
- sourceTree = "<group>";
- };
- 29B97315FDCFA39411CA2CEA /* Other Sources */ = {
- isa = PBXGroup;
- children = (
- 32CA4F630368D1EE00C91783 /* qmltest_Prefix.pch */,
- D3CAA7C713264AAD008BB877 /* main.mm */,
- );
- name = "Other Sources";
- sourceTree = "<group>";
- };
- 29B97317FDCFA39411CA2CEA /* Resources */ = {
- isa = PBXGroup;
- children = (
- D3CAA88E13265310008BB877 /* qml */,
- D3CAA836132652E5008BB877 /* fonts */,
- 8D1107310486CEB800E47090 /* qmltest-Info.plist */,
- );
- name = Resources;
- sourceTree = "<group>";
- };
- 29B97323FDCFA39411CA2CEA /* Frameworks */ = {
- isa = PBXGroup;
- children = (
- D3CAA81513265035008BB877 /* Simulator */,
- D3CAA8141326500A008BB877 /* Device */,
- 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */,
- 1D30AB110D05D00D00671497 /* Foundation.framework */,
- 288765A40DF7441C002DB57D /* CoreGraphics.framework */,
- D35784251345D9940046D202 /* OpenGLES.framework */,
- D35784271345D9E00046D202 /* QuartzCore.framework */,
- D3CAA7F913264F8A008BB877 /* libz.1.2.3.dylib */,
- );
- name = Frameworks;
- sourceTree = "<group>";
- };
- D3CAA7E213264E8C008BB877 /* QMLApplicationViewer */ = {
- isa = PBXGroup;
- children = (
- D3CAA7E313264EA6008BB877 /* moc_qmlapplicationviewer.cpp */,
- D3CAA7E413264EA6008BB877 /* qmlapplicationviewer.cpp */,
- D3CAA7E513264EA6008BB877 /* qmlapplicationviewer.h */,
- );
- name = QMLApplicationViewer;
- sourceTree = "<group>";
- };
- D3CAA8141326500A008BB877 /* Device */ = {
- isa = PBXGroup;
- children = (
- D3D817BA132A2D0E00CDE422 /* libquikit.a */,
- D3D817AA132A2CFD00CDE422 /* libQtCore.a */,
- D3D817AB132A2CFD00CDE422 /* libQtDeclarative.a */,
- D3D817AC132A2CFD00CDE422 /* libQtGui.a */,
- D3D817AD132A2CFD00CDE422 /* libQtNetwork.a */,
- D3578435134A09990046D202 /* libQtOpenGL.a */,
- D3D817AE132A2CFD00CDE422 /* libQtScript.a */,
- D3D817AF132A2CFD00CDE422 /* libQtSql.a */,
- D3D817B0132A2CFD00CDE422 /* libQtXml.a */,
- D3D817B1132A2CFD00CDE422 /* libQtXmlPatterns.a */,
- );
- name = Device;
- sourceTree = "<group>";
- };
- D3CAA81513265035008BB877 /* Simulator */ = {
- isa = PBXGroup;
- children = (
- D3CAA8201326507D008BB877 /* libquikit_debug.a */,
- D3CAA81613265056008BB877 /* libQtCore_debug.a */,
- D3CAA81713265056008BB877 /* libQtDeclarative_debug.a */,
- D3CAA81813265056008BB877 /* libQtGui_debug.a */,
- D3CAA82713265220008BB877 /* libQtNetwork_debug.a */,
- D35784231345D8C90046D202 /* libQtOpenGL_debug.a */,
- D3CAA81913265056008BB877 /* libQtScript_debug.a */,
- D3CAA81A13265056008BB877 /* libQtSql_debug.a */,
- D31659431338B21000760B02 /* libQtXml_debug.a */,
- D31659441338B21000760B02 /* libQtXmlPatterns_debug.a */,
- );
- name = Simulator;
- sourceTree = "<group>";
- };
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
- 1D6058900D05DD3D006BFB54 /* qmltest simulator */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "qmltest simulator" */;
- buildPhases = (
- 1D60588D0D05DD3D006BFB54 /* Resources */,
- 1D60588E0D05DD3D006BFB54 /* Sources */,
- 1D60588F0D05DD3D006BFB54 /* Frameworks */,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = "qmltest simulator";
- productName = qmltest;
- productReference = 1D6058910D05DD3D006BFB54 /* qmltest.app */;
- productType = "com.apple.product-type.application";
- };
- D3CAA7E813264F52008BB877 /* qmltest device */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = D3CAA7F313264F52008BB877 /* Build configuration list for PBXNativeTarget "qmltest device" */;
- buildPhases = (
- D3CAA7E913264F52008BB877 /* Resources */,
- D3CAA7EB13264F52008BB877 /* Sources */,
- D3CAA7EF13264F52008BB877 /* Frameworks */,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = "qmltest device";
- productName = qmltest;
- productReference = D3CAA7F613264F52008BB877 /* qmltest.app */;
- productType = "com.apple.product-type.application";
- };
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
- 29B97313FDCFA39411CA2CEA /* Project object */ = {
- isa = PBXProject;
- buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "qmltest" */;
- compatibilityVersion = "Xcode 3.1";
- developmentRegion = English;
- hasScannedForEncodings = 1;
- knownRegions = (
- English,
- Japanese,
- French,
- German,
- );
- mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */;
- projectDirPath = "";
- projectRoot = "";
- targets = (
- 1D6058900D05DD3D006BFB54 /* qmltest simulator */,
- D3CAA7E813264F52008BB877 /* qmltest device */,
- );
- };
-/* End PBXProject section */
-
-/* Begin PBXResourcesBuildPhase section */
- 1D60588D0D05DD3D006BFB54 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- D3CAA88A132652E5008BB877 /* fonts in Resources */,
- D3CAA89113265310008BB877 /* qml in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- D3CAA7E913264F52008BB877 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- D3CAA88B132652E5008BB877 /* fonts in Resources */,
- D3CAA89213265310008BB877 /* qml in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
- 1D60588E0D05DD3D006BFB54 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- D3CAA7C813264AAD008BB877 /* main.mm in Sources */,
- D3CAA7E613264EA6008BB877 /* moc_qmlapplicationviewer.cpp in Sources */,
- D3CAA7E713264EA6008BB877 /* qmlapplicationviewer.cpp in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- D3CAA7EB13264F52008BB877 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- D3CAA7EC13264F52008BB877 /* main.mm in Sources */,
- D3CAA7ED13264F52008BB877 /* moc_qmlapplicationviewer.cpp in Sources */,
- D3CAA7EE13264F52008BB877 /* qmlapplicationviewer.cpp in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXSourcesBuildPhase section */
-
-/* Begin XCBuildConfiguration section */
- 1D6058940D05DD3E006BFB54 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)";
- COPY_PHASE_STRIP = NO;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = qmltest_Prefix.pch;
- HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../../../../qt-lighthouse-ios-simulator/include\"/**";
- INFOPLIST_FILE = "qmltest-Info.plist";
- LIBRARY_SEARCH_PATHS = (
- "$(inherited)",
- "\"$(SRCROOT)/../../../../../../../qt-lighthouse-ios-simulator/lib\"",
- "\"$(SRCROOT)/../../../../../../../qt-lighthouse-ios-simulator/plugins/platforms\"",
- );
- PRODUCT_NAME = qmltest;
- };
- name = Debug;
- };
- 1D6058950D05DD3E006BFB54 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)";
- COPY_PHASE_STRIP = YES;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = qmltest_Prefix.pch;
- HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../../../../qt-lighthouse-ios-simulator/include\"/**";
- INFOPLIST_FILE = "qmltest-Info.plist";
- LIBRARY_SEARCH_PATHS = (
- "$(inherited)",
- "\"$(SRCROOT)/../../../../../../../qt-lighthouse-ios-simulator/lib\"",
- "\"$(SRCROOT)/../../../../../../../qt-lighthouse-ios-simulator/plugins/platforms\"",
- );
- PRODUCT_NAME = qmltest;
- VALIDATE_PRODUCT = YES;
- };
- name = Release;
- };
- C01FCF4F08A954540054247B /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ARCHS = "$(ARCHS_STANDARD_32_BIT)";
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- GCC_C_LANGUAGE_STANDARD = c99;
- GCC_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- PREBINDING = NO;
- SDKROOT = iphoneos;
- };
- name = Debug;
- };
- C01FCF5008A954540054247B /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ARCHS = "$(ARCHS_STANDARD_32_BIT)";
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- GCC_C_LANGUAGE_STANDARD = c99;
- GCC_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
- PREBINDING = NO;
- SDKROOT = iphoneos;
- };
- name = Release;
- };
- D3CAA7F413264F52008BB877 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)";
- COPY_PHASE_STRIP = NO;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = qmltest_Prefix.pch;
- HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../../../../qt-lighthouse-ios-device/include\"/**";
- INFOPLIST_FILE = "qmltest-Info.plist";
- LIBRARY_SEARCH_PATHS = (
- "$(inherited)",
- "\"$(SRCROOT)/../../../../../../../qt-lighthouse-ios-device/lib\"",
- "\"$(SRCROOT)/../../../../../../../qt-lighthouse-ios-device/plugins/platforms\"",
- );
- PRODUCT_NAME = qmltest;
- };
- name = Debug;
- };
- D3CAA7F513264F52008BB877 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)";
- COPY_PHASE_STRIP = YES;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = qmltest_Prefix.pch;
- HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../../../../qt-lighthouse-ios-device/include\"/**";
- INFOPLIST_FILE = "qmltest-Info.plist";
- LIBRARY_SEARCH_PATHS = (
- "$(inherited)",
- "\"$(SRCROOT)/../../../../../../../qt-lighthouse-ios-device/lib\"",
- "\"$(SRCROOT)/../../../../../../../qt-lighthouse-ios-device/plugins/platforms\"",
- );
- PRODUCT_NAME = qmltest;
- VALIDATE_PRODUCT = YES;
- };
- name = Release;
- };
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
- 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "qmltest simulator" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 1D6058940D05DD3E006BFB54 /* Debug */,
- 1D6058950D05DD3E006BFB54 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- C01FCF4E08A954540054247B /* Build configuration list for PBXProject "qmltest" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- C01FCF4F08A954540054247B /* Debug */,
- C01FCF5008A954540054247B /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- D3CAA7F313264F52008BB877 /* Build configuration list for PBXNativeTarget "qmltest device" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- D3CAA7F413264F52008BB877 /* Debug */,
- D3CAA7F513264F52008BB877 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
-/* End XCConfigurationList section */
- };
- rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
-}
diff --git a/src/plugins/platforms/uikit/examples/qmltest/qmltest_Prefix.pch b/src/plugins/platforms/uikit/examples/qmltest/qmltest_Prefix.pch
deleted file mode 100644
index c06715c661..0000000000
--- a/src/plugins/platforms/uikit/examples/qmltest/qmltest_Prefix.pch
+++ /dev/null
@@ -1,8 +0,0 @@
-//
-// Prefix header for all source files of the 'qmltest' target in the 'qmltest' project
-//
-
-#ifdef __OBJC__
- #import <Foundation/Foundation.h>
- #import <UIKit/UIKit.h>
-#endif
diff --git a/src/plugins/platforms/uikit/quikiteventloop.mm b/src/plugins/platforms/uikit/quikiteventloop.mm
deleted file mode 100644
index 43df46705d..0000000000
--- a/src/plugins/platforms/uikit/quikiteventloop.mm
+++ /dev/null
@@ -1,174 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the plugins of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "quikiteventloop.h"
-#include "quikitwindow.h"
-#include "quikitwindowsurface.h"
-
-#include <UIKit/UIKit.h>
-
-#include <QtGui/QApplication>
-#include <QtGui/QWidget>
-#include <QtDebug>
-
-@interface QUIKitAppDelegate : NSObject <UIApplicationDelegate> {
-}
-@end
-
-@interface EventLoopHelper : NSObject {
- QUIKitEventLoop *mIntegration;
-}
-
-- (id)initWithEventLoopIntegration:(QUIKitEventLoop *)integration;
-
-- (void)processEvents;
-- (void)processEventsAndSchedule;
-
-@end
-
-@implementation QUIKitAppDelegate
-
-- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
-{
- Q_UNUSED(launchOptions)
- Q_UNUSED(application)
- foreach (QWidget *widget, qApp->topLevelWidgets()) {
- QUIKitWindow *platformWindow = static_cast<QUIKitWindow *>(widget->platformWindow());
- platformWindow->ensureNativeWindow();
- }
- return YES;
-}
-
-- (void)applicationWillTerminate:(UIApplication *)application
-{
- Q_UNUSED(application)
- // TODO this isn't called for some reason
- qDebug() << "quit";
- qApp->quit();
-}
-
-@end
-
-@implementation EventLoopHelper
-
-- (id)initWithEventLoopIntegration:(QUIKitEventLoop *)integration
-{
- if ((self = [self init])) {
- mIntegration = integration;
- }
- return self;
-}
-
-- (void)processEvents
-{
- QPlatformEventLoopIntegration::processEvents();
-}
-
-- (void)processEventsAndSchedule
-{
- QPlatformEventLoopIntegration::processEvents();
- qint64 nextTime = mIntegration->nextTimerEvent();
- NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
- NSDate *nextDate = [[NSDate date] dateByAddingTimeInterval:((double)nextTime/1000)];
- [mIntegration->mTimer setFireDate:nextDate];
- [pool release];
-}
-
-@end
-
-QT_BEGIN_NAMESPACE
-
-QUIKitEventLoop::QUIKitEventLoop()
-{
- NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
- mInputHandler = new QUIKitSoftwareInputHandler;
- mHelper = [[EventLoopHelper alloc] initWithEventLoopIntegration:this];
- mTimer = [[NSTimer timerWithTimeInterval:0.030 target:mHelper selector:@selector(processEventsAndSchedule) userInfo:nil repeats:YES] retain];
- [pool release];
-}
-
-QUIKitEventLoop::~QUIKitEventLoop()
-{
- [mTimer release];
- [mHelper release];
- delete mInputHandler;
-}
-
-void QUIKitEventLoop::startEventLoop()
-{
- qApp->installEventFilter(mInputHandler);
- NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
- [[NSRunLoop currentRunLoop] addTimer:[mTimer autorelease] forMode:NSDefaultRunLoopMode];
- UIApplicationMain(qApp->argc(), qApp->argv(), nil, @"QUIKitAppDelegate");
- [pool release];
-}
-
-void QUIKitEventLoop::quitEventLoop()
-{
-
-}
-
-void QUIKitEventLoop::qtNeedsToProcessEvents()
-{
- [mHelper performSelectorOnMainThread:@selector(processEvents) withObject:nil waitUntilDone:NO];
-}
-
-bool QUIKitSoftwareInputHandler::eventFilter(QObject *obj, QEvent *event)
-{
- if (event->type() == QEvent::RequestSoftwareInputPanel) {
- QWidget *widget = qobject_cast<QWidget *>(obj);
- if (widget) {
- QUIKitWindow *platformWindow = static_cast<QUIKitWindow *>(widget->platformWindow());
- [platformWindow->nativeView() becomeFirstResponder];
- return true;
- }
- } else if (event->type() == QEvent::CloseSoftwareInputPanel) {
- QWidget *widget = qobject_cast<QWidget *>(obj);
- if (widget) {
- QUIKitWindow *platformWindow = static_cast<QUIKitWindow *>(widget->platformWindow());
- [platformWindow->nativeView() resignFirstResponder];
- return true;
- }
- }
- return false;
-}
-
-QT_END_NAMESPACE
diff --git a/src/plugins/platforms/uikit/quikitintegration.mm b/src/plugins/platforms/uikit/quikitintegration.mm
deleted file mode 100644
index 0c8579fc0f..0000000000
--- a/src/plugins/platforms/uikit/quikitintegration.mm
+++ /dev/null
@@ -1,104 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the plugins of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "quikitintegration.h"
-#include "quikitwindow.h"
-#include "quikitwindowsurface.h"
-#include "quikitscreen.h"
-#include "quikiteventloop.h"
-
-#include <QtGui/QApplication>
-
-#include <private/qpixmap_raster_p.h>
-
-#include <UIKit/UIKit.h>
-
-#include <QtDebug>
-
-QT_BEGIN_NAMESPACE
-
-QUIKitIntegration::QUIKitIntegration()
-{
- mScreens << new QUIKitScreen(0);
-}
-
-QUIKitIntegration::~QUIKitIntegration()
-{
-}
-
-QPlatformPixmap *QUIKitIntegration::createPlatformPixmap(QPlatformPixmap::PixelType type) const
-{
- return new QRasterPlatformPixmap(type);
-}
-
-QPlatformWindow *QUIKitIntegration::createPlatformWindow(QWidget *widget, WId winId) const
-{
- Q_UNUSED(winId);
- return new QUIKitWindow(widget);
-}
-
-QList<QPlatformScreen *> QUIKitIntegration::screens() const
-{
- return mScreens;
-}
-
-QWindowSurface *QUIKitIntegration::createWindowSurface(QWidget *widget, WId winId) const
-{
- Q_UNUSED(winId);
- return new QUIKitWindowSurface(widget);
-}
-
-QPlatformEventLoopIntegration *QUIKitIntegration::createEventLoopIntegration() const
-{
- return new QUIKitEventLoop();
-}
-
-QPlatformFontDatabase * QUIKitIntegration::fontDatabase() const
-{
- static bool initialized = false;
- if (!initialized) {
- initialized = true;
- setenv("QT_QPA_FONTDIR",[[[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"fonts"] UTF8String],1);
- }
- return QPlatformIntegration::fontDatabase();
-}
-
-QT_END_NAMESPACE
diff --git a/src/plugins/platforms/uikit/quikitscreen.mm b/src/plugins/platforms/uikit/quikitscreen.mm
deleted file mode 100644
index 9569f95052..0000000000
--- a/src/plugins/platforms/uikit/quikitscreen.mm
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the plugins of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "quikitscreen.h"
-
-#include <QtGui/QApplication>
-
-#include <QtDebug>
-
-QT_BEGIN_NAMESPACE
-
-QUIKitScreen::QUIKitScreen(int screenIndex)
- : QPlatformScreen(),
- m_index(screenIndex)
-{
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
- UIScreen *screen = [[UIScreen screens] objectAtIndex:screenIndex];
- CGRect bounds = [screen bounds];
- m_geometry = QRect(bounds.origin.x, bounds.origin.y, bounds.size.width, bounds.size.height);
-
- m_format = QImage::Format_ARGB32;
-
- m_depth = 24;
-
- const qreal inch = 25.4;
- qreal dpi = 160.;
- int dragDistance = 12;
- if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
- dpi = 132.;
- dragDistance = 10;
- }
- m_physicalSize = QSizeF(bounds.size.width, bounds.size.height) * inch / dpi;
- qApp->setStartDragDistance(dragDistance);
- [pool release];
-}
-
-QUIKitScreen::~QUIKitScreen()
-{
-}
-
-UIScreen *QUIKitScreen::uiScreen() const
-{
- return [[UIScreen screens] objectAtIndex:m_index];
-}
-
-QT_END_NAMESPACE
diff --git a/src/plugins/platforms/uikit/quikitwindow.h b/src/plugins/platforms/uikit/quikitwindow.h
deleted file mode 100644
index 7fe599f0cd..0000000000
--- a/src/plugins/platforms/uikit/quikitwindow.h
+++ /dev/null
@@ -1,131 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the plugins of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QUIKITWINDOW_H
-#define QUIKITWINDOW_H
-
-#include <QPlatformWindow>
-
-#import <UIKit/UIKit.h>
-#import <OpenGLES/ES1/gl.h>
-#import <OpenGLES/ES1/glext.h>
-#import <OpenGLES/ES2/gl.h>
-#import <OpenGLES/ES2/glext.h>
-#import <OpenGLES/EAGL.h>
-
-@interface EAGLView : UIView <UIKeyInput>
-{
- QPlatformWindow *mWindow;
- EAGLContext *mContext;
-
- GLint mFramebufferWidth;
- GLint mFramebufferHeight;
-
- GLuint mFramebuffer, mColorRenderbuffer, mDepthRenderbuffer;
-
- id delegate;
- // ------- Text Input ----------
- UITextAutocapitalizationType autocapitalizationType;
- UITextAutocorrectionType autocorrectionType;
- BOOL enablesReturnKeyAutomatically;
- UIKeyboardAppearance keyboardAppearance;
- UIKeyboardType keyboardType;
- UIReturnKeyType returnKeyType;
- BOOL secureTextEntry;
-}
-
-- (void)setContext:(EAGLContext *)newContext;
-- (void)presentFramebuffer;
-- (void)deleteFramebuffer;
-- (void)createFramebuffer;
-- (void)makeCurrent;
-- (void)setWindow:(QPlatformWindow *)window;
-- (void)sendMouseEventForTouches:(NSSet *)touches withEvent:(UIEvent *)event fakeButtons:(Qt::MouseButtons)buttons;
-
-@property (readonly,getter=fbo) GLint fbo;
-@property (nonatomic, assign) id delegate;
-
-// ------- Text Input ----------
-
-@property(nonatomic) UITextAutocapitalizationType autocapitalizationType;
-@property(nonatomic) UITextAutocorrectionType autocorrectionType;
-@property(nonatomic) BOOL enablesReturnKeyAutomatically;
-@property(nonatomic) UIKeyboardAppearance keyboardAppearance;
-@property(nonatomic) UIKeyboardType keyboardType;
-@property(nonatomic) UIReturnKeyType returnKeyType;
-@property(nonatomic, getter=isSecureTextEntry) BOOL secureTextEntry;
-
-@end
-
-@protocol EAGLViewDelegate
-- (void)eaglView:(EAGLView *)view usesFramebuffer:(GLuint)buffer;
-@end
-
-class EAGLPlatformContext;
-
-QT_BEGIN_NAMESPACE
-
-class QUIKitScreen;
-
-class QUIKitWindow : public QPlatformWindow
-{
-public:
- explicit QUIKitWindow(QWidget *tlw);
- ~QUIKitWindow();
-
- UIWindow *nativeWindow() const { return mWindow; }
- EAGLView *nativeView() const { return mView; }
- void setGeometry(const QRect &rect);
-
- UIWindow *ensureNativeWindow();
-
- QPlatformOpenGLContext *glContext() const;
-
-private:
- QUIKitScreen *mScreen;
- UIWindow *mWindow;
- EAGLView *mView;
- mutable EAGLPlatformContext *mContext;
-};
-
-QT_END_NAMESPACE
-
-#endif // QUIKITWINDOW_H
diff --git a/src/plugins/platforms/uikit/quikitwindow.mm b/src/plugins/platforms/uikit/quikitwindow.mm
deleted file mode 100644
index fb6711009a..0000000000
--- a/src/plugins/platforms/uikit/quikitwindow.mm
+++ /dev/null
@@ -1,392 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the plugins of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#import <QuartzCore/CAEAGLLayer.h>
-
-#include "quikitwindow.h"
-
-#include "quikitscreen.h"
-
-#include <QtDebug>
-#include <QtGui/QApplication>
-#include <QtGui/QKeyEvent>
-#include <QtGui/QPlatformOpenGLContext>
-#include <QtGui/QWindowSystemInterface>
-
-#include <QtDebug>
-
-class EAGLPlatformContext : public QPlatformOpenGLContext
-{
-public:
- EAGLPlatformContext(EAGLView *view)
- : mView(view)
- {
- mFormat.setWindowApi(QPlatformWindowFormat::OpenGL);
- mFormat.setDepthBufferSize(24);
- mFormat.setAccumBufferSize(0);
- mFormat.setRedBufferSize(8);
- mFormat.setGreenBufferSize(8);
- mFormat.setBlueBufferSize(8);
- mFormat.setAlphaBufferSize(8);
- mFormat.setStencilBufferSize(8);
- mFormat.setSampleBuffers(false);
- mFormat.setSamples(1);
-// mFormat.setSwapInterval(?)
- mFormat.setDoubleBuffer(true);
- mFormat.setDepth(true);
- mFormat.setRgba(true);
- mFormat.setAlpha(true);
- mFormat.setAccum(false);
- mFormat.setStencil(true);
- mFormat.setStereo(false);
- mFormat.setDirectRendering(false);
-
-#if defined(QT_OPENGL_ES_2)
- EAGLContext *aContext = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
-#else
- EAGLContext *aContext = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES1];
-#endif
- [mView setContext:aContext];
- }
-
- ~EAGLPlatformContext() { }
-
- void makeCurrent()
- {
- QPlatformOpenGLContext::makeCurrent();
- [mView makeCurrent];
- }
-
- void doneCurrent()
- {
- QPlatformOpenGLContext::doneCurrent();
- }
-
- void swapBuffers()
- {
- [mView presentFramebuffer];
- }
-
- void* getProcAddress(const QString& ) { return 0; }
-
- QPlatformWindowFormat platformWindowFormat() const
- {
- return mFormat;
- }
-
-private:
- EAGLView *mView;
-
- QPlatformWindowFormat mFormat;
-};
-
-@implementation EAGLView
-
-@synthesize delegate;
-
-+ (Class)layerClass
-{
- return [CAEAGLLayer class];
-}
-
-- (id)initWithFrame:(CGRect)frame
-{
- if ((self = [super initWithFrame:frame])) {
- CAEAGLLayer *eaglLayer = (CAEAGLLayer *)self.layer;
- eaglLayer.opaque = TRUE;
- eaglLayer.drawableProperties = [NSDictionary dictionaryWithObjectsAndKeys:
- [NSNumber numberWithBool:YES], kEAGLDrawablePropertyRetainedBacking,
- kEAGLColorFormatRGBA8, kEAGLDrawablePropertyColorFormat,
- nil];
- autocapitalizationType = UITextAutocapitalizationTypeNone;
- autocorrectionType = UITextAutocorrectionTypeNo;
- enablesReturnKeyAutomatically = NO;
- keyboardAppearance = UIKeyboardAppearanceDefault;
- keyboardType = UIKeyboardTypeDefault;
- returnKeyType = UIReturnKeyDone;
- secureTextEntry = NO;
- }
- return self;
-}
-
-- (void)setContext:(EAGLContext *)newContext
-{
- if (mContext != newContext)
- {
- [self deleteFramebuffer];
- [mContext release];
- mContext = [newContext retain];
- [EAGLContext setCurrentContext:nil];
- }
-}
-
-- (void)presentFramebuffer
-{
- if (mContext) {
- [EAGLContext setCurrentContext:mContext];
- glBindRenderbuffer(GL_RENDERBUFFER, mColorRenderbuffer);
- [mContext presentRenderbuffer:GL_RENDERBUFFER];
- }
-}
-
-- (void)deleteFramebuffer
-{
- if (mContext)
- {
- [EAGLContext setCurrentContext:mContext];
- if (mFramebuffer) {
- glDeleteFramebuffers(1, &mFramebuffer);
- mFramebuffer = 0;
- }
- if (mColorRenderbuffer) {
- glDeleteRenderbuffers(1, &mColorRenderbuffer);
- mColorRenderbuffer = 0;
- }
- if (mDepthRenderbuffer) {
- glDeleteRenderbuffers(1, &mDepthRenderbuffer);
- mDepthRenderbuffer = 0;
- }
- }
-}
-
-- (void)createFramebuffer
-{
- if (mContext && !mFramebuffer)
- {
- [EAGLContext setCurrentContext:mContext];
- glGenFramebuffers(1, &mFramebuffer);
- glBindFramebuffer(GL_FRAMEBUFFER, mFramebuffer);
-
- glGenRenderbuffers(1, &mColorRenderbuffer);
- glBindRenderbuffer(GL_RENDERBUFFER, mColorRenderbuffer);
- [mContext renderbufferStorage:GL_RENDERBUFFER fromDrawable:(CAEAGLLayer *)self.layer];
- glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_WIDTH, &mFramebufferWidth);
- glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_HEIGHT, &mFramebufferHeight);
- glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, mColorRenderbuffer);
-
- glGenRenderbuffers(1, &mDepthRenderbuffer);
- glBindRenderbuffer(GL_RENDERBUFFER, mDepthRenderbuffer);
- glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH24_STENCIL8_OES, mFramebufferWidth, mFramebufferHeight);
- glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, mDepthRenderbuffer);
- glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_RENDERBUFFER, mDepthRenderbuffer);
-
- if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE)
- NSLog(@"Failed to make complete framebuffer object %x", glCheckFramebufferStatus(GL_FRAMEBUFFER));
- if (delegate && [delegate respondsToSelector:@selector(eaglView:usesFramebuffer:)]) {
- [delegate eaglView:self usesFramebuffer:mFramebuffer];
- }
- }
-}
-
-- (void)makeCurrent
-{
- if (mContext)
- {
- [EAGLContext setCurrentContext:mContext];
- if (!mFramebuffer)
- [self createFramebuffer];
- glBindFramebuffer(GL_FRAMEBUFFER, mFramebuffer);
- glViewport(0, 0, mFramebufferWidth, mFramebufferHeight);
- }
-}
-
-- (GLint)fbo
-{
- return mFramebuffer;
-}
-
-- (void)setWindow:(QPlatformWindow *)window
-{
- mWindow = window;
-}
-
-- (void)sendMouseEventForTouches:(NSSet *)touches withEvent:(UIEvent *)event fakeButtons:(Qt::MouseButtons)buttons
-{
- UITouch *touch = [touches anyObject];
- CGPoint locationInView = [touch locationInView:self];
- QPoint p(locationInView.x, locationInView.y);
- // TODO handle global touch point? for status bar?
- QWindowSystemInterface::handleMouseEvent(mWindow->widget(), (ulong)(event.timestamp*1000),
- p, p, buttons);
-}
-
-- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
-{
- [self sendMouseEventForTouches:touches withEvent:event fakeButtons:Qt::LeftButton];
-}
-
-- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
-{
- [self sendMouseEventForTouches:touches withEvent:event fakeButtons:Qt::LeftButton];
-}
-
-- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
-{
- [self sendMouseEventForTouches:touches withEvent:event fakeButtons:Qt::NoButton];
-}
-
-- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event
-{
- [self sendMouseEventForTouches:touches withEvent:event fakeButtons:Qt::NoButton];
-}
-
-// ------- Text Input ----------
-
-@synthesize autocapitalizationType;
-@synthesize autocorrectionType;
-@synthesize enablesReturnKeyAutomatically;
-@synthesize keyboardAppearance;
-@synthesize keyboardType;
-@synthesize returnKeyType;
-@synthesize secureTextEntry;
-
-- (BOOL)canBecomeFirstResponder
-{
- return YES;
-}
-
-- (BOOL)hasText
-{
- return YES;
-}
-
-- (void)insertText:(NSString *)text
-{
- QKeyEvent *ev;
- int key = 0;
- if ([text isEqualToString:@"\n"])
- key = (int)Qt::Key_Return;
- ev = new QKeyEvent(QEvent::KeyPress,
- key,
- Qt::NoModifier,
- QString::fromUtf8([text UTF8String])
- );
- qApp->postEvent(qApp->focusWidget(), ev);
- ev = new QKeyEvent(QEvent::KeyRelease,
- key,
- Qt::NoModifier,
- QString::fromUtf8([text UTF8String])
- );
- qApp->postEvent(qApp->focusWidget(), ev);
-}
-
-- (void)deleteBackward
-{
- QKeyEvent *ev;
- ev = new QKeyEvent(QEvent::KeyPress,
- (int)Qt::Key_Backspace,
- Qt::NoModifier
- );
- qApp->postEvent(qApp->focusWidget(), ev);
- ev = new QKeyEvent(QEvent::KeyRelease,
- (int)Qt::Key_Backspace,
- Qt::NoModifier
- );
- qApp->postEvent(qApp->focusWidget(), ev);
-}
-
-@end
-
-QT_BEGIN_NAMESPACE
-
-QUIKitWindow::QUIKitWindow(QWidget *tlw) :
- QPlatformWindow(tlw),
- mWindow(nil),
- mContext(0)
-{
- mScreen = static_cast<QUIKitScreen *>(QPlatformScreen::platformScreenForWidget(tlw));
- CGRect screenBounds = [mScreen->uiScreen() bounds];
- QRect geom(screenBounds.origin.x, screenBounds.origin.y, screenBounds.size.width, screenBounds.size.height);
- setGeometry(geom);
- mView = [[EAGLView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
- // TODO ensure the native window if the application is already running
-}
-
-QUIKitWindow::~QUIKitWindow()
-{
- delete mContext; mContext = 0;
- [mView release];
- [mWindow release];
-}
-
-void QUIKitWindow::setGeometry(const QRect &rect)
-{
- if (mWindow && rect != geometry()) {
- mWindow.frame = CGRectMake(rect.x(), rect.y(), rect.width(), rect.height());
- mView.frame = CGRectMake(0, 0, rect.width(), rect.height());
- [mView deleteFramebuffer];
- [mWindow setNeedsDisplay];
- }
- QPlatformWindow::setGeometry(rect);
-}
-
-UIWindow *QUIKitWindow::ensureNativeWindow()
-{
- if (!mWindow) {
- // window
- CGRect frame = [mScreen->uiScreen() applicationFrame];
- QRect geom = QRect(frame.origin.x, frame.origin.y, frame.size.width, frame.size.height);
- widget()->setGeometry(geom);
- mWindow = [[UIWindow alloc] init];
- mWindow.screen = mScreen->uiScreen();
- mWindow.frame = frame; // for some reason setting the screen resets frame.origin, so we need to set the frame afterwards
-
- // view
- [mView deleteFramebuffer];
- mView.frame = CGRectMake(0, 0, frame.size.width, frame.size.height); // fill
- [mView setMultipleTouchEnabled:YES];
- [mView setWindow:this];
- [mWindow addSubview:mView];
- [mWindow setNeedsDisplay];
- [mWindow makeKeyAndVisible];
- }
- return mWindow;
-}
-
-QPlatformOpenGLContext *QUIKitWindow::glContext() const
-{
- if (!mContext) {
- mContext = new EAGLPlatformContext(mView);
- }
- return mContext;
-}
-
-QT_END_NAMESPACE
diff --git a/src/plugins/platforms/uikit/quikitwindowsurface.mm b/src/plugins/platforms/uikit/quikitwindowsurface.mm
deleted file mode 100644
index b7455b3bbe..0000000000
--- a/src/plugins/platforms/uikit/quikitwindowsurface.mm
+++ /dev/null
@@ -1,133 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the plugins of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "quikitwindowsurface.h"
-#include "quikitwindow.h"
-
-#include <QtOpenGL/private/qgl_p.h>
-#include <QtOpenGL/private/qglpaintdevice_p.h>
-
-#include <QtDebug>
-
-class EAGLPaintDevice;
-
-@interface PaintDeviceHelper : NSObject {
- EAGLPaintDevice *device;
-}
-
-@property (nonatomic, assign) EAGLPaintDevice *device;
-
-- (void)eaglView:(EAGLView *)view usesFramebuffer:(GLuint)buffer;
-
-@end
-
-class EAGLPaintDevice : public QGLPaintDevice
-{
-public:
- EAGLPaintDevice(QPlatformWindow *window)
- :QGLPaintDevice(), mWindow(window)
- {
-#if defined(QT_OPENGL_ES_2)
- helper = [[PaintDeviceHelper alloc] init];
- helper.device = this;
- EAGLView *view = static_cast<QUIKitWindow *>(window)->nativeView();
- view.delegate = helper;
- m_thisFBO = view.fbo;
-#endif
- }
-
- ~EAGLPaintDevice()
- {
-#if defined(QT_OPENGL_ES_2)
- [helper release];
-#endif
- }
-
- void setFramebuffer(GLuint buffer) { m_thisFBO = buffer; }
- int devType() const { return QInternal::OpenGL; }
- QSize size() const { return mWindow->geometry().size(); }
- QGLContext* context() const { return QGLContext::fromPlatformGLContext(mWindow->glContext()); }
-
- QPaintEngine *paintEngine() const { return qt_qgl_paint_engine(); }
-
-private:
- QPlatformWindow *mWindow;
- PaintDeviceHelper *helper;
-};
-
-@implementation PaintDeviceHelper
-@synthesize device;
-
-- (void)eaglView:(EAGLView *)view usesFramebuffer:(GLuint)buffer
-{
- Q_UNUSED(view)
- if (device)
- device->setFramebuffer(buffer);
-}
-
-@end
-
-QT_BEGIN_NAMESPACE
-
-QUIKitWindowSurface::QUIKitWindowSurface(QWidget *window)
- : QWindowSurface(window), mPaintDevice(new EAGLPaintDevice(window->platformWindow()))
-{
-}
-
-QPaintDevice *QUIKitWindowSurface::paintDevice()
-{
- return mPaintDevice;
-}
-
-void QUIKitWindowSurface::flush(QWidget *widget, const QRegion &region, const QPoint &offset)
-{
- Q_UNUSED(widget);
- Q_UNUSED(region);
- Q_UNUSED(offset);
- widget->platformWindow()->glContext()->swapBuffers();
-}
-
-QWindowSurface::WindowSurfaceFeatures QUIKitWindowSurface::features() const
-{
- return PartialUpdates;
-}
-
-QT_END_NAMESPACE
diff --git a/src/plugins/platforms/uikit/uikit.pro b/src/plugins/platforms/uikit/uikit.pro
deleted file mode 100644
index 5e3a0e6b7c..0000000000
--- a/src/plugins/platforms/uikit/uikit.pro
+++ /dev/null
@@ -1,27 +0,0 @@
-TARGET = quikit
-load(qpa/plugin)
-QTDIR_build:DESTDIR = $$QT_BUILD_TREE/plugins/platforms
-
-QT += opengl
-
-OBJECTIVE_SOURCES = main.mm \
- quikitintegration.mm \
- quikitwindow.mm \
- quikitscreen.mm \
- quikiteventloop.mm \
- quikitwindowsurface.mm
-
-OBJECTIVE_HEADERS = quikitintegration.h \
- quikitwindow.h \
- quikitscreen.h \
- quikiteventloop.h \
- quikitwindowsurface.h
-
-HEADERS = quikitsoftwareinputhandler.h
-
-#add libz for freetype.
-LIBS += -lz
-
-#load(qpa/fontdatabases/basicunix)
-target.path += $$[QT_INSTALL_PLUGINS]/platforms
-INSTALLS += target
diff --git a/src/plugins/platforms/vnc/qvnccursor.cpp b/src/plugins/platforms/vnc/qvnccursor.cpp
deleted file mode 100644
index 52591bdc05..0000000000
--- a/src/plugins/platforms/vnc/qvnccursor.cpp
+++ /dev/null
@@ -1,156 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the plugins of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QPainter>
-#include <QTcpSocket>
-#include <arpa/inet.h>
-#include <QBitmap>
-#include <QApplication>
-
-#include <QDebug>
-
-#include "qvnccursor.h"
-#include "qvncserver.h"
-#include "qvncintegration.h"
-
-QT_BEGIN_NAMESPACE
-
-QVNCCursor::QVNCCursor(QVNCServer * srvr, QVNCScreen *scr )
- :QPlatformSoftwareCursor(scr), useVncCursor(false), server(srvr)
-{
-}
-
-void QVNCCursor::changeCursor(QCursor * widgetCursor, QWidget * widget)
-{
- QPlatformSoftwareCursor::changeCursor(widgetCursor, widget);
- if (useVncCursor) {
- server->setDirtyCursor();
- } else {
- setDirty();
- }
-}
-
-void QVNCCursor::setCursorMode(bool vnc)
-{
- if (vnc) {
- setDirty();
- server->setDirtyCursor();
- } else {
- server->setDirtyCursor();
- }
- useVncCursor = vnc;
-}
-
-QRect QVNCCursor::drawCursor(QPainter & painter)
-{
- if (useVncCursor)
- return QRect();
-
- return QPlatformSoftwareCursor::drawCursor(painter);
-}
-
-void QVNCCursor::clearClientCursor()
-{
- QTcpSocket *socket = server->clientSocket();
- if (!socket) {
- return;
- }
- // FramebufferUpdate header
- {
- const quint16 tmp[6] = { htons(0),
- htons(1),
- htons(0), htons(0),
- htons(0),
- htons(0) };
- socket->write((char*)tmp, sizeof(tmp));
-
- const quint32 encoding = htonl(-239);
- socket->write((char*)(&encoding), sizeof(encoding));
- }
-}
-
-void QVNCCursor::sendClientCursor()
-{
- if (useVncCursor == false) {
- clearClientCursor();
- return;
- }
- QImage *image = graphic->image();
- if (image->isNull())
- return;
- QTcpSocket *socket = server->clientSocket();
- if (!socket) {
- return;
- }
- // FramebufferUpdate header
- {
- const quint16 tmp[6] = { htons(0),
- htons(1),
- htons(graphic->hotspot().x()), htons(graphic->hotspot().y()),
- htons(image->width()),
- htons(image->height()) };
- socket->write((char*)tmp, sizeof(tmp));
-
- const quint32 encoding = htonl(-239);
- socket->write((char*)(&encoding), sizeof(encoding));
- }
-
- // write pixels
- //Q_ASSERT(cursor->hasAlphaChannel());
- const QImage img = image->convertToFormat(QImage::Format_RGB32);
- const int n = server->clientBytesPerPixel() * img.width();
- char *buffer = new char[n];
- for (int i = 0; i < img.height(); ++i) {
- server->convertPixels(buffer, (const char*)img.scanLine(i), img.width());
- socket->write(buffer, n);
- }
- delete[] buffer;
-
- // write mask
- const QImage bitmap = image->createAlphaMask().convertToFormat(QImage::Format_Mono);
- Q_ASSERT(bitmap.depth() == 1);
- Q_ASSERT(bitmap.size() == img.size());
- const int width = (bitmap.width() + 7) / 8;
- for (int i = 0; i < bitmap.height(); ++i)
- socket->write((const char*)bitmap.scanLine(i), width);
-}
-
-QT_END_NAMESPACE
diff --git a/src/plugins/platforms/vnc/qvnccursor.h b/src/plugins/platforms/vnc/qvnccursor.h
deleted file mode 100644
index 3428d71ac7..0000000000
--- a/src/plugins/platforms/vnc/qvnccursor.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the plugins of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef QVNCCURSOR_H
-#define QVNCCURSOR_H
-
-#include "../fb_base/fb_base.h"
-#include <QList>
-#include <QImage>
-#include <QMouseEvent>
-
-QT_BEGIN_NAMESPACE
-
-class QVNCScreen;
-class QVNCServer;
-
-class QVNCCursor : public QPlatformSoftwareCursor {
-public:
- QVNCCursor(QVNCServer *, QVNCScreen *);
-
- // input methods
- void setCursorMode(bool vnc);
- void changeCursor(QCursor * widgetCursor, QWidget * widget);
-
- // output methods
- QRect drawCursor(QPainter &);
-
- // VNC client communication
- void sendClientCursor();
- void clearClientCursor();
-private:
- bool useVncCursor; // VNC or local
-
- QVNCServer * server; // VNC server to get events from
-};
-
-QT_END_NAMESPACE
-
-#endif // QVNCCURSOR_H
diff --git a/src/plugins/platforms/vnc/qvncintegration.cpp b/src/plugins/platforms/vnc/qvncintegration.cpp
deleted file mode 100644
index 8b653f7208..0000000000
--- a/src/plugins/platforms/vnc/qvncintegration.cpp
+++ /dev/null
@@ -1,255 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the plugins of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qvncintegration.h"
-#include "../fb_base/fb_base.h"
-#include <private/qapplication_p.h>
-#include <QtGui/private/qpixmap_raster_p.h>
-#include <QtCore/qdebug.h>
-
-#include <qvncserver.h>
-#include <QtGui/QPainter>
-
-#include <QtCore/QTimer>
-#include "qgenericunixfontdatabase.h"
-
-QVNCScreen::QVNCScreen(QRect screenSize, int screenId)
- : QFbScreen::QFbScreen()
-{
- setGeometry(screenSize);
- setDepth(32);
- setFormat(QImage::Format_RGB32);
- setPhysicalSize((geometry().size()*254)/720);
-
-
- d_ptr = new QVNCScreenPrivate(this, screenId);
-
- cursor = new QVNCCursor(d_ptr->vncServer, this);
- d_ptr->vncServer->setCursor(static_cast<QVNCCursor *>(cursor));
-}
-
-QVNCDirtyMap *QVNCScreen::dirtyMap()
-{
- return d_ptr->dirty;
-}
-
-QRegion QVNCScreen::doRedraw()
-{
- QRegion touched;
- touched = QFbScreen::doRedraw();
-
- QVector<QRect> rects = touched.rects();
- for (int i = 0; i < rects.size(); i++)
- d_ptr->setDirty(rects[i]);
- return touched;
-}
-
-static inline int defaultWidth() { return 800; }
-static inline int defaultHeight() { return 600; }
-static inline int defaultDisplay() { return 0; }
-
-static void usage()
-{
- qWarning() << "VNC Platform Integration options:";
- qWarning() << " size=<Width>x<Height> - set the display width and height";
- qWarning() << " defaults to" << defaultWidth() << "x" << defaultHeight();
- qWarning() << " display=<ID> - set the VNC display port to ID + 5900";
- qWarning() << " defaults to" << defaultDisplay();
- qWarning() << " offset=<X>x<Y> - set the current screens offset";
- qWarning() << " vnc - start configuration of a new screen";
- qWarning() << " size and offset are inherited from the previous screen if not set";
- qWarning() << " display id is incremented from the previous screen if not set";
- qWarning() << " virtual - manage the set of screens as a virtual desktop";
-}
-
-QVNCIntegration::QVNCIntegration(const QStringList& paramList)
- : virtualDesktop(false), fontDb(new QGenericUnixFontDatabase())
-{
- int sizeX = defaultWidth();
- int sizeY = defaultHeight();
- int offsetX = 0;
- int offsetY = 0;
- int display = defaultDisplay();
- bool showUsage = false;
-
- foreach(QString confString, paramList) {
- if (confString.startsWith(QLatin1String("size="))) {
- QString val = confString.section(QLatin1Char('='), 1, 1);
- sizeX = val.section(QLatin1Char('x'), 0, 0).toInt();
- sizeY = val.section(QLatin1Char('x'), 1, 1).toInt();
- }
- else if (confString.startsWith(QLatin1String("display="))) {
- display = confString.section(QLatin1Char('='), 1, 1).toInt();
- }
- else if (confString.startsWith(QLatin1String("offset="))) {
- QString val = confString.section(QLatin1Char('='), 1, 1);
- offsetX = val.section(QLatin1Char('x'), 0, 0).toInt();
- offsetY = val.section(QLatin1Char('x'), 1, 1).toInt();
- }
- else if (confString == QLatin1String("vnc")) {
- QRect screenRect(offsetX, offsetY, sizeX, sizeY);
- QVNCScreen *screen = new QVNCScreen(screenRect, display);
- mScreens.append(screen);
- screen->setObjectName(QString("screen %1").arg(display));
- screen->setDirty(screenRect);
- ++display;
- }
- else if (confString == QLatin1String("virtual")) {
- virtualDesktop = true;
- }
- else {
- qWarning() << "Unknown VNC option:" << confString;
- showUsage = true;
- }
- }
-
- if (showUsage)
- usage();
-
- QRect screenRect(offsetX, offsetY, sizeX, sizeY);
- QVNCScreen *screen = new QVNCScreen(screenRect, display);
- mScreens.append(screen);
- mPrimaryScreen = qobject_cast<QVNCScreen *>(mScreens.first());
- screen->setObjectName(QString("screen %1").arg(display));
- screen->setDirty(screenRect);
-}
-
-bool QVNCIntegration::hasCapability(QPlatformIntegration::Capability cap) const
-{
- switch (cap) {
- case ThreadedPixmaps: return true;
- default: return QPlatformIntegration::hasCapability(cap);
- }
-}
-
-
-QPlatformPixmap *QVNCIntegration::createPlatformPixmap(QPlatformPixmap::PixelType type) const
-{
- return new QRasterPlatformPixmap(type);
-}
-
-QWindowSurface *QVNCIntegration::createWindowSurface(QWidget *widget, WId) const
-{
- QFbWindowSurface * surface;
- surface = new QFbWindowSurface(mPrimaryScreen, widget);
- return surface;
-}
-
-QAbstractEventDispatcher *QVFbIntegration::createEventDispatcher() const
-{
- return createUnixEventDispatcher();
-}
-
-QPlatformWindow *QVNCIntegration::createPlatformWindow(QWidget *widget, WId /*winId*/) const
-{
- QFbWindow *w = new QFbWindow(widget);
- if (virtualDesktop) {
- QList<QPlatformScreen *>::const_iterator i = mScreens.constBegin();
- QList<QPlatformScreen *>::const_iterator end = mScreens.constEnd();
- QFbScreen *screen;
- while (i != end) {
- screen = static_cast<QFbScreen *>(*i);
- screen->addWindow(w);
- ++i;
- }
- }
- else
- mPrimaryScreen->addWindow(w);
- return w;
-}
-
-QPixmap QVNCIntegration::grabWindow(WId window, int x, int y, int width, int height) const
-{
-// qDebug() << "QVNCIntegration::grabWindow" << window << x << y << width << height;
-
- if (window == 0) { //desktop
- QImage *desktopImage = mPrimaryScreen->image();
- if (x==0 && y == 0 && width < 0 && height < 0) {
- return QPixmap::fromImage(*desktopImage);
- }
- if (width < 0)
- width = desktopImage->width() - x;
- if (height < 0)
- height = desktopImage->height() - y;
- int bytesPerPixel = desktopImage->depth()/8; //We don't support 1, 2, or 4 bpp
- QImage img(desktopImage->scanLine(y) + bytesPerPixel*x, width, height, desktopImage->bytesPerLine(), desktopImage->format());
- return QPixmap::fromImage(img);
- }
- QWidget *win = QWidget::find(window);
- if (win) {
- QRect r = win->geometry();
- if (width < 0)
- width = r.width() - x;
- if (height < 0)
- height = r.height() - y;
- QImage *desktopImage = mPrimaryScreen->image();
- int bytesPerPixel = desktopImage->depth()/8; //We don't support 1, 2, or 4 bpp
-
- QImage img(desktopImage->scanLine(r.top() + y) + bytesPerPixel*(r.left()+x), width, height, desktopImage->bytesPerLine(), desktopImage->format());
- return QPixmap::fromImage(img);
- }
- return QPixmap();
-}
-
-
-void QVNCIntegration::moveToScreen(QWidget *window, int screen)
-{
- if (virtualDesktop) { // all windows exist on all screens in virtual desktop mode
- return;
- }
- if (screen < 0 || screen > mScreens.size())
- return;
- QVNCScreen * newScreen = qobject_cast<QVNCScreen *>(mScreens.at(screen));
- for(int i = 0; i < mScreens.size(); i++) {
- QVNCScreen *oldScreen = qobject_cast<QVNCScreen *>(mScreens.at(i));
- if (oldScreen->windowStack.contains(static_cast<QFbWindow *>(window->platformWindow()))) {
- oldScreen->removeWindow(static_cast<QFbWindow *>(window->platformWindow()));
- break;
- }
- }
- window->platformWindow()->setGeometry(window->geometry()); // this should be unified elsewhere
- newScreen->addWindow(static_cast<QFbWindow *>(window->platformWindow()));
-}
-
-QPlatformFontDatabase *QVNCIntegration::fontDatabase() const
-{
- return fontDb;
-}
diff --git a/src/plugins/platforms/vnc/qvncintegration.h b/src/plugins/platforms/vnc/qvncintegration.h
deleted file mode 100644
index a6baf0340e..0000000000
--- a/src/plugins/platforms/vnc/qvncintegration.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the plugins of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QGRAPHICSSYSTEM_VNC_H
-#define QGRAPHICSSYSTEM_VNC_H
-
-#include "qvnccursor.h"
-#include "../fb_base/fb_base.h"
-#include <QPlatformIntegration>
-#include "qgenericunixfontdatabase.h"
-
-QT_BEGIN_NAMESPACE
-
-class QVNCServer;
-class QVNCDirtyMap;
-
-class QVNCScreenPrivate;
-
-class QVNCScreen : public QFbScreen
-{
- Q_OBJECT
-public:
- QVNCScreen(QRect screenSize, int screenId);
-
- int linestep() const { return image() ? image()->bytesPerLine() : 0; }
- uchar *base() const { return image() ? image()->bits() : 0; }
- QVNCDirtyMap *dirtyMap();
-
-public:
- QVNCScreenPrivate *d_ptr;
-
-private:
- QVNCServer *server;
- QRegion doRedraw();
- friend class QVNCIntegration;
-};
-
-class QVNCIntegrationPrivate;
-class QAbstractEventDispatcher;
-
-class QVNCIntegration : public QPlatformIntegration
-{
-public:
- QVNCIntegration(const QStringList& paramList);
-
- bool hasCapability(QPlatformIntegration::Capability cap) const;
- QPlatformPixmap *createPlatformPixmap(QPlatformPixmap::PixelType type) const;
- QPlatformWindow *createPlatformWindow(QWidget *widget, WId winId) const;
- QWindowSurface *createWindowSurface(QWidget *widget, WId winId) const;
- QAbstractEventDispatcher createEventDispatcher() const;
-
- QPixmap grabWindow(WId window, int x, int y, int width, int height) const;
-
- QList<QPlatformScreen *> screens() const { return mScreens; }
-
- bool isVirtualDesktop() { return virtualDesktop; }
- void moveToScreen(QWidget *window, int screen);
-
- QPlatformFontDatabase *fontDatabase() const;
-
-private:
- QVNCScreen *mPrimaryScreen;
- QList<QPlatformScreen *> mScreens;
- bool virtualDesktop;
- QPlatformFontDatabase *fontDb;
-};
-
-
-
-QT_END_NAMESPACE
-
-#endif //QGRAPHICSSYSTEM_VNC_H
-
diff --git a/src/plugins/platforms/vnc/qvncserver.cpp b/src/plugins/platforms/vnc/qvncserver.cpp
deleted file mode 100644
index db49025c41..0000000000
--- a/src/plugins/platforms/vnc/qvncserver.cpp
+++ /dev/null
@@ -1,1935 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the plugins of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qvncserver.h"
-
-#include <QtCore/qtimer.h>
-#include <QtCore/qregexp.h>
-#include <QtWidgets/qwidget.h>
-#include <QtGui/qpolygon.h>
-#include <QtGui/qpainter.h>
-
-#include <QtGui/qevent.h>
-#include <QWindowSystemInterface>
-
-#include <qplatformdefs.h>
-
-#include <qdebug.h>
-
-#include <stdlib.h>
-
-
-#define QT_QWS_VNC_DEBUG
-#define QT_NO_QWS_CURSOR //###
-
-
-QT_BEGIN_NAMESPACE
-
-
-
-//copied from qscreen_qws.h
-#ifndef QT_QWS_DEPTH16_RGB
-#define QT_QWS_DEPTH16_RGB 565
-#endif
-static const int qt_rbits = (QT_QWS_DEPTH16_RGB/100);
-static const int qt_gbits = (QT_QWS_DEPTH16_RGB/10%10);
-static const int qt_bbits = (QT_QWS_DEPTH16_RGB%10);
-static const int qt_red_shift = qt_bbits+qt_gbits-(8-qt_rbits);
-static const int qt_green_shift = qt_bbits-(8-qt_gbits);
-static const int qt_neg_blue_shift = 8-qt_bbits;
-static const int qt_blue_mask = (1<<qt_bbits)-1;
-static const int qt_green_mask = (1<<(qt_gbits+qt_bbits))-(1<<qt_bbits);
-static const int qt_red_mask = (1<<(qt_rbits+qt_gbits+qt_bbits))-(1<<(qt_gbits+qt_bbits));
-
-static const int qt_red_rounding_shift = qt_red_shift + qt_rbits;
-static const int qt_green_rounding_shift = qt_green_shift + qt_gbits;
-static const int qt_blue_rounding_shift = qt_bbits - qt_neg_blue_shift;
-
-
-inline QRgb qt_conv16ToRgb(ushort c)
-{
- const int r=(c & qt_red_mask);
- const int g=(c & qt_green_mask);
- const int b=(c & qt_blue_mask);
- const int tr = r >> qt_red_shift | r >> qt_red_rounding_shift;
- const int tg = g >> qt_green_shift | g >> qt_green_rounding_shift;
- const int tb = b << qt_neg_blue_shift | b >> qt_blue_rounding_shift;
-
- return qRgb(tr,tg,tb);
-}
-
-
-
-//===========================================================================
-
-static const struct {
- int keysym;
- int keycode;
-} keyMap[] = {
- { 0xff08, Qt::Key_Backspace },
- { 0xff09, Qt::Key_Tab },
- { 0xff0d, Qt::Key_Return },
- { 0xff1b, Qt::Key_Escape },
- { 0xff63, Qt::Key_Insert },
- { 0xffff, Qt::Key_Delete },
- { 0xff50, Qt::Key_Home },
- { 0xff57, Qt::Key_End },
- { 0xff55, Qt::Key_PageUp },
- { 0xff56, Qt::Key_PageDown },
- { 0xff51, Qt::Key_Left },
- { 0xff52, Qt::Key_Up },
- { 0xff53, Qt::Key_Right },
- { 0xff54, Qt::Key_Down },
- { 0xffbe, Qt::Key_F1 },
- { 0xffbf, Qt::Key_F2 },
- { 0xffc0, Qt::Key_F3 },
- { 0xffc1, Qt::Key_F4 },
- { 0xffc2, Qt::Key_F5 },
- { 0xffc3, Qt::Key_F6 },
- { 0xffc4, Qt::Key_F7 },
- { 0xffc5, Qt::Key_F8 },
- { 0xffc6, Qt::Key_F9 },
- { 0xffc7, Qt::Key_F10 },
- { 0xffc8, Qt::Key_F11 },
- { 0xffc9, Qt::Key_F12 },
- { 0xffe1, Qt::Key_Shift },
- { 0xffe2, Qt::Key_Shift },
- { 0xffe3, Qt::Key_Control },
- { 0xffe4, Qt::Key_Control },
- { 0xffe7, Qt::Key_Meta },
- { 0xffe8, Qt::Key_Meta },
- { 0xffe9, Qt::Key_Alt },
- { 0xffea, Qt::Key_Alt },
- { 0, 0 }
-};
-
-void QRfbRect::read(QTcpSocket *s)
-{
- quint16 buf[4];
- s->read((char*)buf, 8);
- x = ntohs(buf[0]);
- y = ntohs(buf[1]);
- w = ntohs(buf[2]);
- h = ntohs(buf[3]);
-}
-
-void QRfbRect::write(QTcpSocket *s) const
-{
- quint16 buf[4];
- buf[0] = htons(x);
- buf[1] = htons(y);
- buf[2] = htons(w);
- buf[3] = htons(h);
- s->write((char*)buf, 8);
-}
-
-void QRfbPixelFormat::read(QTcpSocket *s)
-{
- char buf[16];
- s->read(buf, 16);
- bitsPerPixel = buf[0];
- depth = buf[1];
- bigEndian = buf[2];
- trueColor = buf[3];
-
- quint16 a = ntohs(*(quint16 *)(buf + 4));
- redBits = 0;
- while (a) { a >>= 1; redBits++; }
-
- a = ntohs(*(quint16 *)(buf + 6));
- greenBits = 0;
- while (a) { a >>= 1; greenBits++; }
-
- a = ntohs(*(quint16 *)(buf + 8));
- blueBits = 0;
- while (a) { a >>= 1; blueBits++; }
-
- redShift = buf[10];
- greenShift = buf[11];
- blueShift = buf[12];
-}
-
-void QRfbPixelFormat::write(QTcpSocket *s)
-{
- char buf[16];
- buf[0] = bitsPerPixel;
- buf[1] = depth;
- buf[2] = bigEndian;
- buf[3] = trueColor;
-
- quint16 a = 0;
- for (int i = 0; i < redBits; i++) a = (a << 1) | 1;
- *(quint16 *)(buf + 4) = htons(a);
-
- a = 0;
- for (int i = 0; i < greenBits; i++) a = (a << 1) | 1;
- *(quint16 *)(buf + 6) = htons(a);
-
- a = 0;
- for (int i = 0; i < blueBits; i++) a = (a << 1) | 1;
- *(quint16 *)(buf + 8) = htons(a);
-
- buf[10] = redShift;
- buf[11] = greenShift;
- buf[12] = blueShift;
- s->write(buf, 16);
-}
-
-
-void QRfbServerInit::setName(const char *n)
-{
- delete[] name;
- name = new char [strlen(n) + 1];
- strcpy(name, n);
-}
-
-void QRfbServerInit::read(QTcpSocket *s)
-{
- s->read((char *)&width, 2);
- width = ntohs(width);
- s->read((char *)&height, 2);
- height = ntohs(height);
- format.read(s);
-
- quint32 len;
- s->read((char *)&len, 4);
- len = ntohl(len);
-
- name = new char [len + 1];
- s->read(name, len);
- name[len] = '\0';
-}
-
-void QRfbServerInit::write(QTcpSocket *s)
-{
- quint16 t = htons(width);
- s->write((char *)&t, 2);
- t = htons(height);
- s->write((char *)&t, 2);
- format.write(s);
- quint32 len = strlen(name);
- len = htonl(len);
- s->write((char *)&len, 4);
- s->write(name, strlen(name));
-}
-
-bool QRfbSetEncodings::read(QTcpSocket *s)
-{
- if (s->bytesAvailable() < 3)
- return false;
-
- char tmp;
- s->read(&tmp, 1); // padding
- s->read((char *)&count, 2);
- count = ntohs(count);
-
- return true;
-}
-
-bool QRfbFrameBufferUpdateRequest::read(QTcpSocket *s)
-{
- if (s->bytesAvailable() < 9)
- return false;
-
- s->read(&incremental, 1);
- rect.read(s);
-
- return true;
-}
-
-bool QRfbKeyEvent::read(QTcpSocket *s)
-{
- if (s->bytesAvailable() < 7)
- return false;
-
- s->read(&down, 1);
- quint16 tmp;
- s->read((char *)&tmp, 2); // padding
-
- quint32 key;
- s->read((char *)&key, 4);
- key = ntohl(key);
-
- unicode = 0;
- keycode = 0;
- int i = 0;
- while (keyMap[i].keysym && !keycode) {
- if (keyMap[i].keysym == (int)key)
- keycode = keyMap[i].keycode;
- i++;
- }
- if (!keycode) {
- if (key <= 0xff) {
- unicode = key;
- if (key >= 'a' && key <= 'z')
- keycode = Qt::Key_A + key - 'a';
- else if (key >= ' ' && key <= '~')
- keycode = Qt::Key_Space + key - ' ';
- }
- }
-
- return true;
-}
-
-bool QRfbPointerEvent::read(QTcpSocket *s)
-{
- if (s->bytesAvailable() < 5)
- return false;
-
- char buttonMask;
- s->read(&buttonMask, 1);
-
- buttons = Qt::NoButton;
- wheelDirection = WheelNone;
- if (buttonMask & 1)
- buttons |= Qt::LeftButton;
- if (buttonMask & 2)
- buttons |= Qt::MidButton;
- if (buttonMask & 4)
- buttons |= Qt::RightButton;
- if (buttonMask & 8)
- wheelDirection = WheelUp;
- if (buttonMask & 16)
- wheelDirection = WheelDown;
- if (buttonMask & 32)
- wheelDirection = WheelLeft;
- if (buttonMask & 64)
- wheelDirection = WheelRight;
-
- quint16 tmp;
- s->read((char *)&tmp, 2);
- x = ntohs(tmp);
- s->read((char *)&tmp, 2);
- y = ntohs(tmp);
-
- return true;
-}
-
-bool QRfbClientCutText::read(QTcpSocket *s)
-{
- if (s->bytesAvailable() < 7)
- return false;
-
- char tmp[3];
- s->read(tmp, 3); // padding
- s->read((char *)&length, 4);
- length = ntohl(length);
-
- return true;
-}
-
-//===========================================================================
-
-QVNCServer::QVNCServer(QVNCScreen *screen)
- : qvnc_screen(screen), cursor(0)
-{
- init(5900);
-}
-
-QVNCServer::QVNCServer(QVNCScreen *screen, int id)
- : qvnc_screen(screen), cursor(0)
-{
- init(5900 + id);
-}
-
-void QVNCServer::init(uint port)
-{
- qDebug() << "QVNCServer::init" << port;
-
- handleMsg = false;
- client = 0;
- encodingsPending = 0;
- cutTextPending = 0;
- keymod = 0;
- state = Unconnected;
- dirtyCursor = false;
-
- refreshRate = 25;
- timer = new QTimer(this);
- timer->setSingleShot(true);
- connect(timer, SIGNAL(timeout()), this, SLOT(checkUpdate()));
-
- serverSocket = new QTcpServer(this);
- if (!serverSocket->listen(QHostAddress::Any, port))
- qDebug() << "QVNCServer could not connect:" << serverSocket->errorString();
- else
- qDebug("QVNCServer created on port %d", port);
-
- connect(serverSocket, SIGNAL(newConnection()), this, SLOT(newConnection()));
-
-#ifndef QT_NO_QWS_CURSOR
- qvnc_cursor = 0;
-#endif
- encoder = 0;
-}
-
-QVNCServer::~QVNCServer()
-{
- delete encoder;
- encoder = 0;
- delete client;
- client = 0;
-#ifndef QT_NO_QWS_CURSOR
- delete qvnc_cursor;
- qvnc_cursor = 0;
-#endif
-}
-
-void QVNCServer::setDirty()
-{
- if (state == Connected && !timer->isActive() &&
- ((dirtyMap()->numDirty > 0) || dirtyCursor)) {
- timer->start();
- }
-}
-
-void QVNCServer::newConnection()
-{
- if (client)
- delete client;
-
- client = serverSocket->nextPendingConnection();
- connect(client,SIGNAL(readyRead()),this,SLOT(readClient()));
- connect(client,SIGNAL(disconnected()),this,SLOT(discardClient()));
- handleMsg = false;
- encodingsPending = 0;
- cutTextPending = 0;
- supportHextile = false;
- wantUpdate = false;
-
- timer->start(1000 / refreshRate);
- dirtyMap()->reset();
-
- // send protocol version
- const char *proto = "RFB 003.003\n";
- client->write(proto, 12);
- state = Protocol;
-
-// if (!qvnc_screen->screen())
-// QWSServer::instance()->enablePainting(true);
-}
-
-void QVNCServer::readClient()
-{
- switch (state) {
- case Protocol:
- if (client->bytesAvailable() >= 12) {
- char proto[13];
- client->read(proto, 12);
- proto[12] = '\0';
- qDebug("Client protocol version %s", proto);
- // No authentication
- quint32 auth = htonl(1);
- client->write((char *) &auth, sizeof(auth));
- state = Init;
- }
- break;
-
- case Init:
- if (client->bytesAvailable() >= 1) {
- quint8 shared;
- client->read((char *) &shared, 1);
-
- // Server Init msg
- QRfbServerInit sim;
- QRfbPixelFormat &format = sim.format;
- switch (qvnc_screen->depth()) {
- case 32:
- format.bitsPerPixel = 32;
- format.depth = 32;
- format.bigEndian = 0;
- format.trueColor = true;
- format.redBits = 8;
- format.greenBits = 8;
- format.blueBits = 8;
- format.redShift = 16;
- format.greenShift = 8;
- format.blueShift = 0;
- break;
-
- case 24:
- format.bitsPerPixel = 24;
- format.depth = 24;
- format.bigEndian = 0;
- format.trueColor = true;
- format.redBits = 8;
- format.greenBits = 8;
- format.blueBits = 8;
- format.redShift = 16;
- format.greenShift = 8;
- format.blueShift = 0;
- break;
-
- case 18:
- format.bitsPerPixel = 24;
- format.depth = 18;
- format.bigEndian = 0;
- format.trueColor = true;
- format.redBits = 6;
- format.greenBits = 6;
- format.blueBits = 6;
- format.redShift = 12;
- format.greenShift = 6;
- format.blueShift = 0;
- break;
-
- case 16:
- format.bitsPerPixel = 16;
- format.depth = 16;
- format.bigEndian = 0;
- format.trueColor = true;
- format.redBits = 5;
- format.greenBits = 6;
- format.blueBits = 5;
- format.redShift = 11;
- format.greenShift = 5;
- format.blueShift = 0;
- break;
-
- case 15:
- format.bitsPerPixel = 16;
- format.depth = 15;
- format.bigEndian = 0;
- format.trueColor = true;
- format.redBits = 5;
- format.greenBits = 5;
- format.blueBits = 5;
- format.redShift = 10;
- format.greenShift = 5;
- format.blueShift = 0;
- break;
-
- case 12:
- format.bitsPerPixel = 16;
- format.depth = 12;
- format.bigEndian = 0;
- format.trueColor = true;
- format.redBits = 4;
- format.greenBits = 4;
- format.blueBits = 4;
- format.redShift = 8;
- format.greenShift = 4;
- format.blueShift = 0;
- break;
-
- case 8:
- case 4:
- format.bitsPerPixel = 8;
- format.depth = 8;
- format.bigEndian = 0;
- format.trueColor = false;
- format.redBits = 0;
- format.greenBits = 0;
- format.blueBits = 0;
- format.redShift = 0;
- format.greenShift = 0;
- format.blueShift = 0;
- break;
-
- default:
- qDebug("QVNC cannot drive depth %d", qvnc_screen->depth());
- discardClient();
- return;
- }
- sim.width = qvnc_screen->geometry().width();
- sim.height = qvnc_screen->geometry().height();
- sim.setName("Qt for Embedded Linux VNC Server");
- sim.write(client);
- state = Connected;
- }
- break;
-
- case Connected:
- do {
- if (!handleMsg) {
- client->read((char *)&msgType, 1);
- handleMsg = true;
- }
- if (handleMsg) {
- switch (msgType ) {
- case SetPixelFormat:
- setPixelFormat();
- break;
- case FixColourMapEntries:
- qDebug("Not supported: FixColourMapEntries");
- handleMsg = false;
- break;
- case SetEncodings:
- setEncodings();
- break;
- case FramebufferUpdateRequest:
- frameBufferUpdateRequest();
- break;
- case KeyEvent:
- keyEvent();
- break;
- case PointerEvent:
- pointerEvent();
- break;
- case ClientCutText:
- clientCutText();
- break;
- default:
- qDebug("Unknown message type: %d", (int)msgType);
- handleMsg = false;
- }
- }
- } while (!handleMsg && client->bytesAvailable());
- break;
- default:
- break;
- }
-}
-
-#if 0//Q_BYTE_ORDER == Q_BIG_ENDIAN
-bool QVNCScreen::swapBytes() const
-{
- if (depth() != 16)
- return false;
-
- if (screen())
- return screen()->frameBufferLittleEndian();
- return frameBufferLittleEndian();
-}
-#endif
-
-void QVNCServer::setPixelFormat()
-{
- if (client->bytesAvailable() >= 19) {
- char buf[3];
- client->read(buf, 3); // just padding
- pixelFormat.read(client);
-#ifdef QT_QWS_VNC_DEBUG
- qDebug("Want format: %d %d %d %d %d %d %d %d %d %d",
- int(pixelFormat.bitsPerPixel),
- int(pixelFormat.depth),
- int(pixelFormat.bigEndian),
- int(pixelFormat.trueColor),
- int(pixelFormat.redBits),
- int(pixelFormat.greenBits),
- int(pixelFormat.blueBits),
- int(pixelFormat.redShift),
- int(pixelFormat.greenShift),
- int(pixelFormat.blueShift));
-#endif
- if (!pixelFormat.trueColor) {
- qDebug("Can only handle true color clients");
- discardClient();
- }
- handleMsg = false;
- sameEndian = (QSysInfo::ByteOrder == QSysInfo::BigEndian) == !!pixelFormat.bigEndian;
- needConversion = pixelConversionNeeded();
-#if Q_BYTE_ORDER == Q_BIG_ENDIAN
- swapBytes = qvnc_screen->swapBytes();
-#endif
- }
-}
-
-void QVNCServer::setEncodings()
-{
- QRfbSetEncodings enc;
-
- if (!encodingsPending && enc.read(client)) {
- encodingsPending = enc.count;
- if (!encodingsPending)
- handleMsg = false;
- }
-
- if (encoder) {
- delete encoder;
- encoder = 0;
- }
-
- enum Encodings {
- Raw = 0,
- CopyRect = 1,
- RRE = 2,
- CoRRE = 4,
- Hextile = 5,
- ZRLE = 16,
- Cursor = -239,
- DesktopSize = -223
- };
-
- supportCursor = false;
-
- if (encodingsPending && (unsigned)client->bytesAvailable() >=
- encodingsPending * sizeof(quint32)) {
- for (int i = 0; i < encodingsPending; ++i) {
- qint32 enc;
- client->read((char *)&enc, sizeof(qint32));
- enc = ntohl(enc);
-#ifdef QT_QWS_VNC_DEBUG
- qDebug("QVNCServer::setEncodings: %d", enc);
-#endif
- switch (enc) {
- case Raw:
- if (!encoder) {
- encoder = new QRfbRawEncoder(this);
-#ifdef QT_QWS_VNC_DEBUG
- qDebug("QVNCServer::setEncodings: using raw");
-#endif
- }
- break;
- case CopyRect:
- supportCopyRect = true;
- break;
- case RRE:
- supportRRE = true;
- break;
- case CoRRE:
- supportCoRRE = true;
- break;
- case Hextile:
- supportHextile = true;
- if (encoder)
- break;
- switch (qvnc_screen->depth()) {
-#ifdef QT_QWS_DEPTH_8
- case 8:
- encoder = new QRfbHextileEncoder<quint8>(this);
- break;
-#endif
-#ifdef QT_QWS_DEPTH_12
- case 12:
- encoder = new QRfbHextileEncoder<qrgb444>(this);
- break;
-#endif
-#ifdef QT_QWS_DEPTH_15
- case 15:
- encoder = new QRfbHextileEncoder<qrgb555>(this);
- break;
-#endif
-#ifdef QT_QWS_DEPTH_16
- case 16:
- encoder = new QRfbHextileEncoder<quint16>(this);
- break;
-#endif
-#ifdef QT_QWS_DEPTH_18
- case 18:
- encoder = new QRfbHextileEncoder<qrgb666>(this);
- break;
-#endif
-#ifdef QT_QWS_DEPTH_24
- case 24:
- encoder = new QRfbHextileEncoder<qrgb888>(this);
- break;
-#endif
-#ifdef QT_QWS_DEPTH_32
- case 32:
- encoder = new QRfbHextileEncoder<quint32>(this);
- break;
-#endif
- default:
- break;
- }
-#ifdef QT_QWS_VNC_DEBUG
- qDebug("QVNCServer::setEncodings: using hextile");
-#endif
- break;
- case ZRLE:
- supportZRLE = true;
- break;
- case Cursor:
- supportCursor = true;
-#ifndef QT_NO_QWS_CURSOR
- if (!qvnc_screen->screen() || qt_screencursor->isAccelerated()) {
- delete qvnc_cursor;
- qvnc_cursor = new QVNCClientCursor(this);
- }
-#endif
- break;
- case DesktopSize:
- supportDesktopSize = true;
- break;
- default:
- break;
- }
- }
- handleMsg = false;
- encodingsPending = 0;
- }
-
- if (!encoder) {
- encoder = new QRfbRawEncoder(this);
-#ifdef QT_QWS_VNC_DEBUG
- qDebug("QVNCServer::setEncodings: fallback using raw");
-#endif
- }
-
- if (cursor)
- cursor->setCursorMode(supportCursor);
-}
-
-void QVNCServer::frameBufferUpdateRequest()
-{
- QRfbFrameBufferUpdateRequest ev;
-
- if (ev.read(client)) {
- if (!ev.incremental) {
- QRect r(ev.rect.x, ev.rect.y, ev.rect.w, ev.rect.h);
-////### r.translate(qvnc_screen->offset());
- qvnc_screen->d_ptr->setDirty(r, true);
- }
- wantUpdate = true;
- checkUpdate();
- handleMsg = false;
- }
-}
-
-static bool buttonChange(Qt::MouseButtons before, Qt::MouseButtons after, Qt::MouseButton *button, bool *isPress)
-{
- if (before == after)
- return false;
- for (int b = Qt::LeftButton; b <= Qt::MidButton; b<<=1) {
- if ((before & b) != (after & b)) {
- *button = static_cast<Qt::MouseButton>(b);
- *isPress = (after & b);
- return true;
- }
- }
- return false;
-}
-
-void QVNCServer::pointerEvent()
-{
- QPoint screenOffset = this->screen()->geometry().topLeft();
-
- QRfbPointerEvent ev;
- if (ev.read(client)) {
- QPoint eventPoint(ev.x, ev.y);
- eventPoint += screenOffset; // local to global translation
-
- if (ev.wheelDirection == ev.WheelNone) {
- QEvent::Type type = QEvent::MouseMove;
- Qt::MouseButton button = Qt::NoButton;
- bool isPress;
- if (buttonChange(buttons, ev.buttons, &button, &isPress))
- type = isPress ? QEvent::MouseButtonPress : QEvent::MouseButtonRelease;
- QWindowSystemInterface::handleMouseEvent(0, eventPoint, eventPoint, ev.buttons);
- } else {
- // No buttons or motion reported at the same time as wheel events
- Qt::Orientation orientation;
- if (ev.wheelDirection == ev.WheelLeft || ev.wheelDirection == ev.WheelRight)
- orientation = Qt::Horizontal;
- else
- orientation = Qt::Vertical;
- int delta = 120 * ((ev.wheelDirection == ev.WheelLeft || ev.wheelDirection == ev.WheelUp) ? 1 : -1);
- QWindowSystemInterface::handleWheelEvent(0, eventPoint, eventPoint, delta, orientation);
- }
- handleMsg = false;
- }
-}
-
-void QVNCServer::keyEvent()
-{
- QRfbKeyEvent ev;
-
- if (ev.read(client)) {
- if (ev.keycode == Qt::Key_Shift)
- keymod = ev.down ? keymod | Qt::ShiftModifier :
- keymod & ~Qt::ShiftModifier;
- else if (ev.keycode == Qt::Key_Control)
- keymod = ev.down ? keymod | Qt::ControlModifier :
- keymod & ~Qt::ControlModifier;
- else if (ev.keycode == Qt::Key_Alt)
- keymod = ev.down ? keymod | Qt::AltModifier :
- keymod & ~Qt::AltModifier;
- if (ev.unicode || ev.keycode) {
-// qDebug() << "keyEvent" << hex << ev.unicode << ev.keycode << keymod << ev.down;
- QEvent::Type type = ev.down ? QEvent::KeyPress : QEvent::KeyRelease;
- QString str;
- if (ev.unicode && ev.unicode != 0xffff)
- str = QString(ev.unicode);
- QWindowSystemInterface::handleKeyEvent(0, type, ev.keycode, keymod, str);
- }
- handleMsg = false;
- }
-}
-
-void QVNCServer::clientCutText()
-{
- QRfbClientCutText ev;
-
- if (cutTextPending == 0 && ev.read(client)) {
- cutTextPending = ev.length;
- if (!cutTextPending)
- handleMsg = false;
- }
-
- if (cutTextPending && client->bytesAvailable() >= cutTextPending) {
- char *text = new char [cutTextPending+1];
- client->read(text, cutTextPending);
- delete [] text;
- cutTextPending = 0;
- handleMsg = false;
- }
-}
-
-// stride in bytes
-template <class SRC>
-bool QRfbSingleColorHextile<SRC>::read(const uchar *data,
- int width, int height, int stride)
-{
- const int depth = encoder->server->screen()->depth();
- if (width % (depth / 8)) // hw: should rather fallback to simple loop
- return false;
-
- static int alwaysFalse = qgetenv("QT_VNC_NOCHECKFILL").toInt();
- if (alwaysFalse)
- return false;
-
- switch (depth) {
- case 4: {
- const quint8 *data8 = reinterpret_cast<const quint8*>(data);
- if ((data8[0] & 0xf) != (data8[0] >> 4))
- return false;
- width /= 2;
- } // fallthrough
- case 8: {
- const quint8 *data8 = reinterpret_cast<const quint8*>(data);
- if (data8[0] != data8[1])
- return false;
- width /= 2;
- } // fallthrough
- case 12:
- case 15:
- case 16: {
- const quint16 *data16 = reinterpret_cast<const quint16*>(data);
- if (data16[0] != data16[1])
- return false;
- width /= 2;
- } // fallthrough
- case 18:
- case 24:
- case 32: {
- const quint32 *data32 = reinterpret_cast<const quint32*>(data);
- const quint32 first = data32[0];
- const int linestep = (stride / sizeof(quint32)) - width;
- for (int y = 0; y < height; ++y) {
- for (int x = 0; x < width; ++x) {
- if (*(data32++) != first)
- return false;
- }
- data32 += linestep;
- }
- break;
- }
- default:
- return false;
- }
-
- SRC color = reinterpret_cast<const SRC*>(data)[0];
- encoder->newBg |= (color != encoder->bg);
- encoder->bg = color;
- return true;
-}
-
-template <class SRC>
-void QRfbSingleColorHextile<SRC>::write(QTcpSocket *socket) const
-{
- if (true || encoder->newBg) {
- const int bpp = encoder->server->clientBytesPerPixel();
- const int padding = 3;
- QVarLengthArray<char> buffer(padding + 1 + bpp);
- buffer[padding] = 2; // BackgroundSpecified
- encoder->server->convertPixels(buffer.data() + padding + 1,
- reinterpret_cast<char*>(&encoder->bg),
- 1);
- socket->write(buffer.data() + padding, bpp + 1);
-// encoder->newBg = false;
- } else {
- char subenc = 0;
- socket->write(&subenc, 1);
- }
-}
-
-template <class SRC>
-bool QRfbDualColorHextile<SRC>::read(const uchar *data,
- int width, int height, int stride)
-{
- const SRC *ptr = reinterpret_cast<const SRC*>(data);
- const int linestep = (stride / sizeof(SRC)) - width;
-
- SRC c1;
- SRC c2 = 0;
- int n1 = 0;
- int n2 = 0;
- int x = 0;
- int y = 0;
-
- c1 = *ptr;
-
- // find second color
- while (y < height) {
- while (x < width) {
- if (*ptr == c1) {
- ++n1;
- } else {
- c2 = *ptr;
- goto found_second_color;
- }
- ++ptr;
- ++x;
- }
- x = 0;
- ptr += linestep;
- ++y;
- }
-
-found_second_color:
- // finish counting
- while (y < height) {
- while (x < width) {
- if (*ptr == c1) {
- ++n1;
- } else if (*ptr == c2) {
- ++n2;
- } else {
- return false;
- }
- ++ptr;
- ++x;
- }
- x = 0;
- ptr += linestep;
- ++y;
- }
-
- if (n2 > n1) {
- const quint32 tmpC = c1;
- c1 = c2;
- c2 = tmpC;
- }
-
- encoder->newBg |= (c1 != encoder->bg);
- encoder->newFg |= (c2 != encoder->fg);
-
- encoder->bg = c1;
- encoder->fg = c2;
-
- // create map
- bool inRect = false;
- numRects = 0;
- ptr = reinterpret_cast<const SRC*>(data);
- for (y = 0; y < height; ++y) {
- for (x = 0; x < width; ++x) {
- if (inRect && *ptr == encoder->bg) {
- // rect finished
- setWidth(x - lastx());
- next();
- inRect = false;
- } else if (!inRect && *ptr == encoder->fg) {
- // rect start
- setX(x);
- setY(y);
- setHeight(1);
- inRect = true;
- }
- ++ptr;
- }
- if (inRect) {
- // finish rect
- setWidth(width - lastx());
- next();
- inRect = false;
- }
- ptr += linestep;
- }
-
- return true;
-}
-
-template <class SRC>
-void QRfbDualColorHextile<SRC>::write(QTcpSocket *socket) const
-{
- const int bpp = encoder->server->clientBytesPerPixel();
- const int padding = 3;
- QVarLengthArray<char> buffer(padding + 2 * bpp + sizeof(char) + sizeof(numRects));
- char &subenc = buffer[padding];
- int n = padding + sizeof(subenc);
-
- subenc = 0x8; // AnySubrects
-
- if (encoder->newBg) {
- subenc |= 0x2; // Background
- encoder->server->convertPixels(buffer.data() + n, (char*)&encoder->bg, 1);
- n += bpp;
-// encoder->newBg = false;
- }
-
- if (encoder->newFg) {
- subenc |= 0x4; // Foreground
- encoder->server->convertPixels(buffer.data() + n, (char*)&encoder->fg, 1);
- n += bpp;
-// encoder->newFg = false;
- }
- buffer[n] = numRects;
- n += sizeof(numRects);
-
- socket->write(buffer.data() + padding, n - padding);
- socket->write((char*)rects, numRects * sizeof(Rect));
-}
-
-template <class SRC>
-void QRfbDualColorHextile<SRC>::next()
-{
- for (int r = numRects - 1; r >= 0; --r) {
- if (recty(r) == lasty())
- continue;
- if (recty(r) < lasty() - 1) // only search previous scanline
- break;
- if (rectx(r) == lastx() && width(r) == width(numRects)) {
- ++rects[r].wh;
- return;
- }
- }
- ++numRects;
-}
-
-template <class SRC>
-inline void QRfbMultiColorHextile<SRC>::setColor(SRC color)
-{
- encoder->server->convertPixels(reinterpret_cast<char*>(rect(numRects)),
- (const char*)&color, 1);
-}
-
-template <class SRC>
-inline bool QRfbMultiColorHextile<SRC>::beginRect()
-{
- if ((rects.size() + bpp + 2) > maxRectsSize)
- return false;
- rects.resize(rects.size() + bpp + 2);
- return true;
-}
-
-template <class SRC>
-inline void QRfbMultiColorHextile<SRC>::endRect()
-{
- setHeight(numRects, 1);
- ++numRects;
-}
-
-template <class SRC>
-bool QRfbMultiColorHextile<SRC>::read(const uchar *data,
- int width, int height, int stride)
-{
- const SRC *ptr = reinterpret_cast<const SRC*>(data);
- const int linestep = (stride / sizeof(SRC)) - width;
-
- bpp = encoder->server->clientBytesPerPixel();
-
- if (encoder->newBg)
- encoder->bg = ptr[0];
-
- const SRC bg = encoder->bg;
- SRC color = bg;
- bool inRect = false;
-
- numRects = 0;
- rects.clear();
-
- for (int y = 0; y < height; ++y) {
- for (int x = 0; x < width; ++x) {
- if (inRect && *ptr != color) { // end rect
- setWidth(numRects, x - rectx(numRects));
- endRect();
- inRect = false;
- }
-
- if (!inRect && *ptr != bg) { // begin rect
- if (!beginRect())
- return false;
- inRect = true;
- color = *ptr;
- setColor(color);
- setX(numRects, x);
- setY(numRects, y);
- }
- ++ptr;
- }
- if (inRect) { // end rect
- setWidth(numRects, width - rectx(numRects));
- endRect();
- inRect = false;
- }
- ptr += linestep;
- }
-
- return true;
-}
-
-template <class SRC>
-void QRfbMultiColorHextile<SRC>::write(QTcpSocket *socket) const
-{
- const int padding = 3;
- QVarLengthArray<quint8> buffer(bpp + padding + sizeof(quint8) + sizeof(numRects));
-
- quint8 &subenc = buffer[padding];
- int n = padding + sizeof(quint8);
-
- subenc = 8 | 16; // AnySubrects | SubrectsColoured
-
- if (encoder->newBg) {
- subenc |= 0x2; // Background
- encoder->server->convertPixels(reinterpret_cast<char*>(buffer.data() + n),
- reinterpret_cast<const char*>(&encoder->bg),
- 1);
- n += bpp;
-// encoder->newBg = false;
- }
-
- buffer[n] = numRects;
- n += sizeof(numRects);
-
- socket->write(reinterpret_cast<const char*>(buffer.data() + padding),
- n - padding);
- socket->write(reinterpret_cast<const char*>(rects.constData()),
- rects.size());
-}
-
-bool QVNCServer::pixelConversionNeeded() const
-{
- if (!sameEndian)
- return true;
-
-#if Q_BYTE_ORDER == Q_BIG_ENDIAN
- if (qvnc_screen->swapBytes())
- return true;
-#endif
-
- const int screendepth = qvnc_screen->depth();
- if (screendepth != pixelFormat.bitsPerPixel)
- return true;
-
- switch (screendepth) {
- case 32:
- case 24:
- return false;
- case 18:
- return (pixelFormat.redBits == 6
- && pixelFormat.greenBits == 6
- && pixelFormat.blueBits == 6);
- case 16:
- return (pixelFormat.redBits == 5
- && pixelFormat.greenBits == 6
- && pixelFormat.blueBits == 5);
- case 15:
- return (pixelFormat.redBits == 5
- && pixelFormat.greenBits == 5
- && pixelFormat.blueBits == 5);
- case 12:
- return (pixelFormat.redBits == 4
- && pixelFormat.greenBits == 4
- && pixelFormat.blueBits == 4);
- }
- return true;
-}
-
-// count: number of pixels
-void QVNCServer::convertPixels(char *dst, const char *src, int count) const
-{
- const int screendepth = qvnc_screen->depth();
- const bool isBgr = false; //### qvnc_screen->pixelType() == QScreen::BGRPixel;
-
- // cutoffs
-#if Q_BYTE_ORDER == Q_BIG_ENDIAN
- if (!swapBytes)
-#endif
- if (sameEndian) {
- if (screendepth == pixelFormat.bitsPerPixel) { // memcpy cutoffs
-
- switch (screendepth) {
- case 32:
- memcpy(dst, src, count * sizeof(quint32));
- return;
- case 16:
- if (pixelFormat.redBits == 5
- && pixelFormat.greenBits == 6
- && pixelFormat.blueBits == 5)
- {
- memcpy(dst, src, count * sizeof(quint16));
- return;
- }
- }
- } else if (screendepth == 16 && pixelFormat.bitsPerPixel == 32) {
-#if defined(__i386__) // Currently fails on ARM if dst is not 4 byte aligned
- const quint32 *src32 = reinterpret_cast<const quint32*>(src);
- quint32 *dst32 = reinterpret_cast<quint32*>(dst);
- int count32 = count * sizeof(quint16) / sizeof(quint32);
- while (count32--) {
- const quint32 s = *src32++;
- quint32 result1;
- quint32 result2;
-
- // red
- result1 = ((s & 0xf8000000) | ((s & 0xe0000000) >> 5)) >> 8;
- result2 = ((s & 0x0000f800) | ((s & 0x0000e000) >> 5)) << 8;
-
- // green
- result1 |= ((s & 0x07e00000) | ((s & 0x06000000) >> 6)) >> 11;
- result2 |= ((s & 0x000007e0) | ((s & 0x00000600) >> 6)) << 5;
-
- // blue
- result1 |= ((s & 0x001f0000) | ((s & 0x001c0000) >> 5)) >> 13;
- result2 |= ((s & 0x0000001f) | ((s & 0x0000001c) >> 5)) << 3;
-
- *dst32++ = result2;
- *dst32++ = result1;
- }
- if (count & 0x1) {
- const quint16 *src16 = reinterpret_cast<const quint16*>(src);
- *dst32 = qt_conv16ToRgb(src16[count - 1]);
- }
- return;
-#endif
- }
- }
-
- const int bytesPerPixel = (pixelFormat.bitsPerPixel + 7) / 8;
-
-// nibble = 0;
-
- for (int i = 0; i < count; ++i) {
- int r, g, b;
-
- switch (screendepth) {
-#if 0
- case 4: {
- if (!nibble) {
- r = ((*src) & 0x0f) << 4;
- } else {
- r = (*src) & 0xf0;
- src++;
- }
- nibble = !nibble;
- g = b = r;
- break;
- }
-#endif
-#if 0
- case 8: {
- QRgb rgb = qvnc_screen->clut()[int(*src)];
- r = qRed(rgb);
- g = qGreen(rgb);
- b = qBlue(rgb);
- src++;
- break;
- }
-#endif
-#ifdef QT_QWS_DEPTH_12
- case 12: {
- quint32 p = quint32(*reinterpret_cast<const qrgb444*>(src));
- r = qRed(p);
- g = qGreen(p);
- b = qBlue(p);
- src += sizeof(qrgb444);
- break;
- }
-#endif
-#ifdef QT_QWS_DEPTH_15
- case 15: {
- quint32 p = quint32(*reinterpret_cast<const qrgb555*>(src));
- r = qRed(p);
- g = qGreen(p);
- b = qBlue(p);
- src += sizeof(qrgb555);
- break;
- }
-#endif
- case 16: {
- quint16 p = *reinterpret_cast<const quint16*>(src);
-#if Q_BYTE_ORDER == Q_BIG_ENDIAN
- if (swapBytes)
- p = ((p & 0xff) << 8) | ((p & 0xff00) >> 8);
-#endif
- r = (p >> 11) & 0x1f;
- g = (p >> 5) & 0x3f;
- b = p & 0x1f;
- r <<= 3;
- g <<= 2;
- b <<= 3;
- src += sizeof(quint16);
- break;
- }
-#ifdef QT_QWS_DEPTH_18
- case 18: {
- quint32 p = quint32(*reinterpret_cast<const qrgb666*>(src));
- r = qRed(p);
- g = qGreen(p);
- b = qBlue(p);
- src += sizeof(qrgb666);
- break;
- }
-#endif
-#ifdef QT_QWS_DEPTH_24
- case 24: {
- quint32 p = quint32(*reinterpret_cast<const qrgb888*>(src));
- r = qRed(p);
- g = qGreen(p);
- b = qBlue(p);
- src += sizeof(qrgb888);
- break;
- }
-#endif
- case 32: {
- quint32 p = *reinterpret_cast<const quint32*>(src);
- r = (p >> 16) & 0xff;
- g = (p >> 8) & 0xff;
- b = p & 0xff;
- src += sizeof(quint32);
- break;
- }
- default: {
- r = g = b = 0;
- qDebug("QVNCServer: don't support %dbpp display", screendepth);
- return;
- }
- }
-
-#if Q_BYTE_ORDER == Q_BIG_ENDIAN
- if (swapBytes ^ isBgr)
-#else
- if (isBgr)
-#endif
- qSwap(r, b);
-
- r >>= (8 - pixelFormat.redBits);
- g >>= (8 - pixelFormat.greenBits);
- b >>= (8 - pixelFormat.blueBits);
-
- int pixel = (r << pixelFormat.redShift) |
- (g << pixelFormat.greenShift) |
- (b << pixelFormat.blueShift);
-
- if (sameEndian || pixelFormat.bitsPerPixel == 8) {
- memcpy(dst, &pixel, bytesPerPixel); // XXX: do a simple for-loop instead?
- dst += bytesPerPixel;
- continue;
- }
-
-
- if (QSysInfo::ByteOrder == QSysInfo::BigEndian) {
- switch (pixelFormat.bitsPerPixel) {
- case 16:
- pixel = (((pixel & 0x0000ff00) << 8) |
- ((pixel & 0x000000ff) << 24));
- break;
- case 32:
- pixel = (((pixel & 0xff000000) >> 24) |
- ((pixel & 0x00ff0000) >> 8) |
- ((pixel & 0x0000ff00) << 8) |
- ((pixel & 0x000000ff) << 24));
- break;
- default:
- qDebug("Cannot handle %d bpp client", pixelFormat.bitsPerPixel);
- }
- } else { // QSysInfo::ByteOrder == QSysInfo::LittleEndian
- switch (pixelFormat.bitsPerPixel) {
- case 16:
- pixel = (((pixel & 0xff000000) >> 8) |
- ((pixel & 0x00ff0000) << 8));
- break;
- case 32:
- pixel = (((pixel & 0xff000000) >> 24) |
- ((pixel & 0x00ff0000) >> 8) |
- ((pixel & 0x0000ff00) << 8) |
- ((pixel & 0x000000ff) << 24));
- break;
- default:
- qDebug("Cannot handle %d bpp client",
- pixelFormat.bitsPerPixel);
- break;
- }
- }
- memcpy(dst, &pixel, bytesPerPixel); // XXX: simple for-loop instead?
- dst += bytesPerPixel;
- }
-}
-
-#ifndef QT_NO_QWS_CURSOR
-static void blendCursor(QImage &image, const QRect &imageRect)
-{
- const QRect cursorRect = qt_screencursor->boundingRect();
- const QRect intersection = (cursorRect & imageRect);
- const QRect destRect = intersection.translated(-imageRect.topLeft());
- const QRect srcRect = intersection.translated(-cursorRect.topLeft());
-
- QPainter painter(&image);
- painter.drawImage(destRect, qt_screencursor->image(), srcRect);
- painter.end();
-}
-#endif // QT_NO_QWS_CURSOR
-
-QVNCDirtyMap::QVNCDirtyMap(QVNCScreen *s)
- : bytesPerPixel(0), numDirty(0), screen(s)
-{
- bytesPerPixel = (screen->depth() + 7) / 8;
- QSize screenSize = screen->geometry().size();
- bufferWidth = screenSize.width();
- bufferHeight = screenSize.height();
- bufferStride = bufferWidth * bytesPerPixel;
- buffer = new uchar[bufferHeight * bufferStride];
-
- mapWidth = (bufferWidth + MAP_TILE_SIZE - 1) / MAP_TILE_SIZE;
- mapHeight = (bufferHeight + MAP_TILE_SIZE - 1) / MAP_TILE_SIZE;
- numTiles = mapWidth * mapHeight;
- map = new uchar[numTiles];
-}
-
-QVNCDirtyMap::~QVNCDirtyMap()
-{
- delete[] map;
- delete[] buffer;
-}
-
-void QVNCDirtyMap::reset()
-{
- memset(map, 1, numTiles);
- memset(buffer, 0, bufferHeight * bufferStride);
- numDirty = numTiles;
-}
-
-inline bool QVNCDirtyMap::dirty(int x, int y) const
-{
- return map[y * mapWidth + x];
-}
-
-inline void QVNCDirtyMap::setClean(int x, int y)
-{
- map[y * mapWidth + x] = 0;
- --numDirty;
-}
-
-template <class T>
-void QVNCDirtyMapOptimized<T>::setDirty(int tileX, int tileY, bool force)
-{
- static bool alwaysForce = qgetenv("QT_VNC_NO_COMPAREBUFFER").toInt();
- if (alwaysForce)
- force = true;
-
- bool changed = false;
-
- if (!force) {
- const int lstep = screen->linestep();
- const int startX = tileX * MAP_TILE_SIZE;
- const int startY = tileY * MAP_TILE_SIZE;
- const uchar *scrn = screen->base()
- + startY * lstep + startX * bytesPerPixel;
- uchar *old = buffer + startY * bufferStride + startX * sizeof(T);
-
- const int tileHeight = (startY + MAP_TILE_SIZE > bufferHeight ?
- bufferHeight - startY : MAP_TILE_SIZE);
- const int tileWidth = (startX + MAP_TILE_SIZE > bufferWidth ?
- bufferWidth - startX : MAP_TILE_SIZE);
- const bool doInlines = (tileWidth == MAP_TILE_SIZE);
-
- int y = tileHeight;
-
- if (doInlines) { // hw: memcmp/memcpy is inlined when using constants
- while (y) {
- if (memcmp(old, scrn, sizeof(T) * MAP_TILE_SIZE)) {
- changed = true;
- break;
- }
- scrn += lstep;
- old += bufferStride;
- --y;
- }
-
- while (y) {
- memcpy(old, scrn, sizeof(T) * MAP_TILE_SIZE);
- scrn += lstep;
- old += bufferStride;
- --y;
- }
- } else {
- while (y) {
- if (memcmp(old, scrn, sizeof(T) * tileWidth)) {
- changed = true;
- break;
- }
- scrn += lstep;
- old += bufferStride;
- --y;
- }
-
- while (y) {
- memcpy(old, scrn, sizeof(T) * tileWidth);
- scrn += lstep;
- old += bufferStride;
- --y;
- }
- }
- }
-
- const int mapIndex = tileY * mapWidth + tileX;
- if ((force || changed) && !map[mapIndex]) {
- map[mapIndex] = 1;
- ++numDirty;
- }
-}
-
-template <class SRC>
-QRfbHextileEncoder<SRC>::QRfbHextileEncoder(QVNCServer *s)
- : QRfbEncoder(s),
- singleColorHextile(this), dualColorHextile(this), multiColorHextile(this)
-{
-}
-
-/*
- \internal
- Send dirty rects using hextile encoding.
-*/
-template <class SRC>
-void QRfbHextileEncoder<SRC>::write()
-{
-// QWSDisplay::grab(true);
-
- QVNCDirtyMap *map = server->dirtyMap();
- QTcpSocket *socket = server->clientSocket();
-
- const quint32 encoding = htonl(5); // hextile encoding
- const int bytesPerPixel = server->clientBytesPerPixel();
-
- {
- const char tmp[2] = { 0, 0 }; // msg type, padding
- socket->write(tmp, sizeof(tmp));
- }
- {
- const quint16 count = htons(map->numDirty);
- socket->write((char *)&count, sizeof(count));
- }
-
- if (map->numDirty <= 0) {
-// QWSDisplay::ungrab();
- return;
- }
-
- newBg = true;
- newFg = true;
-
- const QImage screenImage = server->screenImage();
- QRfbRect rect(0, 0, MAP_TILE_SIZE, MAP_TILE_SIZE);
-
- QSize screenSize = server->screen()->geometry().size();
-
- for (int y = 0; y < map->mapHeight; ++y) {
- if (rect.y + MAP_TILE_SIZE > screenSize.height())
- rect.h = screenSize.height() - rect.y;
- rect.w = MAP_TILE_SIZE;
- for (int x = 0; x < map->mapWidth; ++x) {
- if (!map->dirty(x, y))
- continue;
- map->setClean(x, y);
-
- rect.x = x * MAP_TILE_SIZE;
- if (rect.x + MAP_TILE_SIZE > screenSize.width()) //###deviceWidth ???
- rect.w = screenSize.width() - rect.x;
- rect.write(socket);
-
- socket->write((char *)&encoding, sizeof(encoding));
-
- const uchar *screendata = screenImage.scanLine(rect.y)
- + rect.x * screenImage.depth() / 8;
- int linestep = screenImage.bytesPerLine();
-
-#ifndef QT_NO_QWS_CURSOR
- // hardware cursors must be blended with the screen memory
- const bool doBlendCursor = qt_screencursor
- && !server->hasClientCursor()
- && qt_screencursor->isAccelerated();
- QImage tileImage;
- if (doBlendCursor) {
- const QRect tileRect(rect.x, rect.y, rect.w, rect.h);
- const QRect cursorRect = qt_screencursor->boundingRect()
- .translated(-server->screen()->offset());
- if (tileRect.intersects(cursorRect)) {
- tileImage = screenImage.copy(tileRect);
- blendCursor(tileImage,
- tileRect.translated(server->screen()->offset()));
- screendata = tileImage.bits();
- linestep = tileImage.bytesPerLine();
- }
- }
-#endif // QT_NO_QWS_CURSOR
-
- if (singleColorHextile.read(screendata, rect.w, rect.h, linestep)) {
- singleColorHextile.write(socket);
- } else if (dualColorHextile.read(screendata, rect.w, rect.h, linestep)) {
- dualColorHextile.write(socket);
- } else if (multiColorHextile.read(screendata, rect.w, rect.h, linestep)) {
- multiColorHextile.write(socket);
- } else if (server->doPixelConversion()) {
- const int bufferSize = rect.w * rect.h * bytesPerPixel + 1;
- const int padding = sizeof(quint32) - sizeof(char);
- buffer.resize(bufferSize + padding);
-
- buffer[padding] = 1; // Raw subencoding
-
- // convert pixels
- char *b = buffer.data() + padding + 1;
- const int bstep = rect.w * bytesPerPixel;
- for (int i = 0; i < rect.h; ++i) {
- server->convertPixels(b, (const char*)screendata, rect.w);
- screendata += linestep;
- b += bstep;
- }
- socket->write(buffer.constData() + padding, bufferSize);
- } else {
- quint8 subenc = 1; // Raw subencoding
- socket->write((char *)&subenc, 1);
-
- // send pixels
- for (int i = 0; i < rect.h; ++i) {
- socket->write((const char*)screendata,
- rect.w * bytesPerPixel);
- screendata += linestep;
- }
- }
- }
- if (socket->state() == QAbstractSocket::UnconnectedState)
- break;
- rect.y += MAP_TILE_SIZE;
- }
- socket->flush();
- Q_ASSERT(map->numDirty == 0);
-
-// QWSDisplay::ungrab();
-}
-
-void QRfbRawEncoder::write()
-{
-// QWSDisplay::grab(false);
-
- QVNCDirtyMap *map = server->dirtyMap();
- QTcpSocket *socket = server->clientSocket();
-
- const int bytesPerPixel = server->clientBytesPerPixel();
- QSize screenSize = server->screen()->geometry().size();
-
- // create a region from the dirty rects and send the region's merged rects.
- QRegion rgn;
- if (map) {
- for (int y = 0; y < map->mapHeight; ++y) {
- for (int x = 0; x < map->mapWidth; ++x) {
- if (!map->dirty(x, y))
- continue;
- rgn += QRect(x * MAP_TILE_SIZE, y * MAP_TILE_SIZE,
- MAP_TILE_SIZE, MAP_TILE_SIZE);
- map->setClean(x, y);
- }
- }
-
- rgn &= QRect(0, 0, screenSize.width(),
- screenSize.height());
- }
- const QVector<QRect> rects = rgn.rects();
-
- {
- const char tmp[2] = { 0, 0 }; // msg type, padding
- socket->write(tmp, sizeof(tmp));
- }
-
- {
- const quint16 count = htons(rects.size());
- socket->write((char *)&count, sizeof(count));
- }
-
- if (rects.size() <= 0) {
-// QWSDisplay::ungrab();
- return;
- }
-
- const QImage *screenImage = server->screenImage();
-
- for (int i = 0; i < rects.size(); ++i) {
- const QRect tileRect = rects.at(i);
- const QRfbRect rect(tileRect.x(), tileRect.y(),
- tileRect.width(), tileRect.height());
- rect.write(socket);
-
- const quint32 encoding = htonl(0); // raw encoding
- socket->write((char *)&encoding, sizeof(encoding));
-
- int linestep = screenImage->bytesPerLine();
- const uchar *screendata = screenImage->scanLine(rect.y)
- + rect.x * screenImage->depth() / 8;
-
-#ifndef QT_NO_QWS_CURSOR
- // hardware cursors must be blended with the screen memory
- const bool doBlendCursor = qt_screencursor
- && !server->hasClientCursor()
- && qt_screencursor->isAccelerated();
- QImage tileImage;
- if (doBlendCursor) {
- const QRect cursorRect = qt_screencursor->boundingRect()
- .translated(-server->screen()->offset());
- if (tileRect.intersects(cursorRect)) {
- tileImage = screenImage->copy(tileRect);
- blendCursor(tileImage,
- tileRect.translated(server->screen()->offset()));
- screendata = tileImage.bits();
- linestep = tileImage.bytesPerLine();
- }
- }
-#endif // QT_NO_QWS_CURSOR
-
- if (server->doPixelConversion()) {
- const int bufferSize = rect.w * rect.h * bytesPerPixel;
- if (bufferSize > buffer.size())
- buffer.resize(bufferSize);
-
- // convert pixels
- char *b = buffer.data();
- const int bstep = rect.w * bytesPerPixel;
- for (int i = 0; i < rect.h; ++i) {
- server->convertPixels(b, (const char*)screendata, rect.w);
- screendata += linestep;
- b += bstep;
- }
- socket->write(buffer.constData(), bufferSize);
- } else {
- for (int i = 0; i < rect.h; ++i) {
- socket->write((const char*)screendata, rect.w * bytesPerPixel);
- screendata += linestep;
- }
- }
- if (socket->state() == QAbstractSocket::UnconnectedState)
- break;
- }
- socket->flush();
-
-// QWSDisplay::ungrab();
-}
-
-inline QImage *QVNCServer::screenImage() const
-{
- return qvnc_screen->image();
-}
-
-void QVNCServer::checkUpdate()
-{
- if (!wantUpdate)
- return;
-
- if (dirtyCursor) {
-#ifndef QT_NO_QWS_CURSOR
- Q_ASSERT(qvnc_cursor);
- qvnc_cursor->write();
-#endif
- cursor->sendClientCursor();
- dirtyCursor = false;
- wantUpdate = false;
- return;
- }
-
- if (dirtyMap()->numDirty > 0) {
- if (encoder)
- encoder->write();
- wantUpdate = false;
- }
-}
-
-void QVNCServer::discardClient()
-{
- timer->stop();
- state = Unconnected;
- delete encoder;
- encoder = 0;
-#ifndef QT_NO_QWS_CURSOR
- delete qvnc_cursor;
- qvnc_cursor = 0;
-#endif
-// if (!qvnc_screen->screen())
-// QWSServer::instance()->enablePainting(false);
-}
-
-
-
-QVNCScreenPrivate::QVNCScreenPrivate(QVNCScreen *parent, int screenId)
- : dpiX(72), dpiY(72), doOnScreenSurface(false), refreshRate(25),
- vncServer(0), q_ptr(parent)
-{
-#if 0//ndef QT_NO_QWS_SIGNALHANDLER
- QWSSignalHandler::instance()->addObject(this);
-#endif
-
- vncServer = new QVNCServer(q_ptr, screenId);
- vncServer->setRefreshRate(refreshRate);
-
-
- Q_ASSERT(q_ptr->depth() == 32);
-
- dirty = new QVNCDirtyMapOptimized<quint32>(q_ptr);
-}
-
-QVNCScreenPrivate::~QVNCScreenPrivate()
-{
-}
-
-
-void QVNCScreenPrivate::setDirty(const QRect& rect, bool force)
-{
- if (rect.isEmpty())
- return;
-
-// if (q_ptr->screen())
-// q_ptr->screen()->setDirty(rect);
-
- if (!vncServer || !vncServer->isConnected()) {
-// qDebug() << "QVNCScreenPrivate::setDirty() - Not connected";
- return;
- }
- const QRect r = rect; // .translated(-q_ptr->offset());
- const int x1 = r.x() / MAP_TILE_SIZE;
- int y = r.y() / MAP_TILE_SIZE;
- for (; (y <= r.bottom() / MAP_TILE_SIZE) && y < dirty->mapHeight; y++)
- for (int x = x1; (x <= r.right() / MAP_TILE_SIZE) && x < dirty->mapWidth; x++)
- dirty->setDirty(x, y, force);
-
- vncServer->setDirty();
-}
-
-
-
-
-QT_END_NAMESPACE
diff --git a/src/plugins/platforms/vnc/qvncserver.h b/src/plugins/platforms/vnc/qvncserver.h
deleted file mode 100644
index e8b093764f..0000000000
--- a/src/plugins/platforms/vnc/qvncserver.h
+++ /dev/null
@@ -1,533 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the plugins of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QSCREENVNC_P_H
-#define QSCREENVNC_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists for the convenience
-// of the QLibrary class. This header file may change from version to version
-// without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include "qvncintegration.h"
-#include "qvnccursor.h"
-#define QT_NO_QWS_CURSOR
-
-#ifndef QT_NO_QWS_VNC
-
-#include <QtCore/qvarlengtharray.h>
-#include <QtCore/qsharedmemory.h>
-#include <QtNetwork/qtcpsocket.h>
-#include <QtNetwork/qtcpserver.h>
-
-QT_BEGIN_NAMESPACE
-
-class QVNCServer;
-
-#ifndef QT_NO_QWS_CURSOR
-class QVNCCursor : public QProxyScreenCursor
-{
-public:
- QVNCCursor(QVNCScreen *s);
- ~QVNCCursor();
-
- void hide();
- void show();
- void set(const QImage &image, int hotx, int hoty);
- void move(int x, int y);
-
-private:
- void setDirty(const QRect &r) const;
- QVNCScreen *screen;
-};
-
-class QVNCClientCursor : public QProxyScreenCursor
-{
-public:
- QVNCClientCursor(QVNCServer *s);
- ~QVNCClientCursor();
-
- void set(const QImage &image, int hotx, int hoty);
- void write() const;
-
-private:
- QVNCServer *server;
-};
-#endif // QT_NO_QWS_CURSOR
-
-#define MAP_TILE_SIZE 16
-#define MAP_WIDTH 1280 / MAP_TILE_SIZE
-#define MAP_HEIGHT 1024 / MAP_TILE_SIZE
-
-class QVNCDirtyMap
-{
-public:
- QVNCDirtyMap(QVNCScreen *screen);
- virtual ~QVNCDirtyMap();
-
- void reset();
- bool dirty(int x, int y) const;
- virtual void setDirty(int x, int y, bool force = false) = 0;
- void setClean(int x, int y);
-
- int bytesPerPixel;
-
- int numDirty;
- int mapWidth;
- int mapHeight;
-
-protected:
- uchar *map;
- QVNCScreen *screen;
- uchar *buffer;
- int bufferWidth;
- int bufferHeight;
- int bufferStride;
- int numTiles;
-};
-
-template <class T>
-class QVNCDirtyMapOptimized : public QVNCDirtyMap
-{
-public:
- QVNCDirtyMapOptimized(QVNCScreen *screen) : QVNCDirtyMap(screen) {}
- ~QVNCDirtyMapOptimized() {}
-
- void setDirty(int x, int y, bool force = false);
-};
-
-class QRfbRect
-{
-public:
- QRfbRect() {}
- QRfbRect(quint16 _x, quint16 _y, quint16 _w, quint16 _h) {
- x = _x; y = _y; w = _w; h = _h;
- }
-
- void read(QTcpSocket *s);
- void write(QTcpSocket *s) const;
-
- quint16 x;
- quint16 y;
- quint16 w;
- quint16 h;
-};
-
-class QRfbPixelFormat
-{
-public:
- static int size() { return 16; }
-
- void read(QTcpSocket *s);
- void write(QTcpSocket *s);
-
- int bitsPerPixel;
- int depth;
- bool bigEndian;
- bool trueColor;
- int redBits;
- int greenBits;
- int blueBits;
- int redShift;
- int greenShift;
- int blueShift;
-};
-
-class QRfbServerInit
-{
-public:
- QRfbServerInit() { name = 0; }
- ~QRfbServerInit() { delete[] name; }
-
- int size() const { return QRfbPixelFormat::size() + 8 + strlen(name); }
- void setName(const char *n);
-
- void read(QTcpSocket *s);
- void write(QTcpSocket *s);
-
- quint16 width;
- quint16 height;
- QRfbPixelFormat format;
- char *name;
-};
-
-class QRfbSetEncodings
-{
-public:
- bool read(QTcpSocket *s);
-
- quint16 count;
-};
-
-class QRfbFrameBufferUpdateRequest
-{
-public:
- bool read(QTcpSocket *s);
-
- char incremental;
- QRfbRect rect;
-};
-
-class QRfbKeyEvent
-{
-public:
- bool read(QTcpSocket *s);
-
- char down;
- int keycode;
- int unicode;
-};
-
-class QRfbPointerEvent
-{
-public:
- bool read(QTcpSocket *s);
-
- Qt::MouseButtons buttons;
- enum { WheelNone,
- WheelUp,
- WheelDown,
- WheelLeft,
- WheelRight
- } wheelDirection;
- quint16 x;
- quint16 y;
-};
-
-class QRfbClientCutText
-{
-public:
- bool read(QTcpSocket *s);
-
- quint32 length;
-};
-
-class QVNCScreenPrivate : public QObject
-{
-public:
- QVNCScreenPrivate(QVNCScreen *parent, int screenId);
- ~QVNCScreenPrivate();
-
- void setDirty(const QRect &rect, bool force = false);
- void configure();
-
- qreal dpiX;
- qreal dpiY;
- bool doOnScreenSurface;
- QVNCDirtyMap *dirty;
- int refreshRate;
- QVNCServer *vncServer;
-
-#if !defined(QT_NO_SHAREDMEMORY)
- QSharedMemory shm;
-#endif
-
- QVNCScreen *q_ptr;
-};
-
-class QRfbEncoder
-{
-public:
- QRfbEncoder(QVNCServer *s) : server(s) {}
- virtual ~QRfbEncoder() {}
-
- virtual void write() = 0;
-
-protected:
- QVNCServer *server;
-};
-
-class QRfbRawEncoder : public QRfbEncoder
-{
-public:
- QRfbRawEncoder(QVNCServer *s) : QRfbEncoder(s) {}
-
- void write();
-
-private:
- QByteArray buffer;
-};
-
-template <class SRC> class QRfbHextileEncoder;
-
-template <class SRC>
-class QRfbSingleColorHextile
-{
-public:
- QRfbSingleColorHextile(QRfbHextileEncoder<SRC> *e) : encoder(e) {}
- bool read(const uchar *data, int width, int height, int stride);
- void write(QTcpSocket *socket) const;
-
-private:
- QRfbHextileEncoder<SRC> *encoder;
-};
-
-template <class SRC>
-class QRfbDualColorHextile
-{
-public:
- QRfbDualColorHextile(QRfbHextileEncoder<SRC> *e) : encoder(e) {}
- bool read(const uchar *data, int width, int height, int stride);
- void write(QTcpSocket *socket) const;
-
-private:
- struct Rect {
- quint8 xy;
- quint8 wh;
- } Q_PACKED rects[8 * 16];
-
- quint8 numRects;
- QRfbHextileEncoder<SRC> *encoder;
-
-private:
- inline int lastx() const { return rectx(numRects); }
- inline int lasty() const { return recty(numRects); }
- inline int rectx(int r) const { return rects[r].xy >> 4; }
- inline int recty(int r) const { return rects[r].xy & 0x0f; }
- inline int width(int r) const { return (rects[r].wh >> 4) + 1; }
- inline int height(int r) const { return (rects[r].wh & 0x0f) + 1; }
-
- inline void setX(int r, int x) {
- rects[r].xy = (x << 4) | (rects[r].xy & 0x0f);
- }
- inline void setY(int r, int y) {
- rects[r].xy = (rects[r].xy & 0xf0) | y;
- }
- inline void setWidth(int r, int width) {
- rects[r].wh = ((width - 1) << 4) | (rects[r].wh & 0x0f);
- }
- inline void setHeight(int r, int height) {
- rects[r].wh = (rects[r].wh & 0xf0) | (height - 1);
- }
-
- inline void setWidth(int width) { setWidth(numRects, width); }
- inline void setHeight(int height) { setHeight(numRects, height); }
- inline void setX(int x) { setX(numRects, x); }
- inline void setY(int y) { setY(numRects, y); }
- void next();
-};
-
-template <class SRC>
-class QRfbMultiColorHextile
-{
-public:
- QRfbMultiColorHextile(QRfbHextileEncoder<SRC> *e) : encoder(e) {}
- bool read(const uchar *data, int width, int height, int stride);
- void write(QTcpSocket *socket) const;
-
-private:
- inline quint8* rect(int r) {
- return rects.data() + r * (bpp + 2);
- }
- inline const quint8* rect(int r) const {
- return rects.constData() + r * (bpp + 2);
- }
- inline void setX(int r, int x) {
- quint8 *ptr = rect(r) + bpp;
- *ptr = (x << 4) | (*ptr & 0x0f);
- }
- inline void setY(int r, int y) {
- quint8 *ptr = rect(r) + bpp;
- *ptr = (*ptr & 0xf0) | y;
- }
- void setColor(SRC color);
- inline int rectx(int r) const {
- const quint8 *ptr = rect(r) + bpp;
- return *ptr >> 4;
- }
- inline int recty(int r) const {
- const quint8 *ptr = rect(r) + bpp;
- return *ptr & 0x0f;
- }
- inline void setWidth(int r, int width) {
- quint8 *ptr = rect(r) + bpp + 1;
- *ptr = ((width - 1) << 4) | (*ptr & 0x0f);
- }
- inline void setHeight(int r, int height) {
- quint8 *ptr = rect(r) + bpp + 1;
- *ptr = (*ptr & 0xf0) | (height - 1);
- }
-
- bool beginRect();
- void endRect();
-
- static const int maxRectsSize = 16 * 16;
- QVarLengthArray<quint8, maxRectsSize> rects;
-
- quint8 bpp;
- quint8 numRects;
- QRfbHextileEncoder<SRC> *encoder;
-};
-
-template <class SRC>
-class QRfbHextileEncoder : public QRfbEncoder
-{
-public:
- QRfbHextileEncoder(QVNCServer *s);
- void write();
-
-private:
- enum SubEncoding {
- Raw = 1,
- BackgroundSpecified = 2,
- ForegroundSpecified = 4,
- AnySubrects = 8,
- SubrectsColoured = 16
- };
-
- QByteArray buffer;
- QRfbSingleColorHextile<SRC> singleColorHextile;
- QRfbDualColorHextile<SRC> dualColorHextile;
- QRfbMultiColorHextile<SRC> multiColorHextile;
-
- SRC bg;
- SRC fg;
- bool newBg;
- bool newFg;
-
- friend class QRfbSingleColorHextile<SRC>;
- friend class QRfbDualColorHextile<SRC>;
- friend class QRfbMultiColorHextile<SRC>;
-};
-
-class QVNCServer : public QObject
-{
- Q_OBJECT
-public:
- QVNCServer(QVNCScreen *screen);
- QVNCServer(QVNCScreen *screen, int id);
- ~QVNCServer();
-
- void setDirty();
- void setDirtyCursor() { dirtyCursor = true; setDirty(); }
- inline bool isConnected() const { return state == Connected; }
- inline void setRefreshRate(int rate) { refreshRate = rate; }
-
- enum ClientMsg { SetPixelFormat = 0,
- FixColourMapEntries = 1,
- SetEncodings = 2,
- FramebufferUpdateRequest = 3,
- KeyEvent = 4,
- PointerEvent = 5,
- ClientCutText = 6 };
-
- enum ServerMsg { FramebufferUpdate = 0,
- SetColourMapEntries = 1 };
-
- void convertPixels(char *dst, const char *src, int count) const;
-
- inline int clientBytesPerPixel() const {
- return pixelFormat.bitsPerPixel / 8;
- }
-
- inline QVNCScreen* screen() const { return qvnc_screen; }
- inline QVNCDirtyMap* dirtyMap() const { return qvnc_screen->dirtyMap(); }
- inline QTcpSocket* clientSocket() const { return client; }
- QImage *screenImage() const;
- inline bool doPixelConversion() const { return needConversion; }
-#ifndef QT_NO_QWS_CURSOR
- inline bool hasClientCursor() const { return qvnc_cursor != 0; }
-#endif
-
- void setCursor(QVNCCursor * c) { cursor = c; }
-private:
- void setPixelFormat();
- void setEncodings();
- void frameBufferUpdateRequest();
- void pointerEvent();
- void keyEvent();
- void clientCutText();
- bool pixelConversionNeeded() const;
-
-private slots:
- void newConnection();
- void readClient();
- void checkUpdate();
- void discardClient();
-
-private:
- void init(uint port);
- enum ClientState { Unconnected, Protocol, Init, Connected };
- QTimer *timer;
- QTcpServer *serverSocket;
- QTcpSocket *client;
- ClientState state;
- quint8 msgType;
- bool handleMsg;
- QRfbPixelFormat pixelFormat;
- Qt::KeyboardModifiers keymod;
- Qt::MouseButtons buttons;
- int encodingsPending;
- int cutTextPending;
- uint supportCopyRect : 1;
- uint supportRRE : 1;
- uint supportCoRRE : 1;
- uint supportHextile : 1;
- uint supportZRLE : 1;
- uint supportCursor : 1;
- uint supportDesktopSize : 1;
- bool wantUpdate;
- bool sameEndian;
- bool needConversion;
-#if Q_BYTE_ORDER == Q_BIG_ENDIAN
- bool swapBytes;
-#endif
- bool dirtyCursor;
- int refreshRate;
- QVNCScreen *qvnc_screen;
-#ifndef QT_NO_QWS_CURSOR
- QVNCClientCursor *qvnc_cursor;
-#endif
-
- QRfbEncoder *encoder;
- QVNCCursor *cursor;
-};
-
-
-QT_END_NAMESPACE
-#endif // QT_NO_QWS_VNC
-#endif // QSCREENVNC_P_H
diff --git a/src/plugins/platforms/vnc/vnc.pro b/src/plugins/platforms/vnc/vnc.pro
deleted file mode 100644
index 637ed82385..0000000000
--- a/src/plugins/platforms/vnc/vnc.pro
+++ /dev/null
@@ -1,22 +0,0 @@
-TARGET = qvncgraphicssystem
-load(qt_plugin)
-
-QT += network core-private gui-private platformsupport-private
-
-DESTDIR = $$QT.gui.plugins/platforms
-
-SOURCES = main.cpp qvncintegration.cpp
-HEADERS = qvncintegration.h
-
-HEADERS += qvncserver.h
-SOURCES += qvncserver.cpp
-
-HEADERS += qvnccursor.h
-SOURCES += qvnccursor.cpp
-
-include(../fb_base/fb_base.pri)
-CONFIG += qpa/genericunixfontdatabase
-
-target.path += $$[QT_INSTALL_PLUGINS]/platforms
-
-INSTALLS += target
diff --git a/src/plugins/platforms/windows/accessible/accessible.pri b/src/plugins/platforms/windows/accessible/accessible.pri
new file mode 100644
index 0000000000..1671c67d17
--- /dev/null
+++ b/src/plugins/platforms/windows/accessible/accessible.pri
@@ -0,0 +1,19 @@
+SOURCES += \
+ $$PWD/qwindowsaccessibility.cpp
+
+HEADERS += \
+ $$PWD/qwindowsaccessibility.h
+
+!*g++* {
+ SOURCES += \
+ $$PWD/qwindowsmsaaaccessible.cpp \
+ $$PWD/iaccessible2.cpp \
+ $$PWD/comutils.cpp
+
+ HEADERS += \
+ $$PWD/qwindowsmsaaaccessible.h \
+ $$PWD/iaccessible2.h \
+ $$PWD/comutils.h
+
+ include(../../../../3rdparty/iaccessible2/iaccessible2.pri)
+} # !g++
diff --git a/src/plugins/platforms/windows/accessible/comutils.cpp b/src/plugins/platforms/windows/accessible/comutils.cpp
new file mode 100644
index 0000000000..9a0fce20b8
--- /dev/null
+++ b/src/plugins/platforms/windows/accessible/comutils.cpp
@@ -0,0 +1,641 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this
+** file. Please review the following information to ensure the GNU Lesser
+** General Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include <ocidl.h>
+#include <olectl.h>
+
+#include "comutils.h"
+#include <QtCore/qdatetime.h>
+#include <QtGui/qpixmap.h>
+#include <QtGui/qfont.h>
+
+
+#include <QtCore/qvariant.h>
+#include <QtCore/qbytearray.h>
+#include <QtGui/qcolor.h>
+
+static DATE QDateTimeToDATE(const QDateTime &dt)
+{
+ if (!dt.isValid() || dt.isNull())
+ return 949998; // Special value for no date (01/01/4501)
+
+ SYSTEMTIME stime;
+ memset(&stime, 0, sizeof(stime));
+ QDate date = dt.date();
+ QTime time = dt.time();
+ if (date.isValid() && !date.isNull()) {
+ stime.wDay = date.day();
+ stime.wMonth = date.month();
+ stime.wYear = date.year();
+ }
+ if (time.isValid() && !time.isNull()) {
+ stime.wMilliseconds = time.msec();
+ stime.wSecond = time.second();
+ stime.wMinute = time.minute();
+ stime.wHour = time.hour();
+ }
+
+ double vtime;
+ SystemTimeToVariantTime(&stime, &vtime);
+
+ return vtime;
+}
+
+inline uint QColorToOLEColor(const QColor &col)
+{
+ return qRgba(col.blue(), col.green(), col.red(), 0x00);
+}
+
+bool QVariantToVARIANT(const QVariant &var, VARIANT &arg, const QByteArray &typeName, bool out)
+{
+ QVariant qvar = var;
+ // "type" is the expected type, so coerce if necessary
+ QVariant::Type proptype = typeName.isEmpty() ? QVariant::Invalid : QVariant::nameToType(typeName);
+ if (proptype == QVariant::UserType && !typeName.isEmpty()) {
+ if (typeName == "short" || typeName == "char")
+ proptype = QVariant::Int;
+ else if (typeName == "float")
+ proptype = QVariant::Double;
+ }
+ if (proptype != QVariant::Invalid && proptype != QVariant::UserType && proptype != qvar.type()) {
+ if (qvar.canConvert(proptype))
+ qvar.convert(proptype);
+ else
+ qvar = QVariant(proptype);
+ }
+
+ if (out && arg.vt == (VT_VARIANT|VT_BYREF) && arg.pvarVal) {
+ return QVariantToVARIANT(var, *arg.pvarVal, typeName, false);
+ }
+
+ if (out && proptype == QVariant::UserType && typeName == "QVariant") {
+ VARIANT *pVariant = new VARIANT;
+ QVariantToVARIANT(var, *pVariant, QByteArray(), false);
+ arg.vt = VT_VARIANT|VT_BYREF;
+ arg.pvarVal = pVariant;
+ return true;
+ }
+
+ switch ((int)qvar.type()) {
+ case QVariant::String:
+ if (out && arg.vt == (VT_BSTR|VT_BYREF)) {
+ if (*arg.pbstrVal)
+ SysFreeString(*arg.pbstrVal);
+ *arg.pbstrVal = QStringToBSTR(qvar.toString());
+ arg.vt = VT_BSTR|VT_BYREF;
+ } else {
+ arg.vt = VT_BSTR;
+ arg.bstrVal = QStringToBSTR(qvar.toString());
+ if (out) {
+ arg.pbstrVal = new BSTR(arg.bstrVal);
+ arg.vt |= VT_BYREF;
+ }
+ }
+ break;
+
+ case QVariant::Int:
+ if (out && arg.vt == (VT_I4|VT_BYREF)) {
+ *arg.plVal = qvar.toInt();
+ } else {
+ arg.vt = VT_I4;
+ arg.lVal = qvar.toInt();
+ if (out) {
+ if (typeName == "short") {
+ arg.vt = VT_I2;
+ arg.piVal = new short(arg.lVal);
+ } else if (typeName == "char") {
+ arg.vt = VT_I1;
+ arg.pcVal= new char(arg.lVal);
+ } else {
+ arg.plVal = new long(arg.lVal);
+ }
+ arg.vt |= VT_BYREF;
+ }
+ }
+ break;
+
+ case QVariant::UInt:
+ if (out && (arg.vt == (VT_UINT|VT_BYREF) || arg.vt == (VT_I4|VT_BYREF))) {
+ *arg.puintVal = qvar.toUInt();
+ } else {
+ arg.vt = VT_UINT;
+ arg.uintVal = qvar.toUInt();
+ if (out) {
+ arg.puintVal = new uint(arg.uintVal);
+ arg.vt |= VT_BYREF;
+ }
+ }
+ break;
+
+ case QVariant::LongLong:
+ if (out && arg.vt == (VT_CY|VT_BYREF)) {
+ arg.pcyVal->int64 = qvar.toLongLong();
+#if !defined(Q_OS_WINCE) && defined(_MSC_VER) && _MSC_VER >= 1400
+ } else if (out && arg.vt == (VT_I8|VT_BYREF)) {
+ *arg.pllVal = qvar.toLongLong();
+ } else {
+ arg.vt = VT_I8;
+ arg.llVal = qvar.toLongLong();
+ if (out) {
+ arg.pllVal = new LONGLONG(arg.llVal);
+ arg.vt |= VT_BYREF;
+ }
+ }
+#else
+ } else {
+ arg.vt = VT_CY;
+ arg.cyVal.int64 = qvar.toLongLong();
+ if (out) {
+ arg.pcyVal = new CY(arg.cyVal);
+ arg.vt |= VT_BYREF;
+ }
+ }
+#endif
+ break;
+
+ case QVariant::ULongLong:
+ if (out && arg.vt == (VT_CY|VT_BYREF)) {
+ arg.pcyVal->int64 = qvar.toULongLong();
+#if !defined(Q_OS_WINCE) && defined(_MSC_VER) && _MSC_VER >= 1400
+ } else if (out && arg.vt == (VT_UI8|VT_BYREF)) {
+ *arg.pullVal = qvar.toULongLong();
+ } else {
+ arg.vt = VT_UI8;
+ arg.ullVal = qvar.toULongLong();
+ if (out) {
+ arg.pullVal = new ULONGLONG(arg.ullVal);
+ arg.vt |= VT_BYREF;
+ }
+ }
+#else
+ } else {
+ arg.vt = VT_CY;
+ arg.cyVal.int64 = qvar.toULongLong();
+ if (out) {
+ arg.pcyVal = new CY(arg.cyVal);
+ arg.vt |= VT_BYREF;
+ }
+ }
+
+#endif
+
+ break;
+
+ case QVariant::Bool:
+ if (out && arg.vt == (VT_BOOL|VT_BYREF)) {
+ *arg.pboolVal = qvar.toBool() ? VARIANT_TRUE : VARIANT_FALSE;
+ } else {
+ arg.vt = VT_BOOL;
+ arg.boolVal = qvar.toBool() ? VARIANT_TRUE : VARIANT_FALSE;
+ if (out) {
+ arg.pboolVal = new short(arg.boolVal);
+ arg.vt |= VT_BYREF;
+ }
+ }
+ break;
+ case QVariant::Double:
+ if (out && arg.vt == (VT_R8|VT_BYREF)) {
+ *arg.pdblVal = qvar.toDouble();
+ } else {
+ arg.vt = VT_R8;
+ arg.dblVal = qvar.toDouble();
+ if (out) {
+ if (typeName == "float") {
+ arg.vt = VT_R4;
+ arg.pfltVal = new float(arg.dblVal);
+ } else {
+ arg.pdblVal = new double(arg.dblVal);
+ }
+ arg.vt |= VT_BYREF;
+ }
+ }
+ break;
+ case QVariant::Color:
+ if (out && arg.vt == (VT_COLOR|VT_BYREF)) {
+
+ *arg.plVal = QColorToOLEColor(qvariant_cast<QColor>(qvar));
+ } else {
+ arg.vt = VT_COLOR;
+ arg.lVal = QColorToOLEColor(qvariant_cast<QColor>(qvar));
+ if (out) {
+ arg.plVal = new long(arg.lVal);
+ arg.vt |= VT_BYREF;
+ }
+ }
+ break;
+
+ case QVariant::Date:
+ case QVariant::Time:
+ case QVariant::DateTime:
+ if (out && arg.vt == (VT_DATE|VT_BYREF)) {
+ *arg.pdate = QDateTimeToDATE(qvar.toDateTime());
+ } else {
+ arg.vt = VT_DATE;
+ arg.date = QDateTimeToDATE(qvar.toDateTime());
+ if (out) {
+ arg.pdate = new DATE(arg.date);
+ arg.vt |= VT_BYREF;
+ }
+ }
+ break;
+#if 0 // not a value with min/max semantics
+ case QVariant::Font:
+ if (out && arg.vt == (VT_DISPATCH|VT_BYREF)) {
+ if (*arg.ppdispVal)
+ (*arg.ppdispVal)->Release();
+ *arg.ppdispVal = QFontToIFont(qvariant_cast<QFont>(qvar));
+ } else {
+ arg.vt = VT_DISPATCH;
+ arg.pdispVal = QFontToIFont(qvariant_cast<QFont>(qvar));
+ if (out) {
+ arg.ppdispVal = new IDispatch*(arg.pdispVal);
+ arg.vt |= VT_BYREF;
+ }
+ }
+ break;
+ case QVariant::Pixmap:
+ if (out && arg.vt == (VT_DISPATCH|VT_BYREF)) {
+ if (*arg.ppdispVal)
+ (*arg.ppdispVal)->Release();
+ *arg.ppdispVal = QPixmapToIPicture(qvariant_cast<QPixmap>(qvar));
+ } else {
+ arg.vt = VT_DISPATCH;
+ arg.pdispVal = QPixmapToIPicture(qvariant_cast<QPixmap>(qvar));
+ if (out) {
+ arg.ppdispVal = new IDispatch*(arg.pdispVal);
+ arg.vt |= VT_BYREF;
+ }
+ }
+ break;
+ case QVariant::Cursor:
+ {
+#ifndef QT_NO_CURSOR
+ int shape = qvariant_cast<QCursor>(qvar).shape();
+ if (out && (arg.vt & VT_BYREF)) {
+ switch (arg.vt & ~VT_BYREF) {
+ case VT_I4:
+ *arg.plVal = shape;
+ break;
+ case VT_I2:
+ *arg.piVal = shape;
+ break;
+ case VT_UI4:
+ *arg.pulVal = shape;
+ break;
+ case VT_UI2:
+ *arg.puiVal = shape;
+ break;
+ case VT_INT:
+ *arg.pintVal = shape;
+ break;
+ case VT_UINT:
+ *arg.puintVal = shape;
+ break;
+ }
+ } else {
+ arg.vt = VT_I4;
+ arg.lVal = shape;
+ if (out) {
+ arg.plVal = new long(arg.lVal);
+ arg.vt |= VT_BYREF;
+ }
+ }
+#endif
+ }
+ break;
+
+ case QVariant::List:
+ {
+ const QList<QVariant> list = qvar.toList();
+ const int count = list.count();
+ VARTYPE vt = VT_VARIANT;
+ QVariant::Type listType = QVariant::LastType; // == QVariant
+ if (!typeName.isEmpty() && typeName.startsWith("QList<")) {
+ const QByteArray listTypeName = typeName.mid(6, typeName.length() - 7); // QList<int> -> int
+ listType = QVariant::nameToType(listTypeName);
+ }
+
+ VARIANT variant;
+ void *pElement = &variant;
+ switch (listType) {
+ case QVariant::Int:
+ vt = VT_I4;
+ pElement = &variant.lVal;
+ break;
+ case QVariant::Double:
+ vt = VT_R8;
+ pElement = &variant.dblVal;
+ break;
+ case QVariant::DateTime:
+ vt = VT_DATE;
+ pElement = &variant.date;
+ break;
+ case QVariant::Bool:
+ vt = VT_BOOL;
+ pElement = &variant.boolVal;
+ break;
+ case QVariant::LongLong:
+#if !defined(Q_OS_WINCE) && defined(_MSC_VER) && _MSC_VER >= 1400
+ vt = VT_I8;
+ pElement = &variant.llVal;
+#else
+ vt = VT_CY;
+ pElement = &variant.cyVal;
+#endif
+ break;
+ default:
+ break;
+ }
+ SAFEARRAY *array = 0;
+ bool is2D = false;
+ // If the first element in the array is a list the whole list is
+ // treated as a 2D array. The column count is taken from the 1st element.
+ if (count) {
+ QVariantList col = list.at(0).toList();
+ int maxColumns = col.count();
+ if (maxColumns) {
+ is2D = true;
+ SAFEARRAYBOUND rgsabound[2] = { {0} };
+ rgsabound[0].cElements = count;
+ rgsabound[1].cElements = maxColumns;
+ array = SafeArrayCreate(VT_VARIANT, 2, rgsabound);
+ LONG rgIndices[2];
+ for (LONG i = 0; i < count; ++i) {
+ rgIndices[0] = i;
+ QVariantList columns = list.at(i).toList();
+ int columnCount = qMin(maxColumns, columns.count());
+ for (LONG j = 0; j < columnCount; ++j) {
+ QVariant elem = columns.at(j);
+ VariantInit(&variant);
+ QVariantToVARIANT(elem, variant, elem.typeName());
+ rgIndices[1] = j;
+ SafeArrayPutElement(array, rgIndices, pElement);
+ clearVARIANT(&variant);
+ }
+ }
+
+ }
+ }
+ if (!is2D) {
+ array = SafeArrayCreateVector(vt, 0, count);
+ for (LONG index = 0; index < count; ++index) {
+ QVariant elem = list.at(index);
+ if (listType != QVariant::LastType)
+ elem.convert(listType);
+ VariantInit(&variant);
+ QVariantToVARIANT(elem, variant, elem.typeName());
+ SafeArrayPutElement(array, &index, pElement);
+ clearVARIANT(&variant);
+ }
+ }
+ if (out && arg.vt == (VT_ARRAY|vt|VT_BYREF)) {
+ if (*arg.pparray)
+ SafeArrayDestroy(*arg.pparray);
+ *arg.pparray = array;
+ } else {
+ arg.vt = VT_ARRAY|vt;
+ arg.parray = array;
+ if (out) {
+ arg.pparray = new SAFEARRAY*(arg.parray);
+ arg.vt |= VT_BYREF;
+ }
+ }
+ }
+ break;
+
+ case QVariant::StringList:
+ {
+ const QStringList list = qvar.toStringList();
+ const int count = list.count();
+ SAFEARRAY *array = SafeArrayCreateVector(VT_BSTR, 0, count);
+ for (LONG index = 0; index < count; ++index) {
+ QString elem = list.at(index);
+ BSTR bstr = QStringToBSTR(elem);
+ SafeArrayPutElement(array, &index, bstr);
+ SysFreeString(bstr);
+ }
+
+ if (out && arg.vt == (VT_ARRAY|VT_BSTR|VT_BYREF)) {
+ if (*arg.pparray)
+ SafeArrayDestroy(*arg.pparray);
+ *arg.pparray = array;
+ } else {
+ arg.vt = VT_ARRAY|VT_BSTR;
+ arg.parray = array;
+ if (out) {
+ arg.pparray = new SAFEARRAY*(arg.parray);
+ arg.vt |= VT_BYREF;
+ }
+ }
+ }
+ break;
+
+ case QVariant::ByteArray:
+ {
+ const QByteArray bytes = qvar.toByteArray();
+ const uint count = bytes.count();
+ SAFEARRAY *array = SafeArrayCreateVector(VT_UI1, 0, count);
+ if (count) {
+ const char *data = bytes.constData();
+ char *dest;
+ SafeArrayAccessData(array, (void **)&dest);
+ memcpy(dest, data, count);
+ SafeArrayUnaccessData(array);
+ }
+
+ if (out && arg.vt == (VT_ARRAY|VT_UI1|VT_BYREF)) {
+ if (*arg.pparray)
+ SafeArrayDestroy(*arg.pparray);
+ *arg.pparray = array;
+ } else {
+ arg.vt = VT_ARRAY|VT_UI1;
+ arg.parray = array;
+ if (out) {
+ arg.pparray = new SAFEARRAY*(arg.parray);
+ arg.vt |= VT_BYREF;
+ }
+ }
+ }
+ break;
+
+#ifdef QAX_SERVER
+ case QVariant::Rect:
+ case QVariant::Size:
+ case QVariant::Point:
+ {
+ typedef HRESULT(WINAPI* PGetRecordInfoFromTypeInfo)(ITypeInfo *, IRecordInfo **);
+ static PGetRecordInfoFromTypeInfo pGetRecordInfoFromTypeInfo = 0;
+ static bool resolved = false;
+ if (!resolved) {
+ QSystemLibrary oleaut32(QLatin1String("oleaut32"));
+ pGetRecordInfoFromTypeInfo = (PGetRecordInfoFromTypeInfo)oleaut32.resolve("GetRecordInfoFromTypeInfo");
+ resolved = true;
+ }
+ if (!pGetRecordInfoFromTypeInfo)
+ break;
+
+ ITypeInfo *typeInfo = 0;
+ IRecordInfo *recordInfo = 0;
+ CLSID clsid = qvar.type() == QVariant::Rect ? CLSID_QRect
+ :qvar.type() == QVariant::Size ? CLSID_QSize
+ :CLSID_QPoint;
+ qAxTypeLibrary->GetTypeInfoOfGuid(clsid, &typeInfo);
+ if (!typeInfo)
+ break;
+ pGetRecordInfoFromTypeInfo(typeInfo, &recordInfo);
+ typeInfo->Release();
+ if (!recordInfo)
+ break;
+
+ void *record = 0;
+ switch (qvar.type()) {
+ case QVariant::Rect:
+ {
+ QRect qrect(qvar.toRect());
+ recordInfo->RecordCreateCopy(&qrect, &record);
+ }
+ break;
+ case QVariant::Size:
+ {
+ QSize qsize(qvar.toSize());
+ recordInfo->RecordCreateCopy(&qsize, &record);
+ }
+ break;
+ case QVariant::Point:
+ {
+ QPoint qpoint(qvar.toPoint());
+ recordInfo->RecordCreateCopy(&qpoint, &record);
+ }
+ break;
+ }
+
+ arg.vt = VT_RECORD;
+ arg.pRecInfo = recordInfo,
+ arg.pvRecord = record;
+ if (out) {
+ qWarning("QVariantToVARIANT: out-parameter not supported for records");
+ return false;
+ }
+ }
+ break;
+#endif // QAX_SERVER
+ case QVariant::UserType:
+ {
+ QByteArray subType = qvar.typeName();
+#ifdef QAX_SERVER
+ if (subType.endsWith('*'))
+ subType.truncate(subType.length() - 1);
+#endif
+ if (!qstrcmp(qvar.typeName(), "IDispatch*")) {
+ arg.vt = VT_DISPATCH;
+ arg.pdispVal = *(IDispatch**)qvar.data();
+ if (arg.pdispVal)
+ arg.pdispVal->AddRef();
+ if (out) {
+ qWarning("QVariantToVARIANT: out-parameter not supported for IDispatch");
+ return false;
+ }
+ } else if (!qstrcmp(qvar.typeName(), "IDispatch**")) {
+ arg.vt = VT_DISPATCH;
+ arg.ppdispVal = *(IDispatch***)qvar.data();
+ if (out)
+ arg.vt |= VT_BYREF;
+ } else if (!qstrcmp(qvar.typeName(), "IUnknown*")) {
+ arg.vt = VT_UNKNOWN;
+ arg.punkVal = *(IUnknown**)qvar.data();
+ if (arg.punkVal)
+ arg.punkVal->AddRef();
+ if (out) {
+ qWarning("QVariantToVARIANT: out-parameter not supported for IUnknown");
+ return false;
+ }
+#ifdef QAX_SERVER
+ } else if (qAxFactory()->metaObject(QString::fromLatin1(subType.constData()))) {
+ arg.vt = VT_DISPATCH;
+ void *user = *(void**)qvar.constData();
+// qVariantGet(qvar, user, qvar.typeName());
+ if (!user) {
+ arg.pdispVal = 0;
+ } else {
+ qAxFactory()->createObjectWrapper(static_cast<QObject*>(user), &arg.pdispVal);
+ }
+ if (out) {
+ qWarning("QVariantToVARIANT: out-parameter not supported for subtype");
+ return false;
+ }
+#else
+ } else if (QMetaType::type(subType)) {
+ QAxObject *object = *(QAxObject**)qvar.constData();
+// qVariantGet(qvar, object, subType);
+ arg.vt = VT_DISPATCH;
+ object->queryInterface(IID_IDispatch, (void**)&arg.pdispVal);
+ if (out) {
+ qWarning("QVariantToVARIANT: out-parameter not supported for subtype");
+ return false;
+ }
+#endif
+ } else {
+ return false;
+ }
+ }
+ break;
+#endif
+
+ case QVariant::Invalid: // default-parameters not set
+ if (out && arg.vt == (VT_ERROR|VT_BYREF)) {
+ *arg.plVal = DISP_E_PARAMNOTFOUND;
+ } else {
+ arg.vt = VT_ERROR;
+ arg.lVal = DISP_E_PARAMNOTFOUND;
+ if (out) {
+ arg.plVal = new long(arg.lVal);
+ arg.vt |= VT_BYREF;
+ }
+ }
+ break;
+
+ default:
+ return false;
+ }
+
+ Q_ASSERT(!out || (arg.vt & VT_BYREF));
+ return true;
+}
+
diff --git a/src/platformsupport/udev/qudevhelper_p.h b/src/plugins/platforms/windows/accessible/comutils.h
index 3895da87b6..08420cc46c 100644
--- a/src/platformsupport/udev/qudevhelper_p.h
+++ b/src/plugins/platforms/windows/accessible/comutils.h
@@ -38,23 +38,24 @@
** $QT_END_LICENSE$
**
****************************************************************************/
+#ifndef COMUTILS_H
+#define COMUTILS_H
-#ifndef QUDEVHELPER_P_H
-#define QUDEVHELPER_P_H
+#if !defined(_WINDOWS_) && !defined(_WINDOWS_H) && !defined(__WINDOWS__)
+#error Must include windows.h first!
+#endif
-#include <QString>
-#include <QObject>
+#include <ocidl.h>
+#include <QtCore/qstring.h>
-QT_BEGIN_NAMESPACE
+class QVariant;
-enum QUDeviceType {
- UDev_Mouse = 0x01,
- UDev_Touchpad = 0x02,
- UDev_Touchscreen = 0x04
-};
+bool QVariantToVARIANT(const QVariant &var, VARIANT &arg, const QByteArray &typeName, bool out);
-void q_udev_devicePath(int type, QString *path);
+inline BSTR QStringToBSTR(const QString &str)
+{
+ return SysAllocStringLen((OLECHAR*)str.unicode(), str.length());
+}
-QT_END_NAMESPACE
+#endif // COMUTILS_H
-#endif // QUDEVHELPER_P_H
diff --git a/src/plugins/platforms/windows/accessible/iaccessible2.cpp b/src/plugins/platforms/windows/accessible/iaccessible2.cpp
new file mode 100644
index 0000000000..f22349714f
--- /dev/null
+++ b/src/plugins/platforms/windows/accessible/iaccessible2.cpp
@@ -0,0 +1,1467 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this
+** file. Please review the following information to ensure the GNU Lesser
+** General Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include <QtCore/QtConfig>
+#ifndef QT_NO_ACCESSIBILITY
+
+#include "iaccessible2.h"
+#include "qwindowsaccessibility.h"
+
+#include <QtGui/qaccessible2.h>
+#include <QtWidgets/qapplication.h>
+#include <QtCore/qdebug.h>
+
+QT_BEGIN_NAMESPACE
+
+/**************************************************************\
+ * AccessibleApplication *
+ **************************************************************/
+// IUnknown
+HRESULT STDMETHODCALLTYPE AccessibleApplication::QueryInterface(REFIID id, LPVOID *iface)
+{
+ *iface = 0;
+ if (id == IID_IUnknown) {
+ accessibleDebug("AccessibleApplication::QI(): IID_IUnknown");
+ *iface = (IUnknown*)this;
+ } else if (id == IID_IAccessibleApplication) {
+ accessibleDebug("AccessibleApplication::QI(): IID_IAccessibleApplication");
+ *iface = static_cast<IAccessibleApplication*>(this);
+ }
+
+ if (*iface) {
+ AddRef();
+ return S_OK;
+ }
+ return E_NOINTERFACE;
+}
+
+ULONG STDMETHODCALLTYPE AccessibleApplication::AddRef()
+{
+ return ++m_ref;
+}
+
+ULONG STDMETHODCALLTYPE AccessibleApplication::Release()
+{
+ if (!--m_ref) {
+ delete this;
+ return 0;
+ }
+ return m_ref;
+}
+
+/* IAccessibleApplication */
+HRESULT STDMETHODCALLTYPE AccessibleApplication::get_appName(/* [retval][out] */ BSTR *name)
+{
+ const QString appName = QGuiApplication::applicationName();
+ *name = QStringToBSTR(appName);
+ return S_OK;
+}
+
+HRESULT STDMETHODCALLTYPE AccessibleApplication::get_appVersion(/* [retval][out] */ BSTR *version)
+{
+ const QString appName = QGuiApplication::applicationVersion();
+ *version = QStringToBSTR(appName);
+ return S_OK;
+}
+
+HRESULT STDMETHODCALLTYPE AccessibleApplication::get_toolkitName(/* [retval][out] */ BSTR *name)
+{
+ *name = ::SysAllocString(L"Qt");
+ return S_OK;
+}
+
+HRESULT STDMETHODCALLTYPE AccessibleApplication::get_toolkitVersion(/* [retval][out] */ BSTR *version)
+{
+ *version = ::SysAllocString(QT_UNICODE_LITERAL(QT_VERSION_STR));
+ return S_OK;
+}
+
+
+
+/*!
+ \internal
+ Client allocates and deallocates array
+ (see "Special Consideration when using Arrays", in Accessible2.idl)
+ */
+HRESULT STDMETHODCALLTYPE AccessibleRelation::get_target(
+ /* [in] */ long targetIndex,
+ /* [retval][out] */ IUnknown **target)
+{
+ if (targetIndex >= 0 && targetIndex < m_targets.count()) {
+ QAccessibleInterface *iface = m_targets.at(targetIndex);
+ *target = QWindowsAccessibility::wrap(iface);
+ if (*target)
+ return S_OK;
+ return E_FAIL;
+ }
+ return E_INVALIDARG;
+}
+
+/*!
+ \internal
+ Client allocates and deallocates \a targets array
+ (see "Special Consideration when using Arrays", in Accessible2.idl)
+ */
+HRESULT STDMETHODCALLTYPE AccessibleRelation::get_targets(
+ /* [in] */ long maxTargets, // Hmmm, ignore ???
+ /* [length_is][size_is][out] */ IUnknown **targets,
+ /* [retval][out] */ long *nTargets)
+{
+
+ const int numTargets = qMin((int)maxTargets, m_targets.count());
+ for (int i = 0; i < numTargets; ++i) {
+ QAccessibleInterface *iface = m_targets.at(i);
+ IAccessible *iacc = QWindowsAccessibility::wrap(iface);
+ if (!iacc)
+ return E_FAIL;
+ *targets = iacc;
+ ++targets;
+ }
+ *nTargets = numTargets;
+ // \a targets array is allocated by client.
+ return numTargets > 0 ? S_OK : S_FALSE;
+}
+
+
+/**************************************************************\
+ * *
+ * IUnknown *
+ * *
+ **************************************************************/
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::QueryInterface(REFIID id, LPVOID *iface)
+{
+ *iface = 0;
+
+ QByteArray strIID = IIDToString(id);
+ if (!strIID.isEmpty()) {
+ QString ss; QDebug dbg(&ss); dbg << accessible;
+ accessibleDebug("QWindowsIA2Accessible::QI() - IID:%s, iface:%s ", strIID.constData(), qPrintable(ss));
+ }
+ if (id == IID_IUnknown) {
+ *iface = (IUnknown*)(IDispatch*)this;
+ } else if (id == IID_IDispatch) {
+ *iface = (IDispatch*)this;
+ } else if (id == IID_IAccessible) {
+ *iface = (IAccessible*)this;
+ } else if (id == IID_IOleWindow) {
+ *iface = (IOleWindow*)this;
+ } else if (id == IID_IServiceProvider) {
+ *iface = (IServiceProvider*)this;
+ } else if (id == IID_IAccessible2) {
+ *iface = (IAccessible2*)this;
+ } else if (id == IID_IAccessibleAction) {
+ if (accessible->actionInterface())
+ *iface = (IAccessibleAction*)this;
+ } else if (id == IID_IAccessibleComponent) {
+ *iface = (IAccessibleComponent*)this;
+ } else if (id == IID_IAccessibleEditableText) {
+ //if (accessible->editableTextInterface()) {
+ //*iface = (IAccessibleEditableText*)this;
+ //}
+ } else if (id == IID_IAccessibleHyperlink) {
+ //*iface = (IAccessibleHyperlink*)this;
+ } else if (id == IID_IAccessibleHypertext) {
+ //*iface = (IAccessibleHypertext*)this;
+ } else if (id == IID_IAccessibleImage) {
+ //*iface = (IAccessibleImage*)this;
+ } else if (id == IID_IAccessibleRelation) {
+ *iface = (IAccessibleRelation*)this;
+ } else if (id == IID_IAccessibleTable) {
+ //*iface = (IAccessibleTable*)this; // not supported
+ } else if (id == IID_IAccessibleTable2) {
+ if (accessible->tableInterface())
+ *iface = (IAccessibleTable2*)this;
+ } else if (id == IID_IAccessibleTableCell) {
+ if (accessible->tableCellInterface())
+ *iface = (IAccessibleTableCell*)this;
+ } else if (id == IID_IAccessibleText) {
+ if (accessible->textInterface())
+ *iface = (IAccessibleText*)this;
+ } else if (id == IID_IAccessibleValue) {
+ if (accessible->valueInterface())
+ *iface = (IAccessibleValue*)this;
+ }
+ if (*iface) {
+ AddRef();
+ return S_OK;
+ }
+
+ return E_NOINTERFACE;
+}
+
+ULONG STDMETHODCALLTYPE QWindowsIA2Accessible::AddRef()
+{
+ return ++ref;
+}
+
+ULONG STDMETHODCALLTYPE QWindowsIA2Accessible::Release()
+{
+ if (!--ref) {
+ delete this;
+ return 0;
+ }
+ return ref;
+}
+
+
+
+/**************************************************************\
+ * *
+ * IAccessible2 *
+ * *
+ **************************************************************/
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_nRelations(long *nRelations)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!nRelations)
+ return E_INVALIDARG;
+ if (!accessible->isValid())
+ return E_FAIL;
+
+ return getRelationsHelper(0, 0, 0, nRelations);
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_relation(long relationIndex, IAccessibleRelation **relation)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!relation)
+ return E_INVALIDARG;
+ if (!accessible->isValid())
+ return E_FAIL;
+
+ return getRelationsHelper(relation, relationIndex, 1);
+}
+
+/*!
+ \internal
+ Client allocates and deallocates array
+ (see "Special Consideration when using Arrays", in Accessible2.idl)
+ */
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_relations(long maxRelations,
+ IAccessibleRelation **relations,
+ long *nRelations)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+
+ return getRelationsHelper(relations, 0, maxRelations, nRelations);
+}
+
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::role(long *ia2role)
+{
+ accessibleDebugClientCalls(accessible);
+ //### Change QAccessibleInterface::role() to return both MSAA and IA2 roles.
+ // When that is completed, we must patch the MSAA bridge not not return any
+ // IA2-specific roles from get_accRole().
+ if (!accessible->isValid())
+ return E_FAIL;
+
+ *ia2role = accessible->role();
+ return S_OK;
+}
+
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::scrollTo(enum IA2ScrollType /*scrollType*/)
+{
+ //### Ignore for now
+ return E_NOTIMPL;
+}
+
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::scrollToPoint(enum IA2CoordinateType /*coordinateType*/, long /*x*/, long /*y*/)
+{
+ //### Ignore for now
+ return E_NOTIMPL;
+}
+
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_groupPosition(long *groupLevel,
+ long *similarItemsInGroup,
+ long *positionInGroup)
+{
+ // ### Ignore for now. Not sure what this is used for.....
+ *groupLevel = 0; // Not applicable
+ *similarItemsInGroup = 0; // Not applicable
+ *positionInGroup = 0; // Not applicable
+ return S_FALSE;
+}
+
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_states(AccessibleStates *states)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+ if (!states)
+ return E_POINTER;
+ QAccessible::State st = accessible->state();
+ AccessibleStates ia2states = 0;
+ if (st.active)
+ ia2states |= IA2_STATE_ACTIVE;
+ if (st.invalid)
+ ia2states |= IA2_STATE_DEFUNCT;
+ if (st.editable)
+ ia2states |= IA2_STATE_EDITABLE;
+ if (st.multiLine)
+ ia2states |= IA2_STATE_MULTI_LINE;
+ if (st.selectableText)
+ ia2states |= IA2_STATE_SELECTABLE_TEXT;
+ if (st.supportsAutoCompletion)
+ ia2states |= IA2_STATE_SUPPORTS_AUTOCOMPLETION;
+
+ *states = ia2states;
+ return S_OK;
+}
+
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_extendedRole(BSTR *extendedRole)
+{
+ //###
+ *extendedRole = 0;
+ return E_NOTIMPL; // mozilla does this
+ //return S_FALSE;
+}
+
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_localizedExtendedRole(BSTR *localizedExtendedRole)
+{
+ //###
+ *localizedExtendedRole = 0;
+ return E_NOTIMPL; // mozilla does this
+ //return S_FALSE;
+}
+
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_nExtendedStates(long *nExtendedStates)
+{
+ // Who will ever intepret these values into something meaningful??
+ *nExtendedStates = 0;
+ return E_NOTIMPL; // mozilla does this
+ //return S_FALSE;
+}
+
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_extendedStates(long /*maxExtendedStates*/,
+ BSTR **extendedStates,
+ long *nExtendedStates)
+{
+ *extendedStates = 0;
+ *nExtendedStates = 0;
+ return E_NOTIMPL; // mozilla does this
+ //return S_FALSE;
+}
+
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_localizedExtendedStates(long /*maxLocalizedExtendedStates*/,
+ BSTR **localizedExtendedStates,
+ long *nLocalizedExtendedStates)
+{
+ *localizedExtendedStates = 0;
+ *nLocalizedExtendedStates = 0;
+ return E_NOTIMPL; // mozilla does this
+ //return S_FALSE;
+}
+
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_uniqueID(long *outUniqueID)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+ // ### FIXME SERIOUSLY, NOT A STABLE SOLUTION IF NODES ARE DELETED ETC
+ // Return 0 if no object and no parent. This is really an error case.
+ uint uid = uniqueID();
+ accessibleDebug("uniqueID: %08x", uid);
+
+ *outUniqueID = (long)uid;
+ return uid ? S_OK : S_FALSE;
+}
+
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_windowHandle(HWND *windowHandle)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+ return GetWindow(windowHandle);
+}
+
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_indexInParent(long *indexInParent)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+ if (!indexInParent)
+ return E_INVALIDARG;
+ QAccessibleInterface *par = accessible->parent();
+ if (!par) {
+ *indexInParent = -1;
+ return S_FALSE;
+ }
+ int indexOfChild = par->indexOfChild(accessible);
+ delete par;
+ Q_ASSERT(indexOfChild >= 0);
+ *indexInParent = indexOfChild;
+ return S_OK;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_locale(IA2Locale *locale)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+ IA2Locale res;
+ QLocale l;
+ res.country = QStringToBSTR(QLocale::countryToString(l.country()));
+ res.language = QStringToBSTR(QLocale::languageToString(l.language()));
+ *locale = res;
+ return S_OK;
+}
+
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_attributes(BSTR *attributes)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+ *attributes = 0;//QStringToBSTR(QString());
+ return S_FALSE;
+}
+
+/**************************************************************\
+ * IAccessibleAction *
+ **************************************************************/
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::nActions(long *nActions)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+ *nActions = 0;
+
+ if (QAccessibleActionInterface *actionIface = actionInterface())
+ *nActions = actionIface->actionNames().count();
+ return S_OK;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::doAction(long actionIndex)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+ if (QAccessibleActionInterface *actionIface = actionInterface()) {
+ const QStringList actionNames = actionIface->actionNames();
+ if (actionIndex < 0 || actionIndex >= actionNames.count())
+ return E_INVALIDARG;
+ const QString actionName = actionNames.at(actionIndex);
+ actionIface->doAction(actionName);
+ return S_OK;
+ }
+ return S_FALSE;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_description(long actionIndex, BSTR *description)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+ *description = 0;
+ if (QAccessibleActionInterface *actionIface = actionInterface()) {
+ const QStringList actionNames = actionIface->actionNames();
+ if (actionIndex < 0 || actionIndex >= actionNames.count())
+ return E_INVALIDARG;
+ const QString actionName = actionNames.at(actionIndex);
+ *description = QStringToBSTR(actionIface->localizedActionDescription(actionName));
+ }
+ return *description ? S_OK : S_FALSE;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_keyBinding(long actionIndex, long nMaxBindings, BSTR **keyBindings, long *nBindings)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+ Q_UNUSED(nMaxBindings);
+ BSTR *arrayOfBindingsToReturn = 0;
+ int numBindings = 0;
+ if (QAccessibleActionInterface *actionIface = actionInterface()) {
+ const QStringList actionNames = actionIface->actionNames();
+ if (actionIndex < 0 || actionIndex >= actionNames.count())
+ return E_INVALIDARG;
+ const QString actionName = actionNames.at(actionIndex);
+ const QStringList keyBindings = actionIface->keyBindingsForAction(actionName);
+ numBindings = keyBindings.count();
+ if (numBindings > 0) {
+ // The IDL documents that the client must free with CoTaskMemFree
+ arrayOfBindingsToReturn = (BSTR*)::CoTaskMemAlloc(sizeof(BSTR) * numBindings);
+ for (int i = 0; i < numBindings; ++i)
+ arrayOfBindingsToReturn[i] = QStringToBSTR(keyBindings.at(i));
+ }
+ }
+ *keyBindings = arrayOfBindingsToReturn;
+ *nBindings = numBindings;
+
+ return numBindings ? S_OK : S_FALSE;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_name(long actionIndex, BSTR *name)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+ *name = 0;
+ if (QAccessibleActionInterface *actionIface = actionInterface()) {
+ const QStringList actionNames = actionIface->actionNames();
+ if (actionIndex < 0 || actionIndex >= actionNames.count())
+ return E_INVALIDARG;
+ const QString actionName = actionNames.at(actionIndex);
+ *name = QStringToBSTR(actionName);
+ }
+ return *name ? S_OK : S_FALSE;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_localizedName(long actionIndex, BSTR *localizedName)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+ *localizedName = 0;
+ if (QAccessibleActionInterface *actionIface = actionInterface()) {
+ const QStringList actionNames = actionIface->actionNames();
+ if (actionIndex < 0 || actionIndex >= actionNames.count())
+ return E_INVALIDARG;
+
+ const QString actionName = actionNames.at(actionIndex);
+ *localizedName = QStringToBSTR(actionIface->localizedActionName(actionName));
+ }
+ return *localizedName ? S_OK : S_FALSE;
+}
+
+/**************************************************************\
+ * IAccessibleComponent *
+ **************************************************************/
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_locationInParent(long *x, long *y)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+
+ QPoint topLeft = accessible->rect().topLeft();
+
+ if (QAccessibleInterface *parentIface = accessible->parent())
+ topLeft -= parentIface->rect().topLeft();
+
+ *x = topLeft.x();
+ *y = topLeft.y();
+ return S_OK;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_foreground(IA2Color *foreground)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+
+ // IA2Color is a typedef for long
+ *foreground = (IA2Color)accessible->foregroundColor().rgb();
+ return S_OK;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_background(IA2Color *background)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+
+ // IA2Color is a typedef for long
+ *background = (IA2Color)accessible->backgroundColor().rgb();
+ return S_OK;
+}
+
+/**************************************************************\
+ * IAccessibleTable2 *
+ **************************************************************/
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_cellAt( long row, long column, IUnknown **cell)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+
+ *cell = 0;
+ if (QAccessibleTableInterface *tableIface = tableInterface()) {
+ if (QAccessibleInterface *qtCell = tableIface->cellAt(row, column)) {
+ *cell = QWindowsAccessibility::wrap(qtCell);
+ }
+ }
+ accessibleDebug("found cell? %p", *cell);
+ return *cell ? S_OK : S_FALSE;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_caption( IUnknown **captionInterface)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+
+ *captionInterface = 0;
+ if (QAccessibleTableInterface *tableIface = tableInterface()) {
+ if (QAccessibleInterface *iface = tableIface->caption())
+ *captionInterface = QWindowsAccessibility::wrap(iface);
+ }
+ return *captionInterface ? S_OK : S_FALSE;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_columnDescription( long column, BSTR *description)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+
+ *description = 0;
+ if (QAccessibleTableInterface *tableIface = tableInterface()) {
+ const QString qtDesc = tableIface->columnDescription(column);
+ if (!qtDesc.isEmpty())
+ *description = QStringToBSTR(qtDesc);
+ }
+ return *description ? S_OK : S_FALSE;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_nColumns( long *columnCount)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+
+ if (QAccessibleTableInterface *tableIface = tableInterface()) {
+ *columnCount = tableIface->columnCount();
+ return S_OK;
+ }
+ return E_FAIL;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_nRows(long *rowCount)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+
+ if (QAccessibleTableInterface *tableIface = tableInterface()) {
+ *rowCount = tableIface->rowCount();
+ return S_OK;
+ }
+ return E_FAIL;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_nSelectedCells(long *cellCount)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+
+ if (QAccessibleTableInterface *tableIface = tableInterface()) {
+ *cellCount = tableIface->selectedCellCount();
+ return S_OK;
+ }
+ return E_FAIL;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_nSelectedColumns(long *columnCount)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+
+ if (QAccessibleTableInterface *tableIface = tableInterface()) {
+ *columnCount = tableIface->selectedColumnCount();
+ return S_OK;
+ }
+ return E_FAIL;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_nSelectedRows(long *rowCount)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+
+ if (QAccessibleTableInterface *tableIface = tableInterface()) {
+ *rowCount = tableIface->selectedRowCount();
+ return S_OK;
+ }
+ return E_FAIL;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_rowDescription(long row, BSTR *description)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+
+ *description = 0;
+ if (QAccessibleTableInterface *tableIface = tableInterface()) {
+ const QString qtDesc = tableIface->columnDescription(row);
+ if (!qtDesc.isEmpty())
+ *description = QStringToBSTR(qtDesc);
+ }
+ return *description ? S_OK : S_FALSE;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_selectedCells(IUnknown ***cells, long *nSelectedCells)
+{
+ accessibleDebugClientCalls(accessible);
+ Q_UNUSED(cells);
+ Q_UNUSED(nSelectedCells);
+ if (!accessible->isValid())
+ return E_FAIL;
+
+ QList<QAccessibleInterface*> selectedCells = tableInterface()->selectedCells();
+ return wrapListOfCells(selectedCells, cells, nSelectedCells);
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_selectedColumns(long **selectedColumns, long *nColumns)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+
+ if (QAccessibleTableInterface *tableIface = tableInterface()) {
+ const QList<int> selectedIndices = tableIface->selectedColumns();
+ const int &count = selectedIndices.count();
+ long *selected = (count ? (long*)::CoTaskMemAlloc(sizeof(long) * count) : (long*)0);
+ for (int i = 0; i < count; ++i)
+ selected[i] = selectedIndices.at(i);
+ *selectedColumns = selected;
+ *nColumns = count;
+ return count ? S_OK : S_FALSE;
+ }
+ return E_FAIL;
+
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_selectedRows(long **selectedRows, long *nRows)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+
+ if (QAccessibleTableInterface *tableIface = tableInterface()) {
+ const QList<int> selectedIndices = tableIface->selectedRows();
+ const int &count = selectedIndices.count();
+ long *selected = (count ? (long*)::CoTaskMemAlloc(sizeof(long) * count) : (long*)0);
+ for (int i = 0; i < count; ++i)
+ selected[i] = selectedIndices.at(i);
+ *selectedRows = selected;
+ *nRows = count;
+ return count ? S_OK : S_FALSE;
+ }
+ return E_FAIL;
+
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_summary(IUnknown **summaryInterface)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+
+ *summaryInterface = 0;
+ if (QAccessibleTableInterface *tableIface = tableInterface()) {
+ if (QAccessibleInterface *iface = tableIface->summary())
+ *summaryInterface = QWindowsAccessibility::wrap(iface);
+ }
+ return *summaryInterface ? S_OK : S_FALSE;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_isColumnSelected(long column, boolean *isSelected)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+
+ if (QAccessibleTableInterface *tableIface = tableInterface()) {
+ *isSelected = tableIface->isColumnSelected(column);
+ return S_OK;
+ }
+ return E_FAIL;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_isRowSelected(long row, boolean *isSelected)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+
+ if (QAccessibleTableInterface *tableIface = tableInterface()) {
+ *isSelected = tableIface->isRowSelected(row);
+ return S_OK;
+ }
+ return E_FAIL;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::selectRow(long row)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+
+ if (QAccessibleTableInterface *tableIface = tableInterface()) {
+ bool ok = tableIface->selectRow(row);
+ return ok ? S_OK : E_INVALIDARG; //### Not sure of the return value if it fails???
+ }
+ return E_FAIL;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::selectColumn(long column)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+
+ if (QAccessibleTableInterface *tableIface = tableInterface()) {
+ bool ok = tableIface->selectColumn(column);
+ return ok ? S_OK : E_INVALIDARG; //### Not sure of the return value if it fails???
+ }
+ return E_FAIL;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::unselectRow(long row)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+
+ if (QAccessibleTableInterface *tableIface = tableInterface()) {
+ bool ok = tableIface->unselectRow(row);
+ return ok ? S_OK : E_INVALIDARG; //### Not sure of the return value if it fails???
+ }
+ return E_FAIL;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::unselectColumn(long column)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+
+ if (QAccessibleTableInterface *tableIface = tableInterface()) {
+ bool ok = tableIface->unselectColumn(column);
+ return ok ? S_OK : E_INVALIDARG; //### Not sure of the return value if it fails???
+ }
+ return E_FAIL;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_modelChange( IA2TableModelChange * /*modelChange*/)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+ return E_NOTIMPL;
+}
+
+/**************************************************************\
+ * IAccessibleTableCell *
+\**************************************************************/
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_columnExtent(long *nColumnsSpanned)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+
+ *nColumnsSpanned = tableCellInterface()->columnExtent();
+ return S_OK;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_columnHeaderCells(IUnknown ***cellAccessibles,
+ long *nColumnHeaderCells)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+ const QList<QAccessibleInterface*> headerCells = tableCellInterface()->columnHeaderCells();
+ return wrapListOfCells(headerCells, cellAccessibles, nColumnHeaderCells);
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_columnIndex(long *columnIndex)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+ *columnIndex = tableCellInterface()->columnIndex();
+ return S_OK;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_rowExtent(long *nRowsSpanned)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+ *nRowsSpanned = tableCellInterface()->rowExtent();
+ return S_OK;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_rowHeaderCells(IUnknown ***cellAccessibles,
+ long *nRowHeaderCells)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+ const QList<QAccessibleInterface*> headerCells = tableCellInterface()->rowHeaderCells();
+ return wrapListOfCells(headerCells, cellAccessibles, nRowHeaderCells);
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_rowIndex(long *rowIndex)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+ *rowIndex = tableCellInterface()->rowIndex();
+ return S_OK;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_isSelected( boolean *isSelected)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+ *isSelected = tableCellInterface()->isSelected();
+ return S_OK;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_rowColumnExtents(long *row, long *column,
+ long *rowExtents, long *columnExtents,
+ boolean *isSelected)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+
+ tableCellInterface()->rowColumnExtents((int*)row, (int*)column, (int*)rowExtents, (int*)columnExtents, (bool*)isSelected);
+ return S_OK;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_table(IUnknown **table)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+
+ QAccessibleInterface *tableIface = tableCellInterface()->table();
+
+ *table = QWindowsAccessibility::wrap(tableIface);
+ return S_OK;
+}
+
+/**************************************************************\
+ * IAccessibleText *
+\**************************************************************/
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::addSelection(long startOffset,
+ long endOffset)
+{
+ accessibleDebugClientCalls(accessible);
+ if (QAccessibleTextInterface *text = textInterface()) {
+ text->addSelection(startOffset, endOffset);
+ return S_OK;
+ }
+ return E_FAIL;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_attributes(long offset,
+ long *startOffset,
+ long *endOffset,
+ BSTR *textAttributes)
+{
+ accessibleDebugClientCalls(accessible);
+ if (QAccessibleTextInterface *text = textInterface()) {
+ const QString attrs = text->attributes(offset, (int*)startOffset, (int*)endOffset);
+ *textAttributes = QStringToBSTR(attrs);
+ return S_OK;
+ }
+ return E_FAIL;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_caretOffset(long *offset)
+{
+ accessibleDebugClientCalls(accessible);
+ if (QAccessibleTextInterface *text = textInterface()) {
+ *offset = text->cursorPosition();
+ return S_OK;
+ }
+ return E_FAIL;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_characterExtents(long offset,
+ enum IA2CoordinateType coordType,
+ long *x,
+ long *y,
+ long *width,
+ long *height)
+{
+ accessibleDebugClientCalls(accessible);
+ if (QAccessibleTextInterface *text = textInterface()) {
+ const QRect rect = text->characterRect(offset, (QAccessible2::CoordinateType)coordType);
+ *x = rect.x();
+ *y = rect.y();
+ *width = rect.width();
+ *height = rect.height();
+ return S_OK;
+ }
+ return E_FAIL;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_nSelections(long *nSelections)
+{
+ accessibleDebugClientCalls(accessible);
+ if (QAccessibleTextInterface *text = textInterface()) {
+ *nSelections = text->selectionCount();
+ return S_OK;
+ }
+ return E_FAIL;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_offsetAtPoint(long x,
+ long y,
+ enum IA2CoordinateType coordType,
+ long *offset)
+{
+ accessibleDebugClientCalls(accessible);
+ if (QAccessibleTextInterface *text = textInterface()) {
+ *offset = text->offsetAtPoint(QPoint(x,y), (QAccessible2::CoordinateType)coordType);
+ return (*offset >=0 ? S_OK : S_FALSE);
+ }
+ return E_FAIL;
+
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_selection(long selectionIndex,
+ long *startOffset,
+ long *endOffset)
+{
+ accessibleDebugClientCalls(accessible);
+ if (QAccessibleTextInterface *text = textInterface()) {
+ text->selection(selectionIndex, (int*)startOffset, (int*)endOffset);
+ return S_OK;
+ }
+ return E_FAIL;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_text(long startOffset,
+ long endOffset,
+ BSTR *text)
+{
+ accessibleDebugClientCalls(accessible);
+ if (QAccessibleTextInterface *textif = textInterface()) {
+ const QString t = textif->text(startOffset, endOffset);
+ if (!t.isEmpty()) {
+ *text = QStringToBSTR(t);
+ return S_OK;
+ }
+ return E_INVALIDARG;
+ }
+ return E_FAIL;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_textBeforeOffset(long offset,
+ enum IA2TextBoundaryType boundaryType,
+ long *startOffset,
+ long *endOffset,
+ BSTR *text)
+{
+ accessibleDebugClientCalls(accessible);
+ if (QAccessibleTextInterface *textIface = textInterface()) {
+ const QString txt = textIface->textBeforeOffset(offset, (QAccessible2::BoundaryType)boundaryType, (int*)startOffset, (int*)endOffset);
+ if (!txt.isEmpty()) {
+ *text = QStringToBSTR(txt);
+ return S_OK;
+ }
+ return S_FALSE;
+ }
+ return E_FAIL;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_textAfterOffset(
+ long offset,
+ enum IA2TextBoundaryType boundaryType,
+ long *startOffset,
+ long *endOffset,
+ BSTR *text)
+{
+ accessibleDebugClientCalls(accessible);
+ if (QAccessibleTextInterface *textIface = textInterface()) {
+ const QString txt = textIface->textAfterOffset(offset, (QAccessible2::BoundaryType)boundaryType, (int*)startOffset, (int*)endOffset);
+ if (!txt.isEmpty()) {
+ *text = QStringToBSTR(txt);
+ return S_OK;
+ }
+ return S_FALSE;
+ }
+ return E_FAIL;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_textAtOffset(long offset,
+ enum IA2TextBoundaryType boundaryType,
+ long *startOffset,
+ long *endOffset,
+ BSTR *text)
+{
+ accessibleDebugClientCalls(accessible);
+ if (QAccessibleTextInterface *textIface = textInterface()) {
+ const QString txt = textIface->textAtOffset(offset, (QAccessible2::BoundaryType)boundaryType, (int*)startOffset, (int*)endOffset);
+ if (!txt.isEmpty()) {
+ *text = QStringToBSTR(txt);
+ return S_OK;
+ }
+ return S_FALSE;
+ }
+ return E_FAIL;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::removeSelection(long selectionIndex)
+{
+ accessibleDebugClientCalls(accessible);
+ if (QAccessibleTextInterface *textIface = textInterface()) {
+ textIface->removeSelection(selectionIndex);
+ return S_OK;
+ }
+ return E_FAIL;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::setCaretOffset(long offset)
+{
+ accessibleDebugClientCalls(accessible);
+ if (QAccessibleTextInterface *textIface = textInterface()) {
+ textIface->setCursorPosition(offset);
+ return S_OK;
+ }
+ return E_FAIL;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::setSelection(long selectionIndex,
+ long startOffset,
+ long endOffset)
+{
+ accessibleDebugClientCalls(accessible);
+ if (QAccessibleTextInterface *textIface = textInterface()) {
+ textIface->setSelection(selectionIndex, startOffset, endOffset);
+ return S_OK;
+ }
+ return E_FAIL;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_nCharacters(long *nCharacters)
+{
+ accessibleDebugClientCalls(accessible);
+ if (QAccessibleTextInterface *textIface = textInterface()) {
+ *nCharacters = textIface->characterCount();
+ return S_OK;
+ }
+ return E_FAIL;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::scrollSubstringTo(long startIndex,
+ long endIndex,
+ enum IA2ScrollType scrollType)
+{
+ accessibleDebugClientCalls(accessible);
+ if (QAccessibleTextInterface *textIface = textInterface()) {
+ Q_UNUSED(scrollType); //###
+ textIface->scrollToSubstring(startIndex, endIndex);
+ return S_OK;
+ }
+ return E_FAIL;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::scrollSubstringToPoint(long startIndex,
+ long endIndex,
+ enum IA2CoordinateType coordinateType,
+ long x,
+ long y)
+{
+ Q_UNUSED(startIndex);
+ Q_UNUSED(endIndex);
+ Q_UNUSED(coordinateType);
+ Q_UNUSED(x);
+ Q_UNUSED(y);
+
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_newText(IA2TextSegment *newText)
+{
+ Q_UNUSED(newText);
+ return E_NOTIMPL;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_oldText(IA2TextSegment *oldText)
+{
+ Q_UNUSED(oldText);
+ return E_NOTIMPL;
+}
+
+/**************************************************************\
+ * IAccessibleValue *
+ **************************************************************/
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_currentValue(VARIANT *currentValue)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+ if (QAccessibleValueInterface *valueIface = valueInterface()) {
+ const QVariant var = valueIface->currentValue();
+ if (QVariantToVARIANT(var, *currentValue, QByteArray(), false))
+ return S_OK;
+
+ }
+ currentValue->vt = VT_EMPTY;
+ return S_FALSE;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::setCurrentValue(VARIANT value)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+ HRESULT hr = S_FALSE;
+ if (QAccessibleValueInterface *valueIface = valueInterface()) {
+ hr = VariantChangeType(&value, &value, 0, VT_R8);
+ if (SUCCEEDED(hr)) {
+ // ### works only for numbers (not date, strings, etc)
+ valueIface->setCurrentValue(QVariant(value.dblVal));
+ }
+ }
+ return hr;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_maximumValue(VARIANT *maximumValue)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+ if (QAccessibleValueInterface *valueIface = valueInterface()) {
+ const QVariant var = valueIface->maximumValue();
+ if (QVariantToVARIANT(var, *maximumValue, QByteArray(), false))
+ return S_OK;
+ }
+ maximumValue->vt = VT_EMPTY;
+ return S_FALSE;
+}
+
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_minimumValue(VARIANT *minimumValue)
+{
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
+ if (QAccessibleValueInterface *valueIface = valueInterface()) {
+ const QVariant var = valueIface->minimumValue();
+ if (QVariantToVARIANT(var, *minimumValue, QByteArray(), false))
+ return S_OK;
+ }
+ minimumValue->vt = VT_EMPTY;
+ return S_FALSE;
+}
+
+
+/**************************************************************\
+ * IServiceProvider *
+ **************************************************************/
+/*!
+ \internal
+ Reimplemented from IServiceProvider
+*/
+HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::QueryService(REFGUID guidService, REFIID riid, void **iface)
+{
+ if (!iface)
+ return E_POINTER;
+ Q_UNUSED(guidService);
+ *iface = 0;
+ accessibleDebug("QWindowsIA2Accessible::QS(): %s", IIDToString(riid).constData());
+ if (riid == IID_IAccessible || riid == IID_IUnknown || riid == IID_IDispatch) {
+ *iface = static_cast<IAccessible*>(this);
+ } else if (/*guidService == IID_IAccessible && */riid == IID_IAccessible2) {
+ *iface = static_cast<IAccessible2*>(this);
+ } else if (riid == IID_IAccessibleApplication) {
+ *iface = new AccessibleApplication;
+ return S_OK;
+ } else {
+ QueryInterface(riid, iface);
+ }
+ if (*iface) {
+ AddRef();
+ return S_OK;
+ }
+
+ return E_NOINTERFACE;
+}
+
+
+/*!
+ \internal
+ private function..
+ \a maxRelations max number of relations to return in \a relations
+ \a relations the array of relations matching
+ \a startIndex Index to start to return from,
+ it will return only that specific relation in \a relations
+
+ If \a relations is null, \a startIndex and \a maxRelations are ignored, causing
+ it to return the number of relations in \a nRelations
+*/
+HRESULT QWindowsIA2Accessible::getRelationsHelper(IAccessibleRelation **relations, int startIndex, long maxRelations, long *nRelations /* = 0*/)
+{
+ if (nRelations)
+ *nRelations = 0;
+ typedef QPair<QAccessibleInterface *, QAccessible::Relation> RelationEntry;
+ QVector<RelationEntry> rels = accessible->relations();
+ QMap<QAccessible::Relation, QAccessibleInterface *> relationMap;
+ for (QVector<RelationEntry>::const_iterator it = rels.constBegin(); it != rels.constEnd(); ++it)
+ {
+ RelationEntry e = *it;
+ relationMap.insertMulti(e.second, e.first);
+ }
+
+ QList<QAccessible::Relation> keys = relationMap.keys();
+ const int numRelations = keys.count();
+ if (relations) {
+ for (int i = startIndex; i < qMin(startIndex + (int)maxRelations, numRelations); ++i) {
+ QAccessible::Relation relation = keys.at(i);
+ QList<QAccessibleInterface*> targets = relationMap.values(relation);
+ AccessibleRelation *rel = new AccessibleRelation(targets, relation);
+ *relations = rel;
+ ++relations;
+ }
+ }
+ if (nRelations)
+ *nRelations = numRelations;
+
+ return numRelations > 0 ? S_OK : S_FALSE;
+}
+
+
+
+
+/*!
+ \internal
+ helper to wrap a QList<QAccessibleInterface*> inside an array of IAccessible*
+ The IAccessible* array is returned as a IUnknown*
+*/
+HRESULT QWindowsIA2Accessible::wrapListOfCells(const QList<QAccessibleInterface*> &inputCells, IUnknown ***outputAccessibles, long *nCellCount)
+{
+ const int count = inputCells.count();
+ // Server allocates array
+ IUnknown **outputCells = count ? (IUnknown**)::CoTaskMemAlloc(sizeof(IUnknown*) * count ) : (IUnknown**)0;
+ for (int i = 0; i < count; ++i)
+ outputCells[i] = QWindowsAccessibility::wrap(inputCells.at(i));
+
+ *outputAccessibles = outputCells;
+ *nCellCount = count;
+ return count > 0 ? S_OK : S_FALSE;
+}
+
+uint QWindowsIA2Accessible::uniqueID() const
+{
+ uint uid = 0;
+ if (QObject *obj = accessible->object())
+ uid = qHash(obj);
+
+ if (!uid) {
+ QAccessibleInterface *acc = accessible;
+ QVector<int> indexOfNodes;
+ while (acc && !acc->object()) {
+ QAccessibleInterface *par = acc->parent();
+ indexOfNodes.append(par->indexOfChild(acc));
+ if (acc != accessible)
+ delete acc;
+ acc = par;
+ }
+ if (acc) {
+ if (acc->object()) {
+ uid = qHash(acc->object());
+ for (int i = 0; i < indexOfNodes.count(); ++i)
+ uid = qHash(uid + indexOfNodes.at(i));
+
+ }
+ if (acc != accessible)
+ delete acc;
+ }
+ }
+ return uid;
+}
+
+
+#define IF_EQUAL_RETURN_IIDSTRING(id, iid) if (id == iid) return QByteArray(#iid)
+
+QByteArray QWindowsIA2Accessible::IIDToString(REFIID id)
+{
+ IF_EQUAL_RETURN_IIDSTRING(id, IID_IUnknown);
+ IF_EQUAL_RETURN_IIDSTRING(id, IID_IDispatch);
+ IF_EQUAL_RETURN_IIDSTRING(id, IID_IAccessible);
+ IF_EQUAL_RETURN_IIDSTRING(id, IID_IOleWindow);
+ IF_EQUAL_RETURN_IIDSTRING(id, IID_IServiceProvider);
+ IF_EQUAL_RETURN_IIDSTRING(id, IID_IAccessible2);
+ IF_EQUAL_RETURN_IIDSTRING(id, IID_IAccessibleAction);
+ IF_EQUAL_RETURN_IIDSTRING(id, IID_IAccessibleApplication);
+ IF_EQUAL_RETURN_IIDSTRING(id, IID_IAccessibleComponent);
+ IF_EQUAL_RETURN_IIDSTRING(id, IID_IAccessibleEditableText);
+ IF_EQUAL_RETURN_IIDSTRING(id, IID_IAccessibleHyperlink);
+ IF_EQUAL_RETURN_IIDSTRING(id, IID_IAccessibleHypertext);
+ IF_EQUAL_RETURN_IIDSTRING(id, IID_IAccessibleImage);
+ IF_EQUAL_RETURN_IIDSTRING(id, IID_IAccessibleRelation);
+ IF_EQUAL_RETURN_IIDSTRING(id, IID_IAccessibleTable);
+ IF_EQUAL_RETURN_IIDSTRING(id, IID_IAccessibleTable2);
+ IF_EQUAL_RETURN_IIDSTRING(id, IID_IAccessibleTableCell);
+ IF_EQUAL_RETURN_IIDSTRING(id, IID_IAccessibleText);
+ IF_EQUAL_RETURN_IIDSTRING(id, IID_IAccessibleValue);
+
+ // else...
+ QByteArray strGuid;
+#if 0 // Can be useful for debugging, but normally we'd like to reduce the noise a bit...
+ OLECHAR szGuid[39]={0};
+ ::StringFromGUID2(id, szGuid, 39);
+ strGuid.reserve(40);
+ ::WideCharToMultiByte(CP_UTF8, 0, szGuid, 39, strGuid.data(), 39, NULL, NULL);
+ strGuid[38] = '\0';
+#endif
+ return strGuid;
+}
+
+
+QT_END_NAMESPACE
+
+#endif //QT_NO_ACCESSIBILITY
diff --git a/src/plugins/platforms/windows/accessible/iaccessible2.h b/src/plugins/platforms/windows/accessible/iaccessible2.h
new file mode 100644
index 0000000000..a59263fba1
--- /dev/null
+++ b/src/plugins/platforms/windows/accessible/iaccessible2.h
@@ -0,0 +1,379 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this
+** file. Please review the following information to ensure the GNU Lesser
+** General Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef IACCESSIBLE2_H
+#define IACCESSIBLE2_H
+
+#include <QtCore/QtConfig>
+#ifndef QT_NO_ACCESSIBILITY
+
+#include "qwindowsmsaaaccessible.h"
+#include "comutils.h"
+
+#include "Accessible2.h"
+#include "AccessibleAction.h"
+#include "AccessibleApplication.h"
+#include "AccessibleComponent.h"
+#include "AccessibleEditableText.h"
+#include "AccessibleHyperlink.h"
+#include "AccessibleHypertext.h"
+#include "AccessibleImage.h"
+#include "AccessibleRelation.h"
+#include "AccessibleTable.h"
+#include "AccessibleTable2.h"
+#include "AccessibleTableCell.h"
+#include "AccessibleText.h"
+#include "AccessibleValue.h"
+
+#include "AccessibleEventID.h"
+#include "AccessibleRole.h"
+#include "AccessibleStates.h"
+
+#ifdef Q_CC_MINGW
+# include <servprov.h>
+#endif
+
+QT_BEGIN_NAMESPACE
+
+class QWindowsIA2Accessible : public QWindowsMsaaAccessible,
+ public IAccessibleAction,
+ public IAccessibleComponent,
+ /*public IAccessibleEditableText,*/
+ public IAccessibleTable2,
+ public IAccessibleTableCell,
+ public IAccessibleText,
+ public IAccessibleValue,
+ public IServiceProvider
+{
+public:
+ QWindowsIA2Accessible(QAccessibleInterface *a) : QWindowsMsaaAccessible(a) {}
+
+ /* IUnknown */
+ HRESULT STDMETHODCALLTYPE QueryInterface(REFIID, LPVOID *);
+ ULONG STDMETHODCALLTYPE AddRef();
+ ULONG STDMETHODCALLTYPE Release();
+
+ /* IAccessible2 */
+ HRESULT STDMETHODCALLTYPE get_nRelations(long *nRelations);
+ HRESULT STDMETHODCALLTYPE get_relation(long relationIndex, IAccessibleRelation **relation);
+ HRESULT STDMETHODCALLTYPE get_relations(long maxRelations, IAccessibleRelation **relations, long *nRelations);
+ HRESULT STDMETHODCALLTYPE role(long *role);
+ HRESULT STDMETHODCALLTYPE scrollTo(enum IA2ScrollType scrollType);
+ HRESULT STDMETHODCALLTYPE scrollToPoint(enum IA2CoordinateType coordinateType, long x, long y);
+ HRESULT STDMETHODCALLTYPE get_groupPosition(long *groupLevel, long *similarItemsInGroup, long *positionInGroup);
+ HRESULT STDMETHODCALLTYPE get_states(AccessibleStates *states);
+ HRESULT STDMETHODCALLTYPE get_extendedRole(BSTR *extendedRole);
+ HRESULT STDMETHODCALLTYPE get_localizedExtendedRole(BSTR *localizedExtendedRole);
+ HRESULT STDMETHODCALLTYPE get_nExtendedStates(long *nExtendedStates);
+ HRESULT STDMETHODCALLTYPE get_extendedStates(long maxExtendedStates, BSTR **extendedStates, long *nExtendedStates);
+ HRESULT STDMETHODCALLTYPE get_localizedExtendedStates(long maxLocalizedExtendedStates, BSTR **localizedExtendedStates, long *nLocalizedExtendedStates);
+ HRESULT STDMETHODCALLTYPE get_uniqueID(long *uniqueID);
+ HRESULT STDMETHODCALLTYPE get_windowHandle(HWND *windowHandle);
+ HRESULT STDMETHODCALLTYPE get_indexInParent(long *indexInParent);
+ HRESULT STDMETHODCALLTYPE get_locale(IA2Locale *locale);
+ HRESULT STDMETHODCALLTYPE get_attributes(BSTR *attributes);
+
+ /* IAccessibleAction */
+ HRESULT STDMETHODCALLTYPE nActions(long *nActions);
+ HRESULT STDMETHODCALLTYPE doAction(long actionIndex);
+ HRESULT STDMETHODCALLTYPE get_description(long actionIndex, BSTR *description);
+ HRESULT STDMETHODCALLTYPE get_keyBinding(long actionIndex, long nMaxBindings, BSTR **keyBindings, long *nBindings);
+ HRESULT STDMETHODCALLTYPE get_name(long actionIndex, BSTR *name);
+ HRESULT STDMETHODCALLTYPE get_localizedName(long actionIndex, BSTR *localizedName);
+
+ /* IAccessibleComponent */
+ HRESULT STDMETHODCALLTYPE get_locationInParent(long *x,long *y);
+ HRESULT STDMETHODCALLTYPE get_foreground(IA2Color *foreground);
+ HRESULT STDMETHODCALLTYPE get_background(IA2Color *background);
+
+ /* IAccessibleEditableText */
+ /*
+ HRESULT STDMETHODCALLTYPE copyText(long startOffset, long endOffset);
+ HRESULT STDMETHODCALLTYPE deleteText(long startOffset, long endOffset);
+ HRESULT STDMETHODCALLTYPE insertText(long offset, BSTR *text);
+ HRESULT STDMETHODCALLTYPE cutText(long startOffset, long endOffset);
+ HRESULT STDMETHODCALLTYPE pasteText(long offset);
+ HRESULT STDMETHODCALLTYPE replaceText(long startOffset, long endOffset, BSTR *text);
+ HRESULT STDMETHODCALLTYPE setAttributes(long startOffset, long endOffset, BSTR *attributes);
+ */
+
+ /* IAccessibleTable2 */
+ HRESULT STDMETHODCALLTYPE get_cellAt( long row, long column, IUnknown **cell);
+ HRESULT STDMETHODCALLTYPE get_caption( IUnknown **accessible);
+ HRESULT STDMETHODCALLTYPE get_columnDescription( long column, BSTR *description);
+ HRESULT STDMETHODCALLTYPE get_nColumns( long *columnCount);
+ HRESULT STDMETHODCALLTYPE get_nRows( long *rowCount);
+ HRESULT STDMETHODCALLTYPE get_nSelectedCells( long *cellCount);
+ HRESULT STDMETHODCALLTYPE get_nSelectedColumns( long *columnCount);
+ HRESULT STDMETHODCALLTYPE get_nSelectedRows( long *rowCount);
+ HRESULT STDMETHODCALLTYPE get_rowDescription( long row, BSTR *description);
+ HRESULT STDMETHODCALLTYPE get_selectedCells( IUnknown ***cells, long *nSelectedCells);
+ HRESULT STDMETHODCALLTYPE get_selectedColumns( long **selectedColumns, long *nColumns);
+ HRESULT STDMETHODCALLTYPE get_selectedRows( long **selectedRows, long *nRows);
+ HRESULT STDMETHODCALLTYPE get_summary( IUnknown **accessible);
+ HRESULT STDMETHODCALLTYPE get_isColumnSelected( long column, boolean *isSelected);
+ HRESULT STDMETHODCALLTYPE get_isRowSelected( long row, boolean *isSelected);
+ HRESULT STDMETHODCALLTYPE selectRow( long row);
+ HRESULT STDMETHODCALLTYPE selectColumn( long column);
+ HRESULT STDMETHODCALLTYPE unselectRow( long row);
+ HRESULT STDMETHODCALLTYPE unselectColumn( long column);
+ HRESULT STDMETHODCALLTYPE get_modelChange( IA2TableModelChange *modelChange);
+
+ /* IAccessibleTableCell */
+ HRESULT STDMETHODCALLTYPE get_columnExtent(long *nColumnsSpanned);
+ HRESULT STDMETHODCALLTYPE get_columnHeaderCells(IUnknown ***cellAccessibles, long *nColumnHeaderCells);
+ HRESULT STDMETHODCALLTYPE get_columnIndex(long *columnIndex);
+ HRESULT STDMETHODCALLTYPE get_rowExtent(long *nRowsSpanned);
+ HRESULT STDMETHODCALLTYPE get_rowHeaderCells(IUnknown ***cellAccessibles, long *nRowHeaderCells);
+ HRESULT STDMETHODCALLTYPE get_rowIndex(long *rowIndex);
+ HRESULT STDMETHODCALLTYPE get_isSelected( boolean *isSelected);
+ HRESULT STDMETHODCALLTYPE get_rowColumnExtents(long *row, long *column,
+ long *rowExtents, long *columnExtents,
+ boolean *isSelected);
+ HRESULT STDMETHODCALLTYPE get_table(IUnknown **table);
+
+
+ /* IAccessibleText */
+ HRESULT STDMETHODCALLTYPE addSelection(long startOffset, long endOffset);
+ HRESULT STDMETHODCALLTYPE get_attributes(long offset, long *startOffset,
+ long *endOffset, BSTR *textAttributes);
+ HRESULT STDMETHODCALLTYPE get_caretOffset(long *offset);
+ HRESULT STDMETHODCALLTYPE get_characterExtents(long offset, enum IA2CoordinateType coordType,
+ long *x, long *y,
+ long *width, long *height);
+ HRESULT STDMETHODCALLTYPE get_nSelections(long *nSelections);
+ HRESULT STDMETHODCALLTYPE get_offsetAtPoint(long x, long y, enum IA2CoordinateType coordType, long *offset);
+ HRESULT STDMETHODCALLTYPE get_selection(long selectionIndex, long *startOffset, long *endOffset);
+ HRESULT STDMETHODCALLTYPE get_text(long startOffset, long endOffset, BSTR *text);
+ HRESULT STDMETHODCALLTYPE get_textBeforeOffset(long offset, enum IA2TextBoundaryType boundaryType,
+ long *startOffset, long *endOffset, BSTR *text);
+ HRESULT STDMETHODCALLTYPE get_textAfterOffset(long offset, enum IA2TextBoundaryType boundaryType,
+ long *startOffset, long *endOffset, BSTR *text);
+ HRESULT STDMETHODCALLTYPE get_textAtOffset(long offset, enum IA2TextBoundaryType boundaryType,
+ long *startOffset, long *endOffset, BSTR *text);
+ HRESULT STDMETHODCALLTYPE removeSelection(long selectionIndex);
+ HRESULT STDMETHODCALLTYPE setCaretOffset(long offset);
+ HRESULT STDMETHODCALLTYPE setSelection(long selectionIndex, long startOffset, long endOffset);
+ HRESULT STDMETHODCALLTYPE get_nCharacters(long *nCharacters);
+ HRESULT STDMETHODCALLTYPE scrollSubstringTo(long startIndex, long endIndex, enum IA2ScrollType scrollType);
+ HRESULT STDMETHODCALLTYPE scrollSubstringToPoint(long startIndex, long endIndex,
+ enum IA2CoordinateType coordinateType, long x, long y);
+ HRESULT STDMETHODCALLTYPE get_newText(IA2TextSegment *newText);
+ HRESULT STDMETHODCALLTYPE get_oldText(IA2TextSegment *oldText);
+
+ /* IAccessibleValue */
+ HRESULT STDMETHODCALLTYPE get_currentValue(VARIANT *currentValue);
+ HRESULT STDMETHODCALLTYPE setCurrentValue(VARIANT value);
+ HRESULT STDMETHODCALLTYPE get_maximumValue(VARIANT *maximumValue);
+ HRESULT STDMETHODCALLTYPE get_minimumValue(VARIANT *minimumValue);
+
+ /* IServiceProvider */
+ HRESULT STDMETHODCALLTYPE QueryService(REFGUID guidService, REFIID riid, void **ppv);
+
+ /* private helper functions */
+private:
+ inline QAccessibleTextInterface *textInterface() const {
+ return accessible->isValid() ? accessible->textInterface() : static_cast<QAccessibleTextInterface *>(0);
+ }
+
+ inline QAccessibleActionInterface *actionInterface() const {
+ return accessible->actionInterface();
+ }
+
+ inline QAccessibleValueInterface *valueInterface() const {
+ return accessible->valueInterface();
+ }
+
+ inline QAccessibleTableInterface *tableInterface() const {
+ return accessible->tableInterface();
+ }
+
+ inline QAccessibleTableCellInterface *tableCellInterface() const {
+ return accessible->tableCellInterface();
+ }
+
+ HRESULT getRelationsHelper(IAccessibleRelation **relations, int startIndex, long maxRelations, long *nRelations = 0);
+ HRESULT wrapListOfCells(const QList<QAccessibleInterface*> &inputCells, IUnknown ***outputAccessibles, long *nCellCount);
+ uint uniqueID() const;
+ QByteArray IIDToString(REFIID id);
+
+private:
+ ULONG ref;
+
+};
+
+/**************************************************************\
+ * AccessibleApplication *
+ **************************************************************/
+class AccessibleApplication : public IAccessibleApplication
+{
+public:
+ AccessibleApplication() : m_ref(1)
+ {
+
+ }
+
+ virtual ~AccessibleApplication() {}
+
+ /* IUnknown */
+ HRESULT STDMETHODCALLTYPE QueryInterface(REFIID, LPVOID *);
+ ULONG STDMETHODCALLTYPE AddRef();
+ ULONG STDMETHODCALLTYPE Release();
+
+ /* IAccessibleApplication */
+ HRESULT STDMETHODCALLTYPE get_appName(/* [retval][out] */ BSTR *name);
+ HRESULT STDMETHODCALLTYPE get_appVersion(/* [retval][out] */ BSTR *version);
+ HRESULT STDMETHODCALLTYPE get_toolkitName(/* [retval][out] */ BSTR *name);
+ HRESULT STDMETHODCALLTYPE get_toolkitVersion(/* [retval][out] */ BSTR *version);
+private:
+ ULONG m_ref;
+};
+
+
+
+/**************************************************************\
+ * IAccessibleRelation *
+ **************************************************************/
+struct AccessibleRelation : public IAccessibleRelation
+{
+ AccessibleRelation(const QList<QAccessibleInterface *> &targets,
+ QAccessible::Relation relation)
+ : m_targets(targets), m_relation(relation), m_ref(1)
+ {
+ Q_ASSERT(m_targets.count());
+ }
+
+
+ /* IUnknown */
+ HRESULT STDMETHODCALLTYPE QueryInterface(REFIID id, LPVOID *iface)
+ {
+ *iface = 0;
+ if (id == IID_IUnknown)
+ *iface = (IUnknown*)this;
+
+ if (*iface) {
+ AddRef();
+ return S_OK;
+ }
+
+ return E_NOINTERFACE;
+ }
+
+ ULONG STDMETHODCALLTYPE AddRef()
+ {
+ return ++m_ref;
+ }
+
+ ULONG STDMETHODCALLTYPE Release()
+ {
+ if (!--m_ref) {
+ delete this;
+ return 0;
+ }
+ return m_ref;
+ }
+
+ /* IAccessibleRelation */
+ HRESULT STDMETHODCALLTYPE get_relationType(
+ /* [retval][out] */ BSTR *relationType)
+ {
+ *relationType = relationToBSTR(m_relation);
+ return S_OK;
+ }
+
+ HRESULT STDMETHODCALLTYPE get_localizedRelationType(
+ /* [retval][out] */ BSTR *localizedRelationType)
+ {
+ // Who ever needs this???
+ *localizedRelationType = relationToBSTR(m_relation);
+ return S_OK;
+ }
+
+ HRESULT STDMETHODCALLTYPE get_nTargets(
+ /* [retval][out] */ long *nTargets)
+ {
+ // ### always one target
+ *nTargets = m_targets.count();
+ return S_OK;
+ }
+
+ HRESULT STDMETHODCALLTYPE get_target(long targetIndex, IUnknown **target);
+
+
+ /*!
+ \internal
+ Client allocates and deallocates \a targets array
+ (see "Special Consideration when using Arrays", in Accessible2.idl)
+ */
+ HRESULT STDMETHODCALLTYPE get_targets(
+ /* [in] */ long maxTargets, // Hmmm, ignore ???
+ /* [length_is][size_is][out] */ IUnknown **targets,
+ /* [retval][out] */ long *nTargets);
+
+private:
+ static BSTR relationToBSTR(QAccessible::Relation relation)
+ {
+ wchar_t *constRelationString = 0;
+ switch (relation) {
+ case QAccessible::Controlled:
+ constRelationString = IA2_RELATION_CONTROLLED_BY;
+ break;
+ }
+
+ if (constRelationString) {
+ BSTR bstrVal;
+ const UINT wlen = (UINT)wcslen(constRelationString);
+ bstrVal = ::SysAllocStringLen(constRelationString, wlen);
+ return bstrVal;
+ }
+ return 0;
+ }
+
+
+ QList<QAccessibleInterface *> m_targets;
+ QAccessible::Relation m_relation;
+ ULONG m_ref;
+};
+
+QT_END_NAMESPACE
+
+#endif //QT_NO_ACCESSIBILITY
+
+#endif // IACCESSIBLE2_H
diff --git a/src/plugins/platforms/windows/accessible/qwindowsaccessibility.cpp b/src/plugins/platforms/windows/accessible/qwindowsaccessibility.cpp
new file mode 100644
index 0000000000..4f92b910b2
--- /dev/null
+++ b/src/plugins/platforms/windows/accessible/qwindowsaccessibility.cpp
@@ -0,0 +1,319 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this
+** file. Please review the following information to ensure the GNU Lesser
+** General Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtCore/QtConfig>
+#ifndef QT_NO_ACCESSIBILITY
+
+
+#include <private/qsystemlibrary_p.h>
+
+#include <QtCore/qlocale.h>
+#include <QtCore/qmap.h>
+#include <QtCore/qpair.h>
+#include <QtCore/qsettings.h>
+#include <QtGui/qaccessible.h>
+#include <QtGui/qaccessible2.h>
+#include <QtGui/qplatformnativeinterface_qpa.h>
+#include <QtGui/qwindow.h>
+#include <QtGui/qguiapplication.h>
+
+#include "qwindowsaccessibility.h"
+
+#ifndef Q_CC_MINGW
+# include "iaccessible2.h"
+#endif // !Q_CC_MINGW
+
+#include "comutils.h"
+
+#include <oleacc.h>
+
+//#include <uiautomationcoreapi.h>
+#ifndef UiaRootObjectId
+#define UiaRootObjectId -25
+#endif
+
+#include <winuser.h>
+#if !defined(WINABLEAPI)
+# if defined(Q_OS_WINCE)
+# include <bldver.h>
+# endif
+# include <winable.h>
+#endif
+
+#include <oleacc.h>
+#include <servprov.h>
+#if !defined(Q_CC_BOR) && !defined (Q_CC_GNU)
+#include <comdef.h>
+#endif
+
+#ifdef Q_OS_WINCE
+#include "../qguifunctions_wince.h"
+#endif
+
+#include "../qtwindows_additional.h"
+
+
+// This stuff is used for widgets/items with no window handle:
+typedef QMap<int, QPair<QObject*,int> > NotifyMap;
+Q_GLOBAL_STATIC(NotifyMap, qAccessibleRecentSentEvents)
+
+
+QT_BEGIN_NAMESPACE
+
+
+/*!
+ \!internal
+ \class QWindowsAccessibility
+
+ Implements QPlatformAccessibility
+
+*/
+QWindowsAccessibility::QWindowsAccessibility()
+{
+}
+
+void QWindowsAccessibility::notifyAccessibilityUpdate(const QAccessibleEvent &event)
+{
+ QString soundName;
+ switch (event.type()) {
+ case QAccessible::PopupMenuStart:
+ soundName = QLatin1String("MenuPopup");
+ break;
+
+ case QAccessible::MenuCommand:
+ soundName = QLatin1String("MenuCommand");
+ break;
+
+ case QAccessible::Alert:
+ {
+ /* ### FIXME
+#ifndef QT_NO_MESSAGEBOX
+ QMessageBox *mb = qobject_cast<QMessageBox*>(o);
+ if (mb) {
+ switch (mb->icon()) {
+ case QMessageBox::Warning:
+ soundName = QLatin1String("SystemExclamation");
+ break;
+ case QMessageBox::Critical:
+ soundName = QLatin1String("SystemHand");
+ break;
+ case QMessageBox::Information:
+ soundName = QLatin1String("SystemAsterisk");
+ break;
+ default:
+ break;
+ }
+ } else
+#endif // QT_NO_MESSAGEBOX
+*/
+ {
+ soundName = QLatin1String("SystemAsterisk");
+ }
+
+ }
+ break;
+ default:
+ break;
+ }
+
+ if (!soundName.isEmpty()) {
+#ifndef QT_NO_SETTINGS
+ QSettings settings(QLatin1String("HKEY_CURRENT_USER\\AppEvents\\Schemes\\Apps\\.Default\\") + soundName,
+ QSettings::NativeFormat);
+ QString file = settings.value(QLatin1String(".Current/.")).toString();
+#else
+ QString file;
+#endif
+ if (!file.isEmpty()) {
+ PlaySound(reinterpret_cast<const wchar_t *>(soundName.utf16()), 0, SND_ALIAS | SND_ASYNC | SND_NODEFAULT | SND_NOWAIT);
+ }
+ }
+
+ typedef void (WINAPI *PtrNotifyWinEvent)(DWORD, HWND, LONG, LONG);
+
+#if defined(Q_OS_WINCE) // ### TODO: check for NotifyWinEvent in CE 6.0
+ // There is no user32.lib nor NotifyWinEvent for CE
+ return;
+#else
+ static PtrNotifyWinEvent ptrNotifyWinEvent = 0;
+ static bool resolvedNWE = false;
+ if (!resolvedNWE) {
+ resolvedNWE = true;
+ ptrNotifyWinEvent = (PtrNotifyWinEvent)QSystemLibrary::resolve(QLatin1String("user32"), "NotifyWinEvent");
+ }
+ if (!ptrNotifyWinEvent)
+ return;
+
+ // An event has to be associated with a window,
+ // so find the first parent that is a widget and that has a WId
+ QAccessibleInterface *iface = event.accessibleInterface();
+ QWindow *window = iface ? QWindowsAccessibility::windowHelper(iface) : 0;
+ delete iface;
+
+ if (!window) {
+ window = QGuiApplication::activeWindow();
+ if (!window)
+ return;
+ }
+
+ QPlatformNativeInterface *platform = QGuiApplication::platformNativeInterface();
+ HWND hWnd = (HWND)platform->nativeResourceForWindow("handle", window);
+
+ static int eventNum = 0;
+ if (event.type() != QAccessible::MenuCommand) { // MenuCommand is faked
+ // See comment "SENDING EVENTS TO OBJECTS WITH NO WINDOW HANDLE"
+ eventNum %= 50; //[0..49]
+ int eventId = - (eventNum - 1);
+
+ qAccessibleRecentSentEvents()->insert(eventId, qMakePair(event.object(), event.child()));
+ ptrNotifyWinEvent(event.type(), hWnd, OBJID_CLIENT, eventId );
+
+ ++eventNum;
+ }
+#endif // Q_OS_WINCE
+}
+
+QWindow *QWindowsAccessibility::windowHelper(const QAccessibleInterface *iface)
+{
+ QWindow *window = iface->window();
+ if (!window) {
+ QAccessibleInterface *acc = iface->parent();
+ while (acc && !window) {
+ window = acc->window();
+ QAccessibleInterface *par = acc->parent();
+ delete acc;
+ acc = par;
+ }
+ }
+ return window;
+}
+
+/*!
+ \internal
+ helper to wrap a QAccessibleInterface inside a IAccessible*
+*/
+IAccessible *QWindowsAccessibility::wrap(QAccessibleInterface *acc)
+{
+#ifdef Q_CC_MINGW
+ return 0;
+#else
+ if (!acc)
+ return 0;
+ QWindowsIA2Accessible *wacc = new QWindowsIA2Accessible(acc);
+ IAccessible *iacc = 0;
+ wacc->QueryInterface(IID_IAccessible, (void**)&iacc);
+ return iacc;
+#endif
+}
+
+/*!
+ \internal
+*/
+QPair<QObject*, int> QWindowsAccessibility::getCachedObject(int entryId)
+{
+ return qAccessibleRecentSentEvents()->value(entryId);
+}
+
+/*
+void QWindowsAccessibility::setRootObject(QObject *o)
+{
+
+}
+
+void QWindowsAccessibility::initialize()
+{
+
+}
+
+void QWindowsAccessibility::cleanup()
+{
+
+}
+
+*/
+
+bool QWindowsAccessibility::handleAccessibleObjectFromWindowRequest(HWND hwnd, WPARAM wParam, LPARAM lParam, LRESULT *lResult)
+{
+ if (static_cast<long>(lParam) == static_cast<long>(UiaRootObjectId)) {
+ /* For UI Automation */
+ } else if ((DWORD)lParam == OBJID_CLIENT) {
+#if 1
+ // Ignoring all requests while starting up
+ // ### Maybe QPA takes care of this???
+ if (QCoreApplication::startingUp() || QCoreApplication::closingDown())
+ return false;
+#endif
+
+ typedef LRESULT (WINAPI *PtrLresultFromObject)(REFIID, WPARAM, LPUNKNOWN);
+ static PtrLresultFromObject ptrLresultFromObject = 0;
+ static bool oleaccChecked = false;
+
+ if (!oleaccChecked) {
+ oleaccChecked = true;
+#if !defined(Q_OS_WINCE)
+ ptrLresultFromObject = (PtrLresultFromObject)QSystemLibrary::resolve(QLatin1String("oleacc"), "LresultFromObject");
+#endif
+ }
+
+ if (ptrLresultFromObject) {
+ QWindow *window = QWindowsContext::instance()->findWindow(hwnd);
+ if (window) {
+ QAccessibleInterface *acc = window->accessibleRoot();
+ if (acc) {
+ if (IAccessible *iface = wrap(acc)) {
+ *lResult = ptrLresultFromObject(IID_IAccessible, wParam, iface); // ref == 2
+ if (*lResult) {
+ iface->Release(); // the client will release the object again, and then it will destroy itself
+ }
+ return true;
+ } else {
+ delete acc;
+ }
+ }
+ }
+ }
+ }
+ return false;
+}
+
+QT_END_NAMESPACE
+
+#endif //QT_NO_ACCESSIBILITY
diff --git a/src/plugins/platforms/windows/qwindowsaccessibility.h b/src/plugins/platforms/windows/accessible/qwindowsaccessibility.h
index 9294f23565..0c3aca0a03 100644
--- a/src/plugins/platforms/windows/qwindowsaccessibility.h
+++ b/src/plugins/platforms/windows/accessible/qwindowsaccessibility.h
@@ -42,9 +42,12 @@
#ifndef QWINDOWSACCESSIBILITY_H
#define QWINDOWSACCESSIBILITY_H
-#include "qtwindowsglobal.h"
+#include "../qtwindowsglobal.h"
+#include "../qwindowscontext.h"
#include <QtGui/QPlatformAccessibility>
+#include <oleacc.h>
+
QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
@@ -59,6 +62,10 @@ public:
virtual void initialize();
virtual void cleanup();
*/
+ static IAccessible *wrap(QAccessibleInterface *acc);
+ static QWindow *windowHelper(const QAccessibleInterface *iface);
+
+ static QPair<QObject*, int> getCachedObject(int entryId);
};
QT_END_NAMESPACE
diff --git a/src/plugins/platforms/windows/qwindowsaccessibility.cpp b/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.cpp
index 134b1c81ce..8791bbdcfb 100644
--- a/src/plugins/platforms/windows/qwindowsaccessibility.cpp
+++ b/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.cpp
@@ -42,104 +42,44 @@
#include <QtCore/QtConfig>
#ifndef QT_NO_ACCESSIBILITY
-
+#include "qwindowsmsaaaccessible.h"
#include "qwindowsaccessibility.h"
-#include "qwindowscontext.h"
-
-#include <private/qsystemlibrary_p.h>
+#include <oleacc.h>
+#include <servprov.h>
+#include <winuser.h>
+#include "comutils.h"
+#include <QtCore/qdebug.h>
#include <QtCore/qmap.h>
-#include <QtCore/qsettings.h>
-#include <QtCore/qsharedpointer.h>
#include <QtCore/qpair.h>
-#include <QtWidgets/qapplication.h>
-#include <QtWidgets/qmessagebox.h>
-#include <QtWidgets/qgraphicsitem.h>
-#include <QtWidgets/qgraphicsview.h>
+#include <QtCore/qsettings.h>
#include <QtGui/qaccessible.h>
+#include <QtGui/qaccessible2.h>
+#include <QtGui/qguiapplication.h>
#include <QtGui/qplatformnativeinterface_qpa.h>
#include <QtGui/qwindow.h>
-#include <QtGui/qaccessible2.h>
-#include <oleacc.h>
+#include <QtWidgets/qapplication.h>
+#include <QtWidgets/qgraphicsitem.h>
+#include <QtWidgets/qgraphicsview.h>
+#include <QtWidgets/qmessagebox.h>
//#include <uiautomationcoreapi.h>
#ifndef UiaRootObjectId
#define UiaRootObjectId -25
#endif
-#include <winuser.h>
-#if !defined(WINABLEAPI)
-# if defined(Q_OS_WINCE)
-# include <bldver.h>
-# endif
-# include <winable.h>
-#endif
-
-#include <oleacc.h>
#if !defined(Q_CC_BOR) && !defined (Q_CC_GNU)
#include <comdef.h>
#endif
#ifdef Q_OS_WINCE
-#include "qguifunctions_wince.h"
+#include "../qguifunctions_wince.h"
#endif
-#include "qtwindows_additional.h"
-
-QT_BEGIN_NAMESPACE
-
-#ifndef QT_NO_DEBUG
-QT_BEGIN_INCLUDE_NAMESPACE
-# include <qdebug.h>
-QT_END_INCLUDE_NAMESPACE
-static inline bool debug_accessibility()
-{
- static signed int debugging = -1;
- if (debugging == -1)
- debugging = qgetenv("QT_DEBUG_ACCESSIBILITY").toInt();
- return !!debugging;
-}
-# define accessibleDebug !debug_accessibility() ? (void)0 : qDebug
-#else
-# define accessibleDebug()
-#endif
-
-//#define DEBUG_SHOW_ATCLIENT_COMMANDS
-#if defined(DEBUG_SHOW_ATCLIENT_COMMANDS)
-void accessibleDebugClientCalls_helper(const char* funcName, const QAccessibleInterface *iface)
-{
- QString str;
- QDebug dbg(&str);
- dbg << iface << QLatin1String(funcName);
- accessibleDebug("%s", qPrintable(str));
-}
-# define accessibleDebugClientCalls(iface) accessibleDebugClientCalls_helper(Q_FUNC_INFO, iface)
-#else
-# define accessibleDebugClientCalls(iface)
-#endif
-
-
-typedef QSharedPointer<QAccessibleInterface> QAIPointer;
-
-static bool compareAccessible(QAccessibleInterface *one, QAccessibleInterface *other)
-{
- if (one == other) return true;
- if (!one || !other) return false;
-
- if (one->object() && other->object() && (one->object() == other->object()))
- return true;
- QAIPointer onePar(one->parent());
- QAIPointer otherPar(other->parent());
+#include "../qtwindows_additional.h"
- if (compareAccessible(onePar.data(), otherPar.data()))
- return onePar->indexOfChild(one) == otherPar->indexOfChild(other);
- return false;
-}
-// This stuff is used for widgets/items with no window handle:
-typedef QMap<int, QPair<QObject*,int> > NotifyMap;
-Q_GLOBAL_STATIC(NotifyMap, qAccessibleRecentSentEvents)
-static int eventNum = 0;
+QT_BEGIN_NAMESPACE
class QWindowsEnumerate : public IEnumVARIANT
{
@@ -249,140 +189,60 @@ HRESULT STDMETHODCALLTYPE QWindowsEnumerate::Skip(unsigned long celt)
return S_OK;
}
-/*
-*/
-class QWindowsAccessible : public IAccessible, IOleWindow
-{
-public:
- QWindowsAccessible(QAccessibleInterface *a)
- : ref(0), accessible(a)
- {
- }
-
- virtual ~QWindowsAccessible()
- {
- delete accessible;
- }
-
- /* IUnknown */
- HRESULT STDMETHODCALLTYPE QueryInterface(REFIID, LPVOID *);
- ULONG STDMETHODCALLTYPE AddRef();
- ULONG STDMETHODCALLTYPE Release();
-
- /* IDispatch */
- HRESULT STDMETHODCALLTYPE GetTypeInfoCount(unsigned int *);
- HRESULT STDMETHODCALLTYPE GetTypeInfo(unsigned int, unsigned long, ITypeInfo **);
- HRESULT STDMETHODCALLTYPE GetIDsOfNames(const _GUID &, wchar_t **, unsigned int, unsigned long, long *);
- HRESULT STDMETHODCALLTYPE Invoke(long, const _GUID &, unsigned long, unsigned short, tagDISPPARAMS *, tagVARIANT *, tagEXCEPINFO *, unsigned int *);
-
- /* IAccessible */
- HRESULT STDMETHODCALLTYPE accHitTest(long xLeft, long yTop, VARIANT *pvarID);
- HRESULT STDMETHODCALLTYPE accLocation(long *pxLeft, long *pyTop, long *pcxWidth, long *pcyHeight, VARIANT varID);
- HRESULT STDMETHODCALLTYPE accNavigate(long navDir, VARIANT varStart, VARIANT *pvarEnd);
- HRESULT STDMETHODCALLTYPE get_accChild(VARIANT varChildID, IDispatch** ppdispChild);
- HRESULT STDMETHODCALLTYPE get_accChildCount(long* pcountChildren);
- HRESULT STDMETHODCALLTYPE get_accParent(IDispatch** ppdispParent);
-
- HRESULT STDMETHODCALLTYPE accDoDefaultAction(VARIANT varID);
- HRESULT STDMETHODCALLTYPE get_accDefaultAction(VARIANT varID, BSTR* pszDefaultAction);
- HRESULT STDMETHODCALLTYPE get_accDescription(VARIANT varID, BSTR* pszDescription);
- HRESULT STDMETHODCALLTYPE get_accHelp(VARIANT varID, BSTR *pszHelp);
- HRESULT STDMETHODCALLTYPE get_accHelpTopic(BSTR *pszHelpFile, VARIANT varChild, long *pidTopic);
- HRESULT STDMETHODCALLTYPE get_accKeyboardShortcut(VARIANT varID, BSTR *pszKeyboardShortcut);
- HRESULT STDMETHODCALLTYPE get_accName(VARIANT varID, BSTR* pszName);
- HRESULT STDMETHODCALLTYPE put_accName(VARIANT varChild, BSTR szName);
- HRESULT STDMETHODCALLTYPE get_accRole(VARIANT varID, VARIANT *pvarRole);
- HRESULT STDMETHODCALLTYPE get_accState(VARIANT varID, VARIANT *pvarState);
- HRESULT STDMETHODCALLTYPE get_accValue(VARIANT varID, BSTR* pszValue);
- HRESULT STDMETHODCALLTYPE put_accValue(VARIANT varChild, BSTR szValue);
-
- HRESULT STDMETHODCALLTYPE accSelect(long flagsSelect, VARIANT varID);
- HRESULT STDMETHODCALLTYPE get_accFocus(VARIANT *pvarID);
- HRESULT STDMETHODCALLTYPE get_accSelection(VARIANT *pvarChildren);
-
- /* IOleWindow */
- HRESULT STDMETHODCALLTYPE GetWindow(HWND *phwnd);
- HRESULT STDMETHODCALLTYPE ContextSensitiveHelp(BOOL fEnterMode);
-
-private:
- ULONG ref;
- QAccessibleInterface *accessible;
-
- QAIPointer childPointer(VARIANT varID)
- {
- return QAIPointer(accessible->child(varID.lVal - 1));
- }
-};
-
-static inline BSTR QStringToBSTR(const QString &str)
+static bool compareAccessible(QAccessibleInterface *one, QAccessibleInterface *other)
{
- BSTR bstrVal;
-
- int wlen = str.length()+1;
- bstrVal = SysAllocStringByteLen(0, wlen*2);
- memcpy(bstrVal, str.unicode(), sizeof(QChar)*(wlen));
- bstrVal[wlen] = 0;
-
- return bstrVal;
-}
-
-/*
-*/
+ if (one == other) return true;
+ if (!one || !other) return false;
-/*
- IUnknown
-*/
-HRESULT STDMETHODCALLTYPE QWindowsAccessible::QueryInterface(REFIID id, LPVOID *iface)
-{
- *iface = 0;
- if (id == IID_IUnknown)
- *iface = (IUnknown*)(IDispatch*)this;
- else if (id == IID_IDispatch)
- *iface = (IDispatch*)this;
- else if (id == IID_IAccessible)
- *iface = (IAccessible*)this;
- else if (id == IID_IOleWindow)
- *iface = (IOleWindow*)this;
- else
- return E_NOINTERFACE;
+ if (one->object() && other->object() && (one->object() == other->object()))
+ return true;
+ QAIPointer onePar(one->parent());
+ QAIPointer otherPar(other->parent());
- AddRef();
- return S_OK;
+ if (compareAccessible(onePar.data(), otherPar.data()))
+ return onePar->indexOfChild(one) == otherPar->indexOfChild(other);
+ return false;
}
-ULONG STDMETHODCALLTYPE QWindowsAccessible::AddRef()
+#ifndef QT_NO_DEBUG
+bool debug_accessibility()
{
- return ++ref;
+ static int debugging = -1;
+ if (debugging == -1)
+ debugging = qgetenv("QT_DEBUG_ACCESSIBILITY").toInt();
+ return !!debugging;
}
+#endif
-ULONG STDMETHODCALLTYPE QWindowsAccessible::Release()
+#if defined(DEBUG_SHOW_ATCLIENT_COMMANDS)
+void accessibleDebugClientCalls_helper(const char* funcName, const QAccessibleInterface *iface)
{
- if (!--ref) {
- delete this;
- return 0;
- }
- return ref;
+ QString str;
+ QDebug dbg(&str);
+ dbg << iface << QLatin1String(funcName);
+ accessibleDebug("%s", qPrintable(str));
}
+#endif
/*
IDispatch
*/
-HRESULT STDMETHODCALLTYPE QWindowsAccessible::GetTypeInfoCount(unsigned int * pctinfo)
+HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::GetTypeInfoCount(unsigned int * pctinfo)
{
// We don't use a type library
*pctinfo = 0;
return S_OK;
}
-HRESULT STDMETHODCALLTYPE QWindowsAccessible::GetTypeInfo(unsigned int, unsigned long, ITypeInfo **pptinfo)
+HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::GetTypeInfo(unsigned int, unsigned long, ITypeInfo **pptinfo)
{
// We don't use a type library
*pptinfo = 0;
return S_OK;
}
-HRESULT STDMETHODCALLTYPE QWindowsAccessible::GetIDsOfNames(const _GUID &, wchar_t **rgszNames, unsigned int, unsigned long, long *rgdispid)
+HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::GetIDsOfNames(const _GUID &, wchar_t **rgszNames, unsigned int, unsigned long, long *rgdispid)
{
#if !defined(Q_CC_BOR) && !defined(Q_CC_GNU)
// PROPERTIES: Hierarchical
@@ -440,7 +300,13 @@ HRESULT STDMETHODCALLTYPE QWindowsAccessible::GetIDsOfNames(const _GUID &, wchar
#endif
}
-HRESULT STDMETHODCALLTYPE QWindowsAccessible::Invoke(long dispIdMember, const _GUID &, unsigned long, unsigned short wFlags, tagDISPPARAMS *pDispParams, tagVARIANT *pVarResult, tagEXCEPINFO *, unsigned int *)
+HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::Invoke(long dispIdMember,
+ const _GUID &,
+ unsigned long,
+ unsigned short wFlags,
+ tagDISPPARAMS *pDispParams,
+ tagVARIANT *pVarResult,
+ tagEXCEPINFO *, unsigned int *)
{
HRESULT hr = DISP_E_MEMBERNOTFOUND;
@@ -621,9 +487,8 @@ IAccessible::accHitTest documents the value returned in pvarID like this:
| | | interface pointer |
+--------------------------------------------------------+-------------+-------------------------+
*/
-HRESULT STDMETHODCALLTYPE QWindowsAccessible::accHitTest(long xLeft, long yTop, VARIANT *pvarID)
+HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::accHitTest(long xLeft, long yTop, VARIANT *pvarID)
{
-
accessibleDebugClientCalls(accessible);
if (!accessible->isValid())
return E_FAIL;
@@ -637,9 +502,7 @@ HRESULT STDMETHODCALLTYPE QWindowsAccessible::accHitTest(long xLeft, long yTop,
return S_OK;
}
} else {
- QWindowsAccessible* wacc = new QWindowsAccessible(child);
- IDispatch *iface = 0;
- wacc->QueryInterface(IID_IDispatch, (void**)&iface);
+ IAccessible *iface = QWindowsAccessibility::wrap(child);
if (iface) {
(*pvarID).vt = VT_DISPATCH;
(*pvarID).pdispVal = iface;
@@ -662,7 +525,7 @@ HRESULT STDMETHODCALLTYPE QWindowsAccessible::accHitTest(long xLeft, long yTop,
can be ignored. All stuff prefixed with "moz" are information from that page.
*/
// moz: [important]
-HRESULT STDMETHODCALLTYPE QWindowsAccessible::accLocation(long *pxLeft, long *pyTop, long *pcxWidth, long *pcyHeight, VARIANT varID)
+HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::accLocation(long *pxLeft, long *pyTop, long *pcxWidth, long *pcyHeight, VARIANT varID)
{
accessibleDebugClientCalls(accessible);
if (!accessible->isValid())
@@ -686,7 +549,7 @@ HRESULT STDMETHODCALLTYPE QWindowsAccessible::accLocation(long *pxLeft, long *py
}
// moz: [important, but no need to implement up/down/left/right]
-HRESULT STDMETHODCALLTYPE QWindowsAccessible::accNavigate(long navDir, VARIANT varStart, VARIANT *pvarEnd)
+HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::accNavigate(long navDir, VARIANT varStart, VARIANT *pvarEnd)
{
accessibleDebugClientCalls(accessible);
if (!accessible->isValid())
@@ -809,16 +672,14 @@ HRESULT STDMETHODCALLTYPE QWindowsAccessible::accNavigate(long navDir, VARIANT v
(*pvarEnd).vt = VT_EMPTY;
return S_FALSE;
}
- QWindowsAccessible* wacc = new QWindowsAccessible(acc);
- IDispatch *iface = 0;
- wacc->QueryInterface(IID_IDispatch, (void**)&iface);
- if (iface) {
+ if (IAccessible *iface = QWindowsAccessibility::wrap(acc)) {
(*pvarEnd).vt = VT_DISPATCH;
(*pvarEnd).pdispVal = iface;
return S_OK;
} else {
- delete wacc;
+ if (acc != accessible)
+ delete acc;
}
(*pvarEnd).vt = VT_EMPTY;
@@ -826,13 +687,13 @@ HRESULT STDMETHODCALLTYPE QWindowsAccessible::accNavigate(long navDir, VARIANT v
}
// moz: [important]
-HRESULT STDMETHODCALLTYPE QWindowsAccessible::get_accChild(VARIANT varChildID, IDispatch** ppdispChild)
+HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::get_accChild(VARIANT varChildID, IDispatch** ppdispChild)
{
accessibleDebugClientCalls(accessible);
if (!accessible->isValid())
return E_FAIL;
- if (varChildID.vt == VT_EMPTY)
+ if (varChildID.vt != VT_I4)
return E_INVALIDARG;
@@ -841,7 +702,7 @@ HRESULT STDMETHODCALLTYPE QWindowsAccessible::get_accChild(VARIANT varChildID, I
if (childIndex < 0) {
const int entry = childIndex;
- QPair<QObject*, int> ref = qAccessibleRecentSentEvents()->value(entry);
+ QPair<QObject*, int> ref = QWindowsAccessibility::getCachedObject(entry);
if (ref.first) {
acc = QAccessible::queryAccessibleInterface(ref.first);
if (acc && ref.second >= 0) {
@@ -851,6 +712,8 @@ HRESULT STDMETHODCALLTYPE QWindowsAccessible::get_accChild(VARIANT varChildID, I
return E_INVALIDARG;
acc = res;
}
+ } else {
+ qWarning("get_accChild got a negative varChildID, but did not find it in cache");
}
} else {
if (childIndex) {
@@ -868,17 +731,15 @@ HRESULT STDMETHODCALLTYPE QWindowsAccessible::get_accChild(VARIANT varChildID, I
}
if (acc) {
- QWindowsAccessible* wacc = new QWindowsAccessible(acc);
- wacc->QueryInterface(IID_IDispatch, (void**)ppdispChild);
+ *ppdispChild = QWindowsAccessibility::wrap(acc);
return S_OK;
}
- *ppdispChild = 0;
- return S_FALSE;
+ return E_FAIL;
}
// moz: [important]
-HRESULT STDMETHODCALLTYPE QWindowsAccessible::get_accChildCount(long* pcountChildren)
+HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::get_accChildCount(long* pcountChildren)
{
accessibleDebugClientCalls(accessible);
if (!accessible->isValid())
@@ -889,7 +750,7 @@ HRESULT STDMETHODCALLTYPE QWindowsAccessible::get_accChildCount(long* pcountChil
}
// moz: [important]
-HRESULT STDMETHODCALLTYPE QWindowsAccessible::get_accParent(IDispatch** ppdispParent)
+HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::get_accParent(IDispatch** ppdispParent)
{
accessibleDebugClientCalls(accessible);
if (!accessible->isValid())
@@ -897,11 +758,12 @@ HRESULT STDMETHODCALLTYPE QWindowsAccessible::get_accParent(IDispatch** ppdispPa
QAccessibleInterface *acc = accessible->parent();
if (acc) {
- QWindowsAccessible* wacc = new QWindowsAccessible(acc);
- wacc->QueryInterface(IID_IDispatch, (void**)ppdispParent);
-
- if (*ppdispParent)
+ if (IAccessible *iface = QWindowsAccessibility::wrap(acc)) {
+ *ppdispParent = iface;
return S_OK;
+ } else {
+ delete acc;
+ }
}
*ppdispParent = 0;
@@ -911,7 +773,7 @@ HRESULT STDMETHODCALLTYPE QWindowsAccessible::get_accParent(IDispatch** ppdispPa
/*
Properties and methods
*/
-HRESULT STDMETHODCALLTYPE QWindowsAccessible::accDoDefaultAction(VARIANT varID)
+HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::accDoDefaultAction(VARIANT varID)
{
Q_UNUSED(varID);
accessibleDebugClientCalls(accessible);
@@ -928,7 +790,7 @@ HRESULT STDMETHODCALLTYPE QWindowsAccessible::accDoDefaultAction(VARIANT varID)
return S_FALSE;
}
-HRESULT STDMETHODCALLTYPE QWindowsAccessible::get_accDefaultAction(VARIANT varID, BSTR* pszDefaultAction)
+HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::get_accDefaultAction(VARIANT varID, BSTR* pszDefaultAction)
{
Q_UNUSED(varID);
accessibleDebugClientCalls(accessible);
@@ -944,7 +806,7 @@ HRESULT STDMETHODCALLTYPE QWindowsAccessible::get_accDefaultAction(VARIANT varID
return *pszDefaultAction ? S_OK : S_FALSE;
}
-HRESULT STDMETHODCALLTYPE QWindowsAccessible::get_accDescription(VARIANT varID, BSTR* pszDescription)
+HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::get_accDescription(VARIANT varID, BSTR* pszDescription)
{
accessibleDebugClientCalls(accessible);
if (!accessible->isValid())
@@ -969,7 +831,7 @@ HRESULT STDMETHODCALLTYPE QWindowsAccessible::get_accDescription(VARIANT varID,
return S_FALSE;
}
-HRESULT STDMETHODCALLTYPE QWindowsAccessible::get_accHelp(VARIANT varID, BSTR *pszHelp)
+HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::get_accHelp(VARIANT varID, BSTR *pszHelp)
{
accessibleDebugClientCalls(accessible);
if (!accessible->isValid())
@@ -993,12 +855,12 @@ HRESULT STDMETHODCALLTYPE QWindowsAccessible::get_accHelp(VARIANT varID, BSTR *p
return S_FALSE;
}
-HRESULT STDMETHODCALLTYPE QWindowsAccessible::get_accHelpTopic(BSTR *, VARIANT, long *)
+HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::get_accHelpTopic(BSTR *, VARIANT, long *)
{
return DISP_E_MEMBERNOTFOUND;
}
-HRESULT STDMETHODCALLTYPE QWindowsAccessible::get_accKeyboardShortcut(VARIANT varID, BSTR *pszKeyboardShortcut)
+HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::get_accKeyboardShortcut(VARIANT varID, BSTR *pszKeyboardShortcut)
{
Q_UNUSED(varID);
accessibleDebugClientCalls(accessible);
@@ -1029,7 +891,7 @@ static QAccessibleInterface *relatedInterface(QAccessibleInterface *iface, QAcce
}
// moz: [important]
-HRESULT STDMETHODCALLTYPE QWindowsAccessible::get_accName(VARIANT varID, BSTR* pszName)
+HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::get_accName(VARIANT varID, BSTR* pszName)
{
accessibleDebugClientCalls(accessible);
if (!accessible->isValid())
@@ -1065,14 +927,14 @@ HRESULT STDMETHODCALLTYPE QWindowsAccessible::get_accName(VARIANT varID, BSTR* p
return S_FALSE;
}
-HRESULT STDMETHODCALLTYPE QWindowsAccessible::put_accName(VARIANT, BSTR)
+HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::put_accName(VARIANT, BSTR)
{
accessibleDebugClientCalls(accessible);
return DISP_E_MEMBERNOTFOUND;
}
// moz: [important]
-HRESULT STDMETHODCALLTYPE QWindowsAccessible::get_accRole(VARIANT varID, VARIANT *pvarRole)
+HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::get_accRole(VARIANT varID, VARIANT *pvarRole)
{
accessibleDebugClientCalls(accessible);
if (!accessible->isValid())
@@ -1100,7 +962,7 @@ HRESULT STDMETHODCALLTYPE QWindowsAccessible::get_accRole(VARIANT varID, VARIANT
}
// moz: [important]
-HRESULT STDMETHODCALLTYPE QWindowsAccessible::get_accState(VARIANT varID, VARIANT *pvarState)
+HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::get_accState(VARIANT varID, VARIANT *pvarState)
{
accessibleDebugClientCalls(accessible);
if (!accessible->isValid())
@@ -1176,11 +1038,15 @@ HRESULT STDMETHODCALLTYPE QWindowsAccessible::get_accState(VARIANT varID, VARIAN
}
// moz: [important]
-HRESULT STDMETHODCALLTYPE QWindowsAccessible::get_accValue(VARIANT varID, BSTR* pszValue)
+HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::get_accValue(VARIANT varID, BSTR* pszValue)
{
accessibleDebugClientCalls(accessible);
- if (!accessible->isValid() || varID.lVal)
+ if (varID.vt != VT_I4)
+ return E_INVALIDARG;
+
+ if (!accessible->isValid() || varID.lVal) {
return E_FAIL;
+ }
QString value;
if (accessible->valueInterface()) {
@@ -1194,17 +1060,18 @@ HRESULT STDMETHODCALLTYPE QWindowsAccessible::get_accValue(VARIANT varID, BSTR*
}
*pszValue = 0;
+ accessibleDebug("return S_FALSE");
return S_FALSE;
}
-HRESULT STDMETHODCALLTYPE QWindowsAccessible::put_accValue(VARIANT, BSTR)
+HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::put_accValue(VARIANT, BSTR)
{
accessibleDebugClientCalls(accessible);
return DISP_E_MEMBERNOTFOUND;
}
// moz: [important]
-HRESULT STDMETHODCALLTYPE QWindowsAccessible::accSelect(long flagsSelect, VARIANT varID)
+HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::accSelect(long flagsSelect, VARIANT varID)
{
Q_UNUSED(flagsSelect);
Q_UNUSED(varID);
@@ -1250,7 +1117,7 @@ HRESULT STDMETHODCALLTYPE QWindowsAccessible::accSelect(long flagsSelect, VARIAN
+-------------+------------------------------------------------------------------------------+
moz: [important]
*/
-HRESULT STDMETHODCALLTYPE QWindowsAccessible::get_accFocus(VARIANT *pvarID)
+HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::get_accFocus(VARIANT *pvarID)
{
accessibleDebugClientCalls(accessible);
if (!accessible->isValid())
@@ -1263,12 +1130,11 @@ HRESULT STDMETHODCALLTYPE QWindowsAccessible::get_accFocus(VARIANT *pvarID)
delete acc;
return S_OK;
} else {
- QWindowsAccessible* wacc = new QWindowsAccessible(acc);
- IDispatch *iface = 0;
- wacc->QueryInterface(IID_IDispatch, (void**)&iface);
- (*pvarID).vt = VT_DISPATCH;
- (*pvarID).pdispVal = iface;
- return S_OK;
+ if (IAccessible *iface = QWindowsAccessibility::wrap(acc)) {
+ (*pvarID).vt = VT_DISPATCH;
+ (*pvarID).pdispVal = iface;
+ return S_OK;
+ }
}
delete acc;
}
@@ -1276,7 +1142,7 @@ HRESULT STDMETHODCALLTYPE QWindowsAccessible::get_accFocus(VARIANT *pvarID)
return S_FALSE;
}
-HRESULT STDMETHODCALLTYPE QWindowsAccessible::get_accSelection(VARIANT *pvarChildren)
+HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::get_accSelection(VARIANT *pvarChildren)
{
accessibleDebugClientCalls(accessible);
if (!accessible->isValid())
@@ -1314,212 +1180,34 @@ HRESULT STDMETHODCALLTYPE QWindowsAccessible::get_accSelection(VARIANT *pvarChil
return S_OK;
}
-static QWindow *window_helper(const QAccessibleInterface *iface)
-{
- QWindow *window = iface->window();
- if (!window) {
- QAccessibleInterface *acc = iface->parent();
- while (acc && !window) {
- window = acc->window();
- QAccessibleInterface *par = acc->parent();
- delete acc;
- acc = par;
- }
- }
- return window;
-}
-
-HRESULT STDMETHODCALLTYPE QWindowsAccessible::GetWindow(HWND *phwnd)
+/**************************************************************\
+ * IOleWindow *
+ **************************************************************/
+HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::GetWindow(HWND *phwnd)
{
*phwnd = 0;
+ accessibleDebugClientCalls(accessible);
+ if (!accessible->isValid())
+ return E_FAIL;
if (!accessible->isValid())
return E_UNEXPECTED;
- QWindow *window = window_helper(accessible);
+ QWindow *window = QWindowsAccessibility::windowHelper(accessible);
if (!window)
return E_FAIL;
QPlatformNativeInterface *platform = QGuiApplication::platformNativeInterface();
Q_ASSERT(platform);
*phwnd = (HWND)platform->nativeResourceForWindow("handle", window);
+ accessibleDebug("QWindowsAccessible::GetWindow(): %p", *phwnd);
return S_OK;
}
-HRESULT STDMETHODCALLTYPE QWindowsAccessible::ContextSensitiveHelp(BOOL)
+HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::ContextSensitiveHelp(BOOL)
{
return S_OK;
}
-
-QWindowsAccessibility::QWindowsAccessibility()
-{
-}
-
-
-void QWindowsAccessibility::notifyAccessibilityUpdate(const QAccessibleEvent &event)
-{
- QString soundName;
- switch (event.type()) {
- case QAccessible::PopupMenuStart:
- soundName = QLatin1String("MenuPopup");
- break;
-
- case QAccessible::MenuCommand:
- soundName = QLatin1String("MenuCommand");
- break;
-
- case QAccessible::Alert:
- {
- /* ### FIXME
-#ifndef QT_NO_MESSAGEBOX
- QMessageBox *mb = qobject_cast<QMessageBox*>(o);
- if (mb) {
- switch (mb->icon()) {
- case QMessageBox::Warning:
- soundName = QLatin1String("SystemExclamation");
- break;
- case QMessageBox::Critical:
- soundName = QLatin1String("SystemHand");
- break;
- case QMessageBox::Information:
- soundName = QLatin1String("SystemAsterisk");
- break;
- default:
- break;
- }
- } else
-#endif // QT_NO_MESSAGEBOX
-*/
- {
- soundName = QLatin1String("SystemAsterisk");
- }
-
- }
- break;
- default:
- break;
- }
-
- if (!soundName.isEmpty()) {
-#ifndef QT_NO_SETTINGS
- QSettings settings(QLatin1String("HKEY_CURRENT_USER\\AppEvents\\Schemes\\Apps\\.Default\\") + soundName,
- QSettings::NativeFormat);
- QString file = settings.value(QLatin1String(".Current/.")).toString();
-#else
- QString file;
-#endif
- if (!file.isEmpty()) {
- PlaySound(reinterpret_cast<const wchar_t *>(soundName.utf16()), 0, SND_ALIAS | SND_ASYNC | SND_NODEFAULT | SND_NOWAIT);
- }
- }
-
- typedef void (WINAPI *PtrNotifyWinEvent)(DWORD, HWND, LONG, LONG);
-
-#if defined(Q_OS_WINCE) // ### TODO: check for NotifyWinEvent in CE 6.0
- // There is no user32.lib nor NotifyWinEvent for CE
- return;
-#else
- static PtrNotifyWinEvent ptrNotifyWinEvent = 0;
- static bool resolvedNWE = false;
- if (!resolvedNWE) {
- resolvedNWE = true;
- ptrNotifyWinEvent = (PtrNotifyWinEvent)QSystemLibrary::resolve(QLatin1String("user32"), "NotifyWinEvent");
- }
- if (!ptrNotifyWinEvent)
- return;
-
- // An event has to be associated with a window,
- // so find the first parent that is a widget and that has a WId
- QAccessibleInterface *iface = event.accessibleInterface();
- QWindow *window = iface ? window_helper(iface) : 0;
- delete iface;
-
- if (!window) {
- window = QGuiApplication::activeWindow();
- if (!window)
- return;
- }
-
- QPlatformNativeInterface *platform = QGuiApplication::platformNativeInterface();
- HWND hWnd = (HWND)platform->nativeResourceForWindow("handle", window);
-
- if (event.type() != QAccessible::MenuCommand) { // MenuCommand is faked
- // See comment "SENDING EVENTS TO OBJECTS WITH NO WINDOW HANDLE"
- eventNum %= 50; //[0..49]
- int eventId = - eventNum - 1;
-
- qAccessibleRecentSentEvents()->insert(eventId, qMakePair(event.object(), event.child()));
- ptrNotifyWinEvent(event.type(), hWnd, OBJID_CLIENT, eventId );
-
- ++eventNum;
- }
-#endif // Q_OS_WINCE
-}
-
-/*
-void QWindowsAccessibility::setRootObject(QObject *o)
-{
-
-}
-
-void QWindowsAccessibility::initialize()
-{
-
-}
-
-void QWindowsAccessibility::cleanup()
-{
-
-}
-
-*/
-
-bool QWindowsAccessibility::handleAccessibleObjectFromWindowRequest(HWND hwnd, WPARAM wParam, LPARAM lParam, LRESULT *lResult)
-{
- if (static_cast<long>(lParam) == static_cast<long>(UiaRootObjectId)) {
- /* For UI Automation
- */
- } else if ((DWORD)lParam == OBJID_CLIENT) {
-#if 1
- // Ignoring all requests while starting up
- // ### Maybe QPA takes care of this???
- if (QApplication::startingUp() || QApplication::closingDown())
- return false;
-#endif
-
- typedef LRESULT (WINAPI *PtrLresultFromObject)(REFIID, WPARAM, LPUNKNOWN);
- static PtrLresultFromObject ptrLresultFromObject = 0;
- static bool oleaccChecked = false;
-
- if (!oleaccChecked) {
- oleaccChecked = true;
-#if !defined(Q_OS_WINCE)
- ptrLresultFromObject = (PtrLresultFromObject)QSystemLibrary::resolve(QLatin1String("oleacc"), "LresultFromObject");
-#endif
- }
-
- if (ptrLresultFromObject) {
- QWindow *window = QWindowsContext::instance()->findWindow(hwnd);
- if (window) {
- QAccessibleInterface *acc = window->accessibleRoot();
- if (acc) {
- QWindowsAccessible *winacc = new QWindowsAccessible(acc);
- IAccessible *iface;
- HRESULT hr = winacc->QueryInterface(IID_IAccessible, (void**)&iface);
- if (SUCCEEDED(hr)) {
- *lResult = ptrLresultFromObject(IID_IAccessible, wParam, iface); // ref == 2
- if (*lResult) {
- iface->Release(); // the client will release the object again, and then it will destroy itself
- }
- return true;
- }
- }
- }
- }
- }
- return false;
-}
-
QT_END_NAMESPACE
#endif //QT_NO_ACCESSIBILITY
diff --git a/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.h b/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.h
new file mode 100644
index 0000000000..9cb56c954c
--- /dev/null
+++ b/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.h
@@ -0,0 +1,139 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this
+** file. Please review the following information to ensure the GNU Lesser
+** General Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QWINDOWSMSAAACCESSIBLE_H
+#define QWINDOWSMSAAACCESSIBLE_H
+
+#include <QtCore/QtConfig>
+#ifndef QT_NO_ACCESSIBILITY
+
+#include "../qtwindows_additional.h"
+#include <oleacc.h>
+#include "Accessible2.h"
+#include <QtCore/qsharedpointer.h>
+#include <QtGui/qaccessible.h>
+
+QT_BEGIN_NAMESPACE
+
+#ifndef QT_NO_DEBUG
+bool debug_accessibility();
+# define accessibleDebug !debug_accessibility() ? (void)0 : qDebug
+#else
+# define accessibleDebug
+#endif
+
+#define DEBUG_SHOW_ATCLIENT_COMMANDS
+#if defined(DEBUG_SHOW_ATCLIENT_COMMANDS)
+void accessibleDebugClientCalls_helper(const char* funcName, const QAccessibleInterface *iface);
+# define accessibleDebugClientCalls(iface) accessibleDebugClientCalls_helper(Q_FUNC_INFO, iface)
+#else
+# define accessibleDebugClientCalls(iface)
+#endif
+
+typedef QSharedPointer<QAccessibleInterface> QAIPointer;
+
+QWindow *window_helper(const QAccessibleInterface *iface);
+
+/**************************************************************\
+ * QWindowsAccessible *
+ **************************************************************/
+class QWindowsMsaaAccessible : public IAccessible2, public IOleWindow
+{
+public:
+ QWindowsMsaaAccessible(QAccessibleInterface *a)
+ : accessible(a)
+ {
+ }
+
+ virtual ~QWindowsMsaaAccessible()
+ {
+ delete accessible;
+ }
+
+
+ /* IDispatch */
+ HRESULT STDMETHODCALLTYPE GetTypeInfoCount(unsigned int *);
+ HRESULT STDMETHODCALLTYPE GetTypeInfo(unsigned int, unsigned long, ITypeInfo **);
+ HRESULT STDMETHODCALLTYPE GetIDsOfNames(const _GUID &, wchar_t **, unsigned int, unsigned long, long *);
+ HRESULT STDMETHODCALLTYPE Invoke(long, const _GUID &, unsigned long, unsigned short, tagDISPPARAMS *, tagVARIANT *, tagEXCEPINFO *, unsigned int *);
+
+ /* IAccessible */
+ HRESULT STDMETHODCALLTYPE accHitTest(long xLeft, long yTop, VARIANT *pvarID);
+ HRESULT STDMETHODCALLTYPE accLocation(long *pxLeft, long *pyTop, long *pcxWidth, long *pcyHeight, VARIANT varID);
+ HRESULT STDMETHODCALLTYPE accNavigate(long navDir, VARIANT varStart, VARIANT *pvarEnd);
+ HRESULT STDMETHODCALLTYPE get_accChild(VARIANT varChildID, IDispatch** ppdispChild);
+ HRESULT STDMETHODCALLTYPE get_accChildCount(long* pcountChildren);
+ HRESULT STDMETHODCALLTYPE get_accParent(IDispatch** ppdispParent);
+
+ HRESULT STDMETHODCALLTYPE accDoDefaultAction(VARIANT varID);
+ HRESULT STDMETHODCALLTYPE get_accDefaultAction(VARIANT varID, BSTR* pszDefaultAction);
+ HRESULT STDMETHODCALLTYPE get_accDescription(VARIANT varID, BSTR* pszDescription);
+ HRESULT STDMETHODCALLTYPE get_accHelp(VARIANT varID, BSTR *pszHelp);
+ HRESULT STDMETHODCALLTYPE get_accHelpTopic(BSTR *pszHelpFile, VARIANT varChild, long *pidTopic);
+ HRESULT STDMETHODCALLTYPE get_accKeyboardShortcut(VARIANT varID, BSTR *pszKeyboardShortcut);
+ HRESULT STDMETHODCALLTYPE get_accName(VARIANT varID, BSTR* pszName);
+ HRESULT STDMETHODCALLTYPE put_accName(VARIANT varChild, BSTR szName);
+ HRESULT STDMETHODCALLTYPE get_accRole(VARIANT varID, VARIANT *pvarRole);
+ HRESULT STDMETHODCALLTYPE get_accState(VARIANT varID, VARIANT *pvarState);
+ HRESULT STDMETHODCALLTYPE get_accValue(VARIANT varID, BSTR* pszValue);
+ HRESULT STDMETHODCALLTYPE put_accValue(VARIANT varChild, BSTR szValue);
+
+ HRESULT STDMETHODCALLTYPE accSelect(long flagsSelect, VARIANT varID);
+ HRESULT STDMETHODCALLTYPE get_accFocus(VARIANT *pvarID);
+ HRESULT STDMETHODCALLTYPE get_accSelection(VARIANT *pvarChildren);
+
+ /* IOleWindow */
+ HRESULT STDMETHODCALLTYPE GetWindow(HWND *phwnd);
+ HRESULT STDMETHODCALLTYPE ContextSensitiveHelp(BOOL fEnterMode);
+
+protected:
+ QAccessibleInterface *accessible;
+
+ QAIPointer childPointer(VARIANT varID)
+ {
+ return QAIPointer(accessible->child(varID.lVal - 1));
+ }
+};
+
+QT_END_NAMESPACE
+
+#endif //QT_NO_ACCESSIBILITY
+
+#endif // QWINDOWSMSAAACCESSIBLE_H
diff --git a/src/plugins/platforms/windows/qtwindows_additional.h b/src/plugins/platforms/windows/qtwindows_additional.h
index ac768e2dab..3465d4ab1e 100644
--- a/src/plugins/platforms/windows/qtwindows_additional.h
+++ b/src/plugins/platforms/windows/qtwindows_additional.h
@@ -71,6 +71,16 @@
#define IFACEMETHODIMP STDMETHODIMP
#define IFACEMETHODIMP_(type) STDMETHODIMP_(type)
+// For accessibility:
+#ifdef __cplusplus
+ #define EXTERN_C extern "C"
+#else
+ #define EXTERN_C extern
+#endif
+
+#define CHILDID_SELF 0
+#define WM_GETOBJECT 0x003D
+
#if !defined(__MINGW64_VERSION_MAJOR)
#define STATE_SYSTEM_HASPOPUP 0x40000000
diff --git a/src/plugins/platforms/windows/qwindowscontext.cpp b/src/plugins/platforms/windows/qwindowscontext.cpp
index 2706e02cf8..f61e40ef77 100644
--- a/src/plugins/platforms/windows/qwindowscontext.cpp
+++ b/src/plugins/platforms/windows/qwindowscontext.cpp
@@ -47,7 +47,7 @@
#include "qtwindowsglobal.h"
#include "qwindowsmime.h"
#include "qwindowsinputcontext.h"
-#include "qwindowsaccessibility.h"
+#include "accessible/qwindowsaccessibility.h"
#include "qwindowsscreen.h"
#include "qwindowstheme.h"
@@ -788,7 +788,8 @@ bool QWindowsContext::windowsProc(HWND hwnd, UINT message,
QWindowSystemInterface::handleCloseEvent(platformWindow->window());
return true;
case QtWindows::ThemeChanged: // ### fixme: Compress these events?
- QWindowsTheme::instance()->windowsThemeChanged(platformWindow->window());
+ if (QWindowsTheme *theme = QWindowsTheme::instance())
+ theme->windowsThemeChanged(platformWindow->window());
return true;
default:
break;
diff --git a/src/plugins/platforms/windows/qwindowsfontdatabase.cpp b/src/plugins/platforms/windows/qwindowsfontdatabase.cpp
index 5094ad9dc3..e0be731b53 100644
--- a/src/plugins/platforms/windows/qwindowsfontdatabase.cpp
+++ b/src/plugins/platforms/windows/qwindowsfontdatabase.cpp
@@ -1065,9 +1065,17 @@ static inline int verticalDPI()
return GetDeviceCaps(QWindowsContext::instance()->displayContext(), LOGPIXELSY);
}
-QFont QWindowsFontDatabase::defaultFont() const
+QFont QWindowsFontDatabase::systemDefaultFont()
{
- return QWindowsFontDatabaseFT::systemDefaultFont();
+ LOGFONT lf;
+ GetObject(GetStockObject(DEFAULT_GUI_FONT), sizeof(lf), &lf);
+ QFont systemFont = QWindowsFontDatabase::LOGFONT_to_QFont(lf);
+ // "MS Shell Dlg 2" is the correct system font >= Win2k
+ if (systemFont.family() == QStringLiteral("MS Shell Dlg"))
+ systemFont.setFamily(QStringLiteral("MS Shell Dlg 2"));
+ if (QWindowsContext::verboseFonts)
+ qDebug() << __FUNCTION__ << systemFont;
+ return systemFont;
}
QFont QWindowsFontDatabase::LOGFONT_to_QFont(const LOGFONT& logFont, int verticalDPI_In)
diff --git a/src/plugins/platforms/windows/qwindowsfontdatabase.h b/src/plugins/platforms/windows/qwindowsfontdatabase.h
index 04d6ccdd91..f8f2a1eb85 100644
--- a/src/plugins/platforms/windows/qwindowsfontdatabase.h
+++ b/src/plugins/platforms/windows/qwindowsfontdatabase.h
@@ -85,7 +85,8 @@ public:
virtual void releaseHandle(void *handle);
virtual QString fontDir() const;
- virtual QFont defaultFont() const;
+ virtual QFont defaultFont() const { return systemDefaultFont(); }
+ static QFont systemDefaultFont();
static QFontEngine *createEngine(int script, const QFontDef &request,
HDC fontHdc, int dpi, bool rawMode,
diff --git a/src/plugins/platforms/windows/qwindowsfontdatabase_ft.cpp b/src/plugins/platforms/windows/qwindowsfontdatabase_ft.cpp
index fcce87d0bd..f90a880cd3 100644
--- a/src/plugins/platforms/windows/qwindowsfontdatabase_ft.cpp
+++ b/src/plugins/platforms/windows/qwindowsfontdatabase_ft.cpp
@@ -40,6 +40,7 @@
****************************************************************************/
#include "qwindowsfontdatabase_ft.h"
+#include "qwindowsfontdatabase.h"
#include "qwindowscontext.h"
#include <ft2build.h>
@@ -460,17 +461,9 @@ static inline int verticalDPI()
return GetDeviceCaps(QWindowsContext::instance()->displayContext(), LOGPIXELSY);
}
-QFont QWindowsFontDatabaseFT::systemDefaultFont()
+QFont QWindowsFontDatabaseFT::defaultFont() const
{
- LOGFONT lf;
- GetObject(GetStockObject(DEFAULT_GUI_FONT), sizeof(lf), &lf);
- QFont systemFont = QWindowsFontDatabaseFT::LOGFONT_to_QFont(lf);
- // "MS Shell Dlg 2" is the correct system font >= Win2k
- if (systemFont.family() == QStringLiteral("MS Shell Dlg"))
- systemFont.setFamily(QStringLiteral("MS Shell Dlg 2"));
- if (QWindowsContext::verboseFonts)
- qDebug() << __FUNCTION__ << systemFont;
- return systemFont;
+ return QWindowsFontDatabase::systemDefaultFont();
}
QFont QWindowsFontDatabaseFT::LOGFONT_to_QFont(const LOGFONT& logFont, int verticalDPI_In)
diff --git a/src/plugins/platforms/windows/qwindowsfontdatabase_ft.h b/src/plugins/platforms/windows/qwindowsfontdatabase_ft.h
index 4136b75dd8..24810c9202 100644
--- a/src/plugins/platforms/windows/qwindowsfontdatabase_ft.h
+++ b/src/plugins/platforms/windows/qwindowsfontdatabase_ft.h
@@ -59,8 +59,7 @@ public:
QStringList addApplicationFont(const QByteArray &fontData, const QString &fileName);
virtual QString fontDir() const;
- virtual QFont defaultFont() const { return systemDefaultFont(); }
- static QFont systemDefaultFont();
+ virtual QFont defaultFont() const;
static HFONT systemFont();
static QFont LOGFONT_to_QFont(const LOGFONT& lf, int verticalDPI = 0);
diff --git a/src/plugins/platforms/windows/qwindowsintegration.cpp b/src/plugins/platforms/windows/qwindowsintegration.cpp
index 3c2ece58d0..ee58a19ca9 100644
--- a/src/plugins/platforms/windows/qwindowsintegration.cpp
+++ b/src/plugins/platforms/windows/qwindowsintegration.cpp
@@ -55,8 +55,8 @@
#include "qwindowsclipboard.h"
#include "qwindowsdrag.h"
#include "qwindowsinputcontext.h"
-#include "qwindowsaccessibility.h"
#include "qwindowskeymapper.h"
+#include "accessible/qwindowsaccessibility.h"
#include <QtGui/QPlatformNativeInterface>
#include <QtGui/QWindowSystemInterface>
@@ -183,7 +183,6 @@ struct QWindowsIntegrationPrivate
QOpenGLStaticContextPtr m_staticOpenGLContext;
QWindowsInputContext m_inputContext;
QWindowsAccessibility m_accessibility;
- QWindowsTheme m_theme;
QWindowsServices m_services;
};
@@ -362,9 +361,16 @@ QAbstractEventDispatcher * QWindowsIntegration::guiThreadEventDispatcher() const
return d->m_eventDispatcher;
}
-QPlatformTheme *QWindowsIntegration::platformTheme() const
+QStringList QWindowsIntegration::themeNames() const
{
- return &d->m_theme;
+ return QStringList(QLatin1String(QWindowsTheme::name));
+}
+
+QPlatformTheme *QWindowsIntegration::createPlatformTheme(const QString &name) const
+{
+ if (name == QLatin1String(QWindowsTheme::name))
+ return new QWindowsTheme;
+ return QPlatformIntegration::createPlatformTheme(name);
}
QPlatformServices *QWindowsIntegration::services() const
diff --git a/src/plugins/platforms/windows/qwindowsintegration.h b/src/plugins/platforms/windows/qwindowsintegration.h
index 6dd65a02e4..20fd790bfe 100644
--- a/src/plugins/platforms/windows/qwindowsintegration.h
+++ b/src/plugins/platforms/windows/qwindowsintegration.h
@@ -69,7 +69,8 @@ public:
virtual QPlatformAccessibility *accessibility() const;
virtual QPlatformNativeInterface *nativeInterface() const;
virtual QPlatformFontDatabase *fontDatabase() const;
- virtual QPlatformTheme *platformTheme() const;
+ virtual QStringList themeNames() const;
+ virtual QPlatformTheme *createPlatformTheme(const QString &name) const;
QPlatformServices *services() const;
virtual QVariant styleHint(StyleHint hint) const;
diff --git a/src/plugins/platforms/windows/qwindowstheme.cpp b/src/plugins/platforms/windows/qwindowstheme.cpp
index 10b4682ad8..f3a9d91d00 100644
--- a/src/plugins/platforms/windows/qwindowstheme.cpp
+++ b/src/plugins/platforms/windows/qwindowstheme.cpp
@@ -44,7 +44,7 @@
#include "qwindowscontext.h"
#include "qwindowsintegration.h"
#include "qt_windows.h"
-#include "qwindowsfontdatabase_ft.h"
+#include "qwindowsfontdatabase.h"
#include <QtCore/QVariant>
#include <QtCore/QCoreApplication>
@@ -229,8 +229,12 @@ static inline QPalette *menuBarPalette(const QPalette &menuPalette)
return result;
}
+const char *QWindowsTheme::name = "windows";
+QWindowsTheme *QWindowsTheme::m_instance = 0;
+
QWindowsTheme::QWindowsTheme()
{
+ m_instance = this;
qFill(m_fonts, m_fonts + NFonts, static_cast<QFont *>(0));
qFill(m_palettes, m_palettes + NPalettes, static_cast<QPalette *>(0));
refresh();
@@ -240,11 +244,7 @@ QWindowsTheme::~QWindowsTheme()
{
clearPalettes();
clearFonts();
-}
-
-QWindowsTheme *QWindowsTheme::instance()
-{
- return static_cast<QWindowsTheme *>(QWindowsIntegration::instance()->platformTheme());
+ m_instance = 0;
}
static inline QStringList iconThemeSearchPaths()
@@ -325,16 +325,16 @@ void QWindowsTheme::refreshFonts()
ncm.cbSize = FIELD_OFFSET(NONCLIENTMETRICS, lfMessageFont) + sizeof(LOGFONT);
SystemParametersInfo(SPI_GETNONCLIENTMETRICS, ncm.cbSize , &ncm, 0);
- const QFont menuFont = QWindowsFontDatabaseFT::LOGFONT_to_QFont(ncm.lfMenuFont);
- const QFont messageBoxFont = QWindowsFontDatabaseFT::LOGFONT_to_QFont(ncm.lfMessageFont);
- const QFont statusFont = QWindowsFontDatabaseFT::LOGFONT_to_QFont(ncm.lfStatusFont);
- const QFont titleFont = QWindowsFontDatabaseFT::LOGFONT_to_QFont(ncm.lfCaptionFont);
+ const QFont menuFont = QWindowsFontDatabase::LOGFONT_to_QFont(ncm.lfMenuFont);
+ const QFont messageBoxFont = QWindowsFontDatabase::LOGFONT_to_QFont(ncm.lfMessageFont);
+ const QFont statusFont = QWindowsFontDatabase::LOGFONT_to_QFont(ncm.lfStatusFont);
+ const QFont titleFont = QWindowsFontDatabase::LOGFONT_to_QFont(ncm.lfCaptionFont);
LOGFONT lfIconTitleFont;
SystemParametersInfo(SPI_GETICONTITLELOGFONT, sizeof(lfIconTitleFont), &lfIconTitleFont, 0);
- const QFont iconTitleFont = QWindowsFontDatabaseFT::LOGFONT_to_QFont(lfIconTitleFont);
+ const QFont iconTitleFont = QWindowsFontDatabase::LOGFONT_to_QFont(lfIconTitleFont);
- m_fonts[SystemFont] = new QFont(QWindowsFontDatabaseFT::systemDefaultFont());
+ m_fonts[SystemFont] = new QFont(QWindowsFontDatabase::systemDefaultFont());
m_fonts[MenuFont] = new QFont(menuFont);
m_fonts[MenuBarFont] = new QFont(menuFont);
m_fonts[MessageBoxFont] = new QFont(messageBoxFont);
diff --git a/src/plugins/platforms/windows/qwindowstheme.h b/src/plugins/platforms/windows/qwindowstheme.h
index 37346eed3a..7515a13a72 100644
--- a/src/plugins/platforms/windows/qwindowstheme.h
+++ b/src/plugins/platforms/windows/qwindowstheme.h
@@ -57,7 +57,7 @@ public:
QWindowsTheme();
~QWindowsTheme();
- static QWindowsTheme *instance();
+ static QWindowsTheme *instance() { return m_instance; }
virtual bool usePlatformNativeDialog(DialogType type) const;
virtual QPlatformDialogHelper *createPlatformDialogHelper(DialogType type) const;
@@ -69,6 +69,8 @@ public:
void windowsThemeChanged(QWindow *window);
+ static const char *name;
+
private:
void refresh() { refreshPalettes(); refreshFonts(); }
void clearPalettes();
@@ -76,6 +78,7 @@ private:
void clearFonts();
void refreshFonts();
+ static QWindowsTheme *m_instance;
QPalette *m_palettes[NPalettes];
QFont *m_fonts[NFonts];
};
diff --git a/src/plugins/platforms/windows/windows.pro b/src/plugins/platforms/windows/windows.pro
index bb41fe87fc..87bc7245c4 100644
--- a/src/plugins/platforms/windows/windows.pro
+++ b/src/plugins/platforms/windows/windows.pro
@@ -45,7 +45,6 @@ SOURCES += \
qwindowsdrag.cpp \
qwindowscursor.cpp \
qwindowsinputcontext.cpp \
- qwindowsaccessibility.cpp \
qwindowstheme.cpp \
qwindowsdialoghelpers.cpp \
qwindowsservices.cpp
@@ -73,7 +72,6 @@ HEADERS += \
qwindowscursor.h \
array.h \
qwindowsinputcontext.h \
- qwindowsaccessibility.h \
qwindowstheme.h \
qwindowsdialoghelpers.h \
qwindowsservices.h
@@ -151,5 +149,6 @@ contains(QT_CONFIG, freetype) {
OTHER_FILES += windows.json
+include(accessible/accessible.pri)
target.path += $$[QT_INSTALL_PLUGINS]/platforms
INSTALLS += target
diff --git a/src/plugins/platforms/xcb/qxcbintegration.cpp b/src/plugins/platforms/xcb/qxcbintegration.cpp
index fe33bd7153..50d3c4f1b5 100644
--- a/src/plugins/platforms/xcb/qxcbintegration.cpp
+++ b/src/plugins/platforms/xcb/qxcbintegration.cpp
@@ -82,14 +82,15 @@
#include <QtGui/QOpenGLContext>
#include <QtGui/QScreen>
+#ifndef QT_NO_ACCESSIBILITY
#include <QtGui/QPlatformAccessibility>
+#endif
QT_BEGIN_NAMESPACE
QXcbIntegration::QXcbIntegration(const QStringList &parameters)
: m_eventDispatcher(createUnixEventDispatcher()),
- m_services(new QGenericUnixServices),
- m_theme(QGenericUnixTheme::createUnixTheme())
+ m_services(new QGenericUnixServices)
{
QGuiApplicationPrivate::instance()->setEventDispatcher(m_eventDispatcher);
@@ -114,7 +115,9 @@ QXcbIntegration::QXcbIntegration(const QStringList &parameters)
m_fontDatabase.reset(new QGenericUnixFontDatabase());
m_inputContext.reset(QPlatformInputContextFactory::create());
+#ifndef QT_NO_ACCESSIBILITY
m_accessibility.reset(new QPlatformAccessibility());
+#endif
#if defined(QT_USE_XCB_SHARED_GRAPHICS_CACHE)
m_sharedGraphicsCache.reset(new QXcbSharedGraphicsCache);
@@ -247,10 +250,12 @@ QPlatformInputContext *QXcbIntegration::inputContext() const
return m_inputContext.data();
}
+#ifndef QT_NO_ACCESSIBILITY
QPlatformAccessibility *QXcbIntegration::accessibility() const
{
return m_accessibility.data();
}
+#endif
#if defined(QT_USE_XCB_SHARED_GRAPHICS_CACHE)
static bool sharedGraphicsCacheDisabled()
@@ -277,9 +282,14 @@ QPlatformServices *QXcbIntegration::services() const
return m_services.data();
}
-QPlatformTheme *QXcbIntegration::platformTheme() const
+QStringList QXcbIntegration::themeNames() const
+{
+ return QGenericUnixTheme::themeNames();
+}
+
+QPlatformTheme *QXcbIntegration::createPlatformTheme(const QString &name) const
{
- return m_theme.data();
+ return QGenericUnixTheme::createUnixTheme(name);
}
QT_END_NAMESPACE
diff --git a/src/plugins/platforms/xcb/qxcbintegration.h b/src/plugins/platforms/xcb/qxcbintegration.h
index 457f90d6e0..58eebfe716 100644
--- a/src/plugins/platforms/xcb/qxcbintegration.h
+++ b/src/plugins/platforms/xcb/qxcbintegration.h
@@ -77,7 +77,9 @@ public:
QPlatformInputContext *inputContext() const;
+#ifndef QT_NO_ACCESSIBILITY
QPlatformAccessibility *accessibility() const;
+#endif
#if defined(QT_USE_XCB_SHARED_GRAPHICS_CACHE)
QPlatformSharedGraphicsCache *createPlatformSharedGraphicsCache(const char *cacheId) const;
@@ -85,7 +87,8 @@ public:
QPlatformServices *services() const;
- QPlatformTheme *platformTheme() const;
+ QStringList themeNames() const;
+ QPlatformTheme *createPlatformTheme(const QString &name) const;
private:
QList<QXcbConnection *> m_connections;
@@ -96,14 +99,15 @@ private:
QScopedPointer<QPlatformInputContext> m_inputContext;
QAbstractEventDispatcher *m_eventDispatcher;
+#ifndef QT_NO_ACCESSIBILITY
QScopedPointer<QPlatformAccessibility> m_accessibility;
+#endif
#if defined(QT_USE_XCB_SHARED_GRAPHICS_CACHE)
QScopedPointer<QPlatformSharedGraphicsCache> m_sharedGraphicsCache;
#endif
QScopedPointer<QPlatformServices> m_services;
- QScopedPointer<QPlatformTheme> m_theme;
};
QT_END_NAMESPACE
diff --git a/src/plugins/platforms/xcb/qxcbwindow.cpp b/src/plugins/platforms/xcb/qxcbwindow.cpp
index 055defde08..4de3734c22 100644
--- a/src/plugins/platforms/xcb/qxcbwindow.cpp
+++ b/src/plugins/platforms/xcb/qxcbwindow.cpp
@@ -549,7 +549,8 @@ void QXcbWindow::show()
updateNetWmStateBeforeMap();
}
- updateNetWmUserTime(connection()->time());
+ if (connection()->time() != CurrentTime)
+ updateNetWmUserTime(connection()->time());
Q_XCB_CALL(xcb_map_window(xcb_connection(), m_window));
xcb_flush(xcb_connection());
@@ -1306,7 +1307,7 @@ void QXcbWindow::handleConfigureNotifyEvent(const xcb_configure_notify_event_t *
{
bool fromSendEvent = (event->response_type & 0x80);
QPoint pos(event->x, event->y);
- if (!fromSendEvent) {
+ if (!parent() && !fromSendEvent) {
// Do not trust the position, query it instead.
xcb_translate_coordinates_cookie_t cookie = xcb_translate_coordinates(xcb_connection(), xcb_window(),
m_screen->root(), 0, 0);
diff --git a/src/plugins/platforms/xlib/qglxintegration.cpp b/src/plugins/platforms/xlib/qglxintegration.cpp
index 51621408b9..b2d44cf084 100644
--- a/src/plugins/platforms/xlib/qglxintegration.cpp
+++ b/src/plugins/platforms/xlib/qglxintegration.cpp
@@ -41,7 +41,6 @@
#include <QDebug>
#include <QLibrary>
-#include <QGLFormat>
#include "qxlibwindow.h"
#include "qxlibscreen.h"
diff --git a/src/plugins/platforms/xlib/qxlibkeyboard.cpp b/src/plugins/platforms/xlib/qxlibkeyboard.cpp
index 590d582661..1ebf22b7ba 100644
--- a/src/plugins/platforms/xlib/qxlibkeyboard.cpp
+++ b/src/plugins/platforms/xlib/qxlibkeyboard.cpp
@@ -48,6 +48,10 @@
#include <QtCore/QTextCodec>
+#if defined(QT_LINUXBASE)
+# include <X11/keysymdef.h>
+#endif
+
#ifndef XK_ISO_Left_Tab
#define XK_ISO_Left_Tab 0xFE20
#endif
diff --git a/src/plugins/platforms/xlib/qxlibwindow.cpp b/src/plugins/platforms/xlib/qxlibwindow.cpp
index 94c4332e65..00403aed64 100644
--- a/src/plugins/platforms/xlib/qxlibwindow.cpp
+++ b/src/plugins/platforms/xlib/qxlibwindow.cpp
@@ -62,7 +62,8 @@
#include <QtGui/QWindowSystemInterface>
#include <QSocketNotifier>
-#include <QApplication>
+#include <QGuiApplication>
+#include <QStyleHints>
#include <QDebug>
//#define MYX11_DEBUG
@@ -379,10 +380,11 @@ void QXlibWindow::mousePressEvent(XButtonEvent *e)
QEvent::Type type = QEvent::MouseButtonPress;
- if (e->window == prevWindow && long(e->time) - prevTime < QApplication::doubleClickInterval()
+ const int doubleClickInterval = qApp->styleHints()->mouseDoubleClickInterval();
+ if (e->window == prevWindow && long(e->time) - prevTime < doubleClickInterval
&& qAbs(e->x - prevX) < 5 && qAbs(e->y - prevY) < 5) {
type = QEvent::MouseButtonDblClick;
- prevTime = e->time - QApplication::doubleClickInterval(); //no double click next time
+ prevTime = e->time - doubleClickInterval; //no double click next time
} else {
prevTime = e->time;
}
@@ -724,7 +726,7 @@ void QXlibWindow::doSizeHints()
s.flags |= USSize;
s.flags |= PSize;
s.flags |= PWinGravity;
- s.win_gravity = QApplication::isRightToLeft() ? NorthEastGravity : NorthWestGravity;
+ s.win_gravity = QGuiApplication::isRightToLeft() ? NorthEastGravity : NorthWestGravity;
XSetWMNormalHints(mScreen->display()->nativeDisplay(), x_window, &s);
}
diff --git a/src/plugins/platforms/xlib/xlib.pro b/src/plugins/platforms/xlib/xlib.pro
index 463130a64b..a4e006f837 100644
--- a/src/plugins/platforms/xlib/xlib.pro
+++ b/src/plugins/platforms/xlib/xlib.pro
@@ -43,7 +43,6 @@ mac {
CONFIG += qpa/genericunixfontdatabase
contains(QT_CONFIG, opengl) {
- QT += opengl
!contains(QT_CONFIG, opengles2) {
# load(qpa/glx/convenience)
HEADERS += qglxintegration.h
diff --git a/src/plugins/plugins.pro b/src/plugins/plugins.pro
index 177f64c71b..0855847177 100644
--- a/src/plugins/plugins.pro
+++ b/src/plugins/plugins.pro
@@ -2,7 +2,7 @@ TEMPLATE = subdirs
SUBDIRS *= sqldrivers bearer
!contains(QT_CONFIG, no-gui): SUBDIRS *= imageformats
-!isEmpty(QT.widgets.name): SUBDIRS += accessible
+!contains(QT_CONFIG, no-widgets): SUBDIRS += accessible
SUBDIRS += platforms platforminputcontexts generic
diff --git a/src/plugins/printsupport/cocoa/cocoa.json b/src/plugins/printsupport/cocoa/cocoa.json
new file mode 100644
index 0000000000..85c38c42be
--- /dev/null
+++ b/src/plugins/printsupport/cocoa/cocoa.json
@@ -0,0 +1,3 @@
+{
+ "Keys": [ "cocoaprintersupport" ]
+}
diff --git a/src/plugins/printsupport/cocoa/cocoa.pro b/src/plugins/printsupport/cocoa/cocoa.pro
new file mode 100644
index 0000000000..353094cbae
--- /dev/null
+++ b/src/plugins/printsupport/cocoa/cocoa.pro
@@ -0,0 +1,13 @@
+TARGET = cocoaprintersupport
+load(qt_plugin)
+DESTDIR = $$QT.gui.plugins/printsupport
+
+QT += printsupport
+LIBS += -framework Cocoa
+
+SOURCES += main.cpp
+
+OTHER_FILES += cocoa.json
+
+target.path += $$[QT_INSTALL_PLUGINS]/printsupport
+INSTALLS += target
diff --git a/src/plugins/platforms/vnc/main.cpp b/src/plugins/printsupport/cocoa/main.cpp
index 7ec780af53..bc8f2e072c 100644
--- a/src/plugins/platforms/vnc/main.cpp
+++ b/src/plugins/printsupport/cocoa/main.cpp
@@ -3,7 +3,7 @@
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/
**
-** This file is part of the plugins of the Qt Toolkit.
+** This file is part of the QtPrintSupport module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** GNU Lesser General Public License Usage
@@ -39,35 +39,46 @@
**
****************************************************************************/
-#include "qvncintegration.h"
-#include <qstringlist.h>
-#include <QtGui/QPlatformIntegrationPlugin>
+#include <QtCore/QMetaMethod>
+#include <QtGui/QGuiApplication>
+#include <QtGui/QPlatformNativeInterface>
+#include <QtPrintSupport/QPlatformPrinterSupportPlugin>
QT_BEGIN_NAMESPACE
-class QVNCIntegrationPlugin : public QPlatformIntegrationPlugin
+class QCocoaPrinterSupportPlugin : public QPlatformPrinterSupportPlugin
{
+ Q_OBJECT
+ Q_PLUGIN_METADATA(IID "org.qt-project.QPlatformPrinterSupportFactoryInterface" FILE "cocoa.json")
+
public:
QStringList keys() const;
- QPlatformIntegration *create(const QString&, const QStringList &);
+ QPlatformPrinterSupport *create(const QString &);
};
-QStringList QVNCIntegrationPlugin::keys() const
+QStringList QCocoaPrinterSupportPlugin::keys() const
{
- QStringList list;
- list << "VNC";
- return list;
+ return QStringList(QStringLiteral("cocoaprintersupport"));
}
-QPlatformIntegration* QVNCIntegrationPlugin::create(const QString& system, const QStringList& paramList)
+QPlatformPrinterSupport *QCocoaPrinterSupportPlugin::create(const QString &key)
{
- Q_UNUSED(paramList);
- if (system.toLower() == "vnc")
- return new QVNCIntegration(paramList);
-
- return 0;
+ if (key.compare(key, QStringLiteral("cocoaprintersupport"), Qt::CaseInsensitive) != 0)
+ return 0;
+ QGuiApplication *app = qobject_cast<QGuiApplication *>(QCoreApplication::instance());
+ if (!app)
+ return 0;
+ QPlatformNativeInterface *platformNativeInterface = app->platformNativeInterface();
+ int at = platformNativeInterface->metaObject()->indexOfMethod("createPlatformPrinterSupport()");
+ if (at == -1)
+ return 0;
+ QMetaMethod createPlatformPrinterSupport = platformNativeInterface->metaObject()->method(at);
+ QPlatformPrinterSupport *platformPrinterSupport = 0;
+ if (!createPlatformPrinterSupport.invoke(platformNativeInterface, Q_RETURN_ARG(QPlatformPrinterSupport *, platformPrinterSupport)))
+ return 0;
+ return platformPrinterSupport;
}
-Q_EXPORT_PLUGIN2(vnc, QVNCIntegrationPlugin)
-
QT_END_NAMESPACE
+
+#include "main.moc"
diff --git a/src/plugins/printsupport/printsupport.pro b/src/plugins/printsupport/printsupport.pro
index 9298e7981f..547ac42c9e 100644
--- a/src/plugins/printsupport/printsupport.pro
+++ b/src/plugins/printsupport/printsupport.pro
@@ -1,3 +1,4 @@
TEMPLATE = subdirs
+mac: SUBDIRS += cocoa
win32: SUBDIRS += windows
diff --git a/src/printsupport/dialogs/dialogs.pri b/src/printsupport/dialogs/dialogs.pri
index 68b1737d73..2b92f43bec 100644
--- a/src/printsupport/dialogs/dialogs.pri
+++ b/src/printsupport/dialogs/dialogs.pri
@@ -9,10 +9,10 @@ HEADERS += \
dialogs/qprintdialog.h \
dialogs/qprintpreviewdialog.h
-# ### fixme
-false {
+mac {
OBJECTIVE_SOURCES += dialogs/qpagesetupdialog_mac.mm \
dialogs/qprintdialog_mac.mm
+ LIBS += -framework Cocoa
}
win32 {
@@ -20,7 +20,7 @@ win32 {
dialogs/qprintdialog_win.cpp
}
-unix {
+unix:!mac {
HEADERS += dialogs/qpagesetupdialog_unix_p.h
SOURCES += dialogs/qprintdialog_unix.cpp \
dialogs/qpagesetupdialog_unix.cpp
diff --git a/src/printsupport/dialogs/qpagesetupdialog.h b/src/printsupport/dialogs/qpagesetupdialog.h
index 479332c097..466550b28b 100644
--- a/src/printsupport/dialogs/qpagesetupdialog.h
+++ b/src/printsupport/dialogs/qpagesetupdialog.h
@@ -83,7 +83,7 @@ public:
void setOptions(PageSetupDialogOptions options);
PageSetupDialogOptions options() const;
-#if defined(Q_WS_MAC) || defined(Q_OS_WIN)
+#if defined(Q_OS_MAC) || defined(Q_OS_WIN)
virtual void setVisible(bool visible);
#endif
virtual int exec();
diff --git a/src/printsupport/dialogs/qpagesetupdialog_mac.mm b/src/printsupport/dialogs/qpagesetupdialog_mac.mm
index 3cd14489a3..6e4469e387 100644
--- a/src/printsupport/dialogs/qpagesetupdialog_mac.mm
+++ b/src/printsupport/dialogs/qpagesetupdialog_mac.mm
@@ -39,12 +39,13 @@
**
****************************************************************************/
+#include <Cocoa/Cocoa.h>
+
#include "qpagesetupdialog.h"
+#include "qabstractpagesetupdialog_p.h"
-#include <qhash.h>
-#include <private/qapplication_p.h>
-#include <private/qprintengine_mac_p.h>
-#include <private/qabstractpagesetupdialog_p.h>
+#include <QtGui/qplatformnativeinterface_qpa.h>
+#include <QtPrintSupport/qprintengine.h>
#ifndef QT_NO_PRINTDIALOG
@@ -52,20 +53,21 @@ QT_USE_NAMESPACE
@class QT_MANGLE_NAMESPACE(QCocoaPageLayoutDelegate);
-@interface QT_MANGLE_NAMESPACE(QCocoaPageLayoutDelegate) : NSObject {
- QMacPrintEnginePrivate *pe;
+@interface QT_MANGLE_NAMESPACE(QCocoaPageLayoutDelegate) : NSObject
+{
+ NSPrintInfo *printInfo;
}
-- (id)initWithMacPrintEngine:(QMacPrintEnginePrivate *)printEngine;
+- (id)initWithNSPrintInfo:(NSPrintInfo *)nsPrintInfo;
- (void)pageLayoutDidEnd:(NSPageLayout *)pageLayout
returnCode:(int)returnCode contextInfo:(void *)contextInfo;
@end
@implementation QT_MANGLE_NAMESPACE(QCocoaPageLayoutDelegate)
-- (id)initWithMacPrintEngine:(QMacPrintEnginePrivate *)printEngine
+- (id)initWithNSPrintInfo:(NSPrintInfo *)nsPrintInfo
{
self = [super init];
if (self) {
- pe = printEngine;
+ printInfo = nsPrintInfo;
}
return self;
@@ -75,29 +77,30 @@ QT_USE_NAMESPACE
{
Q_UNUSED(pageLayout);
QPageSetupDialog *dialog = static_cast<QPageSetupDialog *>(contextInfo);
+ QPrinter *printer = dialog->printer();
+
if (returnCode == NSOKButton) {
+ PMPageFormat format = static_cast<PMPageFormat>([printInfo PMPageFormat]);
PMRect paperRect;
- PMGetUnadjustedPaperRect(pe->format, &paperRect);
- pe->customSize = QSizeF(paperRect.right - paperRect.left,
- paperRect.bottom - paperRect.top);
+ PMGetUnadjustedPaperRect(format, &paperRect);
+ QSizeF paperSize = QSizeF(paperRect.right - paperRect.left, paperRect.bottom - paperRect.top);
+ printer->printEngine()->setProperty(QPrintEngine::PPK_CustomPaperSize, paperSize);
}
+
dialog->done((returnCode == NSOKButton) ? QDialog::Accepted : QDialog::Rejected);
}
@end
QT_BEGIN_NAMESPACE
-extern void macStartInterceptWindowTitle(QWidget *window);
-extern void macStopInterceptWindowTitle();
-
class QPageSetupDialogPrivate : public QAbstractPageSetupDialogPrivate
{
Q_DECLARE_PUBLIC(QPageSetupDialog)
public:
- QPageSetupDialogPrivate() : ep(0)
- ,pageLayout(0)
- {}
+ QPageSetupDialogPrivate()
+ : printInfo(0), pageLayout(0)
+ { }
~QPageSetupDialogPrivate() {
}
@@ -105,7 +108,7 @@ public:
void openCocoaPageLayout(Qt::WindowModality modality);
void closeCocoaPageLayout();
- QMacPrintEnginePrivate *ep;
+ NSPrintInfo *printInfo;
NSPageLayout *pageLayout;
};
@@ -113,56 +116,50 @@ void QPageSetupDialogPrivate::openCocoaPageLayout(Qt::WindowModality modality)
{
Q_Q(QPageSetupDialog);
- // If someone is reusing a QPrinter object, the end released all our old
- // information. In this case, we must reinitialize.
- if (ep->session == 0)
- ep->initialize();
+ // get the NSPrintInfo from the print engine in the platform plugin
+ void *voidp = 0;
+ (void) QMetaObject::invokeMethod(qApp->platformNativeInterface(),
+ "NSPrintInfoForPrintEngine",
+ Q_RETURN_ARG(void *, voidp),
+ Q_ARG(QPrintEngine *, printer->printEngine()));
+ printInfo = static_cast<NSPrintInfo *>(voidp);
+ [printInfo retain];
- macStartInterceptWindowTitle(q);
pageLayout = [NSPageLayout pageLayout];
// Keep a copy to this since we plan on using it for a bit.
[pageLayout retain];
- QT_MANGLE_NAMESPACE(QCocoaPageLayoutDelegate) *delegate = [[QT_MANGLE_NAMESPACE(QCocoaPageLayoutDelegate) alloc] initWithMacPrintEngine:ep];
+ QT_MANGLE_NAMESPACE(QCocoaPageLayoutDelegate) *delegate = [[QT_MANGLE_NAMESPACE(QCocoaPageLayoutDelegate) alloc] initWithNSPrintInfo:printInfo];
if (modality == Qt::ApplicationModal) {
- int rval = [pageLayout runModalWithPrintInfo:ep->printInfo];
+ int rval = [pageLayout runModalWithPrintInfo:printInfo];
[delegate pageLayoutDidEnd:pageLayout returnCode:rval contextInfo:q];
} else {
Q_ASSERT(q->parentWidget());
- [pageLayout beginSheetWithPrintInfo:ep->printInfo
- modalForWindow:qt_mac_window_for(q->parentWidget())
+ QWindow *parentWindow = q->parentWidget()->windowHandle();
+ NSWindow *window = static_cast<NSWindow *>(qApp->platformNativeInterface()->nativeResourceForWindow("nswindow", parentWindow));
+ [pageLayout beginSheetWithPrintInfo:printInfo
+ modalForWindow:window
delegate:delegate
didEndSelector:@selector(pageLayoutDidEnd:returnCode:contextInfo:)
contextInfo:q];
}
-
- macStopInterceptWindowTitle();
}
void QPageSetupDialogPrivate::closeCocoaPageLayout()
{
- // NSPageLayout can change the session behind our back and then our
- // d->ep->session object will become a dangling pointer. Update it
- // based on the "current" session
- ep->session = static_cast<PMPrintSession>([ep->printInfo PMPrintSession]);
-
+ [printInfo release];
+ printInfo = 0;
[pageLayout release];
pageLayout = 0;
}
QPageSetupDialog::QPageSetupDialog(QPrinter *printer, QWidget *parent)
: QAbstractPageSetupDialog(*(new QPageSetupDialogPrivate), printer, parent)
-{
- Q_D(QPageSetupDialog);
- d->ep = static_cast<QMacPrintEngine *>(d->printer->paintEngine())->d_func();
-}
+{ }
QPageSetupDialog::QPageSetupDialog(QWidget *parent)
: QAbstractPageSetupDialog(*(new QPageSetupDialogPrivate), 0, parent)
-{
- Q_D(QPageSetupDialog);
- d->ep = static_cast<QMacPrintEngine *>(d->printer->paintEngine())->d_func();
-}
+{ }
void QPageSetupDialog::setVisible(bool visible)
{
@@ -194,9 +191,10 @@ int QPageSetupDialog::exec()
if (d->printer->outputFormat() != QPrinter::NativeFormat)
return Rejected;
- QMacCocoaAutoReleasePool pool;
+ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
d->openCocoaPageLayout(Qt::ApplicationModal);
d->closeCocoaPageLayout();
+ [pool release];
return result();
}
diff --git a/src/printsupport/dialogs/qprintdialog.h b/src/printsupport/dialogs/qprintdialog.h
index 8b8402f4fb..5bd832bcb0 100644
--- a/src/printsupport/dialogs/qprintdialog.h
+++ b/src/printsupport/dialogs/qprintdialog.h
@@ -55,7 +55,7 @@ class QPrintDialogPrivate;
class QPushButton;
class QPrinter;
-#if defined (Q_OS_UNIX)
+#if defined (Q_OS_UNIX) && !defined(Q_OS_MAC)
class QUnixPrintWidgetPrivate;
class Q_PRINTSUPPORT_EXPORT QUnixPrintWidget : public QWidget
@@ -90,7 +90,7 @@ public:
~QPrintDialog();
int exec();
-#if defined (Q_OS_UNIX)
+#if defined (Q_OS_UNIX) && !defined(Q_OS_MAC)
virtual void accept();
#endif
void done(int result);
@@ -130,10 +130,10 @@ Q_SIGNALS:
private:
Q_PRIVATE_SLOT(d_func(), void _q_chbPrintLastFirstToggled(bool))
-#if defined (Q_OS_UNIX)
+#if defined (Q_OS_UNIX) && !defined(Q_OS_MAC)
Q_PRIVATE_SLOT(d_func(), void _q_collapseOrExpandDialog())
#endif
-# if defined(Q_OS_UNIX) && !defined(QT_NO_MESSAGEBOX)
+# if defined(Q_OS_UNIX) && !defined(Q_OS_MAC) && !defined(QT_NO_MESSAGEBOX)
Q_PRIVATE_SLOT(d_func(), void _q_checkFields())
# endif
friend class QUnixPrintWidget;
diff --git a/src/printsupport/dialogs/qprintdialog_mac.mm b/src/printsupport/dialogs/qprintdialog_mac.mm
index 6a267d920b..417ae20f29 100644
--- a/src/printsupport/dialogs/qprintdialog_mac.mm
+++ b/src/printsupport/dialogs/qprintdialog_mac.mm
@@ -41,13 +41,16 @@
#ifndef QT_NO_PRINTDIALOG
-#include <private/qt_mac_p.h>
+#include <Cocoa/Cocoa.h>
-#include <qhash.h>
-#include <qprintdialog.h>
-#include <private/qapplication_p.h>
-#include <private/qabstractprintdialog_p.h>
-#include <private/qprintengine_mac_p.h>
+#include "qprintdialog.h"
+#include "qabstractprintdialog_p.h"
+
+#include <QtCore/qhash.h>
+#include <QtCore/private/qcore_mac_p.h>
+#include <QtWidgets/private/qapplication_p.h>
+#include <QtPrintSupport/qprinter.h>
+#include <QtPrintSupport/qprintengine.h>
QT_BEGIN_NAMESPACE
@@ -56,12 +59,11 @@ class QPrintDialogPrivate : public QAbstractPrintDialogPrivate
Q_DECLARE_PUBLIC(QPrintDialog)
public:
- QPrintDialogPrivate() : ep(0), printPanel(0)
+ QPrintDialogPrivate() : printInfo(0), printPanel(0)
{}
void openCocoaPrintPanel(Qt::WindowModality modality);
void closeCocoaPrintPanel();
- void initBeforeRun();
inline QPrintDialog *printDialog() { return q_func(); }
@@ -76,7 +78,7 @@ public:
inline void _q_btnBrowseClicked() {}
inline void _q_btnPropertiesClicked() {}
- QMacPrintEnginePrivate *ep;
+ NSPrintInfo *printInfo;
NSPrintPanel *printPanel;
};
@@ -87,25 +89,38 @@ QT_USE_NAMESPACE
@class QT_MANGLE_NAMESPACE(QCocoaPrintPanelDelegate);
-@interface QT_MANGLE_NAMESPACE(QCocoaPrintPanelDelegate) : NSObject {
+@interface QT_MANGLE_NAMESPACE(QCocoaPrintPanelDelegate) : NSObject
+{
+ NSPrintInfo *printInfo;
}
+- (id)initWithNSPrintInfo:(NSPrintInfo *)nsPrintInfo;
- (void)printPanelDidEnd:(NSPrintPanel *)printPanel
returnCode:(int)returnCode contextInfo:(void *)contextInfo;
@end
@implementation QT_MANGLE_NAMESPACE(QCocoaPrintPanelDelegate)
+- (id)initWithNSPrintInfo:(NSPrintInfo *)nsPrintInfo
+{
+ if (self = [super init]) {
+ printInfo = nsPrintInfo;
+ }
+ return self;
+}
- (void)printPanelDidEnd:(NSPrintPanel *)printPanel
returnCode:(int)returnCode contextInfo:(void *)contextInfo
{
Q_UNUSED(printPanel);
- QPrintDialogPrivate *d = static_cast<QPrintDialogPrivate *>(contextInfo);
- QPrintDialog *dialog = d->printDialog();
+ QPrintDialog *dialog = static_cast<QPrintDialog *>(contextInfo);
+ QPrinter *printer = dialog->printer();
if (returnCode == NSOKButton) {
+ PMPrintSession session = static_cast<PMPrintSession>([printInfo PMPrintSession]);
+ PMPrintSettings settings = static_cast<PMPrintSettings>([printInfo PMPrintSettings]);
+
UInt32 frompage, topage;
- PMGetFirstPage(d->ep->settings, &frompage);
- PMGetLastPage(d->ep->settings, &topage);
+ PMGetFirstPage(settings, &frompage);
+ PMGetLastPage(settings, &topage);
topage = qMin(UInt32(INT_MAX), topage);
dialog->setFromTo(frompage, topage);
@@ -128,22 +143,19 @@ QT_USE_NAMESPACE
// If the user selected print to file, the session has been
// changed behind our back and our d->ep->session object is a
// dangling pointer. Update it based on the "current" session
- d->ep->session = static_cast<PMPrintSession>([d->ep->printInfo PMPrintSession]);
-
- PMSessionGetDestinationType(d->ep->session, d->ep->settings, &dest);
+ PMSessionGetDestinationType(session, settings, &dest);
if (dest == kPMDestinationFile) {
QCFType<CFURLRef> file;
- PMSessionCopyDestinationLocation(d->ep->session, d->ep->settings, &file);
+ PMSessionCopyDestinationLocation(session, settings, &file);
UInt8 localFile[2048]; // Assuming there's a POSIX file system here.
CFURLGetFileSystemRepresentation(file, true, localFile, sizeof(localFile));
- d->ep->outputFilename
- = QString::fromUtf8(reinterpret_cast<const char *>(localFile));
+ printer->setOutputFileName(QString::fromUtf8(reinterpret_cast<const char *>(localFile)));
} else {
// Keep output format.
QPrinter::OutputFormat format;
- format = d->printer->outputFormat();
- d->printer->setOutputFileName(QString());
- d->printer->setOutputFormat(format);
+ format = printer->outputFormat();
+ printer->setOutputFileName(QString());
+ printer->setOutputFormat(format);
}
}
@@ -151,38 +163,33 @@ QT_USE_NAMESPACE
}
@end
-
QT_BEGIN_NAMESPACE
-extern void macStartInterceptWindowTitle(QWidget *window);
-extern void macStopInterceptWindowTitle();
-
-
-void QPrintDialogPrivate::initBeforeRun()
+void QPrintDialogPrivate::openCocoaPrintPanel(Qt::WindowModality modality)
{
Q_Q(QPrintDialog);
- // If someone is reusing a QPrinter object, the end released all our old
- // information. In this case, we must reinitialize.
- if (ep->session == 0)
- ep->initialize();
+ // get the NSPrintInfo from the print engine in the platform plugin
+ void *voidp = 0;
+ (void) QMetaObject::invokeMethod(qApp->platformNativeInterface(),
+ "NSPrintInfoForPrintEngine",
+ Q_RETURN_ARG(void *, voidp),
+ Q_ARG(QPrintEngine *, printer->printEngine()));
+ printInfo = static_cast<NSPrintInfo *>(voidp);
+ [printInfo retain];
// It seems the only way that PM lets you use all is if the minimum
// for the page range is 1. This _kind of_ makes sense if you think about
// it. However, calling PMSetFirstPage() or PMSetLastPage() always enforces
// the range.
- PMSetPageRange(ep->settings, q->minPage(), q->maxPage());
+ // get print settings from the platform plugin
+ PMPrintSettings settings = static_cast<PMPrintSettings>([printInfo PMPrintSettings]);
+ PMSetPageRange(settings, q->minPage(), q->maxPage());
if (q->printRange() == QAbstractPrintDialog::PageRange) {
- PMSetFirstPage(ep->settings, q->fromPage(), false);
- PMSetLastPage(ep->settings, q->toPage(), false);
+ PMSetFirstPage(settings, q->fromPage(), false);
+ PMSetLastPage(settings, q->toPage(), false);
}
-}
-
-void QPrintDialogPrivate::openCocoaPrintPanel(Qt::WindowModality modality)
-{
- Q_Q(QPrintDialog);
-
- initBeforeRun();
+ [printInfo updateFromPMPrintSettings];
QPrintDialog::PrintDialogOptions qtOptions = q->options();
NSPrintPanelOptions macOptions = NSPrintPanelShowsCopies;
@@ -192,30 +199,32 @@ void QPrintDialogPrivate::openCocoaPrintPanel(Qt::WindowModality modality)
macOptions |= NSPrintPanelShowsPaperSize | NSPrintPanelShowsPageSetupAccessory
| NSPrintPanelShowsOrientation;
- macStartInterceptWindowTitle(q);
printPanel = [NSPrintPanel printPanel];
- QT_MANGLE_NAMESPACE(QCocoaPrintPanelDelegate) *delegate = [[QT_MANGLE_NAMESPACE(QCocoaPrintPanelDelegate) alloc] init];
+ [printPanel retain];
[printPanel setOptions:macOptions];
+ QT_MANGLE_NAMESPACE(QCocoaPrintPanelDelegate) *delegate = [[QT_MANGLE_NAMESPACE(QCocoaPrintPanelDelegate) alloc] init];
if (modality == Qt::ApplicationModal) {
- int rval = [printPanel runModalWithPrintInfo:ep->printInfo];
+ int rval = [printPanel runModalWithPrintInfo:printInfo];
[delegate printPanelDidEnd:printPanel returnCode:rval contextInfo:this];
} else {
Q_ASSERT(q->parentWidget());
- NSWindow *windowRef = qt_mac_window_for(q->parentWidget());
- [printPanel beginSheetWithPrintInfo:ep->printInfo
- modalForWindow:windowRef
+ QWindow *parentWindow = q->parentWidget()->windowHandle();
+ NSWindow *window = static_cast<NSWindow *>(qApp->platformNativeInterface()->nativeResourceForWindow("nswindow", parentWindow));
+ [printPanel beginSheetWithPrintInfo:printInfo
+ modalForWindow:window
delegate:delegate
didEndSelector:@selector(printPanelDidEnd:returnCode:contextInfo:)
contextInfo:this];
}
-
- macStopInterceptWindowTitle();
}
void QPrintDialogPrivate::closeCocoaPrintPanel()
{
- // ###
+ [printInfo release];
+ printInfo = 0;
+ [printPanel release];
+ printPanel = 0;
}
static bool warnIfNotNative(QPrinter *printer)
@@ -234,7 +243,6 @@ QPrintDialog::QPrintDialog(QPrinter *printer, QWidget *parent)
Q_D(QPrintDialog);
if (!warnIfNotNative(d->printer))
return;
- d->ep = static_cast<QMacPrintEngine *>(d->printer->paintEngine())->d_func();
}
QPrintDialog::QPrintDialog(QWidget *parent)
@@ -243,7 +251,6 @@ QPrintDialog::QPrintDialog(QWidget *parent)
Q_D(QPrintDialog);
if (!warnIfNotNative(d->printer))
return;
- d->ep = static_cast<QMacPrintEngine *>(d->printer->paintEngine())->d_func();
}
QPrintDialog::~QPrintDialog()
@@ -256,10 +263,10 @@ int QPrintDialog::exec()
if (!warnIfNotNative(d->printer))
return QDialog::Rejected;
- QMacCocoaAutoReleasePool pool;
-
+ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
d->openCocoaPrintPanel(Qt::ApplicationModal);
d->closeCocoaPrintPanel();
+ [pool release];
return result();
}
diff --git a/src/printsupport/kernel/kernel.pri b/src/printsupport/kernel/kernel.pri
index e2fcd8d1dd..d7c9f56545 100644
--- a/src/printsupport/kernel/kernel.pri
+++ b/src/printsupport/kernel/kernel.pri
@@ -18,7 +18,7 @@ SOURCES += \
$$PWD/qplatformprintplugin.cpp \
$$PWD/qplatformprintersupport_qpa.cpp
-unix {
+unix:!mac {
HEADERS += \
$$PWD/qprinterinfo_unix_p.h
SOURCES += \
@@ -33,7 +33,7 @@ win32 {
LIBS += -lWinspool -lComdlg32
}
-win32 {
+mac|win32 {
DEFINES += QT_NO_CUPS QT_NO_LPR
} else {
SOURCES += $$PWD/qcups.cpp
diff --git a/src/printsupport/kernel/qprinter.cpp b/src/printsupport/kernel/qprinter.cpp
index 85dc59ff34..404f45d509 100644
--- a/src/printsupport/kernel/qprinter.cpp
+++ b/src/printsupport/kernel/qprinter.cpp
@@ -155,7 +155,7 @@ Q_PRINTSUPPORT_EXPORT QSizeF qt_printerPaperSize(QPrinter::Orientation orientati
void QPrinterPrivate::createDefaultEngines()
{
QPrinter::OutputFormat realOutputFormat = outputFormat;
-#if defined (Q_OS_UNIX)
+#if defined (Q_OS_UNIX) && !defined(Q_OS_MAC)
if(outputFormat == QPrinter::NativeFormat) {
realOutputFormat = QPrinter::PdfFormat;
}
diff --git a/src/sql/drivers/sqlite/qsql_sqlite.cpp b/src/sql/drivers/sqlite/qsql_sqlite.cpp
index b2a55252ac..deb29f8059 100644
--- a/src/sql/drivers/sqlite/qsql_sqlite.cpp
+++ b/src/sql/drivers/sqlite/qsql_sqlite.cpp
@@ -577,6 +577,11 @@ bool QSQLiteDriver::open(const QString & db, const QString &, const QString &, c
setOpenError(false);
return true;
} else {
+ if (d->access) {
+ sqlite3_close(d->access);
+ d->access = 0;
+ }
+
setLastError(qMakeError(d->access, tr("Error opening database"),
QSqlError::ConnectionError));
setOpenError(true);
diff --git a/src/sql/models/qsqltablemodel.cpp b/src/sql/models/qsqltablemodel.cpp
index 5fed167070..d8d691fa0c 100644
--- a/src/sql/models/qsqltablemodel.cpp
+++ b/src/sql/models/qsqltablemodel.cpp
@@ -469,6 +469,24 @@ QVariant QSqlTableModel::headerData(int section, Qt::Orientation orientation, in
}
/*!
+ \overload
+ \since 5.0
+
+ Returns true if the model contains modified values that have not been
+ committed to the datase, otherwise false.
+*/
+bool QSqlTableModel::isDirty() const
+{
+ Q_D(const QSqlTableModel);
+ QSqlTableModelPrivate::CacheMap::ConstIterator i = d->cache.constBegin();
+ const QSqlTableModelPrivate::CacheMap::ConstIterator e = d->cache.constEnd();
+ for (; i != e; i++)
+ if (!i.value().submitted())
+ return true;
+ return false;
+}
+
+/*!
Returns true if the value at the index \a index is dirty, otherwise false.
Dirty values are values that were modified in the model
but not yet written into the database.
@@ -493,8 +511,17 @@ bool QSqlTableModel::isDirty(const QModelIndex &index) const
/*!
Sets the data for the item \a index for the role \a role to \a
- value. Depending on the edit strategy, the value might be applied
- to the database at once or cached in the model.
+ value.
+
+ For edit strategy OnFieldChange, an index may receive a change
+ only if no other index has a cached change. Changes are
+ submitted immediately. However, rows that have not yet been
+ inserted in the database may be freely changed and are not
+ submitted automatically. Submitted changes are not reverted upon
+ failure.
+
+ For OnRowChange, an index may receive a change only if no other
+ row has a cached change. Changes are not submitted automatically.
Returns true if the value could be set or false on error, for
example if \a index is out of bounds.
@@ -513,16 +540,9 @@ bool QSqlTableModel::setData(const QModelIndex &index, const QVariant &value, in
if (!index.isValid() || index.column() >= d->rec.count() || index.row() >= rowCount())
return false;
- if (d->cache.value(index.row()).op() == QSqlTableModelPrivate::Delete)
+ if (!(flags(index) & Qt::ItemIsEditable))
return false;
- if (d->strategy == OnFieldChange && d->cache.value(index.row()).op() != QSqlTableModelPrivate::Insert) {
- revertAll();
- } else if (d->strategy == OnRowChange && !d->cache.isEmpty() && !d->cache.contains(index.row())) {
- submit();
- revertAll();
- }
-
QSqlTableModelPrivate::ModifiedRow &row = d->cache[index.row()];
if (row.op() == QSqlTableModelPrivate::None)
@@ -1001,11 +1021,18 @@ bool QSqlTableModel::removeColumns(int column, int count, const QModelIndex &par
an invalid model index.
When the edit strategy is OnManualSubmit, deletion of rows from
- the database is delayed until submitAll() is called; otherwise,
- deletions are immediate.
+ the database is delayed until submitAll() is called.
+
+ For OnFieldChange and OnRowChange, only one row may be deleted
+ at a time and only if no other row has a cached change. Deletions
+ are submitted immediately to the database. The model retains a
+ blank row for successfully deleted row until refreshed with select().
- Inserted but not yet submitted rows in the range to be removed
- are immediately removed from the model.
+ After failed deletion, the operation is not reverted in the model.
+ The application may resubmit or revert.
+
+ Inserted but not yet successfully submitted rows in the range to be
+ removed are immediately removed from the model.
Before a row is deleted from the database, the beforeDelete()
signal is emitted.
@@ -1027,6 +1054,10 @@ bool QSqlTableModel::removeRows(int row, int count, const QModelIndex &parent)
else if (!count)
return true;
+ if (d->strategy != OnManualSubmit)
+ if (count > 1 || (d->cache.value(row).submitted() && isDirty()))
+ return false;
+
// Iterate backwards so we don't have to worry about removed rows causing
// higher cache entries to shift downwards.
for (int idx = row + count - 1; idx >= row; --idx) {
@@ -1054,17 +1085,18 @@ bool QSqlTableModel::removeRows(int row, int count, const QModelIndex &parent)
parent must be invalid, since this model does not support
parent-child relations.
- Only one row at a time can be inserted when using the
- OnFieldChange or OnRowChange update strategies.
+ For edit strategies OnFieldChange and OnRowChange, only one row
+ may be inserted at a time and the model may not contain other
+ cached changes.
The primeInsert() signal will be emitted for each new row.
Connect to it if you want to initialize the new row with default
values.
- Returns false if the parameters are out of bounds; otherwise
- returns true.
+ Does not submit rows, regardless of edit strategy.
- Does not submit rows, regardless of edit strategy, not even OnFieldChange.
+ Returns false if the parameters are out of bounds or the row cannot be
+ inserted; otherwise returns true.
\sa primeInsert(), insertRecord()
*/
@@ -1074,8 +1106,9 @@ bool QSqlTableModel::insertRows(int row, int count, const QModelIndex &parent)
if (row < 0 || count <= 0 || row > rowCount() || parent.isValid())
return false;
- if (d->strategy != OnManualSubmit && count != 1)
- return false;
+ if (d->strategy != OnManualSubmit)
+ if (count != 1 || isDirty())
+ return false;
d->busyInsertingRows = true;
beginInsertRows(parent, row, row + count - 1);
@@ -1114,25 +1147,20 @@ bool QSqlTableModel::insertRows(int row, int count, const QModelIndex &parent)
Returns true if the record could be inserted, otherwise false.
Changes are submitted immediately for OnFieldChange and
- OnRowChange. Note the contrast with setRecord() in respect to
- OnRowChange.
+ OnRowChange. Failure does not leave a new row in the model.
\sa insertRows(), removeRows(), setRecord()
*/
bool QSqlTableModel::insertRecord(int row, const QSqlRecord &record)
{
- Q_D(QSqlTableModel);
if (row < 0)
row = rowCount();
if (!insertRow(row, QModelIndex()))
return false;
if (!setRecord(row, record)) {
- if (d->strategy == OnManualSubmit)
- revertRow(row);
+ revertRow(row);
return false;
}
- if (d->strategy == OnFieldChange || d->strategy == OnRowChange)
- return submit();
return true;
}
@@ -1218,26 +1246,46 @@ Qt::ItemFlags QSqlTableModel::flags(const QModelIndex &index) const
if (index.internalPointer() || index.column() < 0 || index.column() >= d->rec.count()
|| index.row() < 0)
return 0;
- if (d->rec.field(index.column()).isReadOnly())
- return Qt::ItemIsSelectable | Qt::ItemIsEnabled;
- if (d->cache.value(index.row()).op() == QSqlTableModelPrivate::Delete)
+
+ bool editable = true;
+
+ if (d->rec.field(index.column()).isReadOnly()) {
+ editable = false;
+ }
+ else {
+ const QSqlTableModelPrivate::ModifiedRow mrow = d->cache.value(index.row());
+ if (mrow.op() == QSqlTableModelPrivate::Delete) {
+ editable = false;
+ }
+ else if (d->strategy == OnFieldChange) {
+ if (mrow.op() != QSqlTableModelPrivate::Insert)
+ if (!isDirty(index) && isDirty())
+ editable = false;
+ }
+ else if (d->strategy == OnRowChange) {
+ if (mrow.submitted() && isDirty())
+ editable = false;
+ }
+ }
+
+ if (!editable)
return Qt::ItemIsSelectable | Qt::ItemIsEnabled;
- return Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsEditable;
+ else
+ return Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsEditable;
}
/*!
Sets the values at the specified \a row to the values of \a
record for fields where generated flag is true.
+ For edit strategies OnFieldChange and OnRowChange, a row may
+ receive a change only if no other row has a cached change.
+ Changes are submitted immediately. Submitted changes are not
+ reverted upon failure.
+
Returns true if all the values could be set; otherwise returns
false.
- The edit strategy affects automatic submitting.
- With OnFieldChange, setRecord() commits its changed row.
- With OnRowChange, setRecord() does not commit its changed row,
- but making a change to another row causes previous changes to
- be submitted.
-
\sa record(), editStrategy()
*/
bool QSqlTableModel::setRecord(int row, const QSqlRecord &values)
@@ -1253,10 +1301,8 @@ bool QSqlTableModel::setRecord(int row, const QSqlRecord &values)
if (d->cache.value(row).op() == QSqlTableModelPrivate::Delete)
return false;
- if (d->strategy == OnFieldChange && d->cache.value(row).op() != QSqlTableModelPrivate::Insert)
- revertAll();
- else if (d->strategy == OnRowChange && !d->cache.isEmpty() && !d->cache.contains(row))
- submit();
+ if (d->strategy != OnManualSubmit && d->cache.value(row).submitted() && isDirty())
+ return false;
// Check field names and remember mapping
typedef QMap<int, int> Map;
@@ -1283,7 +1329,7 @@ bool QSqlTableModel::setRecord(int row, const QSqlRecord &values)
if (columnCount())
emit dataChanged(createIndex(row, 0), createIndex(row, columnCount() - 1));
- if (d->strategy == OnFieldChange)
+ if (d->strategy != OnManualSubmit)
return submit();
return true;
diff --git a/src/sql/models/qsqltablemodel.h b/src/sql/models/qsqltablemodel.h
index 13316bc4ed..62e09869c9 100644
--- a/src/sql/models/qsqltablemodel.h
+++ b/src/sql/models/qsqltablemodel.h
@@ -79,7 +79,9 @@ public:
QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
+ bool isDirty() const;
bool isDirty(const QModelIndex &index) const;
+
void clear();
virtual void setEditStrategy(EditStrategy strategy);
diff --git a/src/sql/models/qsqltablemodel_p.h b/src/sql/models/qsqltablemodel_p.h
index 323964afe8..20ca63af61 100644
--- a/src/sql/models/qsqltablemodel_p.h
+++ b/src/sql/models/qsqltablemodel_p.h
@@ -106,6 +106,8 @@ public:
inline Op op() const { return m_op; }
inline void setOp(Op o)
{
+ if (o == None)
+ m_submitted = true;
if (o == m_op)
return;
m_submitted = (o != Insert && o != Delete);
diff --git a/src/src.pro b/src/src.pro
index 21916b31f4..4efa017065 100644
--- a/src/src.pro
+++ b/src/src.pro
@@ -62,15 +62,10 @@ src_concurrent.target = sub-concurrent
src_opengl.depends = src_gui src_widgets
src_sql.depends = src_corelib
src_testlib.depends = src_corelib src_gui src_widgets
- src_plugins.depends = src_gui src_sql src_xml
- qpa: src_plugins.depends = src_platformsupport
- contains(QT_CONFIG, opengl)|contains(QT_CONFIG, opengles1)|contains(QT_CONFIG, opengles2) {
- src_plugins.depends += src_opengl
- src_declarative.depends += src_opengl
- src_webkit.depends += src_opengl
- }
+ src_plugins.depends = src_gui src_sql src_xml src_platformsupport
}
+contains(QT_CONFIG, no-widgets): SRC_SUBDIRS -= src_opengl src_widgets src_printsupport src_testlib
# This creates a sub-src rule
sub_src_target.CONFIG = recursive
diff --git a/src/testlib/qtestaccessible.h b/src/testlib/qtestaccessible.h
index f9b1b97ac6..807cc2f846 100644
--- a/src/testlib/qtestaccessible.h
+++ b/src/testlib/qtestaccessible.h
@@ -63,7 +63,8 @@ QT_BEGIN_NAMESPACE
class QObject;
-typedef QList<QAccessibleEvent> EventList;
+// Use pointers since we subclass QAccessibleEvent
+typedef QList<QAccessibleEvent*> EventList;
bool operator==(const QAccessibleEvent &l, const QAccessibleEvent &r)
{
@@ -100,8 +101,18 @@ public:
static bool verifyEvent(const QAccessibleEvent& ev)
{
if (eventList().isEmpty())
- return FALSE;
- return eventList().takeFirst() == ev;
+ return false;
+ QAccessibleEvent *first = eventList().takeFirst();
+ bool res = *first == ev;
+ delete first;
+ return res;
+ }
+ static bool containsEvent(const QAccessibleEvent &event) {
+ Q_FOREACH (QAccessibleEvent *ev, eventList()) {
+ if (*ev == event)
+ return true;
+ }
+ return false;
}
private:
@@ -129,17 +140,16 @@ private:
}
}
- static void updateHandler(const QAccessibleEvent &event)
+ static void updateHandler(QAccessibleEvent *event)
{
eventList().append(copyEvent(event));
}
-
- static QAccessibleEvent copyEvent(const QAccessibleEvent &event)
+ static QAccessibleEvent *copyEvent(QAccessibleEvent *event)
{
- if (event.type() == QAccessible::StateChanged)
- return QAccessibleStateChangeEvent(static_cast<const QAccessibleStateChangeEvent*>(&event)->changedStates(),
- event.object(), event.child());
- return QAccessibleEvent(event.type(), event.object(), event.child());
+ if (event->type() == QAccessible::StateChanged)
+ return new QAccessibleStateChangeEvent(static_cast<const QAccessibleStateChangeEvent*>(event)->changedStates(),
+ event->object(), event->child());
+ return new QAccessibleEvent(event->type(), event->object(), event->child());
}
static EventList &eventList()
diff --git a/src/testlib/qtestmouse.h b/src/testlib/qtestmouse.h
index 593e164b01..441cfa1f65 100644
--- a/src/testlib/qtestmouse.h
+++ b/src/testlib/qtestmouse.h
@@ -70,6 +70,15 @@ namespace QTest
{
enum MouseAction { MousePress, MouseRelease, MouseClick, MouseDClick, MouseMove };
+ static void waitForEvents()
+ {
+#ifdef Q_OS_MAC
+ QTest::qWait(20);
+#else
+ qApp->processEvents();
+#endif
+ }
+
static void mouseEvent(MouseAction action, QWindow *window, Qt::MouseButton button,
Qt::KeyboardModifiers stateKey, QPoint pos, int delay=-1)
{
@@ -119,15 +128,11 @@ namespace QTest
case MouseMove:
QWindowSystemInterface::handleMouseEvent(window,pos,window->mapToGlobal(pos),lastButton,stateKey);
//QCursor::setPos(window->mapToGlobal(pos));
-#ifdef Q_OS_MAC
- QTest::qWait(20);
-#else
- qApp->processEvents();
-#endif
- return;
+ break;
default:
QTEST_ASSERT(false);
}
+ waitForEvents();
}
inline void mousePress(QWindow *window, Qt::MouseButton button, Qt::KeyboardModifiers stateKey = 0,
diff --git a/src/testlib/qtestsystem.h b/src/testlib/qtestsystem.h
index 1f10967557..ade5f4c8ac 100644
--- a/src/testlib/qtestsystem.h
+++ b/src/testlib/qtestsystem.h
@@ -53,9 +53,6 @@ QT_BEGIN_NAMESPACE
class QWidget;
-#ifdef Q_WS_X11
-extern void qt_x11_wait_for_window_manager(QWidget *w);
-#endif
namespace QTest
{
@@ -74,22 +71,25 @@ namespace QTest
inline static bool qWaitForWindowShown(QWidget *window)
{
-#if defined(Q_WS_X11)
- qt_x11_wait_for_window_manager(window);
- QCoreApplication::processEvents();
-#else
Q_UNUSED(window);
qWait(200);
-#endif
return true;
}
+
inline static bool qWaitForWindowShown(QWindow *window)
{
- Q_UNUSED(window);
- qWait(200);
+ QElapsedTimer timer;
+ timer.start();
+ while (!window->isExposed()) {
+ int remaining = int(timer.elapsed()) - 1000;
+ if (remaining <= 0)
+ break;
+ QCoreApplication::processEvents(QEventLoop::AllEvents, remaining);
+ QCoreApplication::sendPostedEvents(0, QEvent::DeferredDelete);
+ QTest::qSleep(10);
+ }
return true;
}
-
}
QT_END_NAMESPACE
diff --git a/src/tools/bootstrap/bootstrap.pri b/src/tools/bootstrap/bootstrap.pri
index e34cc5c033..228fcaca0d 100644
--- a/src/tools/bootstrap/bootstrap.pri
+++ b/src/tools/bootstrap/bootstrap.pri
@@ -29,18 +29,13 @@ win32:DEFINES += QT_NODLL
INCLUDEPATH += $$QT_BUILD_TREE/include \
$$QT_BUILD_TREE/include/QtCore \
$$QT_BUILD_TREE/include/QtCore/$$QT.core.VERSION \
- $$QT_BUILD_TREE/include/QtCore/$$QT.core.VERSION/QtCore \
- $$QT_BUILD_TREE/include/QtXml \
- $$QT_BUILD_TREE/include/QtXml/$$QT.xml.VERSION \
- $$QT_BUILD_TREE/include/QtXml/$$QT.xml.VERSION/QtXml \
- $$QT_SOURCE_TREE/src/xml
+ $$QT_BUILD_TREE/include/QtCore/$$QT.core.VERSION/QtCore
DEPENDPATH += $$INCLUDEPATH \
$$QT_SOURCE_TREE/src/corelib/global \
$$QT_SOURCE_TREE/src/corelib/kernel \
$$QT_SOURCE_TREE/src/corelib/tools \
$$QT_SOURCE_TREE/src/corelib/io \
- $$QT_SOURCE_TREE/src/corelib/codecs \
- $$QT_SOURCE_TREE/src/xml
+ $$QT_SOURCE_TREE/src/corelib/codecs
hpux-acc*|hpuxi-acc* {
LIBS += $$QT_BUILD_TREE/src/tools/bootstrap/libbootstrap.a
diff --git a/src/tools/bootstrap/bootstrap.pro b/src/tools/bootstrap/bootstrap.pro
index 571bae7f24..9c34c758d7 100644
--- a/src/tools/bootstrap/bootstrap.pro
+++ b/src/tools/bootstrap/bootstrap.pro
@@ -32,10 +32,7 @@ win32:DEFINES += QT_NODLL
INCLUDEPATH += $$QT_BUILD_TREE/include \
$$QT_BUILD_TREE/include/QtCore \
$$QT_BUILD_TREE/include/QtCore/$$QT.core.VERSION \
- $$QT_BUILD_TREE/include/QtCore/$$QT.core.VERSION/QtCore \
- $$QT_BUILD_TREE/include/QtXml \
- $$QT_BUILD_TREE/include/QtXml/$$QT.xml.VERSION \
- $$QT_BUILD_TREE/include/QtXml/$$QT.xml.VERSION/QtXml \
+ $$QT_BUILD_TREE/include/QtCore/$$QT.core.VERSION/QtCore
DEPENDPATH += $$INCLUDEPATH \
../../corelib/global \
@@ -43,8 +40,7 @@ DEPENDPATH += $$INCLUDEPATH \
../../corelib/tools \
../../corelib/io \
../../corelib/codecs \
- ../../corelib/json \
- ../../xml
+ ../../corelib/json
SOURCES += \
../../corelib/codecs/qlatincodec.cpp \
@@ -97,9 +93,7 @@ SOURCES += \
../../corelib/json/qjsonarray.cpp \
../../corelib/json/qjsonvalue.cpp \
../../corelib/json/qjsonparser.cpp \
- ../../corelib/json/qjsonwriter.cpp \
- ../../xml/dom/qdom.cpp \
- ../../xml/sax/qxml.cpp
+ ../../corelib/json/qjsonwriter.cpp
unix:SOURCES += ../../corelib/io/qfilesystemengine_unix.cpp \
../../corelib/io/qfilesystemiterator_unix.cpp \
diff --git a/src/tools/qdoc/codemarker.cpp b/src/tools/qdoc/codemarker.cpp
index 791e08062b..9f22a287d2 100644
--- a/src/tools/qdoc/codemarker.cpp
+++ b/src/tools/qdoc/codemarker.cpp
@@ -288,12 +288,17 @@ QString CodeMarker::taggedNode(const Node* node)
}
tag = QLatin1String("@property");
break;
+ case Node::QmlMethod:
+ case Node::QmlSignal:
+ case Node::QmlSignalHandler:
+ tag = QLatin1String("@function");
+ break;
default:
tag = QLatin1String("@unknown");
break;
}
- return QLatin1Char('<') + tag + QLatin1Char('>') + protect(name)
- + QLatin1String("</") + tag + QLatin1Char('>');
+ return (QLatin1Char('<') + tag + QLatin1Char('>') + protect(name)
+ + QLatin1String("</") + tag + QLatin1Char('>'));
}
QString CodeMarker::taggedQmlNode(const Node* node)
@@ -373,6 +378,13 @@ QString CodeMarker::sortName(const Node *node, const QString* name)
if (node->type() == Node::Property || node->type() == Node::Variable)
return QLatin1Char('E') + nodeName;
+ if ((node->type() == Node::QmlMethod) ||
+ (node->type() == Node::QmlSignal) ||
+ (node->type() == Node::QmlSignalHandler)) {
+ const FunctionNode* func = static_cast<const FunctionNode *>(node);
+ return QLatin1String("E") + func->signature();
+ }
+
return QLatin1Char('B') + nodeName;
}
diff --git a/src/tools/qdoc/config.h b/src/tools/qdoc/config.h
index 461e0b969c..6a89684e79 100644
--- a/src/tools/qdoc/config.h
+++ b/src/tools/qdoc/config.h
@@ -171,7 +171,6 @@ private:
#define CONFIG_SHOWINTERNAL "showinternal"
#define CONFIG_SOURCEDIRS "sourcedirs"
#define CONFIG_SOURCEENCODING "sourceencoding"
-#define CONFIG_SOURCEMODULES "sourcemodules"
#define CONFIG_SOURCES "sources"
#define CONFIG_SPURIOUS "spurious"
#define CONFIG_STYLEDIRS "styledirs"
diff --git a/src/tools/qdoc/cppcodemarker.cpp b/src/tools/qdoc/cppcodemarker.cpp
index cc68865cc0..3e7d190fe4 100644
--- a/src/tools/qdoc/cppcodemarker.cpp
+++ b/src/tools/qdoc/cppcodemarker.cpp
@@ -342,19 +342,47 @@ QString CppCodeMarker::markedUpSynopsis(const Node *node,
QString CppCodeMarker::markedUpQmlItem(const Node* node, bool summary)
{
QString name = taggedQmlNode(node);
- if (summary) {
+ if (summary)
name = linkTag(node,name);
- } else if (node->type() == Node::QmlProperty) {
+ else if (node->type() == Node::QmlProperty) {
const QmlPropertyNode* pn = static_cast<const QmlPropertyNode*>(node);
if (pn->isAttached())
name.prepend(pn->element() + QLatin1Char('.'));
}
name = "<@name>" + name + "</@name>";
- QString synopsis = name;
+ QString synopsis;
if (node->type() == Node::QmlProperty) {
const QmlPropertyNode* pn = static_cast<const QmlPropertyNode*>(node);
- synopsis += " : " + typified(pn->dataType());
+ synopsis = name + " : " + typified(pn->dataType());
}
+ else if ((node->type() == Node::QmlMethod) ||
+ (node->type() == Node::QmlSignal) ||
+ (node->type() == Node::QmlSignalHandler)) {
+ const FunctionNode* func = static_cast<const FunctionNode*>(node);
+ if (!func->returnType().isEmpty())
+ synopsis = typified(func->returnType()) + QLatin1Char(' ') + name;
+ else
+ synopsis = name;
+ synopsis += "(";
+ if (!func->parameters().isEmpty()) {
+ QList<Parameter>::ConstIterator p = func->parameters().begin();
+ while (p != func->parameters().end()) {
+ if (p != func->parameters().begin())
+ synopsis += ", ";
+ synopsis += typified((*p).leftType());
+ if (!(*p).name().isEmpty()) {
+ if (!synopsis.endsWith("("))
+ synopsis += " ";
+ synopsis += "<@param>" + protect((*p).name()) + "</@param>";
+ }
+ synopsis += protect((*p).rightType());
+ ++p;
+ }
+ }
+ synopsis += QLatin1Char(')');
+ }
+ else
+ synopsis = name;
QString extra;
if (summary) {
diff --git a/src/tools/qdoc/cppcodeparser.cpp b/src/tools/qdoc/cppcodeparser.cpp
index b83e617ee3..86e57a0372 100644
--- a/src/tools/qdoc/cppcodeparser.cpp
+++ b/src/tools/qdoc/cppcodeparser.cpp
@@ -207,7 +207,7 @@ void CppCodeParser::initializeParser(const Config &config)
if (!exampleFilePatterns.isEmpty())
exampleNameFilter = exampleFilePatterns.join(" ");
else
- exampleNameFilter = "*.cpp *.h *.js *.xq *.svg *.xml *.ui";
+ exampleNameFilter = "*.cpp *.h *.js *.xq *.svg *.xml *.dita *.ui";
QStringList exampleImagePatterns = config.getStringList(
CONFIG_EXAMPLES + Config::dot + CONFIG_IMAGEEXTENSIONS);
@@ -797,8 +797,9 @@ Node* CppCodeParser::processTopicCommand(const Doc& doc,
return makeFunctionNode(doc,arg,qmlClass,Node::QmlSignal,false,COMMAND_QMLSIGNAL);
else if (command == COMMAND_QMLATTACHEDSIGNAL)
return makeFunctionNode(doc,arg,qmlClass,Node::QmlSignal,true,COMMAND_QMLATTACHEDSIGNAL);
- else if (command == COMMAND_QMLMETHOD)
+ else if (command == COMMAND_QMLMETHOD) {
return makeFunctionNode(doc,arg,qmlClass,Node::QmlMethod,false,COMMAND_QMLMETHOD);
+ }
else if (command == COMMAND_QMLATTACHEDMETHOD)
return makeFunctionNode(doc,arg,qmlClass,Node::QmlMethod,true,COMMAND_QMLATTACHEDMETHOD);
else
diff --git a/src/tools/qdoc/ditaxmlgenerator.cpp b/src/tools/qdoc/ditaxmlgenerator.cpp
index a4c5cbeea0..6b0c2dce88 100644
--- a/src/tools/qdoc/ditaxmlgenerator.cpp
+++ b/src/tools/qdoc/ditaxmlgenerator.cpp
@@ -297,14 +297,23 @@ void DitaXmlGenerator::writeStartTag(DitaTag t)
/*!
Pop the current DITA tag off the stack, and write the
- appropriate end tag to the DITA XML file.
+ appropriate end tag to the DITA XML file. If \a t is
+ not \e DT_NONE (default), then \a t contains the enum
+ value of the tag that should be on top of the stack.
+
+ If the stack is empty, no end tag is written and false
+ is returned. Otherwise, an end tag is written and true
+ is returned.
*/
-void DitaXmlGenerator::writeEndTag(DitaTag t)
+bool DitaXmlGenerator::writeEndTag(DitaTag t)
{
+ if (tagStack.isEmpty())
+ return false;
DitaTag top = tagStack.pop();
if (t > DT_NONE && top != t)
qDebug() << "Expected:" << t << "ACTUAL:" << top;
xmlWriter().writeEndElement();
+ return true;
}
/*!
@@ -2316,7 +2325,10 @@ void DitaXmlGenerator::generateFakeNode(const FakeNode* fake, CodeMarker* marker
}
}
leaveSection(); // </section>
- writeEndTag(); // </body>
+ if (!writeEndTag()) { // </body>
+ fake->doc().location().warning(tr("Pop of empty XML tag stack; generating DITA for '%1'").arg(fake->name()));
+ return;
+ }
writeRelatedLinks(fake, marker);
writeEndTag(); // </topic>
}
@@ -2378,11 +2390,11 @@ void DitaXmlGenerator::writeRelatedLinks(const FakeNode* node, CodeMarker* marke
}
/*!
- Returns "xml" for this subclass of class Generator.
+ Returns "dita" for this subclass of class Generator.
*/
QString DitaXmlGenerator::fileExtension(const Node * /* node */) const
{
- return "xml";
+ return "dita";
}
/*!
@@ -3215,12 +3227,13 @@ void DitaXmlGenerator::generateQmlItem(const Node* node,
}
marked.replace(QRegExp("<@param>([a-z]+)_([1-9n])</@param>"),
"<i>\\1<sub>\\2</sub></i>");
+#if 0
marked.replace("<@param>", "<i>");
marked.replace("</@param>", "</i>");
marked.replace("<@extra>", "<tt>");
marked.replace("</@extra>", "</tt>");
-
+#endif
if (summary) {
marked.remove("<@type>");
marked.remove("</@type>");
@@ -3572,7 +3585,8 @@ void DitaXmlGenerator::writeText(const QString& markedCode,
html.clear();
}
writeStartTag(DT_i);
- writeCharacters(" " + arg.toString());
+ //writeCharacters(" " + arg.toString());
+ writeCharacters(arg.toString());
writeEndTag(); // </i>
}
else if (k == 5) { // <@extra>
@@ -4251,7 +4265,8 @@ QString DitaXmlGenerator::getLink(const Atom* atom,
QString guid = lookupGuid(link,refForAtom(targetAtom,*node));
link += QLatin1Char('#') + guid;
}
- else if (!link.isEmpty() && *node && link.endsWith(".xml")) {
+ else if (!link.isEmpty() && *node &&
+ (link.endsWith(".xml") || link.endsWith(".dita"))) {
link += QLatin1Char('#') + (*node)->guid();
}
}
@@ -5653,7 +5668,8 @@ DitaXmlGenerator::generateInnerNode(const InnerNode* node)
CodeMarker *marker = CodeMarker::markerForFileName(node->location().filePath());
if (node->parent() != 0) {
- beginSubPage(node, fileName(node));
+ if (!node->name().endsWith(".ditamap"))
+ beginSubPage(node, fileName(node));
if (node->type() == Node::Namespace || node->type() == Node::Class) {
generateClassLikeNode(node, marker);
}
@@ -5665,7 +5681,8 @@ DitaXmlGenerator::generateInnerNode(const InnerNode* node)
else
generateFakeNode(static_cast<const FakeNode*>(node), marker);
}
- endSubPage();
+ if (!node->name().endsWith(".ditamap"))
+ endSubPage();
}
NodeList::ConstIterator c = node->childNodes().begin();
@@ -5705,6 +5722,9 @@ bool DitaXmlGenerator::isDuplicate(NodeMultiMap* nmm, const QString& key, Node*
/*!
Collect all the nodes in the tree according to their type or subtype.
+ If a node is found that is named index.html, return that node as the
+ root page node.
+
type: Class
type: Namespace
@@ -5718,159 +5738,117 @@ bool DitaXmlGenerator::isDuplicate(NodeMultiMap* nmm, const QString& key, Node*
subtype: QML class
subtype: QML module
*/
-void DitaXmlGenerator::collectNodesByTypeAndSubtype(const InnerNode* parent)
+Node* DitaXmlGenerator::collectNodesByTypeAndSubtype(const InnerNode* parent)
{
- //qDebug() << "START";
+ Node* rootPageNode = 0;
const NodeList& children = parent->childNodes();
if (children.size() == 0)
- return;
+ return rootPageNode;
- bool related;
QString message;
for (int i=0; i<children.size(); ++i) {
Node* child = children[i];
- if (!child || child->isInternal() || child->doc().isEmpty())
+ if ((child->type() == Node::Fake) && (child->subType() == Node::Collision)) {
+ const FakeNode* fake = static_cast<const FakeNode*>(child);
+ Node* n = collectNodesByTypeAndSubtype(fake);
+ if (n)
+ rootPageNode = n;
continue;
- if (child->relates()) {
- related = true;
- message = child->relates()->name();
}
- else {
- related = false;
- message = "has documentation but no \\relates command";
+ if (!child || child->isInternal() || child->doc().isEmpty())
+ continue;
+
+ if (child->name() == "index.html") {
+ rootPageNode = child;
}
+
switch (child->type()) {
case Node::Namespace:
- //qDebug() << "NODE: Namespace" << "TITLE:" << child->name()
- // << "FILE:" << fileName(child);
if (!isDuplicate(nodeTypeMaps[Node::Namespace],child->name(),child))
nodeTypeMaps[Node::Namespace]->insert(child->name(),child);
break;
case Node::Class:
- //qDebug() << "NODE: Class" << "TITLE:" << child->name()
- // << "FILE:" << fileName(child);
if (!isDuplicate(nodeTypeMaps[Node::Class],child->name(),child))
nodeTypeMaps[Node::Class]->insert(child->name(),child);
break;
case Node::Fake:
- //qDebug() << "NODE: Fake";
switch (child->subType()) {
case Node::Example:
- //qDebug() << "FAKE NODE: Example" << "TITLE:" << child->title()
- // << "FILE:" << fileName(child);
if (!isDuplicate(nodeSubtypeMaps[Node::Example],child->title(),child))
nodeSubtypeMaps[Node::Example]->insert(child->title(),child);
break;
case Node::HeaderFile:
- //qDebug() << "FAKE NODE: Header file" << "TITLE:" << child->title()
- // << "FILE:" << fileName(child);
if (!isDuplicate(nodeSubtypeMaps[Node::HeaderFile],child->title(),child))
nodeSubtypeMaps[Node::HeaderFile]->insert(child->title(),child);
break;
case Node::File:
- //qDebug() << "FAKE NODE: File";
break;
case Node::Image:
- //qDebug() << "FAKE NODE: Image";
break;
case Node::Group:
- //qDebug() << "FAKE NODE: Group" << "TITLE:" << child->title()
- // << "FILE:" << fileName(child);
if (!isDuplicate(nodeSubtypeMaps[Node::Group],child->title(),child))
nodeSubtypeMaps[Node::Group]->insert(child->title(),child);
break;
case Node::Module:
- //qDebug() << "FAKE NODE: Module" << "TITLE:" << child->title()
- // << "FILE:" << fileName(child);
if (!isDuplicate(nodeSubtypeMaps[Node::Module],child->title(),child))
nodeSubtypeMaps[Node::Module]->insert(child->title(),child);
break;
case Node::Page:
- //qDebug() << "FAKE NODE: Page" << "PAGE TYPE:" << child->pageTypeString()
- // << "TITLE:" << child->title()
- // << "FILE:" << fileName(child);
if (!isDuplicate(pageTypeMaps[child->pageType()],child->title(),child))
pageTypeMaps[child->pageType()]->insert(child->title(),child);
break;
case Node::ExternalPage:
- //qDebug() << "FAKE NODE: External page" << "TITLE:" << child->title()
- // << "FILE:" << fileName(child);
if (!isDuplicate(nodeSubtypeMaps[Node::ExternalPage],child->title(),child))
nodeSubtypeMaps[Node::ExternalPage]->insert(child->title(),child);
break;
case Node::QmlClass:
- //qDebug() << "FAKE NODE: QML class" << "TITLE:" << child->title() << "FILE:"
- // << fileName(child);
if (!isDuplicate(nodeSubtypeMaps[Node::QmlClass],child->title(),child))
nodeSubtypeMaps[Node::QmlClass]->insert(child->title(),child);
break;
case Node::QmlPropertyGroup:
- //qDebug() << "FAKE NODE: QML property group";
break;
case Node::QmlBasicType:
- //qDebug() << "FAKE NODE: QML basic type" << "TITLE:" << child->title()
- // << "FILE:" << fileName(child);
if (!isDuplicate(nodeSubtypeMaps[Node::QmlBasicType],child->title(),child))
nodeSubtypeMaps[Node::QmlBasicType]->insert(child->title(),child);
break;
case Node::QmlModule:
- //qDebug() << "FAKE NODE: QML module" << "TITLE:" << child->title()
- // << "FILE:" << fileName(child);
if (!isDuplicate(nodeSubtypeMaps[Node::QmlModule],child->title(),child))
nodeSubtypeMaps[Node::QmlModule]->insert(child->title(),child);
break;
case Node::Collision:
- //qDebug() << "FAKE NODE: Collision";
+ qDebug() << "FAKE NODE: Collision";
+ if (!isDuplicate(nodeSubtypeMaps[Node::Collision],child->title(),child))
+ nodeSubtypeMaps[Node::Collision]->insert(child->title(),child);
break;
default:
break;
}
break;
case Node::Enum:
- if (!related)
- child->location().warning(tr("Global enum, %1, %2").arg(child->name()).arg(message));
break;
case Node::Typedef:
- if (!related)
- child->location().warning(tr("Global typedef, %1, %2").arg(child->name()).arg(message));
break;
case Node::Function:
- if (!related) {
- const FunctionNode* fn = static_cast<const FunctionNode*>(child);
- if (fn->isMacro())
- child->location().warning(tr("Global macro, %1, %2").arg(child->name()).arg(message));
- else
- child->location().warning(tr("Global function, %1(), %2").arg(child->name()).arg(message));
- }
break;
case Node::Property:
break;
case Node::Variable:
- if (!related)
- child->location().warning(tr("Global variable, %1, %2").arg(child->name()).arg(message));
break;
case Node::Target:
break;
case Node::QmlProperty:
- if (!related)
- child->location().warning(tr("Global QML property, %1, %2").arg(child->name()).arg(message));
break;
case Node::QmlSignal:
- if (!related)
- child->location().warning(tr("Global QML, signal, %1 %2").arg(child->name()).arg(message));
break;
case Node::QmlSignalHandler:
- if (!related)
- child->location().warning(tr("Global QML signal handler, %1, %2").arg(child->name()).arg(message));
break;
case Node::QmlMethod:
- if (!related)
- child->location().warning(tr("Global QML method, %1, %2").arg(child->name()).arg(message));
break;
default:
break;
}
}
+ return rootPageNode;
}
/*!
@@ -5879,16 +5857,13 @@ void DitaXmlGenerator::collectNodesByTypeAndSubtype(const InnerNode* parent)
*/
void DitaXmlGenerator::writeDitaMap(const Tree *tree)
{
- beginSubPage(tree->root(),"qt.ditamap");
-
QString doctype;
- doctype = "<!DOCTYPE map PUBLIC \"-//OASIS//DTD DITA Map//EN\" \"map.dtd\">";
- // doctype = "<!DOCTYPE cxxAPIMap PUBLIC \"-//NOKIA//DTD DITA C++ API Map Reference Type v0.6.0//EN\" \"dtd/cxxAPIMap.dtd\">";
+#if 0
+ beginSubPage(tree->root(),"qt.ditamap");
+ doctype = "<!DOCTYPE map PUBLIC \"-//OASIS//DTD DITA Map//EN\" \"map.dtd\">";
xmlWriter().writeDTD(doctype);
writeStartTag(DT_map);
- //xmlWriter().writeAttribute("id","Qt-DITA-Map");
- //xmlWriter().writeAttribute("title","Qt DITA Map");
writeStartTag(DT_topicmeta);
writeStartTag(DT_shortdesc);
xmlWriter().writeCharacters("The top level map for the Qt documentation");
@@ -5903,6 +5878,7 @@ void DitaXmlGenerator::writeDitaMap(const Tree *tree)
++i;
}
endSubPage();
+#endif
for (unsigned i=0; i<Node::LastType; ++i)
nodeTypeMaps[i] = new NodeMultiMap;
@@ -5910,22 +5886,9 @@ void DitaXmlGenerator::writeDitaMap(const Tree *tree)
nodeSubtypeMaps[i] = new NodeMultiMap;
for (unsigned i=0; i<Node::OnBeyondZebra; ++i)
pageTypeMaps[i] = new NodeMultiMap;
- collectNodesByTypeAndSubtype(tree->root());
-#if 0
- for (unsigned i=0; i<Node::LastType; ++i) {
- if (nodeTypeMaps[i] && nodeTypeMaps[i]->size() > 0)
- qDebug() << "NODE TYPE:" << Node::nodeTypeString(i) << nodeTypeMaps[i]->size();
- }
- for (unsigned i=1; i<Node::LastSubtype; ++i) {
- if (nodeSubtypeMaps[i] && nodeSubtypeMaps[i]->size() > 0)
- qDebug() << "NODE SUBTYPE:" << Node::nodeSubtypeString(i) << nodeSubtypeMaps[i]->size();
- }
- for (unsigned i=1; i<Node::OnBeyondZebra; ++i) {
- if (pageTypeMaps[i] && pageTypeMaps[i]->size() > 0)
- qDebug() << "PAGE TYPE:" << Node::pageTypeString(i) << pageTypeMaps[i]->size();
- }
-#endif
- beginSubPage(tree->root(),"test.ditamap");
+ Node* rootPageNode = collectNodesByTypeAndSubtype(tree->root());
+
+ beginSubPage(tree->root(),"qt.ditamap");
doctype = "<!DOCTYPE map PUBLIC \"-//OASIS//DTD DITA Map//EN\" \"map.dtd\">";
xmlWriter().writeDTD(doctype);
@@ -5936,6 +5899,11 @@ void DitaXmlGenerator::writeDitaMap(const Tree *tree)
writeEndTag(); // </shortdesc>
writeEndTag(); // </topicmeta>
+ writeStartTag(DT_topicref);
+ xmlWriter().writeAttribute("navtitle",project);
+ if (rootPageNode)
+ xmlWriter().writeAttribute("href",fileName(rootPageNode));
+
writeTopicrefs(pageTypeMaps[Node::OverviewPage], "overviews");
writeTopicrefs(pageTypeMaps[Node::HowToPage], "howtos");
writeTopicrefs(pageTypeMaps[Node::TutorialPage], "tutorials");
@@ -5951,6 +5919,7 @@ void DitaXmlGenerator::writeDitaMap(const Tree *tree)
writeTopicrefs(nodeSubtypeMaps[Node::QmlModule], "QML modules");
writeTopicrefs(nodeSubtypeMaps[Node::QmlBasicType], "QML basic types");
+ writeEndTag(); // </topicref>
endSubPage();
for (unsigned i=0; i<Node::LastType; ++i)
@@ -5971,8 +5940,6 @@ void DitaXmlGenerator::writeDitaMap(const DitaMapNode* node)
QString doctype;
doctype = "<!DOCTYPE map PUBLIC \"-//OASIS//DTD DITA Map//EN\" \"map.dtd\">";
- // doctype = "<!DOCTYPE cxxAPIMap PUBLIC \"-//NOKIA//DTD DITA C++ API Map Reference Type v0.6.0//EN\" \"dtd/cxxAPIMap.dtd\">";
-
xmlWriter().writeDTD(doctype);
writeStartTag(DT_map);
writeStartTag(DT_topicmeta);
diff --git a/src/tools/qdoc/ditaxmlgenerator.h b/src/tools/qdoc/ditaxmlgenerator.h
index ba96265b48..b3da02bce1 100644
--- a/src/tools/qdoc/ditaxmlgenerator.h
+++ b/src/tools/qdoc/ditaxmlgenerator.h
@@ -445,7 +445,7 @@ private:
void writeDitaMap(const Tree* tree);
void writeDitaMap(const DitaMapNode* node);
void writeStartTag(DitaTag t);
- void writeEndTag(DitaTag t=DT_NONE);
+ bool writeEndTag(DitaTag t=DT_NONE);
DitaTag currentTag();
void clearSectionNesting() { sectionNestingLevel = 0; }
int enterApiDesc(const QString& outputclass, const QString& title);
@@ -455,7 +455,7 @@ private:
int currentSectionNestingLevel() const { return sectionNestingLevel; }
QString metadataDefault(DitaTag t) const;
QString stripMarkup(const QString& src) const;
- void collectNodesByTypeAndSubtype(const InnerNode* parent);
+ Node* collectNodesByTypeAndSubtype(const InnerNode* parent);
void writeDitaRefs(const DitaRefList& ditarefs);
void writeTopicrefs(NodeMultiMap* nmm, const QString& navtitle);
bool isDuplicate(NodeMultiMap* nmm, const QString& key, Node* node);
diff --git a/src/tools/qdoc/doc/config/qdoc-project.qdocconf b/src/tools/qdoc/doc/config/qdoc-project.qdocconf
index d85058cd6a..2ac9107f38 100644
--- a/src/tools/qdoc/doc/config/qdoc-project.qdocconf
+++ b/src/tools/qdoc/doc/config/qdoc-project.qdocconf
@@ -28,8 +28,8 @@ exampledirs = .. \
imagedirs = ../../../doc/src/templates/images \
images
-outputdir = $$MODULE_BUILD_TREE/tools/qdoc3/doc/html
-tagfile = $$MODULE_BUILD_TREE/tools/qdoc3/doc/html/qdoc.tags
+outputdir = $$MODULE_BUILD_TREE/tools/qdoc/doc/html
+tagfile = $$MODULE_BUILD_TREE/tools/qdoc/doc/html/qdoc.tags
qhp.projects = QDoc
diff --git a/src/tools/qdoc/doc/config/qt-html-templates-online.qdocconf b/src/tools/qdoc/doc/config/qt-html-templates-online.qdocconf
index af186f0568..f799fb3549 100644
--- a/src/tools/qdoc/doc/config/qt-html-templates-online.qdocconf
+++ b/src/tools/qdoc/doc/config/qt-html-templates-online.qdocconf
@@ -64,20 +64,22 @@ HTML.footer = \
" <div class=\"footer\">\n" \
" <p>\n" \
" <acronym title=\"Copyright\">&copy;</acronym> 2012 Nokia Corporation and/or its\n" \
- " subsidiaries. Nokia, Qt and their respective logos are trademarks of Nokia Corporation \n" \
- " in Finland and/or other countries worldwide.</p>\n" \
- " <p>\n" \
- " All other trademarks are property of their respective owners. <a title=\"Privacy Policy\"\n" \
- " href=\"http://qt.nokia.com/about/privacy-policy\">Privacy Policy</a></p>\n" \
+ " subsidiaries. Documentation contributions included herein are the copyrights of\n" \
+ " their respective owners.</p>\n" \
" <br />\n" \
" <p>\n" \
- " Licensees holding valid Qt Commercial licenses may use this document in accordance with the" \
- " Qt Commercial License Agreement provided with the Software or, alternatively, in accordance" \
- " with the terms contained in a written agreement between you and Nokia.</p>\n" \
+ " The documentation provided herein is licensed under the terms of the\n" \
+ " <a href=\"http://www.gnu.org/licenses/fdl.html\">GNU Free Documentation\n" \
+ " License version 1.3</a> as published by the Free Software Foundation.</p>\n" \
+ " <p>\n" \
+ " Documentation sources may be obtained from <a href=\"http://www.qt-project.org\">\n" \
+ " www.qt-project.org</a>.</p>\n" \
+ " <br />\n" \
" <p>\n" \
- " Alternatively, this document may be used under the terms of the <a href=\"http://www.gnu.org/licenses/fdl.html\">GNU\n" \
- " Free Documentation License version 1.3</a>\n" \
- " as published by the Free Software Foundation.</p>\n" \
+ " Nokia, Qt and their respective logos are trademarks of Nokia Corporation \n" \
+ " in Finland and/or other countries worldwide. All other trademarks are property\n" \
+ " of their respective owners. <a title=\"Privacy Policy\"\n" \
+ " href=\"http://en.gitorious.org/privacy_policy/\">Privacy Policy</a></p>\n" \
" </div>\n"
diff --git a/src/tools/qdoc/doc/config/qt-html-templates.qdocconf b/src/tools/qdoc/doc/config/qt-html-templates.qdocconf
index 2e15140945..5172c2fd51 100644
--- a/src/tools/qdoc/doc/config/qt-html-templates.qdocconf
+++ b/src/tools/qdoc/doc/config/qt-html-templates.qdocconf
@@ -22,22 +22,24 @@ HTML.footer = \
" </div>\n" \
"</div> \n" \
"<div class=\"footer\">\n" \
- " <p>\n" \
- " <acronym title=\"Copyright\">&copy;</acronym> 2012 Nokia Corporation and/or its\n" \
- " subsidiaries. Nokia, Qt and their respective logos are trademarks of Nokia Corporation \n" \
- " in Finland and/or other countries worldwide.</p>\n" \
- " <p>\n" \
- " All other trademarks are property of their respective owners. <a title=\"Privacy Policy\"\n" \
- " href=\"http://qt.nokia.com/about/privacy-policy\">Privacy Policy</a></p>\n" \
- " <br />\n" \
- " <p>\n" \
- " Licensees holding valid Qt Commercial licenses may use this document in accordance with the" \
- " Qt Commercial License Agreement provided with the Software or, alternatively, in accordance" \
- " with the terms contained in a written agreement between you and Nokia.</p>\n" \
- " <p>\n" \
- " Alternatively, this document may be used under the terms of the <a href=\"http://www.gnu.org/licenses/fdl.html\">GNU\n" \
- " Free Documentation License version 1.3</a>\n" \
- " as published by the Free Software Foundation.</p>\n" \
+ " <p>\n" \
+ " <acronym title=\"Copyright\">&copy;</acronym> 2012 Nokia Corporation and/or its\n" \
+ " subsidiaries. Documentation contributions included herein are the copyrights of\n" \
+ " their respective owners.</p>\n" \
+ " <br />\n" \
+ " <p>\n" \
+ " The documentation provided herein is licensed under the terms of the\n" \
+ " <a href=\"http://www.gnu.org/licenses/fdl.html\">GNU Free Documentation\n" \
+ " License version 1.3</a> as published by the Free Software Foundation.</p>\n" \
+ " <p>\n" \
+ " Documentation sources may be obtained from <a href=\"http://www.qt-project.org\">\n" \
+ " www.qt-project.org</a>.</p>\n" \
+ " <br />\n" \
+ " <p>\n" \
+ " Nokia, Qt and their respective logos are trademarks of Nokia Corporation \n" \
+ " in Finland and/or other countries worldwide. All other trademarks are property\n" \
+ " of their respective owners. <a title=\"Privacy Policy\"\n" \
+ " href=\"http://en.gitorious.org/privacy_policy/\">Privacy Policy</a></p>\n" \
"</div>\n" \
# Files not referenced in any qdoc file.
diff --git a/src/tools/qdoc/doc/qdoc-guide.qdoc b/src/tools/qdoc/doc/qdoc-guide.qdoc
index c3b37822fb..33cc5c67fd 100644
--- a/src/tools/qdoc/doc/qdoc-guide.qdoc
+++ b/src/tools/qdoc/doc/qdoc-guide.qdoc
@@ -89,7 +89,7 @@
To run qdoc, the project configuration file is supplied as an argument.
\code
- qdoc3 project.qdocconf
+ qdoc project.qdocconf
\endcode
The project configuration contains information that qdoc uses to create the
diff --git a/src/tools/qdoc/doc/qdoc-manual.qdoc b/src/tools/qdoc/doc/qdoc-manual.qdoc
index 3e67579f2a..e6bdf5af27 100644
--- a/src/tools/qdoc/doc/qdoc-manual.qdoc
+++ b/src/tools/qdoc/doc/qdoc-manual.qdoc
@@ -26,7 +26,7 @@
****************************************************************************/
/*!
- \page index.html
+ \page qdoc-index.html
\nextpage Introduction to QDoc
\title Table of Contents
@@ -138,11 +138,11 @@
\section1 Running QDoc
- The current name of the QDoc program is \c {qdoc3}. To run qdoc3
+ The current name of the QDoc program is \c {qdoc}. To run qdoc
from the command line, give it the name of a configuration file:
\quotation
- \c {$ ../../bin/qdoc3 ./config.qdocconf}
+ \c {$ ../../bin/qdoc ./config.qdocconf}
\endquotation
QDoc recognizes the \c {.qdocconf} suffix as a \l{The QDoc
@@ -2907,7 +2907,7 @@
\li Tutorial and Examples
\endlist
- \warning There appears to be a bug in qdoc3 here. If you include
+ \warning There appears to be a bug in qdoc here. If you include
any of the argument types, you get a numeric list. We're looking
into it.
@@ -7062,7 +7062,7 @@
QDoc on the command line:
\quotation
- \c {/current/dir$ ../../bin/qdoc3 ./config.qdocconf}
+ \c {/current/dir$ ../../bin/qdoc ./config.qdocconf}
\endquotation
\section1 General Description
@@ -7307,7 +7307,7 @@
looking for \e qt5. For example, this file would be:
\code
- ~/depot/qt5/qtdoc/tools/qdoc3/doc/qdoc-manual.qdoc
+ ~/depot/qt5/qtdoc/tools/qdoc/doc/qdoc-manual.qdoc
\endcode
QDoc scans the path for the basedir \e{qt5} and the next subdirectory
@@ -7365,7 +7365,7 @@
line using the -D option. For example:
\code
- currentdirectory$ qdoc3 -Dconsoleedition qt.qdocconf
+ currentdirectory$ qdoc -Dconsoleedition qt.qdocconf
\endcode
In this case the -D option ensures that the \c consoleedition
diff --git a/src/tools/qdoc/main.cpp b/src/tools/qdoc/main.cpp
index 11a54b4d38..85e97cdec9 100644
--- a/src/tools/qdoc/main.cpp
+++ b/src/tools/qdoc/main.cpp
@@ -76,6 +76,7 @@ QT_BEGIN_NAMESPACE
/*
The default indent for code is 4.
The default value for false is 0.
+ The default supported file extensions are cpp, h, qdoc and qml.
The default language is c++.
The default output format is html.
The default tab size is 8.
@@ -87,6 +88,7 @@ static const struct {
} defaults[] = {
{ CONFIG_CODEINDENT, "4" },
{ CONFIG_FALSEHOODS, "0" },
+ { CONFIG_FILEEXTENSIONS, "*.cpp *.h *.qdoc *.qml"},
{ CONFIG_LANGUAGE, "Cpp" },
{ CONFIG_OUTPUTFORMATS, "HTML" },
{ CONFIG_TABSIZE, "8" },
@@ -173,27 +175,6 @@ static void processQdocconfFile(const QString &fileName)
Location::initialize(config);
config.load(fileName);
- QStringList sourceModules;
- sourceModules = config.getStringList(CONFIG_SOURCEMODULES);
- Location sourceModulesLocation = config.lastLocation();
-
- if (!sourceModules.isEmpty()) {
- Location::information(tr("qdoc will generate documentation for the modules found in the sourcemodules variable."));
- foreach (const QString& sourceModule, sourceModules) {
- QString qdocconf = sourceModule;
- if (!qdocconf.endsWith(".qdocconf"))
- qdocconf += "/doc/config/module.qdocconf";
- QFile f(qdocconf);
- if (!f.exists()) {
- sourceModulesLocation.warning(tr("Can't find module's qdoc config file '%1'").arg(qdocconf));
- }
- else {
- Location::information(tr(" Including: %1").arg(qdocconf));
- config.load(qdocconf);
- }
- }
- }
-
/*
Add the defines to the configuration variables.
*/
diff --git a/src/tools/qdoc/node.cpp b/src/tools/qdoc/node.cpp
index 13c51c721d..e4350f1d9e 100644
--- a/src/tools/qdoc/node.cpp
+++ b/src/tools/qdoc/node.cpp
@@ -98,6 +98,7 @@ Node::Node(Type type, InnerNode *parent, const QString& name)
safeness_(UnspecifiedSafeness),
pageType_(NoPageType),
status_(Commendable),
+ indexNodeFlag_(false),
parent_(parent),
relatesTo_(0),
name_(name)
@@ -513,8 +514,8 @@ QString Node::ditaXmlHref()
else {
href = fileBase();
}
- if (!href.endsWith(".xml"))
- href += ".xml";
+ if (!href.endsWith(".xml") && !href.endsWith(".dita"))
+ href += ".dita";
return href + QLatin1Char('#') + guid();
}
diff --git a/src/tools/qdoc/node.h b/src/tools/qdoc/node.h
index 440b22dc04..8c6eb673cd 100644
--- a/src/tools/qdoc/node.h
+++ b/src/tools/qdoc/node.h
@@ -173,6 +173,8 @@ public:
void setPageType(PageType t) { pageType_ = t; }
void setPageType(const QString& t);
void setParent(InnerNode* n) { parent_ = n; }
+ void setIndexNodeFlag() { indexNodeFlag_ = true; }
+ virtual void setOutputFileName(const QString& ) { }
virtual bool isInnerNode() const = 0;
virtual bool isReimp() const { return false; }
@@ -183,6 +185,7 @@ public:
virtual bool isAbstract() const { return false; }
virtual void setAbstract(bool ) { }
virtual QString title() const { return QString(); }
+ bool isIndexNode() const { return indexNodeFlag_; }
Type type() const { return nodeType_; }
virtual SubType subType() const { return NoSubType; }
InnerNode* parent() const { return parent_; }
@@ -192,6 +195,7 @@ public:
QString moduleName() const;
QString url() const;
virtual QString nameForLists() const { return name_; }
+ virtual QString outputFileName() const { return QString(); }
Access access() const { return access_; }
QString accessString() const;
@@ -240,13 +244,16 @@ protected:
private:
-#ifdef Q_WS_WIN
Type nodeType_;
Access access_;
ThreadSafeness safeness_;
PageType pageType_;
Status status_;
-#else
+ bool indexNodeFlag_;
+
+#if 0
+ //ifdef Q_WS_WIN
+ //else
Type nodeType_ : 4;
Access access_ : 2;
ThreadSafeness safeness_ : 2;
@@ -319,6 +326,8 @@ public:
virtual void addPageKeywords(const QString& t) { pageKeywds << t; }
virtual void setCurrentChild() { }
virtual void setCurrentChild(InnerNode* ) { }
+ virtual void setOutputFileName(const QString& f) { outputFileName_ = f; }
+ virtual QString outputFileName() const { return outputFileName_; }
protected:
InnerNode(Type type, InnerNode* parent, const QString& name);
@@ -332,6 +341,7 @@ private:
void removeRelated(Node* pseudoChild);
void removeChild(Node* child);
+ QString outputFileName_;
QStringList pageKeywds;
QStringList inc;
NodeList children;
diff --git a/src/tools/qdoc/pagegenerator.cpp b/src/tools/qdoc/pagegenerator.cpp
index d8c3babe2e..6a52b7755a 100644
--- a/src/tools/qdoc/pagegenerator.cpp
+++ b/src/tools/qdoc/pagegenerator.cpp
@@ -298,6 +298,7 @@ void PageGenerator::beginSubPage(const InnerNode* node, const QString& fileName)
if (outputCodec)
out->setCodec(outputCodec);
outStreamStack.push(out);
+ const_cast<InnerNode*>(node)->setOutputFileName(fileName);
}
/*!
diff --git a/src/tools/qdoc/qdoc.pro b/src/tools/qdoc/qdoc.pro
index fca5a3daf4..03de9f91df 100644
--- a/src/tools/qdoc/qdoc.pro
+++ b/src/tools/qdoc/qdoc.pro
@@ -9,9 +9,14 @@ DEFINES -= QT_NO_CAST_FROM_ASCII
DEFINES += QT_NO_TRANSLATION
INCLUDEPATH += $$QT_SOURCE_TREE/src/tools/qdoc \
- $$QT_SOURCE_TREE/src/tools/qdoc/qmlparser
+ $$QT_SOURCE_TREE/src/tools/qdoc/qmlparser \
+ $$QT_BUILD_TREE/include/QtXml \
+ $$QT_BUILD_TREE/include/QtXml/$$QT.xml.VERSION \
+ $$QT_BUILD_TREE/include/QtXml/$$QT.xml.VERSION/QtXml
+
DEPENDPATH += $$QT_SOURCE_TREE/src/tools/qdoc \
- $$QT_SOURCE_TREE/src/tools/qdoc/qmlparser
+ $$QT_SOURCE_TREE/src/tools/qdoc/qmlparser \
+ $$QT_SOURCE_TREE/src/xml
# Increase the stack size on MSVC to 4M to avoid a stack overflow
win32-msvc*:{
@@ -68,7 +73,9 @@ SOURCES += atom.cpp \
text.cpp \
tokenizer.cpp \
tree.cpp \
- yyindent.cpp
+ yyindent.cpp \
+ ../../xml/dom/qdom.cpp \
+ ../../xml/sax/qxml.cpp
### QML/JS Parser ###
diff --git a/src/tools/qdoc/quoter.cpp b/src/tools/qdoc/quoter.cpp
index 0c16acbe73..9ae2a31236 100644
--- a/src/tools/qdoc/quoter.cpp
+++ b/src/tools/qdoc/quoter.cpp
@@ -125,7 +125,7 @@ Quoter::Quoter()
//! [<id>]
* .pro, .py files:
#! [<id>]
- * .html, .qrc, .ui, .xq, .xml files:
+ * .html, .qrc, .ui, .xq, .xml .dita files:
<!-- [<id>] -->
*/
commentHash["pro"] = "#!";
@@ -134,6 +134,7 @@ Quoter::Quoter()
commentHash["qrc"] = "<!--";
commentHash["ui"] = "<!--";
commentHash["xml"] = "<!--";
+ commentHash["dita"] = "<!--";
commentHash["xq"] = "<!--";
}
diff --git a/src/tools/qdoc/tree.cpp b/src/tools/qdoc/tree.cpp
index c52e45739a..4b2a8ba55c 100644
--- a/src/tools/qdoc/tree.cpp
+++ b/src/tools/qdoc/tree.cpp
@@ -1050,6 +1050,8 @@ void Tree::readIndexFile(const QString& path)
}
/*!
+ Read a <section> element from the index file and create the
+ appropriate node(s).
*/
void Tree::readIndexSection(const QDomElement& element,
InnerNode* parent,
@@ -1364,6 +1366,7 @@ void Tree::readIndexSection(const QDomElement& element,
Doc doc(location, location, " ", emptySet); // placeholder
section->setDoc(doc);
+ section->setIndexNodeFlag();
if (section->isInnerNode()) {
InnerNode* inner = static_cast<InnerNode*>(section);
diff --git a/src/tools/uic/utils.h b/src/tools/uic/utils.h
index c6dbe548cb..b2214d9c38 100644
--- a/src/tools/uic/utils.h
+++ b/src/tools/uic/utils.h
@@ -55,21 +55,27 @@ inline bool toBool(const QString &str)
inline QString toString(const DomString *str)
{ return str ? str->text() : QString(); }
-inline QString fixString(const QString &str, const QString &indent, bool *isUtf8Ret=0)
+enum StringFlags {
+ Utf8String = 0x1,
+ MultiLineString = 0x2
+};
+
+inline QString fixString(const QString &str, const QString &indent,
+ unsigned *stringFlags = 0)
{
QString cursegment;
QStringList result;
const QByteArray utf8 = str.toUtf8();
const int utf8Length = utf8.length();
- bool isUtf8 = false;
+ unsigned flags = 0;
for (int i = 0; i < utf8Length; ++i) {
const uchar cbyte = utf8.at(i);
if (cbyte >= 0x80) {
cursegment += QLatin1Char('\\');
cursegment += QString::number(cbyte, 8);
- isUtf8 = true;
+ flags |= Utf8String;
} else {
switch(cbyte) {
case '\\':
@@ -79,6 +85,7 @@ inline QString fixString(const QString &str, const QString &indent, bool *isUtf8
case '\r':
break;
case '\n':
+ flags |= MultiLineString;
cursegment += QLatin1String("\\n\"\n\""); break;
default:
cursegment += QLatin1Char(cbyte);
@@ -103,19 +110,27 @@ inline QString fixString(const QString &str, const QString &indent, bool *isUtf8
QString rc(QLatin1Char('"'));
rc += result.join(joinstr);
rc += QLatin1Char('"');
- if (isUtf8Ret)
- *isUtf8Ret = isUtf8;
+
+ if (result.size() > 1)
+ flags |= MultiLineString;
+
+ if (stringFlags)
+ *stringFlags = flags;
+
return rc;
}
inline QString writeString(const QString &s, const QString &indent)
{
- bool isUtf8 = false;
- const QString ret = fixString(s, indent, &isUtf8);
- if (isUtf8)
+ unsigned flags = 0;
+ const QString ret = fixString(s, indent, &flags);
+ if (flags & Utf8String)
return QLatin1String("QString::fromUtf8(") + ret + QLatin1Char(')');
- else
- return QLatin1String("QStringLiteral(") + ret + QLatin1Char(')');
+ // MSVC cannot concat L"foo" "bar" (C2308: concatenating mismatched strings),
+ // use QLatin1String instead (all platforms to avoid cross-compiling issues).
+ if (flags & MultiLineString)
+ return QLatin1String("QLatin1String(") + ret + QLatin1Char(')');
+ return QLatin1String("QStringLiteral(") + ret + QLatin1Char(')');
}
inline QHash<QString, DomProperty *> propertyMap(const QList<DomProperty *> &properties)
diff --git a/src/widgets/animation/animation.pri b/src/widgets/animation/animation.pri
deleted file mode 100644
index 27763ca003..0000000000
--- a/src/widgets/animation/animation.pri
+++ /dev/null
@@ -1,3 +0,0 @@
-# Qt gui animation module
-
-SOURCES += animation/qguivariantanimation.cpp
diff --git a/src/widgets/dialogs/qdialog.cpp b/src/widgets/dialogs/qdialog.cpp
index f1a6a294d2..5d36bc07e8 100644
--- a/src/widgets/dialogs/qdialog.cpp
+++ b/src/widgets/dialogs/qdialog.cpp
@@ -754,7 +754,8 @@ void QDialog::setVisible(bool visible)
}
#ifndef QT_NO_ACCESSIBILITY
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::DialogStart, this));
+ QAccessibleEvent event(QAccessible::DialogStart, this);
+ QAccessible::updateAccessibility(&event);
#endif
} else {
@@ -762,8 +763,10 @@ void QDialog::setVisible(bool visible)
return;
#ifndef QT_NO_ACCESSIBILITY
- if (isVisible())
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::DialogEnd, this));
+ if (isVisible()) {
+ QAccessibleEvent event(QAccessible::DialogEnd, this);
+ QAccessible::updateAccessibility(&event);
+ }
#endif
// Reimplemented to exit a modal event loop when the dialog is hidden.
diff --git a/src/widgets/dialogs/qmessagebox.cpp b/src/widgets/dialogs/qmessagebox.cpp
index e1b134ee48..040f61dfc5 100644
--- a/src/widgets/dialogs/qmessagebox.cpp
+++ b/src/widgets/dialogs/qmessagebox.cpp
@@ -1463,7 +1463,8 @@ void QMessageBox::showEvent(QShowEvent *e)
d->updateSize();
#ifndef QT_NO_ACCESSIBILITY
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::Alert, this));
+ QAccessibleEvent event(QAccessible::Alert, this);
+ QAccessible::updateAccessibility(&event);
#endif
#ifdef Q_OS_WIN
if (const HMENU systemMenu = qt_getWindowsSystemMenu(this)) {
diff --git a/src/widgets/graphicsview/qgraphicsscene.cpp b/src/widgets/graphicsview/qgraphicsscene.cpp
index 830853094a..752542c1ee 100644
--- a/src/widgets/graphicsview/qgraphicsscene.cpp
+++ b/src/widgets/graphicsview/qgraphicsscene.cpp
@@ -843,7 +843,8 @@ void QGraphicsScenePrivate::setFocusItemHelper(QGraphicsItem *item,
#ifndef QT_NO_ACCESSIBILITY
if (focusItem) {
if (QGraphicsObject *focusObj = focusItem->toGraphicsObject()) {
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::Focus, focusObj));
+ QAccessibleEvent event(QAccessible::Focus, focusObj);
+ QAccessible::updateAccessibility(&event);
}
}
#endif
diff --git a/src/widgets/itemviews/qabstractitemdelegate.cpp b/src/widgets/itemviews/qabstractitemdelegate.cpp
index 6184a5845a..ecba3e238f 100644
--- a/src/widgets/itemviews/qabstractitemdelegate.cpp
+++ b/src/widgets/itemviews/qabstractitemdelegate.cpp
@@ -243,6 +243,8 @@ QWidget *QAbstractItemDelegate::createEditor(QWidget *,
/*!
+ \since 5.0
+
A function called when the editor is no longer needed and should be
destroyed. The default behavior is a call to deleteLater on the editor.
It possible e.g. to avoid this delete by reimplementing this function.
diff --git a/src/widgets/itemviews/qabstractitemview.cpp b/src/widgets/itemviews/qabstractitemview.cpp
index 8530e2c23e..8992a3bdfe 100644
--- a/src/widgets/itemviews/qabstractitemview.cpp
+++ b/src/widgets/itemviews/qabstractitemview.cpp
@@ -1112,7 +1112,8 @@ void QAbstractItemView::reset()
#ifdef Q_WS_X11
if (QAccessible::isActive()) {
QAccessible::queryAccessibleInterface(this)->table2Interface()->modelReset();
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::TableModelChanged, this, 0));
+ QAccessibleEvent event(QAccessible::TableModelChanged, this, 0);
+ QAccessible::updateAccessibility(&event);
}
#endif
#endif
@@ -3342,7 +3343,8 @@ void QAbstractItemViewPrivate::_q_rowsRemoved(const QModelIndex &index, int star
#ifdef Q_WS_X11
if (QAccessible::isActive()) {
QAccessible::queryAccessibleInterface(q)->table2Interface()->rowsRemoved(index, start, end);
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::TableModelChanged, q, 0));
+ QAccessibleEvent event(QAccessible::TableModelChanged, q, 0);
+ QAccessible::updateAccessibility(&event);
}
#endif
#endif
@@ -3422,7 +3424,8 @@ void QAbstractItemViewPrivate::_q_columnsRemoved(const QModelIndex &index, int s
#ifdef Q_WS_X11
if (QAccessible::isActive()) {
QAccessible::queryAccessibleInterface(q)->table2Interface()->columnsRemoved(index, start, end);
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::TableModelChanged, q, 0));
+ QAccessibleEvent event(QAccessible::TableModelChanged, q, 0);
+ QAccessible::updateAccessibility(&event);
}
#endif
#endif
@@ -3445,7 +3448,8 @@ void QAbstractItemViewPrivate::_q_rowsInserted(const QModelIndex &index, int sta
Q_Q(QAbstractItemView);
if (QAccessible::isActive()) {
QAccessible::queryAccessibleInterface(q)->table2Interface()->rowsInserted(index, start, end);
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::TableModelChanged, q, 0));
+ QAccessibleEvent event(QAccessible::TableModelChanged, q, 0);
+ QAccessible::updateAccessibility(&event);
}
#endif
#endif
@@ -3469,7 +3473,8 @@ void QAbstractItemViewPrivate::_q_columnsInserted(const QModelIndex &index, int
#ifdef Q_WS_X11
if (QAccessible::isActive()) {
QAccessible::queryAccessibleInterface(q)->table2Interface()->columnsInserted(index, start, end);
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::TableModelChanged, q, 0));
+ QAccessibleEvent event(QAccessible::TableModelChanged, q, 0);
+ QAccessible::updateAccessibility(&event);
}
#endif
#endif
@@ -3497,7 +3502,8 @@ void QAbstractItemViewPrivate::_q_layoutChanged()
Q_Q(QAbstractItemView);
if (QAccessible::isActive()) {
QAccessible::queryAccessibleInterface(q)->table2Interface()->modelReset();
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::TableModelChanged, q, 0));
+ QAccessibleEvent event(QAccessible::TableModelChanged, q, 0);
+ QAccessible::updateAccessibility(&event);
}
#endif
#endif
diff --git a/src/widgets/itemviews/qheaderview.cpp b/src/widgets/itemviews/qheaderview.cpp
index eac543d37d..425eb4cd95 100644
--- a/src/widgets/itemviews/qheaderview.cpp
+++ b/src/widgets/itemviews/qheaderview.cpp
@@ -120,9 +120,9 @@ QDataStream &operator>>(QDataStream &in, QHeaderViewPrivate::SectionSpan &span)
\section1 Moving Header Sections
- A header can be fixed in place, or made movable with setMovable(). It can
- be made clickable with setClickable(), and has resizing behavior in
- accordance with setResizeMode().
+ A header can be fixed in place, or made movable with setSectionsMovable(). It can
+ be made clickable with setSectionsClickable(), and has resizing behavior in
+ accordance with setResizeMode() and setSectionResizeMode()
\note Double-clicking on a header to resize a section only applies for
visible rows.
@@ -185,7 +185,7 @@ QDataStream &operator>>(QDataStream &in, QHeaderViewPrivate::SectionSpan &span)
The following values are obsolete:
\value Custom Use Fixed instead.
- \sa setResizeMode() stretchLastSection minimumSectionSize
+ \sa setResizeMode() setSectionResizeMode() stretchLastSection minimumSectionSize
*/
/*!
@@ -216,7 +216,7 @@ QDataStream &operator>>(QDataStream &in, QHeaderViewPrivate::SectionSpan &span)
This signal is emitted when a section is pressed. The section's logical
index is specified by \a logicalIndex.
- \sa setClickable()
+ \sa setSectionsClickable()
*/
/*!
@@ -227,7 +227,7 @@ QDataStream &operator>>(QDataStream &in, QHeaderViewPrivate::SectionSpan &span)
Note that the sectionPressed signal will also be emitted.
- \sa setClickable(), sectionPressed()
+ \sa setSectionsClickable(), sectionPressed()
*/
/*!
@@ -238,7 +238,7 @@ QDataStream &operator>>(QDataStream &in, QHeaderViewPrivate::SectionSpan &span)
mouse button is pressed. The section's logical index is specified by
\a logicalIndex.
- \sa setClickable(), sectionPressed()
+ \sa setSectionsClickable(), sectionPressed()
*/
/*!
@@ -247,7 +247,7 @@ QDataStream &operator>>(QDataStream &in, QHeaderViewPrivate::SectionSpan &span)
This signal is emitted when a section is double-clicked. The section's
logical index is specified by \a logicalIndex.
- \sa setClickable()
+ \sa setSectionsClickable()
*/
/*!
@@ -266,7 +266,7 @@ QDataStream &operator>>(QDataStream &in, QHeaderViewPrivate::SectionSpan &span)
This signal is emitted when a section is double-clicked. The section's
logical index is specified by \a logicalIndex.
- \sa setClickable()
+ \sa setSectionsClickable()
*/
/*!
@@ -866,9 +866,11 @@ void QHeaderView::swapSections(int first, int second)
\fn void QHeaderView::resizeSection(int logicalIndex, int size)
Resizes the section specified by \a logicalIndex to \a size measured in
- pixels.
+ pixels. The size parameter must be a value larger or equal to zero. A
+ size equal to zero is however not recommended. In that situation hideSection
+ should be used instead.
- \sa sectionResized(), resizeMode(), sectionSize()
+ \sa sectionResized(), resizeMode(), sectionSize(), hideSection()
*/
void QHeaderView::resizeSection(int logical, int size)
@@ -1085,62 +1087,98 @@ int QHeaderView::logicalIndex(int visualIndex) const
}
/*!
- If \a movable is true, the header may be moved by the user; otherwise it
+ If \a sectionsMovable is true, the header may be moved by the user; otherwise it
is fixed in place.
- \sa isMovable(), sectionMoved()
+ \sa sectionsMovable(), sectionMoved()
*/
-// ### Qt 5: change to setSectionsMovable()
-void QHeaderView::setMovable(bool movable)
+void QHeaderView::setSectionsMovable(bool movable)
{
Q_D(QHeaderView);
d->movableSections = movable;
}
+// ### Qt 6 - remove this obsolete function
+/*!
+ \obsolete
+ \fn void QHeaderView::setMovable(bool movable)
+
+ Use setSectionsMovable instead.
+
+ \sa setSectionsMovable()
+*/
+
/*!
Returns true if the header can be moved by the user; otherwise returns
false.
- \sa setMovable()
+ \sa setSectionsMovable()
*/
-// ### Qt 5: change to sectionsMovable()
-bool QHeaderView::isMovable() const
+bool QHeaderView::sectionsMovable() const
{
Q_D(const QHeaderView);
return d->movableSections;
}
+// ### Qt 6 - remove this obsolete function
+/*!
+ \obsolete
+ \fn bool QHeaderView::isMovable(bool movable)
+
+ Use sectionsMovable instead.
+
+ \sa sectionsMovable()
+*/
+
/*!
If \a clickable is true, the header will respond to single clicks.
- \sa isClickable(), sectionClicked(), sectionPressed(),
+ \sa sectionsClickable(), sectionClicked(), sectionPressed(),
setSortIndicatorShown()
*/
-// ### Qt 5: change to setSectionsClickable()
-void QHeaderView::setClickable(bool clickable)
+void QHeaderView::setSectionsClickable(bool clickable)
{
Q_D(QHeaderView);
d->clickableSections = clickable;
}
+// ### Qt 6 - remove this obsolete function
+/*!
+ \obsolete
+ \fn void QHeaderView::setClickable(bool clickable)
+
+ Use setSectionsClickable instead.
+
+ \sa setSectionsClickable()
+*/
+
/*!
Returns true if the header is clickable; otherwise returns false. A
clickable header could be set up to allow the user to change the
representation of the data in the view related to the header.
- \sa setClickable()
+ \sa setSectionsClickable()
*/
-// ### Qt 5: change to sectionsClickable()
-bool QHeaderView::isClickable() const
+bool QHeaderView::sectionsClickable() const
{
Q_D(const QHeaderView);
return d->clickableSections;
}
+// ### Qt 6 - remove this obsolete function
+/*!
+ \obsolete
+ \fn bool QHeaderView::isClickable() const
+
+ Use sectionsClickable instead.
+
+ \sa sectionsClickable()
+*/
+
void QHeaderView::setHighlightSections(bool highlight)
{
Q_D(QHeaderView);
@@ -1172,8 +1210,6 @@ void QHeaderView::setResizeMode(ResizeMode mode)
}
/*!
- \overload
-
Sets the constraints on how the section specified by \a logicalIndex in
the header can be resized to those described by the given \a mode. The logical
index should exist at the time this function is called.
@@ -1185,8 +1221,7 @@ void QHeaderView::setResizeMode(ResizeMode mode)
\sa setStretchLastSection()
*/
-// ### Qt 5: change to setSectionResizeMode()
-void QHeaderView::setResizeMode(int logicalIndex, ResizeMode mode)
+void QHeaderView::setSectionResizeMode(int logicalIndex, ResizeMode mode)
{
Q_D(QHeaderView);
int visual = visualIndex(logicalIndex);
@@ -1208,6 +1243,17 @@ void QHeaderView::setResizeMode(int logicalIndex, ResizeMode mode)
d->doDelayedResizeSections(); // section sizes may change as a result of the new mode
}
+// ### Qt 6 - remove this obsolete function
+/*!
+ \overload
+ \obsolete
+ \fn void QHeaderView::setResizeMode(int logicalIndex, ResizeMode mode)
+
+ Use setSectionResizeMode instead.
+
+ \sa setSectionResizeMode()
+*/
+
/*!
Returns the resize mode that applies to the section specified by the given
\a logicalIndex.
@@ -1215,7 +1261,7 @@ void QHeaderView::setResizeMode(int logicalIndex, ResizeMode mode)
\sa setResizeMode()
*/
-QHeaderView::ResizeMode QHeaderView::resizeMode(int logicalIndex) const
+QHeaderView::ResizeMode QHeaderView::sectionResizeMode(int logicalIndex) const
{
Q_D(const QHeaderView);
int visual = visualIndex(logicalIndex);
@@ -1224,6 +1270,16 @@ QHeaderView::ResizeMode QHeaderView::resizeMode(int logicalIndex) const
return d->headerSectionResizeMode(visual);
}
+// ### Qt 6 - remove this obsolete function
+/*!
+ \obsolete
+ \fn QHeaderView::ResizeMode QHeaderView::resizeMode(int logicalIndex) const
+
+ Use sectionResizeMode instead.
+
+ \sa sectionResizeMode()
+*/
+
/*!
\since 4.1
@@ -1246,7 +1302,7 @@ int QHeaderView::stretchSectionCount() const
By default, this property is false.
- \sa setClickable()
+ \sa setSectionsClickable()
*/
void QHeaderView::setSortIndicatorShown(bool show)
@@ -1299,8 +1355,8 @@ void QHeaderView::setSortIndicator(int logicalIndex, Qt::SortOrder order)
}
if (old != logicalIndex
- && ((logicalIndex >= 0 && resizeMode(logicalIndex) == ResizeToContents)
- || old >= d->sectionCount() || (old >= 0 && resizeMode(old) == ResizeToContents))) {
+ && ((logicalIndex >= 0 && sectionResizeMode(logicalIndex) == ResizeToContents)
+ || old >= d->sectionCount() || (old >= 0 && sectionResizeMode(old) == ResizeToContents))) {
resizeSections();
d->viewport->update();
} else {
@@ -2207,7 +2263,7 @@ void QHeaderView::mousePressEvent(QMouseEvent *e)
updateSection(d->pressed);
d->state = QHeaderViewPrivate::SelectSections;
}
- } else if (resizeMode(handle) == Interactive) {
+ } else if (sectionResizeMode(handle) == Interactive) {
d->originalSize = sectionSize(handle);
d->state = QHeaderViewPrivate::ResizeSection;
d->section = handle;
@@ -2289,7 +2345,7 @@ void QHeaderView::mouseMoveEvent(QMouseEvent *e)
#ifndef QT_NO_CURSOR
int handle = d->sectionHandleAt(pos);
bool hasCursor = testAttribute(Qt::WA_SetCursor);
- if (handle != -1 && (resizeMode(handle) == Interactive)) {
+ if (handle != -1 && (sectionResizeMode(handle) == Interactive)) {
if (!hasCursor)
setCursor(d->orientation == Qt::Horizontal ? Qt::SplitHCursor : Qt::SplitVCursor);
} else if (hasCursor) {
@@ -2360,7 +2416,7 @@ void QHeaderView::mouseDoubleClickEvent(QMouseEvent *e)
Q_D(QHeaderView);
int pos = d->orientation == Qt::Horizontal ? e->x() : e->y();
int handle = d->sectionHandleAt(pos);
- if (handle > -1 && resizeMode(handle) == Interactive) {
+ if (handle > -1 && sectionResizeMode(handle) == Interactive) {
emit sectionHandleDoubleClicked(handle);
#ifndef QT_NO_CURSOR
Qt::CursorShape splitCursor = (d->orientation == Qt::Horizontal)
@@ -2368,7 +2424,7 @@ void QHeaderView::mouseDoubleClickEvent(QMouseEvent *e)
if (cursor().shape() == splitCursor) {
// signal handlers may have changed the section size
handle = d->sectionHandleAt(pos);
- if (!(handle > -1 && resizeMode(handle) == Interactive))
+ if (!(handle > -1 && sectionResizeMode(handle) == Interactive))
setCursor(Qt::ArrowCursor);
}
#endif
@@ -2673,7 +2729,7 @@ void QHeaderView::dataChanged(const QModelIndex &topLeft, const QModelIndex &bot
int first = orientation() == Qt::Horizontal ? topLeft.column() : topLeft.row();
int last = orientation() == Qt::Horizontal ? bottomRight.column() : bottomRight.row();
for (int i = first; i <= last && !resizeRequired; ++i)
- resizeRequired = (resizeMode(i) == ResizeToContents);
+ resizeRequired = (sectionResizeMode(i) == ResizeToContents);
if (resizeRequired)
d->doDelayedResizeSections();
}
diff --git a/src/widgets/itemviews/qheaderview.h b/src/widgets/itemviews/qheaderview.h
index d72b8cd735..bf686e2925 100644
--- a/src/widgets/itemviews/qheaderview.h
+++ b/src/widgets/itemviews/qheaderview.h
@@ -114,18 +114,33 @@ public:
int visualIndex(int logicalIndex) const;
int logicalIndex(int visualIndex) const;
- void setMovable(bool movable);
- bool isMovable() const;
+ void setSectionsMovable(bool movable);
+ bool sectionsMovable() const;
+#if QT_DEPRECATED_SINCE(5, 0)
+ inline QT_DEPRECATED void setMovable(bool movable) { setSectionsMovable(movable); }
+ inline QT_DEPRECATED bool isMovable() const { return sectionsMovable(); }
+#endif
- void setClickable(bool clickable);
- bool isClickable() const;
+ void setSectionsClickable(bool clickable);
+ bool sectionsClickable() const;
+#if QT_DEPRECATED_SINCE(5, 0)
+ inline QT_DEPRECATED void setClickable(bool clickable) { setSectionsClickable(clickable); }
+ inline QT_DEPRECATED bool isClickable() const { return sectionsClickable(); }
+#endif
void setHighlightSections(bool highlight);
bool highlightSections() const;
void setResizeMode(ResizeMode mode);
- void setResizeMode(int logicalIndex, ResizeMode mode);
- ResizeMode resizeMode(int logicalIndex) const;
+ ResizeMode sectionResizeMode(int logicalIndex) const;
+ void setSectionResizeMode(int logicalIndex, ResizeMode mode);
+#if QT_DEPRECATED_SINCE(5, 0)
+ inline QT_DEPRECATED void setResizeMode(int logicalindex, ResizeMode mode)
+ { setSectionResizeMode(logicalindex, mode); }
+ inline QT_DEPRECATED ResizeMode resizeMode(int logicalindex) const
+ { return sectionResizeMode(logicalindex); }
+#endif
+
int stretchSectionCount() const;
void setSortIndicatorShown(bool show);
diff --git a/src/widgets/itemviews/qlistview.cpp b/src/widgets/itemviews/qlistview.cpp
index b00b1073a3..872798a8e9 100644
--- a/src/widgets/itemviews/qlistview.cpp
+++ b/src/widgets/itemviews/qlistview.cpp
@@ -3169,7 +3169,8 @@ void QListView::currentChanged(const QModelIndex &current, const QModelIndex &pr
if (QAccessible::isActive()) {
if (current.isValid()) {
int entry = visualIndex(current) + 1;
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::Focus, this, entry));
+ QAccessibleEvent event(QAccessible::Focus, this, entry);
+ QAccessible::updateAccessibility(&event);
}
}
#endif
@@ -3188,12 +3189,14 @@ void QListView::selectionChanged(const QItemSelection &selected,
QModelIndex sel = selected.indexes().value(0);
if (sel.isValid()) {
int entry = visualIndex(sel) + 1;
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::Selection, this, entry));
+ QAccessibleEvent event(QAccessible::Selection, this, entry);
+ QAccessible::updateAccessibility(&event);
}
QModelIndex desel = deselected.indexes().value(0);
if (desel.isValid()) {
int entry = visualIndex(desel) + 1;
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::SelectionRemove, this, entry));
+ QAccessibleEvent event(QAccessible::SelectionRemove, this, entry);
+ QAccessible::updateAccessibility(&event);
}
}
#endif
diff --git a/src/widgets/itemviews/qtableview.cpp b/src/widgets/itemviews/qtableview.cpp
index d3bc826750..55cf18d78c 100644
--- a/src/widgets/itemviews/qtableview.cpp
+++ b/src/widgets/itemviews/qtableview.cpp
@@ -616,12 +616,12 @@ void QTableViewPrivate::init()
q->setEditTriggers(editTriggers|QAbstractItemView::AnyKeyPressed);
QHeaderView *vertical = new QHeaderView(Qt::Vertical, q);
- vertical->setClickable(true);
+ vertical->setSectionsClickable(true);
vertical->setHighlightSections(true);
q->setVerticalHeader(vertical);
QHeaderView *horizontal = new QHeaderView(Qt::Horizontal, q);
- horizontal->setClickable(true);
+ horizontal->setSectionsClickable(true);
horizontal->setHighlightSections(true);
q->setHorizontalHeader(horizontal);
@@ -1071,6 +1071,10 @@ void QTableView::setModel(QAbstractItemModel *model)
disconnect(d->model, SIGNAL(columnsRemoved(QModelIndex,int,int)),
this, SLOT(_q_updateSpanRemovedColumns(QModelIndex,int,int)));
}
+ if (d->selectionModel) { // support row editing
+ disconnect(d->selectionModel, SIGNAL(currentRowChanged(QModelIndex,QModelIndex)),
+ d->model, SLOT(submit()));
+ }
if (model) { //and connect to the new one
connect(model, SIGNAL(rowsInserted(QModelIndex,int,int)),
this, SLOT(_q_updateSpanInsertedRows(QModelIndex,int,int)));
@@ -1123,9 +1127,21 @@ void QTableView::setSelectionModel(QItemSelectionModel *selectionModel)
{
Q_D(QTableView);
Q_ASSERT(selectionModel);
+ if (d->selectionModel) {
+ // support row editing
+ disconnect(d->selectionModel, SIGNAL(currentRowChanged(QModelIndex,QModelIndex)),
+ d->model, SLOT(submit()));
+ }
+
d->verticalHeader->setSelectionModel(selectionModel);
d->horizontalHeader->setSelectionModel(selectionModel);
QAbstractItemView::setSelectionModel(selectionModel);
+
+ if (d->selectionModel) {
+ // support row editing
+ connect(d->selectionModel, SIGNAL(currentRowChanged(QModelIndex,QModelIndex)),
+ d->model, SLOT(submit()));
+ }
}
/*!
@@ -3164,16 +3180,10 @@ void QTableView::currentChanged(const QModelIndex &current, const QModelIndex &p
#ifndef QT_NO_ACCESSIBILITY
if (QAccessible::isActive()) {
if (current.isValid()) {
-#ifdef Q_OS_UNIX
Q_D(QTableView);
int entry = d->accessibleTable2Index(current);
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::Focus, this, entry));
-#else
- int entry = visualIndex(current) + 1;
- if (horizontalHeader())
- ++entry;
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::Focus, viewport(), entry));
-#endif
+ QAccessibleEvent event(QAccessible::Focus, this, entry);
+ QAccessible::updateAccessibility(&event);
}
}
#endif
@@ -3193,27 +3203,15 @@ void QTableView::selectionChanged(const QItemSelection &selected,
// ### does not work properly for selection ranges.
QModelIndex sel = selected.indexes().value(0);
if (sel.isValid()) {
-#ifdef Q_OS_UNIX
int entry = d->accessibleTable2Index(sel);
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::Selection, this, entry));
-#else
- int entry = visualIndex(sel);
- if (horizontalHeader())
- ++entry;
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::Selection, viewport(), entry));
-#endif
+ QAccessibleEvent event(QAccessible::Selection, this, entry);
+ QAccessible::updateAccessibility(&event);
}
QModelIndex desel = deselected.indexes().value(0);
if (desel.isValid()) {
-#ifdef Q_OS_UNIX
int entry = d->accessibleTable2Index(desel);
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::SelectionRemove, this, entry));
-#else
- int entry = visualIndex(sel);
- if (horizontalHeader())
- ++entry;
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::SelectionRemove, viewport(), entry));
-#endif
+ QAccessibleEvent event(QAccessible::SelectionRemove, this, entry);
+ QAccessible::updateAccessibility(&event);
}
}
#endif
diff --git a/src/widgets/itemviews/qtreeview.cpp b/src/widgets/itemviews/qtreeview.cpp
index c54c11d0f5..6166823754 100644
--- a/src/widgets/itemviews/qtreeview.cpp
+++ b/src/widgets/itemviews/qtreeview.cpp
@@ -848,7 +848,7 @@ void QTreeView::setSortingEnabled(bool enable)
{
Q_D(QTreeView);
header()->setSortIndicatorShown(enable);
- header()->setClickable(enable);
+ header()->setSectionsClickable(enable);
if (enable) {
//sortByColumn has to be called before we connect or set the sortingEnabled flag
// because otherwise it will not call sort on the model.
@@ -2886,7 +2886,7 @@ void QTreeViewPrivate::initialize()
q->setAttribute(Qt::WA_MacShowFocusRect);
QHeaderView *header = new QHeaderView(Qt::Horizontal, q);
- header->setMovable(true);
+ header->setSectionsMovable(true);
header->setStretchLastSection(true);
header->setDefaultAlignment(Qt::AlignLeft|Qt::AlignVCenter);
q->setHeader(header);
@@ -2937,7 +2937,8 @@ void QTreeViewPrivate::insertViewItems(int pos, int count, const QTreeViewItem &
#ifndef QT_NO_ACCESSIBILITY
#ifdef Q_OS_UNIX
if (QAccessible::isActive()) {
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::TableModelChanged, q, 0));
+ QAccessibleEvent event(QAccessible::TableModelChanged, q, 0);
+ QAccessible::updateAccessibility(&event);
}
#endif
#endif
@@ -2955,7 +2956,8 @@ void QTreeViewPrivate::removeViewItems(int pos, int count)
#ifndef QT_NO_ACCESSIBILITY
#ifdef Q_OS_UNIX
if (QAccessible::isActive()) {
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::TableModelChanged, q, 0));
+ QAccessibleEvent event(QAccessible::TableModelChanged, q, 0);
+ QAccessible::updateAccessibility(&event);
}
#endif
#endif
@@ -3769,7 +3771,8 @@ void QTreeView::currentChanged(const QModelIndex &current, const QModelIndex &pr
if (QAccessible::isActive() && current.isValid()) {
#ifdef Q_OS_UNIX
int entry = (visualIndex(current) + (header()?1:0))*current.model()->columnCount()+current.column() + 1;
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::Focus, this, entry));
+ QAccessibleEvent event(QAccessible::Focus, this, entry);
+ QAccessible::updateAccessibility(&event);
#else
int entry = visualIndex(current) + 1;
if (header())
@@ -3794,13 +3797,15 @@ void QTreeView::selectionChanged(const QItemSelection &selected,
if (sel.isValid()) {
int entry = (visualIndex(sel) + (header()?1:0))*sel.model()->columnCount()+sel.column() + 1;
Q_ASSERT(entry > 0);
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::Selection, this, entry));
+ QAccessibleEvent event(QAccessible::Selection, this, entry);
+ QAccessible::updateAccessibility(&event);
}
QModelIndex desel = deselected.indexes().value(0);
if (desel.isValid()) {
int entry = (visualIndex(desel) + (header()?1:0))*desel.model()->columnCount()+desel.column() + 1;
Q_ASSERT(entry > 0);
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::SelectionRemove, this, entry));
+ QAccessibleEvent event(QAccessible::SelectionRemove, this, entry);
+ QAccessible::updateAccessibility(&event);
}
}
#endif
diff --git a/src/widgets/itemviews/qtreewidget.cpp b/src/widgets/itemviews/qtreewidget.cpp
index 156121a533..f8e3a375a4 100644
--- a/src/widgets/itemviews/qtreewidget.cpp
+++ b/src/widgets/itemviews/qtreewidget.cpp
@@ -2535,7 +2535,7 @@ QTreeWidget::QTreeWidget(QWidget *parent)
this, SLOT(_q_sort()));
connect(selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
this, SLOT(_q_selectionChanged(QItemSelection,QItemSelection)));
- header()->setClickable(false);
+ header()->setSectionsClickable(false);
}
/*!
diff --git a/src/widgets/kernel/qiconloader.cpp b/src/widgets/kernel/qiconloader.cpp
index 2f9576f864..a0ee95c80c 100644
--- a/src/widgets/kernel/qiconloader.cpp
+++ b/src/widgets/kernel/qiconloader.cpp
@@ -61,10 +61,6 @@
#include <private/qt_cocoa_helpers_mac_p.h>
#endif
-#ifdef Q_WS_X11
-#include <private/qt_x11_p.h>
-#endif
-
#include <private/qhexstring_p.h>
QT_BEGIN_NAMESPACE
diff --git a/src/widgets/kernel/qwhatsthis.cpp b/src/widgets/kernel/qwhatsthis.cpp
index 1c20b98139..114cde59e9 100644
--- a/src/widgets/kernel/qwhatsthis.cpp
+++ b/src/widgets/kernel/qwhatsthis.cpp
@@ -412,7 +412,8 @@ QWhatsThisPrivate::QWhatsThisPrivate()
#endif
}
#ifndef QT_NO_ACCESSIBILITY
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::ContextHelpStart, this));
+ QAccessibleEvent event(QAccessible::ContextHelpStart, this);
+ QAccessible::updateAccessibility(&event);
#endif
}
@@ -424,7 +425,8 @@ QWhatsThisPrivate::~QWhatsThisPrivate()
QApplication::restoreOverrideCursor();
#endif
#ifndef QT_NO_ACCESSIBILITY
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::ContextHelpEnd, this));
+ QAccessibleEvent event(QAccessible::ContextHelpEnd, this);
+ QAccessible::updateAccessibility(&event);
#endif
instance = 0;
}
diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp
index 084d609730..ffb4b1fef5 100644
--- a/src/widgets/kernel/qwidget.cpp
+++ b/src/widgets/kernel/qwidget.cpp
@@ -5965,7 +5965,10 @@ void QWidget::setFocus(Qt::FocusReason reason)
// menus update the focus manually and this would create bogus events
if (!(f->inherits("QMenuBar") || f->inherits("QMenu") || f->inherits("QMenuItem")))
# endif
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::Focus, f));
+ {
+ QAccessibleEvent event(QAccessible::Focus, f);
+ QAccessible::updateAccessibility(&event);
+ }
#endif
#ifndef QT_NO_GRAPHICSVIEW
if (QWExtra *topData = window()->d_func()->extra) {
@@ -6045,7 +6048,8 @@ void QWidget::clearFocus()
#endif
{
#ifndef QT_NO_ACCESSIBILITY
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::Focus, this));
+ QAccessibleEvent event(QAccessible::Focus, this);
+ QAccessible::updateAccessibility(&event);
#endif
}
}
@@ -7051,8 +7055,10 @@ void QWidgetPrivate::show_helper()
qApp->d_func()->openPopup(q);
#ifndef QT_NO_ACCESSIBILITY
- if (q->windowType() != Qt::ToolTip) // Tooltips are read aloud twice in MS narrator.
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::ObjectShow, q));
+ if (q->windowType() != Qt::ToolTip) { // Tooltips are read aloud twice in MS narrator.
+ QAccessibleEvent event(QAccessible::ObjectShow, q);
+ QAccessible::updateAccessibility(&event);
+ }
#endif
if (QApplicationPrivate::hidden_focus_widget == q) {
@@ -7142,8 +7148,10 @@ void QWidgetPrivate::hide_helper()
bs->removeDirtyWidget(q);
#ifndef QT_NO_ACCESSIBILITY
- if (wasVisible)
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::ObjectHide, q));
+ if (wasVisible) {
+ QAccessibleEvent event(QAccessible::ObjectHide, q);
+ QAccessible::updateAccessibility(&event);
+ }
#endif
}
@@ -7374,8 +7382,10 @@ void QWidgetPrivate::hideChildren(bool spontaneous)
}
qApp->d_func()->sendSyntheticEnterLeave(widget);
#ifndef QT_NO_ACCESSIBILITY
- if (!spontaneous)
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::ObjectHide, widget));
+ if (!spontaneous) {
+ QAccessibleEvent event(QAccessible::ObjectHide, widget);
+ QAccessible::updateAccessibility(&event);
+ }
#endif
}
}
@@ -8250,7 +8260,8 @@ void QWidget::changeEvent(QEvent * event)
#ifndef QT_NO_ACCESSIBILITY
QAccessible::State s;
s.disabled = true;
- QAccessible::updateAccessibility(QAccessibleStateChangeEvent(s, this));
+ QAccessibleStateChangeEvent event(s, this);
+ QAccessible::updateAccessibility(&event);
#endif
break;
}
@@ -9229,6 +9240,8 @@ int QWidget::heightForWidth(int w) const
/*!
+ \Since 5.0
+
Returns true if the widget's preferred height depends on its width; otherwise returns false.
*/
bool QWidget::hasHeightForWidth() const
@@ -10390,7 +10403,8 @@ void QWidget::setAccessibleName(const QString &name)
{
Q_D(QWidget);
d->accessibleName = name;
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::NameChanged, this));
+ QAccessibleEvent event(QAccessible::NameChanged, this);
+ QAccessible::updateAccessibility(&event);
}
QString QWidget::accessibleName() const
@@ -10412,7 +10426,8 @@ void QWidget::setAccessibleDescription(const QString &description)
{
Q_D(QWidget);
d->accessibleDescription = description;
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::DescriptionChanged, this));
+ QAccessibleEvent event(QAccessible::DescriptionChanged, this);
+ QAccessible::updateAccessibility(&event);
}
QString QWidget::accessibleDescription() const
diff --git a/src/widgets/kernel/qwidgetwindow_qpa.cpp b/src/widgets/kernel/qwidgetwindow_qpa.cpp
index 4d5e9d5774..f58dddb70f 100644
--- a/src/widgets/kernel/qwidgetwindow_qpa.cpp
+++ b/src/widgets/kernel/qwidgetwindow_qpa.cpp
@@ -43,7 +43,9 @@
#include "private/qwidget_p.h"
#include "private/qapplication_p.h"
+#ifndef QT_NO_ACCESSIBILITY
#include <QtGui/qaccessible.h>
+#endif
QT_BEGIN_NAMESPACE
@@ -60,12 +62,14 @@ QWidgetWindow::QWidgetWindow(QWidget *widget)
{
}
+#ifndef QT_NO_ACCESSIBILITY
QAccessibleInterface *QWidgetWindow::accessibleRoot() const
{
if (m_widget)
return QAccessible::queryAccessibleInterface(m_widget);
return 0;
}
+#endif
QObject *QWidgetWindow::focusObject() const
{
diff --git a/src/widgets/kernel/qwidgetwindow_qpa_p.h b/src/widgets/kernel/qwidgetwindow_qpa_p.h
index 1e8813fddc..e5c07a2d3a 100644
--- a/src/widgets/kernel/qwidgetwindow_qpa_p.h
+++ b/src/widgets/kernel/qwidgetwindow_qpa_p.h
@@ -62,7 +62,9 @@ public:
QWidgetWindow(QWidget *widget);
QWidget *widget() const { return m_widget; }
+#ifndef QT_NO_ACCESSIBILITY
QAccessibleInterface *accessibleRoot() const;
+#endif
QObject *focusObject() const;
protected:
diff --git a/src/widgets/styles/qmacstyle_mac.mm b/src/widgets/styles/qmacstyle_mac.mm
index 1f91fa4d00..7e07cc1532 100644
--- a/src/widgets/styles/qmacstyle_mac.mm
+++ b/src/widgets/styles/qmacstyle_mac.mm
@@ -6390,6 +6390,7 @@ CGColorSpaceRef qt_mac_colorSpaceForDeviceType(const QPaintDevice *paintDevice)
CGContextRelease the context when finished using it.
\warning This function is only available on Mac OS X.
+ \warning This function is duplicated in the Cocoa platform plugin.
*/
CGContextRef qt_mac_cg_context(const QPaintDevice *pdev)
diff --git a/src/widgets/styles/qstylesheetstyle.cpp b/src/widgets/styles/qstylesheetstyle.cpp
index 7a0cc09452..0e928b13c2 100644
--- a/src/widgets/styles/qstylesheetstyle.cpp
+++ b/src/widgets/styles/qstylesheetstyle.cpp
@@ -2498,38 +2498,48 @@ void QStyleSheetStyle::setGeometry(QWidget *w)
void QStyleSheetStyle::setProperties(QWidget *w)
{
- // we have two data structures here: a hash of property -> value for lookup,
- // and a vector giving properties in the order they are specified.
- //
- // this means we only set a property once (thanks to the hash) but we set
- // properties in the order they are specified.
- QHash<QString, QVariant> propertyHash;
- QVector<QString> properties;
- QVector<Declaration> decls = declarations(styleRules(w), QString());
-
- // run through the declarations in order
- for (int i = 0; i < decls.count(); i++) {
- const Declaration &decl = decls.at(i);
+ // The final occurrence of each property is authoritative.
+ // Set value for each property in the order of property final occurrence
+ // since properties interact.
+
+ const QVector<Declaration> decls = declarations(styleRules(w), QString());
+ QVector<int> finals; // indices in reverse order of each property's final occurrence
+
+ {
+ // scan decls for final occurence of each "qproperty"
+ QSet<const QString> propertySet;
+ for (int i = decls.count() - 1; i >= 0; --i) {
+ const QString property = decls.at(i).d->property;
+ if (!property.startsWith(QStringLiteral("qproperty-"), Qt::CaseInsensitive))
+ continue;
+ if (!propertySet.contains(property)) {
+ propertySet.insert(property);
+ finals.append(i);
+ }
+ }
+ }
+
+ for (int i = finals.count() - 1; i >= 0; --i) {
+ const Declaration &decl = decls.at(finals[i]);
QString property = decl.d->property;
- if (!property.startsWith(QLatin1String("qproperty-"), Qt::CaseInsensitive))
- continue;
property.remove(0, 10); // strip "qproperty-"
- const QVariant value = w->property(property.toLatin1());
+
const QMetaObject *metaObject = w->metaObject();
int index = metaObject->indexOfProperty(property.toLatin1());
if (index == -1) {
qWarning() << w << " does not have a property named " << property;
continue;
}
- QMetaProperty metaProperty = metaObject->property(index);
+ const QMetaProperty metaProperty = metaObject->property(index);
if (!metaProperty.isWritable() || !metaProperty.isDesignable()) {
qWarning() << w << " cannot design property named " << property;
continue;
}
+
QVariant v;
+ const QVariant value = w->property(property.toLatin1());
switch (value.type()) {
- // ### Qt 5
-// case QVariant::Icon: v = decl.iconValue(); break;
+ case QVariant::Icon: v = cssIconValueToIcon(decl.iconValue()); break;
case QVariant::Image: v = QImage(decl.uriValue()); break;
case QVariant::Pixmap: v = QPixmap(decl.uriValue()); break;
case QVariant::Rect: v = decl.rectValue(); break;
@@ -2542,19 +2552,7 @@ void QStyleSheetStyle::setProperties(QWidget *w)
default: v = decl.d->values.at(0).variant; break;
}
- if (propertyHash.contains(property)) {
- // we're ignoring the original appearance of this property
- properties.remove(properties.indexOf(property));
- }
-
- propertyHash[property] = v;
- properties.append(property);
- }
-
- // apply the values from left to right order
- for (int i = 0; i < properties.count(); i++) {
- const QString &property = properties.at(i);
- w->setProperty(property.toLatin1(), propertyHash[property]);
+ w->setProperty(property.toLatin1(), v);
}
}
diff --git a/src/widgets/styles/qwindowsvistastyle.cpp b/src/widgets/styles/qwindowsvistastyle.cpp
index 1aecb64acf..c18b2266b8 100644
--- a/src/widgets/styles/qwindowsvistastyle.cpp
+++ b/src/widgets/styles/qwindowsvistastyle.cpp
@@ -586,10 +586,12 @@ void QWindowsVistaStyle::drawPrimitive(PrimitiveElement element, const QStyleOpt
bool isEnabled = option->state & State_Enabled;
uint resolve_mask = panel->palette.resolve();
if (widget) {
- //Since spin box and combo box includes a line edit we need to resolve the palette on the parent instead
+ // Since spin box includes a line edit we need to resolve the palette mask also from
+ // the parent, as while the color is always correct on the palette supplied by panel,
+ // the mask can still be empty. If either mask specifies custom base color, use that.
#ifndef QT_NO_SPINBOX
if (QAbstractSpinBox *spinbox = qobject_cast<QAbstractSpinBox*>(widget->parentWidget()))
- resolve_mask = spinbox->palette().resolve();
+ resolve_mask |= spinbox->palette().resolve();
#endif // QT_NO_SPINBOX
}
if (resolve_mask & (1 << QPalette::Base)) {
diff --git a/src/widgets/styles/qwindowsxpstyle.cpp b/src/widgets/styles/qwindowsxpstyle.cpp
index 5aab69983c..8b745ba114 100644
--- a/src/widgets/styles/qwindowsxpstyle.cpp
+++ b/src/widgets/styles/qwindowsxpstyle.cpp
@@ -1583,10 +1583,12 @@ case PE_Frame:
uint resolve_mask = panel->palette.resolve();
#ifndef QT_NO_SPINBOX
- //Since spin box includes a line edit we need to resolve the palette on the spin box instead
+ // Since spin box includes a line edit we need to resolve the palette mask also from
+ // the parent, as while the color is always correct on the palette supplied by panel,
+ // the mask can still be empty. If either mask specifies custom base color, use that.
if (widget) {
if (QAbstractSpinBox *spinbox = qobject_cast<QAbstractSpinBox*>(widget->parentWidget()))
- resolve_mask = spinbox->palette().resolve();
+ resolve_mask |= spinbox->palette().resolve();
}
#endif // QT_NO_SPINBOX
if (resolve_mask & (1 << QPalette::Base)) {
diff --git a/src/widgets/util/qsystemtrayicon_win.cpp b/src/widgets/util/qsystemtrayicon_win.cpp
index f3d4347986..fa72e791ba 100644
--- a/src/widgets/util/qsystemtrayicon_win.cpp
+++ b/src/widgets/util/qsystemtrayicon_win.cpp
@@ -81,6 +81,7 @@ struct Q_NOTIFYICONIDENTIFIER {
# define NIN_BALLOONTIMEOUT (WM_USER + 4)
# define NIN_BALLOONUSERCLICK (WM_USER + 5)
# define NIF_SHOWTIP 0x00000080
+# define NOTIFYICON_VERSION_4 4
#endif
#define Q_MSGFLT_ALLOW 1
diff --git a/src/widgets/widgets.pro b/src/widgets/widgets.pro
index 8f6a9713f6..596e8a994a 100644
--- a/src/widgets/widgets.pro
+++ b/src/widgets/widgets.pro
@@ -25,7 +25,6 @@ mac:include(kernel/mac.pri)
win32:include(kernel/win.pri)
#modules
-include(animation/animation.pri)
include(kernel/kernel.pri)
include(styles/styles.pri)
include(widgets/widgets.pri)
diff --git a/src/widgets/widgets/qabstractbutton.cpp b/src/widgets/widgets/qabstractbutton.cpp
index aebef8ddc9..0b24799a56 100644
--- a/src/widgets/widgets/qabstractbutton.cpp
+++ b/src/widgets/widgets/qabstractbutton.cpp
@@ -644,7 +644,8 @@ void QAbstractButton::setText(const QString &text)
update();
updateGeometry();
#ifndef QT_NO_ACCESSIBILITY
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::NameChanged, this));
+ QAccessibleEvent event(QAccessible::NameChanged, this);
+ QAccessible::updateAccessibility(&event);
#endif
}
@@ -769,7 +770,8 @@ void QAbstractButton::setChecked(bool checked)
#ifndef QT_NO_ACCESSIBILITY
QAccessible::State s;
s.checked = true;
- QAccessible::updateAccessibility(QAccessibleStateChangeEvent(s, this));
+ QAccessibleStateChangeEvent event(s, this);
+ QAccessible::updateAccessibility(&event);
#endif
}
diff --git a/src/widgets/widgets/qabstractslider.cpp b/src/widgets/widgets/qabstractslider.cpp
index b0216e5277..2d3f79e43d 100644
--- a/src/widgets/widgets/qabstractslider.cpp
+++ b/src/widgets/widgets/qabstractslider.cpp
@@ -538,7 +538,8 @@ void QAbstractSlider::setValue(int value)
emit sliderMoved((d->position = value));
}
#ifndef QT_NO_ACCESSIBILITY
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::ValueChanged, this));
+ QAccessibleEvent event(QAccessible::ValueChanged, this);
+ QAccessible::updateAccessibility(&event);
#endif
sliderChange(SliderValueChange);
emit valueChanged(value);
diff --git a/src/widgets/widgets/qabstractspinbox.cpp b/src/widgets/widgets/qabstractspinbox.cpp
index c083369136..7b55b0fa8c 100644
--- a/src/widgets/widgets/qabstractspinbox.cpp
+++ b/src/widgets/widgets/qabstractspinbox.cpp
@@ -976,7 +976,8 @@ void QAbstractSpinBox::keyPressEvent(QKeyEvent *event)
}
}
#ifndef QT_NO_ACCESSIBILITY
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::ValueChanged, this));
+ QAccessibleEvent event(QAccessible::ValueChanged, this);
+ QAccessible::updateAccessibility(&event);
#endif
return;
}
@@ -1595,7 +1596,8 @@ void QAbstractSpinBoxPrivate::updateState(bool up, bool fromKeyboard /* = false
buttonState = (up ? Up : Down) | (fromKeyboard ? Keyboard : Mouse);
q->stepBy(up ? 1 : -1);
#ifndef QT_NO_ACCESSIBILITY
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::ValueChanged, q));
+ QAccessibleEvent event(QAccessible::ValueChanged, q);
+ QAccessible::updateAccessibility(&event);
#endif
}
}
diff --git a/src/widgets/widgets/qcalendarwidget.cpp b/src/widgets/widgets/qcalendarwidget.cpp
index 129da9d94d..427af68b64 100644
--- a/src/widgets/widgets/qcalendarwidget.cpp
+++ b/src/widgets/widgets/qcalendarwidget.cpp
@@ -2068,9 +2068,9 @@ QCalendarWidget::QCalendarWidget(QWidget *parent)
d->m_view->setSelectionBehavior(QAbstractItemView::SelectItems);
d->m_view->setSelectionMode(QAbstractItemView::SingleSelection);
d->m_view->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
- d->m_view->horizontalHeader()->setClickable(false);
+ d->m_view->horizontalHeader()->setSectionsClickable(false);
d->m_view->verticalHeader()->setResizeMode(QHeaderView::Stretch);
- d->m_view->verticalHeader()->setClickable(false);
+ d->m_view->verticalHeader()->setSectionsClickable(false);
d->m_selection = d->m_view->selectionModel();
d->createNavigationBar(this);
d->m_view->setFrameStyle(QFrame::NoFrame);
diff --git a/src/widgets/widgets/qcombobox.cpp b/src/widgets/widgets/qcombobox.cpp
index c5f5d6e6e1..88c17ca704 100644
--- a/src/widgets/widgets/qcombobox.cpp
+++ b/src/widgets/widgets/qcombobox.cpp
@@ -58,6 +58,7 @@
#include <qtreeview.h>
#include <qheaderview.h>
#include <qmath.h>
+#include <qmetaobject.h>
#include <private/qguiapplication_p.h>
#include <private/qapplication_p.h>
#include <private/qcombobox_p.h>
@@ -982,7 +983,8 @@ void QComboBoxPrivate::_q_dataChanged(const QModelIndex &topLeft, const QModelIn
q->update();
}
#ifndef QT_NO_ACCESSIBILITY
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::NameChanged, q, 0));
+ QAccessibleEvent event(QAccessible::NameChanged, q, 0);
+ QAccessible::updateAccessibility(&event);
#endif
}
@@ -1238,7 +1240,8 @@ void QComboBoxPrivate::_q_emitCurrentIndexChanged(const QModelIndex &index)
emit q->currentIndexChanged(index.row());
emit q->currentIndexChanged(itemText(index));
#ifndef QT_NO_ACCESSIBILITY
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::NameChanged, q, 0));
+ QAccessibleEvent event(QAccessible::NameChanged, q, 0);
+ QAccessible::updateAccessibility(&event);
#endif
}
@@ -2545,17 +2548,25 @@ void QComboBox::hidePopup()
// Fade out.
bool needFade = style()->styleHint(QStyle::SH_Menu_FadeOutOnHide);
+ bool didFade = false;
if (needFade) {
-#if defined(Q_WS_MAC)
- macWindowFade(qt_mac_window_for(d->container));
-#endif // Q_WS_MAC
+#if defined(Q_OS_MAC)
+ QPlatformNativeInterface *platformNativeInterface = qApp->platformNativeInterface();
+ int at = platformNativeInterface->metaObject()->indexOfMethod("fadeWindow()");
+ if (at != -1) {
+ QMetaMethod windowFade = platformNativeInterface->metaObject()->method(at);
+ windowFade.invoke(platformNativeInterface, Q_ARG(QWindow *, d->container->windowHandle()));
+ didFade = true;
+ }
+
+#endif // Q_OS_MAC
// Other platform implementations welcome :-)
}
d->model->blockSignals(false);
d->container->itemView()->blockSignals(false);
d->container->blockSignals(false);
- if (!needFade)
+ if (!didFade)
#endif // QT_NO_EFFECTS
// Fade should implicitly hide as well ;-)
d->container->hide();
@@ -2578,7 +2589,8 @@ void QComboBox::clear()
Q_D(QComboBox);
d->model->removeRows(0, d->model->rowCount(d->root), d->root);
#ifndef QT_NO_ACCESSIBILITY
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::NameChanged, this, 0));
+ QAccessibleEvent event(QAccessible::NameChanged, this, 0);
+ QAccessible::updateAccessibility(&event);
#endif
}
@@ -2597,7 +2609,8 @@ void QComboBox::clearEditText()
if (d->lineEdit)
d->lineEdit->clear();
#ifndef QT_NO_ACCESSIBILITY
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::NameChanged, this, 0));
+ QAccessibleEvent event(QAccessible::NameChanged, this, 0);
+ QAccessible::updateAccessibility(&event);
#endif
}
@@ -2610,7 +2623,8 @@ void QComboBox::setEditText(const QString &text)
if (d->lineEdit)
d->lineEdit->setText(text);
#ifndef QT_NO_ACCESSIBILITY
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::NameChanged, this, 0));
+ QAccessibleEvent event(QAccessible::NameChanged, this, 0);
+ QAccessible::updateAccessibility(&event);
#endif
}
diff --git a/src/widgets/widgets/qgroupbox.cpp b/src/widgets/widgets/qgroupbox.cpp
index cf3e14871f..7186ddfccc 100644
--- a/src/widgets/widgets/qgroupbox.cpp
+++ b/src/widgets/widgets/qgroupbox.cpp
@@ -249,7 +249,8 @@ void QGroupBox::setTitle(const QString &title)
update();
updateGeometry();
#ifndef QT_NO_ACCESSIBILITY
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::NameChanged, this, 0));
+ QAccessibleEvent event(QAccessible::NameChanged, this, 0);
+ QAccessible::updateAccessibility(&event);
#endif
}
diff --git a/src/widgets/widgets/qlabel.cpp b/src/widgets/widgets/qlabel.cpp
index 82e56f3354..f36dea52dd 100644
--- a/src/widgets/widgets/qlabel.cpp
+++ b/src/widgets/widgets/qlabel.cpp
@@ -315,8 +315,10 @@ void QLabel::setText(const QString &text)
d->updateLabel();
#ifndef QT_NO_ACCESSIBILITY
- if (accessibleName().isEmpty())
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::NameChanged, this, 0));
+ if (accessibleName().isEmpty()) {
+ QAccessibleEvent event(QAccessible::NameChanged, this, 0);
+ QAccessible::updateAccessibility(&event);
+ }
#endif
}
diff --git a/src/widgets/widgets/qlineedit_p.cpp b/src/widgets/widgets/qlineedit_p.cpp
index d06e98e31a..37e956c27f 100644
--- a/src/widgets/widgets/qlineedit_p.cpp
+++ b/src/widgets/widgets/qlineedit_p.cpp
@@ -144,7 +144,8 @@ void QLineEditPrivate::_q_selectionChanged()
emit q->selectionChanged();
#ifndef QT_NO_ACCESSIBILITY
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::TextSelectionChanged, q));
+ QAccessibleEvent event(QAccessible::TextSelectionChanged, q);
+ QAccessible::updateAccessibility(&event);
#endif
}
diff --git a/src/widgets/widgets/qmenu.cpp b/src/widgets/widgets/qmenu.cpp
index af4a87e282..7d4f7151a4 100644
--- a/src/widgets/widgets/qmenu.cpp
+++ b/src/widgets/widgets/qmenu.cpp
@@ -1076,8 +1076,10 @@ void QMenuPrivate::activateAction(QAction *action, QAction::ActionEvent action_e
#ifndef QT_NO_ACCESSIBILITY
if (QAccessible::isActive()) {
int actionIndex = indexOf(action);
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::Focus, q, actionIndex));
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::Selection, q, actionIndex));
+ QAccessibleEvent focusEvent(QAccessible::Focus, q, actionIndex);
+ QAccessible::updateAccessibility(&focusEvent);
+ QAccessibleEvent selectionEvent(QAccessible::Selection, q, actionIndex);
+ QAccessible::updateAccessibility(&selectionEvent);
}
#endif
action->showStatusText(topCausedWidget());
@@ -1970,7 +1972,8 @@ void QMenu::popup(const QPoint &p, QAction *atAction)
}
#ifndef QT_NO_ACCESSIBILITY
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::PopupMenuStart, this ,0));
+ QAccessibleEvent event(QAccessible::PopupMenuStart, this ,0);
+ QAccessible::updateAccessibility(&event);
#endif
}
@@ -2091,7 +2094,8 @@ void QMenu::hideEvent(QHideEvent *)
d->eventLoop->exit();
d->setCurrentAction(0);
#ifndef QT_NO_ACCESSIBILITY
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::PopupMenuEnd, this));
+ QAccessibleEvent event(QAccessible::PopupMenuEnd, this);
+ QAccessible::updateAccessibility(&event);
#endif
#ifndef QT_NO_MENUBAR
if (QMenuBar *mb = qobject_cast<QMenuBar*>(d->causedPopup.widget))
diff --git a/src/widgets/widgets/qmenubar.cpp b/src/widgets/widgets/qmenubar.cpp
index 0efa6caebc..2712839103 100644
--- a/src/widgets/widgets/qmenubar.cpp
+++ b/src/widgets/widgets/qmenubar.cpp
@@ -531,8 +531,10 @@ void QMenuBarPrivate::_q_actionHovered()
#ifndef QT_NO_ACCESSIBILITY
if (QAccessible::isActive()) {
int actionIndex = actions.indexOf(action);
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::Focus, q, actionIndex));
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::Selection, q, actionIndex));
+ QAccessibleEvent focusEvent(QAccessible::Focus, q, actionIndex);
+ QAccessible::updateAccessibility(&focusEvent);
+ QAccessibleEvent selectionEvent(QAccessible::Selection, q, actionIndex);
+ QAccessible::updateAccessibility(&selectionEvent);
}
#endif //QT_NO_ACCESSIBILITY
}
diff --git a/src/widgets/widgets/qprogressbar.cpp b/src/widgets/widgets/qprogressbar.cpp
index c1a34bfb7a..0439caeb88 100644
--- a/src/widgets/widgets/qprogressbar.cpp
+++ b/src/widgets/widgets/qprogressbar.cpp
@@ -314,7 +314,8 @@ void QProgressBar::setValue(int value)
d->value = value;
emit valueChanged(value);
#ifndef QT_NO_ACCESSIBILITY
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::ValueChanged, this));
+ QAccessibleEvent event(QAccessible::ValueChanged, this);
+ QAccessible::updateAccessibility(&event);
#endif
if (d->repaintRequired())
repaint();
diff --git a/src/widgets/widgets/qpushbutton.cpp b/src/widgets/widgets/qpushbutton.cpp
index 059b0f801c..5dae4e0b34 100644
--- a/src/widgets/widgets/qpushbutton.cpp
+++ b/src/widgets/widgets/qpushbutton.cpp
@@ -378,7 +378,8 @@ void QPushButton::setDefault(bool enable)
#ifndef QT_NO_ACCESSIBILITY
QAccessible::State s;
s.defaultButton = true;
- QAccessible::updateAccessibility(QAccessibleStateChangeEvent(s, this));
+ QAccessibleStateChangeEvent event(s, this);
+ QAccessible::updateAccessibility(&event);
#endif
}
diff --git a/src/widgets/widgets/qtabbar.cpp b/src/widgets/widgets/qtabbar.cpp
index ecb0ef84e0..2cc573e958 100644
--- a/src/widgets/widgets/qtabbar.cpp
+++ b/src/widgets/widgets/qtabbar.cpp
@@ -359,8 +359,10 @@ void QTabBarPrivate::init()
#endif
q->setFocusPolicy(Qt::TabFocus);
+#ifndef QT_NO_ACCESSIBILITY
leftB->setAccessibleName(QTabBar::tr("Scroll Left"));
rightB->setAccessibleName(QTabBar::tr("Scroll Right"));
+#endif
q->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
elideMode = Qt::TextElideMode(q->style()->styleHint(QStyle::SH_TabBar_ElideMode, 0, q));
useScrollButtons = !q->style()->styleHint(QStyle::SH_TabBar_PreferNoArrows, 0, q);
@@ -1183,8 +1185,10 @@ void QTabBar::setCurrentIndex(int index)
d->layoutTab(index);
#ifndef QT_NO_ACCESSIBILITY
if (QAccessible::isActive()) {
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::Focus, this, index));
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::Selection, this, index));
+ QAccessibleEvent focusEvent(QAccessible::Focus, this, index);
+ QAccessible::updateAccessibility(&focusEvent);
+ QAccessibleEvent selectionEvent(QAccessible::Selection, this, index);
+ QAccessible::updateAccessibility(&selectionEvent);
}
#endif
emit currentChanged(index);
@@ -1739,7 +1743,7 @@ void QTabBar::mouseMoveEvent(QMouseEvent *event)
if (d->pressedIndex != -1
&& event->buttons() == Qt::NoButton)
d->moveTabFinished(d->pressedIndex);
-
+
// Start drag
if (!d->dragInProgress && d->pressedIndex != -1) {
if ((event->pos() - d->dragStartPosition).manhattanLength() > QApplication::startDragDistance()) {
diff --git a/src/widgets/widgets/qtabbar.h b/src/widgets/widgets/qtabbar.h
index 13ed3bc6d2..2698213d07 100644
--- a/src/widgets/widgets/qtabbar.h
+++ b/src/widgets/widgets/qtabbar.h
@@ -198,8 +198,9 @@ protected:
void changeEvent(QEvent *);
void initStyleOption(QStyleOptionTab *option, int tabIndex) const;
-
+#ifndef QT_NO_ACCESSIBILITY
friend class QAccessibleTabBar;
+#endif
private:
Q_DISABLE_COPY(QTabBar)
Q_DECLARE_PRIVATE(QTabBar)
diff --git a/src/widgets/widgets/qwidgetlinecontrol.cpp b/src/widgets/widgets/qwidgetlinecontrol.cpp
index a04339f864..7c659ebb64 100644
--- a/src/widgets/widgets/qwidgetlinecontrol.cpp
+++ b/src/widgets/widgets/qwidgetlinecontrol.cpp
@@ -767,8 +767,10 @@ void QWidgetLineControl::internalSetText(const QString &txt, int pos, bool edite
bool changed = finishChange(-1, true, edited);
#ifndef QT_NO_ACCESSIBILITY
- if (changed)
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::TextUpdated, parent()));
+ if (changed) {
+ QAccessibleEvent event(QAccessible::TextUpdated, parent());
+ QAccessible::updateAccessibility(&event);
+ }
#endif
}
@@ -1367,7 +1369,8 @@ void QWidgetLineControl::emitCursorPositionChanged()
m_lastCursorPos = m_cursor;
cursorPositionChanged(oldLast, m_cursor);
#ifndef QT_NO_ACCESSIBILITY
- QAccessible::updateAccessibility(QAccessibleEvent(QAccessible::TextCaretMoved, parent()));
+ QAccessibleEvent event(QAccessible::TextCaretMoved, parent());
+ QAccessible::updateAccessibility(&event);
#endif
}
}
diff --git a/tests/auto/auto.pro b/tests/auto/auto.pro
index 124af19799..a23c3d672a 100644
--- a/tests/auto/auto.pro
+++ b/tests/auto/auto.pro
@@ -19,8 +19,8 @@ cross_compile: SUBDIRS -= tools
!contains(QT_CONFIG, opengl): SUBDIRS -= opengl
!unix|embedded|!contains(QT_CONFIG, dbus): SUBDIRS -= dbus
-# disable 'make check' on Mac OS X and Windows for the following subdirs for the time being
-mac|win32 {
+# disable 'make check' on Mac OS X for the following subdirs for the time being
+mac {
network.CONFIG += no_check_target
}
diff --git a/tests/auto/concurrent/qtconcurrentmap/tst_qtconcurrentmap.cpp b/tests/auto/concurrent/qtconcurrentmap/tst_qtconcurrentmap.cpp
index 35ee0be326..d0609d00ef 100644
--- a/tests/auto/concurrent/qtconcurrentmap/tst_qtconcurrentmap.cpp
+++ b/tests/auto/concurrent/qtconcurrentmap/tst_qtconcurrentmap.cpp
@@ -2115,15 +2115,6 @@ void tst_QtConcurrentMap::functionOverloads()
QtConcurrent::blockingMapped<QList<QString> >(constIntList, changeTypeConst);
QtConcurrent::blockingMapped<QList<QString> >(classList, &MemFnTester::changeTypeConst);
QtConcurrent::blockingMapped<QList<QString> >(constMemFnTesterList, &MemFnTester::changeTypeConst);
-
- QStringList stringList;
- const QStringList constStringList;
- // QtConcurrent::map(stringList, changeTypeQStringListConst);
- // QtConcurrent::map(intList, changeTypeNonConst);
- // QList<QString>(QtConcurrent::map(constStringList, changeTypeQStringList));
- // QtConcurrent::map(classList, &MemFnTester::changeType);
- // QtConcurrent::map(classList, &MemFnTester::changeTypeConst);
- // QtConcurrent::map(constMemFnTesterList, &MemFnTester::changeTypeConst);
}
QAtomicInt currentInstanceCount;
diff --git a/tests/auto/corelib/codecs/utf8/tst_utf8.cpp b/tests/auto/corelib/codecs/utf8/tst_utf8.cpp
index e07b7cb239..dd6774e101 100644
--- a/tests/auto/corelib/codecs/utf8/tst_utf8.cpp
+++ b/tests/auto/corelib/codecs/utf8/tst_utf8.cpp
@@ -322,7 +322,7 @@ void tst_Utf8::nonCharacters_data()
// U+FDD0 through U+FDEF
for (int i = 0; i < 16; ++i) {
- char utf8[] = { 0357, 0267, 0220 + i, 0 };
+ char utf8[] = { char(0357), char(0267), char(0220 + i), 0 };
QString utf16 = QChar(0xfdd0 + i);
QTest::newRow(qPrintable(QString::number(0xfdd0 + i, 16))) << QByteArray(utf8) << utf16;
}
@@ -331,10 +331,10 @@ void tst_Utf8::nonCharacters_data()
for (uint plane = 1; plane <= 16; ++plane) {
for (uint lower = 0xfffe; lower < 0x10000; ++lower) {
uint ucs4 = (plane << 16) | lower;
- char utf8[] = { 0xf0 | uchar(ucs4 >> 18),
- 0x80 | (uchar(ucs4 >> 12) & 0x3f),
- 0x80 | (uchar(ucs4 >> 6) & 0x3f),
- 0x80 | (uchar(ucs4) & 0x3f),
+ char utf8[] = { char(0xf0 | uchar(ucs4 >> 18)),
+ char(0x80 | (uchar(ucs4 >> 12) & 0x3f)),
+ char(0x80 | (uchar(ucs4 >> 6) & 0x3f)),
+ char(0x80 | (uchar(ucs4) & 0x3f)),
0 };
ushort utf16[] = { QChar::highSurrogate(ucs4), QChar::lowSurrogate(ucs4), 0 };
diff --git a/tests/auto/corelib/io/qresourceengine/tst_qresourceengine.cpp b/tests/auto/corelib/io/qresourceengine/tst_qresourceengine.cpp
index 796282d6d8..990841dc87 100644
--- a/tests/auto/corelib/io/qresourceengine/tst_qresourceengine.cpp
+++ b/tests/auto/corelib/io/qresourceengine/tst_qresourceengine.cpp
@@ -311,7 +311,7 @@ void tst_QResourceEngine::checkStructure()
QVERIFY(fileInfo.exists());
QCOMPARE(fileInfo.isDir(), directory);
QCOMPARE(fileInfo.size(), contentsSize);
- //QVERIFY(fileInfo.isReadable());
+ QVERIFY(fileInfo.isReadable());
QVERIFY(!fileInfo.isWritable());
QVERIFY(!fileInfo.isExecutable());
diff --git a/tests/auto/corelib/io/qsettings/tst_qsettings.cpp b/tests/auto/corelib/io/qsettings/tst_qsettings.cpp
index df8e97ab9c..d294eec248 100644
--- a/tests/auto/corelib/io/qsettings/tst_qsettings.cpp
+++ b/tests/auto/corelib/io/qsettings/tst_qsettings.cpp
@@ -40,7 +40,6 @@
****************************************************************************/
-#include <qdebug.h>
#include <QtTest/QtTest>
#include <QtCore/QSettings>
@@ -48,11 +47,13 @@
#include <QtCore/QCoreApplication>
#include <QtCore/QtGlobal>
#include <QtCore/QMetaType>
-#include <QtCore/QtDebug>
#include <QtCore/QString>
+#include <QtCore/QDir>
+#include <QtCore/QThread>
#include <QtGui/QKeySequence>
#include <cctype>
+#include <stdlib.h>
#if defined(Q_OS_WIN) && defined(Q_CC_GNU)
// need for unlink on mingw
#include <io.h>
@@ -60,14 +61,17 @@
#if defined(Q_OS_WIN)
#include <QtCore/qt_windows.h>
+#else
+#include <unistd.h>
#endif
+Q_DECLARE_METATYPE(QSettings::Format)
+
#ifndef QSETTINGS_P_H_VERSION
#define QSETTINGS_P_H_VERSION 1
#endif
QT_FORWARD_DECLARE_CLASS(QSettings)
-QT_FORWARD_DECLARE_CLASS(QSettings)
class tst_QSettings : public QObject
{
@@ -136,12 +140,6 @@ private slots:
void testByteArray_data();
void testByteArray();
-
-private:
- void oldWriteEntry_data();
- void oldReadEntry_data();
- void oldWriteEntryHelper(QSettings &settings);
- void oldReadEntryHelper(QSettings &settings);
};
// Testing get/set functions
@@ -156,20 +154,6 @@ void tst_QSettings::getSetCheck()
QCOMPARE(true, obj1.fallbacksEnabled());
}
-//using namespace std;
-
-//#include <qapplication.h>
-#include <qcoreapplication.h>
-#include <qdir.h>
-#include <qregexp.h>
-#include <qthread.h>
-#include <stdlib.h>
-#ifndef Q_OS_WIN
-#include <unistd.h>
-#endif
-
-Q_DECLARE_METATYPE(QSettings::Format)
-
#if defined(Q_OS_WINCE)
static void removePath(const QString& _path)
{
@@ -194,7 +178,7 @@ static void removePath(const QString& _path)
static QString settingsPath(const char *path = "")
{
- // Temporary path for files that are specified explictly in the constructor.
+ // Temporary path for files that are specified explicitly in the constructor.
QString tempPath = QDir::tempPath();
if (tempPath.endsWith("/"))
tempPath.truncate(tempPath.size() - 1);
@@ -896,8 +880,10 @@ void tst_QSettings::beginGroup()
QCOMPARE(settings1.value("geometry").toInt(), 777);
// endGroup() should do nothing if group() is empty
- for (int i = 0; i < 10; ++i)
+ for (int i = 0; i < 10; ++i) {
+ QTest::ignoreMessage(QtWarningMsg, "QSettings::endGroup: No matching beginGroup()");
settings2.endGroup();
+ }
QCOMPARE(settings2.value("geometry").toInt(), 5);
QCOMPARE(settings2.value("alpha/geometry").toInt(), 66);
QCOMPARE(settings2.value("alpha/beta/geometry").toInt(), 777);
@@ -971,6 +957,8 @@ void tst_QSettings::setValue()
QCOMPARE(settings.value("key 2").toBool(), true);
settings.setValue("key 2", QString("false"));
QCOMPARE(settings.value("key 2", true).toBool(), false);
+
+ // The following block should not compile.
/*
settings.setValue("key 2", "true");
QCOMPARE(settings.value("key 2").toBool(), true);
@@ -984,8 +972,8 @@ void tst_QSettings::setValue()
QCOMPARE(settings.value("key 2", true).toBool(), true);
settings.setValue("key 2", "0.000e-00");
QCOMPARE(settings.value("key 2", false).toBool(), false);
-
*/
+
settings.setValue("key 2", QStringList());
QCOMPARE(settings.value("key 2").toStringList(), QStringList());
settings.setValue("key 2", QStringList(""));
@@ -1963,43 +1951,43 @@ void tst_QSettings::setIniCodec()
QByteArray actualContents4, actualContents5;
{
- QFile inFile(":/resourcefile4.ini");
- inFile.open(QIODevice::ReadOnly);
- expeContents4 = inFile.readAll();
- inFile.close();
+ QFile inFile(":/resourcefile4.ini");
+ inFile.open(QIODevice::ReadOnly);
+ expeContents4 = inFile.readAll();
+ inFile.close();
}
{
- QFile inFile(":/resourcefile5.ini");
- inFile.open(QIODevice::ReadOnly);
- expeContents5 = inFile.readAll();
- inFile.close();
+ QFile inFile(":/resourcefile5.ini");
+ inFile.open(QIODevice::ReadOnly);
+ expeContents5 = inFile.readAll();
+ inFile.close();
}
{
- QSettings settings4(QSettings::IniFormat, QSettings::UserScope, "software.org", "KillerAPP");
- settings4.setIniCodec("UTF-8");
- settings4.setValue(QLatin1String("Fa\xe7" "ade/QU\xc9" "BEC"), QLatin1String("Fa\xe7" "ade/QU\xc9" "BEC"));
- settings4.sync();
-
- QSettings settings5(QSettings::IniFormat, QSettings::UserScope, "other.software.org", "KillerAPP");
- settings5.setIniCodec("ISO 8859-1");
- settings5.setValue(QLatin1String("Fa\xe7" "ade/QU\xc9" "BEC"), QLatin1String("Fa\xe7" "ade/QU\xc9" "BEC"));
- settings5.sync();
-
- {
- QFile inFile(settings4.fileName());
- inFile.open(QIODevice::ReadOnly);
- actualContents4 = inFile.readAll();
- inFile.close();
- }
+ QSettings settings4(QSettings::IniFormat, QSettings::UserScope, "software.org", "KillerAPP");
+ settings4.setIniCodec("UTF-8");
+ settings4.setValue(QLatin1String("Fa\xe7" "ade/QU\xc9" "BEC"), QLatin1String("Fa\xe7" "ade/QU\xc9" "BEC"));
+ settings4.sync();
+
+ QSettings settings5(QSettings::IniFormat, QSettings::UserScope, "other.software.org", "KillerAPP");
+ settings5.setIniCodec("ISO 8859-1");
+ settings5.setValue(QLatin1String("Fa\xe7" "ade/QU\xc9" "BEC"), QLatin1String("Fa\xe7" "ade/QU\xc9" "BEC"));
+ settings5.sync();
+
+ {
+ QFile inFile(settings4.fileName());
+ inFile.open(QIODevice::ReadOnly);
+ actualContents4 = inFile.readAll();
+ inFile.close();
+ }
- {
- QFile inFile(settings5.fileName());
- inFile.open(QIODevice::ReadOnly);
- actualContents5 = inFile.readAll();
- inFile.close();
- }
+ {
+ QFile inFile(settings5.fileName());
+ inFile.open(QIODevice::ReadOnly);
+ actualContents5 = inFile.readAll();
+ inFile.close();
+ }
}
QConfFile::clearCache();
@@ -2181,6 +2169,16 @@ void tst_QSettings::testArrays()
endArray() and vice versa. This is not documented, but this
is the behavior that we have chosen.
*/
+ QTest::ignoreMessage(QtWarningMsg, "QSettings::setArrayIndex: Missing beginArray()");
+ QTest::ignoreMessage(QtWarningMsg, "QSettings::setArrayIndex: Missing beginArray()");
+ QTest::ignoreMessage(QtWarningMsg, "QSettings::setArrayIndex: Missing beginArray()");
+ QTest::ignoreMessage(QtWarningMsg, "QSettings::setArrayIndex: Missing beginArray()");
+ QTest::ignoreMessage(QtWarningMsg, "QSettings::setArrayIndex: Missing beginArray()");
+ QTest::ignoreMessage(QtWarningMsg, "QSettings::endArray: Expected endGroup() instead");
+ QTest::ignoreMessage(QtWarningMsg, "QSettings::endGroup: Expected endArray() instead");
+ QTest::ignoreMessage(QtWarningMsg, "QSettings::endArray: Expected endGroup() instead");
+ QTest::ignoreMessage(QtWarningMsg, "QSettings::endGroup: No matching beginGroup()");
+
QSettings settings1(format, QSettings::UserScope, "software.org", "KillerAPP");
settings1.clear();
settings1.beginGroup("/alpha");
@@ -2231,7 +2229,6 @@ void tst_QSettings::testArrays()
QCOMPARE(settings1.group(), QString());
settings1.endGroup();
QCOMPARE(settings1.group(), QString());
-
/*
Now, let's make sure that things work well if an array
is spread across multiple files.
@@ -2901,10 +2898,10 @@ void tst_QSettings::registerFormat()
f.close();
{
- QSettings settings(settingsPath("someDir/someSettings.custom3"), QSettings::CustomFormat3);
- QCOMPARE(settings.status(), QSettings::NoError);
- QCOMPARE(settings.value("retval").toString(), QString("OK"));
- QVERIFY(settings.isWritable());
+ QSettings settings(settingsPath("someDir/someSettings.custom3"), QSettings::CustomFormat3);
+ QCOMPARE(settings.status(), QSettings::NoError);
+ QCOMPARE(settings.value("retval").toString(), QString("OK"));
+ QVERIFY(settings.isWritable());
}
QVERIFY(f.open(QFile::WriteOnly));
@@ -2912,10 +2909,10 @@ void tst_QSettings::registerFormat()
f.close();
{
- QSettings settings(settingsPath("someDir/someSettings.custom3"), QSettings::CustomFormat3);
- QCOMPARE(settings.status(), QSettings::FormatError);
- QCOMPARE(settings.value("retval").toString(), QString());
- QVERIFY(settings.isWritable());
+ QSettings settings(settingsPath("someDir/someSettings.custom3"), QSettings::CustomFormat3);
+ QCOMPARE(settings.status(), QSettings::FormatError);
+ QCOMPARE(settings.value("retval").toString(), QString());
+ QVERIFY(settings.isWritable());
}
QVERIFY(f.open(QFile::WriteOnly));
@@ -2923,24 +2920,24 @@ void tst_QSettings::registerFormat()
f.close();
{
- QSettings settings(settingsPath("someDir/someSettings.custom3"), QSettings::CustomFormat3);
- QCOMPARE(settings.status(), QSettings::NoError);
- settings.setValue("zzz", "bar");
- settings.sync();
- QCOMPARE(settings.status(), QSettings::NoError);
+ QSettings settings(settingsPath("someDir/someSettings.custom3"), QSettings::CustomFormat3);
+ QCOMPARE(settings.status(), QSettings::NoError);
+ settings.setValue("zzz", "bar");
+ settings.sync();
+ QCOMPARE(settings.status(), QSettings::NoError);
- settings.setValue("retval", "NotOK");
- settings.sync();
- QCOMPARE(settings.status(), QSettings::AccessError);
+ settings.setValue("retval", "NotOK");
+ settings.sync();
+ QCOMPARE(settings.status(), QSettings::AccessError);
- QCOMPARE(settings.value("retval").toString(), QString("NotOK"));
- QVERIFY(settings.isWritable());
+ QCOMPARE(settings.value("retval").toString(), QString("NotOK"));
+ QVERIFY(settings.isWritable());
}
{
- QSettings settings(settingsPath("someDir/someSettings.custom3"), QSettings::CustomFormat4);
- QCOMPARE(settings.status(), QSettings::AccessError);
- QVERIFY(!settings.isWritable());
+ QSettings settings(settingsPath("someDir/someSettings.custom3"), QSettings::CustomFormat4);
+ QCOMPARE(settings.status(), QSettings::AccessError);
+ QVERIFY(!settings.isWritable());
}
}
@@ -3168,16 +3165,6 @@ void tst_QSettings::consistentRegistryStorage()
}
}
#endif
-/*
-// Not tested at the moment.
-void tst_QSettings::oldSubkeyList()
-{
- QVERIFY( true );
-}
-*/
QTEST_MAIN(tst_QSettings)
#include "tst_qsettings.moc"
-
-
-// foo
diff --git a/tests/auto/corelib/json/tst_qtjson.cpp b/tests/auto/corelib/json/tst_qtjson.cpp
index 079ff6e76b..87820d2e78 100644
--- a/tests/auto/corelib/json/tst_qtjson.cpp
+++ b/tests/auto/corelib/json/tst_qtjson.cpp
@@ -120,6 +120,8 @@ private Q_SLOTS:
void assignObjects();
void assignArrays();
+
+ void testTrailingComma();
private:
QString testDataDir;
};
@@ -1807,5 +1809,16 @@ void TestQtJson::assignArrays()
QCOMPARE(inner.at(0).toDouble(), 2.);
}
+void TestQtJson::testTrailingComma()
+{
+ const char *jsons[] = { "{ \"Key\": 1, }", "[ { \"Key\": 1 }, ]" };
+
+ for (unsigned i = 0; i < sizeof(jsons)/sizeof(jsons[0]); ++i) {
+ QJsonParseError error;
+ QJsonDocument doc = QJsonDocument::fromJson(jsons[i], &error);
+ QCOMPARE(error.error, QJsonParseError::MissingObject);
+ }
+}
+
QTEST_MAIN(TestQtJson)
#include "tst_qtjson.moc"
diff --git a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp
index 7fcf2ff4eb..96c391d582 100644
--- a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp
+++ b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp
@@ -747,39 +747,47 @@ Q_DECLARE_METATYPE(QPairPC)
Q_DECLARE_METATYPE(QPairPM)
Q_DECLARE_METATYPE(QPairPP)
+enum FlagsDataEnum {};
+Q_DECLARE_METATYPE(FlagsDataEnum);
+
void tst_QMetaType::flags_data()
{
QTest::addColumn<int>("type");
QTest::addColumn<bool>("isMovable");
QTest::addColumn<bool>("isComplex");
QTest::addColumn<bool>("isPointerToQObject");
+ QTest::addColumn<bool>("isEnum");
#define ADD_METATYPE_TEST_ROW(MetaTypeName, MetaTypeId, RealType) \
- QTest::newRow(#RealType) << MetaTypeId << bool(!QTypeInfo<RealType>::isStatic) << bool(QTypeInfo<RealType>::isComplex) << bool(QtPrivate::IsPointerToTypeDerivedFromQObject<RealType>::Value);
+ QTest::newRow(#RealType) << MetaTypeId \
+ << bool(!QTypeInfo<RealType>::isStatic) \
+ << bool(QTypeInfo<RealType>::isComplex) \
+ << bool(QtPrivate::IsPointerToTypeDerivedFromQObject<RealType>::Value) \
+ << bool(Q_IS_ENUM(RealType));
QT_FOR_EACH_STATIC_CORE_CLASS(ADD_METATYPE_TEST_ROW)
QT_FOR_EACH_STATIC_PRIMITIVE_POINTER(ADD_METATYPE_TEST_ROW)
QT_FOR_EACH_STATIC_CORE_POINTER(ADD_METATYPE_TEST_ROW)
#undef ADD_METATYPE_TEST_ROW
- QTest::newRow("TestSpace::Foo") << ::qMetaTypeId<TestSpace::Foo>() << false << true << false;
- QTest::newRow("Whity<double>") << ::qMetaTypeId<Whity<double> >() << false << true << false;
- QTest::newRow("CustomMovable") << ::qMetaTypeId<CustomMovable>() << true << true << false;
- QTest::newRow("CustomObject*") << ::qMetaTypeId<CustomObject*>() << true << false << true;
- QTest::newRow("CustomMultiInheritanceObject*") << ::qMetaTypeId<CustomMultiInheritanceObject*>() << true << false << true;
- QTest::newRow("QPair<C,C>") << ::qMetaTypeId<QPair<C,C> >() << false << true << false;
- QTest::newRow("QPair<C,M>") << ::qMetaTypeId<QPair<C,M> >() << false << true << false;
- QTest::newRow("QPair<C,P>") << ::qMetaTypeId<QPair<C,P> >() << false << true << false;
- QTest::newRow("QPair<M,C>") << ::qMetaTypeId<QPair<M,C> >() << false << true << false;
- QTest::newRow("QPair<M,M>") << ::qMetaTypeId<QPair<M,M> >() << true << true << false;
- QTest::newRow("QPair<M,P>") << ::qMetaTypeId<QPair<M,P> >() << true << true << false;
- QTest::newRow("QPair<P,C>") << ::qMetaTypeId<QPair<P,C> >() << false << true << false;
- QTest::newRow("QPair<P,M>") << ::qMetaTypeId<QPair<P,M> >() << true << true << false;
- QTest::newRow("QPair<P,P>") << ::qMetaTypeId<QPair<P,P> >() << true << false << false;
+ QTest::newRow("TestSpace::Foo") << ::qMetaTypeId<TestSpace::Foo>() << false << true << false << false;
+ QTest::newRow("Whity<double>") << ::qMetaTypeId<Whity<double> >() << false << true << false << false;
+ QTest::newRow("CustomMovable") << ::qMetaTypeId<CustomMovable>() << true << true << false << false;
+ QTest::newRow("CustomObject*") << ::qMetaTypeId<CustomObject*>() << true << false << true << false;
+ QTest::newRow("CustomMultiInheritanceObject*") << ::qMetaTypeId<CustomMultiInheritanceObject*>() << true << false << true << false;
+ QTest::newRow("QPair<C,C>") << ::qMetaTypeId<QPair<C,C> >() << false << true << false << false;
+ QTest::newRow("QPair<C,M>") << ::qMetaTypeId<QPair<C,M> >() << false << true << false << false;
+ QTest::newRow("QPair<C,P>") << ::qMetaTypeId<QPair<C,P> >() << false << true << false << false;
+ QTest::newRow("QPair<M,C>") << ::qMetaTypeId<QPair<M,C> >() << false << true << false << false;
+ QTest::newRow("QPair<M,M>") << ::qMetaTypeId<QPair<M,M> >() << true << true << false << false;
+ QTest::newRow("QPair<M,P>") << ::qMetaTypeId<QPair<M,P> >() << true << true << false << false;
+ QTest::newRow("QPair<P,C>") << ::qMetaTypeId<QPair<P,C> >() << false << true << false << false;
+ QTest::newRow("QPair<P,M>") << ::qMetaTypeId<QPair<P,M> >() << true << true << false << false;
+ QTest::newRow("QPair<P,P>") << ::qMetaTypeId<QPair<P,P> >() << true << false << false << false;
+ QTest::newRow("FlagsDataEnum") << ::qMetaTypeId<FlagsDataEnum>() << false << true << false << true;
// invalid ids.
- QTest::newRow("-1") << -1 << false << false << false;
- QTest::newRow("-124125534") << -124125534 << false << false << false;
- QTest::newRow("124125534") << 124125534 << false << false << false;
-
+ QTest::newRow("-1") << -1 << false << false << false << false;
+ QTest::newRow("-124125534") << -124125534 << false << false << false << false;
+ QTest::newRow("124125534") << 124125534 << false << false << false << false;
}
void tst_QMetaType::flags()
@@ -788,11 +796,13 @@ void tst_QMetaType::flags()
QFETCH(bool, isMovable);
QFETCH(bool, isComplex);
QFETCH(bool, isPointerToQObject);
+ QFETCH(bool, isEnum);
QCOMPARE(bool(QMetaType::typeFlags(type) & QMetaType::NeedsConstruction), isComplex);
QCOMPARE(bool(QMetaType::typeFlags(type) & QMetaType::NeedsDestruction), isComplex);
QCOMPARE(bool(QMetaType::typeFlags(type) & QMetaType::MovableType), isMovable);
QCOMPARE(bool(QMetaType::typeFlags(type) & QMetaType::PointerToQObject), isPointerToQObject);
+ QCOMPARE(bool(QMetaType::typeFlags(type) & QMetaType::IsEnumeration), isEnum);
}
void tst_QMetaType::flagsStaticLess_data()
diff --git a/tests/auto/corelib/tools/qsharedpointer/externaltests.cpp b/tests/auto/corelib/tools/qsharedpointer/externaltests.cpp
index fb946d9ca1..0e7e2fad70 100644
--- a/tests/auto/corelib/tools/qsharedpointer/externaltests.cpp
+++ b/tests/auto/corelib/tools/qsharedpointer/externaltests.cpp
@@ -353,15 +353,25 @@ namespace QTest {
"\n"
"#ifdef Q_OS_WIN\n"
"#include <windows.h>\n"
+ "#if defined(Q_CC_MSVC) && !defined(Q_OS_WINCE)\n"
+ "#include <crtdbg.h>\n"
+ "#endif\n"
"static void q_test_setup()\n"
"{\n"
" SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX | SEM_NOOPENFILEERRORBOX);\n"
"}\n"
+ "static int __cdecl CrtDbgHook(int /*reportType*/, char * /*message*/, int * /*returnValue*/)\n"
+ "{\n"
+ " return TRUE;\n"
+ "}\n"
"#else\n"
"static void q_test_setup() { }\n"
"#endif\n"
"int main(int argc, char **argv)\n"
- "{\n";
+ "{\n"
+ "#if defined(Q_CC_MSVC) && defined(QT_DEBUG) && defined(_DEBUG) && defined(_CRT_ERROR) && !defined(Q_OS_WINCE)\n"
+ " _CrtSetReportHook2(_CRT_RPTHOOK_INSTALL, CrtDbgHook);\n"
+ "#endif\n";
switch (appType) {
applicationless:
@@ -456,6 +466,7 @@ namespace QTest {
"TARGET = externaltest\n"
"CONFIG -= app_bundle\n" // for the Mac
"CONFIG -= debug_and_release\n"
+ "CONFIG += console\n"
"DESTDIR = .\n"
"OBJECTS_DIR = .\n"
"UI_DIR = .\n"
diff --git a/tests/auto/corelib/tools/qsharedpointer/qsharedpointer.pro b/tests/auto/corelib/tools/qsharedpointer/qsharedpointer.pro
index 1b227109b3..b1cd309293 100644
--- a/tests/auto/corelib/tools/qsharedpointer/qsharedpointer.pro
+++ b/tests/auto/corelib/tools/qsharedpointer/qsharedpointer.pro
@@ -13,5 +13,3 @@ HEADERS = forwarddeclared.h \
TESTDATA += forwarddeclared.cpp forwarddeclared.h
include(externaltests.pri)
-
-win32:CONFIG += insignificant_test # QTBUG-24160
diff --git a/tests/auto/corelib/tools/qtimeline/qtimeline.pro b/tests/auto/corelib/tools/qtimeline/qtimeline.pro
index 430b61b103..cac8074038 100644
--- a/tests/auto/corelib/tools/qtimeline/qtimeline.pro
+++ b/tests/auto/corelib/tools/qtimeline/qtimeline.pro
@@ -2,5 +2,4 @@ CONFIG += testcase parallel_test
TARGET = tst_qtimeline
QT = core testlib
SOURCES = tst_qtimeline.cpp
-
-win32:CONFIG+=insignificant_test # This has been blacklisted in the past
+win32:CONFIG+=insignificant_test # unstable, QTBUG-24796
diff --git a/tests/auto/gui/kernel/kernel.pro b/tests/auto/gui/kernel/kernel.pro
index 116e9dd1f1..48d94b9bf8 100644
--- a/tests/auto/gui/kernel/kernel.pro
+++ b/tests/auto/gui/kernel/kernel.pro
@@ -13,7 +13,6 @@ SUBDIRS=\
qmouseevent_modal \
qpalette \
qscreen \
- qshortcut \
qtouchevent \
qwindow \
qguiapplication \
diff --git a/tests/auto/network/kernel/qdnslookup/tst_qdnslookup.cpp b/tests/auto/network/kernel/qdnslookup/tst_qdnslookup.cpp
index 249ccd3d75..c1400b82af 100644
--- a/tests/auto/network/kernel/qdnslookup/tst_qdnslookup.cpp
+++ b/tests/auto/network/kernel/qdnslookup/tst_qdnslookup.cpp
@@ -159,8 +159,9 @@ void tst_QDnsLookup::lookup()
const QString hostName = cname.isEmpty() ? domain : cname;
QStringList addresses;
foreach (const QDnsHostAddressRecord &record, lookup.hostAddressRecords()) {
- QCOMPARE(record.name(), hostName);
- addresses << record.value().toString().toLower();
+ //reply may include A & AAAA records for nameservers, ignore them and only look at records matching the query
+ if (record.name() == hostName)
+ addresses << record.value().toString().toLower();
}
addresses.sort();
QCOMPARE(addresses.join(" "), host);
@@ -176,8 +177,9 @@ void tst_QDnsLookup::lookup()
// name servers
QStringList nameServers;
foreach (const QDnsDomainNameRecord &record, lookup.nameServerRecords()) {
- QCOMPARE(record.name(), domain);
- nameServers << record.value();
+ //reply may include NS records for authoritative nameservers, ignore them and only look at records matching the query
+ if (record.name() == domain)
+ nameServers << record.value();
}
nameServers.sort();
QCOMPARE(nameServers.join(" "), ns);
diff --git a/tests/auto/other/headersclean/headersclean.pri b/tests/auto/other/headersclean/headersclean.pri
index 163ef6d409..c95380e3b9 100644
--- a/tests/auto/other/headersclean/headersclean.pri
+++ b/tests/auto/other/headersclean/headersclean.pri
@@ -18,8 +18,10 @@
# Enable pedantic mode, but accept variadic macros and 'long long' usage.
*-g++*: QMAKE_CXXFLAGS += -Wno-long-long -Wno-variadic-macros -pedantic-errors
-# There are outstanding alignment issues on ARM in some container classes.
-contains(QT_ARCH,arm):*-g++*:QMAKE_CXXFLAGS -= -Wcast-align
+contains(QT_ARCH,arm)|contains(QT_ARCH,mips) {
+ # There are outstanding alignment issues in some container classes.
+ *-g++*:QMAKE_CXXFLAGS -= -Wcast-align
+}
QMAKE_CXXFLAGS += -DQT_NO_CAST_TO_ASCII \
-DQT_NO_CAST_FROM_ASCII \
diff --git a/tests/auto/other/other.pro b/tests/auto/other/other.pro
index 6c708baa6b..2a6dc1d662 100644
--- a/tests/auto/other/other.pro
+++ b/tests/auto/other/other.pro
@@ -18,7 +18,6 @@ SUBDIRS=\
qaccessibility \
qcomplextext \
qfocusevent \
- qmultiscreen \
qnetworkaccessmanager_and_qprogressdialog \
qobjectperformance \
qobjectrace \
@@ -40,8 +39,7 @@ wince*|!contains(QT_CONFIG, accessibility):SUBDIRS -= qaccessibility
macplist
!embedded|wince*: SUBDIRS -= \
- qdirectpainter \
- qmultiscreen \
+ qdirectpainter
!linux*-g++*:SUBDIRS -= exceptionsafety_objects
diff --git a/tests/auto/other/qaccessibility/tst_qaccessibility.cpp b/tests/auto/other/qaccessibility/tst_qaccessibility.cpp
index 0edda96f2a..c984fedc86 100644
--- a/tests/auto/other/qaccessibility/tst_qaccessibility.cpp
+++ b/tests/auto/other/qaccessibility/tst_qaccessibility.cpp
@@ -278,52 +278,6 @@ private:
const double Q_PI = 3.14159265358979323846;
-QString eventName(const int ev)
-{
- switch(ev) {
- case 0x0001: return "SoundPlayed";
- case 0x0002: return "Alert";
- case 0x0003: return "ForegroundChanged";
- case 0x0004: return "MenuStart";
- case 0x0005: return "MenuEnd";
- case 0x0006: return "PopupMenuStart";
- case 0x0007: return "PopupMenuEnd";
- case 0x000C: return "ContextHelpStart";
- case 0x000D: return "ContextHelpEnd";
- case 0x000E: return "DragDropStart";
- case 0x000F: return "DragDropEnd";
- case 0x0010: return "DialogStart";
- case 0x0011: return "DialogEnd";
- case 0x0012: return "ScrollingStart";
- case 0x0013: return "ScrollingEnd";
- case 0x0018: return "MenuCommand";
-
- case 0x0116: return "TableModelChanged";
- case 0x011B: return "TextCaretMoved";
-
- case 0x8000: return "ObjectCreated";
- case 0x8001: return "ObjectDestroyed";
- case 0x8002: return "ObjectShow";
- case 0x8003: return "ObjectHide";
- case 0x8004: return "ObjectReorder";
- case 0x8005: return "Focus";
- case 0x8006: return "Selection";
- case 0x8007: return "SelectionAdd";
- case 0x8008: return "SelectionRemove";
- case 0x8009: return "SelectionWithin";
- case 0x800A: return "StateChanged";
- case 0x800B: return "LocationChanged";
- case 0x800C: return "NameChanged";
- case 0x800D: return "DescriptionChanged";
- case 0x800E: return "ValueChanged";
- case 0x800F: return "ParentChanged";
- case 0x80A0: return "HelpChanged";
- case 0x80B0: return "DefaultActionChanged";
- case 0x80C0: return "AcceleratorChanged";
- default: return "Unknown Event";
- }
-}
-
QAccessible::State state(QWidget * const widget)
{
QAccessibleInterface *iface = QAccessible::queryAccessibleInterface(widget);
@@ -403,8 +357,8 @@ void tst_QAccessibility::cleanup()
qWarning("%d accessibility event(s) were not handled in testfunction '%s':", list.count(),
QString(QTest::currentTestFunction()).toAscii().constData());
for (int i = 0; i < list.count(); ++i)
- qWarning(" %d: Object: %p Event: '%s' Child: %d", i + 1, list.at(i).object(),
- eventName(list.at(i).type()).toAscii().constData(), list.at(i).child());
+ qWarning(" %d: Object: %p Event: '%s' Child: %d", i + 1, list.at(i)->object(),
+ qAccessibleEventString(list.at(i)->type()), list.at(i)->child());
}
QTestAccessibility::clearEvents();
}
@@ -730,16 +684,16 @@ void tst_QAccessibility::hideShowTest()
window->show();
QVERIFY(!state(window).invisible);
QVERIFY(!state(child).invisible);
- QVERIFY(QTestAccessibility::events().contains(QAccessibleEvent(QAccessible::ObjectShow, window)));
- QVERIFY(QTestAccessibility::events().contains(QAccessibleEvent(QAccessible::ObjectShow, child)));
+ QVERIFY(QTestAccessibility::containsEvent(QAccessibleEvent(QAccessible::ObjectShow, window)));
+ QVERIFY(QTestAccessibility::containsEvent(QAccessibleEvent(QAccessible::ObjectShow, child)));
QTestAccessibility::clearEvents();
// hide() and veryfy that both window and child are invisible and get ObjectHide events.
window->hide();
QVERIFY(state(window).invisible);
QVERIFY(state(child).invisible);
- QVERIFY(QTestAccessibility::events().contains(QAccessibleEvent(QAccessible::ObjectHide, window)));
- QVERIFY(QTestAccessibility::events().contains(QAccessibleEvent(QAccessible::ObjectHide, child)));
+ QVERIFY(QTestAccessibility::containsEvent(QAccessibleEvent(QAccessible::ObjectHide, window)));
+ QVERIFY(QTestAccessibility::containsEvent(QAccessibleEvent(QAccessible::ObjectHide, child)));
QTestAccessibility::clearEvents();
delete window;
@@ -963,6 +917,9 @@ void tst_QAccessibility::buttonTest()
delete menu;
}
+
+ QTestAccessibility::clearEvents();
+ {
// test check box
interface = QAccessible::queryAccessibleInterface(&checkBox);
actionInterface = interface->actionInterface();
@@ -970,12 +927,20 @@ void tst_QAccessibility::buttonTest()
QCOMPARE(actionInterface->actionNames(), QStringList() << QAccessibleActionInterface::checkAction() << QAccessibleActionInterface::setFocusAction());
QVERIFY(!interface->state().checked);
actionInterface->doAction(QAccessibleActionInterface::checkAction());
+
QTest::qWait(500);
QCOMPARE(actionInterface->actionNames(), QStringList() << QAccessibleActionInterface::uncheckAction() << QAccessibleActionInterface::setFocusAction());
QVERIFY(interface->state().checked);
QVERIFY(checkBox.isChecked());
+ QAccessible::State st;
+ st.checked = true;
+ QVERIFY_EVENT(QAccessibleStateChangeEvent(st, &checkBox));
+ checkBox.setChecked(false);
+ QVERIFY_EVENT(QAccessibleStateChangeEvent(st, &checkBox));
delete interface;
+ }
+ {
// test radiobutton
interface = QAccessible::queryAccessibleInterface(&radio);
actionInterface = interface->actionInterface();
@@ -986,8 +951,12 @@ void tst_QAccessibility::buttonTest()
QTest::qWait(500);
QCOMPARE(actionInterface->actionNames(), QStringList() << QAccessibleActionInterface::checkAction() << QAccessibleActionInterface::setFocusAction());
QVERIFY(interface->state().checked);
- QVERIFY(checkBox.isChecked());
+ QVERIFY(radio.isChecked());
+ QAccessible::State st;
+ st.checked = true;
+ QVERIFY_EVENT(QAccessibleStateChangeEvent(st, &radio));
delete interface;
+ }
// // test standard toolbutton
// QVERIFY(QAccessible::queryAccessibleInterface(&toolbutton, &test));
@@ -1037,8 +1006,6 @@ void tst_QAccessibility::buttonTest()
// QCOMPARE(test->actionText(test->defaultAction(2), QAccessible::Name, 2), QString("Open"));
// QCOMPARE(test->state(2), (int)QAccessible::HasPopup);
// test->release();
-
- QTestAccessibility::clearEvents();
}
void tst_QAccessibility::scrollBarTest()
@@ -1050,12 +1017,12 @@ void tst_QAccessibility::scrollBarTest()
scrollBar->resize(200, 50);
scrollBar->show();
QVERIFY(!scrollBarInterface->state().invisible);
- QVERIFY(QTestAccessibility::events().contains(QAccessibleEvent(QAccessible::ObjectShow, scrollBar)));
+ QVERIFY(QTestAccessibility::containsEvent(QAccessibleEvent(QAccessible::ObjectShow, scrollBar)));
QTestAccessibility::clearEvents();
scrollBar->hide();
QVERIFY(scrollBarInterface->state().invisible);
- QVERIFY(QTestAccessibility::events().contains(QAccessibleEvent(QAccessible::ObjectHide, scrollBar)));
+ QVERIFY(QTestAccessibility::containsEvent(QAccessibleEvent(QAccessible::ObjectHide, scrollBar)));
QTestAccessibility::clearEvents();
// Test that the left/right subcontrols are set to unavailable when the scrollBar is at the minimum/maximum.
@@ -1495,9 +1462,8 @@ void tst_QAccessibility::spinBoxTest()
QTestAccessibility::clearEvents();
QTest::keyPress(spinBox, Qt::Key_Up);
QTest::qWait(200);
- EventList events = QTestAccessibility::events();
QAccessibleEvent expectedEvent(QAccessible::ValueChanged, spinBox);
- QVERIFY(events.contains(expectedEvent));
+ QVERIFY(QTestAccessibility::containsEvent(expectedEvent));
delete spinBox;
QTestAccessibility::clearEvents();
}
@@ -1767,7 +1733,7 @@ void tst_QAccessibility::lineEditTest()
le->setFocus(Qt::TabFocusReason);
QTestAccessibility::clearEvents();
le2->setFocus(Qt::TabFocusReason);
- QTRY_VERIFY(QTestAccessibility::events().contains(QAccessibleEvent(QAccessible::Focus, le2)));
+ QTRY_VERIFY(QTestAccessibility::containsEvent(QAccessibleEvent(QAccessible::Focus, le2)));
le->setText(QLatin1String("500"));
le->setValidator(new QIntValidator());
@@ -1787,7 +1753,7 @@ void tst_QAccessibility::lineEditTest()
le3->deselect();
le3->setCursorPosition(3);
QCOMPARE(textIface->cursorPosition(), 3);
- QTRY_VERIFY(QTestAccessibility::events().contains(QAccessibleEvent(QAccessible::TextCaretMoved, le3)));
+ QTRY_VERIFY(QTestAccessibility::containsEvent(QAccessibleEvent(QAccessible::TextCaretMoved, le3)));
QCOMPARE(textIface->selectionCount(), 0);
QTestAccessibility::clearEvents();
@@ -2158,11 +2124,11 @@ void tst_QAccessibility::listTest()
// Check for events
QTest::mouseClick(listView->viewport(), Qt::LeftButton, 0, listView->visualItemRect(listView->item(1)).center());
- QVERIFY(QTestAccessibility::events().contains(QAccessibleEvent(QAccessible::Selection, listView, 2)));
- QVERIFY(QTestAccessibility::events().contains(QAccessibleEvent(QAccessible::Focus, listView, 2)));
+ QVERIFY(QTestAccessibility::containsEvent(QAccessibleEvent(QAccessible::Selection, listView, 2)));
+ QVERIFY(QTestAccessibility::containsEvent(QAccessibleEvent(QAccessible::Focus, listView, 2)));
QTest::mouseClick(listView->viewport(), Qt::LeftButton, 0, listView->visualItemRect(listView->item(2)).center());
- QVERIFY(QTestAccessibility::events().contains(QAccessibleEvent(QAccessible::Selection, listView, 3)));
- QVERIFY(QTestAccessibility::events().contains(QAccessibleEvent(QAccessible::Focus, listView, 3)));
+ QVERIFY(QTestAccessibility::containsEvent(QAccessibleEvent(QAccessible::Selection, listView, 3)));
+ QVERIFY(QTestAccessibility::containsEvent(QAccessibleEvent(QAccessible::Focus, listView, 3)));
listView->addItem("Munich");
QCOMPARE(iface->childCount(), 4);
diff --git a/tests/auto/other/qmultiscreen/.gitignore b/tests/auto/other/qmultiscreen/.gitignore
deleted file mode 100644
index 82e8d449ad..0000000000
--- a/tests/auto/other/qmultiscreen/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-tst_qmultiscreen
diff --git a/tests/auto/other/qmultiscreen/qmultiscreen.pro b/tests/auto/other/qmultiscreen/qmultiscreen.pro
deleted file mode 100644
index 28373823bf..0000000000
--- a/tests/auto/other/qmultiscreen/qmultiscreen.pro
+++ /dev/null
@@ -1,7 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qmultiscreen
-QT += widgets testlib
-SOURCES += tst_qmultiscreen.cpp
-
-requires(embedded)
-
diff --git a/tests/auto/other/qmultiscreen/tst_qmultiscreen.cpp b/tests/auto/other/qmultiscreen/tst_qmultiscreen.cpp
deleted file mode 100644
index 9beb0666eb..0000000000
--- a/tests/auto/other/qmultiscreen/tst_qmultiscreen.cpp
+++ /dev/null
@@ -1,163 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-#include <QtTest/QtTest>
-
-#include <qdesktopwidget.h>
-#include <qscreen_qws.h>
-#include <qscreendriverfactory_qws.h>
-#include <qlabel.h>
-
-class tst_QMultiScreen : public QObject
-{
- Q_OBJECT
-
-public:
- tst_QMultiScreen() : screen(0), oldScreen(0) {}
- ~tst_QMultiScreen() {}
-
-private slots:
- void initTestCase();
- void cleanupTestCase();
- void widgetSetFixedSize();
- void grabWindow();
-
-private:
- QScreen *screen;
- QScreen *oldScreen;
-};
-
-void tst_QMultiScreen::cleanupTestCase()
-{
- screen->shutdownDevice();
- screen->disconnect();
- delete screen;
- screen = 0;
-
- qt_screen = oldScreen;
-}
-
-void tst_QMultiScreen::initTestCase()
-{
- oldScreen = qt_screen;
-
- QVERIFY(QScreenDriverFactory::keys().contains(QLatin1String("Multi")));
- QVERIFY(QScreenDriverFactory::keys().contains(QLatin1String("VNC")));
-
- const int id = 10;
- screen = QScreenDriverFactory::create("Multi", id);
- QVERIFY(screen);
- QVERIFY(screen->connect(QString("Multi: "
- "VNC:size=640x480:depth=32:offset=0,0:%1 "
- "VNC:size=640x480:depth=32:offset=640,0:%2 "
- "VNC:size=640x480:depth=16:offset=0,480:%3 "
- ":%4")
- .arg(id+1).arg(id+2).arg(id+3).arg(id)));
- QVERIFY(screen->initDevice());
-
- QDesktopWidget desktop;
- QCOMPARE(desktop.numScreens(), 3);
-}
-
-void tst_QMultiScreen::widgetSetFixedSize()
-{
- QDesktopWidget desktop;
- QRect maxRect;
- for (int i = 0; i < desktop.numScreens(); ++i)
- maxRect |= desktop.availableGeometry(i);
-
- maxRect = maxRect.adjusted(50, 50, -50, -50);
-
- // make sure we can set a size larger than a single screen (task 166368)
- QWidget w;
- w.setFixedSize(maxRect.size());
- w.show();
- QApplication::processEvents();
- QCOMPARE(w.geometry().size(), maxRect.size());
-}
-
-void tst_QMultiScreen::grabWindow()
-{
- QDesktopWidget desktop;
-
- QVERIFY(desktop.numScreens() >= 2);
-
- const QRect r0 = desktop.availableGeometry(0).adjusted(50, 50, -50, -50);
- const QRect r1 = desktop.availableGeometry(1).adjusted(60, 60, -60, -60);
-
- QWidget w;
- w.setGeometry(r0);
- w.show();
-
- QLabel l("hi there");
- l.setGeometry(r1);
- l.show();
-
- QApplication::processEvents();
- QApplication::sendPostedEvents(); // workaround for glib event loop
- QVERIFY(desktop.screenNumber(&w) == 0);
- QVERIFY(desktop.screenNumber(&l) == 1);
-
- const QPixmap p0 = QPixmap::grabWindow(w.winId());
- const QPixmap p1 = QPixmap::grabWindow(l.winId());
-
-// p0.save("w.png", "PNG");
-// p1.save("l.png", "PNG");
- QCOMPARE(p0.size(), w.size());
- QCOMPARE(p1.size(), l.size());
-
- const QImage img0 = p0.toImage();
- const QImage img1 = p1.toImage();
-
-// QPixmap::grabWidget(&w).toImage().convertToFormat(img0.format()).save("w_img.png", "PNG");
-// QPixmap::grabWidget(&l).toImage().convertToFormat(img1.format()).save("l_img.png", "PNG");
-
- QImage::Format format = QImage::Format_RGB16;
- QCOMPARE(img0.convertToFormat(format),
- QPixmap::grabWidget(&w).toImage().convertToFormat(format));
- QCOMPARE(img1.convertToFormat(format),
- QPixmap::grabWidget(&l).toImage().convertToFormat(format));
-}
-
-QTEST_MAIN(tst_QMultiScreen)
-
-#include "tst_qmultiscreen.moc"
diff --git a/tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp b/tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp
index ce0d8db1fd..05d84383ae 100644
--- a/tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp
+++ b/tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp
@@ -1537,7 +1537,9 @@ void tst_QSqlRelationalTableModel::relationOnFirstColumn()
//modify the model data
QVERIFY_SQL(model, setData(model.index(0, 0), 40));
+ QVERIFY_SQL(model, submit());
QVERIFY_SQL(model, setData(model.index(1, 0), 50));
+ QVERIFY_SQL(model, submit());
QVERIFY_SQL(model, setData(model.index(2, 0), 30));
//verify the data after modificaiton
diff --git a/tests/auto/sql/models/qsqltablemodel/tst_qsqltablemodel.cpp b/tests/auto/sql/models/qsqltablemodel/tst_qsqltablemodel.cpp
index 448111cd9f..afe2c59144 100644
--- a/tests/auto/sql/models/qsqltablemodel/tst_qsqltablemodel.cpp
+++ b/tests/auto/sql/models/qsqltablemodel/tst_qsqltablemodel.cpp
@@ -83,6 +83,8 @@ private slots:
void setRecord();
void insertRow_data() { generic_data_with_strategies(); }
void insertRow();
+ void insertRowFailure_data() { generic_data_with_strategies(); }
+ void insertRowFailure();
void insertRecord_data() { generic_data(); }
void insertRecord();
void insertMultiRecords_data() { generic_data(); }
@@ -95,6 +97,8 @@ private slots:
void removeInsertedRow();
void removeInsertedRows_data() { generic_data(); }
void removeInsertedRows();
+ void isDirty_data() { generic_data_with_strategies(); }
+ void isDirty();
void setFilter_data() { generic_data(); }
void setFilter();
void setInvalidFilter_data() { generic_data(); }
@@ -159,7 +163,8 @@ void tst_QSqlTableModel::dropTestTables()
<< qTableName("test4", __FILE__)
<< qTableName("emptytable", __FILE__)
<< qTableName("bigtable", __FILE__)
- << qTableName("foo", __FILE__);
+ << qTableName("foo", __FILE__)
+ << qTableName("pktest", __FILE__);
if (testWhiteSpaceNames(db.driverName()))
tableNames << qTableName("qtestw hitespace", db.driver());
@@ -195,6 +200,8 @@ void tst_QSqlTableModel::createTestTables()
QString qry = "create table " + qTableName("qtestw hitespace", db.driver()) + " ("+ db.driver()->escapeIdentifier("a field", QSqlDriver::FieldName) + " int)";
QVERIFY_SQL( q, exec(qry));
}
+
+ QVERIFY_SQL( q, exec("create table "+qTableName("pktest", __FILE__)+"(id int not null primary key, a varchar(20))"));
}
}
@@ -412,7 +419,7 @@ void tst_QSqlTableModel::setRecord()
model.submit();
else {
// dataChanged() emitted by selectRow() as well as setRecord()
- if ((QSqlTableModel::EditStrategy)submitpolicy == QSqlTableModel::OnFieldChange)
+ if ((QSqlTableModel::EditStrategy)submitpolicy != QSqlTableModel::OnManualSubmit)
QCOMPARE(spy.count(), 2);
else
QCOMPARE(spy.count(), 1);
@@ -539,6 +546,73 @@ void tst_QSqlTableModel::insertRow()
QCOMPARE(model.data(model.index(3, 2)).toInt(), 2);
}
+void tst_QSqlTableModel::insertRowFailure()
+{
+ QFETCH(QString, dbName);
+ QSqlDatabase db = QSqlDatabase::database(dbName);
+ QFETCH(int, submitpolicy_i);
+ QSqlTableModel::EditStrategy submitpolicy = (QSqlTableModel::EditStrategy) submitpolicy_i;
+ CHECK_DATABASE(db);
+
+ QSqlTableModel model(0, db);
+ model.setTable(qTableName("pktest", __FILE__));
+ model.setEditStrategy(submitpolicy);
+
+ QSqlRecord values = model.record();
+ values.setValue(0, 42);
+ values.setGenerated(0, true);
+ values.setValue(1, QString("blah"));
+ values.setGenerated(1, true);
+
+ // populate 1 row
+ QVERIFY_SQL(model, insertRecord(0, values));
+ QVERIFY_SQL(model, submitAll());
+ QVERIFY_SQL(model, select());
+ QCOMPARE(model.rowCount(), 1);
+ QCOMPARE(model.data(model.index(0, 0)).toInt(), 42);
+ QCOMPARE(model.data(model.index(0, 1)).toString(), QString("blah"));
+
+ // primary key conflict will succeed in model but fail in database
+ QVERIFY_SQL(model, insertRow(0));
+ QVERIFY_SQL(model, setData(model.index(0, 0), 42));
+ QVERIFY_SQL(model, setData(model.index(0, 1), "conflict"));
+ QFAIL_SQL(model, submitAll());
+
+ // failed insert is still cached
+ QCOMPARE(model.rowCount(), 2);
+ QCOMPARE(model.data(model.index(0, 1)).toString(), QString("conflict"));
+ QCOMPARE(model.data(model.index(1, 1)).toString(), QString("blah"));
+
+ // cached insert affects subsequent operations
+ values.setValue(1, QString("spam"));
+ if (submitpolicy != QSqlTableModel::OnManualSubmit) {
+ QFAIL_SQL(model, setData(model.index(1, 1), QString("eggs")));
+ QCOMPARE(model.data(model.index(1, 1)).toString(), QString("blah"));
+ QFAIL_SQL(model, setRecord(1, values));
+ QCOMPARE(model.data(model.index(1, 1)).toString(), QString("blah"));
+ QFAIL_SQL(model, insertRow(2));
+ QCOMPARE(model.rowCount(), 2);
+ QFAIL_SQL(model, removeRow(1));
+ QCOMPARE(model.rowCount(), 2);
+ } else {
+ QVERIFY_SQL(model, setData(model.index(1, 1), QString("eggs")));
+ QCOMPARE(model.data(model.index(1, 1)).toString(), QString("eggs"));
+ QVERIFY_SQL(model, setRecord(1, values));
+ QCOMPARE(model.data(model.index(1, 1)).toString(), QString("spam"));
+ QVERIFY_SQL(model, insertRow(2));
+ QCOMPARE(model.rowCount(), 3);
+ QVERIFY_SQL(model, removeRow(1));
+ QCOMPARE(model.rowCount(), 3);
+ }
+
+ // restore empty table
+ model.revertAll();
+ QVERIFY_SQL(model, removeRow(0));
+ QVERIFY_SQL(model, submitAll());
+ QVERIFY_SQL(model, select());
+ QCOMPARE(model.rowCount(), 0);
+}
+
void tst_QSqlTableModel::insertRecord()
{
QFETCH(QString, dbName);
@@ -725,8 +799,10 @@ void tst_QSqlTableModel::removeRows()
QVERIFY(!model.removeRows(1, 0)); // zero count
QVERIFY(!model.removeRows(5, 1)); // past end (DOESN'T causes a beforeDelete to be emitted)
QVERIFY(!model.removeRows(1, 0, model.index(2, 0))); // can't pass a valid modelindex
+ QFAIL_SQL(model, removeRows(0, 2)); // more than 1 row on OnFieldChange
- QVERIFY_SQL(model, removeRows(0, 2));
+ QVERIFY_SQL(model, removeRows(0, 1));
+ QVERIFY_SQL(model, removeRows(1, 1));
QCOMPARE(beforeDeleteSpy.count(), 2);
QVERIFY(beforeDeleteSpy.at(0).at(0).toInt() == 0);
QVERIFY(beforeDeleteSpy.at(1).at(0).toInt() == 1);
@@ -956,6 +1032,187 @@ void tst_QSqlTableModel::removeInsertedRows()
QCOMPARE(model.data(model.index(1, 1)).toString(), QString("vohi"));
}
+void tst_QSqlTableModel::isDirty()
+{
+ QFETCH(QString, dbName);
+ QFETCH(int, submitpolicy_i);
+ QSqlTableModel::EditStrategy submitpolicy = (QSqlTableModel::EditStrategy) submitpolicy_i;
+ QSqlDatabase db = QSqlDatabase::database(dbName);
+ CHECK_DATABASE(db);
+
+ QSqlTableModel model(0, db);
+ model.setEditStrategy(submitpolicy);
+ model.setTable(test);
+ QFAIL_SQL(model, isDirty());
+
+ model.setSort(0, Qt::AscendingOrder);
+ QVERIFY_SQL(model, select());
+ QFAIL_SQL(model, isDirty());
+
+ if (submitpolicy != QSqlTableModel::OnFieldChange) {
+ // setData() followed by revertAll()
+ QCOMPARE(model.data(model.index(0, 1)).toString(), QString("harry"));
+ QVERIFY_SQL(model, setData(model.index(0, 1), QString("sam i am")));
+ QCOMPARE(model.data(model.index(0, 1)).toString(), QString("sam i am"));
+ QVERIFY_SQL(model, isDirty());
+ QVERIFY_SQL(model, isDirty(model.index(0, 1)));
+ model.revertAll();
+ QCOMPARE(model.data(model.index(0, 1)).toString(), QString("harry"));
+ QFAIL_SQL(model, isDirty());
+ QFAIL_SQL(model, isDirty(model.index(0, 1)));
+
+ // setData() followed by select(), which clears changes
+ QCOMPARE(model.data(model.index(0, 1)).toString(), QString("harry"));
+ QVERIFY_SQL(model, setData(model.index(0, 1), QString("sam i am")));
+ QCOMPARE(model.data(model.index(0, 1)).toString(), QString("sam i am"));
+ QVERIFY_SQL(model, isDirty());
+ QVERIFY_SQL(model, isDirty(model.index(0, 1)));
+ QVERIFY_SQL(model, select());
+ QCOMPARE(model.data(model.index(0, 1)).toString(), QString("harry"));
+ QFAIL_SQL(model, isDirty());
+ QFAIL_SQL(model, isDirty(model.index(0, 1)));
+ }
+
+ if (submitpolicy == QSqlTableModel::OnRowChange) {
+ // dirty row must block change on other rows
+ QCOMPARE(model.data(model.index(0, 1)).toString(), QString("harry"));
+ QVERIFY(model.rowCount() > 1);
+ QVERIFY_SQL(model, setData(model.index(0, 1), QString("sam i am")));
+ QCOMPARE(model.data(model.index(0, 1)).toString(), QString("sam i am"));
+ QVERIFY_SQL(model, isDirty());
+ QVERIFY_SQL(model, isDirty(model.index(0, 1)));
+ QVERIFY(!(model.flags(model.index(1, 1)) & Qt::ItemIsEditable));
+ QFAIL_SQL(model, setData(model.index(1, 1), QString("sam i am")));
+ QFAIL_SQL(model, setRecord(1, model.record(1)));
+ QFAIL_SQL(model, insertRow(1));
+ QFAIL_SQL(model, removeRow(1));
+ QFAIL_SQL(model, isDirty(model.index(1, 1)));
+
+ model.revertAll();
+ QCOMPARE(model.data(model.index(0, 1)).toString(), QString("harry"));
+ QFAIL_SQL(model, isDirty());
+ QFAIL_SQL(model, isDirty(model.index(0, 1)));
+ }
+
+ // setData() followed by submitAll()
+ QCOMPARE(model.data(model.index(0, 1)).toString(), QString("harry"));
+ QVERIFY_SQL(model, setData(model.index(0, 1), QString("sam i am")));
+ QCOMPARE(model.data(model.index(0, 1)).toString(), QString("sam i am"));
+ if (submitpolicy != QSqlTableModel::OnFieldChange) {
+ QVERIFY_SQL(model, isDirty());
+ QVERIFY_SQL(model, isDirty(model.index(0, 1)));
+ }
+ QVERIFY_SQL(model, submitAll());
+ QCOMPARE(model.data(model.index(0, 1)).toString(), QString("sam i am"));
+ QFAIL_SQL(model, isDirty());
+ QFAIL_SQL(model, isDirty(model.index(0, 1)));
+ // check status after refreshing underlying query
+ QVERIFY_SQL(model, select());
+ QCOMPARE(model.data(model.index(0, 1)).toString(), QString("sam i am"));
+ QFAIL_SQL(model, isDirty());
+ QFAIL_SQL(model, isDirty(model.index(0, 1)));
+ //restore original state
+ QVERIFY_SQL(model, setData(model.index(0, 1), QString("harry")));
+ QVERIFY_SQL(model, submitAll());
+ QVERIFY_SQL(model, select());
+ QFAIL_SQL(model, isDirty());
+ QFAIL_SQL(model, isDirty(model.index(0, 1)));
+
+ QSqlRecord newvals = model.record(0);
+ newvals.setValue(1, QString("sam i am"));
+ newvals.setGenerated(1, true);
+ if (submitpolicy == QSqlTableModel::OnManualSubmit) {
+ // setRecord() followed by revertAll()
+ QCOMPARE(model.data(model.index(0, 1)).toString(), QString("harry"));
+ QVERIFY_SQL(model, setRecord(0, newvals));
+ QCOMPARE(model.data(model.index(0, 1)).toString(), QString("sam i am"));
+ QVERIFY_SQL(model, isDirty());
+ QVERIFY_SQL(model, isDirty(model.index(0, 1)));
+ model.revertAll();
+ QCOMPARE(model.data(model.index(0, 1)).toString(), QString("harry"));
+ QFAIL_SQL(model, isDirty());
+ QFAIL_SQL(model, isDirty(model.index(0, 1)));
+
+ // setRecord() followed by select(), which clears changes
+ QCOMPARE(model.data(model.index(0, 1)).toString(), QString("harry"));
+ QVERIFY_SQL(model, setRecord(0, newvals));
+ QCOMPARE(model.data(model.index(0, 1)).toString(), QString("sam i am"));
+ QVERIFY_SQL(model, isDirty());
+ QVERIFY_SQL(model, isDirty(model.index(0, 1)));
+ QVERIFY_SQL(model, select());
+ QCOMPARE(model.data(model.index(0, 1)).toString(), QString("harry"));
+ QFAIL_SQL(model, isDirty());
+ QFAIL_SQL(model, isDirty(model.index(0, 1)));
+ }
+
+ // setRecord() followed by submitAll()
+ QCOMPARE(model.data(model.index(0, 1)).toString(), QString("harry"));
+ QVERIFY_SQL(model, setRecord(0, newvals));
+ QCOMPARE(model.data(model.index(0, 1)).toString(), QString("sam i am"));
+ if (submitpolicy == QSqlTableModel::OnManualSubmit) {
+ QVERIFY_SQL(model, isDirty());
+ QVERIFY_SQL(model, isDirty(model.index(0, 1)));
+ }
+ QVERIFY_SQL(model, submitAll());
+ QCOMPARE(model.data(model.index(0, 1)).toString(), QString("sam i am"));
+ QFAIL_SQL(model, isDirty());
+ QFAIL_SQL(model, isDirty(model.index(0, 1)));
+ // check status after refreshing underlying query
+ QVERIFY_SQL(model, select());
+ QCOMPARE(model.data(model.index(0, 1)).toString(), QString("sam i am"));
+ QFAIL_SQL(model, isDirty());
+ QFAIL_SQL(model, isDirty(model.index(0, 1)));
+ //restore original state
+ QVERIFY_SQL(model, setData(model.index(0, 1), QString("harry")));
+ QVERIFY_SQL(model, submitAll());
+ QVERIFY_SQL(model, select());
+ QFAIL_SQL(model, isDirty());
+ QFAIL_SQL(model, isDirty(model.index(0, 1)));
+
+ // insertRow()
+ QVERIFY_SQL(model, insertRow(0));
+ QVERIFY_SQL(model, isDirty());
+ QVERIFY_SQL(model, isDirty(model.index(0, 1)));
+ model.revertAll();
+ QFAIL_SQL(model, isDirty());
+ QFAIL_SQL(model, isDirty(model.index(0, 1)));
+ QVERIFY_SQL(model, select());
+ QCOMPARE(model.data(model.index(0, 1)).toString(), QString("harry"));
+ QFAIL_SQL(model, isDirty());
+ QFAIL_SQL(model, isDirty(model.index(0, 1)));
+
+ // removeRow()
+ QSqlRecord saved_rec = model.record(0);
+ QVERIFY_SQL(model, removeRow(0));
+ if (submitpolicy == QSqlTableModel::OnManualSubmit) {
+ QVERIFY_SQL(model, isDirty());
+ QVERIFY_SQL(model, isDirty(model.index(0, 1)));
+ }
+ QVERIFY_SQL(model, submitAll());
+ QFAIL_SQL(model, isDirty());
+ QFAIL_SQL(model, isDirty(model.index(0, 1)));
+ QVERIFY_SQL(model, select());
+ QFAIL_SQL(model, isDirty());
+ QFAIL_SQL(model, isDirty(model.index(0, 1)));
+ QCOMPARE(model.data(model.index(0, 1)).toString(), QString("trond"));
+
+ // insertRecord(), put back the removed row
+ for (int i = saved_rec.count() - 1; i >= 0; --i)
+ saved_rec.setGenerated(i, true);
+ QVERIFY_SQL(model, insertRecord(0, saved_rec));
+ if (submitpolicy == QSqlTableModel::OnManualSubmit) {
+ QVERIFY_SQL(model, isDirty());
+ QVERIFY_SQL(model, isDirty(model.index(0, 1)));
+ }
+ QVERIFY_SQL(model, submitAll());
+ QFAIL_SQL(model, isDirty());
+ QFAIL_SQL(model, isDirty(model.index(0, 1)));
+ QVERIFY_SQL(model, select());
+ QFAIL_SQL(model, isDirty());
+ QFAIL_SQL(model, isDirty(model.index(0, 1)));
+ QCOMPARE(model.data(model.index(0, 1)).toString(), QString("harry"));
+}
+
void tst_QSqlTableModel::emptyTable()
{
QFETCH(QString, dbName);
diff --git a/tests/auto/widgets/dialogs/qfilesystemmodel/tst_qfilesystemmodel.cpp b/tests/auto/widgets/dialogs/qfilesystemmodel/tst_qfilesystemmodel.cpp
index fe374b1e8d..1a3d083864 100644
--- a/tests/auto/widgets/dialogs/qfilesystemmodel/tst_qfilesystemmodel.cpp
+++ b/tests/auto/widgets/dialogs/qfilesystemmodel/tst_qfilesystemmodel.cpp
@@ -847,7 +847,7 @@ void tst_QFileSystemModel::sort()
tree->resize(800, 800);
QTest::qWait(500);
tree->header()->setSortIndicator(1,Qt::DescendingOrder);
- tree->header()->setResizeMode(0, QHeaderView::ResizeToContents);
+ tree->header()->setSectionResizeMode(0, QHeaderView::ResizeToContents);
QStringList dirsToOpen;
do
{
diff --git a/tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp
index 5c99e48388..98c3866dd2 100644
--- a/tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp
+++ b/tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp
@@ -1069,9 +1069,6 @@ void tst_QGraphicsItem::toolTip()
foundTipLabel = true;
}
QVERIFY(foundView);
-#ifdef Q_OS_MAC
- QEXPECT_FAIL("", "QTBUG-23707", Continue);
-#endif
QVERIFY(foundTipLabel);
}
diff --git a/tests/auto/widgets/graphicsview/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp b/tests/auto/widgets/graphicsview/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp
index 843b584ce5..fef21c19f7 100644
--- a/tests/auto/widgets/graphicsview/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp
+++ b/tests/auto/widgets/graphicsview/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp
@@ -2640,9 +2640,6 @@ void tst_QGraphicsProxyWidget::tooltip_basic()
foundTipLabel = true;
}
QVERIFY(foundView);
-#ifdef Q_OS_MAC
- QEXPECT_FAIL("", "QTBUG-23707", Continue);
-#endif
QVERIFY(foundTipLabel);
}
}
diff --git a/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp b/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp
index 3edc125b5a..9ad71771c5 100644
--- a/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp
+++ b/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp
@@ -502,20 +502,20 @@ void tst_QHeaderView::removeCols()
void tst_QHeaderView::movable()
{
- QCOMPARE(view->isMovable(), false);
- view->setMovable(false);
- QCOMPARE(view->isMovable(), false);
- view->setMovable(true);
- QCOMPARE(view->isMovable(), true);
+ QCOMPARE(view->sectionsMovable(), false);
+ view->setSectionsMovable(false);
+ QCOMPARE(view->sectionsMovable(), false);
+ view->setSectionsMovable(true);
+ QCOMPARE(view->sectionsMovable(), true);
}
void tst_QHeaderView::clickable()
{
- QCOMPARE(view->isClickable(), false);
- view->setClickable(false);
- QCOMPARE(view->isClickable(), false);
- view->setClickable(true);
- QCOMPARE(view->isClickable(), true);
+ QCOMPARE(view->sectionsClickable(), false);
+ view->setSectionsClickable(false);
+ QCOMPARE(view->sectionsClickable(), false);
+ view->setSectionsClickable(true);
+ QCOMPARE(view->sectionsClickable(), true);
}
void tst_QHeaderView::hidden()
@@ -1108,7 +1108,7 @@ void tst_QHeaderView::resizeWithResizeModes()
view->setStretchLastSection(false);
for (int i = 0; i < sections.count(); ++i) {
view->resizeSection(i, sections.at(i));
- view->setResizeMode(i, (QHeaderView::ResizeMode)modes.at(i));
+ view->setSectionResizeMode(i, (QHeaderView::ResizeMode)modes.at(i));
}
topLevel->show();
view->resize(size, size);
@@ -1150,27 +1150,27 @@ void tst_QHeaderView::resizeMode()
// resizeMode must not be called with an invalid index
int last = view->count() - 1;
view->setResizeMode(QHeaderView::Interactive);
- QCOMPARE(view->resizeMode(last), QHeaderView::Interactive);
- QCOMPARE(view->resizeMode(1), QHeaderView::Interactive);
+ QCOMPARE(view->sectionResizeMode(last), QHeaderView::Interactive);
+ QCOMPARE(view->sectionResizeMode(1), QHeaderView::Interactive);
view->setResizeMode(QHeaderView::Stretch);
- QCOMPARE(view->resizeMode(last), QHeaderView::Stretch);
- QCOMPARE(view->resizeMode(1), QHeaderView::Stretch);
+ QCOMPARE(view->sectionResizeMode(last), QHeaderView::Stretch);
+ QCOMPARE(view->sectionResizeMode(1), QHeaderView::Stretch);
view->setResizeMode(QHeaderView::Custom);
- QCOMPARE(view->resizeMode(last), QHeaderView::Custom);
- QCOMPARE(view->resizeMode(1), QHeaderView::Custom);
+ QCOMPARE(view->sectionResizeMode(last), QHeaderView::Custom);
+ QCOMPARE(view->sectionResizeMode(1), QHeaderView::Custom);
// test when sections have been moved
view->setStretchLastSection(false);
for (int i=0; i < (view->count() - 1); ++i)
- view->setResizeMode(i, QHeaderView::Interactive);
+ view->setSectionResizeMode(i, QHeaderView::Interactive);
int logicalIndex = view->count() / 2;
- view->setResizeMode(logicalIndex, QHeaderView::Stretch);
+ view->setSectionResizeMode(logicalIndex, QHeaderView::Stretch);
view->moveSection(view->visualIndex(logicalIndex), 0);
for (int i=0; i < (view->count() - 1); ++i) {
if (i == logicalIndex)
- QCOMPARE(view->resizeMode(i), QHeaderView::Stretch);
+ QCOMPARE(view->sectionResizeMode(i), QHeaderView::Stretch);
else
- QCOMPARE(view->resizeMode(i), QHeaderView::Interactive);
+ QCOMPARE(view->sectionResizeMode(i), QHeaderView::Interactive);
}
}
@@ -1209,12 +1209,12 @@ void tst_QHeaderView::resizeSection()
view->resize(400, 400);
topLevel->show();
- view->setMovable(true);
+ view->setSectionsMovable(true);
view->setStretchLastSection(false);
for (int i = 0; i < logical.count(); ++i)
if (logical.at(i) > -1 && logical.at(i) < view->count()) // for now
- view->setResizeMode(logical.at(i), (QHeaderView::ResizeMode)mode.at(i));
+ view->setSectionResizeMode(logical.at(i), (QHeaderView::ResizeMode)mode.at(i));
for (int j = 0; j < logical.count(); ++j)
view->resizeSection(logical.at(j), initial);
@@ -1447,7 +1447,7 @@ void tst_QHeaderView::stretchSectionCount()
view->setStretchLastSection(true);
QCOMPARE(view->stretchSectionCount(), 0);
- view->setResizeMode(0, QHeaderView::Stretch);
+ view->setSectionResizeMode(0, QHeaderView::Stretch);
QCOMPARE(view->stretchSectionCount(), 1);
}
@@ -1693,7 +1693,7 @@ void tst_QHeaderView::globalResizeMode()
h.setResizeMode((QHeaderView::ResizeMode)mode);
m.insertRow(insert);
for (int i = 0; i < h.count(); ++i)
- QCOMPARE(h.resizeMode(i), (QHeaderView::ResizeMode)mode);
+ QCOMPARE(h.sectionResizeMode(i), (QHeaderView::ResizeMode)mode);
}
@@ -1725,7 +1725,7 @@ void tst_QHeaderView::sectionPressedSignal()
h.setModel(&m);
h.show();
- h.setClickable(clickable);
+ h.setSectionsClickable(clickable);
QSignalSpy spy(&h, SIGNAL(sectionPressed(int)));
@@ -1745,7 +1745,7 @@ void tst_QHeaderView::sectionClickedSignal()
h.setModel(&m);
h.show();
- h.setClickable(clickable);
+ h.setSectionsClickable(clickable);
h.setSortIndicatorShown(true);
QSignalSpy spy(&h, SIGNAL(sectionClicked(int)));
@@ -1869,7 +1869,7 @@ void tst_QHeaderView::preserveHiddenSectionWidth()
view.resizeSection(0, 100);
view.resizeSection(1, 10);
view.resizeSection(2, 50);
- view.setResizeMode(3, QHeaderView::Stretch);
+ view.setSectionResizeMode(3, QHeaderView::Stretch);
view.show();
view.hideSection(2);
@@ -2066,7 +2066,7 @@ void tst_QHeaderView::QTBUG7833_sectionClicked()
tv.setSortingEnabled(true);
tv.horizontalHeader()->setSortIndicatorShown(true);
- tv.horizontalHeader()->setClickable(true);
+ tv.horizontalHeader()->setSectionsClickable(true);
tv.horizontalHeader()->setStretchLastSection(true);
tv.horizontalHeader()->setResizeMode(QHeaderView::Interactive);
@@ -2126,7 +2126,7 @@ void tst_QHeaderView::QTBUG12268_hiddenMovedSectionSorting()
for (int j = 0; j< model->columnCount(); ++j)
model->setData(model->index(i,j), QString("item [%1,%2]").arg(i).arg(j));
view.setModel(model);
- view.horizontalHeader()->setMovable(true);
+ view.horizontalHeader()->setSectionsMovable(true);
view.setSortingEnabled(true);
view.sortByColumn(1, Qt::AscendingOrder);
view.horizontalHeader()->moveSection(0,2);
diff --git a/tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp b/tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp
index 9144a023d7..0c396aac60 100644
--- a/tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp
+++ b/tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp
@@ -175,6 +175,7 @@ private slots:
void tabFocus();
void bigModel();
void selectionSignal();
+ void setCurrentIndex();
// task-specific tests:
void task173773_updateVerticalHeader();
@@ -254,11 +255,15 @@ class QtTestTableModel: public QAbstractTableModel
signals:
void invalidIndexEncountered() const;
+public slots:
+ bool submit() { ++submit_count; return QAbstractTableModel::submit(); }
+
public:
QtTestTableModel(int rows = 0, int columns = 0, QObject *parent = 0)
: QAbstractTableModel(parent),
row_count(rows),
column_count(columns),
+ submit_count(0),
can_fetch_more(false),
fetch_more_count(0),
disabled_rows(),
@@ -400,6 +405,7 @@ public:
int row_count;
int column_count;
+ int submit_count;
bool can_fetch_more;
int fetch_more_count;
QSet<int> disabled_rows;
@@ -3480,6 +3486,27 @@ void tst_QTableView::selectionSignal()
QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, view.visualRect(model.index(2, 0)).center());
}
+void tst_QTableView::setCurrentIndex()
+{
+ QtTestTableModel model(4, 4);
+ QtTestTableView view;
+ view.setModel(&model);
+
+ // submit() slot should be called in model when current row changes
+ view.setCurrentIndex(model.index(0,0));
+ QCOMPARE(model.submit_count, 1);
+ view.setCurrentIndex(model.index(0,2));
+ QCOMPARE(model.submit_count, 1);
+ view.setCurrentIndex(model.index(1,0));
+ QCOMPARE(model.submit_count, 2);
+ view.setCurrentIndex(model.index(3,3));
+ QCOMPARE(model.submit_count, 3);
+ view.setCurrentIndex(model.index(0,1));
+ QCOMPARE(model.submit_count, 4);
+ view.setCurrentIndex(model.index(0,0));
+ QCOMPARE(model.submit_count, 4);
+}
+
class task173773_EventFilter : public QObject
{
int paintEventCount_;
diff --git a/tests/auto/widgets/kernel/kernel.pro b/tests/auto/widgets/kernel/kernel.pro
index 3a00300ac3..cf909b7e87 100644
--- a/tests/auto/widgets/kernel/kernel.pro
+++ b/tests/auto/widgets/kernel/kernel.pro
@@ -14,6 +14,7 @@ SUBDIRS=\
qwidget_window \
qwidgetaction \
qicon \
+ qshortcut \
SUBDIRS -= qsound
diff --git a/tests/auto/gui/kernel/qshortcut/.gitignore b/tests/auto/widgets/kernel/qshortcut/.gitignore
index 3a17eb18e3..3a17eb18e3 100644
--- a/tests/auto/gui/kernel/qshortcut/.gitignore
+++ b/tests/auto/widgets/kernel/qshortcut/.gitignore
diff --git a/tests/auto/gui/kernel/qshortcut/qshortcut.pro b/tests/auto/widgets/kernel/qshortcut/qshortcut.pro
index 7ac1dd2c9d..7ac1dd2c9d 100644
--- a/tests/auto/gui/kernel/qshortcut/qshortcut.pro
+++ b/tests/auto/widgets/kernel/qshortcut/qshortcut.pro
diff --git a/tests/auto/gui/kernel/qshortcut/tst_qshortcut.cpp b/tests/auto/widgets/kernel/qshortcut/tst_qshortcut.cpp
index 61efb6e3f3..61efb6e3f3 100644
--- a/tests/auto/gui/kernel/qshortcut/tst_qshortcut.cpp
+++ b/tests/auto/widgets/kernel/qshortcut/tst_qshortcut.cpp
diff --git a/tests/auto/widgets/kernel/qtooltip/tst_qtooltip.cpp b/tests/auto/widgets/kernel/qtooltip/tst_qtooltip.cpp
index b47ef659be..e20111c652 100644
--- a/tests/auto/widgets/kernel/qtooltip/tst_qtooltip.cpp
+++ b/tests/auto/widgets/kernel/qtooltip/tst_qtooltip.cpp
@@ -90,12 +90,8 @@ void tst_QToolTip::task183679_data()
{
QTest::addColumn<Qt::Key>("key");
QTest::addColumn<bool>("visible");
-#ifdef Q_OS_MAC
- const bool visibleAfterNonModifier = false;
-#else
- const bool visibleAfterNonModifier = true;
-#endif
- QTest::newRow("non-modifier") << Qt::Key_A << visibleAfterNonModifier;
+
+ QTest::newRow("non-modifier") << Qt::Key_A << true;
QTest::newRow("Shift") << Qt::Key_Shift << true;
QTest::newRow("Control") << Qt::Key_Control << true;
QTest::newRow("Alt") << Qt::Key_Alt << true;
@@ -116,9 +112,6 @@ void tst_QToolTip::task183679()
widget.showDelayedToolTip(100);
QTest::qWait(300);
-#ifdef Q_OS_MAC
- QEXPECT_FAIL("", "QTBUG-23707", Continue);
-#endif
QTRY_VERIFY(QToolTip::isVisible());
QTest::keyPress(&widget, key);
@@ -128,12 +121,6 @@ void tst_QToolTip::task183679()
// auto-close timeout (currently 10000 msecs)
QTest::qWait(1500);
-#ifdef Q_OS_MAC
- QEXPECT_FAIL("Shift", "QTBUG-23707", Continue);
- QEXPECT_FAIL("Control", "QTBUG-23707", Continue);
- QEXPECT_FAIL("Alt", "QTBUG-23707", Continue);
- QEXPECT_FAIL("Meta", "QTBUG-23707", Continue);
-#endif
QCOMPARE(QToolTip::isVisible(), visible);
}
diff --git a/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp b/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp
index f9eb8b6159..4730d7d556 100644
--- a/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp
+++ b/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp
@@ -909,9 +909,6 @@ void tst_QComboBox::hide()
QTRY_VERIFY(testWidget->view()->isVisible());
testWidget->hidePopup();
//allow combobox effect to complete
-#ifdef Q_OS_MAC
- QEXPECT_FAIL("", "QTBUG-23678", Continue);
-#endif
QTRY_VERIFY(!testWidget->view()->isVisible());
testWidget->hide();
QVERIFY(!testWidget->isVisible());
diff --git a/tests/auto/widgets/widgets/qdockwidget/tst_qdockwidget.cpp b/tests/auto/widgets/widgets/qdockwidget/tst_qdockwidget.cpp
index 43c0022c25..7e7b049166 100644
--- a/tests/auto/widgets/widgets/qdockwidget/tst_qdockwidget.cpp
+++ b/tests/auto/widgets/widgets/qdockwidget/tst_qdockwidget.cpp
@@ -764,6 +764,9 @@ void tst_QDockWidget::task169808_setFloating()
qt_x11_wait_for_window_manager(&mw);
#endif
+#ifdef Q_OS_MAC
+ QEXPECT_FAIL("", "Window handling: QTBUG-24774", Abort);
+#endif
QCOMPARE(dw->widget()->size(), dw->widget()->sizeHint());
//and now we try to test if the contents margin is taken into account
diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
index 8423953d7d..92fdd35f3c 100644
--- a/tools/configure/configureapp.cpp
+++ b/tools/configure/configureapp.cpp
@@ -188,7 +188,6 @@ Configure::Configure(int& argc, char** argv)
dictionary[ "QMAKESPEC_FROM" ] = "env";
}
- dictionary[ "ARCHITECTURE" ] = "windows";
dictionary[ "QCONFIG" ] = "full";
dictionary[ "EMBEDDED" ] = "no";
dictionary[ "BUILD_QMAKE" ] = "yes";
@@ -199,6 +198,7 @@ Configure::Configure(int& argc, char** argv)
dictionary[ "NOPROCESS" ] = "no";
dictionary[ "STL" ] = "yes";
dictionary[ "EXCEPTIONS" ] = "yes";
+ dictionary[ "WIDGETS" ] = "yes";
dictionary[ "RTTI" ] = "yes";
dictionary[ "MMX" ] = "auto";
dictionary[ "3DNOW" ] = "auto";
@@ -470,11 +470,7 @@ void Configure::parseCmdLine()
++i;
if (i == argCount)
break;
- dictionary[ "ARCHITECTURE" ] = configCmdLine.at(i);
- if (configCmdLine.at(i) == "boundschecker") {
- dictionary[ "ARCHITECTURE" ] = "generic"; // Boundschecker uses the generic arch,
- qtConfig += "boundschecker"; // but also needs this CONFIG option
- }
+ dictionary["OBSOLETE_ARCH_ARG"] = "yes";
} else if (configCmdLine.at(i) == "-embedded") {
dictionary[ "EMBEDDED" ] = "yes";
} else if (configCmdLine.at(i) == "-xplatform") {
@@ -776,6 +772,11 @@ void Configure::parseCmdLine()
else if (configCmdLine.at(i) == "-no-exceptions")
dictionary[ "EXCEPTIONS" ] = "no";
+ else if (configCmdLine.at(i) == "-widgets")
+ dictionary[ "WIDGETS" ] = "yes";
+ else if (configCmdLine.at(i) == "-no-widgets")
+ dictionary[ "WIDGETS" ] = "no";
+
else if (configCmdLine.at(i) == "-rtti")
dictionary[ "RTTI" ] = "yes";
else if (configCmdLine.at(i) == "-no-rtti")
@@ -1365,7 +1366,6 @@ void Configure::applySpecSpecifics()
dictionary[ "STL" ] = "no";
dictionary[ "EXCEPTIONS" ] = "no";
dictionary[ "RTTI" ] = "no";
- dictionary[ "ARCHITECTURE" ] = "windowsce";
dictionary[ "3DNOW" ] = "no";
dictionary[ "SSE" ] = "no";
dictionary[ "SSE2" ] = "no";
@@ -1387,7 +1387,7 @@ void Configure::applySpecSpecifics()
dictionary[ "STYLE_WINDOWSXP" ] = "no";
dictionary[ "STYLE_WINDOWSVISTA" ] = "no";
dictionary[ "KBD_DRIVERS" ] = "tty";
- dictionary[ "GFX_DRIVERS" ] = "linuxfb vnc";
+ dictionary[ "GFX_DRIVERS" ] = "linuxfb";
dictionary[ "MOUSE_DRIVERS" ] = "pc linuxtp";
dictionary[ "OPENGL" ] = "no";
dictionary[ "EXCEPTIONS" ] = "no";
@@ -1451,7 +1451,7 @@ bool Configure::displayHelp()
"[-no-fast] [-fast] [-no-exceptions] [-exceptions]\n"
"[-no-accessibility] [-accessibility] [-no-rtti] [-rtti]\n"
"[-no-stl] [-stl] [-no-sql-<driver>] [-qt-sql-<driver>]\n"
- "[-plugin-sql-<driver>] [-system-sqlite] [-arch <arch>]\n"
+ "[-plugin-sql-<driver>] [-system-sqlite]\n"
"[-D <define>] [-I <includepath>] [-L <librarypath>]\n"
"[-help] [-no-dsp] [-dsp] [-no-vcproj] [-vcproj]\n"
"[-no-qmake] [-qmake] [-dont-process] [-process]\n"
@@ -1468,7 +1468,7 @@ bool Configure::displayHelp()
"[-no-multimedia] [-multimedia] [-no-audio-backend] [-audio-backend]\n"
"[-no-script] [-script] [-no-scripttools] [-scripttools]\n"
"[-no-webkit] [-webkit] [-webkit-debug]\n"
- "[-no-directwrite] [-directwrite] [-qpa]\n\n", 0, 7);
+ "[-no-directwrite] [-directwrite] [-qpa] [-no-widgets] \n\n", 0, 7);
desc("Installation options:\n\n");
@@ -1502,6 +1502,8 @@ bool Configure::displayHelp()
desc("EXCEPTIONS", "no", "-no-exceptions", "Disable exceptions on platforms that support it.");
desc("EXCEPTIONS", "yes","-exceptions", "Enable exceptions on platforms that support it.\n");
+ desc("WIDGETS", "no", "-no-widgets", "Disable QtWidgets module\n");
+
desc("ACCESSIBILITY", "no", "-no-accessibility", "Do not compile Windows Active Accessibility support.");
desc("ACCESSIBILITY", "yes", "-accessibility", "Compile Windows Active Accessibility support.\n");
@@ -1623,13 +1625,6 @@ bool Configure::displayHelp()
desc("DIRECTWRITE", "no", "-no-directwrite", "Do not build support for DirectWrite font rendering");
desc("DIRECTWRITE", "yes", "-directwrite", "Build support for DirectWrite font rendering (experimental, requires DirectWrite availability on target systems, e.g. Windows Vista with Platform Update, Windows 7, etc.)");
- desc( "-arch <arch>", "Specify an architecture.\n"
- "Available values for <arch>:");
- desc("ARCHITECTURE","windows", "", " windows", ' ');
- desc("ARCHITECTURE","windowsce", "", " windowsce", ' ');
- desc("ARCHITECTURE","boundschecker", "", " boundschecker", ' ');
- desc("ARCHITECTURE","generic", "", " generic\n", ' ');
-
desc( "-no-style-<style>", "Disable <style> entirely.");
desc( "-qt-style-<style>", "Enable <style> in the Qt Library.\nAvailable styles: ");
@@ -1846,13 +1841,13 @@ bool Configure::checkAvailability(const QString &part)
else if (part == "SQL_IBASE")
available = findFile("ibase.h") && (findFile("gds32_ms.lib") || findFile("gds32.lib"));
else if (part == "IWMMXT")
- available = (dictionary[ "ARCHITECTURE" ] == "windowsce");
+ available = (dictionary.value("XQMAKESPEC").startsWith("wince"));
else if (part == "OPENGL_ES_CM")
- available = (dictionary[ "ARCHITECTURE" ] == "windowsce");
+ available = (dictionary.value("XQMAKESPEC").startsWith("wince"));
else if (part == "OPENGL_ES_2")
- available = (dictionary[ "ARCHITECTURE" ] == "windowsce");
+ available = (dictionary.value("XQMAKESPEC").startsWith("wince"));
else if (part == "DIRECTSHOW")
- available = (dictionary[ "ARCHITECTURE" ] == "windowsce");
+ available = (dictionary.value("XQMAKESPEC").startsWith("wince"));
else if (part == "SSE2")
available = (dictionary.value("QMAKESPEC") != "win32-msvc");
else if (part == "3DNOW")
@@ -1866,7 +1861,7 @@ bool Configure::checkAvailability(const QString &part)
else if (part == "CETEST") {
QString rapiHeader = locateFile("rapi.h");
QString rapiLib = locateFile("rapi.lib");
- available = (dictionary[ "ARCHITECTURE" ] == "windowsce") && !rapiHeader.isEmpty() && !rapiLib.isEmpty();
+ available = (dictionary.value("XQMAKESPEC").startsWith("wince")) && !rapiHeader.isEmpty() && !rapiLib.isEmpty();
if (available) {
dictionary[ "QT_CE_RAPI_INC" ] += QLatin1String("\"") + rapiHeader + QLatin1String("\"");
dictionary[ "QT_CE_RAPI_LIB" ] += QLatin1String("\"") + rapiLib + QLatin1String("\"");
@@ -2110,6 +2105,9 @@ void Configure::generateOutputVars()
qtConfig += "release";
}
+ if (dictionary[ "WIDGETS" ] == "no")
+ qtConfig += "no-widgets";
+
// Compression --------------------------------------------------
if (dictionary[ "ZLIB" ] == "qt")
qtConfig += "zlib";
@@ -2484,7 +2482,6 @@ void Configure::generateCachefile()
moduleStream << "QMAKESPEC = " << escapeSeparators(mkspec_path) << endl;
else
moduleStream << "QMAKESPEC = " << fixSeparators(targetSpec, true) << endl;
- moduleStream << "ARCH = " << dictionary[ "ARCHITECTURE" ] << endl;
if (dictionary["QT_EDITION"] != "QT_EDITION_OPENSOURCE")
moduleStream << "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" << endl;
@@ -2528,7 +2525,83 @@ void Configure::generateCachefile()
moduleStream.flush();
moduleFile.close();
}
+}
+
+/*
+ Runs qmake on config.tests/arch/arch.pro, which will detect the target arch
+ for the compiler we are using
+*/
+void Configure::detectArch()
+{
+ QString oldpwd = QDir::currentPath();
+ QString newpwd = fixSeparators(QString("%1/config.tests/arch").arg(buildPath));
+ if (!QDir().exists(newpwd) && !QDir().mkpath(newpwd)) {
+ cout << "Failed to create directory " << qPrintable(newpwd) << endl;
+ dictionary["DONE"] = "error";
+ return;
+ }
+ if (!QDir::setCurrent(newpwd)) {
+ cout << "Failed to change working directory to " << qPrintable(newpwd) << endl;
+ dictionary["DONE"] = "error";
+ return;
+ }
+
+ QList<QPair<QString, QString> > qmakespecs;
+ if (dictionary.contains("XQMAKESPEC"))
+ qmakespecs << qMakePair(QString("XQMAKESPEC"), QString("QT_ARCH"));
+ qmakespecs << qMakePair(QString("QMAKESPEC"), QString("QT_HOST_ARCH"));
+
+ for (int i = 0; i < qmakespecs.count(); ++i) {
+ const QPair<QString, QString> &pair = qmakespecs.at(i);
+ QString qmakespec = dictionary.value(pair.first);
+ QString key = pair.second;
+
+ QString command =
+ fixSeparators(QString("%1/bin/qmake.exe -spec %2 %3/config.tests/arch/arch.pro -o %4/Makefile.unused 2>&1")
+ .arg(buildPath, qmakespec, sourcePath, newpwd));
+ QString output = Environment::execute(command);
+ if (output.isEmpty())
+ continue;
+
+ // strip everything up to and including 'Project MESSAGE: '
+ QString ProjectMESSAGE = QStringLiteral("Project MESSAGE: ");
+ int at = output.indexOf(ProjectMESSAGE);
+ if (at != -1)
+ output = output.mid(at + ProjectMESSAGE.length());
+
+ // strip lines beginning with a #
+ at = 0;
+ while ((at = output.indexOf('#', at)) != -1) {
+ if (at > 0 && output.at(at - 1) != '\n') {
+ // # isnt' at the beginning of a line, skip it
+ ++at;
+ continue;
+ }
+
+ int eol = output.indexOf('\n', at);
+ if (eol == -1) {
+ // end of string
+ output.remove(at, output.length() - at);
+ break;
+ }
+
+ output.remove(at, eol - at + 1);
+ }
+
+ dictionary[key] = output.simplified();
+ }
+
+ if (!dictionary.contains("QT_HOST_ARCH"))
+ dictionary["QT_HOST_ARCH"] = "unknown";
+ if (!dictionary.contains("QT_ARCH"))
+ dictionary["QT_ARCH"] = dictionary["QT_HOST_ARCH"];
+
+ QDir::setCurrent(oldpwd);
+}
+
+void Configure::generateQConfigPri()
+{
// Generate qconfig.pri
QFile configFile(dictionary[ "QT_BUILD_TREE" ] + "/mkspecs/qconfig.pri");
if (configFile.open(QFile::WriteOnly | QFile::Text)) { // Truncates any existing file.
@@ -2574,7 +2647,8 @@ void Configure::generateCachefile()
configStream << "directwrite";
configStream << endl;
- configStream << "QT_ARCH = " << dictionary[ "ARCHITECTURE" ] << endl;
+ configStream << "QT_ARCH = " << dictionary["QT_ARCH"] << endl;
+ configStream << "QT_HOST_ARCH = " << dictionary["QT_HOST_ARCH"] << endl;
if (dictionary["QT_EDITION"].contains("OPENSOURCE"))
configStream << "QT_EDITION = " << QLatin1String("OpenSource") << endl;
else
@@ -2712,7 +2786,6 @@ void Configure::generateConfigfiles()
tmpStream << endl << "#define Q_WS_QPA" << endl;
tmpStream << endl << "// Compile time features" << endl;
- tmpStream << "#define QT_ARCH_" << dictionary["ARCHITECTURE"].toUpper() << endl;
QStringList qconfigList;
if (dictionary["STL"] == "no") qconfigList += "QT_NO_STL";
@@ -2742,6 +2815,7 @@ void Configure::generateConfigfiles()
if (dictionary["ACCESSIBILITY"] == "no") qconfigList += "QT_NO_ACCESSIBILITY";
if (dictionary["EXCEPTIONS"] == "no") qconfigList += "QT_NO_EXCEPTIONS";
+ if (dictionary["WIDGETS"] == "no") qconfigList += "QT_NO_WIDGETS";
if (dictionary["OPENGL"] == "no") qconfigList += "QT_NO_OPENGL";
if (dictionary["OPENVG"] == "no") qconfigList += "QT_NO_OPENVG";
if (dictionary["OPENSSL"] == "no") {
@@ -2798,7 +2872,7 @@ void Configure::generateConfigfiles()
QStringList gfxDrivers = dictionary["GFX_DRIVERS"].split(" ");
QStringList allGfxDrivers;
- allGfxDrivers<<"linuxfb"<<"transformed"<<"qvfb"<<"vnc"<<"multiscreen"<<"ahi";
+ allGfxDrivers<<"linuxfb"<<"transformed"<<"qvfb"<<"multiscreen"<<"ahi";
foreach (const QString &gfx, allGfxDrivers) {
if (!gfxDrivers.contains(gfx))
tmpStream<<"#define QT_NO_QWS_"<<gfx.toUpper()<<endl;
@@ -2958,7 +3032,8 @@ void Configure::displayConfig()
cout << "QMAKESPEC..................." << dictionary[ "XQMAKESPEC" ] << " (" << dictionary["QMAKESPEC_FROM"] << ")" << endl;
else
cout << "QMAKESPEC..................." << dictionary[ "QMAKESPEC" ] << " (" << dictionary["QMAKESPEC_FROM"] << ")" << endl;
- cout << "Architecture................" << dictionary[ "ARCHITECTURE" ] << endl;
+ cout << "Architecture................" << dictionary["QT_ARCH"] << endl;
+ cout << "Host Architecture..........." << dictionary["QT_HOST_ARCH"] << endl;
cout << "Maketool...................." << dictionary[ "MAKE" ] << endl;
cout << "Debug symbols..............." << (dictionary[ "BUILD" ] == "debug" ? "yes" : "no") << endl;
cout << "Link Time Code Generation..." << dictionary[ "LTCG" ] << endl;
@@ -2975,6 +3050,7 @@ void Configure::displayConfig()
cout << "OpenVG support.............." << dictionary[ "OPENVG" ] << endl;
cout << "OpenSSL support............." << dictionary[ "OPENSSL" ] << endl;
cout << "QtDBus support.............." << dictionary[ "DBUS" ] << endl;
+ cout << "QtWidgets module support...." << dictionary[ "WIDGETS" ] << endl;
cout << "Declarative debugging......." << dictionary[ "DECLARATIVE_DEBUG" ] << endl;
cout << "DirectWrite support........." << dictionary[ "DIRECTWRITE" ] << endl << endl;
@@ -3071,6 +3147,16 @@ void Configure::displayConfig()
<< "option was ignored. Qt will be built using the " << which_zlib
<< "zlib" << endl;
}
+ if (dictionary["OBSOLETE_ARCH_ARG"] == "yes") {
+ cout << endl
+ << "NOTE: The -arch option is obsolete." << endl
+ << endl
+ << "Qt now detects the target and host architectures based on compiler" << endl
+ << "output. Qt will be built using " << dictionary["QT_ARCH"] << " for the target architecture" << endl
+ << "and " << dictionary["QT_HOST_ARCH"] << " for the host architecture (note that these two" << endl
+ << "will be the same unless you are cross-compiling)." << endl
+ << endl;
+ }
}
#endif
diff --git a/tools/configure/configureapp.h b/tools/configure/configureapp.h
index 58544b5041..65aa0cbed9 100644
--- a/tools/configure/configureapp.h
+++ b/tools/configure/configureapp.h
@@ -81,6 +81,8 @@ public:
#if !defined(EVAL)
bool copySpec(const char *name, const char *pfx, const QString &spec);
void generateConfigfiles();
+ void detectArch();
+ void generateQConfigPri();
#endif
void showSummary();
void findProjects( const QString& dirName );
diff --git a/tools/configure/environment.cpp b/tools/configure/environment.cpp
index b9af9eca8f..ab622b576a 100644
--- a/tools/configure/environment.cpp
+++ b/tools/configure/environment.cpp
@@ -422,6 +422,28 @@ int Environment::execute(QStringList arguments, const QStringList &additionalEnv
}
/*!
+ Executes \a command with _popen() and returns the stdout of the command.
+
+ Taken from qmake's system() command.
+*/
+QString Environment::execute(const QString &command)
+{
+ QString output;
+ FILE *proc = _popen(command.toLatin1().constData(), "r");
+ char buff[256];
+ while (proc && !feof(proc)) {
+ int read_in = int(fread(buff, 1, 255, proc));
+ if (!read_in)
+ break;
+ buff[read_in] = '\0';
+ output += buff;
+ }
+ if (proc)
+ _pclose(proc);
+ return output;
+}
+
+/*!
Copies the \a srcDir contents into \a destDir.
If \a includeSrcDir is not empty, any files with 'h', 'prf', or 'conf' suffixes
diff --git a/tools/configure/environment.h b/tools/configure/environment.h
index e5f52b47b6..ec7cb635e1 100644
--- a/tools/configure/environment.h
+++ b/tools/configure/environment.h
@@ -65,6 +65,7 @@ public:
static bool detectExecutable(const QString &executable);
static int execute(QStringList arguments, const QStringList &additionalEnv, const QStringList &removeEnv);
+ static QString execute(const QString &command);
static bool cpdir(const QString &srcDir,
const QString &destDir,
const QString &includeSrcDir = QString());
diff --git a/tools/configure/main.cpp b/tools/configure/main.cpp
index 51abd7aa82..08cd691875 100644
--- a/tools/configure/main.cpp
+++ b/tools/configure/main.cpp
@@ -87,11 +87,17 @@ int runConfigure( int argc, char** argv )
if( !app.isDone() )
app.generateConfigfiles();
if( !app.isDone() )
- app.displayConfig();
- if( !app.isDone() )
app.generateHeaders();
if( !app.isDone() )
app.buildQmake();
+ // must be done after buildQmake()
+ if (!app.isDone())
+ app.detectArch();
+ // must be done after detectArch()
+ if (!app.isDone())
+ app.generateQConfigPri();
+ if (!app.isDone())
+ app.displayConfig();
#endif
if( !app.isDone() )
app.generateMakefiles();