int wmain() { // CoInitialize(NULL); CoInitializeEx(NULL, COINIT_MULTITHREADED); IInventory* pInv = NULL; HRESULT hr = CoCreateInstance(CLSID_Trader, NULL, CLSCTX_INPROC_SERVER, IID_IInventory, reinterpret_cast<LPVOID*>(&pInv)); if(SUCCEEDED(hr)) { int qty; double bal; wcout << L"Number of items to purchase : "; wcin >> qty; hr = pInv->Buy(qty, 100); if(FAILED(hr)) wcout << L"Buy operation failed with error code of " << hex << hr << endl; else { IAccount* pAcc = NULL; pInv->QueryInterface(IID_IAccount, reinterpret_cast<LPVOID*>(&pAcc)); pInv->GetStock(&qty); pAcc->GetBalance(&bal); wcout << L"Current stock : " << qty << endl; wcout << L"Current balance : " << bal << endl; pAcc->Release(); } pInv->Release(); } else
BOOL CDlgLevelInput::LoginLevel(const CString &strAccName, const CString &strAccPwd) { CString strUserAcc(""), strPwd(""); if (strAccName.IsEmpty() || strAccPwd.IsEmpty()) { EnableInput(FALSE); CString strText; CString strTitle; strTitle.LoadString(IDS_STRING_Error); ////////////////////////////////////////////////////////////////////////// // 获取账号、密码 GetDlgItem(IDC_EDIT_SHACC)->GetWindowText(strUserAcc); if (strUserAcc.IsEmpty()) { strText.LoadString(IDS_STRING_AccountError); MessageBox(strText,strTitle); EnableInput(TRUE); GetDlgItem(IDC_EDIT_SHACC)->SetFocus(); return FALSE; } strPwd = m_sEdit.GetRealText(); if (strPwd.IsEmpty()) { strText.LoadString(IDS_STRING_PasswardError); MessageBox(strText,strTitle); EnableInput(TRUE); m_sEdit.SetFocus(); return FALSE; } } else { strUserAcc = strAccName; strPwd = strAccPwd; } long handle = g_pDoLogin->ConnectServer(CEV_Connect_LEVEL2); if (handle) {// level2服务连接成功 IAccountMng *pTradeAccountMng = g_pDoLogin->m_pTradeCore->GetAccountMng(); if(pTradeAccountMng && pTradeAccountMng->GetCount(atLevel2) == 0) { //IAccount* pQHAccount = pTradeAccountMng->Add(atLevel2); IAccount* pQHAccount = pTradeAccountMng->NewAccount(atLevel2); if(pQHAccount) { pQHAccount->SetLoginAccount(strUserAcc); pQHAccount->SetCellNo(""); pQHAccount->SetLoginAccountType(""); pQHAccount->SetPassword(strPwd); pQHAccount->SetServerID(0); pQHAccount->SetBranchNo("0"); pQHAccount->SetConnectHandle(handle); CString sMsg = ""; if( pQHAccount->Login(sMsg) ) { pTradeAccountMng->Add(pQHAccount); pTradeAccountMng->SetCurrentAccount(pQHAccount); return TRUE; } else { pQHAccount->Release(); //pTradeAccountMng->DeleteAccount(pQHAccount); // CDataSourceInitDataStauts msg; // strncpy(msg.m_szMsg, sMsg, min(sMsg.GetLength()+1, 256)); // FSetProgressMsg(&msg); MessageBox(sMsg, "Error", MB_OK | MB_ICONERROR); } } } } EnableInput(TRUE); return TRUE; }