home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / vc98 / include / javaexec.h < prev    next >
C/C++ Source or Header  |  1998-04-25  |  5KB  |  145 lines

  1. // (C) Copyright 1996-1997, Microsoft Corporation.
  2.  
  3. //----------------------------------------------------------------------------
  4. // Public header for invocation facilities provided by MSJava.dll
  5. //----------------------------------------------------------------------------
  6.  
  7. #ifndef __javaexec_h__
  8. #define __javaexec_h__
  9.  
  10. #ifdef __cplusplus
  11. interface IEnumJAVAPROPERTY;
  12. interface IJavaExecute;
  13. interface IJavaExecute2;
  14. #else
  15. typedef interface IEnumJAVAPROPERTY IEnumJAVAPROPERTY;
  16. typedef interface IJavaExecute IJavaExecute;
  17. typedef interface IJavaExecute2 IJavaExecute2;
  18. #endif
  19.  
  20. typedef IEnumJAVAPROPERTY *LPENUMJAVAPROPERTY;
  21. typedef IJavaExecute *LPJAVAEXECUTE;
  22. typedef IJavaExecute2 *LPJAVAEXECUTE2;
  23.  
  24.  
  25. typedef struct {
  26.     LPOLESTR pszKey;
  27.     LPOLESTR pszValue;
  28. }   JAVAPROPERTY, * LPJAVAPROPERTY;
  29.  
  30. // IJavaExecute2::SetClassSource Type Flags
  31.  
  32. #define CLASS_SOURCE_TYPE_MODULERESOURCES  0x00000001
  33. #define CLASS_SOURCE_TYPE_ISTORAGE         0x00000002
  34.  
  35. // Data structure to be passed to IJavaExecute2::SetClassSource
  36. // when using the CLASS_SOURCE_TYPE_MODULERESOURCES source type.
  37.  
  38. typedef struct {
  39.     HMODULE hModule;
  40.     DWORD   dwResourceID;
  41. } JAVACLASSRESOURCEINFO, * LPJAVACLASSRESOURCEINFO;
  42.  
  43. #undef  INTERFACE
  44. #define INTERFACE IEnumJAVAPROPERTY
  45.  
  46. DECLARE_INTERFACE_(IEnumJAVAPROPERTY, IUnknown)
  47. {
  48. #ifndef NO_BASEINTERFACE_FUNCS
  49.     /* IUnknown methods */
  50.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE;
  51.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  52.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  53. #endif
  54.     /* IEnumJAVAPROPERTY methods */
  55.     STDMETHOD(Next)(THIS_ ULONG celt, LPJAVAPROPERTY rgelt, ULONG
  56.         *pceltFetched) PURE;
  57.     STDMETHOD(Skip)(THIS_ ULONG celt) PURE;
  58.     STDMETHOD(Reset)(THIS) PURE;
  59.     STDMETHOD(Clone)(THIS_ LPENUMJAVAPROPERTY *ppenum) PURE;
  60. };
  61.  
  62.  
  63. typedef struct tagJAVAEXECUTEINFO {
  64.     DWORD cbSize;
  65.     DWORD dwFlags;
  66.     LPCOLESTR pszClassName;
  67.     LPCOLESTR *rgszArgs;
  68.     ULONG cArgs;
  69.     LPCOLESTR pszClassPath;
  70.     LPCOLESTR pszNamespace;
  71. }   JAVAEXECUTEINFO, * LPJAVAEXECUTEINFO;
  72.  
  73. #define JEIF_VERIFYCLASSES              0x00000002
  74. #define JEIF_ACTIVEXDEBUG               0x00000004
  75. #define JEIF_NATIVECODEINMODULE         0x00000008
  76. #define JEIF_NAMESPACE_SPECIFIED        0x00000010
  77. #define JEIF_INSTALLSTANDARDSECURITY    0x00000020
  78.  
  79. #ifdef AD2_STUFF
  80. #define JEIF_APPLETVIEWER               0x00000040
  81. #endif
  82.  
  83. #define JEIF_ALL_FLAGS                  (                               \
  84.                                            JEIF_VERIFYCLASSES           \
  85.                                          | JEIF_ACTIVEXDEBUG            \
  86.                                          | JEIF_NATIVECODEINMODULE      \
  87.                                          | JEIF_NAMESPACE_SPECIFIED     \
  88.                                          | JEIF_INSTALLSTANDARDSECURITY \
  89. #ifdef AD2_STUFF \
  90.                                          | JEIF_APPLETVIEWER            \
  91. #endif \
  92.                                         )
  93.  
  94. #undef  INTERFACE
  95. #define INTERFACE IJavaExecute
  96.  
  97. DECLARE_INTERFACE_(IJavaExecute, IUnknown)
  98. {
  99. #ifndef NO_BASEINTERFACE_FUNCS
  100.     /* IUnknown methods */
  101.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE;
  102.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  103.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  104. #endif
  105.     /* IJavaExecute methods */
  106.     STDMETHOD(GetDefaultClassPath)(THIS_ LPOLESTR *ppszClassPath) PURE;
  107.     STDMETHOD(Execute)(THIS_ LPJAVAEXECUTEINFO pjei, LPERRORINFO *pperrorinfo) PURE;
  108. };
  109.  
  110. #undef  INTERFACE
  111. #define INTERFACE IJavaExecute2
  112.  
  113. DECLARE_INTERFACE_(IJavaExecute2, IJavaExecute)
  114. {
  115. #ifndef NO_BASEINTERFACE_FUNCS
  116.     /* IUnknown methods */
  117.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE;
  118.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  119.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  120. #endif
  121.     /* IJavaExecute methods */
  122.     STDMETHOD(GetDefaultClassPath)(THIS_ LPOLESTR *ppszClassPath) PURE;
  123.     STDMETHOD(Execute)(THIS_ LPJAVAEXECUTEINFO pjei, LPERRORINFO *pperrorinfo) PURE;
  124.     /* IJavaExecute2 methods */
  125.     STDMETHOD(SetSystemProperties)(THIS_ LPENUMJAVAPROPERTY penumProperties) PURE;
  126.     STDMETHOD(SetClassSource)(THIS_ DWORD dwType, LPVOID pData, DWORD dwLen) PURE;
  127. };
  128.  
  129. #undef  INTERFACE
  130.  
  131. // {3EFB1800-C2A1-11cf-960C-0080C7C2BA87}
  132. DEFINE_GUID(CLSID_JavaExecute,
  133. 0x3efb1800, 0xc2a1, 0x11cf, 0x96, 0xc, 0x0, 0x80, 0xc7, 0xc2, 0xba, 0x87);
  134. // {3EFB1803-C2A1-11cf-960C-0080C7C2BA87}
  135. DEFINE_GUID(IID_IJavaExecute,
  136. 0x3efb1803, 0xc2a1, 0x11cf, 0x96, 0xc, 0x0, 0x80, 0xc7, 0xc2, 0xba, 0x87);
  137. // {D7658820-01DD-11d0-9746-00AA00342BD8}
  138. DEFINE_GUID(IID_IJavaExecute2,
  139. 0xd7658820, 0x1dd, 0x11d0, 0x97, 0x46, 0x0, 0xaa, 0x0, 0x34, 0x2b, 0xd8);
  140. // {56E7DF80-F527-11cf-B728-FC8703C10000}
  141. DEFINE_GUID(IID_IEnumJAVAPROPERTY,
  142. 0x56e7df80, 0xf527, 0x11cf, 0xb7, 0x28, 0xfc, 0x87, 0x3, 0xc1, 0x0, 0x0);
  143.  
  144. #endif
  145.