summaryrefslogtreecommitdiff
path: root/storage/ndb/src/cw/cpcc-win32/C++
diff options
context:
space:
mode:
Diffstat (limited to 'storage/ndb/src/cw/cpcc-win32/C++')
-rw-r--r--storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.cpp215
-rw-r--r--storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.dsp216
-rw-r--r--storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.dsw29
-rw-r--r--storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.h40
-rw-r--r--storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.icobin0 -> 1078 bytes
-rw-r--r--storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.rc193
-rw-r--r--storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.sln21
-rw-r--r--storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.suobin0 -> 8704 bytes
-rw-r--r--storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.vcproj240
-rw-r--r--storage/ndb/src/cw/cpcc-win32/C++/Closed.ICObin0 -> 1078 bytes
-rw-r--r--storage/ndb/src/cw/cpcc-win32/C++/NdbControls.cpp436
-rw-r--r--storage/ndb/src/cw/cpcc-win32/C++/Open.ICObin0 -> 1078 bytes
-rw-r--r--storage/ndb/src/cw/cpcc-win32/C++/StdAfx.cpp24
-rw-r--r--storage/ndb/src/cw/cpcc-win32/C++/StdAfx.h69
-rw-r--r--storage/ndb/src/cw/cpcc-win32/C++/TreeView.cpp19
-rw-r--r--storage/ndb/src/cw/cpcc-win32/C++/TreeView.h19
-rw-r--r--storage/ndb/src/cw/cpcc-win32/C++/bmp00001.bmpbin0 -> 622 bytes
-rw-r--r--storage/ndb/src/cw/cpcc-win32/C++/resource.h90
-rw-r--r--storage/ndb/src/cw/cpcc-win32/C++/small.icobin0 -> 318 bytes
-rw-r--r--storage/ndb/src/cw/cpcc-win32/C++/toolbar.bmpbin0 -> 622 bytes
20 files changed, 1611 insertions, 0 deletions
diff --git a/storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.cpp b/storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.cpp
new file mode 100644
index 00000000000..59ee3e90451
--- /dev/null
+++ b/storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.cpp
@@ -0,0 +1,215 @@
+/* Copyright (C) 2003 MySQL AB
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
+#include "stdafx.h"
+
+HINSTANCE hInst ;
+TCHAR szTitle[MAX_LOADSTRING] ;
+TCHAR szWindowClass[MAX_LOADSTRING] ;
+
+static CNdbControls controls ;
+
+int APIENTRY WinMain(HINSTANCE hInstance,
+ HINSTANCE hPrevInstance,
+ LPSTR lpCmdLine,
+ int nCmdShow){
+ MSG msg;
+ HACCEL hAccelTable;
+
+ LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING) ;
+ LoadString(hInstance, IDC_CPC_GUI, szWindowClass, MAX_LOADSTRING) ;
+ NdbRegisterClass(hInstance);
+
+ if (!InitInstance (hInstance, nCmdShow)) {
+ return FALSE;
+ }
+
+ hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_CPC_GUI);
+
+ while (GetMessage(&msg, NULL, 0, 0)){
+
+ if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)){
+
+ TranslateMessage(&msg);
+ DispatchMessage(&msg);
+
+ }
+
+ }
+
+ return msg.wParam;
+}
+
+
+ATOM NdbRegisterClass(HINSTANCE hInstance){
+ WNDCLASSEX wcex;
+
+ wcex.cbSize = sizeof(WNDCLASSEX);
+
+ wcex.style = CS_HREDRAW | CS_VREDRAW ;
+ wcex.lpfnWndProc = (WNDPROC)WndProc;
+ wcex.cbClsExtra = 0;
+ wcex.cbWndExtra = 0;
+ wcex.hInstance = hInstance;
+ wcex.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_CPC_GUI);
+ wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
+ wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW);
+ wcex.lpszMenuName = (LPCSTR)IDC_CPC_GUI;
+ wcex.lpszClassName = szWindowClass;
+ wcex.hIconSm = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL);
+
+ return RegisterClassEx(&wcex);
+}
+
+
+BOOL InitInstance(HINSTANCE hInstance, int nCmdShow){
+
+ HWND hWnd;
+
+ hInst = hInstance;
+
+ hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
+ CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
+
+ InitCommonControls();
+
+ if (!hWnd) return FALSE ;
+
+ ShowWindow(hWnd, nCmdShow) ;
+ UpdateWindow(hWnd) ;
+
+ return TRUE;
+}
+
+LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){
+
+ int wmId, wmEvent;
+ PAINTSTRUCT ps;
+ HDC hdc;
+ int c = 0 ;
+
+ switch (message)
+ {
+
+ case WM_CREATE:
+ _assert(controls.Create(hInst, hWnd)) ;
+ return 0 ;
+
+ case WM_COMMAND:
+ wmId = LOWORD(wParam);
+ wmEvent = HIWORD(wParam);
+
+ switch (wmId){
+ case IDM_ABOUT:
+ DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About);
+ break;
+ case IDM_EXIT:
+ DestroyWindow(hWnd);
+ break;
+ default:
+ return DefWindowProc(hWnd, message, wParam, lParam);
+ }
+ break;
+
+ case WM_NOTIFY:
+ switch (((LPNMHDR) lParam)->code) {
+ case TTN_GETDISPINFO: {
+
+ LPTOOLTIPTEXT lpttt;
+ lpttt = (LPTOOLTIPTEXT) lParam;
+ lpttt->hinst = hInst;
+
+ int idButton = lpttt->hdr.idFrom;
+
+ switch (idButton){
+ case IDM_NEW:
+ lpttt->lpszText = MAKEINTRESOURCE(IDS_TIP_NEW);
+ break;
+ case IDM_DELETE:
+ lpttt->lpszText = MAKEINTRESOURCE(IDS_TIP_DELETE);
+ break;
+ case IDM_PROPS:
+ lpttt->lpszText = MAKEINTRESOURCE(IDS_TIP_PROPS);
+ break;
+ }
+ break;
+ }
+ case TVN_SELCHANGED: {
+ LPNMTREEVIEW pnmtv ;
+
+ pnmtv = (LPNMTREEVIEW) lParam ;
+ controls.ToggleListViews(pnmtv) ;
+
+ break ;
+ }
+
+ case NM_RCLICK: {
+ LPNMHDR lpnmh ;
+ lpnmh = (LPNMHDR) lParam ;
+ switch(lpnmh->idFrom){
+ case ID_TREEVIEW:
+ break;
+ default:
+ break ;
+ }
+ }
+
+ default:
+ break;
+ }
+
+
+ case WM_PAINT:
+ hdc = BeginPaint(hWnd, &ps) ;
+ EndPaint(hWnd, &ps);
+ break;
+
+ case WM_SIZE:
+ controls.Resize() ;
+ return 0 ;
+
+ case WM_DESTROY:
+ PostQuitMessage(0);
+ break;
+
+ default:
+ return DefWindowProc(hWnd, message, wParam, lParam);
+ }
+ return 0;
+}
+
+
+LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam){
+
+ switch (message){
+
+ case WM_INITDIALOG:
+ return TRUE;
+
+ case WM_COMMAND:
+ if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL){
+ EndDialog(hDlg, LOWORD(wParam));
+ return TRUE;
+ }
+ break;
+ }
+ return FALSE;
+}
+
+
+
+
+
diff --git a/storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.dsp b/storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.dsp
new file mode 100644
index 00000000000..91007b0a47e
--- /dev/null
+++ b/storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.dsp
@@ -0,0 +1,216 @@
+# Microsoft Developer Studio Project File - Name="CPC_GUI" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Application" 0x0101
+
+CFG=CPC_GUI - 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 "CPC_GUI.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 "CPC_GUI.mak" CFG="CPC_GUI - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "CPC_GUI - Win32 Release" (based on "Win32 (x86) Application")
+!MESSAGE "CPC_GUI - Win32 Debug" (based on "Win32 (x86) Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "CPC_GUI - 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 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /Yu"stdafx.h" /FD /c
+# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /Yu"stdafx.h" /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+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 /subsystem:windows /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib mfc42.lib /nologo /subsystem:windows /machine:I386
+
+!ELSEIF "$(CFG)" == "CPC_GUI - 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 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /Yu"stdafx.h" /FD /GZ /c
+# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /FR /Yu"stdafx.h" /FD /GZ /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+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 /subsystem:windows /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib comdlg32.lib advapi32.lib shell32.lib comctl32.lib mfc42d.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+
+!ENDIF
+
+# Begin Target
+
+# Name "CPC_GUI - Win32 Release"
+# Name "CPC_GUI - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\CPC_GUI.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\CPC_GUI.rc
+# End Source File
+# Begin Source File
+
+SOURCE=.\NdbControls.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\StdAfx.cpp
+# ADD CPP /Yc"stdafx.h"
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=.\CPC_GUI.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\NdbControls.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\resource.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\StdAfx.h
+# 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=.\bitmap1.bmp
+# End Source File
+# Begin Source File
+
+SOURCE=.\bmp00001.bmp
+# End Source File
+# Begin Source File
+
+SOURCE=.\C.bmp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Closed.BMP
+# End Source File
+# Begin Source File
+
+SOURCE=.\Closed.ICO
+# End Source File
+# Begin Source File
+
+SOURCE=.\Closed24.bmp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Computer24.BMP
+# End Source File
+# Begin Source File
+
+SOURCE=.\CPC_GUI.ico
+# End Source File
+# Begin Source File
+
+SOURCE=.\Db.bmp
+# End Source File
+# Begin Source File
+
+SOURCE=.\icon1.ico
+# End Source File
+# Begin Source File
+
+SOURCE=.\O.bmp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Open.BMP
+# End Source File
+# Begin Source File
+
+SOURCE=.\Open.ICO
+# End Source File
+# Begin Source File
+
+SOURCE=.\Open24.bmp
+# End Source File
+# Begin Source File
+
+SOURCE=.\small.ico
+# End Source File
+# Begin Source File
+
+SOURCE=.\toolbar.bmp
+# End Source File
+# Begin Source File
+
+SOURCE=.\toolbar1.bmp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Tower2.ICO
+# End Source File
+# Begin Source File
+
+SOURCE=.\TowerIC1.BMP
+# End Source File
+# End Group
+# Begin Source File
+
+SOURCE=.\ReadMe.txt
+# End Source File
+# End Target
+# End Project
diff --git a/storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.dsw b/storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.dsw
new file mode 100644
index 00000000000..1f163a31662
--- /dev/null
+++ b/storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.dsw
@@ -0,0 +1,29 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "CPC_GUI"=.\CPC_GUI.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
diff --git a/storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.h b/storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.h
new file mode 100644
index 00000000000..cf7670948a7
--- /dev/null
+++ b/storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.h
@@ -0,0 +1,40 @@
+/* Copyright (C) 2003 MySQL AB
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
+
+#if !defined(AFX_CPC_GUI_H__EA01C861_C56D_48F1_856F_4935E20620B1__INCLUDED_)
+#define AFX_CPC_GUI_H__EA01C861_C56D_48F1_856F_4935E20620B1__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+
+#define MAX_LOADSTRING 100
+
+
+
+#define TV_ROOT_ITEMS 2
+
+
+// Global Variables
+
+ATOM NdbRegisterClass(HINSTANCE) ;
+BOOL InitInstance(HINSTANCE, int) ;
+LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM) ;
+LRESULT CALLBACK About(HWND, UINT, WPARAM, LPARAM);
+
+#endif // !defined(AFX_CPC_GUI_H__EA01C861_C56D_48F1_856F_4935E20620B1__INCLUDED_)
diff --git a/storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.ico b/storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.ico
new file mode 100644
index 00000000000..386883523bc
--- /dev/null
+++ b/storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.ico
Binary files differ
diff --git a/storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.rc b/storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.rc
new file mode 100644
index 00000000000..41d75b2b282
--- /dev/null
+++ b/storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.rc
@@ -0,0 +1,193 @@
+//Microsoft Developer Studio generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#define APSTUDIO_HIDDEN_SYMBOLS
+#include "windows.h"
+#undef APSTUDIO_HIDDEN_SYMBOLS
+#include "resource.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+IDI_CPC_GUI ICON DISCARDABLE "CPC_GUI.ICO"
+IDI_SMALL ICON DISCARDABLE "SMALL.ICO"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Menu
+//
+
+IDM_CPC_GUI MENU DISCARDABLE
+BEGIN
+ POPUP "&File"
+ BEGIN
+ MENUITEM "E&xit", IDM_EXIT
+ END
+ POPUP "&Actions"
+ BEGIN
+ MENUITEM "&Insert...", ID_ACTIONS_INSERT
+ MENUITEM "&Delete", ID_ACTIONS_DELETE
+ MENUITEM "&Properties", ID_ACTIONS_PROPERTIES
+ END
+ POPUP "&Help"
+ BEGIN
+ MENUITEM "&About ...", IDM_ABOUT
+ END
+END
+
+IDM_TREEVIEW MENU DISCARDABLE
+BEGIN
+ MENUITEM "&Insert", ID_TREEVIEW1
+ MENUITEM "&Delete", ID_DELETE
+ MENUITEM "&Properties", ID_PROPERTIES
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Accelerator
+//
+
+IDC_CPC_GUI ACCELERATORS MOVEABLE PURE
+BEGIN
+ "?", IDM_ABOUT, ASCII, ALT
+ "/", IDM_ABOUT, ASCII, ALT
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_ABOUTBOX DIALOG DISCARDABLE 22, 17, 230, 75
+STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
+CAPTION "About"
+FONT 8, "MS Sans Serif"
+BEGIN
+ LTEXT "NDB Cluster Process Control Applet v1.0",IDC_STATIC,7,8,
+ 213,8,SS_NOPREFIX
+ LTEXT "Copyright (C) 2003 MySQL AB",
+ IDC_STATIC,7,20,213,20
+ DEFPUSHBUTTON "OK",IDOK,185,55,41,16,WS_GROUP
+END
+
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+2 TEXTINCLUDE MOVEABLE PURE
+BEGIN
+ "#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
+ "#include ""windows.h""\r\n"
+ "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
+ "#include ""resource.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE MOVEABLE PURE
+BEGIN
+ "\r\n"
+ "\0"
+END
+
+1 TEXTINCLUDE MOVEABLE PURE
+BEGIN
+ "resource.h\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Bitmap
+//
+
+IDR_TOOLBAR BITMAP MOVEABLE PURE "toolbar.bmp"
+IDB_TOOLBAR BITMAP MOVEABLE PURE "bitmap1.bmp"
+IDB_COMPUTER BITMAP MOVEABLE PURE "TowerIC1.BMP"
+IDB_OPEN BITMAP MOVEABLE PURE "Open.BMP"
+IDB_CLOSED BITMAP MOVEABLE PURE "Closed.BMP"
+IDB_DATABASE BITMAP MOVEABLE PURE "DB.bmp"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Toolbar
+//
+
+IDR_TOOLBAR TOOLBAR MOVEABLE PURE 18, 18
+BEGIN
+ BUTTON ID_BUTTON32773
+ BUTTON ID_BUTTON32783
+ BUTTON ID_BUTTON32784
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// String Table
+//
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_APP_TITLE "NDB Cluster Process Control Applet"
+ IDS_TV_ROOT_COMPUTERS "Computers"
+ IDS_TV_ROOT_DATABASES "Databases"
+ IDS_LV_COMPUTER_HEADER_1 "Computer"
+ IDS_LV_COMPUTER_HEADER_2 "Hostname"
+ IDS_LV_PROCESS_HEADER_1 "Process"
+ IDC_CPC_GUI "CPC_GUI"
+ IDS_TIP_NEW "Add new computer or database"
+ IDS_TIP_DELETE "Delete selected computer or database"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_TIP_PROPS "Display properties for selected computer or database"
+ IDS_LV_PROCESS_HEADER_2 "Name"
+ IDS_LV_PROCESS_HEADER_3 "Owner"
+ IDS_LV_PROCESS_HEADER_4 "Status"
+ IDS_LV_COMPUTER_HEADER_3 "Status"
+END
+
+#endif // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.sln b/storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.sln
new file mode 100644
index 00000000000..86b574d851d
--- /dev/null
+++ b/storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.sln
@@ -0,0 +1,21 @@
+Microsoft Visual Studio Solution File, Format Version 7.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CPC_GUI", "CPC_GUI.vcproj", "{F5FADD9D-4353-4A73-88DC-474A4D17B485}"
+EndProject
+Global
+ GlobalSection(SolutionConfiguration) = preSolution
+ ConfigName.0 = Debug
+ ConfigName.1 = Release
+ EndGlobalSection
+ GlobalSection(ProjectDependencies) = postSolution
+ EndGlobalSection
+ GlobalSection(ProjectConfiguration) = postSolution
+ {F5FADD9D-4353-4A73-88DC-474A4D17B485}.Debug.ActiveCfg = Debug|Win32
+ {F5FADD9D-4353-4A73-88DC-474A4D17B485}.Debug.Build.0 = Debug|Win32
+ {F5FADD9D-4353-4A73-88DC-474A4D17B485}.Release.ActiveCfg = Release|Win32
+ {F5FADD9D-4353-4A73-88DC-474A4D17B485}.Release.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ EndGlobalSection
+ GlobalSection(ExtensibilityAddIns) = postSolution
+ EndGlobalSection
+EndGlobal
diff --git a/storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.suo b/storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.suo
new file mode 100644
index 00000000000..e7d178f04c3
--- /dev/null
+++ b/storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.suo
Binary files differ
diff --git a/storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.vcproj b/storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.vcproj
new file mode 100644
index 00000000000..56f9f3a8511
--- /dev/null
+++ b/storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.vcproj
@@ -0,0 +1,240 @@
+<?xml version="1.0" encoding = "Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="7.00"
+ Name="CPC_GUI"
+ SccProjectName=""
+ SccLocalPath="">
+ <Platforms>
+ <Platform
+ Name="Win32"/>
+ </Platforms>
+ <Configurations>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory=".\Release"
+ IntermediateDirectory=".\Release"
+ ConfigurationType="1"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="FALSE"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ InlineFunctionExpansion="1"
+ PreprocessorDefinitions="WIN32,NDEBUG,_WINDOWS"
+ StringPooling="TRUE"
+ RuntimeLibrary="4"
+ EnableFunctionLevelLinking="TRUE"
+ UsePrecompiledHeader="3"
+ PrecompiledHeaderThrough="stdafx.h"
+ PrecompiledHeaderFile=".\Release/CPC_GUI.pch"
+ AssemblerListingLocation=".\Release/"
+ ObjectFile=".\Release/"
+ ProgramDataBaseFileName=".\Release/"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalOptions="/MACHINE:I386"
+ AdditionalDependencies="mfc42.lib"
+ OutputFile=".\Release/CPC_GUI.exe"
+ LinkIncremental="1"
+ SuppressStartupBanner="TRUE"
+ ProgramDatabaseFile=".\Release/CPC_GUI.pdb"
+ SubSystem="2"/>
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="NDEBUG"
+ MkTypLibCompatible="TRUE"
+ SuppressStartupBanner="TRUE"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Release/CPC_GUI.tlb"/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ </Configuration>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory=".\Debug"
+ IntermediateDirectory=".\Debug"
+ ConfigurationType="1"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="FALSE"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ PreprocessorDefinitions="WIN32,_DEBUG,_WINDOWS"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="5"
+ UsePrecompiledHeader="3"
+ PrecompiledHeaderThrough="stdafx.h"
+ PrecompiledHeaderFile=".\Debug/CPC_GUI.pch"
+ AssemblerListingLocation=".\Debug/"
+ ObjectFile=".\Debug/"
+ ProgramDataBaseFileName=".\Debug/"
+ BrowseInformation="1"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"
+ DebugInformationFormat="4"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalOptions="/MACHINE:I386"
+ AdditionalDependencies="comctl32.lib mfc70d.lib"
+ OutputFile=".\Debug/CPC_GUI.exe"
+ LinkIncremental="2"
+ SuppressStartupBanner="TRUE"
+ GenerateDebugInformation="TRUE"
+ ProgramDatabaseFile=".\Debug/CPC_GUI.pdb"
+ SubSystem="2"/>
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="_DEBUG"
+ MkTypLibCompatible="TRUE"
+ SuppressStartupBanner="TRUE"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Debug/CPC_GUI.tlb"/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ </Configuration>
+ </Configurations>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
+ <File
+ RelativePath=".\CPC_GUI.cpp">
+ </File>
+ <File
+ RelativePath=".\CPC_GUI.rc">
+ </File>
+ <File
+ RelativePath=".\NdbControls.cpp">
+ </File>
+ <File
+ RelativePath=".\StdAfx.cpp">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"/>
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl">
+ <File
+ RelativePath=".\CPC_GUI.h">
+ </File>
+ <File
+ RelativePath=".\NdbControls.h">
+ </File>
+ <File
+ RelativePath=".\StdAfx.h">
+ </File>
+ <File
+ RelativePath=".\resource.h">
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
+ <File
+ RelativePath=".\C.bmp">
+ </File>
+ <File
+ RelativePath=".\CPC_GUI.ico">
+ </File>
+ <File
+ RelativePath=".\Closed.BMP">
+ </File>
+ <File
+ RelativePath=".\Closed.ICO">
+ </File>
+ <File
+ RelativePath=".\Closed24.bmp">
+ </File>
+ <File
+ RelativePath=".\Computer24.BMP">
+ </File>
+ <File
+ RelativePath=".\Db.bmp">
+ </File>
+ <File
+ RelativePath=".\O.bmp">
+ </File>
+ <File
+ RelativePath=".\Open.BMP">
+ </File>
+ <File
+ RelativePath=".\Open.ICO">
+ </File>
+ <File
+ RelativePath=".\Open24.bmp">
+ </File>
+ <File
+ RelativePath=".\Tower2.ICO">
+ </File>
+ <File
+ RelativePath=".\TowerIC1.BMP">
+ </File>
+ <File
+ RelativePath=".\bitmap1.bmp">
+ </File>
+ <File
+ RelativePath=".\bmp00001.bmp">
+ </File>
+ <File
+ RelativePath=".\icon1.ico">
+ </File>
+ <File
+ RelativePath=".\small.ico">
+ </File>
+ <File
+ RelativePath=".\toolbar.bmp">
+ </File>
+ <File
+ RelativePath=".\toolbar1.bmp">
+ </File>
+ </Filter>
+ <File
+ RelativePath=".\ReadMe.txt">
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/storage/ndb/src/cw/cpcc-win32/C++/Closed.ICO b/storage/ndb/src/cw/cpcc-win32/C++/Closed.ICO
new file mode 100644
index 00000000000..044042b42fb
--- /dev/null
+++ b/storage/ndb/src/cw/cpcc-win32/C++/Closed.ICO
Binary files differ
diff --git a/storage/ndb/src/cw/cpcc-win32/C++/NdbControls.cpp b/storage/ndb/src/cw/cpcc-win32/C++/NdbControls.cpp
new file mode 100644
index 00000000000..6bbc9a9859b
--- /dev/null
+++ b/storage/ndb/src/cw/cpcc-win32/C++/NdbControls.cpp
@@ -0,0 +1,436 @@
+/* Copyright (C) 2003 MySQL AB
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
+#include "stdafx.h"
+#include "NdbControls.h"
+
+
+/**
+* CNdbControl implementation
+*/
+
+BOOL CNdbControl::GetRect(LPRECT lprc) const {
+
+ _ASSERT(this) ;
+
+ return GetClientRect(m_hControl, lprc) ;
+
+}
+
+BOOL CNdbControl::Resize(LONG x, LONG y, LONG w, LONG h) const {
+
+ _ASSERT(this) ;
+
+ if(!MoveWindow(m_hControl, x, y, w, h, TRUE))
+ return FALSE ;
+ if(m_bVisible){
+ ShowWindow(m_hControl, SW_SHOW) ;
+ UpdateWindow(m_hControl) ;
+ }
+ return TRUE ;
+
+}
+
+BOOL CNdbControl::Show(BOOL bShow) {
+
+ _ASSERT(this) ;
+
+ if(bShow){
+ ShowWindow(m_hControl, SW_SHOW);
+ m_bVisible = TRUE ;
+ }else{
+ ShowWindow(m_hControl, SW_HIDE);
+ m_bVisible = FALSE ;
+ }
+ EnableWindow(m_hControl, bShow) ;
+ UpdateWindow(m_hControl) ;
+
+ return TRUE ;
+}
+
+
+
+CNdbControl::~CNdbControl(){
+
+ DestroyWindow(m_hControl) ;
+ if(m_hMenu)
+ DestroyMenu(m_hMenu) ;
+
+}
+
+
+/**
+* CNdbListView implementation
+*/
+
+BOOL CNdbListView::Create(HINSTANCE hInst, HWND hParent, DWORD dwId, NDB_ITEM_TYPE enType, PNDB_LV pstH, DWORD dwWidth) {
+
+ if(!pstH)
+ return FALSE ;
+
+ LV_COLUMN lvC ;
+ m_hInstance = hInst ;
+ m_hParent = hParent ;
+ m_dwId = dwId ;
+ m_dwWidth = dwWidth ;
+ m_dwWidth = 100 ;
+ m_enType = enType;
+ char* szLabels[MAX_LV_HEADERS] ;
+ int count = 0 ;
+
+ m_hControl = CreateWindowEx(WS_EX_OVERLAPPEDWINDOW, WC_LISTVIEW, TEXT(""),
+ WS_VISIBLE | WS_CHILD | WS_BORDER | LVS_REPORT,
+ 0, 0, 0, 0, m_hParent, (HMENU)m_dwId, hInst, NULL );
+
+ if(!m_hControl)
+ return FALSE ;
+
+ lvC.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
+ lvC.fmt = LVCFMT_LEFT;
+
+ switch(enType){
+ case ITEM_COMPR_ROOT:
+ szLabels[0] = pstH->szComputer ;
+ szLabels[1] = pstH->szHostname ;
+ szLabels[2] = pstH->szStatus ;
+ count = 3 ;
+ break ;
+ case ITEM_DB_ROOT:
+ szLabels[0] = pstH->szDatabase ;
+ szLabels[1] = pstH->szStatus ;
+ count = 2 ;
+ break ;
+ case ITEM_COMPR:
+ szLabels[0] = pstH->szProcess ;
+ szLabels[1] = pstH->szDatabase;
+ szLabels[2] = pstH->szOwner ;
+ szLabels[3] = pstH->szStatus ;
+ count = 4 ;
+ case ITEM_DB:
+ szLabels[0] = pstH->szProcess ;
+ szLabels[1] = pstH->szComputer;
+ szLabels[2] = pstH->szOwner ;
+ szLabels[3] = pstH->szStatus ;
+ count = 4 ;
+ break ;
+ NDB_DEFAULT_UNREACHABLE ;
+ }
+
+ for(int j = 0 ; j < count ; ++j){
+ lvC.iSubItem = j ;
+ lvC.cx = m_dwWidth ;
+ lvC.pszText = szLabels[j] ;
+ if(0xFFFFFFFF == ListView_InsertColumn(m_hControl, j, &lvC))
+ return FALSE ;
+ }
+
+ SendMessage(m_hControl, LVM_SETEXTENDEDLISTVIEWSTYLE, LVS_EX_FULLROWSELECT,
+ LVS_EX_FULLROWSELECT );
+
+ ShowWindow(m_hControl, SW_SHOW) ;
+
+ return TRUE ;
+
+}
+
+
+
+/**
+* CNdbToolBar implementation
+*/
+
+
+
+/**
+* CNdbTreeView implementation
+*/
+
+BOOL CNdbTreeView::Create(HINSTANCE hInst, HWND hParent, DWORD dwMenuId, DWORD dwId){
+
+ if(!CreateTreeView(hInst, hParent, dwId))
+ return FALSE ;
+
+ m_hMenu = LoadMenu(m_hInstance,MAKEINTRESOURCE(dwMenuId)) ;
+ if(!m_hMenu)
+ return FALSE ;
+
+ return TRUE ;
+}
+
+
+BOOL CNdbTreeView::CreateTreeView(HINSTANCE hInst, HWND hParent, DWORD dwId){
+
+
+ m_hInstance = hInst ;
+ m_hParent = hParent ;
+ m_dwId = dwId ;
+ HIMAGELIST himl ;
+ HBITMAP hbmp ;
+ DWORD dwCount = 0 ;
+
+ m_hControl = CreateWindowEx(WS_EX_OVERLAPPEDWINDOW, WC_TREEVIEW, "Tree View",
+ WS_VISIBLE | WS_CHILD | WS_BORDER | TVS_HASLINES |
+ TVS_HASBUTTONS | TVS_LINESATROOT | TVS_SINGLEEXPAND,
+ 0, 0, 0, 0, m_hParent, (HMENU)m_dwId, m_hInstance, NULL) ;
+
+ if(!m_hControl)
+ return FALSE ;
+
+ if((himl = ImageList_Create(nX, nY, ILC_MASK | ILC_COLOR8, 4, 0)) == NULL)
+ return FALSE ;
+
+ hbmp = LoadBitmap(m_hInstance, MAKEINTRESOURCE(IDI_OPEN));
+ hbmp = (HBITMAP)LoadImage(m_hInstance, MAKEINTRESOURCE(IDB_OPEN), IMAGE_BITMAP, nX, 0, LR_DEFAULTSIZE);
+ m_nOpen = ImageList_AddMasked(himl, hbmp, clr);
+ DeleteObject(hbmp);
+ hbmp = (HBITMAP)LoadImage(m_hInstance, MAKEINTRESOURCE(IDB_CLOSED), IMAGE_BITMAP, 0, 0, LR_DEFAULTSIZE);
+ m_nClosed = ImageList_AddMasked(himl, hbmp, clr);
+ DeleteObject(hbmp);
+ hbmp = (HBITMAP)LoadImage(m_hInstance, MAKEINTRESOURCE(IDB_COMPUTER),IMAGE_BITMAP, 0, 0, LR_DEFAULTSIZE);
+ m_nComputer = ImageList_AddMasked(himl, hbmp, clr);
+ DeleteObject(hbmp);
+ hbmp = (HBITMAP)LoadImage(m_hInstance, MAKEINTRESOURCE(IDB_DATABASE), IMAGE_BITMAP, 0, 0, LR_DEFAULTSIZE);
+ m_nDatabase = ImageList_AddMasked(himl, hbmp, clr);
+ DeleteObject(hbmp);
+
+ if(ImageList_GetImageCount(himl) < 4)
+ return FALSE ;
+
+ TreeView_SetImageList(m_hControl, himl, TVSIL_NORMAL);
+
+ ShowWindow(m_hControl, SW_SHOW) ;
+
+ return TRUE ;
+
+}
+
+
+
+HTREEITEM CNdbTreeView::AddItem(LPSTR szText, NDB_ITEM_TYPE enType, DWORD dwLVId){
+
+ TVITEM tvi ;
+ TVINSERTSTRUCT tvins ;
+ HTREEITEM hti ;
+ HTREEITEM hTemp ;
+ int nImage = m_nClosed ;
+
+ tvi.mask = TVIF_TEXT | TVIF_IMAGE
+ | TVIF_SELECTEDIMAGE | TVIF_PARAM;
+
+ tvi.pszText = szText;
+ tvi.cchTextMax = lstrlen(szText);
+
+ switch(enType){
+
+ case ITEM_COMPR_ROOT:
+ nImage = m_nClosed ;
+ if(!m_hPrevRoot)
+ tvins.hParent = TVI_ROOT;
+ else
+ tvins.hInsertAfter = m_hPrevRoot ;
+ break ;
+
+ case ITEM_DB_ROOT:
+ if(!m_hPrevRoot)
+ tvins.hParent = TVI_ROOT;
+ else
+ tvins.hInsertAfter = m_hPrevRoot ;
+ break ;
+
+ case ITEM_COMPR:
+ nImage = m_nComputer ;
+ if(!m_hPrevComputersChild || !m_hComputersRoot)
+ return 0 ;
+ else
+ tvins.hInsertAfter = m_hPrevComputersChild ;
+ tvins.hParent = m_hComputersRoot ;
+ break ;
+
+ case ITEM_DB:
+ nImage = m_nDatabase ;
+ if(!m_hPrevComputersChild || !m_hComputersRoot)
+ return 0 ;
+ else
+ tvins.hInsertAfter = m_hPrevDatabasesChild ;
+ tvins.hParent = m_hDatabasesRoot ;
+ break ;
+
+ NDB_DEFAULT_UNREACHABLE ;
+
+ }
+
+ tvi.iImage = nImage ;
+ tvi.iSelectedImage = nImage ;
+ tvi.lParam = (LPARAM) dwLVId ;
+ tvins.item = tvi ;
+
+ hTemp = TreeView_InsertItem(m_hControl, &tvins);
+ if(!hTemp)
+ return NULL ;
+
+ switch(enType){
+
+ case ITEM_COMPR_ROOT:
+ m_hComputersRoot = hTemp ;
+ break ;
+
+ case ITEM_DB_ROOT:
+ m_hDatabasesRoot = hTemp ;
+ break ;
+
+ case ITEM_COMPR:
+ m_hPrevComputersChild = hTemp ;
+ break ;
+
+ case ITEM_DB:
+ m_hPrevComputersChild = hTemp ;
+ break ;
+
+ NDB_DEFAULT_UNREACHABLE ;
+
+ }
+
+ if (ITEM_COMPR_ROOT != enType && ITEM_DB_ROOT != enType) {
+
+ hti = TreeView_GetParent(m_hControl, hTemp);
+ tvi.mask = TVIF_IMAGE | TVIF_SELECTEDIMAGE;
+ tvi.hItem = hti;
+ tvi.iImage = m_nClosed;
+ tvi.iSelectedImage = m_nClosed;
+ TreeView_SetItem(m_hControl, &tvi);
+
+ }
+
+ return hTemp ;
+}
+
+
+BOOL CNdbControls::Create(HINSTANCE hInst, HWND hParent){
+
+ m_hInstance = hInst ;
+ m_hParent = hParent ;
+ m_tb.Create(m_hInstance, m_hParent, ID_TOOLBAR, IDB_TOOLBAR) ;
+ m_sb.Create(m_hInstance, m_hParent, ID_STATUSBAR) ;
+ m_tv.Create(m_hInstance, m_hParent, IDM_TREEVIEW, ID_TREEVIEW) ;
+ _assert(AddView("Computers", ITEM_COMPR_ROOT)) ;
+ _assert(AddView("Databases", ITEM_DB_ROOT)) ;
+
+ return TRUE ;
+}
+
+BOOL CNdbControls::AddListView(NDB_ITEM_TYPE enType, DWORD dwId){
+
+ int count ;
+ CNdbListView* plv ;
+ PNDB_LV pst ;
+
+ plv = new CNdbListView ;
+
+ if(!plv)
+ return FALSE ;
+
+ count = m_map_lvc.GetCount() + m_dwFirstId_lv ;
+
+ switch(enType){
+ case ITEM_COMPR_ROOT:
+ pst = &m_stlvcRoot ;
+ break ;
+ case ITEM_DB_ROOT:
+ pst = &m_stlvdRoot ;
+ break ;
+ case ITEM_COMPR:
+ pst = &m_stlvc ;
+ break ;
+ case ITEM_DB:
+ pst = &m_stlvd ;
+ break ;
+ NDB_DEFAULT_UNREACHABLE ;
+ }
+
+ plv->Create(m_hInstance, m_hParent, dwId, enType, pst, LV_HEADER_WIDTH) ;
+
+ m_map_lvc[count] = plv ;
+
+ return TRUE ;
+}
+
+BOOL CNdbControls::AddView(LPSTR szText, NDB_ITEM_TYPE enType){
+
+ DWORD dwId_lv = m_dwNextId_lv ;
+
+ if(AddListView(enType, dwId_lv) && m_tv.AddItem(szText, enType, dwId_lv))
+ m_dwNextId_lv++ ;
+ else
+ return FALSE ;
+
+ return TRUE ;
+};
+
+
+VOID CNdbControls::ToggleListViews(LPNMTREEVIEW pnmtv){
+
+ CNdbListView* plv ;
+ int count = m_map_lvc.GetCount() + m_dwFirstId_lv ;
+
+ for(int c = FIRST_ID_LV ; c < count; ++c){
+ _assert(m_map_lvc.Lookup(c, plv)) ;
+ if(pnmtv->itemNew.lParam == (c))
+ plv->Show(TRUE) ;
+ else
+ plv->Show(FALSE) ;
+ }
+}
+
+
+
+VOID CNdbControls::Resize(){
+
+ RECT rc, rcTB, rcSB ;
+ LONG tw, sw, lx, ly, lw, lh, tvw, tvh ;
+ CNdbListView* plv ;
+ int count ; //, id ;
+
+ GetClientRect(m_hParent, &rc) ;
+ m_tb.GetRect(&rcTB) ;
+ m_sb.GetRect(&rcSB) ;
+
+ sw = rcSB.bottom ;
+ tw = rcTB.bottom ;
+
+ m_tb.Resize(0, 0, rc.right, tw) ;
+
+ tvw = rc.right / 4 ;
+ tvh = rc.bottom - sw - tw - BORDER ;
+
+ m_tv.Resize(0, tw + BORDER, tvw, tvh) ;
+
+ m_sb.Resize(0, tvh, rc.left, sw) ;
+
+ lx = tvw + BORDER - 2 ;
+ ly = tw + BORDER ;
+ lw = rc.right - tvw - BORDER + 1 ;
+ lh = tvh ;
+
+ count = m_map_lvc.GetCount() + FIRST_ID_LV ;
+
+ for(int c = FIRST_ID_LV ; c < count; ++c){
+ _assert(m_map_lvc.Lookup(c, plv)) ;
+ plv->Resize(lx, ly, lw, lh) ;
+ }
+
+ return ;
+
+}
diff --git a/storage/ndb/src/cw/cpcc-win32/C++/Open.ICO b/storage/ndb/src/cw/cpcc-win32/C++/Open.ICO
new file mode 100644
index 00000000000..ab7b05d9df7
--- /dev/null
+++ b/storage/ndb/src/cw/cpcc-win32/C++/Open.ICO
Binary files differ
diff --git a/storage/ndb/src/cw/cpcc-win32/C++/StdAfx.cpp b/storage/ndb/src/cw/cpcc-win32/C++/StdAfx.cpp
new file mode 100644
index 00000000000..8fcdb4ce158
--- /dev/null
+++ b/storage/ndb/src/cw/cpcc-win32/C++/StdAfx.cpp
@@ -0,0 +1,24 @@
+/* Copyright (C) 2003 MySQL AB
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
+// stdafx.cpp : source file that includes just the standard includes
+// CPC_GUI.pch will be the pre-compiled header
+// stdafx.obj will contain the pre-compiled type information
+
+#include "stdafx.h"
+
+// TODO: reference any additional headers you need in STDAFX.H
+// and not in this file
diff --git a/storage/ndb/src/cw/cpcc-win32/C++/StdAfx.h b/storage/ndb/src/cw/cpcc-win32/C++/StdAfx.h
new file mode 100644
index 00000000000..370d04fb466
--- /dev/null
+++ b/storage/ndb/src/cw/cpcc-win32/C++/StdAfx.h
@@ -0,0 +1,69 @@
+/* Copyright (C) 2003 MySQL AB
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
+// stdafx.h : include file for standard system include files,
+// or project specific include files that are used frequently, but
+// are changed infrequently
+//
+
+#if !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
+#define AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
+
+#ifdef _DEBUG
+#define NDB_DEFAULT_UNREACHABLE default: _ASSERT(0); break
+#elif _MSC_VER >= 1200
+#define NDB_DEFAULT_UNREACHABLE default: __assume(0); break
+#else
+#define NDB_DEFAULT_UNREACHABLE default: break
+#endif;
+
+
+#ifdef _DEBUG
+#define _assert _ASSERT
+#else
+#define _assert(expr) expr
+#endif
+
+
+#include <afx.h>
+#include <afxtempl.h>
+
+// C RunTime Header Files
+#include <ndb_global.h>
+#include <memory.h>
+#include <tchar.h>
+#include <commctrl.h>
+#include <shlwapi.h>
+#include <crtdbg.h>
+
+// Local Header Files
+#include "resource.h"
+#include "NdbControls.h"
+#include "CPC_GUI.h"
+
+
+// TODO: reference additional headers your program requires here
+
+//{{AFX_INSERT_LOCATION}}
+// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
+
+#endif // !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
diff --git a/storage/ndb/src/cw/cpcc-win32/C++/TreeView.cpp b/storage/ndb/src/cw/cpcc-win32/C++/TreeView.cpp
new file mode 100644
index 00000000000..db5c62f14bb
--- /dev/null
+++ b/storage/ndb/src/cw/cpcc-win32/C++/TreeView.cpp
@@ -0,0 +1,19 @@
+/* Copyright (C) 2003 MySQL AB
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
+#include "StdAfx.h"
+#include "resource.h"
+#include "CPC_GUI.h"
diff --git a/storage/ndb/src/cw/cpcc-win32/C++/TreeView.h b/storage/ndb/src/cw/cpcc-win32/C++/TreeView.h
new file mode 100644
index 00000000000..595f9bd6cdc
--- /dev/null
+++ b/storage/ndb/src/cw/cpcc-win32/C++/TreeView.h
@@ -0,0 +1,19 @@
+/* Copyright (C) 2003 MySQL AB
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
+
+
+
diff --git a/storage/ndb/src/cw/cpcc-win32/C++/bmp00001.bmp b/storage/ndb/src/cw/cpcc-win32/C++/bmp00001.bmp
new file mode 100644
index 00000000000..e50af403eda
--- /dev/null
+++ b/storage/ndb/src/cw/cpcc-win32/C++/bmp00001.bmp
Binary files differ
diff --git a/storage/ndb/src/cw/cpcc-win32/C++/resource.h b/storage/ndb/src/cw/cpcc-win32/C++/resource.h
new file mode 100644
index 00000000000..0bec552edf6
--- /dev/null
+++ b/storage/ndb/src/cw/cpcc-win32/C++/resource.h
@@ -0,0 +1,90 @@
+/* Copyright (C) 2003 MySQL AB
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
+//{{NO_DEPENDENCIES}}
+// Microsoft Developer Studio generated include file.
+// Used by CPC_GUI.rc
+//
+#define IDC_MYICON 2
+#define IDD_CPC_GUI_DIALOG 102
+#define IDD_ABOUTBOX 103
+#define IDS_APP_TITLE 103
+#define IDM_ABOUT 104
+#define IDS_LV_ROOT_COMPUTERS 104
+#define IDS_TV_ROOT_COMPUTERS 104
+#define IDM_EXIT 105
+#define IDS_LV_ROOT_DATABASES 105
+#define IDS_TV_ROOT_DATABASES 105
+#define IDS_HELLO 106
+#define IDS_LV_COMPUTER_HEADER_1 106
+#define IDI_CPC_GUI 107
+#define IDS_LV_COMPUTER_HEADER_2 107
+#define IDI_SMALL 108
+#define IDS_LV_PROCESS_HEADER_1 108
+#define IDC_CPC_GUI 109
+#define IDM_CPC_GUI 109
+#define IDS_TIP_NEW 110
+#define IDS_TIP_DELETE 111
+#define IDS_TIP_PROPS 112
+#define IDS_LV_PROCESS_HEADER_2 113
+#define IDS_LV_PROCESS_HEADER_3 114
+#define IDS_LV_PROCESS_HEADER_4 115
+#define IDS_LV_COMPUTER_HEADER_3 116
+#define IDR_MAINFRAME 128
+#define ID_TREEVIEW 130
+#define IDM_TREEVIEW 130
+#define IDB_TOOLBAR 137
+#define ID_TOOLBAR 158
+#define IDB_COMPUTER 168
+#define IDB_CLOSED 169
+#define IDB_OPEN 170
+#define IDI_DATABASE 172
+#define IDI_CLOSED 175
+#define IDI_OPEN 176
+#define IDI_COMPUTER 177
+#define IDB_MASK 178
+#define IDB_DATABASE 182
+#define IDM_TV 183
+#define ID_TREEVIEW1 32771
+#define ID_BUTTON32773 32773
+#define IDM_NEW 32774
+#define IDM_DELETE 32775
+#define IDM_PROPS 32776
+#define ID_LIST_C 32777
+#define ID_ACTIONS_INSERT 32778
+#define ID_ACTIONS_DELETE 32779
+#define ID_DELETE 32780
+#define ID_PROPERTIES 32781
+#define ID_ACTIONS_PROPERTIES 32782
+#define ID_BUTTON32783 32783
+#define ID_BUTTON32784 32784
+#define ID_LIST_P 32785
+#define ID_STATUSBAR 32786
+#define ID_LIST_C_ROOT 32787
+#define ID_LIST_D_ROOT 32788
+#define IDM_ADDNEW 32793
+#define IDC_STATIC -1
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 184
+#define _APS_NEXT_COMMAND_VALUE 32796
+#define _APS_NEXT_CONTROL_VALUE 1000
+#define _APS_NEXT_SYMED_VALUE 110
+#endif
+#endif
diff --git a/storage/ndb/src/cw/cpcc-win32/C++/small.ico b/storage/ndb/src/cw/cpcc-win32/C++/small.ico
new file mode 100644
index 00000000000..8f94d9aa828
--- /dev/null
+++ b/storage/ndb/src/cw/cpcc-win32/C++/small.ico
Binary files differ
diff --git a/storage/ndb/src/cw/cpcc-win32/C++/toolbar.bmp b/storage/ndb/src/cw/cpcc-win32/C++/toolbar.bmp
new file mode 100644
index 00000000000..a1059352c66
--- /dev/null
+++ b/storage/ndb/src/cw/cpcc-win32/C++/toolbar.bmp
Binary files differ