/
vTech
/
FcApps
Обзор
Документация
Войти
/
vTech
/
FcApps
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
FcLibs/FcWindow/src/FcPlatform/FcPlatform_WINAPI_Definition.h
85 строк
2 KB
vTech
alpha_00
03 дек 2025, 17:45
03 дек 2025, 17:45
ab8382d
Код
Авторство
О чём код?
#if defined(_WIN32) || defined(_WIN64) #ifndef __FCPLATFORM_WINAPI_DEFINITION_H__ #define __FCPLATFORM_WINAPI_DEFENITION_H__ #include "FcError.h" #include "FcConfig.h" //extern const TCHAR FCWINDOWGL_ATOM_WM_GL_ERROR[]; #define FCWINDOWGL_ATOM_WM_GL_ERROR (WM_USER + 1) #ifdef __cplusplus extern "C" { #endif extern LRESULT APIENTRY FcWindowGL_WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); #ifdef __cplusplus } #endif FCDEF FcWindow_Error_t FcPlatform_WINAPI(FcPlatform_WINAPI_t* pPlatform) { FcWindow_Error_t mError; WNDCLASS mClass; mError = FCWINDOW_ERROR_NOERROR; if (!pPlatform) { mError = FCWINDOW_ERROR_PLATFORM_FcPlatform_WINAPI_pPlatformNULL; FcWindow_Error("FcPlatform_WINAPI: Incorrect parameter transmission!", NULL); goto gError; } ZeroMemory(&mClass, sizeof(mClass)); if (!pPlatform->mInstance) { pPlatform->mInstance = GetModuleHandle(NULL); if (!pPlatform->mInstance) { mError = FCWINDOW_ERROR_WINAPI; goto gError; } } mClass.style = CS_OWNDC | CS_HREDRAW | CS_VREDRAW; mClass.lpfnWndProc = FcWindowGL_WndProc; mClass.cbClsExtra = 0; mClass.cbWndExtra = 0; mClass.hInstance = pPlatform->mInstance; mClass.hIcon = LoadIcon(NULL, IDI_APPLICATION); mClass.hCursor = LoadCursor(NULL, IDC_ARROW); mClass.hbrBackground = (HBRUSH)(COLOR_WINDOW); mClass.lpszMenuName = NULL; mClass.lpszClassName = FCWINDOWGL_REGISTER_CLASS; if (!RegisterClass(&mClass)) { if (GetLastError() != ERROR_CLASS_ALREADY_EXISTS) { mError = FCWINDOW_ERROR_WINAPI; goto gError; } } //if (!pPlatform->mAtom_GL_ERROR) { // pPlatform->mAtom_GL_ERROR = RegisterWindowMessage(FCWINDOWGL_ATOM_WM_GL_ERROR); // if (!pPlatform->mAtom_GL_ERROR) { // mError = FCWINDOW_ERROR_WINAPI; // goto gError; // } //} gError: return mError; } FCDEF FcWindow_Error_t FcPlatform_WINAPI_free(FcPlatform_WINAPI_t* pPlatform) { FcWindow_Error_t mError; mError = FCWINDOW_ERROR_NOERROR; if (!pPlatform) { mError = FCWINDOW_ERROR_PLATFORM_FcPlatform_WINAPI_free_pPlatformNULL; goto gError; } if (!UnregisterClass(FCWINDOWGL_REGISTER_CLASS, pPlatform->mInstance)) { mError = FCWINDOW_ERROR_WINAPI; goto gError; } gError: return mError; } #endif //__FCPLATFORM_WINAPI_DEFINITION_H__ #endif //_WIN32