关于子线程调用参数的有关问题.

关于子线程调用参数的问题...
又要麻烦大家了...不会的内容是在太多了。问题是:
我有一个函数,比如Fun,有三个参数x,y,z,且这个函数创建了一个子线程
void Fun(int x,int y,int z)
{
HANDLE handle=(HANDLE)_beginthreadex(NULL,0,ThreadFun,NULL,0,NULL);
CloseHandle(handle);
}

现在子线程中要用到参数x,y,z
unsigned int _stdcall ThreadFun1(PVOID pm)
{
//要用到x,y,z,比如
        x=x+1;
y=y+1;
z=z+1;
return 0;
}

请问,参数该怎样传递呢?
附注说明一下:主函数中参数必须是分开的,调用时必须是Fun(1,2,3);不要结构体的那种。

------解决方案--------------------
不用结构体无力,或者就是使用全局的变量
------解决方案--------------------
struct param
   {
     int x;
     int y;
     int z;
   }parambuf;
void Fun(int x,int y,int z)
{
    
   parambuf.x = x;
   parambuf.y = y;
   parambuf.z = z;
    HANDLE handle=(HANDLE)_beginthreadex(NULL,0,ThreadFun,&parambuf,0,NULL);
    CloseHandle(handle);
}

unsigned int _stdcall ThreadFun1(PVOID pm)
{
  parambuf *pParam = (parambuf*)pm;
  pParam->x;
  pParam->y;
  pParam->x;
  return 0;
}