Everything 1.5 SDK

Discussion related to "Everything" 1.5 Alpha.
Post Reply
void
Developer
Posts: 19190
Joined: Fri Oct 16, 2009 11:31 pm

Everything 1.5 SDK

Post by void »

The Everything SDK for Everything 1.5

Download
API
Example Usage



Download

Everything-SDK-3.0.0.9.zip
GitHub



Version 3 is for Everything 1.5.
Version 2 is for Everything 1.4.
version 1 is for Everything 1.3.

Previous versions are compatible with Everything 1.5.

The Everything 1.5 SDK now uses named pipes.

The name of the pipe is:
\\.\PIPE\Everything IPC

If Everything is running in an instance, the pipe name is:
\\.\PIPE\Everything IPC (instance-name)

Everything 1.5 alpha runs in a 1.5a instance.

Pipe connections can be kept open if you wish to monitor result list changes.

Everything creates the IPC pipe server before the Everything tray window.
If you poll for the tray window and find it, you'll know the ipc pipe server is up and running.

pipe servers are recreated as soon as a client connects.
If a client tries to connect during this time, it will receive a pipe busy error.
The SDK will automatically wait if the pipe server is busy.



API
General Functions

Run History Functions

Folder Size Functions

System Replacement Functions

Property Information Functions

Set Search Functions
Everything3_CreateSearchState
Everything3_DestroySearchState
Everything3_SetSearchMatchCase
Everything3_SetSearchMatchDiacritics
Everything3_SetSearchMatchWholeWords
Everything3_SetSearchMatchPath
Everything3_SetSearchMatchPrefix
Everything3_SetSearchMatchSuffix
Everything3_SetSearchIgnorePunctuation
Everything3_SetSearchWhitespace
Everything3_SetSearchRegex
Everything3_SetSearchFoldersFirst
Everything3_SetSearchRequestTotalSize
Everything3_SetSearchHideResultOmissions
Everything3_SetSearchSortMix
Everything3_SetSearchText
Everything3_SetSearchSort
Everything3_AddSearchSort
Everything3_ClearSearchSorts
Everything3_AddSearchPropertyRequest
Everything3_AddSearchPropertyRequestFormatted
Everything3_AddSearchPropertyRequestHighlighted
Everything3_ClearSearchPropertyRequests
Everything3_SetSearchViewportOffset
Everything3_SetSearchViewportCount

Get Search Functions
Everything3_GetSearchMatchCase
Everything3_GetSearchMatchDiacritics
Everything3_GetSearchMatchWholeWords
Everything3_GetSearchMatchPath
Everything3_GetSearchMatchPrefix
Everything3_GetSearchMatchSuffix
Everything3_GetSearchIgnorePunctuation
Everything3_GetSearchWhitespace
Everything3_GetSearchRegex
Everything3_GetSearchFoldersFirst
Everything3_GetSearchRequestTotalSize
Everything3_GetSearchHideResultOmissions
Everything3_GetSearchSortMix
Everything3_GetSearchText
Everything3_GetSearchSortCount
Everything3_GetSearchSortPropertyId
Everything3_GetSearchSortAscending
Everything3_GetSearchPropertyRequestCount
Everything3_GetSearchPropertyRequestPropertyId
Everything3_GetSearchPropertyRequestHighlight
Everything3_GetSearchPropertyRequestFormat
Everything3_GetSearchViewportOffset
Everything3_GetSearchViewportCount

Search Functions

Result Functions
Everything3_GetResultListFolderCount
Everything3_GetResultListFileCount
Everything3_GetResultListCount
Everything3_GetResultListTotalSize
Everything3_GetResultListViewportOffset
Everything3_GetResultListViewportCount
Everything3_GetResultListSortCount
Everything3_GetResultListSortPropertyId
Everything3_GetResultListSortAscending
Everything3_GetResultListPropertyRequestCount
Everything3_GetResultListPropertyRequestPropertyId
Everything3_GetResultListPropertyRequestValueType
Everything3_IsFolderResult
Everything3_IsRootResult
Everything3_GetResultPropertyText
Everything3_GetResultPropertyTextFormatted
Everything3_GetResultPropertyTextHighlighted
Everything3_GetResultPropertyBYTE
Everything3_GetResultPropertyWORD
Everything3_GetResultPropertyDWORD
Everything3_GetResultPropertyUINT64
Everything3_GetResultPropertyUINT128
Everything3_GetResultPropertyDIMENSIONS
Everything3_GetResultPropertySIZE_T
Everything3_GetResultPropertyINT32
Everything3_GetResultPropertyBlob
Everything3_GetResultPropertyPropVariant
Everything3_GetResultName
Everything3_GetResultPath
Everything3_GetResultFullPathName
Everything3_GetResultSize
Everything3_GetResultExtension
Everything3_GetResultType
Everything3_GetResultDateModified
Everything3_GetResultDateCreated
Everything3_GetResultDateAccessed
Everything3_GetResultAttributes
Everything3_GetResultDateRecentlyChanged
Everything3_GetResultRunCount
Everything3_GetResultDateRun
Everything3_GetResultFilelistFilename

Journal Functions
void
Developer
Posts: 19190
Joined: Fri Oct 16, 2009 11:31 pm

Re: Everything 1.5 SDK

Post by void »

Everything3_GetLastError

The Everything3_GetLastError function retrieves the calling thread's last-error code value.

Syntax
DWORD Everything3_GetLastError(void);


Parameters
This function has no parameters


Return Value
The return value is the calling thread's last-error code value.


Remarks
Everything3_GetLastError is a wrapper for GetLastError()

Everything specific error codes:
EVERYTHING3_OK0No error detected.
EVERYTHING3_ERROR_OUT_OF_MEMORY0xE0000001Out of memory.
EVERYTHING3_ERROR_IPC_PIPE_NOT_FOUND0xE0000002IPC pipe server not found. (Everything search client is not running)
EVERYTHING3_ERROR_DISCONNECTED0xE0000003Disconnected from pipe server.
EVERYTHING3_ERROR_INVALID_PARAMETER0xE0000004Invalid parameter.
EVERYTHING3_ERROR_BAD_REQUEST0xE0000005Bad request.
EVERYTHING3_ERROR_CANCELLED0xE0000006User cancelled.
EVERYTHING3_ERROR_PROPERTY_NOT_FOUND0xE0000007Property not found.
EVERYTHING3_ERROR_SERVER0xE0000008Server error. (server out of memory)
EVERYTHING3_ERROR_INVALID_COMMAND0xE0000009Invalid command.
EVERYTHING3_ERROR_BAD_RESPONSE0xE000000ABad server response.
EVERYTHING3_ERROR_INSUFFICIENT_BUFFER0xE000000BNot enough room to store response data.
EVERYTHING3_ERROR_SHUTDOWN0xE000000CShutdown initiated by user.
EVERYTHING3_ERROR_INVALID_PROPERTY_VALUE_TYPE0xE000000DProperty value type is incorrect.



Everything3_Connect
Everything3_ConnectW
Everything3_ConnectA
Everything3_ConnectUTF8

The Everything3_Connect function connects to the Everything named pipe server for IPC.

Syntax
EVERYTHING3_CLIENT *Everything3_Connect(LPCTSTR instance_name);
EVERYTHING3_CLIENT *Everything3_ConnectW(LPCWSTR instance_name);
EVERYTHING3_CLIENT *Everything3_ConnectA(LPCSTR instance_name);
EVERYTHING3_CLIENT *Everything3_ConnectUTF8(const EVERYTHING3_UTF8 *instance_name);


Parameters
instance_name
The name of the Everything instance.
Use NULL or an empty string for the default unnamed instance.


Return Value
Returns a pointer to an Everything client.
When you are done with the Everything client, destroy the Everything client with Everything3_DestroyClient.
Returns NULL on error. To get extended error information, call Everything3_GetLastError.


Remarks
Connects to the Everything named pipe server: "\\.\PIPE\Everything IPC (instance-name)"
Connects to the Everything named pipe server: "\\.\PIPE\Everything IPC" when no instance name is supplied.
Everything will recreate pipe servers immediately.
This function will keep polling for a connection if the pipe server is busy.
Keep polling for a connection if this fails with EVERYTHING3_ERROR_IPC_PIPE_NOT_FOUND.
The Everything 1.5 alpha will use an "1.5a" instance.
The client can be accessed from any thread.


Everything3_DestroyClient

The Everything3_Connect function connects to the Everything named pipe server for IPC.

Syntax
BOOL Everything3_DestroyClient(EVERYTHING3_CLIENT *client);


Parameters
client
The Everything client handle returned from Everything3_Connect.


Return Value
Returns TRUE if the client is destroyed.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Disconnect from the Everything IPC named pipe server.
Return resources to the system.



Everything3_ShutdownClient

The Everything3_ShutdownClient function cancels all pending and active requests on the client.

Syntax
BOOL Everything3_ShutdownClient(EVERYTHING3_CLIENT *client);


Parameters
client
The Everything client handle returned from Everything3_Connect.


Return Value
Returns TRUE if the client is shutdown.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
No more searches can be issued to this client after shutting down.
Can be called from any thread.
Cancels any pending and active searches.
Active searches will fail with EVERYTHING3_ERROR_CANCELLED.
Any future searches on the client will fail with EVERYTHING3_ERROR_SHUTDOWN.



Everything3_GetIPCPipeVersion

The Everything3_GetIPCPipeVersion function retrieves the IPC pipe version from the server.

Syntax
DWORD Everything3_GetIPCPipeVersion(EVERYTHING3_CLIENT *client);


Parameters
client
The Everything client handle returned from Everything3_Connect.


Return Value
Returns 1 for version 1.
Returns 0 on error. To get extended error information, call Everything3_GetLastError.


Remarks
Only version 1 exists.



Everything3_GetMajorVersion

The Everything3_GetMajorVersion function retrieves the Everything major version.

Syntax
DWORD Everything3_GetMajorVersion(EVERYTHING3_CLIENT *client);


Parameters
client
The Everything client handle returned from Everything3_Connect.


Return Value
Returns the major version number.
Returns 0 on error. To get extended error information, call Everything3_GetLastError.


Remarks
Everything uses the following version format: major.minor.revision.build
Everything3_GetMajorVersion
Everything3_GetMinorVersion
Everything3_GetRevision
Everything3_GetBuildNumber



Everything3_GetMinorVersion

The Everything3_GetMinorVersion function retrieves the Everything major version.

Syntax
DWORD Everything3_GetMinorVersion(EVERYTHING3_CLIENT *client);


Parameters
client
The Everything client handle returned from Everything3_Connect.


Return Value
Returns the minor version number.
Returns 0 on error. To get extended error information, call Everything3_GetLastError.


Remarks
Everything uses the following version format: major.minor.revision.build
Everything3_GetMajorVersion
Everything3_GetMinorVersion
Everything3_GetRevision
Everything3_GetBuildNumber



Everything3_GetRevision

The Everything3_GetRevision function retrieves the Everything revision.

Syntax
DWORD Everything3_GetRevision(EVERYTHING3_CLIENT *client);


Parameters
client
The Everything client handle returned from Everything3_Connect.


Return Value
Returns the revision number.
Returns 0 on error. To get extended error information, call Everything3_GetLastError.


Remarks
Everything uses the following version format: major.minor.revision.build
Everything3_GetMajorVersion
Everything3_GetMinorVersion
Everything3_GetRevision
Everything3_GetBuildNumber



Everything3_GetBuildNumber

The Everything3_GetBuildNumber function retrieves the Everything build number.

Syntax
DWORD Everything3_GetBuildNumber(EVERYTHING3_CLIENT *client);


Parameters
client
The Everything client handle returned from Everything3_Connect.


Return Value
Returns the build number.
Returns 0 on error. To get extended error information, call Everything3_GetLastError.


Remarks
Everything uses the following version format: major.minor.revision.build
Everything3_GetMajorVersion
Everything3_GetMinorVersion
Everything3_GetRevision
Everything3_GetBuildNumber



Everything3_GetTargetMachine

The Everything3_GetTargetMachine function retrieves the Everything target machine.

Syntax
DWORD Everything3_GetTargetMachine(EVERYTHING3_CLIENT *client);


Parameters
client
The Everything client handle returned from Everything3_Connect.


Return Value
Returns the target machine value.
Can be one of the following values:
EVERYTHING3_TARGET_MACHINE_UNKNOWN0Unknown or error.
EVERYTHING3_TARGET_MACHINE_X861x86
EVERYTHING3_TARGET_MACHINE_X642x64
EVERYTHING3_TARGET_MACHINE_ARM3ARM
EVERYTHING3_TARGET_MACHINE_ARM644ARM64
Returns EVERYTHING3_TARGET_MACHINE_UNKNOWN (0) on error. To get extended error information, call Everything3_GetLastError.


Remarks
Everything uses the following version format: major.minor.revision.build
Everything3_GetMajorVersion
Everything3_GetMinorVersion
Everything3_GetRevision
Everything3_GetBuildNumber



Everything3_IsDBLoaded

The Everything3_IsDBLoaded function checks if the Everything database has been loaded.

Syntax
BOOL Everything3_IsDBLoaded(EVERYTHING3_CLIENT *client);


Parameters
client
The Everything client handle returned from Everything3_Connect.


Return Value
Returns TRUE if the database is loaded.
Returns FALSE on error or if the database is not loaded. To get extended error information, call Everything3_GetLastError.


Remarks
Issuing a search will wait for the database to load.



Everything3_GetRunCountFromFilename
Everything3_GetRunCountFromFilenameW
Everything3_GetRunCountFromFilenameA
Everything3_GetRunCountFromFilenameUTF8

The Everything3_IsDBLoaded function retrieves the run count for the specified file/folder by filename.

Syntax
DWORD Everything3_GetRunCountFromFilename(EVERYTHING3_CLIENT *client,LPCTSTR lpFilename);
DWORD Everything3_GetRunCountFromFilenameW(EVERYTHING3_CLIENT *client,LPCWSTR lpFilename);
DWORD Everything3_GetRunCountFromFilenameA(EVERYTHING3_CLIENT *client,LPCSTR lpFilename);
DWORD Everything3_GetRunCountFromFilenameUTF8(EVERYTHING3_CLIENT *client,const EVERYTHING3_UTF8 *lpFilename);


Parameters
client
The Everything client handle returned from Everything3_Connect.

lpFilename
The full path and name of the file or folder.


Return Value
Returns the run count.
Returns 0 on error. To get extended error information, call Everything3_GetLastError.


Remarks
Everything will increment the run count value when opening a result from Everything.
A case sensensitve search is performed first.
If no file or folder is found a case insensentive search is performed.



Everything3_SetRunCountFromFilename
Everything3_SetRunCountFromFilenameW
Everything3_SetRunCountFromFilenameA
Everything3_SetRunCountFromFilenameUTF8

The Everything3_SetRunCountFromFilename function sets the run count for the specified file/folder by filename.

Syntax
BOOL Everything3_SetRunCountFromFilename(EVERYTHING3_CLIENT *client,LPCTSTR lpFilename,DWORD dwRunCount);
BOOL Everything3_SetRunCountFromFilenameW(EVERYTHING3_CLIENT *client,LPCWSTR lpFilename,DWORD dwRunCount);
BOOL Everything3_SetRunCountFromFilenameA(EVERYTHING3_CLIENT *client,LPCSTR lpFilename,DWORD dwRunCount);
BOOL Everything3_SetRunCountFromFilenameUTF8(EVERYTHING3_CLIENT *client,const EVERYTHING3_UTF8 *lpFilename,DWORD dwRunCount);


Parameters
client
The Everything client handle returned from Everything3_Connect.

lpFilename
The full path and name of the file or folder.

dwRunCount
The new run count value.
A value of 0 will delete the run history for this item.


Return Value
Returns TRUE if the run count is set successfully.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Everything will increment the run count value when opening a result from Everything.
A case sensensitve search is performed first.
If no file or folder is found a case insensentive search is performed.



Everything3_IncRunCountFromFilename
Everything3_IncRunCountFromFilenameW
Everything3_IncRunCountFromFilenameA
Everything3_IncRunCountFromFilenameUTF8

The Everything3_IncRunCountFromFilename function increments the run count by one for the specified file/folder by filename.

