title: C++ Windows: LRESULT CALLBACK and WNDPROC
body: <p>I have a class:</p>
  
  <pre><code>class SomeClass
  {
      public:
          void Init ();
  
      private:
          LRESULT CALLBACK WndProc (HWND wnd, UINT msg, WPARAM wparam, LPARAM lparam);
  };
  </code></pre>
  
  <p>Also, in another file I have a function:</p>
  
  <pre><code>void MakeWindow (WNDPROC wnd_proc, DWORD style, HICON lg_icon, ...);
  </code></pre>
  
  <p>The first parameter is supposed to take a LRESULT CALLBACK function as input. Somewhere I also have a definition for the Init function:</p>
  
  <pre><code>void SomeClass::Init ()
  {
      MakeWindow (this-&gt;WndProc, WM_POPUP, NULL, ...);
  }
  </code></pre>
  
  <p>This gives me error C3867 in VS2012 when I try to pass <code>this-&gt;WndProc</code> to <code>WNDPROC wnd_proc</code>. Is there any way I can pass the <code>LRESULT CALLBACK WndProc</code> function to <code>MakeWindow</code>?</p>