Alistair Leslie-Hughes : widl: Only generate Proxy Stubs when functions have the call_as attribute.
Alexandre Julliard
julliard at winehq.org
Tue Jul 11 15:59:32 CDT 2017
Module: wine
Branch: master
Commit: 084fa63e606ca6d289e98e5ca7c11718591f5f4e
URL: http://source.winehq.org/git/wine.git/?a=commit;h=084fa63e606ca6d289e98e5ca7c11718591f5f4e
Author: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Date: Tue Jul 11 02:30:15 2017 +0000
widl: Only generate Proxy Stubs when functions have the call_as attribute.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/windowscodecs/tests/converter.c | 3 +++
include/unknwn.idl | 10 ++++++++++
tools/widl/header.c | 2 +-
3 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/dlls/windowscodecs/tests/converter.c b/dlls/windowscodecs/tests/converter.c
index 9da82f1..fba7fc7 100644
--- a/dlls/windowscodecs/tests/converter.c
+++ b/dlls/windowscodecs/tests/converter.c
@@ -45,6 +45,9 @@ typedef struct BitmapTestSrc {
const bitmap_data *data;
} BitmapTestSrc;
+extern HRESULT STDMETHODCALLTYPE IWICBitmapFrameEncode_WriteSource_Proxy(IWICBitmapFrameEncode* This,
+ IWICBitmapSource *pIBitmapSource, WICRect *prc);
+
static BOOL near_equal(float a, float b)
{
return fabsf(a - b) < 0.001;
diff --git a/include/unknwn.idl b/include/unknwn.idl
index 78a2d9d..7856a7f 100644
--- a/include/unknwn.idl
+++ b/include/unknwn.idl
@@ -46,6 +46,16 @@ interface IUnknown
ULONG Release();
}
+cpp_quote("HRESULT STDMETHODCALLTYPE IUnknown_QueryInterface_Proxy(IUnknown* This, REFIID riid, void **ppvObject);")
+cpp_quote("void __RPC_STUB IUnknown_QueryInterface_Stub(IRpcStubBuffer* This, IRpcChannelBuffer* pRpcChannelBuffer,")
+cpp_quote(" PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase);")
+cpp_quote("ULONG STDMETHODCALLTYPE IUnknown_AddRef_Proxy(IUnknown* This);")
+cpp_quote("void __RPC_STUB IUnknown_AddRef_Stub(IRpcStubBuffer* This, IRpcChannelBuffer* pRpcChannelBuffer,")
+cpp_quote(" PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase);")
+cpp_quote("ULONG STDMETHODCALLTYPE IUnknown_Release_Proxy(IUnknown* This);")
+cpp_quote("void __RPC_STUB IUnknown_Release_Stub(IRpcStubBuffer* This, IRpcChannelBuffer* pRpcChannelBuffer,")
+cpp_quote(" PRPC_MESSAGE pRpcMessage, DWORD* pdwStubPhase);")
+
cpp_quote("#ifdef SAVE_WIDL_C_INLINE_WRAPPERS")
cpp_quote("#define WIDL_C_INLINE_WRAPPERS")
cpp_quote("#endif")
diff --git a/tools/widl/header.c b/tools/widl/header.c
index 7b97158..e48b488 100644
--- a/tools/widl/header.c
+++ b/tools/widl/header.c
@@ -1172,7 +1172,7 @@ static void write_method_proto(FILE *header, const type_t *iface)
{
const var_t *func = stmt->u.var;
- if (!is_local(func->attrs)) {
+ if (is_callas(func->attrs)) {
const char *callconv = get_attrp(func->type->attrs, ATTR_CALLCONV);
if (!callconv) callconv = "STDMETHODCALLTYPE";
/* proxy prototype */
More information about the wine-cvs
mailing list