Syntax
DWORD Everything3_IncRunCountFromFilename(EVERYTHING3_CLIENT *client,LPCTSTR lpFilename);
DWORD Everything3_IncRunCountFromFilenameW(EVERYTHING3_CLIENT *client,LPCWSTR lpFilename);
DWORD Everything3_IncRunCountFromFilenameA(EVERYTHING3_CLIENT *client,LPCSTR lpFilename);
DWORD Everything3_IncRunCountFromFilenameUTF8(EVERYTHING3_CLIENT *client,const EVERYTHING3_UTF8 *lpFilename);


Parameters
client
The Everything client handle returned from Everything3_Connect.

lpFilename
The full path and name of the file or folder.


Return Value
Returns the new run count if the increment is successfully.
Returns 0 on error. To get extended error information, call Everything3_GetLastError.


Remarks
Everything will increment the run count value when opening a result from Everything.
A case sensensitve search is performed first.
If no file or folder is found a case insensentive search is performed.



Everything3_GetFolderSizeFromFilename
Everything3_GetFolderSizeFromFilenameW
Everything3_GetFolderSizeFromFilenameA
Everything3_GetFolderSizeFromFilenameUTF8

The Everything3_GetFolderSizeFromFilename function retrieves the indexed folder size.

Syntax
EVERYTHING3_UINT64 Everything3_GetFolderSizeFromFilename(EVERYTHING3_CLIENT *client,LPCTSTR lpFilename);
EVERYTHING3_UINT64 Everything3_GetFolderSizeFromFilenameW(EVERYTHING3_CLIENT *client,LPCWSTR lpFilename);
EVERYTHING3_UINT64 Everything3_GetFolderSizeFromFilenameA(EVERYTHING3_CLIENT *client,LPCSTR lpFilename);
EVERYTHING3_UINT64 Everything3_GetFolderSizeFromFilenameUTF8(EVERYTHING3_CLIENT *client,const EVERYTHING3_UTF8 *lpFilename);


Parameters
client
The Everything client handle returned from Everything3_Connect.

lpFilename
The full path and name of the folder.


Return Value
Returns the folder size in bytes.
Returns EVERYTHING3_UINT64_MAX if unknown. (folder size indexing is disabled)
Returns EVERYTHING3_UINT64_MAX on error. To get extended error information, call Everything3_GetLastError.


Remarks
Everything 1.5 will index folder sizes by default.
This can be disabled under Tools -> Options -> Indexes -> Index folder sizes.
A case sensensitve search is performed first.
If no folder is found a case insensentive search is performed.



Everything3_GetFileAttributesEx
Everything3_GetFileAttributesExW
Everything3_GetFileAttributesExA

The Everything3_GetFileAttributesEx function emulates the win32 GetFileAttributesEx function.

Syntax
BOOL Everything3_GetFileAttributesEx(EVERYTHING3_CLIENT *client,LPCTSTR lpFilename,WIN32_FIND_DATA *out_pfd);
BOOL Everything3_GetFileAttributesExW(EVERYTHING3_CLIENT *client,LPCWSTR lpFilename,WIN32_FIND_DATAW *out_pfd);
BOOL Everything3_GetFileAttributesExA(EVERYTHING3_CLIENT *client,LPCSTR lpFilename,WIN32_FIND_DATAA *out_pfd);


Parameters
client
The Everything client handle returned from Everything3_Connect.

lpFilename
The full path and name of the file or folder.

out_pfd
A find data buffer to store file attributes.


Return Value
Returns TRUE if the file or folder is found and find data information is stored in the out_pfd successfully.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
A case sensensitve search is performed first.
If no folder is found a case insensentive search is performed.



Everything3_GetFileAttributes
Everything3_GetFileAttributesW
Everything3_GetFileAttributesA
Everything3_GetFileAttributesUTF8

The Everything3_GetFileAttributes function emulates the win32 GetFileAttributes function.

Syntax
DWORD Everything3_GetFileAttributes(EVERYTHING3_CLIENT *client,LPCTSTR lpFilename);
DWORD Everything3_GetFileAttributesW(EVERYTHING3_CLIENT *client,LPWCSTR lpFilename);
DWORD Everything3_GetFileAttributesA(EVERYTHING3_CLIENT *client,LPCSTR lpFilename);
DWORD Everything3_GetFileAttributesUTF8(EVERYTHING3_CLIENT *client,const EVERYTHING3_UTF8 *lpFilename);


Parameters
client
The Everything client handle returned from Everything3_Connect.

lpFilename
The full path and name of the file or folder.


Return Value
Returns the Windows file attributes if the file or folder is found.
Returns INVALID_FILE_ATTRIBUTES on error. To get extended error information, call Everything3_GetLastError.


Remarks
A case sensensitve search is performed first.
If no folder is found a case insensentive search is performed.


Everything3_FindFirstFile
Everything3_FindFirstFileW
Everything3_FindFirstFileA

The Everything3_FindFirstFile function emulates the win32 FindFirstFile function.

Syntax
EVERYTHING3_FIND_HANDLE *Everything3_FindFirstFileW(EVERYTHING3_CLIENT *client,LPCTSTR *lpFilename,WIN32_FIND_DATA *out_pfd);
EVERYTHING3_FIND_HANDLE *Everything3_FindFirstFileW(EVERYTHING3_CLIENT *client,LPCWSTR *lpFilename,WIN32_FIND_DATAW *out_pfd);
EVERYTHING3_FIND_HANDLE *Everything3_FindFirstFileA(EVERYTHING3_CLIENT *client,LPCSTR *lpFilename,WIN32_FIND_DATAA *out_pfd);


Parameters
client
The Everything client handle returned from Everything3_Connect.

lpFilename
The filename filter.

out_pfd
A buffer to store the find data.


Return Value
Returns a find handle.
Returns NULL on error. To get extended error information, call Everything3_GetLastError.


Remarks
A case insensensitve search is performed.
Wildcards are supported. * = match any character any number of times. ? = match a single character.
Returns NULL on error instead of INVALID_HANDLE_VALUE.
Returns a snapshot of the filename search from a specific location.
Call Everything3_FindClose to free the snapshot.
Only indexed values are returned.
dwFileAttributes is zero or FILE_ATTRIBUTE_DIRECTORY if not indexed.
The FILE_ATTRIBUTE_DIRECTORY bit in dwFileAttributes is always valid.
ftCreationTime is -1 if not indexed.
ftLastAccessTime is -1 if not indexed.
ftLastWriteTime is -1 if not indexed.
nFileSizeHigh is -1 if not indexed.
nFileSizeLow is -1 if not indexed.
dwReserved0 is always zero
dwReserved1 is always zero
cAlternateFileName is always empty.
The returned EVERYTHING3_FIND_HANDLE should only be used in the same thread. -Doesn't have to be the same thread that called Everything3_FindFirstFile.



Everything3_FindNextFile
Everything3_FindNextFileW
Everything3_FindNextFileA

The Everything3_FindNextFile function emulates the win32 FindNextFile function.

Syntax
BOOL Everything3_FindNextFile(EVERYTHING3_FIND_HANDLE *find_handle,WIN32_FIND_DATA *out_pfd);
BOOL Everything3_FindNextFileW(EVERYTHING3_FIND_HANDLE *find_handle,WIN32_FIND_DATAW *out_pfd);
BOOL Everything3_FindNextFileA(EVERYTHING3_FIND_HANDLE *find_handle,WIN32_FIND_DATAA *out_pfd);


Parameters
find_handle
The find handle returned from Everything3_FindFirstFile.

out_pfd
A buffer to store the find data.


Return Value
Returns TRUE if information for another file was successfully retrieved.
Returns FALSE when there is no more files or folders or an error occurs. To get extended error information, call Everything3_GetLastError.


Remarks
Like FindNextFile, find the next file in the directory snapshot.



Everything3_FindClose

The Everything3_FindClose function emulates the win32 FindClose function.

Syntax
BOOL Everything3_FindClose(EVERYTHING3_FIND_HANDLE *find_handle);


Parameters
find_handle
The find handle returned from Everything3_FindFirstFile.


Return Value
Returns TRUE if the find handle is successfully closed.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Close the find handle, releasing any memory back to the system.



Everything3_FindProperty

The Everything3_FindProperty retrives the property ID from a property name.

Syntax
DWORD Everything3_FindProperty(EVERYTHING3_CLIENT *client,LPCTSTR canonical_name);
DWORD Everything3_FindPropertyW(EVERYTHING3_CLIENT *client,LPCWSTR canonical_name);
DWORD Everything3_FindPropertyA(EVERYTHING3_CLIENT *client,LPCSTR canonical_name);
DWORD Everything3_FindPropertyUTF8(EVERYTHING3_CLIENT *client,const EVERYTHING3_UTF8 *canonical_name);


Parameters
client
The Everything client handle returned from Everything3_Connect.

canonical_name
The property canonical name.


Return Value
Returns the property ID.
Returns EVERYTHING3_INVALID_PROPERTY_ID on error. To get extended error information, call Everything3_GetLastError.


Remarks
Find a property by canonical name first.
If no property is found, tries a localized name lookup.
If no property is found, tries a English (US) name lookup.
Can find Windows Property System properties. (for example: System.Size)
Windows Property System Property IDs will change between sessions.
The search is case insensitive.
The built-in EVERYTHING3_PROPERTY_ID_* IDs will not change value.



Everything3_GetPropertyName
Everything3_GetPropertyNameW
Everything3_GetPropertyNameA
Everything3_GetPropertyNameUTF8

The Everything3_GetPropertyName function retrives the localized name of the property.

Syntax
SIZE_T Everything3_GetPropertyName(EVERYTHING3_CLIENT *client,DWORD property_id,LPTSTR out_buf,SIZE_T bufsize);
SIZE_T Everything3_GetPropertyNameW(EVERYTHING3_CLIENT *client,DWORD property_id,LPWSTR out_buf,SIZE_T bufsize);
SIZE_T Everything3_GetPropertyNameA(EVERYTHING3_CLIENT *client,DWORD property_id,LPSTR out_buf,SIZE_T bufsize);
SIZE_T Everything3_GetPropertyNameUTF8(EVERYTHING3_CLIENT *client,DWORD property_id,EVERYTHING3_UTF8 *out_buf,SIZE_T bufsize);


Parameters
client
The Everything client handle returned from Everything3_Connect.

property_id
The Property ID.

out_buf
Buffer to hold the property name.

bufsize
Size of the buffer in characters.


Return Value
If bufsize is 0, the required size in characters including the NULL terminator is returned.
Returns the length of the buffer in characters. Excluding the NULL terminator.
Returns 0 on error. To get extended error information, call Everything3_GetLastError.


Remarks
The buffer is always NULL terminated.
The buffer is set to an empty string on error.
The output can be truncated.
If the output is truncated, the returned length will be equal to bufsize - 1.
If the returned length is < bufsize - 1, no truncation occurred.
Use a built-in EVERYTHING3_PROPERTY_ID_* ID or find a property with Everything3_FindProperty.
Everything3_GetPropertyName can be used to enumerate all properties.



Everything3_GetPropertyCanonicalName
Everything3_GetPropertyCanonicalNameW
Everything3_GetPropertyCanonicalNameA
Everything3_GetPropertyCanonicalNameUTF8

The Everything3_GetPropertyCanonicalName function retrives the canonical name of the property.

Syntax
SIZE_T Everything3_GetPropertyCanonicalName(EVERYTHING3_CLIENT *client,DWORD property_id,LPTSTR out_buf,SIZE_T bufsize);
SIZE_T Everything3_GetPropertyCanonicalNameW(EVERYTHING3_CLIENT *client,DWORD property_id,LPWSTR out_buf,SIZE_T bufsize);
SIZE_T Everything3_GetPropertyCanonicalNameA(EVERYTHING3_CLIENT *client,DWORD property_id,LPSTR out_buf,SIZE_T bufsize);
SIZE_T Everything3_GetPropertyCanonicalNameUTF8(EVERYTHING3_CLIENT *client,DWORD property_id,EVERYTHING3_UTF8 *out_buf,SIZE_T bufsize);


Parameters
client
The Everything client handle returned from Everything3_Connect.

property_id
The Property ID.

out_buf
Buffer to hold the property canonical name.

bufsize
Size of the buffer in characters.


Return Value
If bufsize is 0, the required size in characters including the NULL terminator is returned.
Returns the length of the buffer in characters. Excluding the NULL terminator.
Returns 0 on error. To get extended error information, call Everything3_GetLastError.


Remarks
The buffer is always NULL terminated.
The buffer is set to an empty string on error.
The output can be truncated.
If the output is truncated, the returned length will be equal to bufsize - 1.
If the returned length is < bufsize - 1, no truncation occurred.
Use a built-in EVERYTHING3_PROPERTY_ID_* ID or find a property with Everything3_FindProperty.



Everything3_GetPropertyType

The Everything3_GetPropertyType function retrives the property type.

Syntax
DWORD Everything3_GetPropertyType(EVERYTHING3_CLIENT *client,DWORD property_id);


Parameters
client
The Everything client handle returned from Everything3_Connect.

property_id
The Property ID.


Return Value
Returns the property type.
Can be one of the following values:
EVERYTHING3_PROPERTY_TYPE_NONE0Unknown or error.
EVERYTHING3_PROPERTY_TYPE_METADATA1Property value gathered from file header.
EVERYTHING3_PROPERTY_TYPE_FILE2Property value gathered from file system.
EVERYTHING3_PROPERTY_TYPE_INDEX3Property value gathered from the Everything index.
EVERYTHING3_PROPERTY_TYPE_CONTENT4Property value gathered from file content.
EVERYTHING3_PROPERTY_TYPE_VOLUME5Property value gathered from volume information.
EVERYTHING3_PROPERTY_TYPE_SEARCH6Property value gathered at search time.
EVERYTHING3_PROPERTY_TYPE_PROPERTY_SYSTEM7Property value gathered from the Windows Property System.
Returns EVERYTHING3_PROPERTY_TYPE_NONE (0) on error. To get extended error information, call Everything3_GetLastError.


Remarks
Indexing the property in Everything will not change the return value of this function.
Use Everything3_IsPropertyIndexed to determine if a property is indexed.
Use a built-in EVERYTHING3_PROPERTY_ID_* ID or find a property with Everything3_FindProperty.



Everything3_IsPropertyIndexed

The Everything3_IsPropertyIndexed function checks if the specified property is indexed.

Syntax
BOOL Everything3_IsPropertyIndexed(EVERYTHING3_CLIENT *client,DWORD property_id);


Parameters
client
The Everything client handle returned from Everything3_Connect.

property_id
The Property ID.


Return Value
Returns TRUE if the property is indexed in Everything. Otherwise, returns FALSE.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Searching will be instant if the property is indexed.
Retrieving the property value will be instant if the property is indexed.
Everything3_Search will take a long time to retrieve unindexed property values.
Use a built-in EVERYTHING3_PROPERTY_ID_* ID or find a property with Everything3_FindProperty.



Everything3_IsPropertyFastSort

The Everything3_IsPropertyIndexed function checks if the specified property is fast sorted.

Syntax
BOOL Everything3_IsPropertyFastSort(EVERYTHING3_CLIENT *client,DWORD property_id);


Parameters
client
The Everything client handle returned from Everything3_Connect.

property_id
The Property ID.


Return Value
Returns TRUE if the property is fast sorted in Everything. Otherwise, returns FALSE.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Sorting will be instant if the property is fast sorted.
Everything3_Search will take a long time if sorting by a property that is not fast sorted.
Use a built-in EVERYTHING3_PROPERTY_ID_* ID or find a property with Everything3_FindProperty.



Everything3_IsPropertyRightAligned

The Everything3_IsPropertyRightAligned function checks if the specified property should be right aligned.

Syntax
BOOL Everything3_IsPropertyRightAligned(EVERYTHING3_CLIENT *client,EVERYTHING3_DWORD property_id);


Parameters
client
The Everything client handle returned from Everything3_Connect.

property_id
The Property ID.


Return Value
Returns TRUE if the property should be right aligned. Otherwise, returns FALSE.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Use a built-in EVERYTHING3_PROPERTY_ID_* ID or find a property with Everything3_FindProperty.



Everything3_IsPropertySortDescending

