Rob Shearman : atl: Implement AtlComQIPtrAssign.
Module: wine Branch: master Commit: fec8156cc3dd4ce9757d5240465acbd6d97c6d3a URL: http://source.winehq.org/git/wine.git/?a=commit;h=fec8156cc3dd4ce9757d524046... Author: Rob Shearman <rob(a)codeweavers.com> Date: Sun Apr 29 17:46:50 2007 +0100 atl: Implement AtlComQIPtrAssign. --- dlls/atl/atl.spec | 2 +- dlls/atl/atl_main.c | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletions(-) diff --git a/dlls/atl/atl.spec b/dlls/atl/atl.spec index 6204c5d..cbeecb6 100644 --- a/dlls/atl/atl.spec +++ b/dlls/atl/atl.spec @@ -23,7 +23,7 @@ 28 stdcall AtlPixelToHiMetric(ptr ptr) 29 stub AtlDevModeW2A 30 stdcall AtlComPtrAssign(ptr ptr) -31 stub AtlComQIPtrAssign +31 stdcall AtlComQIPtrAssign(ptr ptr ptr) 32 stdcall AtlInternalQueryInterface(ptr ptr ptr ptr) 34 stub AtlGetVersion 35 stub AtlAxDialogBoxW diff --git a/dlls/atl/atl_main.c b/dlls/atl/atl_main.c index 3b5703e..d4d950a 100644 --- a/dlls/atl/atl_main.c +++ b/dlls/atl/atl_main.c @@ -208,6 +208,18 @@ IUnknown* WINAPI AtlComPtrAssign(IUnknown** pp, IUnknown *p) return p; } +IUnknown* WINAPI AtlComQIPtrAssign(IUnknown** pp, IUnknown *p, REFIID riid) +{ + IUnknown *new_p = NULL; + + TRACE("(%p %p %s)\n", pp, p, debugstr_guid(riid)); + + if (p) IUnknown_QueryInterface(p, riid, (void **)&new_p); + if (*pp) IUnknown_Release(*pp); + *pp = new_p; + return new_p; +} + HRESULT WINAPI AtlInternalQueryInterface(void* this, const _ATL_INTMAP_ENTRY* pEntries, REFIID iid, void** ppvObject) {
participants (1)
-
Alexandre Julliard