Geoff Chappell - Software Analyst
The ITravelLogStg methods are (as ordered in the virtual function table after the IUnknown methods):
HRESULT CreateEntry (PCWSTR, PCWSTR, ITravelLogEntry *, BOOL, ITravelLogEntry *);
HRESULT TravelTo (ITravelLogEntry *);
HRESULT EnumEntries (DWORD, IEnumTravelLogEntry **);
HRESULT FindEntries (DWORD, PCWSTR, IEnumTravelLogEntry **);
HRESULT GetCount (DWORD, DWORD *);
HRESULT RemoveEntry (ITravelLogEntry *);
HRESULT GetRelativeEntry (int, ITravelLogEntry **);
The one known implementation is in a class, named CPublicTravelLog according to Microsoft’s published symbol files, that exists to enclose a browser’s travel log. For any one browser’s travel log, the punk argument required by most of the travel log’s methods is a generality that is not needed. It is always the same and can usefully be hidden from the client’s attention. Except for FindEntries, which is implemented to fail trivially, all the ITravelLogStg methods then become more or less straightforward translations to a corresponding method of the underlying travel log’s ITravelLogEx interface (or in one case, ITravelLog):
The translations that are less straightforward are of CreateEntry and GetRelativeEntry. For the latter, the translation is to a method of the older ITravelLog interface, which produces the found entry in terms of an ITravelEntry pointer, which requires conversion. Translation of CreateEntry is much less straightforward because the public travel log must set itself up to look like a travel log client to the underlying travel log.
Despite these slight complications, there is no better way to understand ITravelLogStg except as dressing ITravelLog and ITravelLogEx for easier use. Note however that ITravelLogStg exposes only a tiny portion of the underlying travel log’s functionality (and none at all of its ITravelLog2 interface).
The ITravelLogStg interface is implemented in SHDOCVW version 5.50 and higher, and in IEFRAME version 7.00.