r=edburns

Author: Ron Capelli <capelli@acm.org>

The following files are updated to allow use of IBM Java 1.3.x
JVMs on Linux.  Instead of statically linking libjawt.lib, the
code now dynamically links libjawt.so and then libawt.so only
if needed (similar to previous change for win32).  It should
work on Solaris, but we couldn't test that here.

    mozilla/java/webclient/src_moz/Makefile.in
    mozilla/java/webclient/src_moz/gtk/GtkBrowserControlCanvas.cpp

The following files are changed to support the ant 'clean'
target for src_ie.

    mozilla/java/webclient/build.xml
    mozilla/java/webclient/src_ie/Makefile.in

The following files are changed to disable the CurrentPage(2)
interface for IE, since it will be a while before that can be
made to work.  With these changes, IE embeds smoothly with
Navigation and History interfaces working nicely to some degree.

    mozilla/java/webclient/src_ie/WrapperFactoryImpl.cpp

mozilla/java/webclient/classes_spec/org/mozilla/webclient/test/EMWindow.java

The following file is changed so that it does not depend on
Mozilla, allowing it to be shared cleanly for IE.

    mozilla/java/webclient/src_moz/win32/Win32BrowserControlCanvas.cpp

The following file is changed to correct the list of makefiles
that need to be configured for Webclient.

    mozilla/java/makefiles

Finally, please delete the following files from CVS.

    mozilla/java/webclient/src_ie/build.xml
    mozilla/java/webclient/src_ie/Makefile.win
This commit is contained in:
edburns%acm.org 2003-05-13 20:22:13 +00:00
parent 463e26cdb0
commit 393a1b0ed0
10 changed files with 75 additions and 417 deletions

View File

@ -1,8 +1,6 @@
java/build/Makefile
java/dom/Makefile
java/dom/classes/Makefile
java/dom/jni/Makefile
java/dom/src/Makefile
java/webclient/src_share/Makefile
java/webclient/src_moz/Makefile
java/webclient/src_moz/gtk/Makefile
java/webclient/src_moz/Makefile
java/webclient/src_ie/Makefile
java/webclient/src_share/Makefile

View File

@ -304,6 +304,12 @@ ${myenv.MOZ_JDKHOME}/bin/java ${debug.options} org.mozilla.webclient.test.Embedd
<delete dir="${build.home}/org/mozilla/webclient"/>
<delete >
<fileset dir="${basedir}/src_ie">
<include name="*.ilk"/>
</fileset>
</delete>
</target>
<target name="run.test" depends="main" description="Run unit tests">

View File

