From 8ead043a524ffedc634663779a49730cc5da8d97 Mon Sep 17 00:00:00 2001 From: Jonas Kümmerlin Date: Fri, 28 Dec 2018 22:55:27 +0100 Subject: create class name automatically --- alf/alf.cpp | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) (limited to 'alf/alf.cpp') diff --git a/alf/alf.cpp b/alf/alf.cpp index 78eed99..fbc7822 100644 --- a/alf/alf.cpp +++ b/alf/alf.cpp @@ -1,5 +1,7 @@ #include "alfpriv.h" +#include + /* ALF App and Window */ static void @@ -527,13 +529,33 @@ ALF_RegisterWindowClass(ALFAPP app, const ALFWindowClassParams *params) WNDCLASS cls; ZeroMemory(&cls, sizeof(cls)); - // TODO: autogenerate class name + const TCHAR *classNamePtr = params->className; + TCHAR classNameBuf[256]; + if (!classNamePtr) { + ZeroMemory(classNameBuf, sizeof(classNameBuf)); + classNamePtr = classNameBuf; + + UUID uuid; + UuidCreate(&uuid); + +#ifdef UNICODE + unsigned short *uuidstr = NULL; +#else + unsigned char *uuidstr = NULL; +#endif + UuidToString(&uuid, &uuidstr); + + lstrcpy(classNameBuf, TEXT("ALFWindow.")); + lstrcat(classNameBuf, (LPCTSTR)uuidstr); + + RpcStringFree(&uuidstr); + } cls.style = params->classStyle; cls.hInstance = app->hInstance; cls.hCursor = LoadCursor(NULL, (LPTSTR)IDC_ARROW); cls.hbrBackground = (HBRUSH)(COLOR_BTNFACE+1); - cls.lpszClassName = params->className; + cls.lpszClassName = classNamePtr; cls.cbWndExtra = sizeof(void*); cls.cbClsExtra = sizeof(void*)*2; cls.lpfnWndProc = DefWindowProc; -- cgit v1.2.3