struct path_string { char Item[4096]; }; #define MAX_HISTORY_NUM 40 path_string history_list[MAX_HISTORY_NUM]; struct UrlsHistory { int links_count; int current; dword CurrentUrl(); dword GetUrl(); void AddUrl(); byte GoBack(); byte GoForward(); }; dword UrlsHistory::CurrentUrl() { return #history_list[current].Item; } dword UrlsHistory::GetUrl(int id) { return #history_list[id].Item; } void UrlsHistory::AddUrl() { int i; if (links_count>0) && (!strcmp(#URL,#history_list[current].Item)) return; if (current>=MAX_HISTORY_NUM-1) { current/=2; for (i=0; i