void* __stdcall Query(char type, void* pApi1, void* pApi2, double double1, double double2, void* ptr1, int size1, void* ptr2, int size2, void* ptr3, int size3) { // 由内部调用,不用检查是否为空 CMdUserApi* pApi = (CMdUserApi*)pApi1; pApi->QueryInThread(type, pApi1, pApi2, double1, double2, ptr1, size1, ptr2, size2, ptr3, size3); return nullptr; }
void* __stdcall XRequest(char type, void* pApi1, void* pApi2, double double1, double double2, void* ptr1, int size1, void* ptr2, int size2, void* ptr3, int size3) { RequestType rt = (RequestType)type; switch (rt) { case GetApiType: return (void*)(ApiType::MarketData | ApiType::Level2); case GetApiVersion: return (void*)"0.1"; case GetApiName: return (void*)"Femas"; case Create: return new CMdUserApi(); default: break; } if (pApi1 == nullptr) { return nullptr; } CMdUserApi* pApi = GetApi(pApi1); switch (rt) { case Release: delete pApi; return nullptr; case Register: pApi->Register(ptr1); break; case Config: return (void*)pApi->Config((ConfigInfoField*)ptr1); break; case Connect: pApi->Connect((const char*)ptr3, (ServerInfoField*)ptr1, (UserInfoField*)ptr2); break; case Disconnect: pApi->Disconnect(); break; case Subscribe: pApi->Subscribe((const char*)ptr1, (const char*)ptr2); break; case Unsubscribe: pApi->Unsubscribe((const char*)ptr1, (const char*)ptr2); break; //case SubscribeQuote: // pApi->SubscribeQuote((const char*)ptr1, (const char*)ptr2); // break; //case UnsubscribeQuote: // pApi->UnsubscribeQuote((const char*)ptr1, (const char*)ptr2); // break; default: // 通知 break; } return pApi1; }
void* __stdcall XRequest(char type, void* pApi1, void* pApi2, double double1, double double2, void* ptr1, int size1, void* ptr2, int size2, void* ptr3, int size3) { RequestType rt = (RequestType)type; if (rt == RequestType::Create) { return new CMdUserApi(); } if (pApi1 == nullptr) { return nullptr; } CMdUserApi* pApi = GetApi(pApi1); switch (rt) { case RequestType::Release: delete pApi; return nullptr; case RequestType::Register: pApi->Register(ptr1); break; case RequestType::Config: return (void*)pApi->Config((ConfigInfoField*)ptr1); break; case RequestType::Connect: pApi->Connect((const char*)ptr3, (ServerInfoField*)ptr1, (UserInfoField*)ptr2); break; case RequestType::Disconnect: pApi->Disconnect(); break; case RequestType::Subscribe: pApi->Subscribe((const char*)ptr1, (const char*)ptr2); break; case RequestType::Unsubscribe: pApi->Unsubscribe((const char*)ptr1, (const char*)ptr2); break; //case RequestType::SubscribeQuote: // pApi->SubscribeQuote((const char*)ptr1, (const char*)ptr2); // break; //case RequestType::UnsubscribeQuote: // pApi->UnsubscribeQuote((const char*)ptr1, (const char*)ptr2); // break; default: // 通知 break; } return pApi1; }