mirror of
https://github.com/reactos/reactos.git
synced 2025-06-12 03:28:29 +00:00
Autosyncing with Wine HEAD
svn path=/trunk/; revision=32843
This commit is contained in:
parent
7557cf6102
commit
9adffe12c6
5 changed files with 121 additions and 11 deletions
|
@ -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)
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue