I Guess i would try something as the next, couldn't check if it worked though, i've nothin' alike.
[DllImport("**YOURDLL**"]
private static extern int VDGetPluginInfo();
[StructLayout(LayoutKind.Sequential)]
private struct VDPointer
{
public int VDXPlugin;
}
public List<intptr> GetPointers()
{
VDPointer Result = new VDPointer();
Result.VDXPlugin = -1;
List<intptr> ToFill = new List<intptr>();
int Retrieve = VDGetPluginInfo;
while (Result. VDXPlugin != 0)
{
Result = (VDPointer)Marshal.PtrToStructure(new IntPtr(Retrieve), typeof(VDPointer));
if (Result.VDXPlugin != 0)
{
Retrieve += 4;
ToFill.Add(new IntPtr(Result.VDXPlugin));
}
}
return ToFill;
}
I think this should do the trick, and from there u could retrieve the contents of the pointers the same:
VDXPluginInfo GetMe = (VDXPluginInfo)Marshal.PtrToStructure(List[0], typeof(VDXPluginInfo));