From d5879d411bc52cc34cdb54dd8c06adba33367f4e Mon Sep 17 00:00:00 2001 From: Thomas Bluemel Date: Wed, 23 Nov 2005 23:02:35 +0000 Subject: [PATCH] added an initial mmsys.cpl. not added to the build system because w32api lacks a devguid.h svn path=/trunk/; revision=19508 --- reactos/baseaddress.xml | 1 + reactos/lib/cpl/mmsys/En.rc | 14 ++ reactos/lib/cpl/mmsys/mmsys.c | 187 ++++++++++++++++++++++ reactos/lib/cpl/mmsys/mmsys.def | 6 + reactos/lib/cpl/mmsys/mmsys.h | 32 ++++ reactos/lib/cpl/mmsys/mmsys.rc | 13 ++ reactos/lib/cpl/mmsys/mmsys.xml | 16 ++ reactos/lib/cpl/mmsys/resource.h | 15 ++ reactos/lib/cpl/mmsys/resources/mmsys.ico | Bin 0 -> 1398 bytes 9 files changed, 284 insertions(+) create mode 100644 reactos/lib/cpl/mmsys/En.rc create mode 100644 reactos/lib/cpl/mmsys/mmsys.c create mode 100644 reactos/lib/cpl/mmsys/mmsys.def create mode 100644 reactos/lib/cpl/mmsys/mmsys.h create mode 100644 reactos/lib/cpl/mmsys/mmsys.rc create mode 100644 reactos/lib/cpl/mmsys/mmsys.xml create mode 100644 reactos/lib/cpl/mmsys/resource.h create mode 100644 reactos/lib/cpl/mmsys/resources/mmsys.ico diff --git a/reactos/baseaddress.xml b/reactos/baseaddress.xml index 723035acf16..058dfb6e208 100644 --- a/reactos/baseaddress.xml +++ b/reactos/baseaddress.xml @@ -4,6 +4,7 @@ + diff --git a/reactos/lib/cpl/mmsys/En.rc b/reactos/lib/cpl/mmsys/En.rc new file mode 100644 index 00000000000..39989faa5cc --- /dev/null +++ b/reactos/lib/cpl/mmsys/En.rc @@ -0,0 +1,14 @@ +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US + +IDD_HARDWARE DIALOGEX 0, 0, 246, 228 +STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Hardware" +FONT 8, "MS Shell Dlg" +BEGIN +END + +STRINGTABLE +BEGIN + IDS_CPLNAME "Sound and Audio Devices" + IDS_CPLDESCRIPTION "Changes the sound scheme for your computer, or configure the settings for your speakers and recording devices." +END \ No newline at end of file diff --git a/reactos/lib/cpl/mmsys/mmsys.c b/reactos/lib/cpl/mmsys/mmsys.c new file mode 100644 index 00000000000..d9c83671fc6 --- /dev/null +++ b/reactos/lib/cpl/mmsys/mmsys.c @@ -0,0 +1,187 @@ +/* + * ReactOS + * Copyright (C) 2005 ReactOS Team + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +/* $Id: main.c 12852 2005-01-06 13:58:04Z mf $ + * + * PROJECT: ReactOS Multimedia Control Panel + * FILE: lib/cpl/mmsys/mmsys.c + * PURPOSE: ReactOS Multimedia Control Panel + * PROGRAMMER: Thoams Weidenmueller + * UPDATE HISTORY: + * 2005/11/23 Created + */ +#include +#include +#include +#include +#include +#include +#include + +#include "mmsys.h" +#include "resource.h" + +HWND WINAPI +DeviceCreateHardwarePageEx(HWND hWndParent, + LPGUID lpGuids, + UINT uNumberOfGuids, + UINT Unknown); + +#define NUM_APPLETS (1) + + +HINSTANCE hApplet = 0; + +/* Applets */ +const APPLET Applets[NUM_APPLETS] = +{ + {IDI_CPLICON, IDS_CPLNAME, IDS_CPLDESCRIPTION, MmSysApplet}, +}; + +/* Hardware property page dialog callback */ +static INT_PTR CALLBACK +HardwareDlgProc(HWND hwndDlg, + UINT uMsg, + WPARAM wParam, + LPARAM lParam) +{ + switch(uMsg) + { + case WM_INITDIALOG: + { + GUID Guids[] = { + GUID_DEVCLASS_CDROM, + GUID_DEVCLASS_MEDIA, + }; + + /* create the hardware page */ + DeviceCreateHardwarePageEx(hwndDlg, + Guids, + sizeof(Guids) / sizeof(Guids[0]), + 1); + break; + } + } + + return FALSE; +} + +LONG APIENTRY +MmSysApplet(HWND hwnd, + UINT uMsg, + LONG wParam, + LONG lParam) +{ + PROPSHEETPAGE psp[1]; + PROPSHEETHEADER psh = {0}; + TCHAR Caption[256]; + + LoadString(hApplet, + IDS_CPLNAME, + Caption, + sizeof(Caption) / sizeof(TCHAR)); + + psh.dwSize = sizeof(PROPSHEETHEADER); + psh.dwFlags = PSH_PROPSHEETPAGE | PSH_PROPTITLE; + psh.hwndParent = NULL; + psh.hInstance = hApplet; + psh.hIcon = LoadIcon(hApplet, + MAKEINTRESOURCE(IDI_CPLICON)); + psh.pszCaption = Caption; + psh.nPages = sizeof(psp) / sizeof(PROPSHEETPAGE); + psh.nStartPage = 0; + psh.ppsp = psp; + + InitPropSheetPage(&psp[0], + IDD_HARDWARE, + HardwareDlgProc); + + return (LONG)(PropertySheet(&psh) != -1); +} + +VOID +InitPropSheetPage(PROPSHEETPAGE *psp, + WORD idDlg, + DLGPROC DlgProc) +{ + ZeroMemory(psp, sizeof(PROPSHEETPAGE)); + psp->dwSize = sizeof(PROPSHEETPAGE); + psp->dwFlags = PSP_DEFAULT; + psp->hInstance = hApplet; + psp->pszTemplate = MAKEINTRESOURCE(idDlg); + psp->pfnDlgProc = DlgProc; +} + + +/* Control Panel Callback */ +LONG CALLBACK +CPlApplet(HWND hwndCpl, + UINT uMsg, + LPARAM lParam1, + LPARAM lParam2) +{ + switch(uMsg) + { + case CPL_INIT: + return TRUE; + + case CPL_GETCOUNT: + return NUM_APPLETS; + + case CPL_INQUIRE: + { + CPLINFO *CPlInfo = (CPLINFO*)lParam2; + UINT uAppIndex = (UINT)lParam1; + + CPlInfo->lData = 0; + CPlInfo->idIcon = Applets[uAppIndex].idIcon; + CPlInfo->idName = Applets[uAppIndex].idName; + CPlInfo->idInfo = Applets[uAppIndex].idDescription; + break; + } + + case CPL_DBLCLK: + { + UINT uAppIndex = (UINT)lParam1; + Applets[uAppIndex].AppletProc(hwndCpl, + uMsg, + lParam1, + lParam2); + break; + } + } + + return FALSE; +} + + +BOOL STDCALL +DllMain(HINSTANCE hinstDLL, + DWORD dwReason, + LPVOID lpReserved) +{ + switch(dwReason) + { + case DLL_PROCESS_ATTACH: + hApplet = hinstDLL; + DisableThreadLibraryCalls(hinstDLL); + break; + } + + return TRUE; +} diff --git a/reactos/lib/cpl/mmsys/mmsys.def b/reactos/lib/cpl/mmsys/mmsys.def new file mode 100644 index 00000000000..3e5b9c95a49 --- /dev/null +++ b/reactos/lib/cpl/mmsys/mmsys.def @@ -0,0 +1,6 @@ +LIBRARY mmsys.cpl + +EXPORTS +CPlApplet@16 + +; EOF diff --git a/reactos/lib/cpl/mmsys/mmsys.h b/reactos/lib/cpl/mmsys/mmsys.h new file mode 100644 index 00000000000..0cc249db0d1 --- /dev/null +++ b/reactos/lib/cpl/mmsys/mmsys.h @@ -0,0 +1,32 @@ +#ifndef __CPL_MMSYS_H +#define __CPL_MMSYS_H + +//typedef LONG (CALLBACK *APPLET_PROC)(VOID); + +typedef struct _APPLET +{ + UINT idIcon; + UINT idName; + UINT idDescription; + APPLET_PROC AppletProc; +} APPLET, *PAPPLET; + +extern HINSTANCE hApplet; + + +/* main.c */ + +VOID +InitPropSheetPage(PROPSHEETPAGE *psp, + WORD idDlg, + DLGPROC DlgProc); + +LONG APIENTRY +MmSysApplet(HWND hwnd, + UINT uMsg, + LONG wParam, + LONG lParam); + +#endif /* __CPL_MMSYS_H */ + +/* EOF */ diff --git a/reactos/lib/cpl/mmsys/mmsys.rc b/reactos/lib/cpl/mmsys/mmsys.rc new file mode 100644 index 00000000000..209c6699616 --- /dev/null +++ b/reactos/lib/cpl/mmsys/mmsys.rc @@ -0,0 +1,13 @@ +#include +#include "resource.h" + +#define REACTOS_VERSION_DLL +#define REACTOS_STR_FILE_DESCRIPTION "ReactOS Multimedia Control Panel\0" +#define REACTOS_STR_INTERNAL_NAME "mmsys\0" +#define REACTOS_STR_ORIGINAL_FILENAME "mmsys.cpl\0" +#include + + +IDI_CPLICON ICON "resources/mmsys.ico" + +#include "En.rc" diff --git a/reactos/lib/cpl/mmsys/mmsys.xml b/reactos/lib/cpl/mmsys/mmsys.xml new file mode 100644 index 00000000000..e6a7b362ee2 --- /dev/null +++ b/reactos/lib/cpl/mmsys/mmsys.xml @@ -0,0 +1,16 @@ + + + . + + + + + 0x600 + 0x501 + kernel32 + user32 + comctl32 + devmgr + mmsys.c + mmsys.rc + diff --git a/reactos/lib/cpl/mmsys/resource.h b/reactos/lib/cpl/mmsys/resource.h new file mode 100644 index 00000000000..994457ea2f6 --- /dev/null +++ b/reactos/lib/cpl/mmsys/resource.h @@ -0,0 +1,15 @@ +#ifndef __CPL_RESOURCE_H +#define __CPL_RESOURCE_H + + +#define IDI_CPLICON 1 + +#define IDD_HARDWARE 100 + +#define IDS_CPLNAME 1000 +#define IDS_CPLDESCRIPTION 1001 + + +#endif /* __CPL_RESOURCE_H */ + +/* EOF */ diff --git a/reactos/lib/cpl/mmsys/resources/mmsys.ico b/reactos/lib/cpl/mmsys/resources/mmsys.ico new file mode 100644 index 0000000000000000000000000000000000000000..3eae16df58c7f5b9a6b80827d788f7416afccbda GIT binary patch literal 1398 zcmds1v2MaJ5Pcy?>6oosVPx#onJ?g5x|yL8-r%#mb?JxX50cHi7sup4K?uN%Pj@Bxs|$P2s|z*`B_b@H#sH*;X6HIy|)ae`;;G(4U3c%KwU zng}6K%Mtq*G0LLw(UgYY#`a*~ft@q>4}8aK8_?=J=D_=@^L_oC@Gbu>Zm!E|ecnu( z+`8Q-9);RO1DVO`5*Ex${7*rzT$k>q>YY}5t123;JHup-7leVI7nk`P|W&Ys_ z_r*N>-jMqObGQP}oF-9>st~smS_|yFs$V?oA+Ep34wa~LO!6G5 MKQVRI!ab7Xj@&-27XSbN literal 0 HcmV?d00001