mariadb/VC++Files/mysqlshutdown/mysqlshutdown.c
unknown dcf6e50d7d New Windows source package automation for 3.23
VC++Files/InstallShield/3.23.XX-com/Component Definitions/.fgl:
  mvdir
VC++Files/InstallShield/3.23.XX-com/Component Definitions/Default.cdf:
  mvdir
VC++Files/InstallShield/3.23.XX-com/Component Definitions/Default.fgl:
  mvdir
VC++Files/InstallShield/3.23.XX-com/File Groups/Clients and Tools.fgl:
  mvdir
VC++Files/InstallShield/3.23.XX-com/File Groups/Default.fdf:
  mvdir
VC++Files/InstallShield/3.23.XX-com/File Groups/Default.fgl:
  mvdir
VC++Files/InstallShield/3.23.XX-com/File Groups/Development.fgl:
  mvdir
VC++Files/InstallShield/3.23.XX-com/File Groups/Documentation.fgl:
  mvdir
VC++Files/InstallShield/3.23.XX-com/File Groups/Grant Tables.fgl:
  mvdir
VC++Files/InstallShield/3.23.XX-com/File Groups/Servers.fgl:
  mvdir
VC++Files/InstallShield/3.23.XX-com/MySQL 3.23.com.ipr:
  mvdir
VC++Files/InstallShield/3.23.XX-com/Registry Entries/Default.rge:
  mvdir
VC++Files/InstallShield/3.23.XX-com/Script Files/Setup.dbg:
  mvdir
VC++Files/InstallShield/3.23.XX-com/Script Files/Setup.ino:
  mvdir
VC++Files/InstallShield/3.23.XX-com/Script Files/Setup.ins:
  mvdir
VC++Files/InstallShield/3.23.XX-com/Script Files/Setup.obs:
  mvdir
VC++Files/InstallShield/3.23.XX-com/Script Files/Setup.rul:
  mvdir
VC++Files/InstallShield/3.23.XX-com/Setup Files/Uncompressed Files/Language Independent/OS Independent/SETUP.BMP:
  mvdir
VC++Files/InstallShield/3.23.XX-com/Shell Objects/Default.shl:
  mvdir
VC++Files/InstallShield/3.23.XX-com/String Tables/Default.shl:
  mvdir
VC++Files/InstallShield/3.23.XX-com/Text Substitutions/Build.tsb:
  mvdir
VC++Files/InstallShield/3.23.XX-com/Text Substitutions/Setup.tsb:
  mvdir
VC++Files/InstallShield/3.23.XX-com/Setup Files/Compressed Files/Language Independent/OS Independent/infolist.txt:
  Add version placeholders for automation
VC++Files/InstallShield/3.23.XX-com/String Tables/0009-English/value.shl:
  Add version placeholders for automation
VC++Files/InstallShield/3.23.XX-gpl/Setup Files/Compressed Files/Language Independent/OS Independent/infolist.txt:
  Add version placeholders for automation
VC++Files/InstallShield/3.23.XX-gpl/String Tables/0009-English/value.shl:
  Add version placeholders for automation
scripts/Makefile.am:
  Build make_win_src_distribution script by default
BitKeeper/etc/logging_ok:
  Logging to logging@openlogging.org accepted
2003-09-12 19:58:22 -04:00

198 lines
6.2 KiB
C

