ISearch Interface



Summary: To search for files over the network, use StartSearch to get a SearchID, an OnResult event will be fired for each result where you can then get more detailed information. To download there is a method DownloadResult. Make sure when the search is over to call EndSearch.


Searching:
  StartSearch
  StartHashSearch
  StartMetaSearch
  SendBrowseRequest
  PauseSearch
  ContinueSearch
  EndSearch
  CountHostsSearched


Search Results:
  GetResultIDs
  CountGoodResults
  CountTotalResults
  GetResultName
  GetResultSize
  GetResultSpeed
  GetResultHostCount
  GetResultHash
  GetResultState
  DownloadResult
  GetResultMetaID
  GetResultAttributeValue


Result Filtering:
  RefineSearch
  SetFiltering
  FilterSize
  FilterSpeed


Search Hosts: (A Result is a group of Hosts)
  GetHostIDs
  GetHostIP
  GetHostPort
  GetHostSpeed
  GetHostDistance
  GetHostFirewall
  GetHostStable
  GetHostBusy
  GetHostVendor
  GetHostExtended
  GetHostMetaID
  GetHostAttributeValue


Search Events: (_ISearchEvent sink interface)
  OnUpdate
  OnResult
  OnRefresh
  OnProgress
  OnPaused
  OnBrowseUpdate


Back to Interface Reference



StartSearch
  Params: String Query
  Return: Long
  Remarks: Sends query over network, returns SearchID


StartHashSearch
  Params: String Query, Long HashID (Hash Type), String Hash
  Return: Long
  Remarks: Sends Query and/or Hash over the network, returns SearchID


StartMetaSearch
  Params: String Query, Long MetaID, String Array* AttributeList
  Return: Long
  Remarks: Sends query and/or meta-search over network, Attribute list in Name:Value format, returns SearchID


SendBrowseRequest SendBrowseRequest
  Params: String Host, Long Port
  Return: Long
  Remarks: Sends request to host for files they are sharing, use the OnBrowseUpdate event to keep track of status


PauseSearch
  Params: Long SearchID
  Return: None
  Remarks: Ignores new search results


ContinueSearch
  Params: Long SearchID
  Return: None
  Remarks: Continues a search after its been paused


EndSearch
  Params: Long SearchID
  Return: None
  Remarks: Removes search, ResultIDs invalidated


CountHostsSearched
  Params: Long SearchID
  Return: Long
  Remarks: Returns how many hosts have been searched




GetResultIDs
  Params: Long SearchID
  Return: Long Array
  Remarks: Returns all matching results, filtered results not included


CountGoodResults
  Params: Long SearchID
  Return: Long
  Remarks: Returns total count of good results from search


CountTotalResults
  Params: Long SearchID
  Return: Long
  Remarks: Returns total count of results from search


GetResultName
  Params: Long SearchID, Long ResultID
  Return: String
  Remarks: Returns file name of result


GetResultSize
  Params: Long SearchID, Long ResultID
  Return: Long
  Remarks: Returns size of result in bytes


GetResultSpeed
  Params: Long SearchID, Long ResultID
  Return: Long
  Remarks: Returns average speed of result in kilobytes per second


GetResultHostCount
  Params: Long SearchID, Long ResultID
  Return: Long
  Remarks: Returns number of hosts/sources of the result


GetResultHash
  Params: Long SearchID, Long ResultID, Long HashID (Hash Type)
  Return: String
  Remarks: Returns hash of the result


GetResultState
  Params: Long SearchID, Long ResultID
  Return: Long (Result State)
  Remarks: Returns file transfer state of result


DownloadResult
  Params: Long SearchID, Long ResultID
  Return: Long
  Remarks: Starts downloading result, returns DownloadID


GetResultMetaID
  Params: Long SearchID, Long ResultID
  Return: Long
  Remarks: Returns MetaID of result


GetResultAttributeValue
  Params: Long SearchID, Long ResultID, Long AttributeID
  Return: String
  Remarks: Returns attribute value of meta-data for result




RefineSearch
  Params: Long SearchID, String RefinedQuery
  Return: None
  Remarks: Filters search results with RefinedQuery, fires Refresh event


SetFiltering
  Params: Long SearchID, Bool Enabled
  Return: None
  Remarks: Sets filtering on or off, fires Refresh event


FilterSize
  Params: Long SearchID, Long Mode (Filter Type), Long Value
  Return: None
  Remarks: Filters results based on size in bytes, fires Refresh event


FilterSpeed
  Params: Long SearchID, Long Mode (Filter Type), Long Value
  Return: None
  Remarks: Filters results based on speed in kilobytes per second, fires Refresh event




GetHostIDs
  Params: Long SearchID, Long ResultID
  Return: Long Array
  Remarks: Returns array of hosts that make up the result


GetHostIP
  Params: Long SearchID, Long ResultID, Long HostID
  Return: Unsigned Long
  Remarks: Returns IP of host as 4 bytes


GetHostPort
  Params: Long SearchID, Long ResultID, Long HostID
  Return: Long
  Remarks: Returns listening port of host


GetHostSpeed
  Params: Long SearchID, Long ResultID, Long HostID
  Return: Long
  Remarks: Returns speed of host in kilobytes per second


GetHostDistance
  Params: Long SearchID, Long ResultID, Long HostID
  Return: Long
  Remarks: Returns distance of host in hops from localhost


GetHostFirewall
  Params: Long SearchID, Long ResultID, Long HostID
  Return: Bool
  Remarks: Returns if host is firewalled


GetHostStable
  Params: Long SearchID, Long ResultID, Long HostID
  Return: Bool
  Remarks: Returns if host has successfully uploaded a file


GetHostBusy
  Params: Long SearchID, Long ResultID, Long HostID
  Return: Bool
  Remarks: Returns if host has no upload slots available


GetHostVendor
  Params: Long SearchID, Long ResultID, Long HostID
  Return: String
  Remarks: Returns either client name or four character client identifier


GetHostExtended
  Params: Long SearchID, Long ResultID, Long HostID
  Return: String Array
  Remarks: Returns an array of extened info the host sent such as hash, xml data, etc..


GetHostMetaID
  Params: Long SearchID, Long ResultID, Long HostID
  Return: Long
  Remarks: Returns MetaID file on host


GetHostAttributeValue
  Params: Long SearchID, Long ResultID, Long HostID, Long AttributeID
  Return: String
  Remarks: Returns attribute value of meta-data for host




OnUpdate
  Params: Long SearchID, Long ResultID
  Return: None
  Remarks: Signals result has updated, more sources found


OnResult
  Params: Long SearchID, Long ResultID
  Return: None
  Remarks: New incomming result


OnRefresh
  Params: Long SearchID
  Return: None
  Remarks: ResultIDs have been reloaded, previous IDs are invalidated


OnProgress
  Params: Long SearchID
  Return: None
  Remarks: Triggers when more hosts have been searched


OnPaused
  Params: Long SearchID
  Return: None
  Remarks: Triggers when search has been auto-paused (too many results coming in)


OnBrowseUpdate
  Params: Long SearchID, Long State (Socket State) , Long Progress
  Return: None
  Remarks: Sends back state of browse request, and progress of file list received, value 0-100 percent complete