@ -59,7 +59,7 @@ import java.io.FileInputStream;
* This is a test application for using the BrowserControl.
*
* @version $Id: EMWindow.java,v 1.42 2003/05/13 15:21:54 edburns%acm.org Exp $
* @version $Id: EMWindow.java,v 1.43 2003/05/13 20:22:07 edburns%acm.org Exp $
*
* @see org.mozilla.webclient.BrowserControlFactory
@ -196,10 +196,25 @@ public EMWindow (String title, String binDir, String url, int winnum, EmbeddedMo
navigation = (Navigation2)
browserControl.queryInterface(BrowserControl.NAVIGATION_NAME);
navigation.setPrompt(this);
}
catch (Exception e) {
System.out.println(e.toString());
}
try {
currentPage = (CurrentPage2)
browserControl.queryInterface(BrowserControl.CURRENT_PAGE_NAME);
}
catch (Exception e) {
System.out.println(e.toString());
}
try {
history = (History)
browserControl.queryInterface(BrowserControl.HISTORY_NAME);
}
catch (Exception e) {
System.out.println(e.toString());
}
try {
prefs = (Preferences)
browserControl.queryInterface(BrowserControl.PREFERENCES_NAME);
prefs.registerPrefChangedCallback(this,
@ -216,9 +231,6 @@ public EMWindow (String title, String binDir, String url, int winnum, EmbeddedMo
System.setProperty("http.proxyHost", proxyHost);
System.setProperty("http.proxyPort", proxyPort);
}
//prefsProps = prefs.getPrefs();
//prefsProps.list(System.out); // This works, try it!
}
catch (Exception e) {
System.out.println(e.toString());
@ -723,12 +735,13 @@ public void eventDispatched(WebclientEvent event)
populateHistoryMenu();
statusLabel.setText("Done.");
urlStatusLabel.setText("");
currentDocument = currentPage.getDOM();
// add the new document to the domViewer
if (null != currentDocument && null != domViewer) {
domViewer.setDocument(currentDocument);
if (null != currentPage) {
currentDocument = currentPage.getDOM();
// add the new document to the domViewer
if (null != currentDocument && null != domViewer) {
domViewer.setDocument(currentDocument);
}
}
break;
case ((int) DocumentLoadEvent.PROGRESS_URL_LOAD_EVENT_MASK):
status = "Status: " + (String) event.getEventData();

View File

@ -25,8 +25,6 @@ VPATH = $(topsrcdir)/java/webclient/src_ie
include $(DEPTH)/config/autoconf.mk
#DIST = $(topsrcdir)/dist
ifneq ($(BAL_INTERFACE),)
LIBRARY_NAME = webclient_bal
@ -34,9 +32,6 @@ else
LIBRARY_NAME = webclient
endif
DLLNAME = webclient.dll
PDBFILE = webclient.pdb
CPPSRCS = \
ie_util.cpp \
@ -56,31 +51,19 @@ CPPSRCS += \
../src_moz/win32/Win32BrowserControlCanvas.cpp \
$(NULL)
_OBJS = $(CPPSRCS:.cpp=.obj)
OBJS = $(strip $(_OBJS))
EXTRA_LIBS = $(DIST)/lib/wc_share.lib
# Do not copy modules to mozilla/dist
NO_DIST_INSTALL = 1
# include $(topsrcdir)/config/rules.mk
include $(topsrcdir)/config/rules.mk
INCLUDES := -I$(MOZ_JDKHOME)/include -I$(MOZ_JDKHOME)/include/win32 \
$(INCLUDES) \
-I../src_share -I.
# Overrides eliminate dependencies on Mozilla
CPP_FLAGS = /nologo /MDd /Zi /W3 /TP /Gy /c $(INCLUDES) /Fd$(PDBFILE)
#MKSHLIB = link /NOLOGO /DLL /OUT:$@ /PDB:$(PDBFILE) /SUBSYSTEM:WINDOWS
LDFLAGS = /DEBUG /DEBUGTYPE:CV
%.obj: %.cpp
cl /Fo$@ $(CPP_FLAGS) $<
all: webclient.dll
$(DLLNAME): $(OBJS) Makefile Makefile.in
rm -f $@
$(MKSHLIB) $(OBJS) $(LDFLAGS) $(OS_LIBS) $(EXTRA_LIBS)
INCLUDES = -I$(MOZ_JDKHOME)/include -I$(MOZ_JDKHOME)/include/win32 \
-I../src_share -I.
DEFINES =
OS_COMPILE_CXXFLAGS =
clobber_all:: clobber

View File

@ -1,87 +0,0 @@
#!nmake
#
# The contents of this file are subject to the Mozilla Public
# License Version 1.1 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
# implied. See the License for the specific language governing
# rights and limitations under the License.
#
# The Original Code is mozilla.org code.
#
# The Initial Developer of the Original Code is Sun Microsystems,
# Inc. Portions created by Sun are
# Copyright (C) 1999 Sun Microsystems, Inc. All
# Rights Reserved.
#
# Contributor(s):
DEPTH=..\..\..
IGNORE_MANIFEST=1
MAKE_OBJ_TYPE = DLL
DLLNAME = webclient
DLL=.\$(OBJDIR)\$(DLLNAME).dll
MODULE=webclient
OBJS = \
.\$(OBJDIR)\ie_util.obj \
.\$(OBJDIR)\ie_util_export.obj \
.\$(OBJDIR)\CMyDialog.obj \
.\$(OBJDIR)\BookmarksImpl.obj \
.\$(OBJDIR)\CurrentPageImpl.obj \
.\$(OBJDIR)\HistoryImpl.obj \
.\$(OBJDIR)\ISupportsPeer.obj \
.\$(OBJDIR)\NativeEventThread.obj \
.\$(OBJDIR)\NavigationImpl.obj \
.\$(OBJDIR)\WindowControlImpl.obj \
.\$(OBJDIR)\WrapperFactoryImpl.obj \
$(NULL)
LCFLAGS = \
-DDEBUG_RAPTOR_CANVAS \
$(NULL)
LLIBS = \
$(DIST)\lib\wc_share.lib \
$(NULL)
WIN_LIBS = \
version.lib
include <$(DEPTH)\config\rules.mak>
INCS = \
-I$(JDKHOME)\include \
-I$(JDKHOME)\include\win32 \
-I..\src_share \
$(INCS) \
$(NULL)
INCS=$(INCS) \
-I$(WTLHOME)\include \
$(NULL)
!CMDSWITCHES -S
buildRunems:
!ifdef BAL_INTERFACE
!else
@echo +++ Creating runem.bat. Use this to run the test browser.
rm -f runem.bat
@echo $(PERL) ..\src_share\runem.pl $(DIST)\bin org.mozilla.webclient.test.EmbeddedMozilla $(DEPTH) %1% >> runem.bat
!endif
install:: $(DLL) buildRunems
$(MAKE_INSTALL) .\$(OBJDIR)\$(DLLNAME).dll $(DIST)\bin
$(MAKE_INSTALL) .\$(OBJDIR)\$(DLLNAME).lib $(DIST)\lib
clobber_all:: clobber
clobber::
rm -f runem.bat
rm -f $(DIST)\bin\$(DLLNAME).dll

View File

@ -32,9 +32,11 @@
const char *gImplementedInterfaces[] = {
"webclient.WindowControl",
"webclient.Navigation",
"webclient.CurrentPage",
// "webclient.CurrentPage",
"webclient.History",
"webclient.EventRegistration",
"webclient.Bookmarks",
// "webclient.Preferences",
0
};

View File

@ -1,281 +0,0 @@
<?xml version="1.0"?>
<!--
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Ed Burns &gt;edburns@acm.org&lt;
-->
<project name="webclient" default="main" basedir=".">
<property name="Name" value="webclient"/>
<property name="name" value="webclient"/>
<property name="version" value="20020916"/>
<!-- ************ Per user local properties ******************************* -->
<property file="${user.home}/build.properties"/> <!-- User local -->
<property file="build.properties"/> <!-- Component local -->
<property file="../build.properties"/> <!-- java-supplement local -->
<property environment="myenv" />
<!-- ************ Compiler Defaults *************************************** -->
<!-- Should Java compilations set the 'debug' compiler option? -->
<property name="compile.debug" value="true"/>
<!-- Should Java compilations set the 'deprecation' compiler option? -->
<property name="compile.deprecation" value="false"/>
<!-- Should Java compilations set the 'optimize' compiler option? -->
<property name="compile.optimize" value="false"/>
<!-- ************ Where are we building into? ***************************** -->
<!-- The base directory for component sources -->
<property name="source.home" value="${basedir}/classes_spec"/>
<!-- Construct compile classpath -->
<path id="compile.classpath">
<pathelement location="${build.home}"/>
</path>
<target name="main"
depends="compile.classes_spec,compile.src_share,compile.src_moz,compile.src_ie"/>
<target name="compile.classes_spec">
<javac destdir="${build.home}"
debug="${compile.debug}"
deprecation="${compile.deprecation}"
optimize="${compile.optimize}">
<classpath refid="compile.classpath"/>
<src path="${source.home}"/>
<patternset>
<include name="org/mozilla/webclient/wrapper_native/gtk/*"
if="build.unix.classes"/>
</patternset>
<patternset>
<include name="org/mozilla/webclient/wrapper_native/win32/*"
if="build.win32.classes"/>
</patternset>
<!-- PENDING(edburns): include additional patternsets for ICE,
HotJava, etc -->
<include name="org/mozilla/webclient/*"/>
<include name="org/mozilla/webclient/wrapper_native/*"/>
<include name="org/mozilla/webclient/test/*"/>
</javac>
</target>
<target name="compile.src_share" depends="compile.javah.headers">
<exec os="SunOS" dir="${basedir}/src_share" failonerror="yes"
executable="gmake"/>
<exec os="Linux" dir="${basedir}/src_share" failonerror="yes"
executable="make"/>
<exec os="Windows 2000" dir="${basedir}/src_share" executable="make"
failonerror="yes"/>
</target>
<target name="compile.javah.headers" depends="compile.javah.canvas.headers">
<javah outputFile="${basedir}/src_share/BookmarksImpl.h"
class="org.mozilla.webclient.wrapper_native.BookmarksImpl">
<classpath refid="compile.classpath"/>
</javah>
<javah outputFile="${basedir}/src_share/PreferencesImpl.h"
class="org.mozilla.webclient.wrapper_native.PreferencesImpl">
<classpath refid="compile.classpath"/>
</javah>
<javah outputFile="${basedir}/src_share/CurrentPageImpl.h"
class="org.mozilla.webclient.wrapper_native.CurrentPageImpl">
<classpath refid="compile.classpath"/>
</javah>
<javah outputFile="${basedir}/src_share/HistoryImpl.h"
class="org.mozilla.webclient.wrapper_native.HistoryImpl">
<classpath refid="compile.classpath"/>
</javah>
<javah outputFile="${basedir}/src_share/WrapperFactoryImpl.h"
class="org.mozilla.webclient.wrapper_native.WrapperFactoryImpl">
<classpath refid="compile.classpath"/>
</javah>
<javah outputFile="${basedir}/src_share/NavigationImpl.h"
class="org.mozilla.webclient.wrapper_native.NavigationImpl">
<classpath refid="compile.classpath"/>
</javah>
<javah outputFile="${basedir}/src_share/RDFEnumeration.h"
class="org.mozilla.webclient.wrapper_native.RDFEnumeration">
<classpath refid="compile.classpath"/>
</javah>
<javah outputFile="${basedir}/src_share/RDFTreeNode.h"
class="org.mozilla.webclient.wrapper_native.RDFTreeNode">
<classpath refid="compile.classpath"/>
</javah>
<javah outputFile="${basedir}/src_share/ISupportsPeer.h"
class="org.mozilla.webclient.wrapper_native.ISupportsPeer">
<classpath refid="compile.classpath"/>
</javah>
<javah outputFile="${basedir}/src_share/WindowControlImpl.h"
class="org.mozilla.webclient.wrapper_native.WindowControlImpl">
<classpath refid="compile.classpath"/>
</javah>
<javah outputFile="${basedir}/src_share/NativeEventThread.h"
class="org.mozilla.webclient.wrapper_native.NativeEventThread">
<classpath refid="compile.classpath"/>
</javah>
</target>
<target name="compile.javah.canvas.headers"
depends="compile.unix.canvas.headers,compile.win32.canvas.headers"/>
<target name="compile.unix.canvas.headers" if="build.unix.classes">
<javah outputFile="${basedir}/src_moz/gtk/GtkBrowserControlCanvas.h"
class="org.mozilla.webclient.wrapper_native.gtk.GtkBrowserControlCanvas">
<classpath refid="compile.classpath"/>
</javah>
</target>
<target name="compile.win32.canvas.headers" if="build.win32.classes">
<javah outputFile="${basedir}/src_moz/win32/Win32BrowserControlCanvas.h"
class="org.mozilla.webclient.wrapper_native.win32.Win32BrowserControlCanvas">
<classpath refid="compile.classpath"/>
</javah>
</target>
<target name="compile.src_moz" depends="compile.src_share">
<exec os="SunOS" dir="${basedir}/src_moz" executable="gmake"
failonerror="yes">
</exec>
<exec os="Linux" dir="${basedir}/src_moz" executable="make"
failonerror="yes">
</exec>
<exec os="Windows 2000" dir="${basedir}/src_moz" executable="make"
failonerror="yes"/>
<exec os="SunOS" dir="${basedir}/src_moz" executable="gmake"
failonerror="yes">
<arg line="buildRunems"/>
</exec>
<exec os="Linux" dir="${basedir}/src_moz" executable="make"
failonerror="yes">
<arg line="buildRunems"/>
</exec>
<exec os="Windows 2000" dir="${basedir}/src_moz" executable="make"
failonerror="yes"/>
</target>
<target name="compile.src_ie" depends="compile.src_share">
<exec os="Windows 2000" dir="${basedir}/src_ie" executable="make"
failonerror="yes"/>
<exec os="Windows 2000" dir="${basedir}/src_ie" executable="make"
failonerror="yes"/>
</target>
<target name="clean">
<ant antfile="build-tests.xml" target="clean"/>
<exec os="SunOS" dir="${basedir}/src_moz" executable="gmake"
failonerror="yes">
<arg line="clobber_all"/>
</exec>
<exec os="Linux" dir="${basedir}/src_moz" executable="make"
failonerror="yes">
<arg line="clobber_all"/>
</exec>
<exec os="Windows 2000" dir="${basedir}/src_moz" executable="make"
failonerror="yes">
<arg line="clobber_all"/>
</exec>
<exec os="Windows 2000" dir="${basedir}/src_ie" executable="make"
failonerror="yes">
<arg line="clobber_all"/>
</exec>
<exec os="SunOS" dir="${basedir}/src_share" executable="gmake"
failonerror="yes">
<arg line="clobber_all"/>
</exec>
<exec os="Linux" dir="${basedir}/src_share" executable="make"
failonerror="yes">
<arg line="clobber_all"/>
</exec>
<exec os="Windows 2000" dir="${basedir}/src_share" executable="make"
failonerror="yes">
<arg line="clobber_all"/>
</exec>
<delete >
<fileset dir="${basedir}/src_share">
<include name="*.h"/>
<exclude name="bal_util.h"/>
<exclude name="jni_util_export.h"/>
<exclude name="jni_util.h"/>
</fileset>
</delete>
<delete >
<fileset dir="${basedir}/src_moz">
<include name="*.ilk"/>
</fileset>
</delete>
<delete file="${basedir}/src_moz/gtk/GtkBrowserControlCanvas.h"/>
<delete file="${basedir}/src_moz/win32/Win32BrowserControlCanvas.h"/>
<delete dir="${build.home}/org/mozilla/webclient"/>
</target>
<target name="run.test" depends="main" description="Run unit tests">
<ant antfile="build-tests.xml" target="run.test"/>
</target>
</project>

View File

@ -155,14 +155,11 @@ ifdef MOZ_ENABLE_GTK
ifndef MOZ_MONOLITHIC_TOOLKIT
CXXFLAGS += $(MOZ_GTK_CFLAGS)
CFLAGS += $(MOZ_GTK_CFLAGS)
# Adding $(MOZ_JDKHOME)/jre/lib/sparc because we need to link against
# the libjawt.so shared library for the JAWT Native Interface
# functionality to work correctly.
EXTRA_DSO_LDOPTS += -lgtkxtbin -lgtksuperwin -lwc_share -lembed_base_s -L$(MOZ_JDKHOME)/jre/lib/sparc -L$(MOZ_JDKHOME)/jre/lib/i386 -ljawt -L/usr/X11R6/lib -lXt
EXTRA_DSO_LDOPTS += -lgtkxtbin -lgtksuperwin -lwc_share -lembed_base_s -L/usr/X11R6/lib -lXt
else
CXXFLAGS += $(TK_CFLAGS)
CFLAGS += $(TK_CFLAGS)
EXTRA_DSO_LDOPTS += -lgtkxtbin -lgtksuperwin -lwc_share -lembed_base_s -L$(MOZ_JDKHOME)/jre/lib/sparc -L$(MOZ_JDKHOME)/jre/lib/i386 -ljawt -L/usr/X11R6/lib -lXt
EXTRA_DSO_LDOPTS += -lgtkxtbin -lgtksuperwin -lwc_share -lembed_base_s -L/usr/X11R6/lib -lXt
endif
endif

View File

@ -42,6 +42,7 @@
#include <dlfcn.h>
typedef jboolean (JNICALL *PJAWT_GETAWT)(JNIEnv*, JAWT*);
#include "../ns_util.h" //for throwing Exceptions to Java
@ -186,19 +187,42 @@ JNIEXPORT void JNICALL Java_org_mozilla_webclient_wrapper_1native_gtk_GtkBrowser
* Signature: ()I
*/
JNIEXPORT jint JNICALL Java_org_mozilla_webclient_wrapper_1native_gtk_GtkBrowserControlCanvas_getHandleToPeer
(JNIEnv * env, jobject canvas) {
(JNIEnv *env, jobject canvas) {
JAWT awt;
JAWT_DrawingSurface* ds;
JAWT_DrawingSurfaceInfo* dsi;
JAWT_X11DrawingSurfaceInfo* dsi_x11;
Drawable handle_x11;
void *_hAWT; // JAWT module handle
jint lock;
PJAWT_GETAWT pJAWT_GetAWT; // JAWT_GetAWT function pointer
//Get the AWT
_hAWT = dlopen("libjawt.so", RTLD_NOW | RTLD_GLOBAL);
if (!_hAWT) {
printf(" +++ No libjawt.so... Trying libawt.so +++ \n");
_hAWT = dlopen("libawt.so",RTLD_NOW | RTLD_GLOBAL); // IBM Java 1.3.x packages JAWT_GetAWT in awt.dll
}
if (!_hAWT) {
printf(" +++ JAWT DLL Not Found +++ \n");
::util_ThrowExceptionToJava(env, "Exception: JAWT DLL Not Found");
return 0;
}
pJAWT_GetAWT = (PJAWT_GETAWT)dlsym(_hAWT, "JAWT_GetAWT");
if (!pJAWT_GetAWT) {
printf(" +++ JAWT_GetAWT Entry Not Found +++ \n");
::util_ThrowExceptionToJava(env, "Exception: JAWT_GetAWT Entry Not Found");
dlclose(_hAWT);
return 0;
}
awt.version = JAWT_VERSION_1_3;
if (JAWT_GetAWT(env, &awt) == JNI_FALSE) {
if (pJAWT_GetAWT(env, &awt) == JNI_FALSE) {
printf(" +++ AWT Not Found +++ \n");
::util_ThrowExceptionToJava(env, "Exception: AWT Not Found");
dlclose(_hAWT);
return 0;
}
@ -207,6 +231,7 @@ JNIEXPORT jint JNICALL Java_org_mozilla_webclient_wrapper_1native_gtk_GtkBrowser
if (ds == NULL) {
printf(" +++ NULL Drawing Surface +++ \n");
::util_ThrowExceptionToJava(env, "Exception: Null Drawing Surface");
dlclose(_hAWT);
return 0;
}
@ -216,6 +241,7 @@ JNIEXPORT jint JNICALL Java_org_mozilla_webclient_wrapper_1native_gtk_GtkBrowser
printf(" +++ Error Locking Surface +++ \n");
::util_ThrowExceptionToJava(env, "Exception: Error Locking Surface");
awt.FreeDrawingSurface(ds);
dlclose(_hAWT);
return 0;
}
@ -226,6 +252,7 @@ JNIEXPORT jint JNICALL Java_org_mozilla_webclient_wrapper_1native_gtk_GtkBrowser
::util_ThrowExceptionToJava(env, "Exception: Error Getting Surface Info");
ds->Unlock(ds);
awt.FreeDrawingSurface(ds);
dlclose(_hAWT);
return 0;
}
@ -239,6 +266,7 @@ JNIEXPORT jint JNICALL Java_org_mozilla_webclient_wrapper_1native_gtk_GtkBrowser
ds->FreeDrawingSurfaceInfo(dsi);
ds->Unlock(ds);
awt.FreeDrawingSurface(ds);
dlclose(_hAWT);
//return the native peer handle
return (jint) handle_x11;

View File

@ -33,7 +33,7 @@
typedef jboolean (JNICALL *PJAWT_GETAWT)(JNIEnv*, JAWT*);
#include "Win32BrowserControlCanvas.h"
#include "ns_util.h" //for throwing Exceptions to Java
#include "jni_util.h" //for throwing Exceptions to Java
/*
@ -66,7 +66,6 @@ JNIEXPORT jint JNICALL Java_org_mozilla_webclient_wrapper_1native_win32_Win32Bro
}
pJAWT_GetAWT = (PJAWT_GETAWT)GetProcAddress(_hAWT, "_JAWT_GetAWT@8");
printf ("Debug (RBC): pJAWT_GetAWT: %08x\n", pJAWT_GetAWT);
if (!pJAWT_GetAWT) {
printf(" +++ JAWT_GetAWT Entry Not Found +++ \n");
::util_ThrowExceptionToJava(env, "Exception: JAWT_GetAWT Entry Not Found");