//Copyright (c) 1997-2000 Microsoft Corporation

#define CCH_MAX_STRING    256

class CLookPreviewGlobals
{
public:
	CLookPreviewGlobals()
	{
		// We don't initialize stuff here because we rely
		// on some other global variables that are not yet initialized
		m_bInitialized = FALSE;
	}
	BOOL Initialize();

	TCHAR m_szActive[CCH_MAX_STRING];
	TCHAR m_szInactive[CCH_MAX_STRING];
	TCHAR m_szMinimized[CCH_MAX_STRING];
	TCHAR m_szIconTitle[CCH_MAX_STRING];
	TCHAR m_szNormal[CCH_MAX_STRING];
	TCHAR m_szDisabled[CCH_MAX_STRING];
	TCHAR m_szSelected[CCH_MAX_STRING];
	TCHAR m_szMsgBox[CCH_MAX_STRING];
	TCHAR m_szButton[CCH_MAX_STRING];
//	TCHAR m_szSmallCaption[40];
	TCHAR m_szWindowText[CCH_MAX_STRING];
	TCHAR m_szMsgBoxText[CCH_MAX_STRING];

protected:
	static BOOL sm_bOneInstanceCreated; // This variable insures that only one instance of CLookPreviewGlobals is created
	BOOL m_bInitialized;
};

class CLookPrev
{
public:
	CLookPrev()
	{
		m_hwnd = NULL;
		m_hmenuSample = NULL;
		m_hbmLook = NULL;       // bitmap for the appearance preview
	}
	
	HWND m_hwnd;

	// Static window proc
	static LRESULT CALLBACK LookPreviewWndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
	static CLookPreviewGlobals sm_Globals;

protected:
	HMENU m_hmenuSample;
	HBITMAP m_hbmLook;       // bitmap for the appearance preview

	void ShowBitmap(HDC hdc);
	void Draw(HDC hdc);

protected: // Message handlers
	void OnCreate();
	void OnDestroy();
	void OnRepaint();
	void OnRecalc();
	void OnPaint(HDC hdc);
};


// Messages for the Look Preview window
#define LPM_REPAINT		WM_USER + 1
#define LPM_RECALC		WM_USER + 2