The Everything3_IsPropertySortDescending function checks if the specified property should be sorted in descending order first.

Syntax
BOOL Everything3_IsPropertySortDescending(EVERYTHING3_CLIENT *client,EVERYTHING3_DWORD property_id);


Parameters
client
The Everything client handle returned from Everything3_Connect.

property_id
The Property ID.


Return Value
Returns TRUE if the property should be sorted in descending order first. Otherwise, returns FALSE.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Use a built-in EVERYTHING3_PROPERTY_ID_* ID or find a property with Everything3_FindProperty.



Everything3_GetPropertyDefaultWidth

The Everything3_GetPropertyDefaultWidth function retrieves the default column width of the property.

Syntax
DWORD Everything3_GetPropertyDefaultWidth(EVERYTHING3_CLIENT *client,EVERYTHING3_DWORD property_id);


Parameters
client
The Everything client handle returned from Everything3_Connect.

property_id
The Property ID.


Return Value
Returns the column width of the property in logical pixels.
Returns 0 on error. To get extended error information, call Everything3_GetLastError.


Remarks
Use a built-in EVERYTHING3_PROPERTY_ID_* ID or find a property with Everything3_FindProperty.



Everything3_CreateSearchState

The Everything3_CreateSearchState function creates a new search state.

Syntax
EVERYTHING3_SEARCH_STATE *Everything3_CreateSearchState(void);


Parameters
This function has no parameters


Return Value
Returns a pointer to a new search state.
Returns NULL on error. To get extended error information, call Everything3_GetLastError.


Remarks
Call Everything3_DestroySearchState to destroy a search state created with Everything3_CreateSearchState.
Setup the search state with the various Everything3_SetSearch* functions.
Call Everything3_Search to execute a search with the specified search state.
The search state is initialized to the default search state. All search options are disabled and the search text is empty.
The search state can be accessed from any thread.



Everything3_DestroySearchState

The Everything3_DestroySearchState function destroys a search state created with Everything3_CreateSearchState.

Syntax
BOOL Everything3_DestroySearchState(EVERYTHING3_SEARCH_STATE *search_state);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.


Return Value
Returns TRUE if the search state is successfully destroyed.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Returns resources back to the system.
The search_state cannot be used after it is destroyed.



Everything3_SetSearchMatchCase

The Everything3_SetSearchMatchCase function sets the match case search option.

Syntax
BOOL Everything3_SetSearchMatchCase(EVERYTHING3_SEARCH_STATE *search_state,BOOL match_case);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.

match_case
Enable or disable case matching.


Return Value
Returns TRUE if the search state was set successfully.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
A case insensitive search is used if match case is disabled.
Match case is disabled by default.



Everything3_SetSearchMatchDiacritics

The Everything3_SetSearchMatchDiacritics function sets the match diacritics search option.

Syntax
BOOL Everything3_SetSearchMatchDiacritics(EVERYTHING3_SEARCH_STATE *search_state,BOOL match_diacritics);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.

match_diacritics
Enable or disable diacritic matching.


Return Value
Returns TRUE if the search state was set successfully.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Diacritics (accent marks) are ignored if match diacritics is disabled.
Combining characters are ignored if match diacritics is disabled.
Match diacritics is disabled by default.



Everything3_SetSearchMatchWholeWords

The Everything3_SetSearchMatchWholeWords function sets the match whole words search option.

Syntax
BOOL Everything3_SetSearchMatchWholeWords(EVERYTHING3_SEARCH_STATE *search_state,BOOL match_whole_words);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.

match_whole_words
Enable or disable whole word matching.


Return Value
Returns TRUE if the search state was set successfully.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Match words anywhere if match whole words is disabled.
Match whole words is disabled by default.



Everything3_SetSearchMatchPath

The Everything3_SetSearchMatchPath function sets the match path and name search option.

Syntax
BOOL Everything3_SetSearchMatchPath(EVERYTHING3_SEARCH_STATE *search_state,BOOL match_path);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.

match_path
Enable or disable full path and name matching.


Return Value
Returns TRUE if the search state was set successfully.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Match the name part only if match path is disabled.
Match path is disabled by default.



Everything3_SetSearchMatchPrefix

The Everything3_SetSearchMatchPrefix function sets the match prefix option.

Syntax
BOOL Everything3_SetSearchMatchPrefix(EVERYTHING3_SEARCH_STATE *search_state,BOOL match_prefix);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.

match_prefix
Enable or disable prefix matching.


Return Value
Returns TRUE if the search state was set successfully.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Match the start of words only.
The search can match anywhere in the filename if disabled.
Enabling both match prefix and match suffix is the same as enabling match whole words.
Match prefix is disabled by default.



Everything3_SetSearchMatchSuffix

The Everything3_SetSearchMatchSuffix function sets the match suffix option.

Syntax
BOOL Everything3_SetSearchMatchSuffix(EVERYTHING3_SEARCH_STATE *search_state,BOOL match_suffix);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.

match_suffix
Enable or disable suffix matching.


Return Value
Returns TRUE if the search state was set successfully.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Match the end of words only.
The search can match anywhere in the filename if disabled.
Enabling both match prefix and match suffix is the same as enabling match whole words.
Match suffix is disabled by default.



Everything3_SetSearchIgnorePunctuation

The Everything3_SetSearchIgnorePunctuation function sets the ignore punctuation option.

Syntax
BOOL Everything3_SetSearchIgnorePunctuation(EVERYTHING3_SEARCH_STATE *search_state,BOOL ignore_punctuation);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.

ignore_punctuation
Enable or disable ignoring punctuation in filenames.


Return Value
Returns TRUE if the search state was set successfully.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Ignores punctuation in filenames when enabled.
Punctuation in the search is always matched.
Ignore punctuation is disabled by default.



Everything3_SetSearchWhitespace

The Everything3_SetSearchWhitespace function sets the ignore whitespace option.

Syntax
BOOL Everything3_SetSearchWhitespace(EVERYTHING3_SEARCH_STATE *search_state,BOOL ignore_whitespace);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.

ignore_whitespace
Enable or disable ignoring whitespaces in filenames.


Return Value
Returns TRUE if the search state was set successfully.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Ignores whitespaces in filenames when enabled.
Literal whitespaces in the search are always matched.
Ignore whitespace is disabled by default.



Everything3_SetSearchRegex

The Everything3_SetSearchRegex function sets the match regex option.

Syntax
BOOL Everything3_SetSearchRegex(EVERYTHING3_SEARCH_STATE *search_state,BOOL match_regex);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.

match_regex
Enable or disable Perl Compatible Regular Expressions (PCRE).


Return Value
Returns TRUE if the search state was set successfully.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Use Everything search syntax when disabled.
Enabling forces the whole search to be treated as a literal PCRE pattern.
Match regex is disabled by default.



Everything3_SetSearchFoldersFirst

The Everything3_SetSearchFoldersFirst function sets the ignore whitespace option.

Syntax
BOOL Everything3_SetSearchFoldersFirst(EVERYTHING3_SEARCH_STATE *search_state,DWORD folders_first_type);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.

folders_first_type
The desired folders first type.
Can be one of the following values:
EVERYTHING3_SEARCH_FOLDERS_FIRST_ASCENDING0Folders first when sort ascending.
EVERYTHING3_SEARCH_FOLDERS_FIRST_ALWAYS1Folders first.
EVERYTHING3_SEARCH_FOLDERS_FIRST_NEVER2Folders last.
EVERYTHING3_SEARCH_FOLDERS_FIRST_DESCENDING3Folders first when sort descending.


Return Value
Returns TRUE if the search state was set successfully.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Folders are shown first when sort ascending by default.



Everything3_SetSearchRequestTotalSize

The Everything3_SetSearchRequestTotalSize function sets the total size request.

Syntax
BOOL Everything3_SetSearchRequestTotalSize(EVERYTHING3_SEARCH_STATE *search_state,BOOL request_total_size);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.

request_total_size
Enable or disable the total size request.
Enabling will make Everything3_Search calculate and return the total size.


Return Value
Returns TRUE if the search state was set successfully.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Call Everything3_GetResultListTotalSize to get the total size.
Total size request is disabled by default.



Everything3_SetSearchHideResultOmissions

The Everything3_SetSearchHideResultOmissions function sets the hide result omissions option.

Syntax
BOOL Everything3_SetSearchHideResultOmissions(EVERYTHING3_SEARCH_STATE *search_state,BOOL hide_result_omissions);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.

hide_result_omissions
Enable or disable hide result omissions.
Enabling will hide result omissions.
Disabling will show result omissions.


Return Value
Returns TRUE if the search state was set successfully.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Hide result omissions is disabled by default. (result omissions are shown by default)



Everything3_SetSearchSortMix

The Everything3_SetSearchSortMix function sets the mix files and folders option.

Syntax
BOOL Everything3_SetSearchSortMix(EVERYTHING3_SEARCH_STATE *search_state,BOOL sort_mix);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.

sort_mix
Enable or disable mix files and folders.
Enable to mix files and folders together.
Disable to separate file and folder results.


Return Value
Returns TRUE if the search state was set successfully.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Mix files and folders is disabled by default.
Mix files and folders will only work for fast sorts.



Everything3_SetSearchText
Everything3_SetSearchTextW
Everything3_SetSearchTextA
Everything3_SetSearchTextUTF8

The Everything3_SetSearchText function sets the search text.

Syntax
BOOL Everything3_SetSearchText(EVERYTHING3_SEARCH_STATE *search_state,LPCTSTR search);
BOOL Everything3_SetSearchTextW(EVERYTHING3_SEARCH_STATE *search_state,LPCWSTR search);
BOOL Everything3_SetSearchTextA(EVERYTHING3_SEARCH_STATE *search_state,LPCSTR search);
BOOL Everything3_SetSearchTextUTF8(EVERYTHING3_SEARCH_STATE *search_state,const EVERYTHING3_UTF8 *search);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.

search
The search text.


Return Value
Returns TRUE if the search text was set successfully.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Use the Everything search syntax.
The default search is empty text.
Empty text will match all files and folders.




Everything3_SetSearchSort

The Everything3_SetSearchSort function set the sort list to a single sort.

Syntax
BOOL Everything3_SetSearchSort(EVERYTHING3_SEARCH_STATE *search_state,DWORD property_id,BOOL ascending);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.

property_id
The property ID.

ascending
Set to TRUE to sort in ascending order. Set to FALSE to sort in descending order.


Return Value
Returns TRUE if the sort was set successfully.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Use a built-in EVERYTHING3_PROPERTY_ID_* ID or find a property with Everything3_FindProperty.
Clears the existing sort list and adds the primary sort.
Call Everything3_ClearSearchSorts to clear the sort list.
Call Everything3_AddSearchSort to add secondary and tertiary sorts.
The sort list is empty by default.
When the sort list is empty the results will be sorted by name ascending.



Everything3_AddSearchSort

The Everything3_AddSearchSort function adds a sort.

Syntax
BOOL Everything3_AddSearchSort(EVERYTHING3_SEARCH_STATE *search_state,DWORD property_id,BOOL ascending);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.

property_id
The property ID.

ascending
Set to TRUE to sort in ascending order. Set to FALSE to sort in descending order.


Return Value
Returns TRUE if the sort was added successfully.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Use a built-in EVERYTHING3_PROPERTY_ID_* ID or find a property with Everything3_FindProperty.
Adds a sort to the existing sort list.
Call Everything3_ClearSearchSorts to clear the sort list.
The sort list is empty by default.
When the sort list is empty the results will be sorted by name ascending.
Everything has a hard limit of 3 sort properties. More can be requested, but they might not be used.
Use sort: in your search text to specify up to 8 sort properties.
sort: in the search text will override this requested sort.



Everything3_ClearSearchSorts

The Everything3_ClearSearchSorts function clears the sort list.

Syntax
BOOL Everything3_ClearSearchSorts(EVERYTHING3_SEARCH_STATE *search_state);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.


Return Value
Returns TRUE if the sort list was cleared successfully.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Call Everything3_AddSearchSort to add a sort to the list.
The sort list is empty by default.
When the sort list is empty the results will be sorted by name ascending.



Everything3_AddSearchPropertyRequest

The Everything3_AddSearchPropertyRequest function adds a property to the property request list.

Syntax
BOOL Everything3_AddSearchPropertyRequest(EVERYTHING3_SEARCH_STATE *search_state,DWORD property_id);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.

property_id
The property ID.


Return Value
Returns TRUE if the property was successfully added to the property request list.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Use a built-in EVERYTHING3_PROPERTY_ID_* ID or find a property with Everything3_FindProperty.
Call Everything3_ClearSearchPropertyRequests to clear the property request list.
The property request list is empty by default.
When the property request list is empty the results will have the the EVERYTHING3_PROPERTY_ID_PATH_AND_NAME property.
The result property value will be the raw property value.
Use Everything3_AddSearchPropertyRequestFormatted or Everything3_AddSearchPropertyRequestHighlighted to format or to format and highlight.



Everything3_AddSearchPropertyRequestFormatted

The Everything3_AddSearchPropertyRequestFormatted function adds a property with formatting to the property request list.

Syntax
BOOL Everything3_AddSearchPropertyRequestFormatted(EVERYTHING3_SEARCH_STATE *search_state,DWORD property_id);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.

property_id
The property ID.


Return Value
Returns TRUE if the property was successfully added to the property request list.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Use a built-in EVERYTHING3_PROPERTY_ID_* ID or find a property with Everything3_FindProperty.
Call Everything3_ClearSearchPropertyRequests to clear the property request list.
The property request list is empty by default.
When the property request list is empty the results will have the the EVERYTHING3_PROPERTY_ID_PATH_AND_NAME property.
Like Everything3_AddSearchPropertyRequest, except instead of the result having the raw property value, the value will be formatted text.



Everything3_AddSearchPropertyRequestHighlighted

The Everything3_AddSearchPropertyRequestHighlighted function adds a property with formatting and highlighting to the property request list.

Syntax
BOOL Everything3_AddSearchPropertyRequestHighlighted(EVERYTHING3_SEARCH_STATE *search_state,DWORD property_id);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.

property_id
The property ID.


Return Value
Returns TRUE if the property was successfully added to the property request list.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Use a built-in EVERYTHING3_PROPERTY_ID_* ID or find a property with Everything3_FindProperty.
Call Everything3_ClearSearchPropertyRequests to clear the property request list.
The property request list is empty by default.
When the property request list is empty the results will have the the EVERYTHING3_PROPERTY_ID_PATH_AND_NAME property.
Like Everything3_AddSearchPropertyRequest, except instead of the result having the raw property value, the value will be formatted and highlighted text.



Everything3_ClearSearchPropertyRequests

The Everything3_ClearSearchPropertyRequests function clears the property request list.

Syntax
BOOL Everything3_ClearSearchPropertyRequests(EVERYTHING3_SEARCH_STATE *search_state);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.


Return Value
Returns TRUE if the property request list was successfully cleared.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Call Everything3_AddSearchPropertyRequest, Everything3_AddSearchPropertyRequestFormatted or Everything3_AddSearchPropertyRequestHighlighted to add a property to the property request list.
When the property request list is empty the results will have the the EVERYTHING3_PROPERTY_ID_PATH_AND_NAME property.



Everything3_SetSearchViewportOffset

The Everything3_SetSearchViewportOffset function sets the viewport offset.

Syntax
BOOL Everything3_SetSearchViewportOffset(EVERYTHING3_SEARCH_STATE *search_state,SIZE_T offset);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.

offset
The zero based viewport offset.


Return Value
Returns TRUE if the viewport offset is set successfully.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
The default viewport offset is 0.
When executing the search, only results inside the viewport are returned in the result list.
Setting the viewport offset and viewport count will create a small window of results, making the search faster and more efficient.
Set the viewport count with Everything3_SetSearchViewportCount.



Everything3_SetSearchViewportCount

The Everything3_SetSearchViewportCount function sets the viewport count.

Syntax
BOOL Everything3_SetSearchViewportCount(EVERYTHING3_SEARCH_STATE *search_state,SIZE_T count);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.

count
The viewport count.


Return Value
Returns TRUE if the viewport offset is set successfully.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
The default viewport count is SIZE_MAX. (All results)
When executing the search, only results inside the viewport are returned in the result list.
Setting the viewport offset and viewport count will create a small window of results, making the search faster and more efficient.
Set the viewport offset with Everything3_SetSearchViewportOffset.



