# MX\_FILEHOOK Support for ISAM-A

> [HTML Version](mx_filehookforisam-a.htm)

The following table summarizes the event flags to use for hooking the various ISAM-A operations.

| **Symbol** | **ISAM-A File Operation** |
|------|------|
| HFE\_xxx\_WRITE | UPDATE'RECORD |
| HFE\_xxx\_WRITE | UPDATE'RECORD |
| HFE\_xxx\_WRITEL | CREATE'RECORD |
| HFE\_xxx\_ISAMA\_DEL | DELETE'RECORD |
| HFE\_xxx\_READ | GET, GET'NEXT, GET'PREV (optional 'READ'ONLY) |
| HFE\_xxx\_READL | GET'LOCKED, GET'NEXT'LOCKED, GET'PREV'LOCKED |
| HFE\_xxx\_ALLOC | ALLOCATE'INDEXED |




The DELETE'RECORD hook is enabled by one of the two event flags in [HOOK.DEF in ASHINC](https://bitbucket.org/microsabio/soslib/src/master/907016/hook.def):

define HFE\_PRE\_ISAMA\_DEL=  \&h00200000  \! ISAM-A pre delete'record 

define HFE\_POST\_ISAMA\_DEL= \&h00400000  \! ISAM-A post delete'record



GET'LOCKED and GET'NEXT'LOCKED are hooked like READL, while GET and GET'NEXT (without locking) are hooked like READ. Use the HFE\_xxx\_READL and/or HFE\_xxx\_READ flags to enable.

ALLOCATE'INDEXED is hooked like ALLOCATE (HFE\_xxx\_ALLOCATE flags).

A sample program, [ISPTSTH.BP in EXLIB:\[908,50\]](https://bitbucket.org/microsabio/exlib/src/556e866e33490bd011979bdbe72fc49c8574c4bb/908050/isptsth.bp?at=master) is available to demonstrate and test the ISAM-A hooks. Also see [fnhooklog.bsi in SOSLIB\[907,10\]](https://bitbucket.org/microsabio/soslib/src/master/907010/fnfhooklog.bsi) for the applicable hook event flags.

**History**

2019 March, A-Shell 6.5.1658:  Function added to A-Shell