// StockData.h: interface for the CStockData class. // ////////////////////////////////////////////////////////////////////// #if !defined(AFX_STOCKDATA_H__144B0F70_A819_4CDD_BF01_CE80429DC738__INCLUDED_) #define AFX_STOCKDATA_H__144B0F70_A819_4CDD_BF01_CE80429DC738__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #define MAX_DATA 999999 #pragma pack(push, 1) typedef struct _tag_STOCKDATA { char szCode[8]; // Á¾¸ñÄÚµå. A012345 char szName[31]; // Á¾¸ñ¸í. long lCode; // long type Á¾¸ñÄÚµå. BYTE cbStockType; // Á¾¸ñ±¸ºÐ(1-Àå³», 5-ÄÚ½º´Ú, 6-Á¦3½ÃÀå). long lStockPrice; // ÇöÀç°¡. bool bHeigest; // »óÇÑ. bool bLowest; // ÇÏÇÑ. bool bSpecialCodeByPublish; // °ø½Ã¿¡ ´ëÇÑ Æ¯º°Á¾¸ñ ¼³Á¤¿©ºÎ. bool bRejectedFromRegistery; // °ÅºÎÁ¾¸ñ ¿©ºÎ 1 : ·¹Áö½ºÆ®¸® ÀÌ¿ë. bool bRejectedFromFile; // °ÅºÎÁ¾¸ñ ¿©ºÎ 2 : °ÅºÎ_ÀüÀå°Å·¡ºÎÁøÁ¾¸ñÄÚµå.txt ÆÄÀÏ. bool bRepeated; // Áߺ¹Á¾¸ñ ¿©ºÎ. bool bManualInputCode; // ¼öµ¿Á¾¸ñ ¿©ºÎ. ULONG lTradeCount; // ÀüÀÏ °Å·¡·®. ULONG lTradeMoney; // ÀüÀÏ °Å·¡´ë±Ý.(´ÜÀ§: õ¿ø) } STOCKDATA, *LPSTOCKDATA; // Á¾¸ñÄڵ尡 À妽º·Î ÀÛ¿ëÇÔ. #pragma pack(pop) class CHookMsgDlg; class CStockData { friend UINT StockDataThread( LPVOID arg ); public: CStockData( CHookMsgDlg * pParent ); virtual ~CStockData(); void Initialize(); BOOL Open(); BOOL Start(); BOOL Stop(bool bForce=false); HANDLE Close(bool bWait=false); BOOL StockVerify( CString &strCode, long & _Price, BYTE & _Type ); BOOL StockVerify( long nCode, long & _Price, BYTE & _Type ); long ReCalcPrice( long _Price, long nLevel ); ///////////////////////////////////////////////////////////////////// BOOL ReadFileSpecialCodeByPublish(); BOOL ReadFileExclusionCodeFromFile(); void InitExclusionCodeFromRegistery(); BOOL ReadFileManualInputCodeFromFile(); void ListBoxLoad_RepeatedCode( CListBox *pListBox ); void ListBoxSave_RepeatedCode( CListBox *pListBox ); void AddRepeatedCode( CString strCode ); void ListBoxLoad_ExclusionCode( CListBox *pListBox ); void ListBoxSave_ExclusionCode( CListBox *pListBox ); void ListBoxLoad_SpecialCode( CListBox *pListBox ); void ListBoxSave_SpecialCode( CListBox *pListBox ); void ListBoxLoad_ManualInputCode( CListBox *pListBox ); void ListBoxSave_ManualInputCode( CListBox *pListBox ); STOCKDATA * GetStockData( long nCode ) { STOCKDATA * pData = (STOCKDATA*)&m_pData[ m_pDataPos[nCode] ]; if( pData->lCode != nCode ) return NULL; return pData; } private: void Running(); BOOL Initialize_RepetitionCode( CString strFile ); private: CHookMsgDlg * m_pParent; long * m_pDataPos; // ½ÇÁ¦ µ¥ÀÌÅÍÀÇ ¹è¿­À妽º. STOCKDATA * m_pData; // ½ÇÁ¦ µ¥ÀÌÅÍ. long m_nMaxData; // ½ÇÁ¦ µ¥ÀÌÅ͹迭ÀÇ ±æÀÌ. std::ofstream * m_pAddRepetitionCode; IDibPtr m_objStockMstm; HANDLE m_hWaitEventStockData; // Thread Wait check event. BOOL m_bRunning; BOOL m_bThreadRun; public: BOOL m_bRunningSkip; HANDLE m_hCloseEvent; // Thread close check event. }; #endif // !defined(AFX_STOCKDATA_H__144B0F70_A819_4CDD_BF01_CE80429DC738__INCLUDED_)