Everything3_GetSearchMatchCase

The Everything3_GetSearchMatchCase function retrieves the current match case state.

Syntax
BOOL Everything3_GetSearchMatchCase(EVERYTHING3_SEARCH_STATE *search_state);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.


Return Value
Returns TRUE if match case is enabled. Otherwise, returns FALSE.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Match case is disabled by default.
Enable match case with a call to Everything3_SetSearchMatchCase.



Everything3_GetSearchMatchDiacritics

The Everything3_GetSearchMatchDiacritics function retrieves the current match diacritics state.

Syntax
BOOL Everything3_GetSearchMatchDiacritics(EVERYTHING3_SEARCH_STATE *search_state);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.


Return Value
Returns TRUE if match diacritics is enabled. Otherwise, returns FALSE.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Match diacritics is disabled by default.
Enable match diacritics with a call to Everything3_SetSearchMatchDiacritics.



Everything3_GetSearchMatchWholeWords

The Everything3_GetSearchMatchWholeWords function retrieves the current match whole words state.

Syntax
BOOL Everything3_GetSearchMatchWholeWords(EVERYTHING3_SEARCH_STATE *search_state);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.


Return Value
Returns TRUE if match whole words is enabled. Otherwise, returns FALSE.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Match whole words is disabled by default.
Enable match whole words with a call to Everything3_SetSearchMatchWholeWords.



Everything3_GetSearchMatchPath

The Everything3_GetSearchMatchPath function retrieves the current match path state.

Syntax
BOOL Everything3_GetSearchMatchPath(EVERYTHING3_SEARCH_STATE *search_state);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.


Return Value
Returns TRUE if match path is enabled. Otherwise, returns FALSE.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Match path is disabled by default.
Enable match path with a call to Everything3_SetSearchMatchPath.



Everything3_GetSearchMatchPrefix

The Everything3_GetSearchMatchPrefix function retrieves the current match prefix state.

Syntax
BOOL Everything3_GetSearchMatchPrefix(EVERYTHING3_SEARCH_STATE *search_state);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.


Return Value
Returns TRUE if match prefix is enabled. Otherwise, returns FALSE.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Match prefix is disabled by default.
Enable match prefix with a call to Everything3_SetSearchMatchPrefix.



Everything3_GetSearchMatchSuffix

The Everything3_GetSearchMatchSuffix function retrieves the current match suffix state.

Syntax
BOOL Everything3_GetSearchMatchSuffix(EVERYTHING3_SEARCH_STATE *search_state);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.


Return Value
Returns TRUE if match suffix is enabled. Otherwise, returns FALSE.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Match suffix is disabled by default.
Enable match suffix with a call to Everything3_SetSearchMatchSuffix.



Everything3_GetSearchIgnorePunctuation

The Everything3_GetSearchIgnorePunctuation function retrieves the current ignore punctuation state.

Syntax
BOOL Everything3_GetSearchIgnorePunctuation(EVERYTHING3_SEARCH_STATE *search_state);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.


Return Value
Returns TRUE if ignore punctuation is enabled. Otherwise, returns FALSE.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Ignore punctuation is disabled by default.
Enable ignore punctuation with a call to Everything3_SetSearchIgnorePunctuation.



Everything3_GetSearchIgnoreWhitespace

The Everything3_GetSearchIgnoreWhitespace function retrieves the current ignore whitespace state.

Syntax
BOOL Everything3_GetSearchIgnoreWhitespace(EVERYTHING3_SEARCH_STATE *search_state);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.


Return Value
Returns TRUE if ignore whitespace is enabled. Otherwise, returns FALSE.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Ignore whitespace is disabled by default.
Enable ignore whitespace with a call to Everything3_SetSearchIgnoreWhitespace.



Everything3_GetSearchRegex

The Everything3_GetSearchRegex function retrieves the current match regex state.

Syntax
BOOL Everything3_GetSearchRegex(EVERYTHING3_SEARCH_STATE *search_state);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.


Return Value
Returns TRUE if match regex is enabled. Otherwise, returns FALSE.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Match regex is disabled by default.
Enable match regex a call to Everything3_SetSearchRegex.



Everything3_GetSearchFoldersFirst

The Everything3_GetSearchFoldersFirst function retrieves the current folders first state.

Syntax
DWORD Everything3_GetSearchFoldersFirst(EVERYTHING3_SEARCH_STATE *search_state);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.


Return Value
Returns the folders first state.
Can be one of the following values:
EVERYTHING3_SEARCH_FOLDERS_FIRST_ASCENDING0Folders first when sort ascending.
EVERYTHING3_SEARCH_FOLDERS_FIRST_ALWAYS1Folders first.
EVERYTHING3_SEARCH_FOLDERS_FIRST_NEVER2Folders last.
EVERYTHING3_SEARCH_FOLDERS_FIRST_DESCENDING3Folders first when sort descending.
Returns 0 on error. To get extended error information, call Everything3_GetLastError.


Remarks
Folders are shown first when sorting in ascending order by default.
Set folders first or folders last with a call to Everything3_SetSearchFoldersFirst.



Everything3_GetSearchRequestTotalSize

The Everything3_GetSearchRequestTotalSize function retrieves the current request total size state.

Syntax
BOOL Everything3_GetSearchRequestTotalSize(EVERYTHING3_SEARCH_STATE *search_state);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.


Return Value
Returns TRUE if the total size is requested. Otherwise, returns FALSE.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
The total size is not requested by default.
Request the total size with a call to Everything3_SetSearchRequestTotalSize.



Everything3_GetSearchHideResultOmissions

The Everything3_GetSearchHideResultOmissions function retrieves the current hide result omissions state.

Syntax
BOOL Everything3_GetSearchHideResultOmissions(EVERYTHING3_SEARCH_STATE *search_state);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.


Return Value
Returns TRUE if result omissions should be hidden. Otherwise, returns FALSE.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Result omissions are shown by default. (not hidden)
Hide result omissions with a call to Everything3_SetSearchHideResultOmissions.



Everything3_GetSearchSortMix

The Everything3_GetSearchSortMix function retrieves the current mix files and folders state.

Syntax
BOOL Everything3_GetSearchSortMix(EVERYTHING3_SEARCH_STATE *search_state);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.


Return Value
Returns TRUE if files and folders should be mixed together. Otherwise, returns FALSE.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Files and folders are separated by default.
Mix files and folders together with a call to Everything3_SetSearchSortMix.



Everything3_GetSearchText
Everything3_GetSearchTextW
Everything3_GetSearchTextA
Everything3_GetSearchTextUTF8

The Everything3_GetSearchText function retrieves the current search text.

Syntax
SIZE_T Everything3_GetSearchText(EVERYTHING3_SEARCH_STATE *search_state,LPTSTR out_buf,SIZE_T bufsize);
SIZE_T Everything3_GetSearchTextW(EVERYTHING3_SEARCH_STATE *search_state,LPWSTR out_buf,SIZE_T bufsize);
SIZE_T Everything3_GetSearchTextA(EVERYTHING3_SEARCH_STATE *search_state,LPSTR out_buf,SIZE_T bufsize);
SIZE_T Everything3_GetSearchTextUTF8(EVERYTHING3_SEARCH_STATE *search_state,EVERYTHING3_UTF8 *out_buf,SIZE_T bufsize);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.

out_buf
Buffer to hold the property canonical name.

bufsize
Size of the buffer in characters.


Return Value
If bufsize is 0, the required size in characters including the NULL terminator is returned.
Returns the length of the buffer in characters. Excluding the NULL terminator.
Returns 0 on error. To get extended error information, call Everything3_GetLastError.


Remarks
The search text is an empty string by default.
Set the search text with a call to Everything3_SetSearchText.



Everything3_GetSearchSortCount

The Everything3_GetSearchSortCount function retrieves the total number of requested sort properties.

Syntax
DWORD Everything3_GetSearchSortCount(EVERYTHING3_SEARCH_STATE *search_state);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.


Return Value
Returns the total number of requested sort properties.
Returns 0 on error. To get extended error information, call Everything3_GetLastError.


Remarks
The requested sort list is empty by default.
Request the sort with a call to Everything3_SetSearchSort.
The results will be sorted by name in ascending order if no sort is requested.
Call Everything3_GetSearchSortPropertyId to enumerate requested sort list.



Everything3_GetSearchSortPropertyId

The Everything3_GetSearchSortPropertyId function retrieves the requested sort property ID.

Syntax
DWORD Everything3_GetSearchSortPropertyId(EVERYTHING3_SEARCH_STATE *search_state,SIZE_T sort_index);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.

sort_index
The zero based sort index.


Return Value
Returns the sort property ID from the specified sort index.
Returns EVERYTHING3_INVALID_PROPERTY_ID on error. To get extended error information, call Everything3_GetLastError.


Remarks
The requested sort list is empty by default.
Request the sort with a call to Everything3_SetSearchSort.
The results will be sorted by name in ascending order if no sort is requested.
Call Everything3_GetSearchSortCount to get the total number of requested sort properties.
Call Everything3_GetSearchSortAscending to check if the sort order.



Everything3_GetSearchSortAscending

The Everything3_GetSearchSortAscending function retrieves the requested sort order.

Syntax
BOOL Everything3_GetSearchSortAscending(EVERYTHING3_SEARCH_STATE *search_state,SIZE_T sort_index);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.

sort_index
The zero based sort index.


Return Value
Returns TRUE if the sort from the specifed sort index is in ascending order. Otherwise, returns FALSE.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
The requested sort list is empty by default.
Request the sort with a call to Everything3_SetSearchSort.
The results will be sorted by name in ascending order if no sort is requested.
Call Everything3_GetSearchSortCount to get the total number of requested sort properties.



Everything3_GetSearchPropertyRequestCount

The Everything3_GetSearchPropertyRequestCount function retrieves the total number of requested properties.

Syntax
SIZE_T Everything3_GetSearchPropertyRequestCount(EVERYTHING3_SEARCH_STATE *search_state);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.


Return Value
Returns the total number of requested properties.
Returns 0 on error. To get extended error information, call Everything3_GetLastError.


Remarks
The property request list is empty by default.
Request a property with a call to Everything3_AddPropertyRequest.
Only the EVERYTHING3_PROPERTY_ID_PATH_AND_NAME property is available if no properties are requested.
Call Everything3_GetSearchPropertyRequestPropertyId to enumerate requested properties.



Everything3_GetSearchPropertyRequestPropertyId

The Everything3_GetSearchPropertyRequestPropertyId function retrieves the property ID from the property request list.

Syntax
DWORD Everything3_GetSearchPropertyRequestPropertyId(EVERYTHING3_SEARCH_STATE *search_state,SIZE_T index);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.

index
The zero based index into the property request list.


Return Value
Returns the requested property ID.
Returns EVERYTHING3_INVALID_PROPERTY_ID on error. To get extended error information, call Everything3_GetLastError.


Remarks
The property request list is empty by default.
Request a property with a call to Everything3_AddPropertyRequest.
Only the EVERYTHING3_PROPERTY_ID_PATH_AND_NAME property is available if no properties are requested.
Call Everything3_GetSearchPropertyRequestCount to get the total number of requested properties.
Call Everything3_GetSearchPropertyRequestHighlight to check if a requested property is highlighted.
Call Everything3_GetSearchPropertyRequestFormat to check if a requested property is formatted.



Everything3_GetSearchPropertyRequestHighlight

The Everything3_GetSearchPropertyRequestHighlight function checks if the requested property is highlighted.

Syntax
BOOL Everything3_GetSearchPropertyRequestHighlight(EVERYTHING3_SEARCH_STATE *search_state,SIZE_T index);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.

index
The zero based index into the property request list.


Return Value
Returns TRUE if the property request is highlighted. Otherwise, returns FALSE.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
The property request list is empty by default.
Request a property with a call to Everything3_AddPropertyRequest.
Only the EVERYTHING3_PROPERTY_ID_PATH_AND_NAME property is available if no properties are requested.
Call Everything3_GetSearchPropertyRequestCount to get the total number of requested properties.



Everything3_GetSearchPropertyRequestFormat

The Everything3_GetSearchPropertyRequestFormat function checks if the requested property is formatted.

Syntax
BOOL Everything3_GetSearchPropertyRequestFormat(EVERYTHING3_SEARCH_STATE *search_state,SIZE_T index);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.

index
The zero based index into the property request list.


Return Value
Returns TRUE if the property request is formatted. Otherwise, returns FALSE.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
If the property request is formatted, the property value can be retrived as text. Otherwise, it must be retrieved by its raw value.
The property request list is empty by default.
Request a property with a call to Everything3_AddPropertyRequest.
Only the EVERYTHING3_PROPERTY_ID_PATH_AND_NAME property is available if no properties are requested.
Call Everything3_GetSearchPropertyRequestCount to get the total number of requested properties.



Everything3_GetSearchViewportOffset

The Everything3_GetSearchViewportOffset function retrieves the requested viewport offset.

Syntax
SIZE_T Everything3_GetSearchViewportOffset(EVERYTHING3_SEARCH_STATE *search_state);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.


Return Value
Returns the zero based viewport offset.
Returns 0 on error. To get extended error information, call Everything3_GetLastError.


Remarks
The viewport offset is 0 by default.
Request the viewport offset with a call to Everything3_SetSearchViewportOffset.



Everything3_GetSearchViewportCount

The Everything3_GetSearchViewportCount function retrieves the requested viewport count.

Syntax
SIZE_T Everything3_GetSearchViewportCount(EVERYTHING3_SEARCH_STATE *search_state);


Parameters
search_state
The search state returned from Everything3_CreateSearchState.


Return Value
Returns the requested viewport count.
Returns 0 on error. To get extended error information, call Everything3_GetLastError.


Remarks
The viewport count is SIZE_MAX by default. (all items)
Request the viewport count with a call to Everything3_SetSearchViewportCount.
void
Developer
Posts: 19190
Joined: Fri Oct 16, 2009 11:31 pm

Re: Everything 1.5 SDK

Post by void »

Everything3_Search

The Everything3_Search function executes a search.

Syntax
EVERYTHING3_RESULT_LIST *Everything3_Search(EVERYTHING3_CLIENT *client,EVERYTHING3_SEARCH_STATE *search_state);


Parameters
client
The Everything client handle returned from Everything3_Connect.

search_state
The search state returned from Everything3_CreateSearchState.


Return Value
Returns a pointer to a result list if the search is successful.
Returns NULL on error. To get extended error information, call Everything3_GetLastError.


Remarks
Before calling Everything3_Search, call the various Set Search Functions to setup the search state.
Call the various Result Functions to retrieve result information.
When you are done with the results, destroy the result list with Everything3_DestroyResultList.
Everything3_Search performs a new search. Use Everything3_GetResults to get up-to-date results after an Everything3_Search call to avoid a research. Everything will update the result list on the server side in real-time. Close the connection if you do not wish to monitor changes.
Call will block until search completes and all properties requests have been gathered.
Call Everything3_ShutdownClient or Everything3_DestroyClient to cancel the search.
The returned result list can be accessed from any thread as it is read-only.



Everything3_GetResults

The Everything3_GetResults function retrieves the latest result list.

Syntax
EVERYTHING3_RESULT_LIST *Everything3_GetResults(EVERYTHING3_CLIENT *client,EVERYTHING3_SEARCH_STATE *search_state);


Parameters
client
The Everything client handle returned from Everything3_Connect.

search_state
The search state returned from Everything3_CreateSearchState.


Return Value
Returns a pointer to a result list if the search is successful.
Returns NULL on error. To get extended error information, call Everything3_GetLastError.


Remarks
Same behavior as Everything3_Search, except no search or sort is executed and the current results are returned.
Call Everything3_GetResults after a successful call to Everything3_Search.
When you are done with the results, destroy the result list with Everything3_DestroyResultList.



Everything3_Sort

The Everything3_Sort function executes a sort.

Syntax
EVERYTHING3_RESULT_LIST *Everything3_Sort(EVERYTHING3_CLIENT *client,EVERYTHING3_SEARCH_STATE *search_state);


Parameters
client
The Everything client handle returned from Everything3_Connect.

search_state
The search state returned from Everything3_CreateSearchState.


