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