diff options
| author | Jonas Kümmerlin <jonas@kuemmerlin.eu> | 2019-01-02 17:44:51 +0100 |
|---|---|---|
| committer | Jonas Kümmerlin <jonas@kuemmerlin.eu> | 2019-01-02 17:44:51 +0100 |
| commit | 2517546be1599c63843e45bf1ac6c9ddb9c0dbf4 (patch) | |
| tree | a9102695a6b73e309ecf2acb9a4ce9f3c094fc91 /alf/alf.cpp | |
| parent | 89d174ab47af8a31ba316e03e36883e6924171bf (diff) | |
implement cleanup functions
Diffstat (limited to 'alf/alf.cpp')
| -rw-r--r-- | alf/alf.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/alf/alf.cpp b/alf/alf.cpp index 36e17ac..981d1e7 100644 --- a/alf/alf.cpp +++ b/alf/alf.cpp @@ -25,6 +25,9 @@ ALF_DestroyWindowPriv(ALFWindowPriv *priv) } ALF_ListInit(&priv->widgets); + if (priv->fonts.hMessageFont) + DeleteObject(priv->fonts.hMessageFont); + HeapFree(GetProcessHeap(), 0, priv->layout.columns); HeapFree(GetProcessHeap(), 0, priv->layout.rows); HeapFree(GetProcessHeap(), 0, priv); @@ -540,6 +543,13 @@ ALF_CreateApplication(HINSTANCE hInstance) return app; } +void +ALF_TeardownApplication(ALFAPP app) +{ + UnregisterClass(app->comboClass, app->hInstance); + HeapFree(GetProcessHeap(), 0, app->compatFn); + HeapFree(GetProcessHeap(), 0, app); +} void ALF_BuildRandomClassName(const TCHAR *prefix, TCHAR *buf) @@ -601,6 +611,18 @@ ALF_RegisterWindowClass(ALFAPP app, const ALFWindowClassParams *params) return MAKEINTATOM(classatom); } +void +ALF_UnregisterWindowClass(ALFAPP app, LPCTSTR className) +{ + HWND tmp = CreateWindowEx(0, className, TEXT("dummy"), 0, 0, 0, 0, 0, NULL, 0, app->hInstance, 0); + ALFWindowVTable *pvtbl = (ALFWindowVTable*)GetClassLongPtr(tmp, 0); + DestroyWindow(tmp); + + HeapFree(GetProcessHeap(), 0, pvtbl); + + UnregisterClass(className, app->hInstance); +} + HWND ALF_InstantiateWindow(ALFAPP app, LPCTSTR className, HWND hwndParent, void *closure) { return CreateWindowEx(0, @@ -615,6 +637,12 @@ HWND ALF_InstantiateWindow(ALFAPP app, LPCTSTR className, HWND hwndParent, void closure); } +void +ALF_DestroyWindow(HWND win) +{ + DestroyWindow(win); +} + ALFAPP ALF_ApplicationFromWindow(HWND hwnd) { |