Return Value
Returns a pointer to a result list if the search is successful.
Returns NULL on error. To get extended error information, call Everything3_GetLastError.


Remarks
Same behavior as Everything3_Search, except no search is executed and the current results are returned.
Call Everything3_Sort after a successful call to Everything3_Search.
Everything3_Sort sets the sort for future calls to Everything3_GetResults.
When you are done with the results, destroy the result list with Everything3_DestroyResultList.



Everything3_IsResultListChange

The Everything3_IsResultListChange function checks if the result list has changed since the previous Everything3_Search call.

Syntax
BOOL Everything3_IsResultListChange(EVERYTHING3_CLIENT *client);


Parameters
client
The Everything client handle returned from Everything3_Connect.


Return Value
Returns TRUE if the result list has changed. Otherwise, returns FALSE.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
A result or a property has changed.
Call Everything3_GetResults to get the latest results.
This call returns immediately. It does not block.
Poll for changes every second.
Everything3_Search, Everything3_Sort and Everything3_GetResults will clear the internal 'is_changed' flag on the server.



Everything3_WaitForResultListChange

The Everything3_WaitForResultListChange function waits until a result list changes occurs.

Syntax
BOOL Everything3_WaitForResultListChange(EVERYTHING3_CLIENT *client);


Parameters
client
The Everything client handle returned from Everything3_Connect.


Return Value
Returns TRUE if the result list has changed and the wait was successful.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Similar to Everything3_IsResultListChange.
Except, this function waits indefinitely until the result list changes.
No need to poll for changes, this will be more efficient.
The wait can be cancelled with Everything3_ShutdownClient.



Everything3_DestroyResultList

The Everything3_DestroyResultList function destroys a result list.

Syntax
BOOL Everything3_DestroyResultList(EVERYTHING3_RESULT_LIST *result_list);


Parameters
result_list


Return Value
Returns TRUE if the result list is destroyed successfully.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Destroy the result list. Returns resources back to the system.
Do not use the result list after it has been destroyed.



Everything3_GetResultListFolderCount

The Everything3_GetResultListFolderCount function retrieves the total number of folders in the result list.

Syntax
SIZE_T Everything3_GetResultListFolderCount(EVERYTHING3_RESULT_LIST *result_list);


Parameters
result_list


Return Value
Returns the total number of folder results.
Returns 0 on error. To get extended error information, call Everything3_GetLastError.


Remarks
Adding the folder count and file count returns the total number of results.
This number can be more than the viewport count.



Everything3_GetResultListFileCount

The Everything3_GetResultListFileCount function retrieves the total number of files in the result list.

Syntax
SIZE_T Everything3_GetResultListFileCount(EVERYTHING3_RESULT_LIST *result_list);


Parameters
result_list


Return Value
Returns the total number of file results.
Returns 0 on error. To get extended error information, call Everything3_GetLastError.


Remarks
Adding the folder count and file count returns the total number of results.
This number can be more than the viewport count.



Everything3_GetResultListCount

The Everything3_GetResultListCount function retrieves the total number of files and folders in the result list.

Syntax
SIZE_T Everything3_GetResultListCount(EVERYTHING3_RESULT_LIST *result_list);


Parameters
result_list


Return Value
Returns the total number of file and folder results.
Returns 0 on error. To get extended error information, call Everything3_GetLastError.


Remarks
The number of file and folder results can be more than the viewport count.



Everything3_GetResultListTotalSize

The Everything3_GetResultListTotalSize function retrieves the total size of all the files in the result list.

Syntax
EVERYTHING3_UINT64 Everything3_GetResultListTotalSize(EVERYTHING3_RESULT_LIST *result_list);


Parameters
result_list


Return Value
Returns the total size in bytes of all files in the result list.
Returns EVERYTHING3_UINT64_MAX on error. To get extended error information, call Everything3_GetLastError.


Remarks
Folder sizes are not included in the total size.
The total size is not requested by default.
Call Everything3_SetSearchRequestTotalSize to request the total size.



Everything3_GetResultListViewportOffset

The Everything3_GetResultListViewportOffset function retrieves the viewport offset.

Syntax
SIZE_T Everything3_GetResultListViewportOffset(EVERYTHING3_RESULT_LIST *result_list);


Parameters
result_list


Return Value
Returns the result list viewport offset.
Returns 0 on error. To get extended error information, call Everything3_GetLastError.


Remarks
Useful for scrolling a window of results.
Call Everything3_SetSearchViewportOffset to request the viewport offset.



Everything3_GetResultListViewportCount

The Everything3_GetResultListViewportCount function retrieves the viewport count.

Syntax
SIZE_T Everything3_GetResultListViewportCount(EVERYTHING3_RESULT_LIST *result_list);


Parameters
result_list


Return Value
Returns the result list viewport count.
Returns 0 on error. To get extended error information, call Everything3_GetLastError.


Remarks
Useful for scrolling a window of results.
Call Everything3_SetSearchViewportCount to request the viewport count.



Everything3_GetResultListSortCount

The Everything3_GetResultListSortCount function retrieves the total number of sort properties.

Syntax
SIZE_T Everything3_GetResultListSortCount(EVERYTHING3_RESULT_LIST *result_list);


Parameters
result_list


Return Value
Returns the total number of sort properties.
Returns 0 on error. To get extended error information, call Everything3_GetLastError.


Remarks
Only a maximum of 3 sorts can be requested.
However, searching with sort: can support up to 8 sorts.
sort: in the search text will override any requested sorts.
The maximum number of sort properties is 8.
Call Everything3_SetSearchSort to request the sort.
Call Everything3_AddSearchSort to request multiple sort properties.



Everything3_GetResultListSortPropertyId

The Everything3_GetResultListSortPropertyId function retrieves the sort property ID.

Syntax
DWORD Everything3_GetResultListSortPropertyId(EVERYTHING3_RESULT_LIST *result_list,SIZE_T sort_index);


Parameters
result_list
sort_index
The zero based index of the sort property in the sort list.


Return Value
Returns the property ID of the specified sort.
Returns EVERYTHING3_INVALID_PROPERTY_ID on error. To get extended error information, call Everything3_GetLastError.


Remarks
Get the total number of sort properties with Everything3_GetResultListSortCount.
Call Everything3_GetResultListSortAscending to get the sort order.



Everything3_GetResultListSortAscending

The Everything3_GetResultListSortAscending function retrieves the sort order.

Syntax
BOOL Everything3_GetResultListSortAscending(EVERYTHING3_RESULT_LIST *result_list,SIZE_T sort_index);


Parameters
result_list
sort_index
The zero based index of the sort property in the sort list.


Return Value
Returns TRUE if the specified sort is sorted in ascending order. Otherwise, returns FALSE.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Get the total number of sort properties with Everything3_GetResultListSortCount.



Everything3_GetResultListPropertyRequestCount

The Everything3_GetResultListPropertyRequestCount function retrieves the total number of properties.

Syntax
SIZE_T Everything3_GetResultListPropertyRequestCount(EVERYTHING3_RESULT_LIST *result_list);


Parameters
result_list


Return Value
Returns the total number of properties.
Returns 0 on error. To get extended error information, call Everything3_GetLastError.


Remarks
Call Everything3_AddSearchPropertyRequest to request properties.



Everything3_GetResultListPropertyRequestPropertyId

The Everything3_GetResultListPropertyRequestPropertyId function retrieves the property ID from a property in the property list.

Syntax
BOOL Everything3_GetResultListSortAscending(EVERYTHING3_RESULT_LIST *result_list,SIZE_T property_index);


Parameters
result_list
property_index
The zero based index of the property in the property list.


Return Value
Returns the property ID from the specified property in the property list.
Returns EVERYTHING3_INVALID_PROPERTY_ID on error. To get extended error information, call Everything3_GetLastError.


Remarks
Get the total number of properties with Everything3_GetResultListPropertyRequestCount.



Everything3_GetResultListPropertyRequestValueType

The Everything3_GetResultListPropertyRequestValueType function retrieves the property value type from a property in the property list.

Syntax
BOOL Everything3_GetResultListPropertyRequestValueType(EVERYTHING3_RESULT_LIST *result_list,SIZE_T property_index);


Parameters
result_list
property_index
The zero based index of the property in the property list.


Return Value
Returns the property value type from the specified property in the property list.
Can be one of the following values.
EVERYTHING3_PROPERTY_VALUE_TYPE_NULL0
EVERYTHING3_PROPERTY_VALUE_TYPE_BYTE1Everything3_GetResultPropertyBYTE
EVERYTHING3_PROPERTY_VALUE_TYPE_WORD2Everything3_GetResultPropertyWORD
EVERYTHING3_PROPERTY_VALUE_TYPE_DWORD3Everything3_GetResultPropertyDWORD
EVERYTHING3_PROPERTY_VALUE_TYPE_DWORD_FIXED_Q1K4Everything3_GetResultPropertyDWORD / 1000
EVERYTHING3_PROPERTY_VALUE_TYPE_UINT645Everything3_GetResultPropertyUINT64
EVERYTHING3_PROPERTY_VALUE_TYPE_UINT1286Everything3_GetResultPropertyUINT128
EVERYTHING3_PROPERTY_VALUE_TYPE_DIMENSIONS7Everything3_GetResultPropertyDIMENSIONS
EVERYTHING3_PROPERTY_VALUE_TYPE_PSTRING8Everything3_GetResultPropertyText
EVERYTHING3_PROPERTY_VALUE_TYPE_PSTRING_MULTISTRING9Everything3_GetResultPropertyText
EVERYTHING3_PROPERTY_VALUE_TYPE_PSTRING_STRING_REFERENCE10Everything3_GetResultPropertyText
EVERYTHING3_PROPERTY_VALUE_TYPE_SIZE_T11Everything3_GetResultPropertySIZE_T
EVERYTHING3_PROPERTY_VALUE_TYPE_INT32_FIXED_Q1K12Everything3_GetResultPropertyINT32 / 1000
EVERYTHING3_PROPERTY_VALUE_TYPE_INT32_FIXED_Q1M13Everything3_GetResultPropertyINT32 / 1000000
EVERYTHING3_PROPERTY_VALUE_TYPE_PSTRING_FOLDER_REFERENCE14Everything3_GetResultPropertyText
EVERYTHING3_PROPERTY_VALUE_TYPE_PSTRING_FILE_OR_FOLDER_REFERENCE15Everything3_GetResultPropertyText
EVERYTHING3_PROPERTY_VALUE_TYPE_BLOB816Everything3_GetResultPropertyBlob
EVERYTHING3_PROPERTY_VALUE_TYPE_DWORD_GET_TEXT17Everything3_GetResultPropertyDWORD
EVERYTHING3_PROPERTY_VALUE_TYPE_WORD_GET_TEXT18Everything3_GetResultPropertyWORD
EVERYTHING3_PROPERTY_VALUE_TYPE_BLOB1619Everything3_GetResultPropertyBlob
EVERYTHING3_PROPERTY_VALUE_TYPE_BYTE_GET_TEXT20Everything3_GetResultPropertyBYTE
EVERYTHING3_PROPERTY_VALUE_TYPE_PROPVARIANT21Everything3_GetResultPropertyPropVariant
Returns EVERYTHING3_PROPERTY_VALUE_TYPE_NULL on error. To get extended error information, call Everything3_GetLastError.


Remarks
Call the correct Everything3_GetResultProperty* function for the matching property value type.



Everything3_IsFolderResult

The Everything3_IsFolderResult function checks if the result is a folder.

Syntax
BOOL Everything3_IsFolderResult(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index);


Parameters
result_list
result_index
The zero based index of the result in the result list.


Return Value
Returns TRUE if the specified result is a folder. Otherwise, returns FALSE.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
The result is a file if it is not a folder.
Root drives are folders.



Everything3_IsRootResult

The Everything3_IsRootResult function checks if the result is a root.

Syntax
BOOL Everything3_IsRootResult(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index);


Parameters
result_list
result_index
The zero based index of the result in the result list.


Return Value
Returns TRUE if the specified result is a root. Otherwise, returns FALSE.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
A root item has no parents.



Everything3_GetResultPropertyText
Everything3_GetResultPropertyTextW
Everything3_GetResultPropertyTextA
Everything3_GetResultPropertyTextUTF8

The Everything3_GetResultPropertyText function retrieves the property text.

Syntax
SIZE_T Everything3_GetResultPropertyText(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,DWORD property_id,LPTSTR out_buf,EVERYTHING3_SIZE_T bufsize);
SIZE_T Everything3_GetResultPropertyTextW(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,DWORD property_id,LPWSTR out_buf,EVERYTHING3_SIZE_T bufsize);
SIZE_T Everything3_GetResultPropertyTextA(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,DWORD property_id,LPSTR out_buf,EVERYTHING3_SIZE_T bufsize);
SIZE_T Everything3_GetResultPropertyTextUTF8(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,DWORD property_id,EVERYTHING3_UTF8 *out_buf,EVERYTHING3_SIZE_T bufsize);


Parameters
result_list
result_index
The zero based index of the result in the result list.

property_id
The property to retrieve.

out_buf
A buffer to hold the property text.

bufsize
The size of the buffer in characters.


Return Value
If bufsize is 0, the required size in characters including the NULL terminator is returned.
Returns the length of the buffer in characters. Excluding the NULL terminator.
Returns 0 on error. To get extended error information, call Everything3_GetLastError.


Remarks
The buffer is always NULL terminated.
The buffer is set to an empty string on error.
The output can be truncated.
If the output is truncated, the returned length will be equal to bufsize - 1.
If the returned length is < bufsize - 1, no truncation occurred.
Use a built-in EVERYTHING3_PROPERTY_ID_* ID or find a property with Everything3_FindProperty.



Everything3_GetResultPropertyTextFormatted
Everything3_GetResultPropertyTextFormattedW
Everything3_GetResultPropertyTextFormattedA
Everything3_GetResultPropertyTextFormattedUTF8

The Everything3_GetResultPropertyTextFormatted function retrieves the formatted property text.

Syntax
SIZE_T Everything3_GetResultPropertyTextFormatted(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,DWORD property_id,LPTSTR out_buf,EVERYTHING3_SIZE_T bufsize);
SIZE_T Everything3_GetResultPropertyTextFormattedW(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,DWORD property_id,LPWSTR out_buf,EVERYTHING3_SIZE_T bufsize);
SIZE_T Everything3_GetResultPropertyTextFormattedA(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,DWORD property_id,LPSTR out_buf,EVERYTHING3_SIZE_T bufsize);
SIZE_T Everything3_GetResultPropertyTextFormattedUTF8(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,DWORD property_id,EVERYTHING3_UTF8 *out_buf,EVERYTHING3_SIZE_T bufsize);


Parameters
result_list
result_index
The zero based index of the result in the result list.

property_id
The property to retrieve.

out_buf
A buffer to hold the property text.

bufsize
The size of the buffer in characters.


Return Value
If bufsize is 0, the required size in characters including the NULL terminator is returned.
Returns the length of the buffer in characters. Excluding the NULL terminator.
Returns 0 on error. To get extended error information, call Everything3_GetLastError.


Remarks
The buffer is always NULL terminated.
The buffer is set to an empty string on error.
The output can be truncated.
If the output is truncated, the returned length will be equal to bufsize - 1.
If the returned length is < bufsize - 1, no truncation occurred.
Use a built-in EVERYTHING3_PROPERTY_ID_* ID or find a property with Everything3_FindProperty.
The property must be requested with Everything3_AddSearchPropertyRequestFormatted.



Everything3_GetResultPropertyTextHighlighted
Everything3_GetResultPropertyTextHighlightedW
Everything3_GetResultPropertyTextHighlightedA
Everything3_GetResultPropertyTextHighlightedUTF8

The Everything3_GetResultPropertyTextHighlighted function retrieves the highlighted property text.

Syntax
SIZE_T Everything3_GetResultPropertyTextHighlighted(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,DWORD property_id,LPTSTR out_buf,EVERYTHING3_SIZE_T bufsize);
SIZE_T Everything3_GetResultPropertyTextHighlightedW(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,DWORD property_id,LPWSTR out_buf,EVERYTHING3_SIZE_T bufsize);
SIZE_T Everything3_GetResultPropertyTextHighlightedA(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,DWORD property_id,LPSTR out_buf,EVERYTHING3_SIZE_T bufsize);
SIZE_T Everything3_GetResultPropertyTextHighlightedUTF8(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,DWORD property_id,EVERYTHING3_UTF8 *out_buf,EVERYTHING3_SIZE_T bufsize);


