SendMessage发送结构体有关问题

SendMessage发送结构体问题。
线程A
{
struct BB{int a};
                  BB  bb;
                                bb.a = 10;
::SendMessage(hWnd,WM_CHISHIQUBA,(WPARAM)&bb,0);
}

WM_CHISHIQUBA关联的函数OnChishiQuba()
{
        struct BB{int a};
        BB *pTemp= NULL;
pTemp = (BB *)wParam;//利用指针访问传送数据,必须是同一进程才行
if(pTemp == NULL)
{
MessageBox(0,0,"pTemp为空",0);
return 0;
}
}

为何以上pTemp为NULL?
------解决方案--------------------
目测不会是空。
------解决方案--------------------
hWnd是0值?
------解决方案--------------------
楼主的代码有个致命的错误,而且出现错误的机率还不是稳定的。

在调用::SendMessage(hWnd,WM_CHISHIQUBA,(WPARAM)&bb,0);之前BB是一个函数的对象,函数的对象在出了作用域就释放了。而楼主还把这个地址给Send出去了,这时收到消息的地方使用BB的指针是不确定的。有可能是空。

好的做法是:1、对BB进行new;2、Send把这个指针发出去;3、接收消息的地方使用BB指针后释放。这样就没有问题了。
------解决方案--------------------
你在线程里搞个局部变量传过去,你那边拿到怎么能保证它没有被释放呢,所以new 一个结构体就OK了