That's because an "extern" variable is declared but not defined: you're only telling the compiler that somewhere else in your code, there's a "Win32Vars_t win32" variable and it can use it.
With only the "extern", no symbol is allocated, that's why you're getting an unresolved symbol.
That means you must define it somewhere else in your code. The usual pattern is to use an "extern" in header file, so every other file including that header will be able to "see" the variable and in a source file (something.c) define the variable, something like this:
foo.h
#ifndef FOO_H
#define FOO_H
extern int foo;
#endif
.c
#include "foo.h"
int foo;
You can find more information about external variables here: http://en.wikipedia.org/wiki/External_variable