widl: Only generate Proxy Stubs when functions have the call_as attribute.

Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Alistair Leslie-Hughes 2017-07-11 02:30:15 +00:00 committed by Alexandre Julliard
parent 51bd884384
commit 084fa63e60
3 changed files with 14 additions and 1 deletions

View File

@ -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;

View File

@ -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")

View File

@ -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 */