Everything.h 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253
  1. //
  2. // Copyright (C) 2016 David Carpenter
  3. //
  4. // Permission is hereby granted, free of charge,
  5. // to any person obtaining a copy of this software
  6. // and associated documentation files (the "Software"),
  7. // to deal in the Software without restriction,
  8. // including without limitation the rights to use,
  9. // copy, modify, merge, publish, distribute, sublicense,
  10. // and/or sell copies of the Software, and to permit
  11. // persons to whom the Software is furnished to do so,
  12. // subject to the following conditions:
  13. //
  14. // The above copyright notice and this permission notice shall be
  15. // included in all copies or substantial portions of the Software.
  16. //
  17. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  18. // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
  19. // OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  20. // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
  21. // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
  22. // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
  23. // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  24. //
  25. #ifndef _EVERYTHING_DLL_
  26. #define _EVERYTHING_DLL_
  27. #ifndef _INC_WINDOWS
  28. #include <windows.h>
  29. #endif
  30. #ifdef __cplusplus
  31. extern "C" {
  32. #endif
  33. // if not defined, version is 1.
  34. #define EVERYTHING_SDK_VERSION 2
  35. #define EVERYTHING_OK 0 // no error detected
  36. #define EVERYTHING_ERROR_MEMORY 1 // out of memory.
  37. #define EVERYTHING_ERROR_IPC 2 // Everything search client is not running
  38. #define EVERYTHING_ERROR_REGISTERCLASSEX 3 // unable to register window class.
  39. #define EVERYTHING_ERROR_CREATEWINDOW 4 // unable to create listening window
  40. #define EVERYTHING_ERROR_CREATETHREAD 5 // unable to create listening thread
  41. #define EVERYTHING_ERROR_INVALIDINDEX 6 // invalid index
  42. #define EVERYTHING_ERROR_INVALIDCALL 7 // invalid call
  43. #define EVERYTHING_ERROR_INVALIDREQUEST 8 // invalid request data, request data first.
  44. #define EVERYTHING_ERROR_INVALIDPARAMETER 9 // bad parameter.
  45. #define EVERYTHING_SORT_NAME_ASCENDING 1
  46. #define EVERYTHING_SORT_NAME_DESCENDING 2
  47. #define EVERYTHING_SORT_PATH_ASCENDING 3
  48. #define EVERYTHING_SORT_PATH_DESCENDING 4
  49. #define EVERYTHING_SORT_SIZE_ASCENDING 5
  50. #define EVERYTHING_SORT_SIZE_DESCENDING 6
  51. #define EVERYTHING_SORT_EXTENSION_ASCENDING 7
  52. #define EVERYTHING_SORT_EXTENSION_DESCENDING 8
  53. #define EVERYTHING_SORT_TYPE_NAME_ASCENDING 9
  54. #define EVERYTHING_SORT_TYPE_NAME_DESCENDING 10
  55. #define EVERYTHING_SORT_DATE_CREATED_ASCENDING 11
  56. #define EVERYTHING_SORT_DATE_CREATED_DESCENDING 12
  57. #define EVERYTHING_SORT_DATE_MODIFIED_ASCENDING 13
  58. #define EVERYTHING_SORT_DATE_MODIFIED_DESCENDING 14
  59. #define EVERYTHING_SORT_ATTRIBUTES_ASCENDING 15
  60. #define EVERYTHING_SORT_ATTRIBUTES_DESCENDING 16
  61. #define EVERYTHING_SORT_FILE_LIST_FILENAME_ASCENDING 17
  62. #define EVERYTHING_SORT_FILE_LIST_FILENAME_DESCENDING 18
  63. #define EVERYTHING_SORT_RUN_COUNT_ASCENDING 19
  64. #define EVERYTHING_SORT_RUN_COUNT_DESCENDING 20
  65. #define EVERYTHING_SORT_DATE_RECENTLY_CHANGED_ASCENDING 21
  66. #define EVERYTHING_SORT_DATE_RECENTLY_CHANGED_DESCENDING 22
  67. #define EVERYTHING_SORT_DATE_ACCESSED_ASCENDING 23
  68. #define EVERYTHING_SORT_DATE_ACCESSED_DESCENDING 24
  69. #define EVERYTHING_SORT_DATE_RUN_ASCENDING 25
  70. #define EVERYTHING_SORT_DATE_RUN_DESCENDING 26
  71. #define EVERYTHING_REQUEST_FILE_NAME 0x00000001
  72. #define EVERYTHING_REQUEST_PATH 0x00000002
  73. #define EVERYTHING_REQUEST_FULL_PATH_AND_FILE_NAME 0x00000004
  74. #define EVERYTHING_REQUEST_EXTENSION 0x00000008
  75. #define EVERYTHING_REQUEST_SIZE 0x00000010
  76. #define EVERYTHING_REQUEST_DATE_CREATED 0x00000020
  77. #define EVERYTHING_REQUEST_DATE_MODIFIED 0x00000040
  78. #define EVERYTHING_REQUEST_DATE_ACCESSED 0x00000080
  79. #define EVERYTHING_REQUEST_ATTRIBUTES 0x00000100
  80. #define EVERYTHING_REQUEST_FILE_LIST_FILE_NAME 0x00000200
  81. #define EVERYTHING_REQUEST_RUN_COUNT 0x00000400
  82. #define EVERYTHING_REQUEST_DATE_RUN 0x00000800
  83. #define EVERYTHING_REQUEST_DATE_RECENTLY_CHANGED 0x00001000
  84. #define EVERYTHING_REQUEST_HIGHLIGHTED_FILE_NAME 0x00002000
  85. #define EVERYTHING_REQUEST_HIGHLIGHTED_PATH 0x00004000
  86. #define EVERYTHING_REQUEST_HIGHLIGHTED_FULL_PATH_AND_FILE_NAME 0x00008000
  87. #define EVERYTHING_TARGET_MACHINE_X86 1
  88. #define EVERYTHING_TARGET_MACHINE_X64 2
  89. #define EVERYTHING_TARGET_MACHINE_ARM 3
  90. #ifndef EVERYTHINGAPI
  91. #define EVERYTHINGAPI __stdcall
  92. #endif
  93. #ifndef EVERYTHINGUSERAPI
  94. #define EVERYTHINGUSERAPI __declspec(dllimport)
  95. #endif
  96. // write search state
  97. EVERYTHINGUSERAPI void EVERYTHINGAPI Everything_SetSearchW(LPCWSTR lpString);
  98. EVERYTHINGUSERAPI void EVERYTHINGAPI Everything_SetSearchA(LPCSTR lpString);
  99. EVERYTHINGUSERAPI void EVERYTHINGAPI Everything_SetMatchPath(BOOL bEnable);
  100. EVERYTHINGUSERAPI void EVERYTHINGAPI Everything_SetMatchCase(BOOL bEnable);
  101. EVERYTHINGUSERAPI void EVERYTHINGAPI Everything_SetMatchWholeWord(BOOL bEnable);
  102. EVERYTHINGUSERAPI void EVERYTHINGAPI Everything_SetRegex(BOOL bEnable);
  103. EVERYTHINGUSERAPI void EVERYTHINGAPI Everything_SetMax(DWORD dwMax);
  104. EVERYTHINGUSERAPI void EVERYTHINGAPI Everything_SetOffset(DWORD dwOffset);
  105. EVERYTHINGUSERAPI void EVERYTHINGAPI Everything_SetReplyWindow(HWND hWnd);
  106. EVERYTHINGUSERAPI void EVERYTHINGAPI Everything_SetReplyID(DWORD dwId);
  107. EVERYTHINGUSERAPI void EVERYTHINGAPI Everything_SetSort(DWORD dwSort); // Everything 1.4.1
  108. EVERYTHINGUSERAPI void EVERYTHINGAPI Everything_SetRequestFlags(DWORD dwRequestFlags); // Everything 1.4.1
  109. // read search state
  110. EVERYTHINGUSERAPI BOOL EVERYTHINGAPI Everything_GetMatchPath(void);
  111. EVERYTHINGUSERAPI BOOL EVERYTHINGAPI Everything_GetMatchCase(void);
  112. EVERYTHINGUSERAPI BOOL EVERYTHINGAPI Everything_GetMatchWholeWord(void);
  113. EVERYTHINGUSERAPI BOOL EVERYTHINGAPI Everything_GetRegex(void);
  114. EVERYTHINGUSERAPI DWORD EVERYTHINGAPI Everything_GetMax(void);
  115. EVERYTHINGUSERAPI DWORD EVERYTHINGAPI Everything_GetOffset(void);
  116. EVERYTHINGUSERAPI LPCSTR EVERYTHINGAPI Everything_GetSearchA(void);
  117. EVERYTHINGUSERAPI LPCWSTR EVERYTHINGAPI Everything_GetSearchW(void);
  118. EVERYTHINGUSERAPI DWORD EVERYTHINGAPI Everything_GetLastError(void);
  119. EVERYTHINGUSERAPI HWND EVERYTHINGAPI Everything_GetReplyWindow(void);
  120. EVERYTHINGUSERAPI DWORD EVERYTHINGAPI Everything_GetReplyID(void);
  121. EVERYTHINGUSERAPI DWORD EVERYTHINGAPI Everything_GetSort(void); // Everything 1.4.1
  122. EVERYTHINGUSERAPI DWORD EVERYTHINGAPI Everything_GetRequestFlags(void); // Everything 1.4.1
  123. // execute query
  124. EVERYTHINGUSERAPI BOOL EVERYTHINGAPI Everything_QueryA(BOOL bWait);
  125. EVERYTHINGUSERAPI BOOL EVERYTHINGAPI Everything_QueryW(BOOL bWait);
  126. // query reply
  127. EVERYTHINGUSERAPI BOOL EVERYTHINGAPI Everything_IsQueryReply(UINT message,WPARAM wParam,LPARAM lParam,DWORD dwId);
  128. // write result state
  129. EVERYTHINGUSERAPI void EVERYTHINGAPI Everything_SortResultsByPath(void);
  130. // read result state
  131. EVERYTHINGUSERAPI DWORD EVERYTHINGAPI Everything_GetNumFileResults(void);
  132. EVERYTHINGUSERAPI DWORD EVERYTHINGAPI Everything_GetNumFolderResults(void);
  133. EVERYTHINGUSERAPI DWORD EVERYTHINGAPI Everything_GetNumResults(void);
  134. EVERYTHINGUSERAPI DWORD EVERYTHINGAPI Everything_GetTotFileResults(void);
  135. EVERYTHINGUSERAPI DWORD EVERYTHINGAPI Everything_GetTotFolderResults(void);
  136. EVERYTHINGUSERAPI DWORD EVERYTHINGAPI Everything_GetTotResults(void);
  137. EVERYTHINGUSERAPI BOOL EVERYTHINGAPI Everything_IsVolumeResult(DWORD dwIndex);
  138. EVERYTHINGUSERAPI BOOL EVERYTHINGAPI Everything_IsFolderResult(DWORD dwIndex);
  139. EVERYTHINGUSERAPI BOOL EVERYTHINGAPI Everything_IsFileResult(DWORD dwIndex);
  140. EVERYTHINGUSERAPI LPCWSTR EVERYTHINGAPI Everything_GetResultFileNameW(DWORD dwIndex);
  141. EVERYTHINGUSERAPI LPCSTR EVERYTHINGAPI Everything_GetResultFileNameA(DWORD dwIndex);
  142. EVERYTHINGUSERAPI LPCWSTR EVERYTHINGAPI Everything_GetResultPathW(DWORD dwIndex);
  143. EVERYTHINGUSERAPI LPCSTR EVERYTHINGAPI Everything_GetResultPathA(DWORD dwIndex);
  144. EVERYTHINGUSERAPI DWORD EVERYTHINGAPI Everything_GetResultFullPathNameA(DWORD dwIndex,LPSTR buf,DWORD bufsize);
  145. EVERYTHINGUSERAPI DWORD EVERYTHINGAPI Everything_GetResultFullPathNameW(DWORD dwIndex,LPWSTR wbuf,DWORD wbuf_size_in_wchars);
  146. EVERYTHINGUSERAPI DWORD EVERYTHINGAPI Everything_GetResultListSort(void); // Everything 1.4.1
  147. EVERYTHINGUSERAPI DWORD EVERYTHINGAPI Everything_GetResultListRequestFlags(void); // Everything 1.4.1
  148. EVERYTHINGUSERAPI LPCWSTR EVERYTHINGAPI Everything_GetResultExtensionW(DWORD dwIndex); // Everything 1.4.1
  149. EVERYTHINGUSERAPI LPCSTR EVERYTHINGAPI Everything_GetResultExtensionA(DWORD dwIndex); // Everything 1.4.1
  150. EVERYTHINGUSERAPI BOOL EVERYTHINGAPI Everything_GetResultSize(DWORD dwIndex,LARGE_INTEGER *lpSize); // Everything 1.4.1
  151. EVERYTHINGUSERAPI BOOL EVERYTHINGAPI Everything_GetResultDateCreated(DWORD dwIndex,FILETIME *lpDateCreated); // Everything 1.4.1
  152. EVERYTHINGUSERAPI BOOL EVERYTHINGAPI Everything_GetResultDateModified(DWORD dwIndex,FILETIME *lpDateModified); // Everything 1.4.1
  153. EVERYTHINGUSERAPI BOOL EVERYTHINGAPI Everything_GetResultDateAccessed(DWORD dwIndex,FILETIME *lpDateAccessed); // Everything 1.4.1
  154. EVERYTHINGUSERAPI DWORD EVERYTHINGAPI Everything_GetResultAttributes(DWORD dwIndex); // Everything 1.4.1
  155. EVERYTHINGUSERAPI LPCWSTR EVERYTHINGAPI Everything_GetResultFileListFileNameW(DWORD dwIndex); // Everything 1.4.1
  156. EVERYTHINGUSERAPI LPCSTR EVERYTHINGAPI Everything_GetResultFileListFileNameA(DWORD dwIndex); // Everything 1.4.1
  157. EVERYTHINGUSERAPI DWORD EVERYTHINGAPI Everything_GetResultRunCount(DWORD dwIndex); // Everything 1.4.1
  158. EVERYTHINGUSERAPI BOOL EVERYTHINGAPI Everything_GetResultDateRun(DWORD dwIndex,FILETIME *lpDateRun);
  159. EVERYTHINGUSERAPI BOOL EVERYTHINGAPI Everything_GetResultDateRecentlyChanged(DWORD dwIndex,FILETIME *lpDateRecentlyChanged);
  160. EVERYTHINGUSERAPI LPCWSTR EVERYTHINGAPI Everything_GetResultHighlightedFileNameW(DWORD dwIndex); // Everything 1.4.1
  161. EVERYTHINGUSERAPI LPCSTR EVERYTHINGAPI Everything_GetResultHighlightedFileNameA(DWORD dwIndex); // Everything 1.4.1
  162. EVERYTHINGUSERAPI LPCWSTR EVERYTHINGAPI Everything_GetResultHighlightedPathW(DWORD dwIndex); // Everything 1.4.1
  163. EVERYTHINGUSERAPI LPCSTR EVERYTHINGAPI Everything_GetResultHighlightedPathA(DWORD dwIndex); // Everything 1.4.1
  164. EVERYTHINGUSERAPI LPCWSTR EVERYTHINGAPI Everything_GetResultHighlightedFullPathAndFileNameW(DWORD dwIndex); // Everything 1.4.1
  165. EVERYTHINGUSERAPI LPCSTR EVERYTHINGAPI Everything_GetResultHighlightedFullPathAndFileNameA(DWORD dwIndex); // Everything 1.4.1
  166. // reset state and free any allocated memory
  167. EVERYTHINGUSERAPI void EVERYTHINGAPI Everything_Reset(void);
  168. EVERYTHINGUSERAPI void EVERYTHINGAPI Everything_CleanUp(void);
  169. EVERYTHINGUSERAPI DWORD EVERYTHINGAPI Everything_GetMajorVersion(void);
  170. EVERYTHINGUSERAPI DWORD EVERYTHINGAPI Everything_GetMinorVersion(void);
  171. EVERYTHINGUSERAPI DWORD EVERYTHINGAPI Everything_GetRevision(void);
  172. EVERYTHINGUSERAPI DWORD EVERYTHINGAPI Everything_GetBuildNumber(void);
  173. EVERYTHINGUSERAPI BOOL EVERYTHINGAPI Everything_Exit(void);
  174. UINT EVERYTHINGAPI Everything_MSIExitAndStopService(void *msihandle);
  175. UINT EVERYTHINGAPI Everything_MSIStartService(void *msihandle);
  176. EVERYTHINGUSERAPI BOOL EVERYTHINGAPI Everything_IsDBLoaded(void); // Everything 1.4.1
  177. EVERYTHINGUSERAPI BOOL EVERYTHINGAPI Everything_IsAdmin(void); // Everything 1.4.1
  178. EVERYTHINGUSERAPI BOOL EVERYTHINGAPI Everything_IsAppData(void); // Everything 1.4.1
  179. EVERYTHINGUSERAPI BOOL EVERYTHINGAPI Everything_RebuildDB(void); // Everything 1.4.1
  180. EVERYTHINGUSERAPI BOOL EVERYTHINGAPI Everything_UpdateAllFolderIndexes(void); // Everything 1.4.1
  181. EVERYTHINGUSERAPI BOOL EVERYTHINGAPI Everything_SaveDB(void); // Everything 1.4.1
  182. EVERYTHINGUSERAPI BOOL EVERYTHINGAPI Everything_SaveRunHistory(void); // Everything 1.4.1
  183. EVERYTHINGUSERAPI BOOL EVERYTHINGAPI Everything_DeleteRunHistory(void); // Everything 1.4.1
  184. EVERYTHINGUSERAPI DWORD EVERYTHINGAPI Everything_GetTargetMachine(void); // Everything 1.4.1
  185. EVERYTHINGUSERAPI BOOL EVERYTHINGAPI Everything_IsFastSort(DWORD sortType); // Everything 1.4.1.859
  186. EVERYTHINGUSERAPI BOOL EVERYTHINGAPI Everything_IsFileInfoIndexed(DWORD fileInfoType); // Everything 1.4.1.859
  187. EVERYTHINGUSERAPI DWORD EVERYTHINGAPI Everything_GetRunCountFromFileNameW(LPCWSTR lpFileName); // Everything 1.4.1
  188. EVERYTHINGUSERAPI DWORD EVERYTHINGAPI Everything_GetRunCountFromFileNameA(LPCSTR lpFileName); // Everything 1.4.1
  189. EVERYTHINGUSERAPI BOOL EVERYTHINGAPI Everything_SetRunCountFromFileNameW(LPCWSTR lpFileName,DWORD dwRunCount); // Everything 1.4.1
  190. EVERYTHINGUSERAPI BOOL EVERYTHINGAPI Everything_SetRunCountFromFileNameA(LPCSTR lpFileName,DWORD dwRunCount); // Everything 1.4.1
  191. EVERYTHINGUSERAPI DWORD EVERYTHINGAPI Everything_IncRunCountFromFileNameW(LPCWSTR lpFileName); // Everything 1.4.1
  192. EVERYTHINGUSERAPI DWORD EVERYTHINGAPI Everything_IncRunCountFromFileNameA(LPCSTR lpFileName); // Everything 1.4.1
  193. #ifdef UNICODE
  194. #define Everything_SetSearch Everything_SetSearchW
  195. #define Everything_GetSearch Everything_GetSearchW
  196. #define Everything_Query Everything_QueryW
  197. #define Everything_Query2 Everything_Query2W
  198. #define Everything_GetResultFileName Everything_GetResultFileNameW
  199. #define Everything_GetResultPath Everything_GetResultPathW
  200. #define Everything_GetResultFullPathName Everything_GetResultFullPathNameW
  201. #define Everything_GetResultExtension Everything_GetResultExtensionW
  202. #define Everything_GetResultFileListFileName Everything_GetResultFileListFileNameW
  203. #define Everything_GetResultHighlightedFileName Everything_GetResultHighlightedFileNameW
  204. #define Everything_GetResultHighlightedPath Everything_GetResultHighlightedPathW
  205. #define Everything_GetResultHighlightedFullPathAndFileName Everything_GetResultHighlightedFullPathAndFileNameW
  206. #define Everything_GetRunCountFromFileName Everything_GetRunCountFromFileNameW
  207. #define Everything_SetRunCountFromFileName Everything_SetRunCountFromFileNameW
  208. #define Everything_IncRunCountFromFileName Everything_IncRunCountFromFileNameW
  209. #else
  210. #define Everything_SetSearch Everything_SetSearchA
  211. #define Everything_GetSearch Everything_GetSearchA
  212. #define Everything_Query Everything_QueryA
  213. #define Everything_Query2 Everything_Query2A
  214. #define Everything_GetResultFileName Everything_GetResultFileNameA
  215. #define Everything_GetResultPath Everything_GetResultPathA
  216. #define Everything_GetResultFullPathName Everything_GetResultFullPathNameA
  217. #define Everything_GetResultExtension Everything_GetResultExtensionA
  218. #define Everything_GetResultFileListFileName Everything_GetResultFileListFileNameA
  219. #define Everything_GetResultHighlightedFileName Everything_GetResultHighlightedFileNameA
  220. #define Everything_GetResultHighlightedPath Everything_GetResultHighlightedPathA
  221. #define Everything_GetResultHighlightedFullPathAndFileName Everything_GetResultHighlightedFullPathAndFileNameA
  222. #define Everything_GetRunCountFromFileName Everything_GetRunCountFromFileNameA
  223. #define Everything_SetRunCountFromFileName Everything_SetRunCountFromFileNameA
  224. #define Everything_IncRunCountFromFileName Everything_IncRunCountFromFileNameA
  225. #endif
  226. #ifdef __cplusplus
  227. }
  228. #endif
  229. #endif