mp3播放器线程之间使用有关问题?

mp3播放器线程之间使用问题???

//全局变量
HWND hMCI = NULL;
int slen = 0;
int spos = 0;
//工具栏单击消息启动的一个线程。
void CMainFrame::OnManageUser()
{
 if(!ShowObj.ShowWindow(SW_SHOW))
 {
pThread = AfxBeginThread((AFX_THREADPROC)MyThreadProc,GetSafeHwnd()); 
 }
}

UINT WINAPI MyThreadProc(LPVOID pParam)//线程函数启动mp3,倘若,下面这段添加到MainFrame类的OnCreate()函数里,定时器 spos = MCIWndGetPosition(hMCI2);可以判断出值的。
感觉与线程同步没关系,是Mp3类的函数不能跨线程使用吗???调试hMCI2句柄的值都是一样的。

hMCI = MCIWndCreate(NULL,NULL,WS_POPUP|MCIWNDF_NOPLAYBAR|MCIWNDF_NOMENU,NULL);
MCIWndOpen(hMCI,"res//back.mp3",0);
hMCI2 = hMCI;
slen = MCIWndGetLength(hMCI);
if(hMCI)
MCIWndPlay(hMCI);
}

void CMainFrame::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
     spos = MCIWndGetPosition(hMCI2);
     if(spos>=slen)
          MCIWndPlay(hMCI2);
     CFrameWnd::OnTimer(nIDEvent);
}

------解决方案--------------------
LONG MCIWndClose(
   hwnd
);

------解决方案--------------------
mciSendString

这里面可以指定播放命令