VS2008中,上层传到的参数在下层总是出错,请大神帮助

VS2008中,上层传入的参数在下层总是出错,请大神帮助
小弟有这样一个函数Directfun(BSTR Flag, LONG nChan, ULONGLONG hWnd){ 函数内部调用了一个底层SDK中的函数Playfun(LONG nchan,LPTYL_DVR_CLIENTINFO lpClientInfo)},LPTYL_DVR_CLIENTINFO是一个机构体,其结果为typedef struct _TYL_DVR_CLIENTINFO

DWORD lChannel;    //通道号
DWORD llLinkMode;  //最高位(31)为0表示主码流,为1表示子码流,0-30位表示码流连接方式: 0:TCP方式,1:UDP方式,2:多播方式,3 - RTP方式,4-音视频分开(TCP)
HWND  hPlayWnd;   //播放窗口的句柄,为NULL表示不播放图象
PSTR  ppstrsMultiCastIP;  //多播组地址
}TYL_DVR_CLIENTINFO,*LPTYL_DVR_CLIENTINFO;
在Directfun中,我要将hWnd传到结构体中的hPlauWnd,于是我声明了结构体ClientInfo,然后我写的是ClientInfo.hPlayWnd = (HWND)hWnd,就是在这一步,hWnd的值是正常的,但是hPlayWnd却总是0;但是我同事那边却是正确的,这是为什么呢?
求大神解惑,一直没弄明白啊!
------解决方案--------------------
 ULONGLONG 是64位的, HWND好像是32位的?——记得不清不楚
可能是ULONGLONG里面值太大,导致转换失败?

值是多少?
------解决方案--------------------
还用,你和你同事的操作系统是否是一样的?
------解决方案--------------------
就这么看不出来
建议你把多余的代码都屏蔽掉,就测试赋值这一句