Autosyncing with Wine HEAD

svn path=/trunk/; revision=32843
This commit is contained in:
The Wine Synchronizer 2008-04-04 13:13:15 +00:00
parent 7557cf6102
commit 9adffe12c6
5 changed files with 121 additions and 11 deletions

View file

@ -63,7 +63,7 @@ static HRESULT WINAPI ExtServUnk_QueryInterface(IUnknown *iface, REFIID riid, vo
} }
if(*ppv) { if(*ppv) {
IUnknown_AddRef(EXTSERVUNK(This)); IUnknown_AddRef((IUnknown*)*ppv);
return S_OK; return S_OK;
} }
@ -209,6 +209,9 @@ static const IHttpNegotiateVtbl HttpNegotiateVtbl = {
HttpNegotiate_OnResponse HttpNegotiate_OnResponse
}; };
/***********************************************************************
* HlinkCreateExtensionServices (HLINK.@)
*/
HRESULT WINAPI HlinkCreateExtensionServices(LPCWSTR pwzAdditionalHeaders, HRESULT WINAPI HlinkCreateExtensionServices(LPCWSTR pwzAdditionalHeaders,
HWND phwnd, LPCWSTR pszUsername, LPCWSTR pszPassword, HWND phwnd, LPCWSTR pszUsername, LPCWSTR pszPassword,
IUnknown *punkOuter, REFIID riid, void** ppv) IUnknown *punkOuter, REFIID riid, void** ppv)

View file

@ -1,5 +1,6 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd"> <!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
<group>
<module name="hlink" type="win32dll" baseaddress="${BASEADDRESS_HLINK}" installbase="system32" installname="hlink.dll" allowwarnings="true"> <module name="hlink" type="win32dll" baseaddress="${BASEADDRESS_HLINK}" installbase="system32" installname="hlink.dll" allowwarnings="true">
<autoregister infsection="OleControlDlls" type="DllRegisterServer" /> <autoregister infsection="OleControlDlls" type="DllRegisterServer" />
<importlibrary definition="hlink.spec.def" /> <importlibrary definition="hlink.spec.def" />
@ -8,6 +9,11 @@
<define name="__WINESRC__" /> <define name="__WINESRC__" />
<define name="WINVER">0x600</define> <define name="WINVER">0x600</define>
<define name="_WIN32_WINNT">0x600</define> <define name="_WIN32_WINNT">0x600</define>
<file>browse_ctx.c</file>
<file>extserv.c</file>
<file>hlink_main.c</file>
<file>link.c</file>
<file>hlink.spec</file>
<library>wine</library> <library>wine</library>
<library>shell32</library> <library>shell32</library>
<library>ole32</library> <library>ole32</library>
@ -16,9 +22,5 @@
<library>urlmon</library> <library>urlmon</library>
<library>uuid</library> <library>uuid</library>
<library>ntdll</library> <library>ntdll</library>
<file>browse_ctx.c</file>
<file>extserv.c</file>
<file>hlink_main.c</file>
<file>link.c</file>
<file>hlink.spec</file>
</module> </module>
</group>

View file

@ -8,10 +8,10 @@
10 stdcall HlinkNavigate(ptr ptr long ptr ptr ptr) 10 stdcall HlinkNavigate(ptr ptr long ptr ptr ptr)
11 stdcall HlinkUpdateStackItem(ptr ptr long ptr wstr wstr) 11 stdcall HlinkUpdateStackItem(ptr ptr long ptr wstr wstr)
12 stub HlinkOnRenameDocument 12 stub HlinkOnRenameDocument
14 stub HlinkResolveMonikerForData 14 stdcall HlinkResolveMonikerForData(ptr long ptr long ptr ptr ptr)
15 stub HlinkResolveStringForData 15 stub HlinkResolveStringForData
16 stub OleSaveToStreamEx 16 stub OleSaveToStreamEx
18 stub HlinkParseDisplayName 18 stdcall HlinkParseDisplayName(ptr wstr long ptr ptr)
20 stdcall HlinkQueryCreateFromData(ptr) 20 stdcall HlinkQueryCreateFromData(ptr)
21 stub HlinkSetSpecialReference 21 stub HlinkSetSpecialReference
22 stdcall HlinkGetSpecialReference(long ptr) 22 stdcall HlinkGetSpecialReference(long ptr)

