> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# InprocLoader Object

> InprocLoader Object in the ABBYY FineReader Engine API — This object implements the IEngineLoader interface, which provides methods for loading and unloading the Engine object.

<Note>
  This object is implemented in FRE for Windows.
</Note>

This object implements the [IEngineLoader](/fine-reader/engine/api-reference/engine-loaders/iengineloader) interface, which provides methods for loading and unloading the [Engine](/fine-reader/engine/api-reference/engine-object-iengine-interface) object. This object allows you to load ABBYY FineReader Engine as an in-process server into the current process.

If this loading method is used, all ABBYY FineReader Engine objects are completely thread-safe. They can be created and used in different threads. When working with objects from the Main STA apartment, the performance of the application remains the same as when working with naked interfaces (if standard loading by means of the [InitializeEngine](/fine-reader/engine/api-reference/functions/initializeengine-function) function is used). When accessing from different threads, marshalling overhead may occur, but it is negligible in most scenarios.

<Warning>
  This loading method requires registration of FREngine.dll when installing the application on an end user's computer. To register FREngine.dll, use the following command line:
</Warning>

```csharp theme={null}
regsvr32 /s /n /i:"<path to the Inc folder>" "<path to FREngine.dll>"
```

For more information, see [Different Ways to Load the Engine Object](/fine-reader/engine/guided-tour/advanced-techniques/programming-aspects/different-ways-to-load-engine).

## Samples

<Accordion title="C# code">
  ```csharp theme={null}
  IEngineLoader engineLoader = new FREngine.InprocLoader();
  IEngine engine = engineLoader.InitializeEngine(…);
  try {
   …
  } finally {
   engineLoader.ExplicitlyUnload();
  }
  ```
</Accordion>

## See also

[IEngineLoader](/fine-reader/engine/api-reference/engine-loaders/iengineloader)

[Different Ways to Load the Engine Object](/fine-reader/engine/guided-tour/advanced-techniques/programming-aspects/different-ways-to-load-engine)
