¿Cómo obtengo el HINSTANCE para la función CreateWindowEX cuando lo uso fuera de WinMain?

Estoy tratando de crear una ventana emergente cuando hago clic en un botón en mi ventana principal, y estoy usando la función CreateWindowEX para ese propósito. Sin embargo, la función CreateWindowEx recibe la variable de tipo HINSTANCE como su segundo último parámetro. Dado que estoy haciendo esta nueva ventana desde dentro del Procedimiento Wnd cuando se hace clic en un botón, la variable HINSTANCE en la función WinMain no estará disponible para mí porque no es una variable global.

El siguiente código se obtuvo de la función de devolución de llamada WndProcedure:

            case IDC_BUTTON PRESSED:
            {

                const char g_szClassName2[] = "POPWIND";
                const char WndName2[] = "POPUP WINDOW";

                HWND invisWindowHandle = CreateWindowEx(0,
                      g_szClassName2,
                      WndName2,
                      WS_OVERLAPPEDWINDOW,
                      200,
                      200,
                      800,
                      500,
                      NULL,
                      NULL,
                      hInstance,//THIS IS THE VARIABLE I AM HAVING TROUBLE GETTING
                      NULL);

                ShowWindow(invisWindowHandle, 3);// SW_SHOWNORMAL);
                UpdateWindow(invisWindowHandle);
             }

¿Cómo haría para obtener la variable hInstance que necesito para que la función CreateWindowEx funcione desde dentro de la función de devolución de llamada WndProcedure?

Nota: consideré hacer que la variable hInstance sea global, pero no estoy seguro de si se debe usar la misma hInstance para cada ventana que haga mi aplicación.

Respuestas a la pregunta(1)

Su respuesta a la pregunta