?? stockdrv.h
字號:
// 注一:
// 記錄數表示行情數據和補充數據(包括 Header)的數據包數,對文件類型數據, = 1
// 注二:
// 若 m_bDISK = FALSE, m_pData 為數據緩沖區指針
// ******** 數據共享,不能修改數據 **********
// m_bDISK = TRUE, m_pData 為該文件的存盤文件名,一般情況只有
// 升級軟件等大文件用存盤方式
typedef struct tagRCV_DATA
{
int m_wDataType; // 文件類型
int m_nPacketNum; // 記錄數,參見注一
RCV_FILE_HEADEx m_File; // 文件接口
BOOL m_bDISK; // 文件是否已存盤的文件
union
{
RCV_REPORT_STRUCTEx * m_pReport;
RCV_HISTORY_STRUCTEx * m_pDay;
RCV_MINUTE_STRUCTEx * m_pMinute;
RCV_POWER_STRUCTEx * m_pPower;
RCV_MULTISORT_STRUCTEx * m_pMultisort;
void * m_pData; // 參見注二
};
} RCV_DATA,*PRCV_DATA;
#pragma pack()
/* 消息處理程序 DEMO
LONG OnStkDataOK(UINT wParam,LONG lParam)
{
union tagSrcStock DOS_StkBuf;
RCV_REPORT_STRUCTEx NEW_StkBuf;
PBYTE pDataBuf;
RCV_DATA Header;
RCV_DATA * pHeader;
DWORD dwFileLen;
int ok;
pHeader = (RCV_DATA *)lParam;
switch( wParam )
{
case RCV_REPORT: // 共享數據引用方式,股票行情
for(i=0; i<pHeader->m_nPacketNum; i++)
{
pHeader->m_pReport[i] ...
// 數據處理
}
break;
case RCV_FILEDATA: // 共享數據引用方式,文件
switch(pHeader->m_wDataType)
{
case FILE_HISTORY_EX: // 補日線數據
break;
case FILE_MINUTE_EX: // 補分鐘線數據
break;
case FILE_POWER_EX: // 補充除權數據
break;
case FILE_BASE_EX: // 錢龍兼容基本資料文件,m_szFileName僅包含文件名
break;
case FILE_NEWS_EX: // 新聞類,其類型由m_szFileName中子目錄名來定
break;
case FILE_HTML_EX: // HTML文件,m_szFileName為URL
break;
case FILE_SOFTWARE_EX: // 升級軟件
break;
}
break;
default:
return 0; // unknown data
}
return 1;
}
*/
//////////////////////////////////////////////////////////////////////////////////
//APIs
#ifdef __cplusplus
extern "C"{
#endif
//////////////////////////////////////////////////////////////////////////////////
// 注冊函數
// 股票初始化
// 入口參數:
// hWnd 處理消息的窗口句柄
// Msg 用戶自定義消息
// nWorkMode 接口工作方式, 應等于 RCV_WORK_SENDMSG
// 返回參數:
// 1 成功
// -1 失敗
int WINAPI Stock_Init(HWND hWnd,UINT Msg,int nWorkMode);
int WINAPI Stock_Init_Nodialog(HWND hWnd,UINT Msg,int nWorkMode,
const char * szAddress, UINT nPort, const char * szUser, const char * szPasswd );
// 退出,停止發送消息
// 入口參數:
// hWnd 處理消息的窗口句柄,同 Stock_Init 的調用入口參數
// 返回參數:
// 1 成功
// -1 失敗
int WINAPI Stock_Quit(HWND hWnd);
//////////////////////////////////////////////////////////////////////////////////
// 行情接口
// 取已接收到的股票總數
int WINAPI GetTotalNumber();
// 由序號取股票數據(擴展)
// 入口參數:
// nNo 序號
// pBuf 存放股票數據的緩沖區
// 返回參數:
// NoStockData 無股票數據
// 注:
// 該函數提供股票數據的主要數據;分析軟件剛運行時,可以快速建立數據框架
int WINAPI GetStockByNoEx(int nNo,RCV_REPORT_STRUCTEx * pBuf);
// 由股號取股票數據(擴展)
// 入口參數:
// pszStockCode股票代號
// nMarket 證券市場
// pBuf 存放股票數據的緩沖區
// 返回參數:
// NoStockData 無股票數據
// 注:
// 該函數提供股票數據的主要數據;分析軟件剛運行時,可以快速建立數據框架
int WINAPI GetStockByCodeEx(char * pszStockCode,int nMarket,RCV_REPORT_STRUCTEx * pBuf);
// 激活接收程序,進行設置
// 入口參數:
// bShowWindow TRUE 顯示窗口,進行設置
// FALSE 隱含窗口
// 返回參數:
// 1 成功
// -1 失敗
int WINAPI SetupReceiver(BOOL bShowWindow);
// 取得股票驅動信息
// 入口參數:
// nInfo 索引
// pBuf 緩沖區
// 出口參數:
// nInfo == RI_IDSTRING, 返回特征字符串長度, pBuf 為特征字符串
// 如: "TongShi_StockDrv_1.00"
// nInfo == RI_IDCODE, 返回信息卡 ID 號, pBuf 為字符串形式的 ID 號
// 如: 0x78001234 "78001234"
// nInfo == RI_VERSION, 返回信息卡版本號, pBuf 為字符串版本
// 如: 1.00 "1.00"
// nInfo == RI_ERRRATE, 取信道誤碼,
// nInfo == RI_STKNUM, 取上市股票總家數
DWORD WINAPI GetStockDrvInfo(int nInfo,void * pBuf);
/////////////////////////////////////////////////////////////////////////////////////
// NetTS 支持新加接口,可主動請求數據
// 接收引擎是否已經啟動工作
// 返回參數:
// 1 已啟動
// 0 未啟動
int WINAPI IsEngineWorking( );
// 設置接收引擎是否自動定期刷新RCV_REPORT信息,缺省為TRUE
// 入口參數:
// bAutoReport 是否自動刷新,如果不是自動刷新,用戶需要主動調用
// RequestStockData( RCV_REPORT, ... )
// 返回參數:
// 1 以前為自動刷新
// 0 以前不是自動刷新
int WINAPI SetAutoReport( int bAutoReport );
// 由股號請求股票數據
// 入口參數:
// nDataType 數據類型,
// 如 FILE_HISTORY_EX, FILE_MINUTE_EX, FILE_POWER_EX,
// RCV_REPORT, FILE_MULTISORT_EX, FILE_DETAIL_EX,
// FILE_BASE_EX, FILE_NEWS_EX, FILE_HTML_EX
// FILE_SOFTWARE_EX, FILE_SHAZQDATA_EX
// pStocks 股票數據指針, 對于FILE_NEWS_EX,FILE_HTML_EX,FILE_SOFTWARE_EX,FILE_SHAZQDATA_EX,該值無效
// nSize 股票數據個數,同pStocks一樣,某些類型該值無效
// nKType 歷史數據類型,該參數僅對FILE_HISTORY_EX數據類型有效
// nDataCount 需要數據個數,該參數僅對FILE_HISTORY_EX數據類型有效,表示需要獲取的歷史數據個數,從當前日期往前數
// 返回參數:
// 1 請求發送成功
// -1 請求發送失敗
// 注:
// 該函數提供股票數據的主動請求,向Internet服務器發送請求,請求發送結束
// 后,立即返回. 當請求的數據從Internet服務器傳回時,向窗口發送消息
#define FILE_MULTISORT_EX 0x708 // 綜合排名
#define FILE_DETAIL_EX 0x709 // 成交明細
#pragma pack(1)
typedef struct tagSTOCK_STRUCTEx {
BYTE m_type; // stock's type, see enum StockType
char m_code[6]; // stock code
} STOCK_STRUCTEx,*pSTOCK_STRUCTEx;
#pragma pack()
enum StockType {
typeNone = 0x00,
typeshIndex = 0x10, // 上海指數
typeshA = 0x11, // 上海A股
typeshB = 0x12, // 上海B股
typeshBond = 0x13, // 上海債券
typeshRight = 0x14, // 上海權證
typeshBonus = 0x15, // 上海紅利
typeshAdmeasure = 0x16, // 上海配股
typeshInfo = 0x1F, // 上海證交所信息
typeszIndex = 0x20, // 深圳指數 0x20
typeszA = 0x21, // 深圳A股 0x21
typeszB = 0x22, // 深圳B股 0x22
typeszBond = 0x23, // 深圳債券 0x23
typeszRight = 0x24, // 深圳權證 0x24
typeszBonus = 0x25, // 深圳紅利 0x25
typeszAdmeasure = 0x26, // 深圳配股 0x26
typeszInfo = 0x2F, // 深圳證交所信息 0x2f
typeGeneralInfo = 0x05, // 綜合財經信息 0x05
};
enum KTypes {
ktypeNone = 0x00,
ktypeMin = 0x01, // enum KTypes 的最小值
ktypeMin5 = 0x01, // 五分鐘線
ktypeMin15 = 0x02, // 十五分鐘線
ktypeMin30 = 0x03, // 三十分鐘線
ktypeMin60 = 0x04, // 六十分鐘線
ktypeDay = 0x05, // 日線
ktypeWeek = 0x06, // 周線
ktypeMonth = 0x07, // 月線
ktypeMax = 0x07, // enum KTypes 的最大值
};
int WINAPI RequestStockData( int nDataType, STOCK_STRUCTEx * pStocks, int nSize, int nKType, int nDataCount );
#ifdef __cplusplus
}
#endif
#endif // __STOCKDRV_H__
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -