#include <stdio.h>
#include <windows.h>

typedef struct t_tag {
	int dwThrdParam;
	char cThrdBuffer;
	} Thread_t;

int dwGlobalvar;
char cGlobalbuffer;

DWORD ThreadFunc (LPDWORD sParam) {
	dwGlobalvar = (( Thread_t *) sParam)-> dwThrdParam;
	cGlobalbuffer = (( Thread_t *) sParam)-> cThrdBuffer;
	return 0;
}

int main (VOID) {
	DWORD dwThreadId, 
	dwThrdParam = 1;
	HANDLE hThread;
	Thread_t thread_str;
	thread_str. dwThrdParam = 1;
	thread_str. cThrdBuffer = 'c';
	hThread = CreateThread (
		NULL, /* no security attributes */
		0, /* use default stack size */
		(LPTHREAD_START_ROUTINE) ThreadFunc,/* thread function */
		&thread_str, /* argument to thread function */
		0, /* use default creation flags */
		&dwThreadId); 
	/* returns thread identifier */
	
	if (hThread == NULL){
		printf("error!");		
		exit(1);
	}

	WaitForSingleObject (hThread, INFINITE);
	printf ("dwGlobalvar = %d\tcGlobalbuffer = %c\n",dwGlobalvar, cGlobalbuffer);
}
