home *** CD-ROM | disk | FTP | other *** search
- /*++
-
- Copyright (c) 1995-1999 Microsoft Corporation. All rights reserved.
-
- Module Name:
-
- javaexec.h
-
- Abstract:
-
- Declarations and definitions for the invocation interface used to launch
- applications in the Microsoft VM.
-
- --*/
-
- #ifndef _JAVAEXEC_
- #define _JAVAEXEC_
-
- #ifdef __cplusplus
- #if _MSC_VER >= 1100
- interface __declspec(novtable) IEnumJAVAPROPERTY;
- interface __declspec(novtable) IJavaExecute;
- interface __declspec(novtable) IJavaExecute2;
- #else
- interface IEnumJAVAPROPERTY;
- interface IJavaExecute;
- interface IJavaExecute2;
- #endif
- #else
- typedef interface IEnumJAVAPROPERTY IEnumJAVAPROPERTY;
- typedef interface IJavaExecute IJavaExecute;
- typedef interface IJavaExecute2 IJavaExecute2;
- #endif
-
- typedef IEnumJAVAPROPERTY *LPENUMJAVAPROPERTY;
- typedef IJavaExecute *LPJAVAEXECUTE;
- typedef IJavaExecute2 *LPJAVAEXECUTE2;
-
-
- typedef struct {
- LPOLESTR pszKey;
- LPOLESTR pszValue;
- } JAVAPROPERTY, * LPJAVAPROPERTY;
-
- // IJavaExecute2::SetClassSource Type Flags
-
- #define CLASS_SOURCE_TYPE_MODULERESOURCES 0x00000001
- #define CLASS_SOURCE_TYPE_ISTORAGE 0x00000002
- #define CLASS_SOURCE_TYPE_PATH 0x00000004
-
- // Data structure to be passed to IJavaExecute2::SetClassSource
- // when using the CLASS_SOURCE_TYPE_MODULERESOURCES source type.
-
- typedef struct {
- HMODULE hModule;
- DWORD dwResourceID;
- } JAVACLASSRESOURCEINFO, * LPJAVACLASSRESOURCEINFO;
-
- // Data structure to be passed to IJavaExecute2::SetClassSource
- // when using the CLASS_SOURCE_TYPE_PATH source type.
- typedef struct {
- LPCOLESTR pszPath; // semicolon-delimited list of directories
- BOOL fAppend; // if TRUE, append path, else prepend
- BYTE bReserved; // must be 0
- WORD wReserved; // must be 0
- } JAVACLASSPATHINFO, * LPJAVACLASSPATHINFO;
-
- #undef INTERFACE
- #define INTERFACE IEnumJAVAPROPERTY
-
- DECLARE_INTERFACE_(IEnumJAVAPROPERTY, IUnknown)
- {
- #ifndef NO_BASEINTERFACE_FUNCS
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE;
- STDMETHOD_(ULONG, AddRef)(THIS) PURE;
- STDMETHOD_(ULONG, Release)(THIS) PURE;
- #endif
- /* IEnumJAVAPROPERTY methods */
- STDMETHOD(Next)(THIS_ ULONG celt, LPJAVAPROPERTY rgelt, ULONG
- *pceltFetched) PURE;
- STDMETHOD(Skip)(THIS_ ULONG celt) PURE;
- STDMETHOD(Reset)(THIS) PURE;
- STDMETHOD(Clone)(THIS_ LPENUMJAVAPROPERTY *ppenum) PURE;
- };
-
-
- // This function is called if the Java application calls java/lang/System.exit.
- // This function is not called if the Java application drops out of it's main()
- // method and returns to the virtual machine. This function provides the
- // opportunity for custom shutdown logic. If this function returns, then
- // Win32's ExitProcess is called; application shutdown cannot be cancelled.
- // Multiple threads may call System.exit at once; the virtual machine does not
- // serialize calls to this function.
- //
- // The function is not called in a mode where RNI functions can be directly
- // used, however PrepareThreadForJava (see native.h) can be used to enter a mode
- // where RNI can be used.
- typedef VOID (STDMETHODCALLTYPE *JAVASYSTEMEXITPROC)(int ExitCode);
-
-
- typedef struct tagJAVAEXECUTEINFO {
- DWORD cbSize;
- DWORD dwFlags;
- LPCOLESTR pszClassName;
- LPCOLESTR *rgszArgs;
- ULONG cArgs;
- LPCOLESTR pszClassPath;
- LPCOLESTR pszNamespace;
- } JAVAEXECUTEINFO, * LPJAVAEXECUTEINFO;
-
- #ifdef __cplusplus
- typedef struct tagJAVAEXECUTEINFO2 : public tagJAVAEXECUTEINFO {
- JAVASYSTEMEXITPROC pfnSystemExitProc;
- } JAVAEXECUTEINFO2, * LPJAVAEXECUTEINFO2;
- #else
- typedef struct tagJAVAEXECUTEINFO2 {
- JAVAEXECUTEINFO jei;
- JAVASYSTEMEXITPROC pfnSystemExitProc;
- } JAVAEXECUTEINFO2, * LPJAVAEXECUTEINFO2;
- #endif
-
-
- #define JEIF_VERIFYCLASSES 0x00000002
- #define JEIF_ACTIVEXDEBUG 0x00000004
- #define JEIF_NATIVECODEINMODULE 0x00000008
- #define JEIF_NAMESPACE_SPECIFIED 0x00000010
- #define JEIF_INSTALLSTANDARDSECURITY 0x00000020
- #define JEIF_APPLETVIEWER 0x00000040
- #define JEIF_VERBOSESTACKTRACES 0x00000080
- #define JEIF_PRINTUNHANDLEDSTACKTRACE 0x00000100
- #define JEIF_DEBUGGEE_SHUTDOWN_ON_RELEASE 0x00000200
-
- #define JEIF_ALL_FLAGS ( \
- JEIF_VERIFYCLASSES \
- | JEIF_ACTIVEXDEBUG \
- | JEIF_NATIVECODEINMODULE \
- | JEIF_NAMESPACE_SPECIFIED \
- | JEIF_INSTALLSTANDARDSECURITY \
- | JEIF_APPLETVIEWER \
- | JEIF_VERBOSESTACKTRACES \
- | JEIF_PRINTUNHANDLEDSTACKTRACE \
- | JEIF_DEBUGGEE_SHUTDOWN_ON_RELEASE \
- )
-
- #undef INTERFACE
- #define INTERFACE IJavaExecute
-
- DECLARE_INTERFACE_(IJavaExecute, IUnknown)
- {
- #ifndef NO_BASEINTERFACE_FUNCS
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE;
- STDMETHOD_(ULONG, AddRef)(THIS) PURE;
- STDMETHOD_(ULONG, Release)(THIS) PURE;
- #endif
- /* IJavaExecute methods */
- STDMETHOD(GetDefaultClassPath)(THIS_ LPOLESTR *ppszClassPath) PURE;
- STDMETHOD(Execute)(THIS_ LPJAVAEXECUTEINFO pjei, LPERRORINFO *pperrorinfo) PURE;
- };
-
- #undef INTERFACE
- #define INTERFACE IJavaExecute2
-
- DECLARE_INTERFACE_(IJavaExecute2, IJavaExecute)
- {
- #ifndef NO_BASEINTERFACE_FUNCS
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE;
- STDMETHOD_(ULONG, AddRef)(THIS) PURE;
- STDMETHOD_(ULONG, Release)(THIS) PURE;
- #endif
- /* IJavaExecute methods */
- STDMETHOD(GetDefaultClassPath)(THIS_ LPOLESTR *ppszClassPath) PURE;
- STDMETHOD(Execute)(THIS_ LPJAVAEXECUTEINFO pjei, LPERRORINFO *pperrorinfo) PURE;
- /* IJavaExecute2 methods */
- STDMETHOD(SetSystemProperties)(THIS_ LPENUMJAVAPROPERTY penumProperties) PURE;
- STDMETHOD(SetClassSource)(THIS_ DWORD dwType, LPVOID pData, DWORD dwLen) PURE;
- };
-
- #undef INTERFACE
-
- // {3EFB1800-C2A1-11cf-960C-0080C7C2BA87}
- DEFINE_GUID(CLSID_JavaExecute,
- 0x3efb1800, 0xc2a1, 0x11cf, 0x96, 0xc, 0x0, 0x80, 0xc7, 0xc2, 0xba, 0x87);
- // {3EFB1803-C2A1-11cf-960C-0080C7C2BA87}
- DEFINE_GUID(IID_IJavaExecute,
- 0x3efb1803, 0xc2a1, 0x11cf, 0x96, 0xc, 0x0, 0x80, 0xc7, 0xc2, 0xba, 0x87);
- // {D7658820-01DD-11d0-9746-00AA00342BD8}
- DEFINE_GUID(IID_IJavaExecute2,
- 0xd7658820, 0x1dd, 0x11d0, 0x97, 0x46, 0x0, 0xaa, 0x0, 0x34, 0x2b, 0xd8);
- // {56E7DF80-F527-11cf-B728-FC8703C10000}
- DEFINE_GUID(IID_IEnumJAVAPROPERTY,
- 0x56e7df80, 0xf527, 0x11cf, 0xb7, 0x28, 0xfc, 0x87, 0x3, 0xc1, 0x0, 0x0);
-
- #endif
-