Nikolay Sivov : oleacc: Added proxies for oleacc.idl.
Alexandre Julliard
julliard at wine.codeweavers.com
Tue May 5 09:50:51 CDT 2015
Module: wine
Branch: master
Commit: 40a311c8212edd979d563f7a74eeb4a3196b6d5f
URL: http://source.winehq.org/git/wine.git/?a=commit;h=40a311c8212edd979d563f7a74eeb4a3196b6d5f
Author: Nikolay Sivov <nsivov at 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);
}
More information about the wine-cvs
mailing list