Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'features/org.eclipse.equinox.executable.feature/library/win32/eclipseWinCommon.c')
-rw-r--r--features/org.eclipse.equinox.executable.feature/library/win32/eclipseWinCommon.c116
1 files changed, 116 insertions, 0 deletions
diff --git a/features/org.eclipse.equinox.executable.feature/library/win32/eclipseWinCommon.c b/features/org.eclipse.equinox.executable.feature/library/win32/eclipseWinCommon.c
new file mode 100644
index 000000000..27546bfaa
--- /dev/null
+++ b/features/org.eclipse.equinox.executable.feature/library/win32/eclipseWinCommon.c
@@ -0,0 +1,116 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ * Andrew Niefer
+ *******************************************************************************/
+
+#include "eclipseCommon.h"
+#include "eclipseOS.h"
+
+#include <windows.h>
+#include <stdlib.h>
+#include <commctrl.h>
+
+#define ECLIPSE_ICON 401
+
+_TCHAR dirSeparator = _T('\\');
+_TCHAR pathSeparator = _T(';');
+
+/* Global Main Window*/
+HWND topWindow = 0;
+
+/* Define local variables for the main window. */
+/*static WNDPROC oldProc;*/
+
+static int initialized = 0;
+
+/* Display a Message */
+void displayMessage( _TCHAR* title, _TCHAR* message )
+{
+ if(!initialized)
+ initWindowSystem(0, NULL, 0);
+ MessageBox( topWindow, message, title, MB_OK );
+}
+
+/* Initialize Window System
+ *
+ * Create a pop window to display the bitmap image.
+ *
+ * Return the window handle as the data for the splash command.
+ *
+ */
+int initWindowSystem( int* pArgc, _TCHAR* argv[], int showSplash )
+{
+ HINSTANCE module = GetModuleHandle(NULL);
+ HICON icon = NULL;
+
+ if(initialized)
+ return 0;
+
+ icon = LoadIcon(module, MAKEINTRESOURCE(ECLIPSE_ICON));
+ if (icon == NULL) {
+ HMODULE hm = LoadLibraryEx(getProgramPath(), 0, LOAD_LIBRARY_AS_DATAFILE & 0x2 /*LOAD_LIBRARY_AS_IMAGE_RESOURCE*/);
+ if (hm != NULL)
+ icon = LoadIcon(hm, MAKEINTRESOURCE(ECLIPSE_ICON));
+ }
+
+ /* Create a window that has no decorations. */
+ InitCommonControls();
+ topWindow = CreateWindowEx ( icon != NULL ? 0 : WS_EX_TOOLWINDOW,
+ _T("STATIC"),
+ getOfficialName(),
+ SS_BITMAP | WS_POPUP | WS_CLIPCHILDREN,
+ CW_USEDEFAULT,
+ 0,
+ CW_USEDEFAULT,
+ 0,
+ NULL,
+ NULL,
+ module,
+ NULL);
+
+ if (icon != NULL)
+#ifdef WIN64
+ SetClassLongPtr(topWindow, GCLP_HICON, (LONG_PTR)icon);
+#else
+ SetClassLong(topWindow, GCL_HICON, (LONG)icon);
+#endif
+
+ initialized = 1;
+ return 0;
+}
+
+/* Load the specified shared library
+ */
+void * loadLibrary( _TCHAR * library ){
+ return LoadLibrary(library);
+}
+
+/* Unload the shared library
+ */
+void unloadLibrary( void * handle ){
+ FreeLibrary(handle);
+}
+
+/* Find the given symbol in the shared library
+ */
+void * findSymbol( void * handle, _TCHAR * symbol ){
+ char * str = NULL;
+ void * result;
+
+ str = toNarrow(symbol);
+ result = GetProcAddress(handle, str);
+ free(str);
+ return result;
+}
+
+_TCHAR* resolveSymlinks( _TCHAR* path ) {
+ /* no symlinks on windows */
+ return path;
+}

Back to the top