Module: wine Branch: master Commit: baef9a7e92d93bde21303d8f81c7d80dee9b1780 URL: http://source.winehq.org/git/wine.git/?a=commit;h=baef9a7e92d93bde21303d8f81...
Author: Huw Davies huw@codeweavers.com Date: Thu Jul 29 13:20:21 2010 +0100
oleaut32: Don't invoke a function that has the restricted attribute or is part of an interface that's marked as restricted.
---
dlls/oleaut32/typelib.c | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/dlls/oleaut32/typelib.c b/dlls/oleaut32/typelib.c index 7fac039..81d0ae0 100644 --- a/dlls/oleaut32/typelib.c +++ b/dlls/oleaut32/typelib.c @@ -6017,13 +6017,13 @@ static HRESULT WINAPI ITypeInfo_fnInvoke( unsigned int var_index; TYPEKIND type_kind; HRESULT hres; - const TLBFuncDesc *pFuncInfo = This->funclist; + const TLBFuncDesc *pFuncInfo;
TRACE("(%p)(%p,id=%d,flags=0x%08x,%p,%p,%p,%p)\n", This,pIUnk,memid,wFlags,pDispParams,pVarResult,pExcepInfo,pArgErr );
- if( pFuncInfo->funcdesc.wFuncFlags == FUNCFLAG_FRESTRICTED ) + if( This->TypeAttr.wTypeFlags & TYPEFLAG_FRESTRICTED ) return DISP_E_MEMBERNOTFOUND;
if (!pDispParams) @@ -6045,7 +6045,8 @@ static HRESULT WINAPI ITypeInfo_fnInvoke( * FUNCDESC for dispinterfaces and we want the real function description */ for (pFuncInfo = This->funclist; pFuncInfo; pFuncInfo=pFuncInfo->next) if ((memid == pFuncInfo->funcdesc.memid) && - (wFlags & pFuncInfo->funcdesc.invkind)) + (wFlags & pFuncInfo->funcdesc.invkind) && + (pFuncInfo->funcdesc.wFuncFlags & FUNCFLAG_FRESTRICTED) == 0) break;
if (pFuncInfo) {