/// <summary>
		///Queries the history and reports whether the URL passed as the pocsUrl parameter has been visited by the current user. 
		/// </summary>
		/// <param name="pocsUrl">the string of the URL to querythe string of the URL to query.</param>
		/// <param name="dwFlags">STATURL_QUERYFLAGS Enumeration
		/// <example><c>STATURL_QUERYFLAGS.STATURL_QUERYFLAG_TOPLEVEL</c></example></param>
		/// <returns>Returns STATURL structure that received additional URL history information. If the returned  STATURL's pwcsUrl is not null, Queried URL has been visited by the current user.
		/// </returns>
		public Win32api.SortFileTimeAscendingHelper.STATURL QueryUrl(string pocsUrl , Win32api.SortFileTimeAscendingHelper.STATURL_QUERYFLAGS dwFlags)
		{
			
			var lpSTATURL = new Win32api.SortFileTimeAscendingHelper.STATURL();
			
			try
			{
				//In this case, queried URL has been visited by the current user.
				obj.QueryUrl(pocsUrl, dwFlags, ref lpSTATURL);
				//lpSTATURL.pwcsUrl is NOT null;
				return lpSTATURL;
			}
			catch(FileNotFoundException)
			{
				//Queried URL has not been visited by the current user.
				//lpSTATURL.pwcsUrl is set to null;
				return lpSTATURL;
			}
			
		}
			/// <summary>
			/// Define filter for enumeration. MoveNext() compares the specified URL with each URL in the history list to find matches. MoveNext() then copies the list of matches to a buffer. SetFilter method is used to specify the URL to compare.	 
			/// </summary>
			/// <param name="poszFilter">The string of the filter. 
			/// <example>SetFilter('http://', STATURL_QUERYFLAGS.STATURL_QUERYFLAG_TOPLEVEL)  retrieves only entries starting with 'http.//'. </example>
			/// </param>
			/// <param name="dwFlags">STATURL_QUERYFLAGS Enumeration<exapmle><c>STATURL_QUERYFLAGS.STATURL_QUERYFLAG_TOPLEVEL</c></exapmle></param>
			public void SetFilter(string  poszFilter, Win32api.SortFileTimeAscendingHelper.STATURLFLAGS dwFlags)
			{
				enumrator.SetFilter(poszFilter, dwFlags);
			}
		/// <summary>
		/// Places the specified URL into the history. If the URL does not exist in the history, an entry is created in the history. If the URL does exist in the history, it is overwritten.
		/// </summary>
		/// <param name="pocsUrl">the string of the URL to place in the history</param>
		/// <param name="pocsTitle">the string of the title associated with that URL</param>
		/// <param name="dwFlags">the flag which indicate where a URL is placed in the history.
		/// <example><c>ADDURL_FLAG.ADDURL_ADDTOHISTORYANDCACHE</c></example>
		/// </param>
		public void AddHistoryEntry(string pocsUrl, string pocsTitle, Win32api.SortFileTimeAscendingHelper.ADDURL_FLAG dwFlags)
		{	
			obj.AddUrl(pocsUrl, pocsTitle, dwFlags);
			
		}
			/// <summary>
			/// Constructor for <c>STATURLEnumerator</c> that accepts IEnumSTATURL object that represents the <c>IEnumSTATURL</c> COM Interface.
			/// </summary>
			/// <param name="enumrator">the <c>IEnumSTATURL</c> COM Interface</param>
			public STATURLEnumerator(Win32api.SortFileTimeAscendingHelper.IEnumSTATURL enumrator)
			{
				this.enumrator = enumrator;
			}