typedef struct{ int hoge; } CLIENT;

// 以下のどちらかをメインの関数から引数をわたしてCreateThreadする。

DWORD WINAPI ThreadExampleA(LPVOID lpVoid)
{
 CLIENT *client;
 client = (CLIENT *)lpVoid;
 //  この場合、static宣言されてないclientはこのスレッドから別の関数を呼び出して
 // そこから戻ってきた時おかしな値になることはありますか?
}

DWORD WINAPI ThreadExampleB(CLIENT *client)
{
 // これは邪道ですか?引数はLPVOIDにすべきですか?
}