mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 17:56:00 +00:00
added initial version of the network cpl
svn path=/trunk/; revision=10209
This commit is contained in:
parent
5633682080
commit
cd35daab59
15 changed files with 1114 additions and 1 deletions
|
@ -6,7 +6,7 @@ PATH_TO_TOP = ../..
|
|||
|
||||
include $(PATH_TO_TOP)/rules.mak
|
||||
|
||||
CONTROL_PANELS = access appwiz control sysdm
|
||||
CONTROL_PANELS = access appwiz ncpa sysdm control
|
||||
|
||||
all: $(CONTROL_PANELS)
|
||||
|
||||
|
|
16
reactos/lib/cpl/ncpa/.cvsignore
Normal file
16
reactos/lib/cpl/ncpa/.cvsignore
Normal file
|
@ -0,0 +1,16 @@
|
|||
*.coff
|
||||
*.cpl
|
||||
*.d
|
||||
*.a
|
||||
*.o
|
||||
*.sym
|
||||
*.map
|
||||
*.tmp
|
||||
|
||||
*.ncb
|
||||
*.opt
|
||||
*.plg
|
||||
*.~*
|
||||
dummy*.*
|
||||
Debug
|
||||
Release
|
47
reactos/lib/cpl/ncpa/Makefile
Normal file
47
reactos/lib/cpl/ncpa/Makefile
Normal file
|
@ -0,0 +1,47 @@
|
|||
# $Id: Makefile,v 1.1 2004/07/18 22:37:07 kuehng Exp $
|
||||
|
||||
PATH_TO_TOP = ../../..
|
||||
|
||||
TARGET_TYPE = dynlink
|
||||
|
||||
TARGET_EXTENSION = .cpl
|
||||
|
||||
TARGET_NAME = ncpa
|
||||
|
||||
TARGET_INSTALLDIR = system32
|
||||
|
||||
TARGET_BASE = $(TARGET_BASE_LIB_CPL_SYSDM)
|
||||
|
||||
TARGET_CFLAGS = \
|
||||
-I./include \
|
||||
-DUNICODE \
|
||||
-D_UNICODE \
|
||||
-D__REACTOS__ \
|
||||
-Wall \
|
||||
-Werror \
|
||||
-fno-builtin
|
||||
|
||||
TARGET_LFLAGS = -nostartfiles
|
||||
|
||||
TARGET_SDKLIBS = kernel32.a user32.a comctl32.a iphlpapi.a
|
||||
|
||||
TARGET_GCCLIBS = gcc
|
||||
|
||||
TARGET_PCH =
|
||||
|
||||
TARGET_CLEAN =
|
||||
|
||||
TARGET_OBJECTS = ncpa.o
|
||||
|
||||
DEP_OBJECTS = $(TARGET_OBJECTS)
|
||||
|
||||
include $(PATH_TO_TOP)/rules.mak
|
||||
|
||||
include $(TOOLS_PATH)/helper.mk
|
||||
|
||||
include $(TOOLS_PATH)/depend.mk
|
||||
|
||||
%/TAGS:
|
||||
etags -o $(@D)/TAGS $(@D)/\*.c
|
||||
|
||||
etags: ./TAGS
|
661
reactos/lib/cpl/ncpa/ncpa.c
Normal file
661
reactos/lib/cpl/ncpa/ncpa.c
Normal file
|
@ -0,0 +1,661 @@
|
|||
/*
|
||||
* Copyright 2004 Gero Kuehn
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
/* $Id: ncpa.c,v 1.1 2004/07/18 22:37:07 kuehng Exp $
|
||||
*
|
||||
* PROJECT: ReactOS Network Control Panel
|
||||
* FILE: lib/cpl/system/ncpa.c
|
||||
* PURPOSE: ReactOS Network Control Panel
|
||||
* PROGRAMMER: Gero Kuehn (reactos.filter@gkware.com)
|
||||
* UPDATE HISTORY:
|
||||
* 07-18-2004 Created
|
||||
*/
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Read this first !
|
||||
//
|
||||
// This file contains a first attempt for reactos network configuration
|
||||
// This is:
|
||||
// - not complete
|
||||
// - not the way it works on Windows
|
||||
//
|
||||
// A lot of code that can be found here now, will probably be relocated into the OS core or some
|
||||
// protocol Co-Installers or Notify Objects later when all the required COM
|
||||
// and "netcfgx.dll" infrastructure (esp. headers and Interfaces) get implemented step by step.
|
||||
//
|
||||
// This code is only a first approach to provide a usable network configuration dialogs for
|
||||
// the new network support in Reactos.
|
||||
//
|
||||
// If you intend to extend this code by more, please contact me to avoid duplicate work.
|
||||
// There are already resources and code for TCP/IP configuration that are not
|
||||
// mature enough for committing them to CVS yet.
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
#include <tchar.h>
|
||||
#include <windows.h>
|
||||
|
||||
#ifdef __REACTOS__
|
||||
//#include <Netcfgn.h>
|
||||
#else
|
||||
#include <commctrl.h>
|
||||
#include <cpl.h>
|
||||
#endif
|
||||
|
||||
#include "resource.h"
|
||||
#include "ncpa.h"
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// useful utilities
|
||||
#define NCF_HIDDEN 0x08
|
||||
#define NCF_HAS_UI 0x80
|
||||
|
||||
typedef void (ENUMREGKEYCALLBACK)(void *pCookie,HKEY hBaseKey,TCHAR *pszSubKey);
|
||||
void EnumRegKeys(ENUMREGKEYCALLBACK *pCallback,void *pCookie,HKEY hBaseKey,TCHAR *tpszRegPath)
|
||||
{
|
||||
HKEY hKey;
|
||||
int i;
|
||||
LONG ret;
|
||||
TCHAR tpszName[MAX_PATH];
|
||||
DWORD dwNameLen = sizeof(tpszName);
|
||||
if(RegOpenKeyEx(hBaseKey,tpszRegPath,0,KEY_ALL_ACCESS,&hKey)!=ERROR_SUCCESS)
|
||||
{
|
||||
OutputDebugString(_T("EnumRegKeys failed (key not found)\r\n"));
|
||||
OutputDebugString(tpszRegPath);
|
||||
OutputDebugString(_T("\r\n"));
|
||||
return;
|
||||
}
|
||||
|
||||
for(i=0;;i++)
|
||||
{
|
||||
TCHAR pszNewPath[MAX_PATH];
|
||||
ret = RegEnumKeyEx(hKey,i,tpszName,&dwNameLen,NULL,NULL,NULL,NULL);
|
||||
if(ret != ERROR_SUCCESS)
|
||||
{
|
||||
OutputDebugString(_T("EnumRegKeys: RegEnumKeyEx failed\r\n"));
|
||||
break;
|
||||
}
|
||||
|
||||
_stprintf(pszNewPath,_T("%s\\%s"),tpszRegPath,tpszName);
|
||||
OutputDebugString(_T("EnumRegKeys: Calling user supplied enum function\r\n"));
|
||||
pCallback(pCookie,hBaseKey,pszNewPath);
|
||||
|
||||
dwNameLen = sizeof(tpszName);
|
||||
}
|
||||
RegCloseKey(hKey);
|
||||
}
|
||||
|
||||
void InitPropSheetPage(PROPSHEETPAGE *psp, WORD idDlg, DLGPROC DlgProc,LPARAM lParam)
|
||||
{
|
||||
ZeroMemory(psp, sizeof(PROPSHEETPAGE));
|
||||
psp->dwSize = sizeof(PROPSHEETPAGE);
|
||||
psp->dwFlags = PSP_DEFAULT;
|
||||
psp->hInstance = hApplet;
|
||||
#ifdef _MSC_VER
|
||||
psp->pszTemplate = MAKEINTRESOURCE(idDlg);
|
||||
#else
|
||||
psp->u1.pszTemplate = MAKEINTRESOURCE(idDlg);
|
||||
#endif
|
||||
psp->pfnDlgProc = DlgProc;
|
||||
psp->lParam = lParam;
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
LONG CALLBACK DisplayApplet(VOID);
|
||||
BOOL CALLBACK NetworkPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
||||
//void DisplayTCPIPProperties(HWND hParent,IP_ADAPTER_INFO *pInfo);
|
||||
|
||||
HINSTANCE hApplet = 0;
|
||||
|
||||
/* Applets */
|
||||
APPLET Applets[] =
|
||||
{
|
||||
{IDI_CPLSYSTEM, IDS_CPLSYSTEMNAME, IDS_CPLSYSTEMDESCRIPTION, DisplayApplet}
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
BOOL FindNICClassKeyForCfgInstance(TCHAR *tpszCfgInst,TCHAR *tpszSubKeyOut)
|
||||
{
|
||||
int i;
|
||||
TCHAR tpszSubKey[MAX_PATH];
|
||||
TCHAR tpszCfgInst2[MAX_PATH];
|
||||
HKEY hKey;
|
||||
DWORD dwType,dwSize;
|
||||
for(i=0;i<100;i++)
|
||||
{
|
||||
_stprintf(tpszSubKey,_T("SYSTEM\\CurrentControlSet\\Control\\Class\\{4D36E972-E325-11CE-BFC1-08002BE10318}\\%04d"),i);
|
||||
if(RegOpenKey(HKEY_LOCAL_MACHINE,tpszSubKey,&hKey)!=ERROR_SUCCESS)
|
||||
continue;
|
||||
dwType = REG_SZ;
|
||||
if(RegQueryValueEx(hKey,_T("NetCfgInstanceId"),NULL,&dwType,(BYTE*)tpszCfgInst2,&dwSize)!=ERROR_SUCCESS) {
|
||||
RegCloseKey(hKey);
|
||||
continue;
|
||||
}
|
||||
RegCloseKey(hKey);
|
||||
if(_tcscmp(tpszCfgInst,tpszCfgInst2)==0) {
|
||||
_tcscpy(tpszSubKeyOut,tpszSubKey);
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
void NICPropertyProtocolCallback(void *pCookie,HKEY hBaseKey,TCHAR *tpszSubKey)
|
||||
{
|
||||
HWND hwndDlg;
|
||||
DWORD dwCharacteristics;
|
||||
HKEY hKey,hNDIKey;
|
||||
DWORD dwType,dwSize;
|
||||
TCHAR tpszDescription[MAX_PATH];
|
||||
TCHAR tpszNotifyObjectCLSID[MAX_PATH];
|
||||
// CLSID CLSID_NotifObj;
|
||||
// IUnknown *pUnk = NULL;
|
||||
// INetCfgComponentControl *pNetCfg;
|
||||
// INetCfgComponentPropertyUi *pNetCfgPropUI;
|
||||
hwndDlg = (HWND)pCookie;
|
||||
|
||||
if(RegOpenKey(HKEY_LOCAL_MACHINE,tpszSubKey,&hKey)!=ERROR_SUCCESS)
|
||||
return;
|
||||
dwType = REG_DWORD;
|
||||
dwSize = sizeof(dwCharacteristics);
|
||||
if(RegQueryValueEx(hKey,_T("Characteristics"),NULL,&dwType,(BYTE*)&dwCharacteristics,&dwSize)!= ERROR_SUCCESS)
|
||||
return;
|
||||
if(dwCharacteristics & NCF_HIDDEN) {
|
||||
RegCloseKey(hKey);
|
||||
return;
|
||||
}
|
||||
|
||||
dwType = REG_SZ;
|
||||
dwSize = sizeof(tpszDescription);
|
||||
if(RegQueryValueEx(hKey,_T("Description"),NULL,&dwType,(BYTE*)tpszDescription,&dwSize)!= ERROR_SUCCESS)
|
||||
return;
|
||||
|
||||
RegOpenKey(hKey,_T("Ndi"),&hNDIKey);
|
||||
dwType = REG_SZ;
|
||||
dwSize = sizeof(tpszNotifyObjectCLSID);
|
||||
if(RegQueryValueEx(hNDIKey,_T("ClsId"),NULL,&dwType,(BYTE*)tpszNotifyObjectCLSID,&dwSize)!= ERROR_SUCCESS)
|
||||
;//return;
|
||||
RegCloseKey(hNDIKey);
|
||||
|
||||
//
|
||||
// Thise code works on Windows... but not on Reactos
|
||||
//
|
||||
|
||||
// CLSIDFromString(tpszNotifyObjectCLSID,&CLSID_NotifObj);
|
||||
// CoCreateInstance(&CLSID_NotifObj,NULL,CLSCTX_INPROC_SERVER,&IID_IUnknown,(void**)&pUnk);
|
||||
// pUnk->lpVtbl->QueryInterface(pUnk,&IID_INetCfgComponentControl,(void**)&pNetCfg);
|
||||
// pUnk->lpVtbl->QueryInterface(pUnk,&IID_INetCfgComponentPropertyUi,(void**)&pNetCfgPropUI);
|
||||
{
|
||||
/*
|
||||
HRESULT hr;
|
||||
hr = pNetCfg->lpVtbl->Initialize(pNetCfg,&NetCfgComponent,&NetCfg,FALSE);
|
||||
hr = pNetCfgPropUI->lpVtbl->QueryPropertyUi(pNetCfgPropUI,(INetCfg*)&NetCfg);
|
||||
hr = pNetCfgPropUI->lpVtbl->SetContext(pNetCfgPropUI,(INetCfg*)&NetCfgComponent);
|
||||
DWORD dwNumPages = 10;
|
||||
HPROPSHEETPAGE *bOut = NULL;
|
||||
UINT nPages;
|
||||
hr = pNetCfgPropUI->MergePropPages(&dwNumPages,(BYTE**)&bOut,&nPages,GetDesktopWindow(),NULL);
|
||||
*/
|
||||
}
|
||||
|
||||
RegCloseKey(hKey);
|
||||
SendDlgItemMessage(hwndDlg,IDC_COMPONENTSLIST,LB_ADDSTRING,0,(LPARAM)tpszDescription);
|
||||
}
|
||||
|
||||
|
||||
|
||||
BOOL CALLBACK NICPropertyPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
PROPSHEETPAGE *pPage = (PROPSHEETPAGE *)GetWindowLong(hwndDlg,GWL_USERDATA);
|
||||
switch(uMsg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
{
|
||||
TCHAR *tpszCfgInstanceID;
|
||||
DWORD dwType,dwSize;
|
||||
TCHAR tpszSubKey[MAX_PATH];
|
||||
TCHAR tpszDisplayName[MAX_PATH];
|
||||
HKEY hKey;
|
||||
pPage = (PROPSHEETPAGE *)lParam;
|
||||
tpszCfgInstanceID = (TCHAR*)pPage->lParam;
|
||||
if(!FindNICClassKeyForCfgInstance(tpszCfgInstanceID,tpszSubKey))
|
||||
MessageBox(hwndDlg,_T("NIC Entry not found"),_T("Registry error"),MB_ICONSTOP);
|
||||
|
||||
if(RegOpenKey(HKEY_LOCAL_MACHINE,tpszSubKey,&hKey)!=ERROR_SUCCESS)
|
||||
return 0;
|
||||
dwType = REG_SZ;
|
||||
dwSize = sizeof(tpszDisplayName);
|
||||
if(RegQueryValueEx(hKey,_T("DriverDesc"),NULL,&dwType,(BYTE*)tpszDisplayName,&dwSize)!= ERROR_SUCCESS)
|
||||
return 0;
|
||||
RegCloseKey(hKey);
|
||||
|
||||
SetDlgItemText(hwndDlg,IDC_NETCARDNAME,tpszDisplayName);
|
||||
EnableWindow(GetDlgItem(hwndDlg,IDC_CONFIGURE),FALSE);
|
||||
|
||||
|
||||
SetWindowLong(hwndDlg,GWL_USERDATA,lParam);
|
||||
//SetDlgItemTextA(hwndDlg,IDC_NETCARDNAME,Info[pPage->lParam].Description);
|
||||
EnumRegKeys(NICPropertyProtocolCallback,hwndDlg,HKEY_LOCAL_MACHINE,_T("System\\CurrentControlSet\\Control\\Network\\{4D36E975-E325-11CE-BFC1-08002BE10318}"));
|
||||
|
||||
}
|
||||
break;
|
||||
case WM_COMMAND:
|
||||
switch(LOWORD(wParam))
|
||||
{
|
||||
case IDC_COMPONENTSLIST:
|
||||
if(HIWORD(wParam)!=LBN_DBLCLK)
|
||||
break;
|
||||
// drop though
|
||||
case IDC_PROPERTIES:
|
||||
MessageBox(NULL,_T("This control panel is incomplete.\r\nUsually, the \"Notify Object\" for this Network component should be invoked here. Reactos lacks the infrastructure to do this right now.\r\n- C++\r\n- DDK Headers for notify objects\r\n- clean header structure, that allow Windows-Compatible COM C++ Code"),_T("Error"),MB_ICONSTOP);
|
||||
// DisplayTCPIPProperties(hwndDlg,&Info[pPage->lParam]);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
void DisplayNICProperties(HWND hParent,TCHAR *tpszCfgInstanceID)
|
||||
{
|
||||
PROPSHEETPAGE psp[1];
|
||||
PROPSHEETHEADER psh;
|
||||
TCHAR tpszSubKey[MAX_PATH];
|
||||
HKEY hKey;
|
||||
DWORD dwType = REG_SZ;
|
||||
TCHAR tpszName[MAX_PATH];
|
||||
DWORD dwSize = sizeof(tpszName);
|
||||
|
||||
// Get the "Name" for this Connection
|
||||
_stprintf(tpszSubKey,_T("System\\CurrentControlSet\\Control\\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}\\%s\\Connection"),tpszCfgInstanceID);
|
||||
if(RegOpenKey(HKEY_LOCAL_MACHINE,tpszSubKey,&hKey)!=ERROR_SUCCESS)
|
||||
return;
|
||||
if(RegQueryValueEx(hKey,_T("Name"),NULL,&dwType,(BYTE*)tpszName,&dwSize)!=ERROR_SUCCESS)
|
||||
_stprintf(tpszName,_T("[ERROR]"));
|
||||
//_stprintf(tpszName,_T("[ERROR]") _T(__FILE__) _T(" %d"),__LINE__ );
|
||||
else
|
||||
_tcscat(tpszName,_T(" Properties"));
|
||||
RegCloseKey(hKey);
|
||||
|
||||
|
||||
ZeroMemory(&psh, sizeof(PROPSHEETHEADER));
|
||||
psh.dwSize = sizeof(PROPSHEETHEADER);
|
||||
psh.dwFlags = PSH_PROPSHEETPAGE | PSH_NOAPPLYNOW;
|
||||
psh.hwndParent = NULL;
|
||||
psh.hInstance = hApplet;
|
||||
#ifdef _MSC_VER
|
||||
psh.hIcon = LoadIcon(hApplet, MAKEINTRESOURCE(IDI_CPLSYSTEM));
|
||||
#else
|
||||
psh.u1.hIcon = LoadIcon(hApplet, MAKEINTRESOURCE(IDI_CPLSYSTEM));
|
||||
#endif
|
||||
psh.pszCaption = tpszName;
|
||||
psh.nPages = sizeof(psp) / sizeof(PROPSHEETPAGE);
|
||||
#ifdef _MSC_VER
|
||||
psh.nStartPage = 0;
|
||||
psh.ppsp = psp;
|
||||
#else
|
||||
psh.u2.nStartPage = 0;
|
||||
psh.u3.ppsp = psp;
|
||||
#endif
|
||||
psh.pfnCallback = NULL;
|
||||
|
||||
|
||||
InitPropSheetPage(&psp[0], IDD_NETPROPERTIES, NICPropertyPageProc,(LPARAM)tpszCfgInstanceID);
|
||||
PropertySheet(&psh) ;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
BOOL CALLBACK NICStatusPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
switch(uMsg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
{
|
||||
PROPSHEETPAGE *psp= (PROPSHEETPAGE *)lParam;
|
||||
EnableWindow(GetDlgItem(hwndDlg,IDC_ENDISABLE),FALSE);
|
||||
SetWindowLong(hwndDlg,DWL_USER,psp->lParam);
|
||||
}
|
||||
break;
|
||||
case WM_COMMAND:
|
||||
switch(LOWORD(wParam))
|
||||
{
|
||||
case IDC_PROPERTIES:
|
||||
{
|
||||
TCHAR *tpszCfgInstance;
|
||||
tpszCfgInstance = (TCHAR*)GetWindowLong(hwndDlg,DWL_USER);
|
||||
DisplayNICProperties(hwndDlg,tpszCfgInstance);
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void DisplayNICStatus(HWND hParent,TCHAR *tpszCfgInstanceID)
|
||||
{
|
||||
PROPSHEETPAGE psp[1];
|
||||
PROPSHEETHEADER psh;
|
||||
TCHAR tpszSubKey[MAX_PATH];
|
||||
HKEY hKey;
|
||||
DWORD dwType = REG_SZ;
|
||||
TCHAR tpszName[MAX_PATH];
|
||||
DWORD dwSize = sizeof(tpszName);
|
||||
|
||||
// Get the "Name" for this Connection
|
||||
_stprintf(tpszSubKey,_T("System\\CurrentControlSet\\Control\\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}\\%s\\Connection"),tpszCfgInstanceID);
|
||||
if(RegOpenKey(HKEY_LOCAL_MACHINE,tpszSubKey,&hKey)!=ERROR_SUCCESS)
|
||||
return;
|
||||
if(RegQueryValueEx(hKey,_T("Name"),NULL,&dwType,(BYTE*)tpszName,&dwSize)!=ERROR_SUCCESS)
|
||||
_stprintf(tpszName,_T("[ERROR]"));
|
||||
//_stprintf(tpszName,_T("[ERROR]") _T(__FILE__) _T(" %d"),__LINE__ );
|
||||
else
|
||||
_tcscat(tpszName,_T(" Status"));
|
||||
RegCloseKey(hKey);
|
||||
|
||||
ZeroMemory(&psh, sizeof(PROPSHEETHEADER));
|
||||
psh.dwSize = sizeof(PROPSHEETHEADER);
|
||||
psh.dwFlags = PSH_PROPSHEETPAGE | PSH_NOAPPLYNOW;
|
||||
psh.hwndParent = NULL;
|
||||
psh.hInstance = hApplet;
|
||||
// FIX THESE REACTOS HEADERS !!!!!!!!!
|
||||
#ifdef _MSC_VER
|
||||
psh.hIcon = LoadIcon(hApplet, MAKEINTRESOURCE(IDI_CPLSYSTEM));
|
||||
#else
|
||||
psh.u1.hIcon = LoadIcon(hApplet, MAKEINTRESOURCE(IDI_CPLSYSTEM));
|
||||
#endif
|
||||
psh.pszCaption = tpszName;//Caption;
|
||||
psh.nPages = sizeof(psp) / sizeof(PROPSHEETPAGE);
|
||||
#ifdef _MSC_VER
|
||||
psh.nStartPage = 0;
|
||||
psh.ppsp = psp;
|
||||
#else
|
||||
psh.u2.nStartPage = 0;
|
||||
psh.u3.ppsp = psp;
|
||||
#endif
|
||||
psh.pfnCallback = NULL;
|
||||
|
||||
|
||||
InitPropSheetPage(&psp[0], IDD_CARDPROPERTIES, NICStatusPageProc,(LPARAM)tpszCfgInstanceID);
|
||||
PropertySheet(&psh) ;
|
||||
return;
|
||||
}
|
||||
|
||||
//
|
||||
// IPHLPAPI does not provide a list of all adapters
|
||||
//
|
||||
/*
|
||||
void EnumAdapters(HWND hwndDlg)
|
||||
{
|
||||
IP_ADAPTER_INFO *pInfo;
|
||||
ULONG size=sizeof(Info);
|
||||
TCHAR pszText[MAX_ADAPTER_NAME_LENGTH + 4];
|
||||
int nIndex;
|
||||
|
||||
if(GetAdaptersInfo(Info,&size)!=ERROR_SUCCESS)
|
||||
{
|
||||
MessageBox(hwndDlg,L"IPHLPAPI.DLL failed to provide Adapter information",L"Error",MB_ICONSTOP);
|
||||
return;
|
||||
}
|
||||
pInfo = &Info[0];
|
||||
while(pInfo)
|
||||
{
|
||||
swprintf(pszText,L"%S",Info[0].Description);
|
||||
nIndex = SendDlgItemMessage(hwndDlg,IDC_NETCARDLIST,LB_ADDSTRING,0,(LPARAM)pszText);
|
||||
SendDlgItemMessage(hwndDlg,IDC_NETCARDLIST,LB_SETITEMDATA,nIndex,(LPARAM)pInfo);
|
||||
pInfo = pInfo->Next;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
|
||||
void NetAdapterCallback(void *pCookie,HKEY hBaseKey,TCHAR *tpszSubKey)
|
||||
{
|
||||
TCHAR tpszDisplayName[MAX_PATH];
|
||||
//TCHAR tpszDeviceID[MAX_PATH];
|
||||
TCHAR tpszCfgInstanceID[MAX_PATH];
|
||||
TCHAR *ptpszCfgInstanceID;
|
||||
HKEY hKey;
|
||||
DWORD dwType = REG_SZ;
|
||||
DWORD dwSize = sizeof(tpszDisplayName);
|
||||
int nIndex;
|
||||
HWND hwndDlg = (HWND)pCookie;
|
||||
DWORD dwCharacteristics;
|
||||
|
||||
OutputDebugString(_T("NetAdapterCallback\r\n"));
|
||||
OutputDebugString(tpszSubKey);
|
||||
OutputDebugString(_T("\r\n"));
|
||||
if(RegOpenKeyEx(hBaseKey,tpszSubKey,0,KEY_ALL_ACCESS,&hKey)!=ERROR_SUCCESS)
|
||||
return;
|
||||
|
||||
OutputDebugString(_T("NetAdapterCallback: Reading Characteristics\r\n"));
|
||||
dwType = REG_DWORD;
|
||||
dwSize = sizeof(dwCharacteristics);
|
||||
if(RegQueryValueEx(hKey,_T("Characteristics"),NULL,&dwType,(BYTE*)&dwCharacteristics,&dwSize)!=ERROR_SUCCESS)
|
||||
dwCharacteristics = 0;
|
||||
|
||||
|
||||
if(dwCharacteristics & NCF_HIDDEN)
|
||||
return;
|
||||
// if(!(dwCharacteristics & NCF_HAS_UI))
|
||||
// return;
|
||||
|
||||
OutputDebugString(_T("NetAdapterCallback: Reading DriverDesc\r\n"));
|
||||
dwType = REG_SZ;
|
||||
dwSize = sizeof(tpszDisplayName);
|
||||
if(RegQueryValueEx(hKey,_T("DriverDesc"),NULL,&dwType,(BYTE*)tpszDisplayName,&dwSize)!= ERROR_SUCCESS)
|
||||
_tcscpy(tpszDisplayName,_T("Unnamed Adapter"));
|
||||
|
||||
// get the link to the Enum Subkey (currently unused)
|
||||
//dwType = REG_SZ;
|
||||
//dwSize = sizeof(tpszDeviceID);
|
||||
//if(RegQueryValueEx(hKey,_T("MatchingDeviceId"),NULL,&dwType,(BYTE*)tpszDeviceID,&dwSize) != ERROR_SUCCESS) {
|
||||
// MessageBox(hwndDlg,_T("Missing MatchingDeviceId Entry"),_T("Registry Problem"),MB_ICONSTOP);
|
||||
// return;
|
||||
//}
|
||||
|
||||
// get the card configuration GUID
|
||||
dwType = REG_SZ;
|
||||
dwSize = sizeof(tpszCfgInstanceID);
|
||||
if(RegQueryValueEx(hKey,_T("NetCfgInstanceId"),NULL,&dwType,(BYTE*)tpszCfgInstanceID,&dwSize) != ERROR_SUCCESS) {
|
||||
MessageBox(hwndDlg,_T("Missing NetCfgInstanceId Entry"),_T("Registry Problem"),MB_ICONSTOP);
|
||||
return;
|
||||
}
|
||||
|
||||
ptpszCfgInstanceID = _tcsdup(tpszCfgInstanceID);
|
||||
//
|
||||
// **TODO** **FIXME** TBD
|
||||
// At this point, we should verify, if the device listed here
|
||||
// really represents a device that is currently connected to the system
|
||||
//
|
||||
// How is this done properly ?
|
||||
|
||||
|
||||
nIndex = SendDlgItemMessage(hwndDlg,IDC_NETCARDLIST,LB_ADDSTRING,0,(LPARAM)tpszDisplayName);
|
||||
SendDlgItemMessage(hwndDlg,IDC_NETCARDLIST,LB_SETITEMDATA,nIndex,(LPARAM)ptpszCfgInstanceID);
|
||||
RegCloseKey(hKey);
|
||||
}
|
||||
|
||||
|
||||
void EnumAdapters(HWND hwndDlg)
|
||||
{
|
||||
TCHAR *tpszRegPath = _T("SYSTEM\\CurrentControlSet\\Control\\Class\\{4D36E972-E325-11CE-BFC1-08002BE10318}");
|
||||
|
||||
EnumRegKeys(NetAdapterCallback,hwndDlg,HKEY_LOCAL_MACHINE,tpszRegPath);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
BOOL CALLBACK NetworkPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
NMHDR* pnmh;
|
||||
int nIndex;
|
||||
switch(uMsg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
{
|
||||
EnableWindow(GetDlgItem(hwndDlg,IDC_ADD),FALSE);
|
||||
EnableWindow(GetDlgItem(hwndDlg,IDC_REMOVE),FALSE);
|
||||
|
||||
SendDlgItemMessage(hwndDlg,IDC_NETCARDLIST,LB_SETCURSEL,0,0);
|
||||
|
||||
EnumAdapters(hwndDlg);
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_NOTIFY:
|
||||
pnmh=(NMHDR*)lParam;
|
||||
switch(pnmh->code) {
|
||||
case PSN_APPLY:
|
||||
case PSN_RESET:
|
||||
{
|
||||
while(SendDlgItemMessage(hwndDlg,IDC_NETCARDLIST,LB_GETCOUNT,0,0)>0)
|
||||
{
|
||||
TCHAR *tpszString;
|
||||
tpszString = (TCHAR*)SendDlgItemMessage(hwndDlg,IDC_NETCARDLIST,LB_GETITEMDATA,0,0);
|
||||
if(tpszString)
|
||||
free(tpszString);
|
||||
SendDlgItemMessage(hwndDlg,IDC_NETCARDLIST,LB_DELETESTRING,0,0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case WM_COMMAND:
|
||||
switch(LOWORD(wParam))
|
||||
{
|
||||
case IDC_NETCARDLIST:
|
||||
if(HIWORD(wParam)==LBN_DBLCLK) {
|
||||
nIndex = SendDlgItemMessage(hwndDlg,IDC_NETCARDLIST,LB_GETCURSEL,0,0);
|
||||
if(nIndex!=-1)
|
||||
DisplayNICStatus(hwndDlg,(TCHAR*)SendDlgItemMessage(hwndDlg,IDC_NETCARDLIST,LB_GETITEMDATA,nIndex,0));
|
||||
}
|
||||
break;
|
||||
case IDC_PROPERTIES:
|
||||
nIndex = SendDlgItemMessage(hwndDlg,IDC_NETCARDLIST,LB_GETCURSEL,0,0);
|
||||
if(nIndex!=-1)
|
||||
DisplayNICStatus(hwndDlg,(TCHAR*)SendDlgItemMessage(hwndDlg,IDC_NETCARDLIST,LB_GETITEMDATA,nIndex,0));
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* First Applet */
|
||||
LONG CALLBACK DisplayApplet(VOID)
|
||||
{
|
||||
PROPSHEETPAGE psp[1];
|
||||
PROPSHEETHEADER psh;
|
||||
TCHAR Caption[1024];
|
||||
|
||||
LoadString(hApplet, IDS_CPLSYSTEMNAME, Caption, sizeof(Caption) / sizeof(TCHAR));
|
||||
|
||||
ZeroMemory(&psh, sizeof(PROPSHEETHEADER));
|
||||
psh.dwSize = sizeof(PROPSHEETHEADER);
|
||||
psh.dwFlags = PSH_PROPSHEETPAGE;
|
||||
psh.hwndParent = NULL;
|
||||
psh.hInstance = hApplet;
|
||||
#ifdef _MSC_VER
|
||||
psh.hIcon = LoadIcon(hApplet, MAKEINTRESOURCE(IDI_CPLSYSTEM));
|
||||
#else
|
||||
psh.u1.hIcon = LoadIcon(hApplet, MAKEINTRESOURCE(IDI_CPLSYSTEM));
|
||||
#endif
|
||||
psh.pszCaption = Caption;
|
||||
psh.nPages = sizeof(psp) / sizeof(PROPSHEETPAGE);
|
||||
#ifdef _MSC_VER
|
||||
psh.nStartPage = 0;
|
||||
psh.ppsp = psp;
|
||||
#else
|
||||
psh.u2.nStartPage = 0;
|
||||
psh.u3.ppsp = psp;
|
||||
#endif
|
||||
psh.pfnCallback = NULL;
|
||||
|
||||
|
||||
InitPropSheetPage(&psp[0], IDD_PROPPAGENETWORK, NetworkPageProc,0);
|
||||
|
||||
return (LONG)(PropertySheet(&psh) != -1);
|
||||
}
|
||||
|
||||
/* Control Panel Callback */
|
||||
LONG CALLBACK CPlApplet(HWND hwndCPl, UINT uMsg, LPARAM lParam1, LPARAM lParam2)
|
||||
{
|
||||
int i = (int)lParam1;
|
||||
|
||||
switch(uMsg)
|
||||
{
|
||||
case CPL_INIT:
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
case CPL_GETCOUNT:
|
||||
{
|
||||
return sizeof(Applets)/sizeof(APPLET);
|
||||
}
|
||||
case CPL_INQUIRE:
|
||||
{
|
||||
CPLINFO *CPlInfo = (CPLINFO*)lParam2;
|
||||
CPlInfo->lData = 0;
|
||||
CPlInfo->idIcon = Applets[i].idIcon;
|
||||
CPlInfo->idName = Applets[i].idName;
|
||||
CPlInfo->idInfo = Applets[i].idDescription;
|
||||
break;
|
||||
}
|
||||
case CPL_DBLCLK:
|
||||
{
|
||||
Applets[i].AppletProc();
|
||||
break;
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD dwReason, LPVOID lpvReserved)
|
||||
{
|
||||
switch(dwReason)
|
||||
{
|
||||
case DLL_PROCESS_ATTACH:
|
||||
case DLL_THREAD_ATTACH:
|
||||
hApplet = hinstDLL;
|
||||
break;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
6
reactos/lib/cpl/ncpa/ncpa.def
Normal file
6
reactos/lib/cpl/ncpa/ncpa.def
Normal file
|
@ -0,0 +1,6 @@
|
|||
LIBRARY ncpa.cpl
|
||||
|
||||
EXPORTS
|
||||
CPlApplet
|
||||
|
||||
; EOF
|
136
reactos/lib/cpl/ncpa/ncpa.dsp
Normal file
136
reactos/lib/cpl/ncpa/ncpa.dsp
Normal file
|
@ -0,0 +1,136 @@
|
|||
# Microsoft Developer Studio Project File - Name="ncpa" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
|
||||
|
||||
CFG=ncpa - Win32 Debug
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "ncpa.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "ncpa.mak" CFG="ncpa - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "ncpa - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
|
||||
!MESSAGE "ncpa - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
MTL=midl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "ncpa - Win32 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "Release"
|
||||
# PROP BASE Intermediate_Dir "Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Ignore_Export_Lib 1
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ncpa_EXPORTS" /YX /FD /c
|
||||
# ADD CPP /nologo /MT /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_USRDLL" /D "ncpa_EXPORTS" /D "_UNICODE" /D "UNICODE" /YX /FD /c
|
||||
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
|
||||
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
|
||||
# ADD BASE RSC /l 0x407 /d "NDEBUG"
|
||||
# ADD RSC /l 0x409 /d "NDEBUG" /d "_MSC_VER"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
|
||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib iphlpapi.lib /nologo /dll /machine:I386 /out:"Release/ncpa.cpl"
|
||||
|
||||
!ELSEIF "$(CFG)" == "ncpa - Win32 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir "Debug"
|
||||
# PROP BASE Intermediate_Dir "Debug"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir "Debug"
|
||||
# PROP Intermediate_Dir "Debug"
|
||||
# PROP Ignore_Export_Lib 1
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ncpa_EXPORTS" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_USRDLL" /D "ncpa_EXPORTS" /D "_UNICODE" /D "UNICODE" /YX /FD /GZ /c
|
||||
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
|
||||
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
|
||||
# ADD BASE RSC /l 0x407 /d "_DEBUG"
|
||||
# ADD RSC /l 0x409 /d "_DEBUG" /d "_MSC_VER"
|
||||
# SUBTRACT RSC /x
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
|
||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib iphlpapi.lib /nologo /dll /debug /machine:I386 /out:"Debug/ncpa.cpl" /pdbtype:sept
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "ncpa - Win32 Release"
|
||||
# Name "ncpa - Win32 Debug"
|
||||
# Begin Group "Source Files"
|
||||
|
||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\Makefile
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\ncpa.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\ncpa.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\resource.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\tcpip_properties.c
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Header Files"
|
||||
|
||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\ncpa.def
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\ncpa.rc
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Resource Files"
|
||||
|
||||
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\resources\applet.ico
|
||||
# End Source File
|
||||
# End Group
|
||||
# End Target
|
||||
# End Project
|
29
reactos/lib/cpl/ncpa/ncpa.dsw
Normal file
29
reactos/lib/cpl/ncpa/ncpa.dsw
Normal file
|
@ -0,0 +1,29 @@
|
|||
Microsoft Developer Studio Workspace File, Format Version 6.00
|
||||
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "ncpa"=.\ncpa.dsp - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Global:
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<3>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
6
reactos/lib/cpl/ncpa/ncpa.edf
Normal file
6
reactos/lib/cpl/ncpa/ncpa.edf
Normal file
|
@ -0,0 +1,6 @@
|
|||
LIBRARY appwiz.cpl
|
||||
|
||||
EXPORTS
|
||||
CPlApplet=CPlApplet@16
|
||||
|
||||
; EOF
|
20
reactos/lib/cpl/ncpa/ncpa.h
Normal file
20
reactos/lib/cpl/ncpa/ncpa.h
Normal file
|
@ -0,0 +1,20 @@
|
|||
#ifndef __CPL_APPWIZ_H
|
||||
#define __CPL_APPWIZ_H
|
||||
|
||||
typedef LONG (CALLBACK *CPLAPPLET_PROC)(VOID);
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int idIcon;
|
||||
int idName;
|
||||
int idDescription;
|
||||
CPLAPPLET_PROC AppletProc;
|
||||
} APPLET, *PAPPLET;
|
||||
|
||||
extern HINSTANCE hApplet;
|
||||
|
||||
void ShowLastWin32Error(HWND hWndOwner);
|
||||
|
||||
#endif /* __CPL_APPWIZ_H */
|
||||
|
||||
/* EOF */
|
134
reactos/lib/cpl/ncpa/ncpa.rc
Normal file
134
reactos/lib/cpl/ncpa/ncpa.rc
Normal file
|
@ -0,0 +1,134 @@
|
|||
#include "resource.h"
|
||||
#ifdef _MSC_VER
|
||||
#include <../../../include/reactos/resource.h>
|
||||
#include <../../../include/defines.h>
|
||||
#else
|
||||
#include <reactos/resource.h>
|
||||
#include <defines.h>
|
||||
#endif
|
||||
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION RES_UINT_FV_MAJOR,RES_UINT_FV_MINOR,RES_UINT_FV_REVISION,RES_UINT_FV_BUILD
|
||||
PRODUCTVERSION RES_UINT_PV_MAJOR,RES_UINT_PV_MINOR,RES_UINT_PV_REVISION,RES_UINT_PV_BUILD
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
#else
|
||||
FILEFLAGS 0x0L
|
||||
#endif
|
||||
FILEOS 0x40004L
|
||||
FILETYPE 0x2L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "040904b0"
|
||||
BEGIN
|
||||
VALUE "CompanyName", RES_STR_COMPANY_NAME
|
||||
VALUE "FileDescription", "ReactOS Network Control Panel\0"
|
||||
VALUE "FileVersion", RES_STR_FILE_VERSION
|
||||
VALUE "InternalName", "ncpa\0"
|
||||
VALUE "LegalCopyright", RES_STR_LEGAL_COPYRIGHT
|
||||
VALUE "OriginalFilename", "ncpa.cpl\0"
|
||||
VALUE "ProductName", RES_STR_PRODUCT_NAME
|
||||
VALUE "ProductVersion", RES_STR_PRODUCT_VERSION
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x409, 1200
|
||||
END
|
||||
END
|
||||
|
||||
IDI_CPLSYSTEM ICON "resources/applet.ico"
|
||||
IDI_HORIZONTAL ICON "resources/horiz.ICO"
|
||||
IDI_VERTICAL ICON "resources/vertic.ico"
|
||||
IDI_NETSTAT ICON "resources/netconn.ico"
|
||||
|
||||
IDD_PROPPAGENETWORK DIALOG DISCARDABLE 0, 0, 246, 228
|
||||
STYLE DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
|
||||
CAPTION ""
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Network Adapters",-1,9,9,217,8
|
||||
LISTBOX IDC_NETCARDLIST,9,21,229,73,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
|
||||
PUSHBUTTON "&Add",IDC_ADD,9,100,60,14
|
||||
PUSHBUTTON "&Remove",IDC_REMOVE,72,100,60,14
|
||||
PUSHBUTTON "&Properties",IDC_PROPERTIES,179,100,60,14
|
||||
END
|
||||
|
||||
IDD_NETPROPERTIES DIALOG DISCARDABLE 0, 0, 246, 228
|
||||
STYLE DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
|
||||
CAPTION "General"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Connect Using:", -1, 9,9,217,8
|
||||
EDITTEXT IDC_NETCARDNAME, 9, 21, 230, 12, WS_DISABLED | WS_BORDER | WS_TABSTOP
|
||||
PUSHBUTTON "&Configure", IDC_CONFIGURE, 189, 38, 50, 14
|
||||
LTEXT "Components checked are used by this connection:", -1, 9, 59, 217, 8
|
||||
LISTBOX IDC_COMPONENTSLIST, 9, 71, 230, 67, LBS_STANDARD
|
||||
PUSHBUTTON "&Install", IDC_INSTALL, 9, 130, 65, 14, WS_DISABLED | WS_TABSTOP
|
||||
PUSHBUTTON "&Uninstall", IDC_UNINSTALL, 90, 130, 65, 14, WS_DISABLED | WS_TABSTOP
|
||||
PUSHBUTTON "&Properties", IDC_PROPERTIES, 174, 130, 65, 14
|
||||
GROUPBOX "Description", -1, 9, 153, 230, 46, BS_GROUPBOX | WS_DISABLED
|
||||
LTEXT "Component Description goes here...", IDC_DESCRIPTION, 15, 165, 217, 28, WS_DISABLED | WS_GROUP
|
||||
CHECKBOX "Show Icon in taskbar when connected", IDC_SHOWTASKBAR, 9, 206, 230, 12, BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP
|
||||
END
|
||||
|
||||
|
||||
IDD_CARDPROPERTIES DIALOG DISCARDABLE 0, 0, 200,180
|
||||
STYLE DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
|
||||
CAPTION "General"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
GROUPBOX "Connection", -1, 9, 8, 182, 58, BS_GROUPBOX
|
||||
LTEXT "Status:", -1, 19, 20, 60, 8
|
||||
LTEXT "Duration:", -1, 19, 34, 60, 8
|
||||
LTEXT "Speed:", -1, 19, 48, 60, 8
|
||||
GROUPBOX "Activity", -1, 9, 74, 182, 70, BS_GROUPBOX
|
||||
RTEXT "Sent", -1, 26, 90, 60, 8
|
||||
ICON IDI_HORIZONTAL, -1, 90, 85, 18, 20
|
||||
ICON IDI_NETSTAT, -1, 110, 85, 18, 20
|
||||
ICON IDI_HORIZONTAL, -1, 130, 85, 18, 20
|
||||
LTEXT "Received", -1, 149, 90, 37, 8
|
||||
LTEXT "Packets:", -1, 17, 115, 32, 8
|
||||
RTEXT "000.000.000", IDC_SEND, 63, 115, 44, 8
|
||||
ICON IDI_VERTICAL, -1, 110, 108, 18, 20
|
||||
RTEXT "000.000.000", IDC_RECEIVED, 139, 115, 44, 8
|
||||
PUSHBUTTON "&Properties", IDC_PROPERTIES, 10, 150, 50, 14
|
||||
PUSHBUTTON "&Disable", IDC_ENDISABLE, 66, 150, 50, 14
|
||||
END
|
||||
|
||||
IDD_TCPIPPROPERTIES DIALOG DISCARDABLE 0, 0, 246, 228
|
||||
STYLE DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
|
||||
CAPTION "General"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "You can get IP settings assigned automatically if your network supports this capability. Otherwise, you need to ask your network administrator for the appropriate IP settings.", -1, 9, 9, 228, 27
|
||||
CONTROL "Obtain the IP address automatically", IDC_USEDHCP, "BUTTON", BS_AUTORADIOBUTTON | WS_GROUP, 14, 43, 210, 12
|
||||
GROUPBOX "", -1, 9, 61, 228, 70, BS_GROUPBOX
|
||||
CONTROL "&Use the following IP address:", IDC_NODHCP, "BUTTON", BS_AUTORADIOBUTTON, 14, 59, 105, 12
|
||||
LTEXT "IP address:", -1, 14, 75, 135, 8
|
||||
CONTROL "",IDC_IPADDR,"SysIPAddress32",0,150,75-2,80,12
|
||||
LTEXT "Subnet mask:", -1, 14, 90, 135, 8
|
||||
CONTROL "",IDC_SUBNETMASK,"SysIPAddress32",0,150,90-2,80,12
|
||||
LTEXT "Default gateway:", -1, 14, 105, 135, 8
|
||||
CONTROL "",IDC_DEFGATEWAY,"SysIPAddress32",0,150,105-2,80,12
|
||||
CONTROL "Obtain the DNS server address automatically", IDC_AUTODNS, "BUTTON", BS_AUTORADIOBUTTON | WS_GROUP, 14, 139, 210, 12
|
||||
GROUPBOX "", -1, 9, 157, 228, 47, BS_GROUPBOX
|
||||
CONTROL "&Use the following DNS server addresses", IDC_FIXEDDNS, "BUTTON", BS_AUTORADIOBUTTON, 14, 155, 142, 12
|
||||
LTEXT "Preferred DNS server:", -1, 14, 171, 135, 8
|
||||
CONTROL "",IDC_DNS1,"SysIPAddress32",0,150,171-2,80,12
|
||||
LTEXT "Alternate DNS server:", -1, 14, 186, 135, 8
|
||||
CONTROL "",IDC_DNS2,"SysIPAddress32",0,150,186-2,80,12
|
||||
PUSHBUTTON "&Advanced", IDC_ADVANCED, 186, 209, 50, 14, WS_DISABLED | WS_TABSTOP
|
||||
}
|
||||
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_CPLSYSTEMNAME "Network Properties"
|
||||
IDS_CPLSYSTEMDESCRIPTION "Customizes network settings."
|
||||
END
|
58
reactos/lib/cpl/ncpa/resource.h
Normal file
58
reactos/lib/cpl/ncpa/resource.h
Normal file
|
@ -0,0 +1,58 @@
|
|||
#ifndef __CPL_RESOURCE_H
|
||||
#define __CPL_RESOURCE_H
|
||||
|
||||
/* metrics */
|
||||
#define PROPSHEETWIDTH 246
|
||||
#define PROPSHEETHEIGHT 228
|
||||
#define PROPSHEETPADDING 6
|
||||
#define SYSTEM_COLUMN (0 * PROPSHEETPADDING)
|
||||
// this is not supported by the MS Resource compiler:
|
||||
//#define LABELLINE(x) 0 //(((PROPSHEETPADDING + 2) * x) + (x + 2))
|
||||
|
||||
#define ICONSIZE 16
|
||||
|
||||
/* ids */
|
||||
|
||||
#define IDI_CPLSYSTEM 100
|
||||
#define IDI_HORIZONTAL 101
|
||||
#define IDI_VERTICAL 102
|
||||
#define IDI_NETSTAT 103
|
||||
|
||||
#define IDD_PROPPAGENETWORK 100
|
||||
#define IDD_CARDPROPERTIES 101
|
||||
#define IDD_NETPROPERTIES 102
|
||||
#define IDD_TCPIPPROPERTIES 103
|
||||
|
||||
#define IDS_CPLSYSTEMNAME 1001
|
||||
#define IDS_CPLSYSTEMDESCRIPTION 2001
|
||||
|
||||
/* controls */
|
||||
#define IDC_NETCARDLIST 100
|
||||
#define IDC_ADD 101
|
||||
#define IDC_REMOVE 102
|
||||
#define IDC_PROPERTIES 103
|
||||
|
||||
#define IDC_NETCARDNAME 104
|
||||
#define IDC_CONFIGURE 105
|
||||
#define IDC_COMPONENTSLIST 106
|
||||
#define IDC_INSTALL 107
|
||||
#define IDC_UNINSTALL 108
|
||||
//#define IDC_PROPERTIES 109
|
||||
#define IDC_DESCRIPTION 110
|
||||
#define IDC_SHOWTASKBAR 111
|
||||
#define IDC_SEND 112
|
||||
#define IDC_RECEIVED 113
|
||||
#define IDC_ENDISABLE 114
|
||||
#define IDC_USEDHCP 115
|
||||
#define IDC_NODHCP 116
|
||||
#define IDC_AUTODNS 117
|
||||
#define IDC_FIXEDDNS 118
|
||||
#define IDC_ADVANCED 119
|
||||
#define IDC_IPADDR 120
|
||||
#define IDC_SUBNETMASK 121
|
||||
#define IDC_DEFGATEWAY 122
|
||||
#define IDC_DNS1 123
|
||||
#define IDC_DNS2 124
|
||||
#endif /* __CPL_RESOURCE_H */
|
||||
|
||||
/* EOF */
|
BIN
reactos/lib/cpl/ncpa/resources/HORIZ.ICO
Normal file
BIN
reactos/lib/cpl/ncpa/resources/HORIZ.ICO
Normal file
Binary file not shown.
After Width: | Height: | Size: 766 B |
BIN
reactos/lib/cpl/ncpa/resources/NETCONN.ICO
Normal file
BIN
reactos/lib/cpl/ncpa/resources/NETCONN.ICO
Normal file
Binary file not shown.
After Width: | Height: | Size: 766 B |
BIN
reactos/lib/cpl/ncpa/resources/VERTIC.ICO
Normal file
BIN
reactos/lib/cpl/ncpa/resources/VERTIC.ICO
Normal file
Binary file not shown.
After Width: | Height: | Size: 766 B |
BIN
reactos/lib/cpl/ncpa/resources/applet.ico
Normal file
BIN
reactos/lib/cpl/ncpa/resources/applet.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.4 KiB |
Loading…
Add table
Add a link
Reference in a new issue