何もおこらない

#define UNICODE
#include <windows.h>

int APIENTRY wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow)
{
	OPENFILENAME ofn = {sizeof(OPENFILENAME)};
	WCHAR filename[MAX_PATH];
	ofn.hwndOwner = NULL;
	ofn.lpstrFile = filename;
	ofn.nMaxFile = MAX_PATH;
	ofn.Flags = OFN_FILEMUSTEXIST | OFN_NONETWORKBUTTON | OFN_PATHMUSTEXIST;

	if (GetOpenFileName(&ofn)) {
		MessageBox(NULL, filename, L"", MB_OK);
	}
	return 0;
}

を実行しても何も起こらない。なんでか分かる? 答えは lpstrFile に指定する文字列を初期化し忘れてるから。なんという素敵仕様。