1 /*=============================================================================
\r
3 *
\90³
\8bK
\95\
\8c»
\8c\9f\8dõ
\r
5 ===============================================================================
\r
6 / Copyright (C) 1997-2007 Sota. All rights reserved.
\r
8 / Redistribution and use in source and binary forms, with or without
\r
9 / modification, are permitted provided that the following conditions
\r
12 / 1. Redistributions of source code must retain the above copyright
\r
13 / notice, this list of conditions and the following disclaimer.
\r
14 / 2. Redistributions in binary form must reproduce the above copyright
\r
15 / notice, this list of conditions and the following disclaimer in the
\r
16 / documentation and/or other materials provided with the distribution.
\r
18 / THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
\r
19 / IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
\r
20 / OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
\r
21 / IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
\r
22 / INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
\r
23 / BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
\r
24 / USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
\r
25 / ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
\r
26 / (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
\r
27 / THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\r
28 /============================================================================*/
\r
33 #include <winsock.h>
\r
34 #include <windowsx.h>
\r
40 /*=====
\83\8d\81[
\83J
\83\8b\82È
\83\8f\81[
\83N =====*/
\r
42 static JRE2 m_jreData;
\r
43 static HINSTANCE m_hDll = NULL;
\r
44 static LPJRE2OPEN m_lpJre2Open = NULL;
\r
45 static LPJRE2COMPILE m_lpJre2Compile = NULL;
\r
46 static LPJRE2GETMATCHINFO m_lpJre2MatchInfo = NULL;
\r
47 static LPJRE2CLOSE m_lpJre2Close = NULL;
\r
48 static LPJREGETVERSION m_lpJreGetVersion = NULL;
\r
49 static LPGETJREMESSAGE m_lpGetJreMessage = NULL;
\r
53 /*-----
\90³
\8bK
\95\
\8c»
\83\89\83C
\83u
\83\89\83\8a\82ð
\83\8d\81[
\83h
\82·
\82é ----------------------------------------
\r
59 * int
\83X
\83e
\81[
\83^
\83X
\r
61 *----------------------------------------------------------------------------*/
\r
68 if((m_hDll = LoadLibrary("jre32.dll")) != NULL)
\r
70 m_lpJre2Open = (LPJRE2OPEN)GetProcAddress(m_hDll, "Jre2Open");
\r
71 m_lpJre2Compile = (LPJRE2COMPILE)GetProcAddress(m_hDll, "Jre2Compile");
\r
72 m_lpJre2MatchInfo = (LPJRE2GETMATCHINFO)GetProcAddress(m_hDll, "Jre2GetMatchInfo");
\r
73 m_lpJre2Close = (LPJRE2CLOSE)GetProcAddress(m_hDll, "Jre2Close");
\r
74 m_lpJreGetVersion = (LPJREGETVERSION)GetProcAddress(m_hDll, "JreGetVersion");
\r
75 m_lpGetJreMessage = (LPGETJREMESSAGE)GetProcAddress(m_hDll, "GetJreMessage");
\r
77 if((m_lpJre2Open != NULL) &&
\r
78 (m_lpJre2Compile != NULL) &&
\r
79 (m_lpJre2MatchInfo != NULL) &&
\r
80 (m_lpJre2Close != NULL) &&
\r
81 (m_lpJreGetVersion != NULL) &&
\r
82 (m_lpJreGetVersion != NULL))
\r
84 memset(&m_jreData, 0, sizeof(JRE2));
\r
85 m_jreData.dwSize = sizeof(JRE2);
\r
86 m_jreData.wTranslate = 1;
\r
88 if((*m_lpJre2Open)(&m_jreData) == TRUE)
\r
99 /*-----
\90³
\8bK
\95\
\8c»
\83\89\83C
\83u
\83\89\83\8a\82ð
\83\8a\83\8a\81[
\83X
\82·
\82é --------------------------------------
\r
106 *----------------------------------------------------------------------------*/
\r
108 void ReleaseJre(void)
\r
111 FreeLibrary(m_hDll);
\r
118 /*-----
\90³
\8bK
\95\
\8c»
\83\89\83C
\83u
\83\89\83\8a\82ª
\8eg
\82¦
\82é
\82©
\82Ç
\82¤
\82©
\82ð
\95Ô
\82· ------------------------------
\r
124 * int
\90³
\8bK
\95\
\8c»
\83\89\83C
\83u
\83\89\83\8a\82ª
\8eg
\82¦
\82é
\82©
\82Ç
\82¤
\82©
\r
126 *----------------------------------------------------------------------------*/
\r
128 int AskJreUsable(void)
\r
140 /*-----
\90³
\8bK
\95\
\8c»
\83\89\83C
\83u
\83\89\83\8a\82Ì
\83o
\81[
\83W
\83\87\83\93\82ð
\95Ô
\82· a---------------------------------
\r
146 * int
\83o
\81[
\83W
\83\87\83\93\r
147 *----------------------------------------------------------------------------*/
\r
149 int GetJreVersion(void)
\r
155 Ver = (*m_lpJreGetVersion)();
\r
161 /*-----
\90³
\8bK
\95\
\8c»
\8c\9f\8dõ
\8e®
\82ð
\83R
\83\93\83p
\83C
\83\8b\82·
\82é ----------------------------------------
\r
164 * kchar *Str :
\8c\9f\8dõ
\8e®
\r
167 * int
\83X
\83e
\81[
\83^
\83X
\r
169 *----------------------------------------------------------------------------*/
\r
171 int JreCompileStr(char *Str)
\r
177 Sts = (*m_lpJre2Compile)(&m_jreData, Str);
\r
183 /*-----
\95¶
\8e\9a\97ñ
\82ª
\88ê
\92v
\82·
\82é
\82©
\82Ç
\82¤
\82©
\82ð
\95Ô
\82· ----------------------------------------
\r
186 * char *Str :
\95¶
\8e\9a\97ñ
\r
187 * UINT nStart :
\8c\9f\8dõ
\8aJ
\8en
\88Ê
\92u
\r
190 * char *
\8c©
\82Â
\82©
\82Á
\82½
\88Ê
\92u
\r
191 * NULL=
\8c©
\82Â
\82©
\82ç
\82È
\82©
\82Á
\82½
\r
192 *----------------------------------------------------------------------------*/
\r
194 char *JreGetStrMatchInfo(char *Str, UINT nStart)
\r
201 m_jreData.nStart = nStart;
\r
202 if((*m_lpJre2MatchInfo)(&m_jreData, Str) == TRUE)
\r
203 Ret = Str + m_jreData.nPosition;
\r