Listing 1 A C++ class that encapsulates the Windows 3.1 API WNDCLASS structure and a related API function

#include "windows.h"

typedef int        BOOL;
typedef WNDPROC    MYWNDPROC;
typedef HINSTANCE  MYHINSTANCE;
typedef HCURSOR    MYHCURSOR;
typedef HBRUSH     MYHBRUSH;

class MyWndClass
{
public:
  MyWndClass (char *, MYWNDPROC, MYHINSTANCE, char *);
  void SetCursor (MYHCURSOR hCursor)
     { wndclass.hCursor = hCursor; }
  void SetBackground (MYHBRUSH hbrBackground)
     { wndclass.hbrBackground = hbrBackground; }
  void SetMenu (char *szMenuName)
     { wndclass.lpszMenuName = szMenuName; }
  BOOL RegisterClass (void)
     { return (::RegisterClass (&wndclass)); }

private:
  // Default constructor is inaccessible.
  MyWndClass (void);
  WNDCLASS wndclass;
};

MyWndClass::MyWndClass (char *szAppName, MYWNDPROC
   WndProc, MYHINSTANCE hInstance,
   char *szMenuName)
{
   wndclass.style = CS_HREDRAW | CS_VREDRAW;
   wndclass.lpfnWndProc = WndProc;
   wndclass.cbClsExtra = 0;
   wndclass.cbWndExtra = 0;
   wndclass.hInstance = hInstance;
   wndclass.hIcon = LoadIcon (NULL,
                          IDI_APPLICATION);
   wndclass.hCursor = LoadCursor (NULL,
                             IDC_ARROW);
   wndclass.hbrBackground =
             GetStockObject (WHITE_BRUSH);
   wndclass.lpszMenuName = szMenuName;
   wndclass.lpszClassName = szAppName;
}

/* End of File */