Использовать объектный метод в качестве обратного вызова WinApi WndProc [duplicate]

На этот вопрос уже есть ответ:

Почему функции обратного вызова должны быть статическими при объявлении в классе 6 ответов

Я пытаюсь создать небольшой класс, который отображает окно консоли в родительском окне. (вы можете представить, что там отображается информация чата или отладки)
Теперь, поскольку разные экземпляры имеют разные частные переменные (например, массив сообщений или родительское окно), мне нужно использовать нестатический метод в качестве обратного вызова для событий Windows.
Я думал о том, как передать фактический экземпляр класса статической функции обратного вызова, а затем вызвать соответствующий метод, но в winAPI все делается с помощьюTranslateMessage а такжеDispatchMessage не давая мне возможности использовать мои собственные аргументы.
Я нашел код здесь: Класс метод как обратный вызов winAPI, но я этого не понимаю и думаю, что это не совсем то, что мне нужно. Если да, то, пожалуйста, дайте мне дальнейшее объяснение предоставленного кода.
Ошибка, которую я получаю:

ошибк: аргумент типа 'LRESULT WindowConsole::) (HWND __, UINT, WPARAM, LPARAM) 'не соответствует' LRESULT *) (HWND __, UINT, WPARAM, LPARAM) '

Я не знаю, что означает эта звезда в скобках, но это не то, что нужно.
И код:

class WindowConsole {
   char messages[255][255];
   HWND mainWindow;
   public:
     int width;
     int height;
     inline HWND create(HWND parent);
     inline bool update();
     inline LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);
};

HWND WindowConsole::create(HWND parent) {
    HINSTANCE inst =  GetModuleHandle (0);
    WNDCLASSEX wincl;

    /* The Window structure */
    wincl.hInstance = inst;
    wincl.lpszClassName = "ConsoleClass";
    wincl.lpfnWndProc = this->WndProc;      /* This function is called by windows */
    /* more WNDCLASSEX crap...*/

    mainWindow = CreateWindow (
          /*PARAMS*/
    );
    ShowWindow(mainWindow,1);
    return mainWindow;

}
bool WindowConsole::update() {
   return true;
}
LRESULT CALLBACK WindowConsole::WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) {
    switch (message)                  /* handle the messages */
    {
           /*EVENT crap*/
    }

    return 0;
}

Ответы на вопрос(3)

Ваш ответ на вопрос