atl: Implement AtlComQIPtrAssign.
Robert Shearman
rob at codeweavers.com
Sun Apr 29 11:46:50 CDT 2007
This is based on AtlComPtrAssign and the information on MSDN.
---
dlls/atl/atl.spec | 2 +-
dlls/atl/atl_main.c | 12 ++++++++++++
2 files changed, 13 insertions(+), 1 deletions(-)
-------------- next part --------------
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(IUnknow
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)
{
More information about the wine-patches
mailing list