ITravelLog

IID_ITravelLog {F46EDB3C-BC2F-11D0-9412-00AA00A3EBD3} ANSI
{66A9CB08-4802-11D2-A561-00A0C92DBFE8} Unicode

The ITravelLog methods are (as ordered in the virtual function table after the IUnknown methods):

Offset Method
0x0C AddEntry
0x10 UpdateEntry
0x14 UpdateExternal
0x18 Travel
0x1C GetTravelEntry
0x20 FindTravelEntry
0x24 GetToolTipText
0x28 InsertMenuEntries
0x2C Clone
0x30 CountEntries
0x34 Revert

with prototypes:

HRESULT AddEntry (IUnknown *, BOOL);
HRESULT UpdateEntry (IUnknown *, BOOL);
HRESULT UpdateExternal (IUnknown *, IUnknown *);
HRESULT Travel (IUnknown *, int);
HRESULT GetTravelEntry (IUnknown *, int, ITravelEntry **);
HRESULT FindTravelEntry (IUnknown *, PCIDLIST_ABSOLUTE, ITravelEntry **);
HRESULT GetToolTipText (IUnknown *, int, int, PTSTR, DWORD);
HRESULT InsertMenuEntries (IUnknown *, HMENU, int, int, int, DWORD);
HRESULT Clone (ITravelLog **);
DWORD CountEntries (IUnknown *);
HRESULT Revert (VOID);

Implementations

Only one implementation is known, specifically for a class that Microsoft’s published symbol files name as CTravelLog. One way to obtain an instance of this class is by calling the GetTravelLog method of an IBrowserService interface. Starting with Windows Vista, instances are creatable from a CLSID. (For more, see notes on the TravelLog class).

Availability

The ITravelLog interface is implemented in SHDOCVW version 4.71 and higher, until Windows Vista moves the code to IEFRAME and SHELL32.

Note that the interface exists in separate ANSI and Unicode forms, with different IIDs (but apparently without ever distinguishing the symbols for them, e.g., by appending A or W). The only method affected is GetToolTipText. SHDOCVW versions before 5.00 implement only the ANSI form. Subsequent implementations are all Unicode.

Though this interface dates from as long ago as 1997, it was still not documented by Microsoft as late as the January 2004 edition of the MSDN Library on CD.

That said, the interface was not completely undocumented. As often for interfaces, the corresponding IID symbol is defined in the UUID.LIB library, even though it is not declared in any header—at least, not any that Microsoft distributes with the SDK.

Moreover, the interface has got documented since, certainly in the SDK dated January 2007 in time for Windows Vista. The interface is there said to be deprecated. The minimum availability is said to be Internet Explorer 4.0, which is correct only for programmers who know to look for the interface under two different IIDs (the earlier of which remains undocumented).