diff --git a/.gitignore b/.gitignore index 5be3433f2ae..d0cf7764c9c 100644 --- a/.gitignore +++ b/.gitignore @@ -44,6 +44,8 @@ dlls/actxprxy/actxprxy_urlhist_p.c dlls/advapi32/svcctl.h dlls/advapi32/svcctl_c.c dlls/atl/atliface.h +dlls/dispex/disp_ex.h +dlls/dispex/disp_ex_p.c dlls/dxdiagn/fil_data.h dlls/jscript/jsglobal.tlb dlls/jscript/parser.tab.c diff --git a/configure b/configure index f58f418ec12..721ed3a8911 100755 --- a/configure +++ b/configure @@ -14331,6 +14331,10 @@ wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dispdib.dll16 dlls/dispdib.dll16/ wine_fn_config_makefile dlls/dispdib.dll16 "dlls/Makedll.rules \$(MAKEDEP)" test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/dispdib.dll16" +wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/dispex dlls/dispex/__install__ dlls/dispex/__install-lib__ dlls/dispex/__install-dev__: __builddeps__" +wine_fn_config_makefile dlls/dispex "dlls/Makedll.rules \$(MAKEDEP)" +test "x$enable_dispex" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/dispex" + wine_fn_append_rule ALL_MAKEFILE_DEPENDS "dlls/display.drv16 dlls/display.drv16/__install__ dlls/display.drv16/__install-lib__ dlls/display.drv16/__install-dev__: __builddeps__" wine_fn_config_makefile dlls/display.drv16 "dlls/Makedll.rules \$(MAKEDEP)" test "x$enable_win16" != xno && wine_fn_append_file ALL_DLL_DIRS "dlls/display.drv16" @@ -17330,6 +17334,7 @@ do "dlls/dinput/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dinput/tests/Makefile" ;; "dlls/dinput8/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dinput8/Makefile" ;; "dlls/dispdib.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dispdib.dll16/Makefile" ;; + "dlls/dispex/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dispex/Makefile" ;; "dlls/display.drv16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/display.drv16/Makefile" ;; "dlls/dmband/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dmband/Makefile" ;; "dlls/dmcompos/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/dmcompos/Makefile" ;; diff --git a/configure.ac b/configure.ac index 7f747416c84..f7cf4b9137c 100644 --- a/configure.ac +++ b/configure.ac @@ -2235,6 +2235,7 @@ WINE_CONFIG_DLL(dinput,,[dinput],[data_formats.c]) WINE_CONFIG_TEST(dlls/dinput/tests) WINE_CONFIG_DLL(dinput8,,[dinput8]) WINE_CONFIG_DLL(dispdib.dll16,enable_win16) +WINE_CONFIG_DLL(dispex) WINE_CONFIG_DLL(display.drv16,enable_win16) WINE_CONFIG_DLL(dmband) WINE_CONFIG_DLL(dmcompos) diff --git a/dlls/dispex/Makefile.in b/dlls/dispex/Makefile.in new file mode 100644 index 00000000000..d408d5569ad --- /dev/null +++ b/dlls/dispex/Makefile.in @@ -0,0 +1,19 @@ +TOPSRCDIR = @top_srcdir@ +TOPOBJDIR = ../.. +SRCDIR = @srcdir@ +VPATH = @srcdir@ +MODULE = dispex.dll +IMPORTS = uuid oleaut32 ole32 rpcrt4 advapi32 kernel32 ntdll +EXTRADEFS = -DREGISTER_PROXY_DLL -DPROXY_DELEGATION + +EXTRA_OBJS = dlldata.o + +C_SRCS = \ + usrmarshal.c + +IDL_P_SRCS = \ + disp_ex.idl + +@MAKE_DLL_RULES@ + +@DEPENDENCIES@ # everything below this line is overwritten by make depend diff --git a/dlls/dispex/disp_ex.idl b/dlls/dispex/disp_ex.idl new file mode 100644 index 00000000000..2db98ff9403 --- /dev/null +++ b/dlls/dispex/disp_ex.idl @@ -0,0 +1 @@ +#include "dispex.idl" diff --git a/dlls/dispex/dispex.spec b/dlls/dispex/dispex.spec new file mode 100644 index 00000000000..b16365d0c9f --- /dev/null +++ b/dlls/dispex/dispex.spec @@ -0,0 +1,4 @@ +@ stdcall -private DllCanUnloadNow() +@ stdcall -private DllGetClassObject(ptr ptr ptr) +@ stdcall -private DllRegisterServer() +@ stdcall -private DllUnregisterServer() diff --git a/dlls/dispex/usrmarshal.c b/dlls/dispex/usrmarshal.c new file mode 100644 index 00000000000..899c35f3b05 --- /dev/null +++ b/dlls/dispex/usrmarshal.c @@ -0,0 +1,58 @@ +/* + * Misc marshaling routinues + * + * Copyright 2010 Huw Davies + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ +#include +#include + +#define COBJMACROS +#define NONAMELESSUNION +#define NONAMELESSSTRUCT + +#include "windef.h" +#include "winbase.h" +#include "wingdi.h" +#include "winuser.h" +#include "winerror.h" +#include "objbase.h" +#include "oleauto.h" +#include "dispex.h" + +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(ole); + +HRESULT CALLBACK IDispatchEx_InvokeEx_Proxy(IDispatchEx* This, DISPID id, LCID lcid, WORD wFlags, + DISPPARAMS *pdp, VARIANT *pvarRes, EXCEPINFO *pei, + IServiceProvider *pspCaller) +{ + FIXME("(%p)->(%08x, %04x, %04x, %p, %p, %p, %p): stub\n", This, id, lcid, wFlags, + pdp, pvarRes, pei, pspCaller); + return E_NOTIMPL; +} + +HRESULT __RPC_STUB IDispatchEx_InvokeEx_Stub(IDispatchEx* This, DISPID id, LCID lcid, DWORD dwFlags, + DISPPARAMS *pdp, VARIANT *pvarRes, EXCEPINFO *pei, + IServiceProvider *pspCaller, UINT cvarRefArg, + UINT *rgiRefArg, VARIANT *rgvarRefArg) +{ + FIXME("(%p)->(%08x, %04x, %08x, %p, %p, %p, %p, %d, %p, %p): stub\n", This, id, lcid, dwFlags, + pdp, pvarRes, pei, pspCaller, cvarRefArg, rgiRefArg, rgvarRefArg); + return E_NOTIMPL; + +}