# IPI_UnloadImage() This subprocedure is used to unload an image that was previously loaded using [IPI_LoadImage()](https://isupport.katointegrations.com/ipi/ipi_loadimage.md). This should be called to free memory associated with the loaded image prior to calling [IPI_Terminate()](https://isupport.katointegrations.com/ipi/ipi_terminate.md). ## Subprocedure Prototype | Field | Description | |---|---| | `Dcl-Pr IPI_UnloadImage Ind ExtProc('IPI_UnloadImage');` | Returns *OFF if an error occurs during processing, *ON otherwise. | | ` pImageDS LikeDS(IPI_ImageDS_t);` | Contains image data previously loaded by IPI_LoadImage() | | ` pErrorDS LikeDS(IPI_ErrorDS_t) Options(*NoPass:*Omit);` | Optional parameter that, if passed, will contain error data returned from the subprocedure. If it is not passed, exceptions will instead be "thrown" and must be caught by a MONITOR block. | | `End-Pr;` | | ## Data Structures ### IPI_ImageDS_t | Field | Description | |---|---| | `Dcl-Ds IPI_ImageDS_t Qualified Template Inz;` | | | ` Image Pointer Inz(*Null);` | **Internal use only** | | ` MaxSize Uns(10);` | **Internal use only** | | ` UsedSize Uns(10);` | **Internal use only** | | ` Format Char(8);` | **Internal use only** | | `End-Ds;` | | ### IPI_ErrorDS_t | Field | Description | |---|---| | `Dcl-Ds IPI_ErrorDS_t Qualified Template Inz;` | | | ` Subproc VarChar(132);` | Subprocedure which received error | | ` MessageCode Char(7);` | Message ID of error message | | ` Message VarChar(1024);` | Error message text | | `End-Ds;` | |