Module: wine Branch: master Commit: 40a311c8212edd979d563f7a74eeb4a3196b6d5f URL: http://source.winehq.org/git/wine.git/?a=commit;h=40a311c8212edd979d563f7a74...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Tue May 5 12:17:44 2015 +0300
oleacc: Added proxies for oleacc.idl.
---
dlls/oleacc/Makefile.in | 4 +++- dlls/oleacc/main.c | 30 +++++++++++++++++++++++++----- dlls/oleacc/oleacc_classes.idl | 8 ++++++++ dlls/oleacc/oleacc_private.h | 3 ++- dlls/oleacc/propservice.c | 11 ++--------- 5 files changed, 40 insertions(+), 16 deletions(-)
diff --git a/dlls/oleacc/Makefile.in b/dlls/oleacc/Makefile.in index fda1b75..331229f 100644 --- a/dlls/oleacc/Makefile.in +++ b/dlls/oleacc/Makefile.in @@ -1,6 +1,6 @@ MODULE = oleacc.dll IMPORTLIB = oleacc -IMPORTS = uuid oleaut32 ole32 user32 +IMPORTS = uuid oleaut32 ole32 user32 rpcrt4
C_SRCS = \ client.c \ @@ -11,3 +11,5 @@ C_SRCS = \ IDL_SRCS = oleacc_classes.idl
RC_SRCS = oleacc.rc + +dlldata_EXTRADEFS = -DENTRY_PREFIX=OLEACC_ -DPROXY_DELEGATION -DWINE_REGISTER_DLL diff --git a/dlls/oleacc/main.c b/dlls/oleacc/main.c index 4d9c55e..3cfe7c1 100644 --- a/dlls/oleacc/main.c +++ b/dlls/oleacc/main.c @@ -49,6 +49,11 @@ static const WCHAR richedit20wW[] = {'R','i','c','h','E','d','i','t','2','0','W'
typedef HRESULT (WINAPI *accessible_create)(HWND, const IID*, void**);
+extern HRESULT WINAPI OLEACC_DllGetClassObject(REFCLSID, REFIID, void**) DECLSPEC_HIDDEN; +extern BOOL WINAPI OLEACC_DllMain(HINSTANCE, DWORD, void*) DECLSPEC_HIDDEN; +extern HRESULT WINAPI OLEACC_DllRegisterServer(void) DECLSPEC_HIDDEN; +extern HRESULT WINAPI OLEACC_DllUnregisterServer(void) DECLSPEC_HIDDEN; + static struct { const WCHAR *name; DWORD idx; @@ -406,19 +411,34 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, DisableThreadLibraryCalls(hinstDLL); break; } - return TRUE; + + return OLEACC_DllMain(hinstDLL, fdwReason, lpvReserved); }
HRESULT WINAPI DllRegisterServer(void) { - TRACE("()\n"); - return __wine_register_resources(oleacc_handle); + return OLEACC_DllRegisterServer(); }
HRESULT WINAPI DllUnregisterServer(void) { - TRACE("()\n"); - return __wine_unregister_resources(oleacc_handle); + return OLEACC_DllUnregisterServer(); +} + +HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID iid, void **ppv) +{ + if(IsEqualGUID(&CLSID_CAccPropServices, rclsid)) { + TRACE("(CLSID_CAccPropServices %s %p)\n", debugstr_guid(iid), ppv); + return get_accpropservices_factory(iid, ppv); + } + + if(IsEqualGUID(&CLSID_PSFactoryBuffer, rclsid)) { + TRACE("(CLSID_PSFactoryBuffer %s %p)\n", debugstr_guid(iid), ppv); + return OLEACC_DllGetClassObject(rclsid, iid, ppv); + } + + FIXME("%s %s %p: stub\n", debugstr_guid(rclsid), debugstr_guid(iid), ppv); + return E_NOTIMPL; }
void WINAPI GetOleaccVersionInfo(DWORD* pVersion, DWORD* pBuild) diff --git a/dlls/oleacc/oleacc_classes.idl b/dlls/oleacc/oleacc_classes.idl index 44b0693..15eda9c 100644 --- a/dlls/oleacc/oleacc_classes.idl +++ b/dlls/oleacc/oleacc_classes.idl @@ -17,5 +17,13 @@ */
#pragma makedep regtypelib +#pragma makedep proxy +#pragma makedep register
#include "oleacc.idl" + +[ + threading(both), + uuid(03022430-abc4-11d0-bde2-00aa001a1953) /* IAccessibleHandler */ +] +coclass PSFactoryBuffer { interface IFactoryBuffer; } diff --git a/dlls/oleacc/oleacc_private.h b/dlls/oleacc/oleacc_private.h index 1bbb9f6..06e3ba6 100644 --- a/dlls/oleacc/oleacc_private.h +++ b/dlls/oleacc/oleacc_private.h @@ -16,10 +16,11 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include <oleacc.h> +#include "oleacc_classes.h"
HRESULT create_client_object(HWND, const IID*, void**) DECLSPEC_HIDDEN; HRESULT create_window_object(HWND, const IID*, void**) DECLSPEC_HIDDEN; +HRESULT get_accpropservices_factory(REFIID, void**) DECLSPEC_HIDDEN;
int convert_child_id(VARIANT *v) DECLSPEC_HIDDEN;
diff --git a/dlls/oleacc/propservice.c b/dlls/oleacc/propservice.c index f27a8da..3ed1818 100644 --- a/dlls/oleacc/propservice.c +++ b/dlls/oleacc/propservice.c @@ -20,7 +20,6 @@
#include <stdarg.h>
-#include "oleacc.h" #include "oleacc_private.h"
#include "wine/debug.h" @@ -245,13 +244,7 @@ static const IClassFactoryVtbl CAccPropServicesFactoryVtbl = {
static IClassFactory CAccPropServicesFactory = { &CAccPropServicesFactoryVtbl };
-HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID iid, void **ppv) +HRESULT get_accpropservices_factory(REFIID riid, void **ppv) { - if(IsEqualGUID(&CLSID_CAccPropServices, rclsid)) { - TRACE("(CLSID_CAccPropServices %s %p)\n", debugstr_guid(iid), ppv); - return IClassFactory_QueryInterface(&CAccPropServicesFactory, iid, ppv); - } - - FIXME("%s %s %p: stub\n", debugstr_guid(rclsid), debugstr_guid(iid), ppv); - return E_NOTIMPL; + return IClassFactory_QueryInterface(&CAccPropServicesFactory, riid, ppv); }