Author: gedmurphy
Date: Thu Oct 19 20:55:11 2006
New Revision: 24573
URL:
http://svn.reactos.org/svn/reactos?rev=24573&view=rev
Log:
- test app to display both the system and device image lists.
- this app confirms the overlay icons in the device image list are part of the list.
Added:
trunk/rosapps/tests/Imagelistviewer/
trunk/rosapps/tests/Imagelistviewer/imagelistviewer.rbuild
trunk/rosapps/tests/Imagelistviewer/main.c
trunk/rosapps/tests/Imagelistviewer/res.rc
trunk/rosapps/tests/Imagelistviewer/resource.h
Modified:
trunk/rosapps/tests/directory.rbuild
Added: trunk/rosapps/tests/Imagelistviewer/imagelistviewer.rbuild
URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/tests/Imagelistviewer/imag…
==============================================================================
--- trunk/rosapps/tests/Imagelistviewer/imagelistviewer.rbuild (added)
+++ trunk/rosapps/tests/Imagelistviewer/imagelistviewer.rbuild Thu Oct 19 20:55:11 2006
@@ -1,0 +1,12 @@
+<module name="imagelistviewer" type="win32gui"
installbase="bin" installname="imagelistviewer.exe">
+ <define name="_WIN32_IE">0x0501</define>
+ <define name="_WIN32_WINNT">0x0501</define>
+ <define name="__USE_W32API" />
+ <include base="imagelistviewer">.</include>
+ <library>kernel32</library>
+ <library>user32</library>
+ <library>setupapi</library>
+ <library>comctl32</library>
+ <file>main.c</file>
+ <file>res.rc</file>
+</module>
Added: trunk/rosapps/tests/Imagelistviewer/main.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/tests/Imagelistviewer/main…
==============================================================================
--- trunk/rosapps/tests/Imagelistviewer/main.c (added)
+++ trunk/rosapps/tests/Imagelistviewer/main.c Thu Oct 19 20:55:11 2006
@@ -1,0 +1,145 @@
+#include <windows.h>
+#include <setupapi.h>
+#include <tchar.h>
+#include "resource.h"
+
+typedef BOOL (WINAPI * SH_GIL_PROC)(HIMAGELIST *phLarge, HIMAGELIST *phSmall);
+typedef BOOL (WINAPI * FII_PROC)(BOOL fFullInit);
+
+/*** Shell32 undoc'd functions ***/
+ /* Shell_GetImageLists @71 */
+ /* FileIconInit @660 */
+
+BOOL
+DisplayImageList(HWND hwnd,
+ UINT uID)
+{
+ HWND hLV;
+ SP_CLASSIMAGELIST_DATA ImageListData;
+ LV_ITEM lvItem;
+ TCHAR Buf[6];
+ INT ImageListCount = -1;
+ INT i = 0;
+
+ hLV = GetDlgItem(hwnd, IDC_LSTVIEW);
+ (void)ListView_DeleteAllItems(hLV);
+
+ if (uID == IDC_SYSTEM)
+ {
+ HIMAGELIST hLarge, hSmall;
+ HMODULE hShell32;
+ SH_GIL_PROC Shell_GetImageLists;
+ FII_PROC FileIconInit;
+
+ hShell32 = LoadLibrary(_T("shell32.dll"));
+ if(hShell32 == NULL)
+ return FALSE;
+
+ Shell_GetImageLists = (SH_GIL_PROC)GetProcAddress(hShell32, (LPCSTR)71);
+ FileIconInit = (FII_PROC)GetProcAddress(hShell32, (LPCSTR)660);
+
+ if(Shell_GetImageLists == NULL || FileIconInit == NULL)
+ {
+ FreeLibrary(hShell32);
+ return FALSE;
+ }
+
+ FileIconInit(TRUE);
+
+ Shell_GetImageLists(&hLarge, &hSmall);
+
+ ImageListCount = ImageList_GetImageCount(hSmall);
+
+ (void)ListView_SetImageList(hLV,
+ hSmall,
+ LVSIL_SMALL);
+
+ FreeLibrary(hShell32);
+ }
+ else if (uID == IDC_DEVICE)
+ {
+ ImageListData.cbSize = sizeof(SP_CLASSIMAGELIST_DATA);
+ SetupDiGetClassImageList(&ImageListData);
+
+ ImageListCount = ImageList_GetImageCount(ImageListData.ImageList);
+
+ (void)ListView_SetImageList(hLV,
+ ImageListData.ImageList,
+ LVSIL_SMALL);
+ }
+ else
+ return FALSE;
+
+ lvItem.mask = LVIF_TEXT | LVIF_IMAGE;
+
+ while (i <= ImageListCount)
+ {
+ lvItem.iItem = i;
+ lvItem.iSubItem = 0;
+ lvItem.pszText = _itot(i, Buf, 10);
+ lvItem.iImage = i;
+
+ (void)ListView_InsertItem(hLV, &lvItem);
+
+ i++;
+ }
+
+ return TRUE;
+}
+
+
+BOOL CALLBACK
+DlgProc(HWND hwnd,
+ UINT message,
+ WPARAM wParam,
+ LPARAM lParam)
+{
+ switch (message)
+ {
+ case WM_INITDIALOG:
+ DisplayImageList(hwnd, IDC_SYSTEM);
+ return TRUE;
+
+ case WM_CLOSE:
+ EndDialog(hwnd, 0);
+ return TRUE;
+
+ case WM_COMMAND:
+ {
+ switch(LOWORD(wParam))
+ {
+ case IDOK:
+ EndDialog(hwnd, 0);
+ return TRUE;
+
+ case IDC_SYSTEM:
+ DisplayImageList(hwnd, IDC_SYSTEM);
+ return TRUE;
+
+ case IDC_DEVICE:
+ DisplayImageList(hwnd, IDC_DEVICE);
+ return TRUE;
+ }
+ }
+ }
+
+ return FALSE;
+}
+
+int WINAPI
+WinMain(HINSTANCE hThisInstance,
+ HINSTANCE hPrevInstance,
+ LPSTR lpszArgument,
+ int nCmdShow)
+{
+ INITCOMMONCONTROLSEX icex;
+
+ icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
+ icex.dwICC = ICC_BAR_CLASSES | ICC_COOL_CLASSES;
+ InitCommonControlsEx(&icex);
+
+ return DialogBox(hThisInstance,
+ MAKEINTRESOURCE(IDD_IMGLST),
+ NULL,
+ (DLGPROC)DlgProc);
+}
Added: trunk/rosapps/tests/Imagelistviewer/res.rc
URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/tests/Imagelistviewer/res.…
==============================================================================
--- trunk/rosapps/tests/Imagelistviewer/res.rc (added)
+++ trunk/rosapps/tests/Imagelistviewer/res.rc Thu Oct 19 20:55:11 2006
@@ -1,0 +1,14 @@
+#include <windows.h>
+#include <commctrl.h>
+#include "resource.h"
+
+IDD_IMGLST DIALOGEX 6,6,303,216
+CAPTION "Imagelist Viewer"
+FONT 8, "MS Sans Serif", 0, 0
+STYLE WS_BORDER | WS_VISIBLE | WS_SYSMENU
+BEGIN
+ CONTROL "", IDC_LSTVIEW, "SysListView32", WS_CHILD | WS_VISIBLE |
WS_BORDER | LVS_LIST | LVS_SMALLICON | LVS_SHAREIMAGELISTS, 0, 0, 302, 200
+ DEFPUSHBUTTON "System IL", IDC_SYSTEM, 2, 202, 54, 13
+ PUSHBUTTON "Device IL", IDC_DEVICE, 60, 202, 54, 13
+ PUSHBUTTON "Close", IDOK, 248, 202, 54, 13
+END
Added: trunk/rosapps/tests/Imagelistviewer/resource.h
URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/tests/Imagelistviewer/reso…
==============================================================================
--- trunk/rosapps/tests/Imagelistviewer/resource.h (added)
+++ trunk/rosapps/tests/Imagelistviewer/resource.h Thu Oct 19 20:55:11 2006
@@ -1,0 +1,4 @@
+#define IDD_IMGLST 1000
+#define IDC_LSTVIEW 1001
+#define IDC_SYSTEM 1002
+#define IDC_DEVICE 1003
Modified: trunk/rosapps/tests/directory.rbuild
URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/tests/directory.rbuild?rev…
==============================================================================
--- trunk/rosapps/tests/directory.rbuild (original)
+++ trunk/rosapps/tests/directory.rbuild Thu Oct 19 20:55:11 2006
@@ -112,6 +112,9 @@
<directory name="icontest">
<xi:include href="icontest/icontest.rbuild" />
</directory>
+<directory name="imagelistviewer">
+ <xi:include href="imagelistviewer/imagelistviewer.rbuild" />
+</directory>
<!-- fixme: iptest -->