Module: wine Branch: master Commit: e8c7c0681a4f6a3f1fc0135449b91638a60e976b URL: http://source.winehq.org/git/wine.git/?a=commit;h=e8c7c0681a4f6a3f1fc0135449...
Author: Rob Shearman rob@codeweavers.com Date: Fri Dec 7 16:02:30 2007 +0000
actxprxy: Add the start of actxprxy.dll.
The native version of this DLL contains proxy code for various interfaces, but for the moment only servprov.idl is implemented.
---
.gitignore | 3 ++ Makefile.in | 2 + configure | 3 ++ configure.ac | 1 + dlls/Makefile.in | 1 + dlls/actxprxy/Makefile.in | 22 ++++++++++++ dlls/actxprxy/actxprxy.spec | 5 +++ dlls/actxprxy/actxprxy_servprov.idl | 1 + dlls/actxprxy/usrmarshal.c | 64 +++++++++++++++++++++++++++++++++++ 9 files changed, 102 insertions(+), 0 deletions(-)
diff --git a/.gitignore b/.gitignore index cb7dc40..6be21d5 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,9 @@ dlls/Makedll.rules dlls/Makeimplib.rules dlls/Maketest.rules dlls/activeds/libactiveds.def +dlls/actxprxy/actxprxy_servprov.h +dlls/actxprxy/actxprxy_servprov_i.c +dlls/actxprxy/actxprxy_servprov_p.c dlls/advapi32/libadvapi32.def dlls/advapi32/tests/*.ok dlls/advapi32/tests/advapi32_crosstest.exe diff --git a/Makefile.in b/Makefile.in index 54bab78..207ce95 100644 --- a/Makefile.in +++ b/Makefile.in @@ -159,6 +159,7 @@ ALL_MAKEFILES = \ dlls/Makefile \ dlls/acledit/Makefile \ dlls/activeds/Makefile \ + dlls/actxprxy/Makefile \ dlls/advapi32/Makefile \ dlls/advapi32/tests/Makefile \ dlls/advpack/Makefile \ @@ -540,6 +541,7 @@ Makefile: Makefile.in Make.rules dlls/Makefile: dlls/Makefile.in Make.rules dlls/acledit/Makefile: dlls/acledit/Makefile.in dlls/Makedll.rules dlls/activeds/Makefile: dlls/activeds/Makefile.in dlls/Makedll.rules +dlls/actxprxy/Makefile: dlls/actxprxy/Makefile.in dlls/Makedll.rules dlls/advapi32/Makefile: dlls/advapi32/Makefile.in dlls/Makedll.rules dlls/advapi32/tests/Makefile: dlls/advapi32/tests/Makefile.in dlls/Maketest.rules dlls/advpack/Makefile: dlls/advpack/Makefile.in dlls/Makedll.rules diff --git a/configure b/configure index 262eaaa..b020270 100755 --- a/configure +++ b/configure @@ -20527,6 +20527,8 @@ ac_config_files="$ac_config_files dlls/acledit/Makefile"
ac_config_files="$ac_config_files dlls/activeds/Makefile"
+ac_config_files="$ac_config_files dlls/actxprxy/Makefile" + ac_config_files="$ac_config_files dlls/advapi32/Makefile"
ac_config_files="$ac_config_files dlls/advapi32/tests/Makefile" @@ -21824,6 +21826,7 @@ do "dlls/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/Makefile" ;; "dlls/acledit/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/acledit/Makefile" ;; "dlls/activeds/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/activeds/Makefile" ;; + "dlls/actxprxy/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/actxprxy/Makefile" ;; "dlls/advapi32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/advapi32/Makefile" ;; "dlls/advapi32/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/advapi32/tests/Makefile" ;; "dlls/advpack/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/advpack/Makefile" ;; diff --git a/configure.ac b/configure.ac index 8ff580f..8d6e1b4 100644 --- a/configure.ac +++ b/configure.ac @@ -1580,6 +1580,7 @@ AC_CONFIG_FILES([Makefile]) AC_CONFIG_FILES([dlls/Makefile]) AC_CONFIG_FILES([dlls/acledit/Makefile]) AC_CONFIG_FILES([dlls/activeds/Makefile]) +AC_CONFIG_FILES([dlls/actxprxy/Makefile]) AC_CONFIG_FILES([dlls/advapi32/Makefile]) AC_CONFIG_FILES([dlls/advapi32/tests/Makefile]) AC_CONFIG_FILES([dlls/advpack/Makefile]) diff --git a/dlls/Makefile.in b/dlls/Makefile.in index 0d2f3e4..8d5c891 100644 --- a/dlls/Makefile.in +++ b/dlls/Makefile.in @@ -18,6 +18,7 @@ EXTRADIRS = @GLU32FILES@ @OPENGLFILES@ @QUARTZFILES@ @XFILES@ BASEDIRS = \ acledit \ activeds \ + actxprxy \ advapi32 \ advpack \ amstream \ diff --git a/dlls/actxprxy/Makefile.in b/dlls/actxprxy/Makefile.in new file mode 100644 index 0000000..005ec0f --- /dev/null +++ b/dlls/actxprxy/Makefile.in @@ -0,0 +1,22 @@ +TOPSRCDIR = @top_srcdir@ +TOPOBJDIR = ../.. +SRCDIR = @srcdir@ +VPATH = @srcdir@ +MODULE = actxprxy.dll +IMPORTS = rpcrt4 kernel32 ntdll +EXTRADEFS = -DREGISTER_PROXY_DLL -DPROXY_CLSID_IS="{ 0xb8da6310, 0xe19b, 0x11d0, { 0x93, 0x3c, 0x00, 0xa0, 0xc9, 0x0d, 0xca, 0xa9 } }" + +EXTRA_OBJS = dlldata.o + +C_SRCS = \ + usrmarshal.c + +IDL_I_SRCS = \ + actxprxy_servprov.idl + +IDL_P_SRCS = \ + actxprxy_servprov.idl + +@MAKE_DLL_RULES@ + +@DEPENDENCIES@ # everything below this line is overwritten by make depend diff --git a/dlls/actxprxy/actxprxy.spec b/dlls/actxprxy/actxprxy.spec new file mode 100644 index 0000000..a1096f1 --- /dev/null +++ b/dlls/actxprxy/actxprxy.spec @@ -0,0 +1,5 @@ +3 stdcall -private GetProxyDllInfo(ptr ptr) +@ stdcall -private DllCanUnloadNow() +@ stdcall -private DllGetClassObject(ptr ptr ptr) +@ stdcall -private DllRegisterServer() +@ stdcall -private DllUnregisterServer() diff --git a/dlls/actxprxy/actxprxy_servprov.idl b/dlls/actxprxy/actxprxy_servprov.idl new file mode 100644 index 0000000..08b26ef --- /dev/null +++ b/dlls/actxprxy/actxprxy_servprov.idl @@ -0,0 +1 @@ +#include "servprov.idl" diff --git a/dlls/actxprxy/usrmarshal.c b/dlls/actxprxy/usrmarshal.c new file mode 100644 index 0000000..9d5318f --- /dev/null +++ b/dlls/actxprxy/usrmarshal.c @@ -0,0 +1,64 @@ +/* + * Miscellaneous Marshaling Routines + * + * Copyright 2006 Robert Shearman (for CodeWeavers) + * + * 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 <stdarg.h> +#include <string.h> + +#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 "servprov.h" + +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(actxprxy); + +HRESULT CALLBACK IServiceProvider_QueryService_Proxy( + IServiceProvider* This, + REFGUID guidService, + REFIID riid, + void** ppvObject) +{ + TRACE("(%p, %s, %s, %p)\n", This, debugstr_guid(guidService), + debugstr_guid(riid), ppvObject); + + return IServiceProvider_RemoteQueryService_Proxy(This, guidService, riid, + (IUnknown **)ppvObject); +} + +HRESULT __RPC_STUB IServiceProvider_QueryService_Stub( + IServiceProvider* This, + REFGUID guidService, + REFIID riid, + IUnknown** ppvObject) +{ + TRACE("(%p, %s, %s, %p)\n", This, debugstr_guid(guidService), + debugstr_guid(riid), ppvObject); + + return IServiceProvider_QueryService(This, guidService, riid, + (void **)ppvObject); +}