[BROWSEUI]

* Fix ITravelLogClient::GetWindowData() definition (parameters) and correct its use.
* Account for tlogstg.h where the ITravelLogClient interface is now defined.
[PSDK]
* Import tlogstg.idl from Wine 1.5.26.
* Remove the now duplicated definitions from shobjidl.idl.
[UUID]
* Add tlogstg.idl.

svn path=/trunk/; revision=59024
This commit is contained in:
Amine Khaldi 2013-05-17 11:19:48 +00:00
parent 1bb724b8c5
commit 9ffdd562a1
7 changed files with 62 additions and 46 deletions

View file

@ -10,6 +10,7 @@
#include <wincon.h>
#include <shellapi.h>
#include <shlobj.h>
#include <tlogstg.h>
#include <shlobj_undoc.h>
#include <shlguid_undoc.h>
#include <tchar.h>

View file

@ -601,7 +601,7 @@ public:
// *** ITravelLogClient methods ***
virtual HRESULT STDMETHODCALLTYPE FindWindowByIndex(DWORD dwID, IUnknown **ppunk);
virtual HRESULT STDMETHODCALLTYPE GetWindowData(LPWINDOWDATA pWinData);
virtual HRESULT STDMETHODCALLTYPE GetWindowData(IStream *pStream, LPWINDOWDATA pWinData);
virtual HRESULT STDMETHODCALLTYPE LoadHistoryPosition(LPWSTR pszUrlLocation, DWORD dwPosition);
// *** IPersist methods ***
@ -2890,7 +2890,7 @@ HRESULT STDMETHODCALLTYPE CShellBrowser::FindWindowByIndex(DWORD dwID, IUnknown
return E_NOTIMPL;
}
HRESULT STDMETHODCALLTYPE CShellBrowser::GetWindowData(LPWINDOWDATA pWinData)
HRESULT STDMETHODCALLTYPE CShellBrowser::GetWindowData(IStream *pStream, LPWINDOWDATA pWinData)
{
if (pWinData == NULL)
return E_POINTER;

View file

@ -169,11 +169,6 @@ HRESULT STDMETHODCALLTYPE CTravelEntry::Update(IUnknown *punk, BOOL fIsLocalAnch
hResult = punk->QueryInterface(IID_ITravelLogClient, reinterpret_cast<void **>(&travelLogClient));
if (FAILED(hResult))
return hResult;
hResult = travelLogClient->GetWindowData(&windowData);
if (FAILED(hResult))
return hResult;
fPIDL = windowData.pidl;
// TODO: Properly free the windowData
hResult = punk->QueryInterface(IID_IPersistHistory, reinterpret_cast<void **>(&persistHistory));
if (FAILED(hResult))
return hResult;
@ -184,6 +179,11 @@ HRESULT STDMETHODCALLTYPE CTravelEntry::Update(IUnknown *punk, BOOL fIsLocalAnch
hResult = persistHistory->SaveHistory(globalStream);
if (FAILED(hResult))
return hResult;
hResult = travelLogClient->GetWindowData(globalStream, &windowData);
if (FAILED(hResult))
return hResult;
fPIDL = windowData.pidl;
// TODO: Properly free the windowData
hResult = GetHGlobalFromStream(globalStream, &fPersistState);
if (FAILED(hResult))
return hResult;

View file

@ -99,6 +99,7 @@ list(APPEND SOURCE
strmif.idl
structuredquerycondition.idl
textstor.idl
tlogstg.idl
tom.idl
tuner.idl
unknwn.idl

View file

@ -2364,20 +2364,6 @@ interface IShellMenu : IUnknown
}
typedef struct _WINDOWDATA
{
DWORD dwWindowID;
UINT uiCP;
LPITEMIDLIST pidl;
[string] LPWSTR lpszUrl;
[string] LPWSTR lpszUrlLocation;
[string] LPWSTR lpszTitle;
} WINDOWDATA;
typedef WINDOWDATA *LPWINDOWDATA;
typedef const WINDOWDATA *LPCWINDOWDATA;
/*****************************************************************************
* ITravelEntry interface
*/
@ -2401,30 +2387,6 @@ interface ITravelEntry : IUnknown
};
/*****************************************************************************
* ITravelLogClient interface
*/
[
uuid(241c033e-e659-43da-aa4d-4086dbc4758d),
object,
pointer_default(unique),
local
]
interface ITravelLogClient : IUnknown
{
HRESULT FindWindowByIndex(
[in] DWORD dwID,
[out] IUnknown **ppunk);
HRESULT GetWindowData(
[out] LPWINDOWDATA pWinData);
HRESULT LoadHistoryPosition(
[in] LPWSTR pszUrlLocation,
[in] DWORD dwPosition);
};
/*****************************************************************************
* ITravelLog interface
*/

View file

@ -0,0 +1,52 @@
/*
* Copyright 2012 Jacek Caban for CodeWeavers
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
import "objidl.idl";
import "oleidl.idl";
import "shtypes.idl";
typedef struct _WINDOWDATA {
DWORD dwWindowID;
UINT uiCP;
PIDLIST_ABSOLUTE pidl;
[string] LPWSTR lpszUrl;
[string] LPWSTR lpszUrlLocation;
[string] LPWSTR lpszTitle;
} WINDOWDATA;
typedef WINDOWDATA *LPWINDOWDATA;
typedef const WINDOWDATA *LPCWINDOWDATA;
[
uuid(241c033e-e659-43da-aa4d-4086dbc4758d),
object
]
interface ITravelLogClient : IUnknown
{
HRESULT FindWindowByIndex(
[in] DWORD dwID,
[out] IUnknown **ppunk);
HRESULT GetWindowData(
[in] IStream *pStream,
[out] LPWINDOWDATA pWinData);
HRESULT LoadHistoryPosition(
[in] LPWSTR pszUrlLocation,
[in] DWORD dwPosition);
}

View file

@ -126,7 +126,7 @@ list(APPEND IDL_SOURCES
# termmgr.idl
textstor.idl
# tlog.idl
# tlogstg.idl
tlogstg.idl
# trkadm.idl
# trkcom.idl
unknwn.idl