diff options
Diffstat (limited to '')
-rw-r--r-- | accessible/interfaces/ia2/IA2Marshal.def | 11 | ||||
-rw-r--r-- | accessible/interfaces/ia2/IA2Marshal.dll.manifest | 12 | ||||
-rw-r--r-- | accessible/interfaces/ia2/IA2Marshal.rc | 5 | ||||
-rw-r--r-- | accessible/interfaces/ia2/IA2Typelib.idl | 61 | ||||
-rw-r--r-- | accessible/interfaces/ia2/moz.build | 131 |
5 files changed, 220 insertions, 0 deletions
diff --git a/accessible/interfaces/ia2/IA2Marshal.def b/accessible/interfaces/ia2/IA2Marshal.def new file mode 100644 index 0000000000..0040d3b022 --- /dev/null +++ b/accessible/interfaces/ia2/IA2Marshal.def @@ -0,0 +1,11 @@ +;+# This Source Code Form is subject to the terms of the Mozilla Public +;+# License, v. 2.0. If a copy of the MPL was not distributed with this +;+# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +LIBRARY IA2Marshal.dll +EXPORTS DllGetClassObject PRIVATE + DllCanUnloadNow PRIVATE + DllRegisterServer PRIVATE + DllUnregisterServer PRIVATE + GetProxyDllInfo PRIVATE + diff --git a/accessible/interfaces/ia2/IA2Marshal.dll.manifest b/accessible/interfaces/ia2/IA2Marshal.dll.manifest new file mode 100644 index 0000000000..f3d8059d50 --- /dev/null +++ b/accessible/interfaces/ia2/IA2Marshal.dll.manifest @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> + <assemblyIdentity type="win32" name="IA2Marshal" version="1.0.0.0" /> + <file name="IA2Marshal.dll"> + <comInterfaceProxyStub + iid="{E89F726E-C4F4-4c19-BB19-B647D7FA8478}" + proxyStubClsid32="{E89F726E-C4F4-4c19-BB19-B647D7FA8478}" + name="IAccessible2" + tlbid="{CE3F726E-D1D3-44FE-B995-FF1DB3B48B2B}" + /> + </file> +</assembly> diff --git a/accessible/interfaces/ia2/IA2Marshal.rc b/accessible/interfaces/ia2/IA2Marshal.rc new file mode 100644 index 0000000000..b120abce74 --- /dev/null +++ b/accessible/interfaces/ia2/IA2Marshal.rc @@ -0,0 +1,5 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +1 typelib IA2Typelib.tlb diff --git a/accessible/interfaces/ia2/IA2Typelib.idl b/accessible/interfaces/ia2/IA2Typelib.idl new file mode 100644 index 0000000000..c9e4aa7d16 --- /dev/null +++ b/accessible/interfaces/ia2/IA2Typelib.idl @@ -0,0 +1,61 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set ts=8 sts=2 et sw=2 tw=80: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +typedef struct _MozRemotableHandle +{ + long fContext; + long hRemote; +} MozRemotableHandle; + +typedef [unique] MozRemotableHandle * mozHWND; +typedef [unique] MozRemotableHandle * mozHMENU; +typedef [unique] MozRemotableHandle * mozHACCEL; +typedef [unique] MozRemotableHandle * mozHBRUSH; +typedef [unique] MozRemotableHandle * mozHFONT; +typedef [unique] MozRemotableHandle * mozHDC; +typedef [unique] MozRemotableHandle * mozHICON; +typedef [unique] MozRemotableHandle * mozHRGN; +typedef [unique] MozRemotableHandle * mozHMONITOR; + +cpp_quote("#if 0") +typedef [wire_marshal(mozHWND)] void* HWND; +typedef [wire_marshal(mozHMENU)] void* HMENU; +typedef [wire_marshal(mozHACCEL)] void* HACCEL; +typedef [wire_marshal(mozHBRUSH)] void* HBRUSH; +typedef [wire_marshal(mozHFONT)] void* HFONT; +typedef [wire_marshal(mozHDC)] void* HDC; +typedef [wire_marshal(mozHICON)] void* HICON; +typedef [wire_marshal(mozHRGN)] void* HRGN; +typedef [wire_marshal(mozHMONITOR)] void* HMONITOR; +cpp_quote("#endif // 0") + +import "Accessible2.idl"; +import "Accessible2_2.idl"; +import "Accessible2_3.idl"; +import "AccessibleAction.idl"; +import "AccessibleApplication.idl"; +import "AccessibleComponent.idl"; +import "AccessibleDocument.idl"; +import "AccessibleEditableText.idl"; +import "AccessibleEventId.idl"; +import "AccessibleHyperlink.idl"; +import "AccessibleHypertext.idl"; +import "AccessibleHypertext2.idl"; +import "AccessibleImage.idl"; +import "AccessibleRelation.idl"; +import "AccessibleRole.idl"; +import "AccessibleStates.idl"; +import "AccessibleTable.idl"; +import "AccessibleTable2.idl"; +import "AccessibleTableCell.idl"; +import "AccessibleText.idl"; +import "AccessibleText2.idl"; +import "AccessibleValue.idl"; +import "IA2CommonTypes.idl"; + +// We are explicitly using #include instead of import so that the imported +// IDL is treated as part of this IDL file. +#include "IA2TypeLibrary.idl" diff --git a/accessible/interfaces/ia2/moz.build b/accessible/interfaces/ia2/moz.build new file mode 100644 index 0000000000..e3861a2fa2 --- /dev/null +++ b/accessible/interfaces/ia2/moz.build @@ -0,0 +1,131 @@ +# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- +# vim: set filetype=python: +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +GeckoSharedLibrary("IA2Marshal", linkage=None) + +DEFINES["REGISTER_PROXY_DLL"] = True + +DEFFILE = "IA2Marshal.def" + +OS_LIBS += [ + "uuid", + "kernel32", + "rpcrt4", + "ole32", + "oleaut32", +] + +midl_enums = [ + "AccessibleEventId", + "AccessibleRole", + "AccessibleStates", + "IA2CommonTypes", +] + +midl_interfaces = [ + "Accessible2", + "Accessible2_2", + "Accessible2_3", + "AccessibleAction", + "AccessibleApplication", + "AccessibleComponent", + "AccessibleDocument", + "AccessibleEditableText", + "AccessibleHyperlink", + "AccessibleHypertext", + "AccessibleHypertext2", + "AccessibleImage", + "AccessibleRelation", + "AccessibleTable", + "AccessibleTable2", + "AccessibleTableCell", + "AccessibleText", + "AccessibleText2", + "AccessibleValue", +] + +for enum in midl_enums: + GeneratedFile( + enum + ".h", + inputs=["/other-licenses/ia2/" + enum + ".idl"], + script="/build/midl.py", + entry_point="midl", + flags=["-app_config", "-I", TOPSRCDIR + "/other-licenses/ia2"], + ) + + EXPORTS += ["!" + enum + ".h"] + +for iface in midl_interfaces: + GeneratedFile( + iface + ".h", + iface + "_p.c", + iface + "_i.c", + iface + "_dlldata.c", + inputs=["/other-licenses/ia2/" + iface + ".idl"], + script="/build/midl.py", + entry_point="midl", + flags=[ + "-app_config", + "-I", + TOPSRCDIR + "/other-licenses/ia2", + "-dlldata", + OBJDIR + "/" + iface + "_dlldata.c", + ], + ) + + EXPORTS += ["!" + iface + ".h", "!" + iface + "_i.c"] + + for p in [iface + "_p.c", iface + "_i.c"]: + SOURCES += ["!%s" % p] + + # Give some symbols a unique name in each translation unit, to avoid + # collisions caused by https://llvm.org/pr41817. + if CONFIG["CC_TYPE"] == "clang-cl": + SOURCES["!%s" % p].flags += [ + "-DObject_StubDesc=Object_StubDesc__%s" % p[:-2] + ] + SOURCES["!%s" % p].flags += [ + "-DUserMarshalRoutines=UserMarshalRoutines__%s" % p[:-2] + ] + +# Warning: the build system doesn't know about the dependency of IA2Marshal.rc on +# IA2Typelib.tlb. We rely on the IA2Typelib.h output forcing the command to run +# during export, before rc files are treated during compile. +GeneratedFile( + "IA2Typelib.h", + "IA2Typelib_i.c", + "IA2Typelib.tlb", + inputs=["IA2Typelib.idl"], + script="/build/midl.py", + entry_point="midl", + flags=[ + "-app_config", + "-I", + TOPSRCDIR + "/other-licenses/ia2", + "-D", + "_MIDL_DECLARE_WIREM_HANDLE", + ], +) + +GeneratedFile( + "dlldata.c", + inputs=["!" + iface + "_dlldata.c" for iface in midl_interfaces], + script="/build/midl.py", + entry_point="merge_dlldata", +) + +SOURCES += ["!dlldata.c"] + +RCINCLUDE = "IA2Marshal.rc" + +# Suppress warnings from the MIDL generated code. +if CONFIG["CC_TYPE"] == "clang-cl": + CFLAGS += [ + "-Wno-extern-initializer", + "-Wno-incompatible-pointer-types", + "-Wno-missing-braces", + "-Wno-unused-const-variable", + ] |