Skip to content

Wrapping d3dim.dll and d3dim700.dll

Elisha Riedlinger edited this page Apr 24, 2019 · 1 revision

Overview

d3dim.dll is used for Direct3D version 1 through 6. d3dim700.dll is used for Direct3D version 7.

Initially I wanted to make a wrapper for these two dlls. However after trying to research the exports used by each of these dlls I found out that wrapping these dlls is not needed because these dlls should always be loaded via ddraw.dll so just wrapping this one dll is all that should be needed.

A wrapper for ddraw.dll can cover DirectDraw versions 1 through 7 and Direct3D versions 1 through 7.

Loading

There are two possible ways that d3dim.dll and d3dim700.dll can be loaded:

  1. Application --> ddraw.dll --> d3dim700.dll
  2. Application --> d3dim700.dll --> ddraw.dll --> d3dim700.dll (FlushD3DDevices)

Note: d3dim700.dll dlls mentioned above could also be d3dim.dll.

Wrappers

When creating a wrapper for ddraw.dll the flow will look like this:

  1. Application --> ddraw.dll<wrapper> --> ddraw.dll --> d3dim700.dll
  2. Application --> d3dim700.dll --> ddraw.dll<wrapper> --> ddraw.dll --> d3dim700.dll (FlushD3DDevices)

Note: d3dim700.dll dlls mentioned above could also be d3dim.dll.

References

For more references see the following pages:

Clone this wiki locally