]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.excel/native/SimanticsExcel2008/SimanticsExcel2008/SimanticsExcel2008.cpp
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.excel / native / SimanticsExcel2008 / SimanticsExcel2008 / SimanticsExcel2008.cpp
diff --git a/bundles/org.simantics.excel/native/SimanticsExcel2008/SimanticsExcel2008/SimanticsExcel2008.cpp b/bundles/org.simantics.excel/native/SimanticsExcel2008/SimanticsExcel2008/SimanticsExcel2008.cpp
new file mode 100644 (file)
index 0000000..f207fe4
--- /dev/null
@@ -0,0 +1,190 @@
+// SimanticsExcel2008.cpp : Defines the entry point for the application.\r
+//\r
+\r
+#include "stdafx.h"\r
+#include "SimanticsExcel2008.h"\r
+\r
+#define MAX_LOADSTRING 100\r
+\r
+// Global Variables:\r
+HINSTANCE hInst;                                                               // current instance\r
+TCHAR szTitle[MAX_LOADSTRING];                                 // The title bar text\r
+TCHAR szWindowClass[MAX_LOADSTRING];                   // the main window class name\r
+\r
+// Forward declarations of functions included in this code module:\r
+ATOM                           MyRegisterClass(HINSTANCE hInstance);\r
+BOOL                           InitInstance(HINSTANCE, int);\r
+LRESULT CALLBACK       WndProc(HWND, UINT, WPARAM, LPARAM);\r
+INT_PTR CALLBACK       About(HWND, UINT, WPARAM, LPARAM);\r
+\r
+int APIENTRY _tWinMain(HINSTANCE hInstance,\r
+                     HINSTANCE hPrevInstance,\r
+                     LPTSTR    lpCmdLine,\r
+                     int       nCmdShow)\r
+{\r
+       UNREFERENCED_PARAMETER(hPrevInstance);\r
+       UNREFERENCED_PARAMETER(lpCmdLine);\r
+\r
+       // TODO: Place code here.\r
+       MSG msg;\r
+       HACCEL hAccelTable;\r
+\r
+       // Initialize global strings\r
+       LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);\r
+       LoadString(hInstance, IDC_SIMANTICSEXCEL2008, szWindowClass, MAX_LOADSTRING);\r
+       MyRegisterClass(hInstance);\r
+\r
+       // Perform application initialization:\r
+       if (!InitInstance (hInstance, nCmdShow))\r
+       {\r
+               return FALSE;\r
+       }\r
+\r
+       hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_SIMANTICSEXCEL2008));\r
+\r
+       // Main message loop:\r
+       while (GetMessage(&msg, NULL, 0, 0))\r
+       {\r
+               if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))\r
+               {\r
+                       TranslateMessage(&msg);\r
+                       DispatchMessage(&msg);\r
+               }\r
+       }\r
+\r
+       return (int) msg.wParam;\r
+}\r
+\r
+\r
+\r
+//\r
+//  FUNCTION: MyRegisterClass()\r
+//\r
+//  PURPOSE: Registers the window class.\r
+//\r
+//  COMMENTS:\r
+//\r
+//    This function and its usage are only necessary if you want this code\r
+//    to be compatible with Win32 systems prior to the 'RegisterClassEx'\r
+//    function that was added to Windows 95. It is important to call this function\r
+//    so that the application will get 'well formed' small icons associated\r
+//    with it.\r
+//\r
+ATOM MyRegisterClass(HINSTANCE hInstance)\r
+{\r
+       WNDCLASSEX wcex;\r
+\r
+       wcex.cbSize = sizeof(WNDCLASSEX);\r
+\r
+       wcex.style                      = CS_HREDRAW | CS_VREDRAW;\r
+       wcex.lpfnWndProc        = WndProc;\r
+       wcex.cbClsExtra         = 0;\r
+       wcex.cbWndExtra         = 0;\r
+       wcex.hInstance          = hInstance;\r
+       wcex.hIcon                      = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_SIMANTICSEXCEL2008));\r
+       wcex.hCursor            = LoadCursor(NULL, IDC_ARROW);\r
+       wcex.hbrBackground      = (HBRUSH)(COLOR_WINDOW+1);\r
+       wcex.lpszMenuName       = MAKEINTRESOURCE(IDC_SIMANTICSEXCEL2008);\r
+       wcex.lpszClassName      = szWindowClass;\r
+       wcex.hIconSm            = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));\r
+\r
+       return RegisterClassEx(&wcex);\r
+}\r
+\r
+//\r
+//   FUNCTION: InitInstance(HINSTANCE, int)\r
+//\r
+//   PURPOSE: Saves instance handle and creates main window\r
+//\r
+//   COMMENTS:\r
+//\r
+//        In this function, we save the instance handle in a global variable and\r
+//        create and display the main program window.\r
+//\r
+BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)\r
+{\r
+   HWND hWnd;\r
+\r
+   hInst = hInstance; // Store instance handle in our global variable\r
+\r
+   hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,\r
+      CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);\r
+\r
+   if (!hWnd)\r
+   {\r
+      return FALSE;\r
+   }\r
+\r
+   ShowWindow(hWnd, nCmdShow);\r
+   UpdateWindow(hWnd);\r
+\r
+   return TRUE;\r
+}\r
+\r
+//\r
+//  FUNCTION: WndProc(HWND, UINT, WPARAM, LPARAM)\r
+//\r
+//  PURPOSE:  Processes messages for the main window.\r
+//\r
+//  WM_COMMAND - process the application menu\r
+//  WM_PAINT   - Paint the main window\r
+//  WM_DESTROY - post a quit message and return\r
+//\r
+//\r
+LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)\r
+{\r
+       int wmId, wmEvent;\r
+       PAINTSTRUCT ps;\r
+       HDC hdc;\r
+\r
+       switch (message)\r
+       {\r
+       case WM_COMMAND:\r
+               wmId    = LOWORD(wParam);\r
+               wmEvent = HIWORD(wParam);\r
+               // Parse the menu selections:\r
+               switch (wmId)\r
+               {\r
+               case IDM_ABOUT:\r
+                       DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);\r
+                       break;\r
+               case IDM_EXIT:\r
+                       DestroyWindow(hWnd);\r
+                       break;\r
+               default:\r
+                       return DefWindowProc(hWnd, message, wParam, lParam);\r
+               }\r
+               break;\r
+       case WM_PAINT:\r
+               hdc = BeginPaint(hWnd, &ps);\r
+               // TODO: Add any drawing code here...\r
+               EndPaint(hWnd, &ps);\r
+               break;\r
+       case WM_DESTROY:\r
+               PostQuitMessage(0);\r
+               break;\r
+       default:\r
+               return DefWindowProc(hWnd, message, wParam, lParam);\r
+       }\r
+       return 0;\r
+}\r
+\r
+// Message handler for about box.\r
+INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
+{\r
+       UNREFERENCED_PARAMETER(lParam);\r
+       switch (message)\r
+       {\r
+       case WM_INITDIALOG:\r
+               return (INT_PTR)TRUE;\r
+\r
+       case WM_COMMAND:\r
+               if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)\r
+               {\r
+                       EndDialog(hDlg, LOWORD(wParam));\r
+                       return (INT_PTR)TRUE;\r
+               }\r
+               break;\r
+       }\r
+       return (INT_PTR)FALSE;\r
+}\r