小弟我在写MFC共享dll模拟鼠标遇到的有关问题

我在写MFC共享dll模拟鼠标遇到的问题,求助
我希望通过模拟鼠标不断点击来达到完成一些枯燥的工作,然后希望通过按键(R)来终止这个不断点击的过程,但是发现当我按下r时,不是没有效果就是chrome崩溃。

关键代码如下


// ActiveKey.cpp : Defines the initialization routines for the DLL.
//

#include "stdafx.h"
#include "ActiveKey.h"
#include "windows.h"
#include "iostream"
#include <afxdllx.h>
using namespace std;

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif



static AFX_EXTENSION_MODULE ActiveKeyDLL = { NULL, NULL };

#pragma data_seg("sharedata")  
HHOOK glhHook=NULL; //钩子句柄。  
HINSTANCE glhInstance=NULL; //DLL实例句柄。 
#pragma data_seg()  

bool start = false;

void CALLBACK TimerProc()
{
//****************************TODO: ^_^ *****************************

int x[18]={705,436,638};

int y[18]={363,459,425};

//start = !start;
while(start){
for(int i=0;i<3;i++){
SetCursorPos(x[i],y[i]);
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);//模拟按下鼠标左键。
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);//模拟放开鼠标左键。  
Sleep(500);
}

if(!start)
break;
}
//SetCursorPos(x[2],y[2]);
//mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);//模拟按下鼠标左键。
//mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);//模拟放开鼠标左键。 



}

extern "C" LRESULT WINAPI 
KeyboardProc(int nCode,WPARAM wParam,LPARAM lParam) { 
if( nCode >= 0 ) { 
HANDLE hThread = NULL;
if( wParam == 0X79 )//当按下F10键时,激活外挂。  
{ //外挂实现代码。 
//SetTimer(NULL,20,10000/*一秒*/,TimerProc/*传递回调函数指针*/);
start = true;
DWORD dwTID = 0;
hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)TimerProc, 0, 0, &dwTID);  

} else if(wParam == 0X52) {
//KillTimer(NULL,20);
start = false;
CloseHandle(hThread);
}
}  
return CallNextHookEx(glhHook,nCode,wParam,lParam); 
 }  
CKeyHook::CKeyHook(){}  
CKeyHook::~CKeyHook() {
if( glhHook )  
Stop();
} //安装全局钩子。  
HHOOK CKeyHook::Start() { 
glhHook = SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,glhInstance,0);//设置键 盘钩子。
return glhHook;  
}  
//卸载全局钩子。 
BOOL CKeyHook::Stop() { 
BOOL bResult = TRUE; 
if( glhHook ) 
bResult = UnhookWindowsHookEx(glhHook);//卸载键盘钩子。  
return bResult;  
}  


extern "C" int APIENTRY  
DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)  
{ //如果使用lpReserved参数则删除下面这行  
UNREFERENCED_PARAMETER(lpReserved);  
if (dwReason == DLL_PROCESS_ATTACH)  
{  
TRACE0("NOtePadHOOK.DLL Initializing!\n"); //扩展DLL仅初始化一次  
if (!AfxInitExtensionModule(ActiveKeyDLL, hInstance))  
return 0; 
new CDynLinkLibrary(ActiveKeyDLL);  
//把DLL加入动态MFC类库中  
glhInstance = hInstance; //插入保存DLL实例句柄  
} else if (dwReason == DLL_PROCESS_DETACH) { 
TRACE0("NotePadHOOK.DLL Terminating!\n"); //终止这个链接库前调用它 
AfxTermExtensionModule(ActiveKeyDLL);  
}  
return 1;  
}  

请各位大牛不吝赐教……ORZ


------解决方案--------------------
#pragma data_seg("sharedata")
HHOOK glhHook=NULL; //钩子句柄。
HINSTANCE glhInstance=NULL; //DLL实例句柄。
#pragma data_seg()
#pragma comment(linker,"/SECTION:sharedata,RWS")