/****************************************************************************
MySqlShutdown - shutdown MySQL on system shutdown (Win95/98)
----------------------------------------------------------------------------
Revision History :
Version Author Date Description
001.00 Irena 21-12-99
*****************************************************************************/
#include <windows.h>
//-----------------------------------------------------------------------
// Local data
//-----------------------------------------------------------------------
static char szAppName[] = "MySqlShutdown";
static HINSTANCE hInstance;
#define MYWM_NOTIFYICON (WM_APP+100)
//-----------------------------------------------------------------------
// Exported functions
//-----------------------------------------------------------------------
LRESULT CALLBACK MainWindowProc (HWND, UINT, WPARAM, LPARAM);
//-----------------------------------------------------------------------
// Local functions
//-----------------------------------------------------------------------
static BOOL InitAppClass (HINSTANCE hInstance);
BOOL TrayMessageAdd(HWND hWnd, DWORD dwMessage)
{
BOOL res;
HICON hIcon =LoadIcon (hInstance, "MySql");
char *szTip="MySql Shutdown";
NOTIFYICONDATA tnd;
tnd.cbSize = sizeof(NOTIFYICONDATA);
tnd.hWnd = hWnd;
tnd.uID = 101;
tnd.uFlags = NIF_MESSAGE|NIF_ICON|NIF_TIP;
tnd.uCallbackMessage = MYWM_NOTIFYICON;
tnd.hIcon = hIcon;
strcpy(tnd.szTip, szTip);
res = Shell_NotifyIcon(dwMessage, &tnd);
if (hIcon) DestroyIcon(hIcon);
return res;
}
//-----------------------------------------------------------------------
// Name: WinMain
// Purpose: Main application entry point
//-----------------------------------------------------------------------
int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow)
{ HWND hWnd;
MSG Msg;
hInstance=hInst;
// Register application class if needed
if (InitAppClass (hInstance) == FALSE) return (0);
hWnd = CreateWindow (szAppName, "MySql",
WS_OVERLAPPEDWINDOW|WS_MINIMIZE,
0, 0,
GetSystemMetrics(SM_CXSCREEN)/4,
GetSystemMetrics(SM_CYSCREEN)/4,
0, 0, hInstance, NULL);
if(!hWnd)
{
return (0);
}
ShowWindow (hWnd, SW_HIDE);
UpdateWindow (hWnd);
while (GetMessage (&Msg, 0, 0, 0))
{ TranslateMessage (&Msg);
DispatchMessage (&Msg);
}
return ((int) (Msg.wParam));
}
//-----------------------------------------------------------------------
// Name: InitAppClass
// Purpose: Register the main application window class
//-----------------------------------------------------------------------
static BOOL InitAppClass (HINSTANCE hInstance)
{
WNDCLASS cls;
if (GetClassInfo (hInstance, szAppName, &cls) == 0)
{
cls.style = CS_HREDRAW | CS_VREDRAW ;;
cls.lpfnWndProc = (WNDPROC) MainWindowProc;
cls.cbClsExtra = 0;
cls.cbWndExtra = sizeof(HWND);
cls.hInstance = hInstance;
cls.hIcon = LoadIcon (hInstance, "MySql");
cls.hCursor = LoadCursor (NULL, IDC_ARROW);
cls.hbrBackground = GetStockObject (WHITE_BRUSH) ;
cls.lpszMenuName = 0; //szAppName;
cls.lpszClassName = szAppName;
return RegisterClass (&cls);
}
return (TRUE);
}
//-----------------------------------------------------------------------
// Name: MainWindowProc
// Purpose: Window procedure for main application window.
//-----------------------------------------------------------------------
LRESULT CALLBACK MainWindowProc (HWND hWnd, UINT Msg,WPARAM wParam, LPARAM lParam)
{
static RECT rect ;
HDC hdc ;
PAINTSTRUCT ps ;
static BOOL bShutdown=FALSE;
switch (Msg)
{
case WM_CREATE:
TrayMessageAdd(hWnd, NIM_ADD);
return TRUE;
/***************
case WM_SYSCOMMAND:
if(wParam==SC_CLOSE)
{ HANDLE hEventShutdown;
bShutdown=TRUE;
InvalidateRect(hWnd,NULL,TRUE);
ShowWindow (hWnd, SW_NORMAL);
UpdateWindow(hWnd);
hEventShutdown=OpenEvent(EVENT_MODIFY_STATE, 0, "MySqlShutdown");
if(hEventShutdown)
{
SetEvent(hEventShutdown);
CloseHandle(hEventShutdown);
Sleep(1000);
MessageBox(hWnd,"Shutdown", "MySql", MB_OK);
}
TrayMessageAdd(hWnd, NIM_DELETE);
}
break;
**************/
case WM_DESTROY:
TrayMessageAdd(hWnd, NIM_DELETE);
PostQuitMessage (0);
return 0;
case WM_SIZE:
GetClientRect (hWnd, &rect) ;
return 0 ;
case WM_PAINT:
hdc = BeginPaint (hWnd, &ps) ;
if(bShutdown)
DrawText (hdc, "MySql shutdown in progress...",
-1, &rect, DT_WORDBREAK) ;
EndPaint (hWnd, &ps) ;
return 0 ;
case WM_QUERYENDSESSION: //Shutdown MySql
{ HANDLE hEventShutdown;
bShutdown=TRUE;
InvalidateRect(hWnd,NULL,TRUE);
ShowWindow (hWnd, SW_NORMAL);
UpdateWindow(hWnd);
hEventShutdown=OpenEvent(EVENT_MODIFY_STATE, 0, "MySqlShutdown");
if(hEventShutdown)
{
SetEvent(hEventShutdown);
CloseHandle(hEventShutdown);
Sleep(1000);
MessageBox(hWnd,"Shutdown", "MySql", MB_OK);
}
}
return 1;
case MYWM_NOTIFYICON:
switch (lParam)
{
case WM_LBUTTONDOWN:
case WM_RBUTTONDOWN:
ShowWindow(hWnd, SW_SHOWNORMAL);
SetForegroundWindow(hWnd); // make us come to the front
break;
default:
break;
}
break;
}
return DefWindowProc (hWnd, Msg, wParam, lParam);
}
// ----------------------- The end ------------------------------------------