Parameters
result_list
result_index
The zero based index of the result in the result list.

property_id
The property to retrieve.

out_buf
A buffer to hold the property text.

bufsize
The size of the buffer in characters.


Return Value
If bufsize is 0, the required size in characters including the NULL terminator is returned.
Returns the length of the buffer in characters. Excluding the NULL terminator.
Returns 0 on error. To get extended error information, call Everything3_GetLastError.


Remarks
Text inside * quotes is highlighted. A double ** is used to escape a single literal *
A highlighted property is also formatted.
The buffer is always NULL terminated.
The buffer is set to an empty string on error.
The output can be truncated.
If the output is truncated, the returned length will be equal to bufsize - 1.
If the returned length is < bufsize - 1, no truncation occurred.
Use a built-in EVERYTHING3_PROPERTY_ID_* ID or find a property with Everything3_FindProperty.
The property must be requested with Everything3_AddSearchPropertyRequestHighlighted.



Everything3_GetResultPropertyBYTE

The Everything3_GetResultPropertyBYTE function retrieves the BYTE property value.

Syntax
BYTE Everything3_GetResultPropertyBYTE(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,DWORD property_id);


Parameters
result_list
result_index
The zero based index of the result in the result list.

property_id
The property to retrieve.


Return Value
Returns the BYTE value.
Returns BYTE_MAX on error. To get extended error information, call Everything3_GetLastError.


Remarks
Call Everything3_GetResultListPropertyRequestValueType to determine the property value type.



Everything3_GetResultPropertyWORD

The Everything3_GetResultPropertyWORD function retrieves the WORD property value.

Syntax
WORD Everything3_GetResultPropertyWORD(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,DWORD property_id);


Parameters
result_list
result_index
The zero based index of the result in the result list.

property_id
The property to retrieve.


Return Value
Returns the WORD value.
Returns WORD_MAX on error. To get extended error information, call Everything3_GetLastError.


Remarks
Call Everything3_GetResultListPropertyRequestValueType to determine the property value type.



Everything3_GetResultPropertyDWORD

The Everything3_GetResultPropertyDWORD function retrieves the DWORD property value.

Syntax
DWORD Everything3_GetResultPropertyDWORD(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,DWORD property_id);


Parameters
result_list
result_index
The zero based index of the result in the result list.

property_id
The property to retrieve.


Return Value
Returns the DWORD value.
Returns DWORD_MAX on error. To get extended error information, call Everything3_GetLastError.


Remarks
Call Everything3_GetResultListPropertyRequestValueType to determine the property value type.



Everything3_GetResultPropertyUINT64

The Everything3_GetResultPropertyUINT64 function retrieves the EVERYTHING3_UINT64 property value.

Syntax
EVERYTHING3_UINT64 Everything3_GetResultPropertyDWORD(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,DWORD property_id);


Parameters
result_list
result_index
The zero based index of the result in the result list.

property_id
The property to retrieve.


Return Value
Returns the EVERYTHING3_UINT64 value.
Returns EVERYTHING3_UINT64_MAX on error. To get extended error information, call Everything3_GetLastError.


Remarks
Call Everything3_GetResultListPropertyRequestValueType to determine the property value type.



Everything3_GetResultPropertyUINT128

The Everything3_GetResultPropertyUINT128 function retrieves the EVERYTHING3_UINT128 property value.

Syntax
BOOL Everything3_GetResultPropertyUINT128(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,DWORD property_id,EVERYTHING3_UINT128 *out_puint128);


Parameters
result_list
result_index
The zero based index of the result in the result list.

property_id
The property to retrieve.

out_puint128
Pointer to a EVERYTHING3_UINT128 to store the UINT128 value.


Return Value
Returns TRUE if the value is retrieved successfully.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Call Everything3_GetResultListPropertyRequestValueType to determine the property value type.



Everything3_GetResultPropertyDIMENSIONS

The Everything3_GetResultPropertyDIMENSIONS function retrieves the dimensions property value.

Syntax
BOOL Everything3_GetResultPropertyDIMENSIONS(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,DWORD property_id,EVERYTHING3_DIMENSIONS *out_dimensions);


Parameters
result_list
result_index
The zero based index of the result in the result list.

property_id
The property to retrieve.

out_dimensions
Pointer to a Everything3_GetResultPropertyDIMENSIONS to store the dimension value.


Return Value
Returns TRUE if the value is retrieved successfully.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Call Everything3_GetResultListPropertyRequestValueType to determine the property value type.



Everything3_GetResultPropertySIZE_T

The Everything3_GetResultPropertySIZE_T function retrieves the SIZE_T property value.

Syntax
SIZE_T Everything3_GetResultPropertySIZE_T(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,DWORD property_id);


Parameters
result_list
result_index
The zero based index of the result in the result list.

property_id
The property to retrieve.


Return Value
Returns the SIZE_T value.
Returns SIZE_MAX on error. To get extended error information, call Everything3_GetLastError.


Remarks
Call Everything3_GetResultListPropertyRequestValueType to determine the property value type.
If the SIZE_T value is truncated, the Everything3_GetResultPropertySIZE_T returns SIZE_MAX.



Everything3_GetResultPropertyINT32

The Everything3_GetResultPropertyINT32 function retrieves the INT32 property value.

Syntax
EVERYTHING3_INT32 Everything3_GetResultPropertyINT32(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,DWORD property_id);


Parameters
result_list
result_index
The zero based index of the result in the result list.

property_id
The property to retrieve.


Return Value
Returns the INT32 value.
Returns INT32_MIN on error. To get extended error information, call Everything3_GetLastError.


Remarks
Call Everything3_GetResultListPropertyRequestValueType to determine the property value type.



Everything3_GetResultPropertyBlob

The Everything3_GetResultPropertyBlob function retrieves the blob property value.

Syntax
BOOL Everything3_GetResultPropertyBlob(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,DWORD property_id,EVERYTHING3_BYTE *out_buf,SIZE_T *in_out_pbufsize);


Parameters
result_list
result_index
The zero based index of the result in the result list.

property_id
The property to retrieve.

out_buf
A buffer to hold the blob value.

in_out_pbufsize
On input, a pointer to the size of the buffer in bytes.
On output, the size is set to the number of bytes copied into the blob buffer.


Return Value
Returns TRUE if the blob value is retrieved successfully.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Call Everything3_GetResultListPropertyRequestValueType to determine the property value type.
If buf is NULL, bufsize will contain the required size of buffer in bytes.
If buf is non-NULL, bufsize will contain the size copied into buffer in bytes.
If there's not enough room, the function returns 0 and sets the last error to: EVERYTHING3_ERROR_INSUFFICIENT_BUFFER



Everything3_GetResultPropertyPropVariant

The Everything3_GetResultPropertyPropVariant function retrieves the propvariant property value.

Syntax
BOOL Everything3_GetResultPropertyPropVariant(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,DWORD property_id,PROPVARIANT *out_pv);


Parameters
result_list
result_index
The zero based index of the result in the result list.

property_id
The property to retrieve.

out_pv
A PROPVARIANT buffer to hold the propvariant value.


Return Value
Returns TRUE if the PROPVARIANT value is retrieved successfully.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
Call Everything3_GetResultListPropertyRequestValueType to determine the property value type.
If the call succeeds, caller MUST call PropVariantClear to clear the PROPVARIANT.



Everything3_GetResultName
Everything3_GetResultNameW
Everything3_GetResultNameA
Everything3_GetResultNameUTF8

The Everything3_GetResultName function retrieves the result name.

Syntax
SIZE_T Everything3_GetResultName(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,LPTSTR out_buf,SIZE_T bufsize);
SIZE_T Everything3_GetResultNameW(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,LPWSTR out_buf,SIZE_T bufsize);
SIZE_T Everything3_GetResultNameA(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,LPSTR out_buf,SIZE_T bufsize);
SIZE_T Everything3_GetResultNameUTF8(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,EVERYTHING3_UTF8 *out_buf,SIZE_T bufsize);


Parameters
result_list
result_index
The zero based index of the result in the result list.

out_buf
A buffer to hold the property text.

bufsize
The size of the buffer in characters.


Return Value
If bufsize is 0, the required size in characters including the NULL terminator is returned.
Returns the length of the buffer in characters. Excluding the NULL terminator.
Returns 0 on error. To get extended error information, call Everything3_GetLastError.


Remarks
The buffer is always NULL terminated.
The buffer is set to an empty string on error.
The output can be truncated.
If the output is truncated, the returned length will be equal to bufsize - 1.
If the returned length is < bufsize - 1, no truncation occurred.



Everything3_GetResultPath
Everything3_GetResultPathW
Everything3_GetResultPathA
Everything3_GetResultPathUTF8

The Everything3_GetResultPath function retrieves the result path.

Syntax
SIZE_T Everything3_GetResultPath(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,LPTSTR out_buf,SIZE_T bufsize);
SIZE_T Everything3_GetResultPathW(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,LPWSTR out_buf,SIZE_T bufsize);
SIZE_T Everything3_GetResultPathA(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,LPSTR out_buf,SIZE_T bufsize);
SIZE_T Everything3_GetResultPathUTF8(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,EVERYTHING3_UTF8 *out_buf,SIZE_T bufsize);


Parameters
result_list
result_index
The zero based index of the result in the result list.

out_buf
A buffer to hold the property text.

bufsize
The size of the buffer in characters.


Return Value
If bufsize is 0, the required size in characters including the NULL terminator is returned.
Returns the length of the buffer in characters. Excluding the NULL terminator.
Returns 0 on error. To get extended error information, call Everything3_GetLastError.


Remarks
The buffer is always NULL terminated.
The buffer is set to an empty string on error.
The output can be truncated.
If the output is truncated, the returned length will be equal to bufsize - 1.
If the returned length is < bufsize - 1, no truncation occurred.



Everything3_GetResultFullPathName
Everything3_GetResultFullPathNameW
Everything3_GetResultFullPathNameA
Everything3_GetResultFullPathNameUTF8

The Everything3_GetResultFullPathName function retrieves the result full path and name.

Syntax
SIZE_T Everything3_GetResultFullPathName(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,LPTSTR out_buf,SIZE_T bufsize);
SIZE_T Everything3_GetResultFullPathNameW(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,LPWSTR out_buf,SIZE_T bufsize);
SIZE_T Everything3_GetResultFullPathNameA(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,LPSTR out_buf,SIZE_T bufsize);
SIZE_T Everything3_GetResultFullPathNameUTF8(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,EVERYTHING3_UTF8 *out_buf,SIZE_T bufsize);


Parameters
result_list
result_index
The zero based index of the result in the result list.

out_buf
A buffer to hold the property text.

bufsize
The size of the buffer in characters.


Return Value
If bufsize is 0, the required size in characters including the NULL terminator is returned.
Returns the length of the buffer in characters. Excluding the NULL terminator.
Returns 0 on error. To get extended error information, call Everything3_GetLastError.


Remarks
The buffer is always NULL terminated.
The buffer is set to an empty string on error.
The output can be truncated.
If the output is truncated, the returned length will be equal to bufsize - 1.
If the returned length is < bufsize - 1, no truncation occurred.



Everything3_GetResultSize

The Everything3_GetResultSize function retrieves the result size.

Syntax
EVERYTHING3_UINT64 Everything3_GetResultSize(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index);


Parameters
result_list
result_index
The zero based index of the result in the result list.


Return Value
Returns the folder/file size in bytes.
Returns EVERYTHING3_UINT64_MAX on error. To get extended error information, call Everything3_GetLastError.


Remarks
Enable folder size indexing (Tools -> Options -> Indexes) to retrieve folder sizes.



Everything3_GetResultExtension
Everything3_GetResultExtensionW
Everything3_GetResultExtensionA
Everything3_GetResultExtensionUTF8

The Everything3_GetResultExtension function retrieves the result extension.

Syntax
SIZE_T Everything3_GetResultExtension(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,LPTSTR out_buf,SIZE_T bufsize);
SIZE_T Everything3_GetResultExtensionW(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,LPWSTR out_buf,SIZE_T bufsize);
SIZE_T Everything3_GetResultExtensionA(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,LPSTR out_buf,SIZE_T bufsize);
SIZE_T Everything3_GetResultExtensionUTF8(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,EVERYTHING3_UTF8 *out_buf,SIZE_T bufsize);


Parameters
result_list
result_index
The zero based index of the result in the result list.

out_buf
A buffer to hold the property text.

bufsize
The size of the buffer in characters.


Return Value
If bufsize is 0, the required size in characters including the NULL terminator is returned.
Returns the length of the buffer in characters. Excluding the NULL terminator.
Returns 0 on error. To get extended error information, call Everything3_GetLastError.


Remarks
The extension does not include the dot (.)
The buffer is always NULL terminated.
The buffer is set to an empty string on error.
The output can be truncated.
If the output is truncated, the returned length will be equal to bufsize - 1.
If the returned length is < bufsize - 1, no truncation occurred.



Everything3_GetResultType
Everything3_GetResultTypeW
Everything3_GetResultTypeA
Everything3_GetResultTypeUTF8

The Everything3_GetResultType function retrieves the result type.

Syntax
SIZE_T Everything3_GetResultType(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,LPTSTR out_buf,SIZE_T bufsize);
SIZE_T Everything3_GetResultTypeW(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,LPWSTR out_buf,SIZE_T bufsize);
SIZE_T Everything3_GetResultTypeA(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,LPSTR out_buf,SIZE_T bufsize);
SIZE_T Everything3_GetResultTypeUTF8(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,EVERYTHING3_UTF8 *out_buf,SIZE_T bufsize);


Parameters
result_list
result_index
The zero based index of the result in the result list.

out_buf
A buffer to hold the property text.

bufsize
The size of the buffer in characters.


Return Value
If bufsize is 0, the required size in characters including the NULL terminator is returned.
Returns the length of the buffer in characters. Excluding the NULL terminator.
Returns 0 on error. To get extended error information, call Everything3_GetLastError.


Remarks
The buffer is always NULL terminated.
The buffer is set to an empty string on error.
The output can be truncated.
If the output is truncated, the returned length will be equal to bufsize - 1.
If the returned length is < bufsize - 1, no truncation occurred.



Everything3_GetResultDateModified

The Everything3_GetResultDateModified function retrieves the result date modified.

Syntax
EVERYTHING3_UINT64 Everything3_GetResultDateModified(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index);


Parameters
result_list
result_index
The zero based index of the result in the result list.


Return Value
Returns the date modified as a FILETIME.
Returns EVERYTHING3_UINT64_MAX on error. To get extended error information, call Everything3_GetLastError.


Remarks
Convert the filetime to a local time with SystemTimeToTzSpecificLocalTime.



Everything3_GetResultDateCreated

The Everything3_GetResultDateCreated function retrieves the result date created.

Syntax
EVERYTHING3_UINT64 Everything3_GetResultDateCreated(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index);


Parameters
result_list
result_index
The zero based index of the result in the result list.


Return Value
Returns the date created as a FILETIME.
Returns EVERYTHING3_UINT64_MAX on error. To get extended error information, call Everything3_GetLastError.


Remarks
Convert the filetime to a local time with SystemTimeToTzSpecificLocalTime.



Everything3_GetResultDateAccessed

The Everything3_GetResultDateAccessed function retrieves the result date Accessed.

Syntax
EVERYTHING3_UINT64 Everything3_GetResultDateAccessed(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index);


Parameters
result_list
result_index
The zero based index of the result in the result list.


Return Value
Returns the date accessed as a FILETIME.
Returns EVERYTHING3_UINT64_MAX on error. To get extended error information, call Everything3_GetLastError.


Remarks
Convert the filetime to a local time with SystemTimeToTzSpecificLocalTime.



Everything3_GetResultAttributes

The Everything3_GetResultAttributes function retrieves the result attributes.

Syntax
DWORD Everything3_GetResultAttributes(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index);


Parameters
result_list
result_index
The zero based index of the result in the result list.


