LPAPXGUISTORE apxGuiInitialize()

in src/native/windows/src/gui.c [66:123]


LPAPXGUISTORE apxGuiInitialize(WNDPROC lpfnWndProc, LPCTSTR szAppName)
{
    INITCOMMONCONTROLSEX stCmn;
    WNDCLASSEX wcex;

    _st_sys_gui.hInstance = GetModuleHandleA(NULL);
    GetStartupInfo(&_st_sys_gui.stStartupInfo);

    lstrcpy(_st_sys_gui.szWndClass, szAppName);
    lstrcat(_st_sys_gui.szWndClass, TEXT("_CLASS"));

    /* Single instance or general application mutex */
    lstrcpy(_st_sys_gui.szWndMutex, szAppName);
    lstrcat(_st_sys_gui.szWndMutex, TEXT("_MUTEX"));


    stCmn.dwSize = sizeof(INITCOMMONCONTROLSEX);
    stCmn.dwICC = ICC_WIN95_CLASSES | ICC_USEREX_CLASSES | ICC_COOL_CLASSES |
                  ICC_INTERNET_CLASSES | ICC_PAGESCROLLER_CLASS | ICC_BAR_CLASSES;

    InitCommonControlsEx(&stCmn);

    _st_sys_riched      = LoadLibraryExA("RICHED32.DLL", NULL, LOAD_LIBRARY_SEARCH_SYSTEM32);
    _st_sys_gui.hIconSm = LoadImage(_st_sys_gui.hInstance, MAKEINTRESOURCE(IDI_MAINICON),
                                     IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR);
    _st_sys_gui.hIcon   = LoadImage(_st_sys_gui.hInstance, MAKEINTRESOURCE(IDI_MAINICON),
                                     IMAGE_ICON, 32, 32, LR_DEFAULTCOLOR);
    _st_sys_gui.hIconHg = LoadImage(_st_sys_gui.hInstance, MAKEINTRESOURCE(IDI_MAINICON),
                                     IMAGE_ICON, 48, 48, LR_DEFAULTCOLOR);
    _st_sys_gui.hAccel  = LoadAccelerators(_st_sys_gui.hInstance,
                                            MAKEINTRESOURCE(IDC_APPLICATION));
    _st_sys_gui.stState.rcPosition.left   = CW_USEDEFAULT;
    _st_sys_gui.stState.rcPosition.top    = CW_USEDEFAULT;
    _st_sys_gui.stState.rcPosition.right  = CW_USEDEFAULT;
    _st_sys_gui.stState.rcPosition.bottom = CW_USEDEFAULT;

    SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0, &_st_sys_gui.nWhellScroll, 0);

    wcex.cbSize = sizeof(WNDCLASSEX);

    wcex.style          = 0;
    wcex.lpfnWndProc    = lpfnWndProc;
    wcex.cbClsExtra     = 0;
    wcex.cbWndExtra     = 0;
    wcex.hInstance      = _st_sys_gui.hInstance;
    wcex.hIcon          = _st_sys_gui.hIcon;
    wcex.hIconSm        = _st_sys_gui.hIconSm;
    wcex.hCursor        = LoadCursor(NULL, IDC_ARROW);
    wcex.hbrBackground  = (HBRUSH)(COLOR_INACTIVEBORDER+1);
    wcex.lpszMenuName   = MAKEINTRESOURCE(IDC_APPLICATION);
    wcex.lpszClassName  = _st_sys_gui.szWndClass;

    if (RegisterClassEx(&wcex)) {
        return &_st_sys_gui;
    }
    else
        return NULL;
}