Jacek Caban : hlink: Added HlinkResolveMonikerForData implementation.
Alexandre Julliard
julliard at winehq.org
Mon Feb 4 08:42:51 CST 2008
Module: wine
Branch: master
Commit: 9d6cf488b60e0ce55a46c1560af6bff8be4dc849
URL: http://source.winehq.org/git/wine.git/?a=commit;h=9d6cf488b60e0ce55a46c1560af6bff8be4dc849
Author: Jacek Caban <jacek at codeweavers.com>
Date: Tue Jan 29 00:22:12 2008 +0100
hlink: Added HlinkResolveMonikerForData implementation.
---
dlls/hlink/hlink.spec | 2 +-
dlls/hlink/hlink_main.c | 33 +++++++++++++++++++++++++++++++++
2 files changed, 34 insertions(+), 1 deletions(-)
diff --git a/dlls/hlink/hlink.spec b/dlls/hlink/hlink.spec
index 117327b..0cc761f 100644
--- a/dlls/hlink/hlink.spec
+++ b/dlls/hlink/hlink.spec
@@ -8,7 +8,7 @@
10 stdcall HlinkNavigate(ptr ptr long ptr ptr ptr)
11 stdcall HlinkUpdateStackItem(ptr ptr long ptr wstr wstr)
12 stub HlinkOnRenameDocument
-14 stub HlinkResolveMonikerForData
+14 stdcall HlinkResolveMonikerForData(ptr long ptr long ptr ptr ptr)
15 stub HlinkResolveStringForData
16 stub OleSaveToStreamEx
18 stdcall HlinkParseDisplayName(ptr wstr long ptr ptr)
diff --git a/dlls/hlink/hlink_main.c b/dlls/hlink/hlink_main.c
index b9ce4af..ed8d60f 100644
--- a/dlls/hlink/hlink_main.c
+++ b/dlls/hlink/hlink_main.c
@@ -347,6 +347,39 @@ HRESULT WINAPI HlinkParseDisplayName(LPBC pibc, LPCWSTR pwzDisplayName, BOOL fNo
return hres;
}
+HRESULT WINAPI HlinkResolveMonikerForData(LPMONIKER pimkReference, DWORD reserved, LPBC pibc,
+ ULONG cFmtetc, FORMATETC *rgFmtetc, IBindStatusCallback *pibsc, LPMONIKER pimkBase)
+{
+ LPOLESTR name = NULL;
+ IBindCtx *bctx;
+ DWORD mksys = 0;
+ void *obj = NULL;
+ HRESULT hres;
+
+ TRACE("(%p %x %p %d %p %p %p)\n", pimkReference, reserved, pibc, cFmtetc, rgFmtetc, pibsc, pimkBase);
+
+ if(cFmtetc || rgFmtetc || pimkBase)
+ FIXME("Unsupported args\n");
+
+ hres = RegisterBindStatusCallback(pibc, pibsc, NULL /* FIXME */, 0);
+ if(FAILED(hres))
+ return hres;
+
+ hres = IMoniker_IsSystemMoniker(pimkReference, &mksys);
+ if(SUCCEEDED(hres) && mksys != MKSYS_URLMONIKER)
+ WARN("sysmk = %x\n", mksys);
+
+ /* FIXME: What is it for? */
+ CreateBindCtx(0, &bctx);
+ hres = IMoniker_GetDisplayName(pimkReference, bctx, NULL, &name);
+ IBindCtx_Release(bctx);
+ if(SUCCEEDED(hres)) {
+ TRACE("got display name %s\n", debugstr_w(name));
+ CoTaskMemFree(name);
+ }
+
+ return IMoniker_BindToStorage(pimkReference, pibc, NULL, &IID_IUnknown, &obj);
+}
static HRESULT WINAPI HLinkCF_fnQueryInterface ( LPCLASSFACTORY iface,
REFIID riid, LPVOID *ppvObj)
{
More information about the wine-cvs
mailing list