Return Value
Returns the Windows file attributes.
Returns DWORD_MAX on error. To get extended error information, call Everything3_GetLastError.


Remarks



Everything3_GetResultDateRecentlyChanged

The Everything3_GetResultDateRecentlyChanged function retrieves the result date recently changed.

Syntax
EVERYTHING3_UINT64 Everything3_GetResultDateRecentlyChanged(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index);


Parameters
result_list
result_index
The zero based index of the result in the result list.


Return Value
Returns the date recently changed as a FILETIME.
Returns EVERYTHING3_UINT64_MAX on error. To get extended error information, call Everything3_GetLastError.


Remarks
Convert the filetime to a local time with SystemTimeToTzSpecificLocalTime.



Everything3_GetResultRunCount

The Everything3_GetResultRunCount function retrieves the result run count.

Syntax
DWORD Everything3_GetResultRunCount(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index);


Parameters
result_list
result_index
The zero based index of the result in the result list.


Return Value
Returns the run count.
Returns DWORD_MAX on error. To get extended error information, call Everything3_GetLastError.


Remarks



Everything3_GetResultDateRun

The Everything3_GetResultDateRun function retrieves the result date run.

Syntax
EVERYTHING3_UINT64 Everything3_GetResultDateRun(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index);


Parameters
result_list
result_index
The zero based index of the result in the result list.


Return Value
Returns the last date run as a FILETIME.
Returns EVERYTHING3_UINT64_MAX on error. To get extended error information, call Everything3_GetLastError.


Remarks
Convert the filetime to a local time with SystemTimeToTzSpecificLocalTime.



Everything3_GetResultFilelistFilename
Everything3_GetResultFilelistFilenameW
Everything3_GetResultFilelistFilenameA
Everything3_GetResultFilelistFilenameUTF8

The Everything3_GetResultFilelistFilename function retrieves the result filelist name.

Syntax
SIZE_T Everything3_GetResultFilelistFilename(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,LPTSTR out_buf,SIZE_T bufsize);
SIZE_T Everything3_GetResultFilelistFilenameW(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,LPWSTR out_buf,SIZE_T bufsize);
SIZE_T Everything3_GetResultFilelistFilenameA(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,LPSTR out_buf,SIZE_T bufsize);
SIZE_T Everything3_GetResultFilelistFilenameUTF8(EVERYTHING3_RESULT_LIST *result_list,SIZE_T result_index,EVERYTHING3_UTF8 *out_buf,SIZE_T bufsize);


Parameters
result_list
result_index
The zero based index of the result in the result list.

out_buf
A buffer to hold the property text.

bufsize
The size of the buffer in characters.


Return Value
If bufsize is 0, the required size in characters including the NULL terminator is returned.
Returns the length of the buffer in characters. Excluding the NULL terminator.
Returns 0 on error. To get extended error information, call Everything3_GetLastError.


Remarks
The buffer is always NULL terminated.
The buffer is set to an empty string on error.
The output can be truncated.
If the output is truncated, the returned length will be equal to bufsize - 1.
If the returned length is < bufsize - 1, no truncation occurred.



Everything3_GetJournalInfo

The Everything3_GetJournalInfo function retrieves the result filelist name.

Syntax
BOOL Everything3_GetJournalInfo(EVERYTHING3_CLIENT *client,EVERYTHING3_JOURNAL_INFO *out_info);


Parameters
client
The Everything client handle returned from Everything3_Connect.

out_info
Pointer to an EVERYTHING3_JOURNAL_INFO to hold the journal information.


Return Value
Returns TRUE if the journal information is retrieved successfully.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
The journal_id can be passed to Everything3_ReadJournal.
The first_item_index will likely not exist in the next API call and should be used as a guide only. Use EVERYTHING3_UINT64_MAX to refer to the first available change id.



Everything3_ReadJournal
Everything3_ReadJournalW
Everything3_ReadJournalA
Everything3_ReadJournalUTF8

The Everything3_ReadJournal function reads the Everything index journal.

