public static void OnRspQryOrdersToday(IntPtr pContex, bool bSuccess, IntPtr pOrders, int nCount, int nOperationSeq, IntPtr pszErrorMsg) { //Console.WriteLine("OnRspQryOrdersToday: " + Marshal.PtrToStringAnsi(pszErrorMsg)); Sys_log = Sys_log + "\n" + DateTime.Now.ToString() + ": 正在查询今日下单:" + Marshal.PtrToStringAnsi(pszErrorMsg); if (bSuccess && pOrders != IntPtr.Zero && nCount > 0) { tagSTRUCT_ORDER_FIXED[] Orders = new tagSTRUCT_ORDER_FIXED[nCount]; for (int i = 0; i < nCount; i++) { IntPtr porders = (IntPtr)((UInt32)pOrders + i * Marshal.SizeOf(typeof(tagSTRUCT_ORDER_FIXED))); Orders[i] = (tagSTRUCT_ORDER_FIXED)Marshal.PtrToStructure(porders, typeof(tagSTRUCT_ORDER_FIXED)); //Console.WriteLine((i + 1).ToString() + "\t" + ORDER_STATUS_NAME[(int)Orders[i].ordStatus].ToString() + "\t" + Orders[i].nOrderDate.ToString() + "\t" + Orders[i].nOrderTime.ToString() + "\t" + Orders[i].szOrderSysID + "\t" + Orders[i].szExchangeID + "\t" + //Orders[i].szInstrumentID + "\t" + ORDER_OFFSET_NAME[(int)Orders[i].ordOffset] + "\t" + ORDER_DIRECTION_NAME[(int)Orders[i].ordDirection] + "\t" + Orders[i].nOrderVolume.ToString() + "\t" + Orders[i].dOrderPrice.ToString() + "\t" + //Orders[i].nDealVolume.ToString() + "\t" + Orders[i].dAveragePrice.ToString() + "\t" + Orders[i].dTotalAmount.ToString() + "\t" + Orders[i].nCanceledVolume.ToString()); //update orderStatus if (orderStatus.ContainsKey(Orders[i].szLocalHandleID.ToString())) { orderStatus[Orders[i].szLocalHandleID.ToString()] = Orders[i].ordStatus.ToString(); } else { orderStatus.TryAdd(Orders[i].szLocalHandleID.ToString(), Orders[i].ToString()); } } } }
public static void OnRtnOrder(IntPtr pContex, bool bSuccess, IntPtr pOrder, bool bCurrentConnection, IntPtr pszErrorMsg) { //Console.WriteLine("OnRtnOrder: " + Marshal.PtrToStringAnsi(pszErrorMsg)); Sys_log = Sys_log + "\n" + DateTime.Now.ToString() + ": 正在查询所有下单:" + Marshal.PtrToStringAnsi(pszErrorMsg); if (bSuccess) { if (pOrder != IntPtr.Zero) { tagSTRUCT_ORDER_FIXED Order = new tagSTRUCT_ORDER_FIXED(); Marshal.PtrToStructure(pOrder, typeof(tagSTRUCT_ORDER_FIXED)); //Console.WriteLine(1.ToString(), "\t" + ORDER_STATUS_NAME[(int)Order.ordStatus] + "\t" + Order.nOrderDate.ToString() + "\t" + Order.nOrderTime.ToString() + "\t" + Order.szOrderSysID + "\t" + Order.szExchangeID + "\t" + //Order.szInstrumentID + "\t" + ORDER_OFFSET_NAME[(int)Order.ordOffset] + "\t" + ORDER_DIRECTION_NAME[(int)Order.ordDirection] + "\t" + Order.nOrderVolume.ToString() + "\t" + Order.dOrderPrice.ToString() + "\t" + //Order.nDealVolume.ToString() + "\t" + Order.dAveragePrice.ToString() + "\t" + Order.dTotalAmount.ToString() + "\t" + Order.nCanceledVolume.ToString()); } } }
public static void TDQryOrder() { string csIdentity = ""; string csLocalHandleID = ""; uint dwUniqueID = 0; IntPtr pszErrMsg = Marshal.AllocHGlobal(256); if (g_hTDClient != IntPtr.Zero && (dwUniqueID > 0 || csIdentity != "" && csLocalHandleID != "")) { tagSTRUCT_ORDER_FIXED stOrder = new tagSTRUCT_ORDER_FIXED(); stOrder.dwUniqueID = dwUniqueID; stOrder.szIdentity = csIdentity; stOrder.szLocalHandleID = csLocalHandleID; IntPtr pstOrder = Marshal.AllocHGlobal(256); Marshal.StructureToPtr(stOrder, pstOrder, true); WinfairTdApi_ReqQryOrder(g_hTDClient, pstOrder, pszErrMsg); Console.WriteLine(Marshal.PtrToStringAnsi(pszErrMsg)); } }