Some variations around the "IUnknown" type:
TPIUnknown = ^IUnknown;
TAIUnknown = array [0..maxInt shr 2-1] of IUnknown;
TPAIUnknown = ^TAIUnknown;
TDAIUnknown = array of IUnknown;
TPDAIUnknown = ^TDAIUnknown;
Please note, that allocating and freeing "TPIUnknown" or "TPAIUnknown"
variables is a bit dangerous. You have to know exactly what you're doing. So
please look at the examples in the String Types description. What I've
said there about allocating/freeing is true for every dynamic type, so it's
also true for "IUnknown".