@SonnyBoy:
Your example shows just an empty record.
If it is just a case of naming the C++ record try this:
type
TD3DX12_PACKED_MIP_INFO = TD3D12_PACKED_MIP_INFO;
// or strongly typed:
type
TD3DX12_PACKED_MIP_INFO = type TD3D12_PACKED_MIP_INFO;
Usually such C(++) records are opaque to Pascal code. Therefor in recent trunk a special record and pointer type were added to the system unit: TOpaqueData and OpaquePointer that are for use in just such cases.
You can declare these in the same manner as I described above and the compiler will provide type checking.
type
PD3D12_PACKED_MIP_INFO = OpaquePointer; // pointer to TOpaqueData
TD3D12_PACKED_MIP_INFO = TOpaqueData; // declared as an empty "opaque" record
PD3DX12_PACKED_MIP_INFO = ^TD3DX12_PACKED_MIP_INFO
TD3DX12_PACKED_MIP_INFO = TD3D12_PACKED_MIP_INFO;
// or strongly typed:
type
TD3DX12_PACKED_MIP_INFO = type TD3D12_PACKED_MIP_INFO;
This works because we usually need the pointers and not the structure itself and these are now typed pointers in the same fashion as C++ expects.
You need a very recent trunk for this. 3.1.1-r37942