Syntax
BOOL Everything3_ReadJournal(EVERYTHING3_CLIENT *client,EVERYTHING3_UINT64 journal_id,EVERYTHING3_UINT64 change_id,DWORD flags,void *user_data,BOOL (*callback_proc)(void *user_data,const EVERYTHING3_JOURNAL_CHANGE *journal_change);
BOOL Everything3_ReadJournalW(EVERYTHING3_CLIENT *client,EVERYTHING3_UINT64 journal_id,EVERYTHING3_UINT64 change_id,DWORD flags,void *user_data,BOOL (*callback_proc)(void *user_data,const EVERYTHING3_JOURNAL_CHANGEW *journal_change);
BOOL Everything3_ReadJournalA(EVERYTHING3_CLIENT *client,EVERYTHING3_UINT64 journal_id,EVERYTHING3_UINT64 change_id,DWORD flags,void *user_data,BOOL (*callback_proc)(void *user_data,const EVERYTHING3_JOURNAL_CHANGEA *journal_change);
BOOL Everything3_ReadJournalUTF8(EVERYTHING3_CLIENT *client,EVERYTHING3_UINT64 journal_id,EVERYTHING3_UINT64 change_id,DWORD flags,void *user_data,BOOL (*callback_proc)(void *user_data,const EVERYTHING3_JOURNAL_CHANGEUTF8 *journal_change);


Parameters
client
The Everything client handle returned from Everything3_Connect.

journal_id
Read from the journal ID.

change_id
Read starting from the change ID.

flags
The read request flags.
Can be zero or more of the following request flags:
EVERYTHING3_READ_JOURNAL_FLAG_CHANGE_ID0x00000001
EVERYTHING3_READ_JOURNAL_FLAG_TIMESTAMP0x00000002
EVERYTHING3_READ_JOURNAL_FLAG_SOURCE_TIMESTAMP0x00000004
EVERYTHING3_READ_JOURNAL_FLAG_OLD_PARENT_DATE_MODIFIED0x00000008
EVERYTHING3_READ_JOURNAL_FLAG_OLD_PATH0x00000010
EVERYTHING3_READ_JOURNAL_FLAG_OLD_NAME0x00000020
EVERYTHING3_READ_JOURNAL_FLAG_SIZE0x00000040
EVERYTHING3_READ_JOURNAL_FLAG_DATE_CREATED0x00000080
EVERYTHING3_READ_JOURNAL_FLAG_DATE_MODIFIED0x00000100
EVERYTHING3_READ_JOURNAL_FLAG_DATE_ACCESSED0x00000200
EVERYTHING3_READ_JOURNAL_FLAG_ATTRIBUTES0x00000400
EVERYTHING3_READ_JOURNAL_FLAG_NEW_PARENT_DATE_MODIFIED0x00000800
EVERYTHING3_READ_JOURNAL_FLAG_NEW_PATH0x00001000
EVERYTHING3_READ_JOURNAL_FLAG_NEW_NAME0x00002000

user_data
The user data to pass to the callback_proc.

callback_proc
The callback proc that is called each time a change occurs.


Return Value
Normally, does not return.
Returns FALSE on error. To get extended error information, call Everything3_GetLastError.


Remarks
The read can be cancelled with Everything3_ShutdownClient.
The change_id can be EVERYTHING3_UINT64_MAX to read from the next change id.
The action is always supplied.
callback_proc should return TRUE to continue.
callback_proc should return FALSE to cancel the read.
If callback_proc returns FALSE, this function returns FALSE and sets the last error to ERROR_CANCELLED.
This function will never return TRUE as it will read forever.
If the Journal ID changes the function will return with an error.
If the Journal is deleted the function will return with an error.



Example Usage
#include "Everything3.h"

void simple_example(void)
{
	EVERYTHING3_CLIENT *client;

	// connect to Everything.. Try the default unnamed instance first.
	client = Everything3_ConnectW(NULL);
	if (!client)
	{
		// connect to Everything.. Try the 1.5a instance.
		client = Everything3_ConnectW(L"1.5a");
	}

	if (client)
	{
		EVERYTHING3_SEARCH_STATE *search_state;

		// Connected..
		
		// Create an empty search state.
		search_state = Everything3_CreateSearchState();
		if (search_state)
		{
			EVERYTHING3_RESULT_LIST *result_list;

			// Set the search text.
			Everything3_SetSearchTextW(search_state,L"ABC 123");
			
			// Execute the search.
			result_list = Everything3_Search(client,search_state);
			if (result_list)
			{
				SIZE_T viewport_count;
				SIZE_T result_index;
				
				// Search successful.

				// Get the number of results.
				viewport_count = Everything3_GetResultListViewportCount(result_list);
				
				// loop through the results.
				for(result_index=0;result_index<viewport_count;result_index++)
				{
					wchar_t filename[MAX_PATH];

					// Get the filename
					Everything3_GetResultFullPathNameW(result_list,result_index,filename,MAX_PATH);
					
					// Display the filename.
					printf("%S\n",filename);
				}
				
				// Destroy the result list.
				Everything3_DestroyResultList(result_list);
			}

			// Destroy the search state.
			Everything3_DestroySearchState(search_state);
		}
		
		// Disconnect and free the client.
		Everything3_DestroyClient(client);
	}
}
More examples are included in the SDK zip.
ES source code
shihonglei
Posts: 1
Joined: Mon Dec 16, 2024 3:56 pm

Re: Everything 1.5 SDK

Post by shihonglei »

I have tried for a long time, and the DLL is loaded correctly, but I still cannot connect to the IPC channel of Everything 1.5a through SDK3. However, I can see "Everything IPC (1.5a)" in my IPC list. I’m not sure what the reason could be.
#include <stdio.h>
#define WIN32_LEAN_AND_MEAN
#define EVERYTHING3_USERAPI

#include <windows.h>
#include "..\include\Everything3.h"

int main(int argc, char** argv) {
EVERYTHING3_CLIENT* client;

printf("SDK test\n");
HMODULE hDll = LoadLibrary(L"Everything3_x64.dll");
if (hDll == NULL) {
DWORD lastError = GetLastError();
printf("Failed to load DLL. Error code: %lu\n", lastError);
return -1;
}
printf("DLL loaded successfully.\n");

printf("Attempting to connect to Everything service...\n");
client = Everything3_Connect(NULL); // 尝试默认管道
if (!client) {
printf("Failed to connect to Everything service.\n");

DWORD last_error = GetLastError();
printf("GetLastError returned: %lu\n", last_error);

printf("Possible causes:\n");
printf("1. Everything is not running.\n");
printf("2. IPC is not enabled in Everything settings.\n");
printf("3. DLL or pipe configuration mismatch.\n");
printf("4. Insufficient permissions.\n");

// 显式指定管道名称重试
printf("Retrying with explicit pipe name...\n");
client = Everything3_Connect(L"Everything IPC (1.5a)");
if (!client) {
printf("Failed to connect to Everything IPC (1.5a).\n");
return -1;
}
}

printf("Successfully connected to Everything service.\n");

DWORD ipc_pipe_version = Everything3_GetIPCPipeVersion(client);
printf("IPC pipe version: %d\n", ipc_pipe_version);

Everything3_DestroyClient(client);

return 0;
}
void
Developer
Posts: 19190
Joined: Fri Oct 16, 2009 11:31 pm

Re: Everything 1.5 SDK

Post by void »

Please try connecting to the 1.5a instance:

Code: Select all

client = Everything3_Connect(L"1.5a");


Everything 1.5.0.1388a adds the following API calls:
EVERYTHING3_USERAPI EVERYTHING3_BOOL EVERYTHING3_API Everything3_GetFileAttributesExW(EVERYTHING3_CLIENT *client,const EVERYTHING3_WCHAR *lpFilename,WIN32_FIND_DATAW *pfd);
EVERYTHING3_USERAPI EVERYTHING3_BOOL EVERYTHING3_API Everything3_GetFileAttributesExA(EVERYTHING3_CLIENT *client,const EVERYTHING3_CHAR *lpFilename,WIN32_FIND_DATAA *pfd);
EVERYTHING3_USERAPI EVERYTHING3_DWORD EVERYTHING3_API Everything3_GetFileAttributesUTF8(EVERYTHING3_CLIENT *client,const EVERYTHING3_UTF8 *lpFilename);
EVERYTHING3_USERAPI EVERYTHING3_DWORD EVERYTHING3_API Everything3_GetFileAttributesW(EVERYTHING3_CLIENT *client,const EVERYTHING3_WCHAR *lpFilename);
EVERYTHING3_USERAPI EVERYTHING3_DWORD EVERYTHING3_API Everything3_GetFileAttributesA(EVERYTHING3_CLIENT *client,const EVERYTHING3_CHAR *lpFilename);


Added DLL and static LIBs to SDK.


To build with the static LIB please define EVERYTHING3_USERAPI:
#define EVERYTHING3_USERAPI



Everything 1.5.0.1390a adds the following API calls:
EVERYTHING3_USERAPI EVERYTHING3_FIND_HANDLE *EVERYTHING3_API Everything3_FindFirstFileW(EVERYTHING3_CLIENT *client,const EVERYTHING3_WCHAR *lpFilename,WIN32_FIND_DATAW *pfd);
EVERYTHING3_USERAPI EVERYTHING3_FIND_HANDLE *EVERYTHING3_API Everything3_FindFirstFileA(EVERYTHING3_CLIENT *client,const EVERYTHING3_CHAR *lpFilename,WIN32_FIND_DATAA *pfd);
EVERYTHING3_USERAPI EVERYTHING3_BOOL EVERYTHING3_API Everything3_FindNextFileW(EVERYTHING3_FIND_HANDLE *find_handle,WIN32_FIND_DATAW *pfd);
EVERYTHING3_USERAPI EVERYTHING3_BOOL EVERYTHING3_API Everything3_FindNextFileA(EVERYTHING3_FIND_HANDLE *find_handle,WIN32_FIND_DATAA *pfd);
EVERYTHING3_USERAPI EVERYTHING3_BOOL EVERYTHING3_API Everything3_FindClose(EVERYTHING3_FIND_HANDLE *find_handle);

EVERYTHING3_USERAPI EVERYTHING3_RESULT_LIST *EVERYTHING3_API Everything3_GetResults(EVERYTHING3_CLIENT *client,EVERYTHING3_SEARCH_STATE *search_state);
EVERYTHING3_USERAPI EVERYTHING3_RESULT_LIST *EVERYTHING3_API Everything3_Sort(EVERYTHING3_CLIENT *client,EVERYTHING3_SEARCH_STATE *search_state);
EVERYTHING3_USERAPI EVERYTHING3_BOOL EVERYTHING3_API Everything3_WaitForResultListChange(EVERYTHING3_CLIENT *client);


Added EVERYTHING3_PROPERTY_ID_CONTENT property ID.
Laus
Posts: 21
Joined: Sun Jul 04, 2021 11:44 am

Python Wrapper

Post by Laus »

Hi!

I've just published a new python wrapper for the Everything 1.5 SDK version 3 on Github:
https://github.com/git-emil/pyEverything3

It's not yet full fledged, but it it already satisfies my needs in most cases.

Yours, Laus
cuiliang
Posts: 1
Joined: Thu Dec 12, 2024 3:01 pm

Re: Everything 1.5 SDK

Post by cuiliang »

May I ask if there is a documentation for the communication protocol?
If such documentation exists, it would be more convenient to communicate directly using various programming languages without relying on SDK calls.
Thank you!
NotNull
Posts: 5920
Joined: Wed May 24, 2017 9:22 pm

Re: Everything 1.5 SDK

Post by NotNull »

You can interact with the GUI using Command IDs, but that gives very limited access to information in the database.

Alternatively, look at the source code of the command-line utility ES.exe as ES largely bypasses the API calls defined in the SDK.
lin-ycv
Posts: 13
Joined: Fri Mar 11, 2022 2:25 am

Re: Everything 1.5 SDK

Post by lin-ycv »

does the SDK v3 not have the equivalent of

Code: Select all

Everything_SetMax
?
void
Developer
Posts: 19190
Joined: Fri Oct 16, 2009 11:31 pm

Re: Everything 1.5 SDK

Post by void »

Everything3_SetSearchViewportCount
lin-ycv
Posts: 13
Joined: Fri Mar 11, 2022 2:25 am

Re: Everything 1.5 SDK

Post by lin-ycv »

void wrote: Tue Jan 28, 2025 10:21 pm
Everything3_SetSearchViewportCount
I could be understanding things wrong, but what i see from testing is that
Everything_SetMax
limits the number of results returned by the api, meaning if there's 100 results that match, it'll only find 10 then stop, but with
Everything3_SetSearchViewportCount
the api still returns all 100 results, just doesn't display all of them?
NotNull
Posts: 5920
Joined: Wed May 24, 2017 9:22 pm

Re: Everything 1.5 SDK

Post by NotNull »

Not a developer, but the way I interpreted the example from void's openingspost:

(To minimize confusion: Client = application that uses the SDK; Server = Everything program + database )
  • The client asks the server for a unique connection and does some initializing when granted.
  • The client sends a search query to the server ("abc 123")
  • Server processes the query and returns a "link" to the resultlist where all matching results are stored.
    (this resultlist is server-sided)
    CAfter asking the server if there are any results and how many, the results can be "downloaded" from the server to the client in "batches" that each are the size of "Viewport".
  • Typically one would define the size of the viewport to be the amount of results that fits on the screen, but if you need just 10 results:
    define the viewport size as 10 and download only the first "batch".


An alternative would be to add count:10 to your search query, like
abc 123 count:10

(untested)
Kilmatead
Posts: 40
Joined: Thu Nov 07, 2024 1:22 pm

Re: Everything 1.5 SDK

Post by Kilmatead »

Regarding the SDK of 19-Dec-24:

The Everything3_Search() function fails (or, rather, blocks indefinitely) if targeting (via SetSearchTextW) a deep-path. The same call to "normal" paths produces a valid EVERYTHING3_RESULT_LIST (to target a specific folder to get its DESCENDANT_FOLDER_COUNT property, etc).

Returned result lists which merely contain deep-paths work fine, this only happens if the search itself is issued with a deep-path initially.

Curiously, the functions Everything3_FindFirstFileW and Everything3_GetFolderSizeFromFilenameW have no difficulty when targeting deep-paths, only Everything3_Search blocks indefinitely.

I tested with both the DLL version and compiled source, and both behave the same. (To get the code to compile with LLVM I had to make a few minor adjustments, so I tested the release DLL just to make sure it wasn't my modifications which caused it.)
void
Developer
Posts: 19190
Joined: Fri Oct 16, 2009 11:31 pm

Re: Everything 1.5 SDK

Post by void »

Thank you for the issue report Kilmatead,

There's an issue with sending the results over IPC from Everything.
I will have this fixed in the next alpha update.
Kilmatead
Posts: 40
Joined: Thu Nov 07, 2024 1:22 pm

Re: Everything 1.5 SDK

Post by Kilmatead »

Another issue:

Everything3_FindFirstFileW() will terminate any program it's executed within if the target folder is empty.

That is to say, something as simple as:

Code: Select all

Everything3_FindFirstFileW(client, L"C:\\EmptyFolder\\*", &fd);
Will crash to desktop whenever the initial starting folder contains no objects.

***** Edit *****

Ok, actually upon retesting this is user-error: I was thinking I could use the function as a direct drop-in replacement for WinAPI FindFirstFileW, but that function returns INVALID_HANDLE_VALUE on failure whereas the Everything3 function returns NULL, so it's actually Everything3_FindNextFileW which causes the crash (I had proceeded with != INVALID_HANDLE_VALUE instead of != NULL).

I'm leaving this post up simply to suggest that maybe Everything3_FindNextFileW should have a more graceful death if submitted a NULL handle, just so someone else doesn't encounter the same thing.

A failing function call is one thing, catastrophic programme failure is another.

Sorry for my mistake - that's what happens when alpha API's are more or less "undocumented". :D
void
Developer
Posts: 19190
Joined: Fri Oct 16, 2009 11:31 pm

Re: Everything 1.5 SDK

Post by void »

I have put on my TODO list to improve handling of invalid parameters.

Thanks for bringing the issue to my attention.



Everything3_FindFirstFileW returns NULL if no results are found.
Everything3_FindFirstFileW will never return INVALID_HANDLE_VALUE as a valid return value.
Please feel free to create a wrapper that returns INVALID_HANDLE_VALUE instead of NULL.
void
Developer
Posts: 19190
Joined: Fri Oct 16, 2009 11:31 pm

Re: Everything 1.5 SDK

Post by void »

Everything-SDK3.zip

Tuesday 10 June 2025 Version 1.0.0.2
  • added new code signing certificate: voidtools PTY LTD
  • improved handling of invalid parameters.
  • improved handling of invalid pipe names.
  • fixed an issue with calculating the size of ANSI buffers.
void
Developer
Posts: 19190
Joined: Fri Oct 16, 2009 11:31 pm

Re: Everything 1.5 SDK

Post by void »

Everything 1.5.0.1394a fixes an issue with sending results over named pipes.

Please let me know if the issue persists with this version.
Kilmatead
Posts: 40
Joined: Thu Nov 07, 2024 1:22 pm

Re: Everything 1.5 SDK

Post by Kilmatead »

Unfortunately 1394 continues to block indefinitely on an initial deep path.
void
Developer
Posts: 19190
Joined: Fri Oct 16, 2009 11:31 pm

Re: Everything 1.5 SDK

Post by void »

Thank you for checking 1394.

What is your search and what properties are you requesting?

Everything will block to gather any unindexed properties.
Kilmatead
Posts: 40
Joined: Thu Nov 07, 2024 1:22 pm

Re: Everything 1.5 SDK

Post by Kilmatead »

Code: Select all

LPWSTR lpSearch = L"F:\\Etrangere\\" \
L"--------10--------20--------30--------40--------50\\" \
L"--------60--------70--------80--------90-------100\\" \
L"-------110-------120-------130-------140-------150\\" \
L"-------160-------170-------180-------190-------200\\" \
L"-------210-------220-------230" \
L"-------260-------270-------280-------290-------300"; //\\New Folder\\x2Scrap.txt";

Everything3_AddSearchPropertyRequest(lpState, EVERYTHING3_PROPERTY_ID_DESCENDANT_FOLDER_COUNT);
Everything3_AddSearchPropertyRequest(lpState, EVERYTHING3_PROPERTY_ID_NAME);
Everything3_AddSearchPropertyRequest(lpState, EVERYTHING3_PROPERTY_ID_SIZE);
As a test I use the component ending in 230 (a non-deep path), and that returns correctly (with properties). Switching to the 300 mark blocks.

Are Descendant folder properties index-able? (They do return correct results from deep paths found in the result list.)
void
Developer
Posts: 19190
Joined: Fri Oct 16, 2009 11:31 pm

Re: Everything 1.5 SDK

Post by void »

Oh, I am not encoding my VLQs correctly on the SDK side..

Everything-SDK3.zip

Tuesday 10 June 2025 Version 1.0.0.3
  • fixed an issue with encoding vlqs.


Does the issue persist with this SDK update?
Kilmatead
Posts: 40
Joined: Thu Nov 07, 2024 1:22 pm

Re: Everything 1.5 SDK

Post by Kilmatead »

That appears to have solved it. :D

Thank you.
Kilmatead
Posts: 40
Joined: Thu Nov 07, 2024 1:22 pm

Re: Everything 1.5 SDK

Post by Kilmatead »

Small suggestion: Maybe add that version number (1.0.0.3) to a resource for the DLL, so it's more obvious which SDK3 revision/build is being used. God knows how many people might be distributing the DLL's themselves instead of compiling source, Just saying "the latest" doesn't have a lot of context outside of the file date. Just a thought.
void
Developer
Posts: 19190
Joined: Fri Oct 16, 2009 11:31 pm

Re: Everything 1.5 SDK

Post by void »

Thanks for testing.

Yes, I will add version information.
void
Developer
Posts: 19190
Joined: Fri Oct 16, 2009 11:31 pm

Re: Everything 1.5 SDK

Post by void »

Everything-SDK-3.0.0.4.zip

Tuesday 10 June 2025 Version 3.0.0.4
  • added version information.
void
Developer
Posts: 19190
Joined: Fri Oct 16, 2009 11:31 pm

Re: Everything 1.5 SDK

Post by void »

Added IPC version 3 support to ES.
Source code available.



Everything-SDK-3.0.0.5.zip

Friday 19 September 2025 Version 3.0.0.5
  • added PropVariant support -requires Everything 1.5.0.1397a or later.
  • added Index Journal API -requires Everything 1.5.0.1397a or later.
  • added vs2019 solution
  • added ARM/ARM64 dll
  • added ARM/ARM64 static lib
void
Developer
Posts: 19190
Joined: Fri Oct 16, 2009 11:31 pm

Re: Everything 1.5 SDK

Post by void »

Everything-SDK-3.0.0.6.zip

Friday 19 September 2025 Version 3.0.0.6
  • changed _everything3_property_variant_value_t to a union.
void
Developer
Posts: 19190
Joined: Fri Oct 16, 2009 11:31 pm

Re: Everything 1.5 SDK

Post by void »

Everything-SDK-3.0.0.7.zip

Wednesday 24 September 2025 Version 3.0.0.7
  • renamed Everything_GetTargetMachine to Everything3_GetTargetMachine
  • Everything3_GetResultListPropertyRequestValueType now returns EVERYTHING3_PROPERTY_VARIANT_TYPE_NULL on error.
    (instead of EVERYTHING3_INVALID_PROPERTY_ID)
  • Everything3_GetResultListFolderCount, Everything3_GetResultListFileCount ans Everything3_GetResultListCount now
    sets the last error to EVERYTHING3_OK if the result count was 0.
  • Everything3_GetResultListTotalSize now returns EVERYTHING_UINT64_MAX on error. (was 0)
  • removed Everything3_GetResultListPropertyRequestOffset.
  • Everything3_ClearSearchSorts now returns true if successful.
  • Everything3_ClearSearchPropertyRequests now returns true if successful.
  • fixed memory corruption when reallocating sort array.
  • fixed memory corruption when reallocating property request array.
  • fixed a crash with overlapped reads.
  • fixed a crash with overlapped writes.
  • fixed an issue with requesting date modified with _everything3_read_journal.
  • added Everything3_SetSearchSort.
  • added API documentation.
void
Developer
Posts: 19190
Joined: Fri Oct 16, 2009 11:31 pm

Re: Everything 1.5 SDK

Post by void »

Everything-SDK-3.0.0.8.zip

Thursday 25 September 2025 Version 3.0.0.8
  • fixed a crash with overlapped reads.
  • fixed a crash with overlapped writes.
void
Developer
Posts: 19190
Joined: Fri Oct 16, 2009 11:31 pm

Re: Everything 1.5 SDK

Post by void »

Everything-SDK-3.0.0.9.zip
  • improved connecting to the ipc3 pipe server when it is busy.
cyan
Posts: 2
Joined: Sat Jun 24, 2023 6:22 am

Re: Everything 1.5 SDK

Post by cyan »

Hey, I get an error which I think is EVERYTHING3_ERROR_IPC_PIPE_NOT_FOUND when running the sdk3.test.c file (with all the tests uncommented), as well as my own program based on the example. The everything service is running and everything is open, and neither program is being run as administrator, and the windhawk mod that I have installed that seems to be doing the exact same thing also seems to work completely fine (https://windhawk.net/mods/explorer-deta ... file-sizes) since the folder sizes show up in explorer. Do you know what the cause could be?
image.png
image.png (718.08 KiB) Viewed 33954 times
Last edited by cyan on Sun Dec 07, 2025 6:23 pm, edited 1 time in total.
void
Developer
Posts: 19190
Joined: Fri Oct 16, 2009 11:31 pm

Re: Everything 1.5 SDK

Post by void »

You have Everything 1.4.

The Everything 1.5 SDK (SDK3) only works with Everything 1.5.

Everything 1.5:
https://www.voidtools.com/forum/viewtopic.php?f=12&t=9787

Everything 1.4 SDK:
https://www.voidtools.com/support/everything/sdk/
cyan
Posts: 2
Joined: Sat Jun 24, 2023 6:22 am

Re: Everything 1.5 SDK

Post by cyan »

ohh that makes a lot more sense, thanks! i thought the reason there was an option to pass something to everything3_connect that not passing anything was for 1.4 and below and passing 1.5a was for 1.5, and i also thought this was the version of the sdk that the windhawk mod was using which lead me to believe this would work, but i rewrote it with the 1.4 sdk and everything works great!
Kilmatead
Posts: 40
Joined: Thu Nov 07, 2024 1:22 pm

Re: Everything 1.5 SDK

Post by Kilmatead »

cyan wrote: Mon Dec 08, 2025 8:35 pm i also thought this was the version of the sdk that the windhawk mod was using which lead me to believe this would work
The windhawk mod actually uses both (so it can work with either version of Everything without the user needing to worry about it) - though the routines it uses for 1.4 are a limited subset of the 1.4 SDK itself, for brevity. The source code is available for the curious.
necta
Posts: 1
Joined: Wed Jan 28, 2026 8:17 am

Re: Everything 1.5 SDK

Post by necta »

SDK 1.5a - GetResultPropertyUINT64 returns 0 for File Size (ID 2/10) - AHK v1.*

Hi,

I am facing a strange issue retrieving individual file sizes using the Everything 3.0 SDK (x64 DLL) with Everything 1.5.0.1404a x64.
Environment:

Language: AutoHotkey v1.1.37.02 x64.
OS: Windows 11
Instance: Named "1.5a".
Drive: Local NTFS partition (Drive H:), indexed via USN Journal.
Everything Settings: "Index file size", "Index folder size", and "Fast size sort" are all ENABLED. The "Size" property is also set to "Include in Everything index".

The Issue: I can successfully retrieve folder sizes using Everything3_GetFolderSizeFromFilenameW. However, any attempt to retrieve file sizes via the result list returns 0, even though the sizes are correctly displayed in the Everything 1.5a GUI.

What I have tested: I implemented a full SearchState workflow to ensure properties are requested correctly:

Everything3_CreateSearchState(pClient)
Everything3_SetSearchRequestFlags(pSearchState, 0x400 | 0x1 | 0x2) (Size + Name + Path)
Everything3_AddSearchPropertyRequest(pSearchState, 2) (ID 2 was identified as "Size" via Everything3_FindPropertyW, I also tried standard ID 10).
Everything3_Search(pClient, pSearchState) returns a valid pResultList.
Everything3_GetResultPropertyUINT64(pResultList, 0, 2, &vSize) returns TRUE (Success).

The Result: Despite the function returning success, the 8-byte buffer (vSize) always contains 0.

Code Snippet (AHK v1.1):

VarSetCapacity(vSize, 8, 0)
success := DllCall("Everything3_x64\Everything3_GetResultPropertyUINT64"
, "Ptr", pResultList
, "UInt", 0
, "UInt", 2 ; Size Property ID
, "Ptr", &vSize
, "Int")

Taille := NumGet(vSize, 0, "Int64") ; Yields 0
Is there a specific requirement in Build 1404a to access file sizes via IPC that differs from folder sizes?

Thank you for your time and for this incredible search engine.
Kilmatead
Posts: 40
Joined: Thu Nov 07, 2024 1:22 pm

Re: Everything 1.5 SDK

Post by Kilmatead »

necta wrote: Wed Jan 28, 2026 8:43 am Everything3_SetSearchRequestFlags(pSearchState, 0x400 | 0x1 | 0x2) (Size + Name + Path)
...
Everything3_GetResultPropertyUINT64(pResultList, 0, 2, &vSize) returns TRUE (Success).
You appear to be confusing functions from the 1.4 API with 1.5. There is no SetSearchRequestFlags in 1.5, and you have the incorrect arguments and return-type for GetResultPropertyUINT64.

The prototype for GetResultPropertyUINT64 is

Code: Select all

Everything3_UINT64 Everything3_GetResultPropertyUINT64(const EVERYTHING3_RESULT_LIST *result_list, SIZE_T result_index, DWORD property_id)
It returns the size itself, not a boolean, so emulate the call as:

Code: Select all

vSize = Everything3_GetResultPropertyUINT64(pResultList, 0, 2)
Keep in mind that an error is indicated if the return is UINT64_MAX (0xffffffffffffffff, de-facto "-1"), any other value (including 0) would be the filesize itself.

Do not mix the API's together - stick with 1.4 or 1.5 - they are not interchangeable. ;)
Post Reply