[UnmanagedFunctionPointer(CallingConvention.Cdecl)] public delegate void QueryPositionHandle(int MsgSeq, [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)]PPositionInfo[] PPositionInfoItems, int PPositionInfoCount); [StructLayout(LayoutKind.Sequential, Pack = 4)] public struct PPositionInfo { [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)] public string AcctNo; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)] public string Symbol; public int Qty; public double Cost; public double AvgPrice; public double MktValue; public double MktPrice; public double PL; };
public delegate void QueryPositionHandle(int MsgSeq, [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)]PPositionInfo[] PPositionInfoItems, int PPositionInfoCount); [StructLayout(LayoutKind.Sequential, Pack = 4)]
public struct PPositionInfo
{
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]
public string AcctNo;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]
public string Symbol;
public int Qty;
public double Cost;
public double AvgPrice;
public double MktValue;
public double MktPrice;
public double PL;
};