summaryrefslogtreecommitdiffstats
path: root/accessible/interfaces/ia2
diff options
context:
space:
mode:
Diffstat (limited to 'accessible/interfaces/ia2')
-rw-r--r--accessible/interfaces/ia2/IA2Marshal.def11
-rw-r--r--accessible/interfaces/ia2/IA2Marshal.dll.manifest12
-rw-r--r--accessible/interfaces/ia2/IA2Marshal.rc5
-rw-r--r--accessible/interfaces/ia2/IA2Typelib.idl61
-rw-r--r--accessible/interfaces/ia2/moz.build131
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",
+ ]