added clb.dll (mostly just stubs) which is required by MS regedit for it's REG_FULL_RESOURCE_DESCRIPTOR editor. As there doesn't seem to be another application that uses it, this place is probably the best for it. Modified: trunk/reactos/baseaddress.xml Modified: trunk/reactos/bootdata/packages/reactos.dff Added: trunk/reactos/subsys/system/regedit/clb/ Added: trunk/reactos/subsys/system/regedit/clb/clb.c Added: trunk/reactos/subsys/system/regedit/clb/clb.def Added: trunk/reactos/subsys/system/regedit/clb/clb.rc Added: trunk/reactos/subsys/system/regedit/clb/clb.xml Added: trunk/reactos/subsys/system/regedit/clb/clb_En.rc Added: trunk/reactos/subsys/system/regedit/clb/clbdll.h Added: trunk/reactos/subsys/system/regedit/clb/precomp.h Added: trunk/reactos/subsys/system/regedit/clb/resource.h Modified: trunk/reactos/subsys/system/regedit/regedit.xml _____
Modified: trunk/reactos/baseaddress.xml --- trunk/reactos/baseaddress.xml 2005-09-29 16:55:01 UTC (rev 18156) +++ trunk/reactos/baseaddress.xml 2005-09-29 16:55:59 UTC (rev 18157) @@ -29,6 +29,7 @@
<property name="BASEADDRESS_SMDLL" value="0x6b3B0000" /> <property name="BASEADDRESS_URLMON" value="0x6b3C0000" /> <property name="BASEADDRESS_SERIALUI" value="0x6b3D0000" /> +<property name="BASEADDRESS_CLB" value="0x6f2b0000" /> <property name="BASEADDRESS_CARDS" value="0x701a0000" /> <property name="BASEADDRESS_WININET" value="0x70200000" /> <property name="BASEADDRESS_ACLUI" value="0x71550000" /> _____
Modified: trunk/reactos/bootdata/packages/reactos.dff --- trunk/reactos/bootdata/packages/reactos.dff 2005-09-29 16:55:01 UTC (rev 18156) +++ trunk/reactos/bootdata/packages/reactos.dff 2005-09-29 16:55:59 UTC (rev 18157) @@ -174,6 +174,7 @@
subsys\system\msiexec\msiexec.exe 1 subsys\system\notepad\notepad.exe 1 subsys\system\regedit\regedit.exe 4 +subsys\system\regedit\clb\clb.dll 1 subsys\system\regsvr32\regsvr32.exe 1 subsys\system\reporterror\reporterror.exe 1 subsys\system\rundll32\rundll32.exe 1 _____
Added: trunk/reactos/subsys/system/regedit/clb/clb.c --- trunk/reactos/subsys/system/regedit/clb/clb.c 2005-09-29 16:55:01 UTC (rev 18156) +++ trunk/reactos/subsys/system/regedit/clb/clb.c 2005-09-29 16:55:59 UTC (rev 18157) @@ -0,0 +1,310 @@
+/* + * ReactOS Column List Box + * Copyright (C) 2005 Thomas Weidenmueller + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +/* + * PROJECT: ReactOS Column List Box + * FILE: lib/clb/clb.c + * PURPOSE: Column List Box + * PROGRAMMER: Thomas Weidenmueller w3seek@reactos.com + * + * UPDATE HISTORY: + * 10/29/2005 Created + */ +#include <precomp.h> + +static HINSTANCE hDllInstance; + +static const WCHAR ClbClassName[] = L"ColumnListBox"; +static const WCHAR ClbColumns[] = L"Column1;Column2;Column3"; + +typedef struct _CLB_PRIVATEDATA +{ + HWND hwnd; +} CLB_PRIVATEDATA, *PCLB_PRIVATEDATA; + +static const CLBS_INFO ClbsSupportedStyles[] = +{ + { + CLBS_NOTIFY, + 0x0, + L"CLBS_NOTIFY" + }, + { + CLBS_SORT, + 0x0, + L"CLBS_SORT" + }, + { + CLBS_DISABLENOSCROLL, + 0x0, + L"CLBS_DISABLENOSCROLL" + }, + { + CLBS_VSCROLL, + 0x0, + L"CLBS_VSCROLL" + }, + { + CLBS_BORDER, + 0x0, + L"CLBS_BORDER" + }, + { + CLBS_POPOUT_HEADINGS, + 0x0, + L"CLBS_POPOUT_HEADINGS" + }, + { + CLBS_SPRINGLY_COLUMNS, + 0x0, + L"CLBS_SPRINGLY_COLUMNS" + }, + { + LBS_OWNERDRAWFIXED, + 0x0, + L"LBS_OWNERDRAWFIXED" + } +}; + +/* + * @unimplemented + */ +DWORD +WINAPI +ClbAddData(IN DWORD Unknown1, + IN DWORD Unknown2, + IN DWORD Unknown3) +{ + DPRINT1("ClbAddData(0x%x, 0x%x, 0x%x)\n", Unknown1, Unknown2, Unknown3); + return 0; +} + + +/* + * @unimplemented + */ +DWORD +WINAPI +ClbSetColumnWidths(IN DWORD Unknown1, + IN DWORD Unknown2, + IN DWORD Unknown3) +{ + DPRINT1("ClbSetColumnWidths(0x%x, 0x%x, 0x%x)\n", Unknown1, Unknown2, Unknown3); + return 0; +} + + +/* + * @unimplemented + */ +LRESULT +CALLBACK +ClbWndProc(IN HWND hwnd, + IN UINT uMsg, + IN WPARAM wParam, + IN LPARAM lParam) +{ + PCLB_PRIVATEDATA PrivData; + LRESULT Ret = 0; + + DPRINT1("ClbWndProc(0x%p, 0x%x, 0x%p, 0x%p)\n", hwnd, uMsg, wParam, lParam); + + PrivData = (PCLB_PRIVATEDATA)GetWindowLongPtr(hwnd, + 0); + if (PrivData == NULL && uMsg != WM_CREATE) + { + goto HandleDefMsg; + } + + switch (uMsg) + { + case WM_CREATE: + PrivData = HeapAlloc(GetProcessHeap(), + 0, + sizeof(CLB_PRIVATEDATA)); + if (PrivData == NULL) + { + Ret = (LRESULT)-1; + break; + } + PrivData->hwnd = hwnd; + break; + + case WM_DESTROY: + HeapFree(GetProcessHeap(), + 0, + PrivData); + break; + + default: +HandleDefMsg: + Ret = DefWindowProc(hwnd, + uMsg, + wParam, + lParam); + break; + } + + return Ret; +} + + +static INT_PTR CALLBACK +ClbpStyleDlgProc(IN HWND hwndDlg, + IN UINT uMsg, + IN WPARAM wParam, + IN LPARAM lParam) +{ + INT_PTR Ret = FALSE; + + DPRINT1("ClbpStyleDlgProc(0x%p, 0x%x, 0x%p, 0x%p)\n", hwndDlg, uMsg, wParam, lParam); + + switch (uMsg) + { + case WM_COMMAND: + switch (LOWORD(wParam)) + { + case IDOK: + case IDCANCEL: + EndDialog(hwndDlg, + (INT_PTR)LOWORD(wParam)); + break; + } + break; + + case WM_CLOSE: + EndDialog(hwndDlg, + IDCANCEL); + break; + + case WM_INITDIALOG: + Ret = TRUE; + break; + } + + return Ret; +} + + +/* + * @implemented + */ +INT_PTR +WINAPI +ClbStyleW(IN HWND hWndParent, + IN LPARAM dwInitParam) +{ + return DialogBoxParam(hDllInstance, + MAKEINTRESOURCE(IDD_COLUMNLISTBOXSTYLES), + hWndParent, + ClbpStyleDlgProc, + dwInitParam); +} + + +/* + * @implemented + */ +BOOL +WINAPI +CustomControlInfoW(OUT LPCUSTOM_CONTROL_INFO CustomControlInfo OPTIONAL) +{ + if (CustomControlInfo != NULL) + { + wcscpy(CustomControlInfo->ClassName, + ClbClassName); + + CustomControlInfo->Zero1 = 0; + + wcscpy(CustomControlInfo->ClassName2, + ClbClassName); + + CustomControlInfo->Unknown1 = 0x60; /* FIXME - ??? */ + CustomControlInfo->Unknown2 = 0x50; /* FIXME - ??? */ + CustomControlInfo->Unknown3 = 0x50A10013; /* FIXME - ??? */ + + CustomControlInfo->Zero2 = 0; + CustomControlInfo->Zero3 = 0; + + CustomControlInfo->StylesCount = sizeof(ClbsSupportedStyles) / sizeof(ClbsSupportedStyles[0]); + CustomControlInfo->SupportedStyles = ClbsSupportedStyles; + + wcscpy(CustomControlInfo->Columns, + ClbColumns); + + CustomControlInfo->ClbStyleW = ClbStyleW; + + CustomControlInfo->Zero4 = 0; + CustomControlInfo->Zero5 = 0; + CustomControlInfo->Zero6 = 0; + } + + return TRUE; +} + +BOOL +WINAPI +DllMain(IN HINSTANCE hinstDLL, + IN DWORD dwReason, + IN LPVOID lpvReserved) +{ + BOOL Ret = TRUE; + + switch (dwReason) + { + case DLL_PROCESS_ATTACH: + { + WNDCLASS ClbWndClass; + + hDllInstance = hinstDLL; + + InitCommonControls(); + + /* register the control's window class */ + ClbWndClass.style = CS_GLOBALCLASS | CS_OWNDC; + ClbWndClass.lpfnWndProc = ClbWndProc; + ClbWndClass.cbClsExtra = 0; + ClbWndClass.cbWndExtra = sizeof(PCLB_PRIVATEDATA); + ClbWndClass.hInstance = hinstDLL, + ClbWndClass.hIcon = NULL; + ClbWndClass.hCursor = LoadCursor(NULL, + (LPWSTR)IDC_ARROW); + ClbWndClass.hbrBackground = NULL; + ClbWndClass.lpszMenuName = NULL; + ClbWndClass.lpszClassName = ClbClassName; + + if (!RegisterClass(&ClbWndClass)) + { + Ret = FALSE; + break; + } + break; + } + + case DLL_THREAD_ATTACH: + case DLL_THREAD_DETACH: + break; + + case DLL_PROCESS_DETACH: + UnregisterClass(ClbClassName, + hinstDLL); + break; + } + return Ret; +} + Property changes on: trunk/reactos/subsys/system/regedit/clb/clb.c ___________________________________________________________________ Name: svn:keywords + author date revision Name: svn:eol-style + native _____
Added: trunk/reactos/subsys/system/regedit/clb/clb.def --- trunk/reactos/subsys/system/regedit/clb/clb.def 2005-09-29 16:55:01 UTC (rev 18156) +++ trunk/reactos/subsys/system/regedit/clb/clb.def 2005-09-29 16:55:59 UTC (rev 18157) @@ -0,0 +1,10 @@
+LIBRARY clb.dll + +EXPORTS +ClbAddData@12 @1 +ClbSetColumnWidths@12 @2 +ClbStyleW@8 @3 +ClbWndProc@16 @4 +CustomControlInfoW@4 @5 + +; EOF Property changes on: trunk/reactos/subsys/system/regedit/clb/clb.def ___________________________________________________________________ Name: svn:eol-style + native _____
Added: trunk/reactos/subsys/system/regedit/clb/clb.rc --- trunk/reactos/subsys/system/regedit/clb/clb.rc 2005-09-29 16:55:01 UTC (rev 18156) +++ trunk/reactos/subsys/system/regedit/clb/clb.rc 2005-09-29 16:55:59 UTC (rev 18157) @@ -0,0 +1,12 @@
+#include <windows.h> +#include <reactos/resource.h> +#include "resource.h" + +#define REACTOS_VERSION_DLL +#define REACTOS_STR_FILE_DESCRIPTION "ReactOS Column List Box\0" +#define REACTOS_STR_INTERNAL_NAME "clb\0" +#define REACTOS_STR_ORIGINAL_FILENAME "clb.dll\0" +#include <reactos/version.rc> + +#include "clb_En.rc" + Property changes on: trunk/reactos/subsys/system/regedit/clb/clb.rc ___________________________________________________________________ Name: svn:keywords + author date revision Name: svn:eol-style + native _____
Added: trunk/reactos/subsys/system/regedit/clb/clb.xml --- trunk/reactos/subsys/system/regedit/clb/clb.xml 2005-09-29 16:55:01 UTC (rev 18156) +++ trunk/reactos/subsys/system/regedit/clb/clb.xml 2005-09-29 16:55:59 UTC (rev 18157) @@ -0,0 +1,18 @@
+<module name="clb" type="win32dll" baseaddress="${BASEADDRESS_CLB}" installbase="system32" installname="clb.dll"> + <importlibrary definition="clb.def" /> + <include base="clb">.</include> + <define name="UNICODE" /> + <define name="_UNICODE" /> + <define name="__USE_W32API" /> + <define name="_WIN32_IE">0x0500</define> + <define name="_WIN32_WINNT">0x0600</define> + <define name="WINVER">0x0600</define> + <library>ntdll</library> + <library>kernel32</library> + <library>user32</library> + <library>gdi32</library> + <library>comctl32</library> + <file>clb.c</file> + <file>clb.rc</file> + <pch>precomp.h</pch> +</module> Property changes on: trunk/reactos/subsys/system/regedit/clb/clb.xml ___________________________________________________________________ Name: svn:eol-style + native _____
Added: trunk/reactos/subsys/system/regedit/clb/clb_En.rc --- trunk/reactos/subsys/system/regedit/clb/clb_En.rc 2005-09-29 16:55:01 UTC (rev 18156) +++ trunk/reactos/subsys/system/regedit/clb/clb_En.rc 2005-09-29 16:55:59 UTC (rev 18157) @@ -0,0 +1,28 @@
+LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT + +IDD_COLUMNLISTBOXSTYLES DIALOGEX 0, 0, 227, 215 +STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Column List Box Styles" +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + GROUPBOX "Column List Box Styles", -1, 6, 7, 158, 71 + CHECKBOX "&Standard", 1710, 10, 20, 42, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP + CHECKBOX "&Border", 1713, 10, 30, 34, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP + CHECKBOX "S&ort", 1705, 10, 40, 26, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP + CHECKBOX "Notif&y", 1706, 10, 50, 32, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP + CHECKBOX "V&ert. Scroll Bar", 1707, 10, 60, 64, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP + CHECKBOX "&Multiple Selection", -1, 79, 20, 72, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP | WS_DISABLED + CHECKBOX "E&xtended Selection", -1, 79, 30, 77, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP | WS_DISABLED + CHECKBOX "&Popout Headings", 1714, 79, 40, 68, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP + CHECKBOX "&Springy Columns", 1715, 79, 50, 66, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP + GROUPBOX "Basic Styles", -1, 6, 80, 158, 34 + CHECKBOX "&Visible", 1701, 10, 92, 34, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP + CHECKBOX "&Disabled", 1702, 10, 102, 41, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP + CHECKBOX "&Group", 1703, 79, 92, 32, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP + CHECKBOX "&Tab Stop", 1704, 79, 102, 44, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP + PUSHBUTTON "OK", IDOK, 37, 125, 40, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP + PUSHBUTTON "Cancel", IDCANCEL, 93, 125, 40, 14, BS_PUSHBUTTON | WS_GROUP | WS_TABSTOP + CHECKBOX "&Disable No-Scroll", 1708, 79, 60, 66, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP +END + Property changes on: trunk/reactos/subsys/system/regedit/clb/clb_En.rc ___________________________________________________________________ Name: svn:keywords + author date revision Name: svn:eol-style + native _____
Added: trunk/reactos/subsys/system/regedit/clb/clbdll.h --- trunk/reactos/subsys/system/regedit/clb/clbdll.h 2005-09-29 16:55:01 UTC (rev 18156) +++ trunk/reactos/subsys/system/regedit/clb/clbdll.h 2005-09-29 16:55:59 UTC (rev 18157) @@ -0,0 +1,43 @@
+#ifndef __CLBDLL_H +#define __CLBDLL_H + +#define CLBS_NOTIFY 0x1 +#define CLBS_SORT 0x2 +#define CLBS_DISABLENOSCROLL 0x1000 +#define CLBS_VSCROLL 0x200000 +#define CLBS_BORDER 0x800000 +#define CLBS_POPOUT_HEADINGS 0x200 +#define CLBS_SPRINGLY_COLUMNS 0x0 + +typedef struct _CLBS_INFO +{ + DWORD Style; + DWORD Unknown; /* FIXME - ExStyle??? */ + LPCWSTR StyleName; +} CLBS_INFO, *LPCLBS_INFO; + +typedef struct _CUSTOM_CONTROL_INFO +{ + WCHAR ClassName[32]; + DWORD Zero1; /* sizeof(DWORD) or sizeof(PVOID)? */ + WCHAR ClassName2[32]; + DWORD Unknown1; /* FIXME - size correct? */ + DWORD Unknown2; /* FIXME - size correct? */ + DWORD Unknown3; /* FIXME - size correct? */ + DWORD Zero2; /* FIXME - size correct? */ + DWORD Zero3; /* FIXME - size correct? */ + DWORD StylesCount; + const CLBS_INFO *SupportedStyles; + WCHAR Columns[256]; + INT_PTR (WINAPI *ClbStyleW)(IN HWND hWndParent, + IN LPARAM dwInitParam); + DWORD Zero4; /* FIXME - size correct? */ + DWORD Zero5; /* FIXME - size correct? */ + DWORD Zero6; /* FIXME - size correct? */ +} CUSTOM_CONTROL_INFO, *LPCUSTOM_CONTROL_INFO; + +LRESULT CALLBACK ClbWndProc(HWND,UINT,WPARAM,LPARAM); +INT_PTR WINAPI ClbStyleW(HWND,LPARAM); +BOOL WINAPI CustomControlInfoW(LPCUSTOM_CONTROL_INFO); + +#endif /* __CLBDLL_H */ Property changes on: trunk/reactos/subsys/system/regedit/clb/clbdll.h ___________________________________________________________________ Name: svn:keywords + author date revision Name: svn:eol-style + native _____
Added: trunk/reactos/subsys/system/regedit/clb/precomp.h --- trunk/reactos/subsys/system/regedit/clb/precomp.h 2005-09-29 16:55:01 UTC (rev 18156) +++ trunk/reactos/subsys/system/regedit/clb/precomp.h 2005-09-29 16:55:59 UTC (rev 18157) @@ -0,0 +1,10 @@
+#include <windows.h> +#include <commctrl.h> +#include <clbdll.h> + +#include "resource.h" + +ULONG DbgPrint(PCH Format,...); +#define DPRINT1 DbgPrint + +/* EOF */ Property changes on: trunk/reactos/subsys/system/regedit/clb/precomp.h ___________________________________________________________________ Name: svn:keywords + author date revision Name: svn:eol-style + native _____
Added: trunk/reactos/subsys/system/regedit/clb/resource.h --- trunk/reactos/subsys/system/regedit/clb/resource.h 2005-09-29 16:55:01 UTC (rev 18156) +++ trunk/reactos/subsys/system/regedit/clb/resource.h 2005-09-29 16:55:59 UTC (rev 18157) @@ -0,0 +1,6 @@
+#ifndef __CLB_RESOURCE_H +#define __CLB_RESOURCE_H + +#define IDD_COLUMNLISTBOXSTYLES 1700 + +#endif /* __CLB_RESOURCE_H */ Property changes on: trunk/reactos/subsys/system/regedit/clb/resource.h ___________________________________________________________________ Name: svn:keywords + author date revision Name: svn:eol-style + native _____
Modified: trunk/reactos/subsys/system/regedit/regedit.xml --- trunk/reactos/subsys/system/regedit/regedit.xml 2005-09-29 16:55:01 UTC (rev 18156) +++ trunk/reactos/subsys/system/regedit/regedit.xml 2005-09-29 16:55:59 UTC (rev 18157) @@ -26,3 +26,6 @@
<file>treeview.c</file> <file>regedit.rc</file> </module> +<directory name="clb"> + <xi:include href="clb/clb.xml" /> +</directory> \ No newline at end of file