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/Makefile.in108
-rw-r--r--accessible/interfaces/ia2/moz.build33
6 files changed, 230 insertions, 0 deletions
diff --git a/accessible/interfaces/ia2/IA2Marshal.def b/accessible/interfaces/ia2/IA2Marshal.def
new file mode 100644
index 000000000..0040d3b02
--- /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 000000000..f3d8059d5
--- /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 000000000..b120abce7
--- /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 000000000..c9e4aa7d1
--- /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/Makefile.in b/accessible/interfaces/ia2/Makefile.in
new file mode 100644
index 000000000..36110d08f
--- /dev/null
+++ b/accessible/interfaces/ia2/Makefile.in
@@ -0,0 +1,108 @@
+# 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/.
+
+IA2DIR = $(topsrcdir)/other-licenses/ia2
+
+GARBAGE += $(MIDL_GENERATED_FILES) \
+ $(MIDL_UNUSED_GENERATED_FILES) \
+ $(NULL)
+
+# Please keep this list in sync with the moz.build file until the rest of this
+# Makefile is ported over.
+MIDL_INTERFACES = \
+ Accessible2.idl \
+ Accessible2_2.idl \
+ Accessible2_3.idl \
+ AccessibleAction.idl \
+ AccessibleApplication.idl \
+ AccessibleComponent.idl \
+ AccessibleDocument.idl \
+ AccessibleEditableText.idl \
+ AccessibleHyperlink.idl \
+ AccessibleHypertext.idl \
+ AccessibleHypertext2.idl \
+ AccessibleImage.idl \
+ AccessibleRelation.idl \
+ AccessibleTable.idl \
+ AccessibleTable2.idl \
+ AccessibleTableCell.idl \
+ AccessibleText.idl \
+ AccessibleText2.idl \
+ AccessibleValue.idl \
+ $(NULL)
+
+# Please keep this list in sync with the moz.build file until the rest of this
+# Makefile is ported over.
+MIDL_ENUMS = \
+ AccessibleEventId.idl \
+ AccessibleRole.idl \
+ AccessibleStates.idl \
+ IA2CommonTypes.idl \
+ $(NULL)
+
+MIDL_LIBRARIES = \
+ IA2Typelib.idl \
+ $(NULL)
+
+CSRCS = \
+ dlldata.c \
+ $(MIDL_INTERFACES:%.idl=%_p.c) \
+ $(MIDL_INTERFACES:%.idl=%_i.c) \
+ $(NULL)
+
+MIDL_GENERATED_FILES = \
+ dlldata.c \
+ $(MIDL_INTERFACES:%.idl=%_p.c) \
+ $(MIDL_INTERFACES:%.idl=%_i.c) \
+ $(MIDL_INTERFACES:%.idl=%.h) \
+ $(MIDL_ENUMS:%.idl=%.h) \
+ $(NULL)
+
+# We want to generate a .tlb from MIDL_LIBRARIES, but midl also generates
+# a bunch of .h and .c files that we're not interested in.
+MIDL_UNUSED_GENERATED_FILES = \
+ $(MIDL_LIBRARIES:%.idl=%_p.c) \
+ $(MIDL_LIBRARIES:%.idl=%_i.c) \
+ $(MIDL_LIBRARIES:%.idl=%.h) \
+ $(MIDL_LIBRARIES:%.idl=%.c) \
+ $(NULL)
+
+EMBED_MANIFEST_AT = 2
+
+INSTALL_TARGETS += midl
+midl_FILES := $(filter %.h %_i.c,$(MIDL_GENERATED_FILES))
+midl_DEST = $(DIST)/include
+midl_TARGET := export
+
+include $(topsrcdir)/config/rules.mk
+
+# generate list of to-be-generated files that are missing
+# but ignore special file dlldata.c
+missing:=$(strip $(foreach onefile,$(strip $(subst dlldata.c,,$(MIDL_GENERATED_FILES))),$(if $(wildcard $(onefile)),,$(onefile))))
+
+missing_base:=$(sort $(basename $(subst _p.c,,$(subst _i.c,,$(missing)))))
+
+$(MIDL_GENERATED_FILES) : midl_done typelib_done
+
+ifneq ("$(missing)","")
+midl_done : FORCE
+endif
+
+midl_done : $(addprefix $(IA2DIR)/,$(MIDL_INTERFACES) $(MIDL_ENUMS))
+ for idl in $(sort $(subst FORCE,,$?) $(addsuffix .idl,$(addprefix $(IA2DIR)/,$(missing_base)))); do \
+ $(MIDL) $(MIDL_FLAGS) -app_config -I $(IA2DIR) -Oicf $$idl; \
+ done
+ touch $@
+
+# The intent of this rule is to generate the .tlb file that is referenced in the
+# .rc file for IA2Marshal.dll
+typelib_done : $(MIDL_LIBRARIES)
+ for idl in $?; do \
+ $(MIDL) $(MIDL_FLAGS) -app_config -I $(IA2DIR) -D _MIDL_DECLARE_WIREM_HANDLE -dlldata `basename $$idl .idl`.c -Oicf $$idl; \
+ done
+ touch $@
+
+# This marshall dll is NOT registered in the installer (agreed to by IA2 participants)
+register::
+ regsvr32 -s $(DIST)/bin/$(SHARED_LIBRARY)
diff --git a/accessible/interfaces/ia2/moz.build b/accessible/interfaces/ia2/moz.build
new file mode 100644
index 000000000..430e74a6e
--- /dev/null
+++ b/accessible/interfaces/ia2/moz.build
@@ -0,0 +1,33 @@
+# -*- 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 = SRCDIR + '/IA2Marshal.def'
+
+OS_LIBS += [
+ 'uuid',
+ 'kernel32',
+ 'rpcrt4',
+ 'ole32',
+ 'oleaut32',
+]
+
+GENERATED_FILES += [
+ 'IA2Typelib.tlb',
+]
+
+RCINCLUDE = 'IA2Marshal.rc'
+
+# The Windows MIDL code generator creates things like:
+#
+# #endif !_MIDL_USE_GUIDDEF_
+#
+# which clang-cl complains about. MSVC doesn't, so turn this warning off.
+if CONFIG['CLANG_CL']:
+ CXXFLAGS += ['-Wno-extra-tokens']