diff options
| author | Jonas Kümmerlin <jonas@kuemmerlin.eu> | 2018-12-28 22:55:27 +0100 |
|---|---|---|
| committer | Jonas Kümmerlin <jonas@kuemmerlin.eu> | 2018-12-28 22:55:27 +0100 |
| commit | 8ead043a524ffedc634663779a49730cc5da8d97 (patch) | |
| tree | a149210382f8617838a7df85d29682723a4e3c2a /alf/alf.cpp | |
| parent | bf6eb1b9ff4cc8c8a2aa02dd5ea9224a6e4dcbbc (diff) | |
create class name automatically
Diffstat (limited to 'alf/alf.cpp')
| -rw-r--r-- | alf/alf.cpp | 26 |
1 files changed, 24 insertions, 2 deletions
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 <rpc.h> + /* 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; |
