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) {
IUnknown_AddRef(EXTSERVUNK(This));
IUnknown_AddRef((IUnknown*)*ppv);
return S_OK;
}
@ -209,6 +209,9 @@ static const IHttpNegotiateVtbl HttpNegotiateVtbl = {
HttpNegotiate_OnResponse
};
/***********************************************************************
* HlinkCreateExtensionServices (HLINK.@)
*/
HRESULT WINAPI HlinkCreateExtensionServices(LPCWSTR pwzAdditionalHeaders,
HWND phwnd, LPCWSTR pszUsername, LPCWSTR pszPassword,
IUnknown *punkOuter, REFIID riid, void** ppv)

View file

@ -1,5 +1,6 @@
<?xml version="1.0"?>
<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
<group>
<module name="hlink" type="win32dll" baseaddress="${BASEADDRESS_HLINK}" installbase="system32" installname="hlink.dll" allowwarnings="true">
<autoregister infsection="OleControlDlls" type="DllRegisterServer" />
<importlibrary definition="hlink.spec.def" />
@ -8,6 +9,11 @@
<define name="__WINESRC__" />
<define name="WINVER">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>shell32</library>
<library>ole32</library>
@ -16,9 +22,5 @@
<library>urlmon</library>
<library>uuid</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>
</group>

View file

@ -8,10 +8,10 @@
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 stub HlinkParseDisplayName
18 stdcall HlinkParseDisplayName(ptr wstr long ptr ptr)
20 stdcall HlinkQueryCreateFromData(ptr)
21 stub HlinkSetSpecialReference
22 stdcall HlinkGetSpecialReference(long ptr)

View file

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

View file

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