diff options
Diffstat (limited to 'accessible/interfaces/ia2')
-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/Makefile.in | 108 | ||||
-rw-r--r-- | accessible/interfaces/ia2/moz.build | 33 |
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'] |