?? stockdrv.cpp
字號(hào):
// Stockdrv.cpp : Defines the entry point for the DLL application.
//
#include "stdafx.h"
#include < windows.h >
#include <time.h>
#include "STOCKDRV.H"
#include "Stock_drv.h"
static HINSTANCE hInstance,hInst_Stock_Drv;
static HWND hWndAfxWnd42s, hWndFxj, hWndP2PStockdrv;
static WNDPROC FxjWinProc;
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
StockDrv_Dll_Load();
break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
case DLL_PROCESS_DETACH:
FreeLibrary(hInst_Stock_Drv);
break;
}
return TRUE;
}
bool StockDrv_Dll_Load()
{
hInst_Stock_Drv = LoadLibraryEx("Stock_Drv.dll",NULL,0);
StockInit_= (_StockInit)GetProcAddress(hInst_Stock_Drv,"StockInit");
SetParam_= (_SetParam)GetProcAddress(hInst_Stock_Drv,"SetParam");
GetTradeData_= (_GetTradeData)GetProcAddress(hInst_Stock_Drv,"GetTradeData");
SetCodeTable_= (_SetCodeTable)GetProcAddress(hInst_Stock_Drv,"SetCodeTable");
SCAskData_= (_SCAskData)GetProcAddress(hInst_Stock_Drv,"SCAskData");
SCStockInit_= (_SCStockInit)GetProcAddress(hInst_Stock_Drv,"SCStockInit");
GetStockByCode_= (_GetStockByCode)GetProcAddress(hInst_Stock_Drv,"GetStockByCode");
GetStockByNo_= (_GetStockByNo)GetProcAddress(hInst_Stock_Drv,"GetStockByNo");
GetStockByNoEx_= (_GetStockByNoEx)GetProcAddress(hInst_Stock_Drv,"GetStockByNoEx");
GetTotalNumber_= (_GetTotalNumber)GetProcAddress(hInst_Stock_Drv,"GetTotalNumber");
ReInitStockInfo_= (_ReInitStockInfo)GetProcAddress(hInst_Stock_Drv,"ReInitStockInfo");
GetStockDrvInfo_= (_GetStockDrvInfo)GetProcAddress(hInst_Stock_Drv,"GetStockDrvInfo");
SetupReceiver_= (_SetupReceiver)GetProcAddress(hInst_Stock_Drv,"SetupReceiver");
Stock_Quit_= (_Stock_Quit)GetProcAddress(hInst_Stock_Drv,"Stock_Quit");
Stock_Init_= (_Stock_Init)GetProcAddress(hInst_Stock_Drv,"Stock_Init");
Fxj_P2PStockdrv_Init();
return true;
};
int WINAPI StockInit(char xxx[1024])
{
int r;
r=StockInit_( xxx);
return r;
};
int WINAPI SetParam(char xxx[1024])
{
int r;
r=SetParam_( xxx);
return r;
};
int WINAPI GetTradeData(char xxx[1024])
{
int r;
r=GetTradeData_( xxx);
return r;
};
int WINAPI SetCodeTable(char xxx[1024])
{
int r;
r=SetCodeTable_( xxx);
return r;
};
//static bool P2PInit=true;//?
void WINAPI SCAskData(void *pAsk, int nSize)
{
if (IsWindow(hWndP2PStockdrv))
{
/* if (P2PInit)//?
{
SendMessage(hWndP2PStockdrv,1085,(int)hWndAfxWnd42s,(long)1);
SendMessage(hWndP2PStockdrv,1084,(int)hWndAfxWnd42s,(long)4);
SendMessage(hWndP2PStockdrv,1085,(int)1,(long)hWndAfxWnd42s);
SendMessage(hWndP2PStockdrv,1084,(int)4,(long)hWndAfxWnd42s);
P2PInit=false;
}
*/
SendMessage(hWndP2PStockdrv,0x000080C8,nSize,(long)pAsk);
SendMessage(hWndP2PStockdrv,0x0000110B,0x3E7,(long)12345678);//?
SendMessage(hWndP2PStockdrv,0x00008120,1,(long)0x200);//?
// SendMessage(hWndP2PStockdrv,0x000080BC,nSize,(long)0x000080BC);//速達(dá)2.18
}
SCAskData_(pAsk, nSize);
return;
};
int WINAPI SCStockInit(int SoftId,HWND hWnd,UINT Msg)
{
SetWindowLong( hWndAfxWnd42s,GWL_WNDPROC,(long)AfxWnd42sWinProc );
ShowWindow(hWndAfxWnd42s,SW_HIDE);
UpdateWindow(hWndAfxWnd42s);
int r;
r=SCStockInit_( SoftId, hWnd, Msg);// SCStockInit_=7452( SoftId=1, hWnd=, Msg=1085)
return r;
};
int WINAPI ReInitStockInfo(char xxx[1024])
{
int r;
r=ReInitStockInfo_( xxx);
return r;
};
int WINAPI GetStockByCode(char * pszStockCode,int nMarket,RCV_REPORT_STRUCTEx * pBuf)
{
int r;
r=GetStockByCode_( pszStockCode, nMarket, pBuf);
return r;
};
int WINAPI GetStockByCodeEx(char * pszStockCode,int nMarket,RCV_REPORT_STRUCTEx * pBuf)
{
int r;
r=GetStockByCodeEx_( pszStockCode, nMarket, pBuf);
return r;
};
int WINAPI GetStockByNo(int nNo,RCV_REPORT_STRUCTEx * pBuf)
{
int r;
r=GetStockByNo_( nNo, pBuf);
return r;
};
int WINAPI GetStockByNoEx(int nNo,RCV_REPORT_STRUCTEx * pBuf)
{
int r;
r=GetStockByNoEx_( nNo, pBuf);
return r;
};
int WINAPI GetTotalNumber()
{
int r;
r=GetTotalNumber_();
return r;
};
DWORD WINAPI GetStockDrvInfo(int nInfo,void * pBuf)
{
int r;
r=GetStockDrvInfo_( nInfo, pBuf);
return r;
};
int WINAPI SetupReceiver(BOOL bSetup)
{
int r;
r=SetupReceiver_( bSetup);
return r;
};
int WINAPI Stock_Quit(HWND hWnd)
{
int r;
r=Stock_Quit_( hWnd);
return r;
};
int WINAPI Stock_Init(HWND hWnd,UINT Msg,int nWorkMode)
{
int r;
r=Stock_Init_( hWnd, Msg, nWorkMode);// Stock_Init_=1( hWnd=, Msg=1084, nWorkMode=4)
return r;
};
LRESULT WINAPI AfxWnd42sWinProc(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam)
{
if ( !IsWindow(hWndP2PStockdrv) && (Msg==0x437 || Msg==0x438) )
{
hWndP2PStockdrv = FindWindow(NULL,"P2PSocketdrv1.0");
}
RCV_DATA *pRCV_DATA;
typedef struct _string
{
char str[1024];
}string;
string *sp;
switch(Msg)
{
case 0x437:
pRCV_DATA=(RCV_DATA*)lParam;
return SendMessage(hWndFxj,0x43C,wParam,lParam);
case 0x438:
sp=(string*)lParam;
return SendMessage(hWndFxj,0x43D,wParam,lParam);
case WM_DESTROY:
PostQuitMessage(0);
return 0;
default:
// CallWindowProc(FxjWinProc,hWnd,Msg,wParam,lParam);
SendMessage(hWndFxj,Msg,wParam,lParam);
return DefWindowProc(hWnd,Msg,wParam,lParam);
}
}
void Fxj_P2PStockdrv_Init()
{
hWndFxj=GetParent(GetActiveWindow());//分析家窗口
hInstance=(HINSTANCE)GetWindowLong(hWndFxj,GWL_HINSTANCE);
SetWindowText(hWndFxj,"大智慧Level-2 分析家");
FxjWinProc=(WNDPROC)GetWindowLong( hWndFxj,GWL_WNDPROC );
WNDCLASSEX WndCls;
WndCls.cbSize=sizeof(WNDCLASSEX);
WndCls.style=CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW ;
WndCls.lpfnWndProc=AfxWnd42sWinProc;
WndCls.cbClsExtra=0;
WndCls.cbWndExtra=0;
WndCls.hInstance=hInstance;
WndCls.hIcon=LoadIcon(NULL,MAKEINTRESOURCE(IDI_QUESTION)); //IDI_QUESTION
WndCls.hCursor=LoadCursor(NULL,MAKEINTRESOURCE(IDC_ARROW)); //MAKEINTRESOURCE
WndCls.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH); //GetStockObject
WndCls.lpszMenuName=NULL;
WndCls.lpszClassName="AfxWnd42s";
//WndCls.hIconSm=?;
RegisterClassEx(&WndCls);
hWndAfxWnd42s=CreateWindowEx(
WS_EX_LEFT | WS_EX_LTRREADING | WS_EX_RIGHTSCROLLBAR,
"AfxWnd42s",
"",
WS_CHILDWINDOW | WS_OVERLAPPED,
0,0,0,0,
hWndFxj,
NULL,
hInstance,
NULL);
if(hWndAfxWnd42s == NULL)
{
MessageBox(NULL,"There's an Error","Error Title",MB_ICONEXCLAMATION|MB_OK);
return ;
}
ShowWindow(hWndAfxWnd42s,SW_HIDE);
UpdateWindow(hWndAfxWnd42s);
return ;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -