146 TRACE(
"CTravelEntry::Invoke for IUnknown punk=%p\n", punk);
154 hResult = persistHistory->LoadHistory(globalStream,
NULL);
168 TRACE(
"CTravelEntry::Update for IUnknown punk=%p, fIsLocalAnchor=%s\n", punk, fIsLocalAnchor ?
"TRUE" :
"FALSE");
173 TRACE(
"Updating entry with display name: %S\n", wch);
189 hResult = persistHistory->SaveHistory(globalStream);
192 hResult = travelLogClient->GetWindowData(globalStream, &windowData);
202 TRACE(
"Updated entry display name is now: %S\n", wch);
215 TRACE(
"CTravelEntry::GetPidl returning ppidl=%p\n", *ppidl);
228 TRACE(
"CTravelLog created\n");
237 while (anEntry !=
NULL)
243 TRACE(
"CTravelLog destroyed\n");
259 if (foundEntry ==
NULL)
280 if (curEntry ==
NULL)
283 *foundEntry = curEntry;
285 TRACE(
"CTravelLog::FindRelativeEntry for offset %d, returning %p\n",
offset, *foundEntry);
295 TRACE(
"CTravelLog::DeleteChain deleting chain starting at %p\n", startHere);
309 while (startHere !=
NULL)
312 itemSize = startHere->
GetSize();
315 startHere = saveNext;
319 TRACE(
"CTravelLog::DeleteChain chain of %d items deleted\n", startEntryCount -
fEntryCount);
324 if (afterEntry ==
NULL)
326 TRACE(
"CTravelLog::AppendEntry appending %p after NULL. Resetting head and tail\n", newEntry);
332 TRACE(
"CTravelLog::AppendEntry appending %p after %p\n", newEntry, afterEntry);
349 TRACE(
"CTravelLog::AddEntry for IUnknown punk=%p, fIsLocalAnchor=%s\n", punk, fIsLocalAnchor ?
"TRUE" :
"FALSE");
354 if (newEntry ==
NULL)
360 itemSize = newEntry->GetSize();
385 TRACE(
"CTravelLog::Travel for IUnknown punk=%p at offset=%d\n", punk, iOffset);
391 hResult = destinationEntry->
Invoke(punk);
409 TRACE(
"CTravelLog::GetTravelEntry for IUnknown punk=%p at offset=%d returning %p\n", punk, iOffset, *ppte);
430 wchar_t templateString[200];
445 if(
LoadStringW(_AtlBaseModule.GetResourceInstance(),
446 IDS_BACK, templateString,
sizeof(templateString) /
sizeof(
wchar_t)) == 0)
451 if(
LoadStringW(_AtlBaseModule.GetResourceInstance(),
452 IDS_FORWARD, templateString,
sizeof(templateString) /
sizeof(
wchar_t)) == 0)
457 TRACE(
"CTravelLog::GetToolTipText for IUnknown punk=%p at offset=%d returning L\"%S\"\n", punk, iOffset, pwzText);
487 wchar_t itemTextBuffer[
MAX_PATH * 2];
490 TRACE(
"CTravelLog::InsertMenuEntries for IUnknown punk=%p, nPos=%d, idFirst=%d, idLast=%d\n", punk);
502 if (idLast <= idFirst)
504 menuItemInfo.
cbSize =
sizeof(menuItemInfo);
507 menuItemInfo.
wID = idFirst;
515 if (currentItem !=
NULL)
526 TRACE(
"CTravelLog::InsertMenuEntries adding entry L\"%S\"/L\"%S\" with id %d\n", itemTextBuffer, menuItemInfo.
dwTypeData, menuItemInfo.
wID);
539 if (currentItem !=
NULL)
541 while (currentItem !=
NULL)
547 TRACE(
"CTravelLog::InsertMenuEntries adding entry L\"%S\"/L\"%S\" with id %d\n", itemTextBuffer, menuItemInfo.
dwTypeData, menuItemInfo.
wID);
568 TRACE(
"CTravelLog::InsertMenuEntries adding entry L\"%S\"/L\"%S\" with id %d\n", itemTextBuffer, menuItemInfo.
dwTypeData, menuItemInfo.
wID);
574 menuItemInfo.
fState &= ~MFS_CHECKED;
581 if (currentItem !=
NULL)
583 while (currentItem !=
NULL)
589 TRACE(
"CTravelLog::InsertMenuEntries adding entry L\"%S\"/L\"%S\" with id %d\n", itemTextBuffer, menuItemInfo.
dwTypeData, menuItemInfo.
wID);
628 return ShellObjectCreatorInit<CTravelLog>(
riid,
ppv);
#define STDMETHODCALLTYPE
virtual HRESULT STDMETHODCALLTYPE Invoke(IUnknown *punk)
virtual HRESULT STDMETHODCALLTYPE Update(IUnknown *punk, BOOL fIsLocalAnchor)
HRESULT GetToolTipText(IUnknown *punk, LPWSTR pwzText) const
virtual HRESULT STDMETHODCALLTYPE GetPidl(LPITEMIDLIST *ppidl)
CTravelEntry * fNextEntry
CTravelEntry * fPreviousEntry
virtual HRESULT STDMETHODCALLTYPE UpdateEntry(IUnknown *punk, BOOL fIsLocalAnchor)
virtual DWORD STDMETHODCALLTYPE CountEntries(IUnknown *punk)
virtual HRESULT STDMETHODCALLTYPE InsertMenuEntries(IUnknown *punk, HMENU hmenu, int nPos, int idFirst, int idLast, DWORD dwFlags)
virtual HRESULT STDMETHODCALLTYPE Revert()
void AppendEntry(CTravelEntry *afterEntry, CTravelEntry *newEntry)
virtual HRESULT STDMETHODCALLTYPE GetToolTipText(IUnknown *punk, int iOffset, int idsTemplate, LPWSTR pwzText, DWORD cchText)
virtual HRESULT STDMETHODCALLTYPE AddEntry(IUnknown *punk, BOOL fIsLocalAnchor)
virtual HRESULT STDMETHODCALLTYPE GetTravelEntry(IUnknown *punk, int iOffset, ITravelEntry **ppte)
virtual HRESULT STDMETHODCALLTYPE Clone(ITravelLog **pptl)
CTravelEntry * fCurrentEntry
void DeleteChain(CTravelEntry *startHere)
virtual HRESULT STDMETHODCALLTYPE Travel(IUnknown *punk, int iOffset)
unsigned long fEntryCount
virtual HRESULT STDMETHODCALLTYPE FindTravelEntry(IUnknown *punk, LPCITEMIDLIST pidl, ITravelEntry **ppte)
HRESULT FindRelativeEntry(int offset, CTravelEntry **foundEntry)
virtual HRESULT STDMETHODCALLTYPE UpdateExternal(IUnknown *punk, IUnknown *punkHLBrowseContext)
HRESULT WINAPI GetHGlobalFromStream(IStream *pstm, HGLOBAL *phglobal)
HRESULT WINAPI CreateStreamOnHGlobal(HGLOBAL hGlobal, BOOL fDeleteOnRelease, LPSTREAM *ppstm)
HGLOBAL NTAPI GlobalFree(HGLOBAL hMem)
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
#define COM_INTERFACE_ENTRY_IID(iid, x)
int _snwprintf(wchar_t *buffer, size_t count, const wchar_t *format,...)
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST pidl)
void WINAPI ILFree(LPITEMIDLIST pidl)
BOOL WINAPI ILGetDisplayNameEx(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, LPVOID path, DWORD type)
static unsigned __int64 next
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
#define FAILED_UNEXPECTEDLY(hr)
#define TLMENUF_CHECKCURRENT
#define TLMENUF_INCLUDECURRENT
ITEMIDLIST UNALIGNED * LPITEMIDLIST
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
HRESULT CTravelLog_CreateInstance(REFIID riid, void **ppv)
static void FixAmpersands(wchar_t *buffer)
DWORD WINAPI GetLastError(void)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
#define HRESULT_FROM_WIN32(x)
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
#define IID_PPV_ARG(Itype, ppType)