#!/usr/bin/env python

import win32con
import sys

try:
     from winxpgui import *
except ImportError:
     from win32gui import *

MyWindow_class = None

def register_window_class(class_name, message_map):
	# Register the Window class.
	wc = WNDCLASS()
	wc.hInstance = GetModuleHandle(None)
	wc.lpszClassName = class_name
	wc.lpfnWndProc = message_map # could also specify a wndproc.
	classAtom = RegisterClass(wc) # FIXME (1410, 'RegisterClass', 'Class already exists.') on second call.

	return classAtom

class Window(object):
	def __init__(self, message_map, title = sys.argv[0]):
		global MyWindow_class
		self.message_map = message_map
		hInstance = GetModuleHandle(None)

		if MyWindow_class is None:
			MyWindow_class = register_window_class("MyWindow", self.message_map)
		style = win32con.WS_OVERLAPPED | win32con.WS_SYSMENU
		self.hwnd = CreateWindow(MyWindow_class, title, style, 0, 0, win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT, 0, 0, hInstance, None)
		UpdateWindow(self.hwnd)         

"""
message_map = {
                 win32con.WM_DESTROY: self.OnDestroy,
                 win32con.WM_COMMAND: self.OnCommand,
                 win32con.WM_USER+20: self.OnTaskbarNotify,
         }
"""