View file

@ -41,8 +41,6 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
switch (fdwReason) switch (fdwReason)
{ {
case DLL_WINE_PREATTACH:
return FALSE; /* prefer native version */
case DLL_PROCESS_ATTACH: case DLL_PROCESS_ATTACH:
DisableThreadLibraryCalls(hinstDLL); DisableThreadLibraryCalls(hinstDLL);
break; break;
@ -52,12 +50,18 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
return TRUE; return TRUE;
} }
/***********************************************************************
* DllCanUnloadNow (HLINK.@)
*/
HRESULT WINAPI DllCanUnloadNow( void ) HRESULT WINAPI DllCanUnloadNow( void )
{ {
FIXME("\n"); FIXME("\n");
return S_OK; return S_OK;
} }
/***********************************************************************
* HlinkCreateFromMoniker (HLINK.@)
*/
HRESULT WINAPI HlinkCreateFromMoniker( IMoniker *pimkTrgt, LPCWSTR pwzLocation, HRESULT WINAPI HlinkCreateFromMoniker( IMoniker *pimkTrgt, LPCWSTR pwzLocation,
LPCWSTR pwzFriendlyName, IHlinkSite* pihlsite, DWORD dwSiteData, LPCWSTR pwzFriendlyName, IHlinkSite* pihlsite, DWORD dwSiteData,
IUnknown* piunkOuter, REFIID riid, void** ppvObj) IUnknown* piunkOuter, REFIID riid, void** ppvObj)
@ -89,6 +93,9 @@ HRESULT WINAPI HlinkCreateFromMoniker( IMoniker *pimkTrgt, LPCWSTR pwzLocation,
return r; return r;
} }
/***********************************************************************
* HlinkCreateFromString (HLINK.@)
*/
HRESULT WINAPI HlinkCreateFromString( LPCWSTR pwzTarget, LPCWSTR pwzLocation, HRESULT WINAPI HlinkCreateFromString( LPCWSTR pwzTarget, LPCWSTR pwzLocation,
LPCWSTR pwzFriendlyName, IHlinkSite* pihlsite, DWORD dwSiteData, LPCWSTR pwzFriendlyName, IHlinkSite* pihlsite, DWORD dwSiteData,
IUnknown* piunkOuter, REFIID riid, void** ppvObj) IUnknown* piunkOuter, REFIID riid, void** ppvObj)
@ -151,6 +158,9 @@ HRESULT WINAPI HlinkCreateFromString( LPCWSTR pwzTarget, LPCWSTR pwzLocation,
} }
/***********************************************************************
* HlinkNavigate (HLINK.@)
*/
HRESULT WINAPI HlinkCreateBrowseContext( IUnknown* piunkOuter, REFIID riid, void** ppvObj) HRESULT WINAPI HlinkCreateBrowseContext( IUnknown* piunkOuter, REFIID riid, void** ppvObj)
{ {
HRESULT r = S_OK; HRESULT r = S_OK;
@ -164,6 +174,9 @@ HRESULT WINAPI HlinkCreateBrowseContext( IUnknown* piunkOuter, REFIID riid, void
return r; return r;
} }
/***********************************************************************
* HlinkNavigate (HLINK.@)
*/
HRESULT WINAPI HlinkNavigate(IHlink *phl, IHlinkFrame *phlFrame, HRESULT WINAPI HlinkNavigate(IHlink *phl, IHlinkFrame *phlFrame,
DWORD grfHLNF, LPBC pbc, IBindStatusCallback *pbsc, DWORD grfHLNF, LPBC pbc, IBindStatusCallback *pbsc,
IHlinkBrowseContext *phlbc) IHlinkBrowseContext *phlbc)
@ -180,6 +193,9 @@ HRESULT WINAPI HlinkNavigate(IHlink *phl, IHlinkFrame *phlFrame,
return r; return r;
} }
/***********************************************************************
* HlinkOnNavigate (HLINK.@)
*/
HRESULT WINAPI HlinkOnNavigate( IHlinkFrame *phlFrame, HRESULT WINAPI HlinkOnNavigate( IHlinkFrame *phlFrame,
IHlinkBrowseContext* phlbc, DWORD grfHLNF, IMoniker *pmkTarget, IHlinkBrowseContext* phlbc, DWORD grfHLNF, IMoniker *pmkTarget,
LPCWSTR pwzLocation, LPCWSTR pwzFriendlyName, ULONG* puHLID) LPCWSTR pwzLocation, LPCWSTR pwzFriendlyName, ULONG* puHLID)
@ -199,6 +215,9 @@ HRESULT WINAPI HlinkOnNavigate( IHlinkFrame *phlFrame,
return r; return r;
} }
/***********************************************************************
* HlinkCreateFromData (HLINK.@)
*/
HRESULT WINAPI HlinkCreateFromData(IDataObject *piDataObj, HRESULT WINAPI HlinkCreateFromData(IDataObject *piDataObj,
IHlinkSite *pihlsite, DWORD dwSiteData, IUnknown *piunkOuter, IHlinkSite *pihlsite, DWORD dwSiteData, IUnknown *piunkOuter,
REFIID riid, void **ppvObj) REFIID riid, void **ppvObj)
@ -209,12 +228,18 @@ HRESULT WINAPI HlinkCreateFromData(IDataObject *piDataObj,
return E_NOTIMPL; return E_NOTIMPL;
} }
/***********************************************************************
* HlinkQueryCreateFromData (HLINK.@)
*/
HRESULT WINAPI HlinkQueryCreateFromData(IDataObject* piDataObj) HRESULT WINAPI HlinkQueryCreateFromData(IDataObject* piDataObj)
{ {
FIXME("%p\n", piDataObj); FIXME("%p\n", piDataObj);
return E_NOTIMPL; return E_NOTIMPL;
} }
/***********************************************************************
* HlinkNavigateToStringReference (HLINK.@)
*/
HRESULT WINAPI HlinkNavigateToStringReference( LPCWSTR pwzTarget, HRESULT WINAPI HlinkNavigateToStringReference( LPCWSTR pwzTarget,
LPCWSTR pwzLocation, IHlinkSite *pihlsite, DWORD dwSiteData, LPCWSTR pwzLocation, IHlinkSite *pihlsite, DWORD dwSiteData,
IHlinkFrame *pihlframe, DWORD grfHLNF, LPBC pibc, IHlinkFrame *pihlframe, DWORD grfHLNF, LPBC pibc,
@ -235,6 +260,9 @@ HRESULT WINAPI HlinkNavigateToStringReference( LPCWSTR pwzTarget,
return r; return r;
} }
/***********************************************************************
* HlinkIsShortcut (HLINK.@)
*/
HRESULT WINAPI HlinkIsShortcut(LPCWSTR pwzFileName) HRESULT WINAPI HlinkIsShortcut(LPCWSTR pwzFileName)
{ {
int len; int len;
@ -253,6 +281,9 @@ HRESULT WINAPI HlinkIsShortcut(LPCWSTR pwzFileName)
return strcmpiW(pwzFileName+len, url_ext) ? S_FALSE : S_OK; return strcmpiW(pwzFileName+len, url_ext) ? S_FALSE : S_OK;
} }
/***********************************************************************
* HlinkGetSpecialReference (HLINK.@)
*/
HRESULT WINAPI HlinkGetSpecialReference(ULONG uReference, LPWSTR *ppwzReference) HRESULT WINAPI HlinkGetSpecialReference(ULONG uReference, LPWSTR *ppwzReference)
{ {
DWORD res, type, size = 100; DWORD res, type, size = 100;
@ -308,12 +339,18 @@ HRESULT WINAPI HlinkGetSpecialReference(ULONG uReference, LPWSTR *ppwzReference)
return S_OK; return S_OK;
} }
/***********************************************************************
* HlinkTranslateURL (HLINK.@)
*/
HRESULT WINAPI HlinkTranslateURL(LPCWSTR pwzURL, DWORD grfFlags, LPWSTR *ppwzTranslatedURL) HRESULT WINAPI HlinkTranslateURL(LPCWSTR pwzURL, DWORD grfFlags, LPWSTR *ppwzTranslatedURL)
{ {
FIXME("(%s %08x %p)\n", debugstr_w(pwzURL), grfFlags, ppwzTranslatedURL); FIXME("(%s %08x %p)\n", debugstr_w(pwzURL), grfFlags, ppwzTranslatedURL);
return E_NOTIMPL; return E_NOTIMPL;
} }
/***********************************************************************
* HlinkUpdateStackItem (HLINK.@)
*/
HRESULT WINAPI HlinkUpdateStackItem(IHlinkFrame *pihlframe, IHlinkBrowseContext *pihlbc, HRESULT WINAPI HlinkUpdateStackItem(IHlinkFrame *pihlframe, IHlinkBrowseContext *pihlbc,
ULONG uHLID, IMoniker *pimkTrgt, LPCWSTR pwzLocation, LPCWSTR pwzFriendlyName) ULONG uHLID, IMoniker *pimkTrgt, LPCWSTR pwzLocation, LPCWSTR pwzFriendlyName)
{ {
@ -322,6 +359,71 @@ HRESULT WINAPI HlinkUpdateStackItem(IHlinkFrame *pihlframe, IHlinkBrowseContext
return E_NOTIMPL; return E_NOTIMPL;
} }
/***********************************************************************
* HlinkParseDisplayName (HLINK.@)
*/
HRESULT WINAPI HlinkParseDisplayName(LPBC pibc, LPCWSTR pwzDisplayName, BOOL fNoForceAbs,
ULONG *pcchEaten, IMoniker **ppimk)
{
HRESULT hres;
TRACE("(%p %s %x %p %p)\n", pibc, debugstr_w(pwzDisplayName), fNoForceAbs, pcchEaten, ppimk);
if(fNoForceAbs)
FIXME("Unsupported fNoForceAbs\n");
hres = MkParseDisplayNameEx(pibc, pwzDisplayName, pcchEaten, ppimk);
if(SUCCEEDED(hres))
return hres;
hres = MkParseDisplayName(pibc, pwzDisplayName, pcchEaten, ppimk);
if(SUCCEEDED(hres))
return hres;
hres = CreateFileMoniker(pwzDisplayName, ppimk);
if(SUCCEEDED(hres))
*pcchEaten = strlenW(pwzDisplayName);
return hres;
}
/***********************************************************************
* HlinkResolveMonikerForData (HLINK.@)
*/
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, static HRESULT WINAPI HLinkCF_fnQueryInterface ( LPCLASSFACTORY iface,
REFIID riid, LPVOID *ppvObj) REFIID riid, LPVOID *ppvObj)
{ {
@ -435,6 +537,9 @@ static HRESULT register_clsid(LPCGUID guid)
return S_OK; return S_OK;
} }
/***********************************************************************
* DllRegisterServer (HLINK.@)
*/
HRESULT WINAPI DllRegisterServer(void) HRESULT WINAPI DllRegisterServer(void)
{ {
HRESULT r; HRESULT r;

View file

@ -602,7 +602,7 @@ static HRESULT WINAPI IPersistStream_fnGetClassID(IPersistStream* iface,
{ {
HlinkImpl *This = HlinkImpl_from_IPersistStream(iface); HlinkImpl *This = HlinkImpl_from_IPersistStream(iface);
TRACE("(%p)\n", This); TRACE("(%p)\n", This);
memcpy(pClassID, &CLSID_StdHlink, sizeof(CLSID)); *pClassID = CLSID_StdHlink;
return S_OK; return S_OK;
} }