이베스트증권
HTS연동
에어버스
2018. 7. 21. 15:00
HTS연동
OPEN_SCREEN 로 지정한 화면번호을 호출하면 HTS 해당창이 열리지만 다른 옵션들은 어떤 용도로 쓰는지 모름.
RequestLinkToHTS() 과 AdviseLinkFromHTS() 호출해서 실시간 요청하면 OnRececeiveLinkData()에서 실시간 데이터를 받지만 빈 문자열만 들어온다.
8행으로 시간외단일가 창을 열면 잔량, 호가 변화에 따른 데이터 수신이 안되고 처음 한번만 빈 문자열 데이터 수신하고 반응이 없다가 종목을 바꾸면 실시간 데이터 수신되지만 빈 문자열이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 |
BEGIN_MESSAGE_MAP(CNewBuyDlg, CDialogEx)
...
ON_MESSAGE(WM_USER + XM_RECEIVE_LINK_DATA, &CNewBuyDlg::OnXMReceiveLinkData)
END_MESSAGE_MAP()
void CNewBuyDlg::OnBnClickedButton1()
{
BOOL bResult = g_iXingAPI.RequestLinkToHTS(GetSafeHwnd(), TEXT("&OPEN_SCREEN"), TEXT("5110"));
if (bResult == FALSE)
AfxMessageBox(TEXT("화면연동 요청 실패!!!"));
else
g_iXingAPI.AdviseLinkFromHTS(GetSafeHwnd());
bResult = g_iXingAPI.RequestLinkToHTS(GetSafeHwnd(), TEXT("&STOCK_CODE"), TEXT("037070")); // 8행에서 오픈한 창에서 종목을 변경
if (bResult == FALSE)
AfxMessageBox(TEXT("화면연동 요청 실패!!!"));
else
g_iXingAPI.AdviseLinkFromHTS(GetSafeHwnd());
}
LRESULT CNewBuyDlg::OnXMReceiveLinkData(WPARAM wParam, LPARAM lParam)
{
if (LINK_DATA == wParam)
{
LINKDATA_RECV_MSG* pmsg = (LINKDATA_RECV_MSG*)lParam;
CString strLinkName(pmsg->sLinkName);
CString strLinkData(pmsg->sLinkData);
// g_iXingAPI.ReleaseMessageData(lParam); // 예외발생
}
return 0L;
} |
cs |