MHSSearch

LPSTOREDADDRESS AddAddress(
    LPADDADDRESS lpaAddress)


Adds an address to the Stored Address List.
    lpaAddress->aAddress: The address of the item. This is not needed if lpaAddress->iAddressType is not MAA_DEFAULT.
    lpaAddress->iType: MT_* type of data. For example, MT_ULONG.
    lpaAddress->iLockType: Type of lock. Must be one of the SV_LOCK_* enumerated values. For example, SV_LOCK_STATIC.
        If lpaAddress->iLockType is SV_LOCK_STATIC, lpaAddress->pbLockedValue and lpaAddress->dwLockValueSize must contain the value to which to lock the stored address and its size, respectively.
        If lpaAddress->iLockType is SV_LOCK_RANGE, lpaAddress->uLockParms.irLock or lpaAddress->uLockParms.drLock must be filled with the high and low values. If the type of the item is MT_DOUBLE or MT_FLOAT, drLock must be filled, otherwise irLock must be filled.
        If lpaAddress->iLockType is SV_LOCK_MINBARRIER, lpaAddress->uLockParms.i64Limit should specify the minimum possible value if the type of the item is not MT_FLOAT or MT_DOUBLE, otherwise lpaAddress->uLockParms.dLimit should be used.
        If lpaAddress->iLockType is SV_LOCK_MAXBARRIER, lpaAddress->uLockParms.i64Limit should specify the maximum possible value if the type of the item is not MT_FLOAT or MT_DOUBLE, otherwise lpaAddress->uLockParms.dLimit should be used.
    lpaAddress->pcDescr: Pointer to a string indicating the description of the item.
    lpaAddress->iLockMethod: Indicates the method of locking. This can be MAL_DEFAULT, MAL_AUTOASSEMBLE, or MAL_SCRIPT. If MAL_AUTOASSEMBLE is specified then an Auto-Assembler script must also be given via lpaAddress->pcAutoAssemble. Otherwise, if MAL_SCRIPT is specified, a script must be given via lpaAddress->pcScript
    lpaAddress->iAddressType: Indicate the method used to determine the address of the item. This can be MAA_DEFAULT, MAA_COMPLEX, or MAA_SCRIPT. If MAA_COMPLEX is specified, lpaAddress->pcComplexAddress must point to a valid Complex Address in string format. If MAA_SCRIPT is specified, lpaAddress->pcScript must point to a valid script in string format.
    lpaAddress->bUseScriptForBaseAddress: Indicates that the script supplied in lpaAddress->pcScript will be used to determine the base address of the item. Only valid if lpaAddress->iAddressType is MAA_SCRIPT.
    lpaAddress->bUseScriptForFinalAddress: Indicates that the script supplied in lpaAddress->pcScript will be used to determine the final address of the item. Only valid if lpaAddress->iAddressType is MAA_SCRIPT.
    lpaAddress->iHotKeyKey: The Hotkey Key used for unlocking and locking the stored address via Hotkeys.


DWORD GetLastEvaluationType()


Returns one of the ST_* enumerations depicting the evaluation type of the last search.


DWORD GetLastScanDataType()


Returns one of the MT_* enumerations depicting the data type of the last search or sub search. If the last search was a Group Search or Template Search, this returns MT_NONE. If the last search was a String Search, this returns MT_STRING.


DWORD GetLastScanType()


Returns one of the LS_* enumerations depicting the type of the last search or sub search.


DWORD GetScanTotal()


Gets the total number of results returned in a scan.


BOOL GetScanValue(
    DWORD dwIndex,
    LPVOID * lppvAddress,
    LPVOID lpvBuffer)


Gets a value from the last scan by index. dwIndex is the index of the value to get. lppvAddress is filled with the address of the returned result and lpvBuffer is filled with the actual value of the return. If the supplied index is invalid, it returns false.


BOOL HaveScanned()


Determines whether a scan has been made.


BOOL LockScanForRead()


Locks the scanner for reading. This should be called before reading values with GetScanValue. If it is not, GetScanValue may sometimes fail. This must be matched with a call to UnlockScanForRead. Returns TRUE if the scanner was locked, false otherwise.


BOOL RAMSearch(
    LPMHS_API_SEARCH_PARMS lpsParms)


Scans the process RAM using the type of search specified by lpsParms->dwType (LS_DATATYPE, LS_POINTER, or LS_STRING) using the search-specific options.
    LS_DATATYPE:
        lpsParms->TypeParms.dtParms.dwDataType can be one of MT_CHAR, MT_BYTE, MT_SHORT, MT_USHORT, MT_LONG, MT_ULONG, MT_FLOAT, or MT_DOUBLE, and this determines how lpsParms->TypeParms.dtParms.atValue and lpsParms->TypeParms.dtParms.atTo are decoded.
        lpsParms->TypeParms.dtParms.dwSubType can be one of ST_EXACT, ST_NOTEQUALTO, ST_RANGE, ST_LOWERTHAN, ST_GREATERTHAN, or ST_UNKNOWN. If ST_RANGE, the lpsParms->TypeParms.dtParms.atTo value is used.
    LS_POINTER:
        lpsParms->TypeParms.pParms.dwSubType can be one of ST_EXACT, ST_NOTEQUALTO, ST_RANGE, ST_LOWERTHAN, ST_GREATERTHAN, or ST_UNKNOWN. If ST_RANGE, the lpsParms->TypeParms.pParms.atTo value is used.
        Set lpsParms->TypeParms.pParms.lpvSaveOffset to NULL if you do not wish to save offsets from any addresses, otherwise set it to the address from which you wish to save offsets.
    LS_STRING:
        lpsParms->TypeParms.sParms.pcValue indicates the byte array to find (not necessarily terminated with a NULL character).
        lpsParms->TypeParms.sParms.dwLength indicates the length of the byte array to find.


BOOL RAMSubSearch(
    LPMHS_API_SUB_SEARCH_PARMS lpsParms)


Perform a sub search.


BOOL SaOSubScanEnabled()


Determines whether the Same as Original sub search is enabled.


VOID SetSearchRange(
    MHS_ADDRESS aStart,
    MHS_ADDRESS aEnd)


Set the search range.


BOOL UnlockScanForRead()


Unlocks the scanner after having been previously locked with LockScanForRead.


Copyright © 2006 Shawn (L. Spiro) Wilcoxen