Abstract
--------
IEHistory is a small program to get MSIE history as an HTML-file the same way as it is done by Opera browser.

The reason this project was started:
------------------------------------
As usual, I had to write this one for I was desperately searching for an item within the MSIE History (NOT in the MSIE Cache), and I was shocked when found how that pretty simple and useful option was realized by MS developers. MSIE provides a way to search within the History (not a comfortable one though), MyIE has nothing to offer to a user to search within the History. Moreover, the way the History representation is done in MSIE is an inconvenient one: who can immediately calculate the date for "6 weeks ago" etc.? :)

The program can be used either as a plugin for MyIE2, or a stand-alone one in the interactive mode. Besides, there is a way to invoke the program with several parameters, e.g. for a batch
file, etc.

Usage
------
iehistory [parameters] - for automatic (non-interactive) history obtaining
iehistory with no parameters -for interactive mode;
as a plugin for MyIE2 (MyIE should be set as the default browser)

Command Line parameters
-----------------------
d=start_date - The starting date for History extraction.
e=end_date - The end date of History extraction.
f=filter - A substring to search for in the MSIE History (may contain wildcards).
The search is performed both on page address and page title. The program then yields only those records that match the filter pattern.
o=Output_HTML-file - an HTML file where the result will be written. If this parameter is omitted the file "Current_username.htm" will be created within the iehistory folder. E.g. if the username is bob then the file bob.htm will be created.
r - Open the file with the default browser.
t=template_file - the name of the template-file, which will be used for creating output HTML-file (see below).
x - Use templ_title.htm as a template.

Note: "x" and "t" parameters are mutually exclusive.

When started with no parameters the program creates "current_username.htm" file in its startup folder and uses "template.htm" template to create an output HTML-file.

Templates
---------
Templates are just usual HTML-files where several place-holders are used:

%rcount%-Is a number of records matching the conditions given.
%date% - Here the date of the history element request is put by iehistory, depending on 
current Regional and Language Settings of the Operating System, e.g. 27 October 2003, Monday (27.10.2003)
%timevisited% - The time where the user visited the page
%httpaddress% - The http-address (e.g. http://www.google.com)
%pagetitle% - The title of the page title (e.g., Google)
%lastupdated% - This parameter is unclear in the MSDN documentation, during major of my tests it merely duplicates the %timevisited%
%expires% - The date and the time, when MSIE kicks the page out of its cache if cached.

[entry]
 
[/entry]
An HTML-code will be placed into the placeholder between those two boundaries as many times as there are elemetns found

[date]
[/date]
Same (see above)

It is allowed and HIGHLY RECOMMENDED to use [entry][/entry] with no [date][/date] when sorting by any sort option but by "last visited". See groupless.htm for example.

The following templates are included in the package:
template.htm=default template, used with high-resolution monitor modes (e.g. 1280x1024) - this 
is the detailed template containig all data available. Might not be suitable for lower resolutions.
templ_title.htm=unlike default template this one shows the page title, last updated and expiration time (see above)
short_templ.htm=shows page title and expiration date/time
short.htm=shows only page title.
groupless.htm - a template with no [date][/date] entry to prevent pre-sorting by date of the last visit.

All the above mentioned templates show the date/time of visit (see above).
Since ver. 1.3 IEHistory supports date, time and date+time format specifier in a template file, introducing
%DATEFORMAT%, %TIMEFORMAT% and %DATETIMEFORMAT% "macros".
To change the defaut format for a template the following line might be specified within the template file:
<META NAME="%DATETIMEFORMAT%" content="format_specifiers">. Those specifiers are presented in the formatlines.txt file
attached to this archive. If an invalid specifier is used, IEHistory ignores that format line and uses default ("c").

The template is changed via "Settings" dialog, "Template" option.

Setup/Installation as MyIE2 EXE-plugin:
---------------------------------------
To install the program as a plugin for MyIE2 copy the contents of the archive including subdirectories into the MyIE Plugin folder. By default the plugin uses Icon extracted from browseui.dll of the Microsoft Internet Explorer 5.0 browser, thanks to BoMG for the icon. You may use your own icon if you wish. 
New button should appear on MyIE plugins panel. The click on that icon invokes IEHistory window. The GUI interface of the iehistory is a self-explanatory one.

Notes:

Clicking the "Period" button leads in calculating the starting date/time in regard to the end one, or today if the end date/time is not ticked, considering the period units specified by a user (minutes, hours, days, weeks, months, years (have never seen though, but who knows :) )).

The button with tools picture pops up the "Settings" window.

The current version of IEHistory is capable to be translated into any other language (default is Russian). In order to translate the program into another language an .lng-file should be specified using an example file english.lng attached herewith. To use English language one might use the english.lng file specifying its name from within "Language file" settings box of the "Settings" window. Note that the default language for the program is RUSSIAN.

Other files created and Firewall warnings
------------------------------------------
The program creates its settings file iehst.ini in the iehistory folder.
It was found that sometimes firewall (As far as I know only Agnitum Outpost Firewall has buit-in components control module) pops up its window like "Component changed". This is because of IEHistory communicates with MSIE via COM-interface, and Firewall reports Internet Explorer uses "new" resource iehistory.exe. IEHistory exe NEVER connects itself to Internet and no connection-related functions are used by the program!

Ini file settings
-----------------
For those who want to adjust iehistory iehst.ini file manually the settings are presented in the
iehst.ini file attached hereto

Comments
---------
Your comments are appreciated


Thanks
-------
Thanks to
- RU-BOARD members who helped me to fix several issues and gave ideas on what should be included in the program, especially andrex, cRocUs, Real_LEM, and others.
- Jeff, Tara - for advices
- MyIE authors - for the best IE-based browser.
- My wife for patience :)

Good luck!

Vladimir Olovyannikov.
e-mail:volovyan@msn.com