home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 39 / IOPROG_39.ISO / SOFT / sdkjava40.exe / data1.cab / fg_Include / Include / jevmon.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-05-04  |  120.9 KB  |  3,242 lines

  1. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  2.  
  3.  
  4. /* File created by MIDL compiler version 3.01.75 */
  5. /* at Wed Jul 21 09:23:19 1999
  6.  */
  7. /* Compiler settings for jevmon.idl:
  8.     Oi (OptLev=i0), W4, Zp8, env=Win32, ms_ext, c_ext
  9.     error checks: none
  10. */
  11. //@@MIDL_FILE_HEADING(  )
  12. #include "rpc.h"
  13. #include "rpcndr.h"
  14. #ifndef COM_NO_WINDOWS_H
  15. #include "windows.h"
  16. #include "ole2.h"
  17. #endif /*COM_NO_WINDOWS_H*/
  18.  
  19. #ifndef __jevmon_h__
  20. #define __jevmon_h__
  21.  
  22. #ifdef __cplusplus
  23. extern "C"{
  24. #endif 
  25.  
  26. /* Forward Declarations */ 
  27.  
  28. #ifndef __IJavaEventMonitorIDInfo_FWD_DEFINED__
  29. #define __IJavaEventMonitorIDInfo_FWD_DEFINED__
  30. typedef interface IJavaEventMonitorIDInfo IJavaEventMonitorIDInfo;
  31. #endif     /* __IJavaEventMonitorIDInfo_FWD_DEFINED__ */
  32.  
  33.  
  34. #ifndef __IJavaEventMonitorIDInfo2_FWD_DEFINED__
  35. #define __IJavaEventMonitorIDInfo2_FWD_DEFINED__
  36. typedef interface IJavaEventMonitorIDInfo2 IJavaEventMonitorIDInfo2;
  37. #endif     /* __IJavaEventMonitorIDInfo2_FWD_DEFINED__ */
  38.  
  39.  
  40. #ifndef __IJavaEventMonitorIDInfo3_FWD_DEFINED__
  41. #define __IJavaEventMonitorIDInfo3_FWD_DEFINED__
  42. typedef interface IJavaEventMonitorIDInfo3 IJavaEventMonitorIDInfo3;
  43. #endif     /* __IJavaEventMonitorIDInfo3_FWD_DEFINED__ */
  44.  
  45.  
  46. #ifndef __IJavaEventMonitorIDInfo4_FWD_DEFINED__
  47. #define __IJavaEventMonitorIDInfo4_FWD_DEFINED__
  48. typedef interface IJavaEventMonitorIDInfo4 IJavaEventMonitorIDInfo4;
  49. #endif     /* __IJavaEventMonitorIDInfo4_FWD_DEFINED__ */
  50.  
  51.  
  52. #ifndef __IJavaEventMonitor_FWD_DEFINED__
  53. #define __IJavaEventMonitor_FWD_DEFINED__
  54. typedef interface IJavaEventMonitor IJavaEventMonitor;
  55. #endif     /* __IJavaEventMonitor_FWD_DEFINED__ */
  56.  
  57.  
  58. #ifndef __IJavaEventMonitor2_FWD_DEFINED__
  59. #define __IJavaEventMonitor2_FWD_DEFINED__
  60. typedef interface IJavaEventMonitor2 IJavaEventMonitor2;
  61. #endif     /* __IJavaEventMonitor2_FWD_DEFINED__ */
  62.  
  63.  
  64. #ifndef __IHeapInfoCallback_FWD_DEFINED__
  65. #define __IHeapInfoCallback_FWD_DEFINED__
  66. typedef interface IHeapInfoCallback IHeapInfoCallback;
  67. #endif     /* __IHeapInfoCallback_FWD_DEFINED__ */
  68.  
  69.  
  70. #ifndef __IObjectAllocationCallback_FWD_DEFINED__
  71. #define __IObjectAllocationCallback_FWD_DEFINED__
  72. typedef interface IObjectAllocationCallback IObjectAllocationCallback;
  73. #endif     /* __IObjectAllocationCallback_FWD_DEFINED__ */
  74.  
  75.  
  76. #ifndef __IJavaHeapMonitor_FWD_DEFINED__
  77. #define __IJavaHeapMonitor_FWD_DEFINED__
  78. typedef interface IJavaHeapMonitor IJavaHeapMonitor;
  79. #endif     /* __IJavaHeapMonitor_FWD_DEFINED__ */
  80.  
  81.  
  82. #ifndef __IJavaHeapMonitor2_FWD_DEFINED__
  83. #define __IJavaHeapMonitor2_FWD_DEFINED__
  84. typedef interface IJavaHeapMonitor2 IJavaHeapMonitor2;
  85. #endif     /* __IJavaHeapMonitor2_FWD_DEFINED__ */
  86.  
  87.  
  88. /* header files for imported files */
  89. #include "oleidl.h"
  90.  
  91. void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t);
  92. void __RPC_USER MIDL_user_free( void __RPC_FAR * ); 
  93.  
  94. /****************************************
  95.  * Generated header for interface: __MIDL_itf_jevmon_0000
  96.  * at Wed Jul 21 09:23:19 1999
  97.  * using MIDL 3.01.75
  98.  ****************************************/
  99. /* [local] */ 
  100.  
  101.  
  102. //+-------------------------------------------------------------------------
  103. //
  104. //  Microsoft Virtual Machine for Java(TM) Event Monitor Interfaces
  105. //  Copyright (C) Microsoft Corporation, 1997-1998.
  106. //
  107. //--------------------------------------------------------------------------
  108.  
  109. //
  110. // Declarations for the Java VM event monitor interface.
  111. //
  112.  
  113. #ifndef __JEVMON_H__
  114. #define __JEVMON_H__
  115.  
  116. typedef DWORD UniqueID;
  117.  
  118. typedef UniqueID ThreadID;
  119.  
  120. typedef UniqueID StackID;
  121.  
  122. typedef UniqueID ObjectID;
  123.  
  124. typedef UniqueID ObjectHandleID;
  125.  
  126. typedef UniqueID MethodID;
  127.  
  128. typedef UniqueID FieldID;
  129.  
  130. typedef UniqueID ClassID;
  131.  
  132. typedef 
  133. enum jvm_id_type
  134.     {    JVM_ID_FIRST    = 0,
  135.     JVM_ID_THREAD    = JVM_ID_FIRST + 1,
  136.     JVM_ID_STACK    = JVM_ID_THREAD + 1,
  137.     JVM_ID_OBJECT    = JVM_ID_STACK + 1,
  138.     JVM_ID_OBJECT_HANDLE    = JVM_ID_OBJECT + 1,
  139.     JVM_ID_METHOD    = JVM_ID_OBJECT_HANDLE + 1,
  140.     JVM_ID_FIELD    = JVM_ID_METHOD + 1,
  141.     JVM_ID_CLASS    = JVM_ID_FIELD + 1,
  142.     JVM_ID_LAST    = JVM_ID_CLASS + 1
  143.     }    JVM_ID_TYPE;
  144.  
  145. typedef struct  tagSourceLineInfo
  146.     {
  147.     DWORD code_offset;
  148.     DWORD line_number;
  149.     }    SourceLineInfo;
  150.  
  151. typedef unsigned char BYTE_CODE;
  152.  
  153. typedef 
  154. enum java_state_flags
  155.     {    JVM_STATE_INTERPRETER_ENABLED    = 0x1,
  156.     JVM_STATE_FAST_INTERPRETER_ENABLED    = 0x2,
  157.     JVM_STATE_JIT_COMPILER_ENABLED    = 0x4,
  158.     JVM_STATE_DEBUGGER_ENABLED    = 0x8,
  159.     ALL_JVM_FLAGS    = JVM_STATE_INTERPRETER_ENABLED | JVM_STATE_FAST_INTERPRETER_ENABLED | JVM_STATE_JIT_COMPILER_ENABLED | JVM_STATE_DEBUGGER_ENABLED
  160.     }    JAVA_STATE_FLAGS;
  161.  
  162. typedef 
  163. enum java_event_category
  164.     {    JVM_MONITOR_NONE    = 0,
  165.     JVM_MONITOR_CLASS_LOADS    = 0x1,
  166.     JVM_MONITOR_METHOD_CALLS    = 0x2,
  167.     JVM_MONITOR_JIT_COMPILATION    = 0x4,
  168.     JVM_MONITOR_BYTE_CODE_EXECUTION    = 0x8,
  169.     JVM_MONITOR_SOURCE_LINE_EXECUTION    = 0x10,
  170.     JVM_MONITOR_EXCEPTIONS    = 0x20,
  171.     JVM_MONITOR_MONITOR_OPERATIONS    = 0x40,
  172.     JVM_MONITOR_GARBAGE_COLLECTIONS    = 0x80,
  173.     JVM_MONITOR_THREADS    = 0x100,
  174.     JVM_MONITOR_SAMPLING    = 0x200,
  175.     JVM_MONITOR_EXCEPTION_UNWIND    = 0x400,
  176.     JVM_MONITOR_SPECIFIC_METHOD_CALLS    = 0x800,
  177.     ALL_JVM_MONITOR_EVENTS    = JVM_MONITOR_NONE | JVM_MONITOR_CLASS_LOADS | JVM_MONITOR_METHOD_CALLS | JVM_MONITOR_JIT_COMPILATION | JVM_MONITOR_BYTE_CODE_EXECUTION | JVM_MONITOR_SOURCE_LINE_EXECUTION | JVM_MONITOR_EXCEPTIONS | JVM_MONITOR_MONITOR_OPERATIONS | JVM_MONITOR_GARBAGE_COLLECTIONS | JVM_MONITOR_THREADS | JVM_MONITOR_SAMPLING | JVM_MONITOR_EXCEPTION_UNWIND | JVM_MONITOR_SPECIFIC_METHOD_CALLS
  178.     }    JAVA_EVENT_CATEGORY;
  179.  
  180. typedef 
  181. enum java_monitor_init_options
  182.     {    JVM_INIT_OPT_FP_SAFE_METHOD_CALLS    = 0x1,
  183.     JVM_INIT_OPT_GC_SAFE_METHOD_CALLS    = 0x2,
  184.     JVM_INIT_OPT_RETURN_VALUE_NOT_NEEDED    = 0x4,
  185.     JVM_INIT_OPT_WONT_TOGGLE_METHOD_CALL_EVENTS    = 0x8,
  186.     ALL_JVM_INIT_OPTIONS    = JVM_INIT_OPT_FP_SAFE_METHOD_CALLS | JVM_INIT_OPT_GC_SAFE_METHOD_CALLS | JVM_INIT_OPT_RETURN_VALUE_NOT_NEEDED | JVM_INIT_OPT_WONT_TOGGLE_METHOD_CALL_EVENTS
  187.     }    JAVA_MONITOR_INIT_OPTIONS;
  188.  
  189. typedef 
  190. enum java_execution_model
  191.     {    JVM_EXECUTION_FIRST    = -2,
  192.     JVM_EXECUTION_INVALID    = JVM_EXECUTION_FIRST + 1,
  193.     JVM_EXECUTION_JIT_COMPILED    = JVM_EXECUTION_INVALID + 1,
  194.     JVM_EXECUTION_NATIVE    = JVM_EXECUTION_JIT_COMPILED + 1,
  195.     JVM_EXECUTION_INTERPRETED    = JVM_EXECUTION_NATIVE + 1,
  196.     JVM_EXECUTION_FAST_INTERPRETED    = JVM_EXECUTION_INTERPRETED + 1,
  197.     JVM_EXECUTION_COM    = JVM_EXECUTION_FAST_INTERPRETED + 1,
  198.     JVM_EXECUTION_LAST    = JVM_EXECUTION_COM + 1
  199.     }    JAVA_EXECUTION_MODEL;
  200.  
  201. typedef 
  202. enum java_field_flags
  203.     {    JVM_FIELD_STATIC    = 0x1,
  204.     JVM_FIELD_OBJECTREF    = 0x2,
  205.     ALL_JVM_FIELD_FLAGS    = JVM_FIELD_STATIC | JVM_FIELD_OBJECTREF
  206.     }    JVM_FIELD_FLAGS;
  207.  
  208. typedef 
  209. enum java_object_flags
  210.     {    JVM_OBJ_ALREADY_REPORTED    = 0x1,
  211.     JVM_OBJ_ALREADY_VISITED    = 0x2,
  212.     JVM_OBJ_MORE_REFERENCES    = 0x10000,
  213.     ALL_JVM_OBJECT_FLAGS    = JVM_OBJ_ALREADY_REPORTED | JVM_OBJ_ALREADY_VISITED | JVM_OBJ_MORE_REFERENCES
  214.     }    JVM_OBJECT_FLAGS;
  215.  
  216. typedef 
  217. enum java_class_properties
  218.     {    JVM_CLS_VARIABLE_SIZE    = 0x1,
  219.     JVM_CLS_HAS_DESCRIPTION    = 0x2,
  220.     ALL_JVM_CLS_PROPERTIES    = JVM_CLS_VARIABLE_SIZE | JVM_CLS_HAS_DESCRIPTION
  221.     }    JVM_CLASS_PROPERTIES;
  222.  
  223. typedef 
  224. enum java_method_sample_accuracy
  225.     {    JVM_SAMPLE_NONE    = 0,
  226.     JVM_SAMPLE_POOR    = 1,
  227.     JVM_SAMPLE_EXACT    = 100
  228.     }    JVM_METHOD_SAMPLE_ACCURACY;
  229.  
  230. typedef 
  231. enum java_method_sample_location_type
  232.     {    JVM_LOCATION_UNKNOWN    = 0,
  233.     JVM_LOCATION_JIT    = JVM_LOCATION_UNKNOWN + 1,
  234.     JVM_LOCATION_NATIVE    = JVM_LOCATION_JIT + 1,
  235.     JVM_LOCATION_GC    = JVM_LOCATION_NATIVE + 1,
  236.     JVM_LOCATION_COMPILER    = JVM_LOCATION_GC + 1,
  237.     JVM_LOCATION_LOADER    = JVM_LOCATION_COMPILER + 1,
  238.     JVM_LOCATION_DEBUGGER    = JVM_LOCATION_LOADER + 1,
  239.     JVM_LOCATION_SECURITY    = JVM_LOCATION_DEBUGGER + 1,
  240.     JVM_LOCATION_PROFILER    = JVM_LOCATION_SECURITY + 1,
  241.     JVM_LOCATION_BLOCKING    = JVM_LOCATION_PROFILER + 1,
  242.     JVM_LOCATION_LAST    = JVM_LOCATION_BLOCKING + 1
  243.     }    JVM_METHOD_SAMPLE_LOCATION_TYPE;
  244.  
  245. typedef 
  246. enum java_method_sample_flags
  247.     {    JVM_SAMPLE_STACK_ID    = 0x1,
  248.     JVM_SAMPLE_METHOD_ID    = 0x2,
  249.     JVM_SAMPLE_LOCATION    = 0x4,
  250.     JVM_SAMPLE_GENERATED_CODE    = 0x8,
  251.     JVM_SAMPLE_PC    = 0x10,
  252.     ALL_JVM_SAMPLE_FIELDS    = JVM_SAMPLE_STACK_ID | JVM_SAMPLE_METHOD_ID | JVM_SAMPLE_LOCATION | JVM_SAMPLE_PC,
  253.     ALL_JVM_SAMPLE_FLAGS    = ALL_JVM_SAMPLE_FIELDS | JVM_SAMPLE_GENERATED_CODE
  254.     }    JVM_METHOD_SAMPLE_FLAGS;
  255.  
  256. typedef struct  java_method_sample
  257.     {
  258.     DWORD flags;
  259.     JVM_METHOD_SAMPLE_ACCURACY accuracy;
  260.     StackID stack_id;
  261.     MethodID method_id;
  262.     JVM_METHOD_SAMPLE_LOCATION_TYPE location_type;
  263.     DWORD ip;
  264.     DWORD sp;
  265.     DWORD pc_offset;
  266.     }    JVM_METHOD_SAMPLE;
  267.  
  268. typedef 
  269. enum java_calling_convention
  270.     {    JVM_CALL_FIRST    = 0,
  271.     JVM_CALL_PASCAL    = JVM_CALL_FIRST + 1,
  272.     JVM_CALL_CDECL    = JVM_CALL_PASCAL + 1,
  273.     JVM_CALL_LAST    = JVM_CALL_CDECL + 1
  274.     }    JVM_CALLING_CONVENTION;
  275.  
  276. typedef 
  277. enum java_call_flags
  278.     {    JVM_CALL_THIS    = 0x1,
  279.     ALL_JVM_CALL_FLAGS    = JVM_CALL_THIS
  280.     }    JVM_CALL_FLAGS;
  281.  
  282. typedef 
  283. enum tagJVM_EVENT_TYPE
  284.     {    JVM_EVENT_TYPE_FIRST    = -1,
  285.     JVM_EVENT_TYPE_EXCEPTION_OCCURRED    = 0,
  286.     JVM_EVENT_TYPE_MONITOR_BLOCKED    = 1,
  287.     JVM_EVENT_TYPE_MONITOR_ACQUIRING    = 2,
  288.     JVM_EVENT_TYPE_MONITOR_ACQUIRED    = 16,
  289.     JVM_EVENT_TYPE_MONITOR_RELEASED    = 3,
  290.     JVM_EVENT_TYPE_THREAD_CREATE    = 4,
  291.     JVM_EVENT_TYPE_THREAD_DESTROY    = 5,
  292.     JVM_EVENT_TYPE_CLASS_LOAD_STARTED    = 6,
  293.     JVM_EVENT_TYPE_CLASS_LOAD_FINISHED    = 7,
  294.     JVM_EVENT_TYPE_CLASS_LOAD_FAILED    = 17,
  295.     JVM_EVENT_TYPE_CLASS_UNLOAD    = 8,
  296.     JVM_EVENT_TYPE_JIT_COMPILE_STARTED    = 9,
  297.     JVM_EVENT_TYPE_JIT_COMPILE_FINISHED    = 10,
  298.     JVM_EVENT_TYPE_JIT_COMPILE_FAILED    = 18,
  299.     JVM_EVENT_TYPE_GC_STARTED    = 11,
  300.     JVM_EVENT_TYPE_GC_FINISHED    = 12,
  301.     JVM_EVENT_TYPE_SHUTDOWN    = 13,
  302.     JVM_EVENT_TYPE_RESERVED_14    = 14,
  303.     JVM_EVENT_TYPE_RESERVED_15    = 15,
  304.     JVM_EVENT_TYPE_RESERVED_16    = 16,
  305.     JVM_EVENT_TYPE_RESERVED_17    = 17,
  306.     JVM_EVENT_TYPE_RESERVED_18    = 18,
  307.     JVM_EVENT_TYPE_LAST    = JVM_EVENT_TYPE_RESERVED_18 + 1
  308.     }    JVM_EVENT_TYPE;
  309.  
  310. typedef 
  311. enum tagJVM_EVENT_TYPE2
  312.     {    JVM_EVENT_TYPE2_FIRST    = 1024,
  313.     JVM_EVENT_TYPE2_THREAD_SET_NAME    = JVM_EVENT_TYPE2_FIRST + 1,
  314.     JVM_EVENT_TYPE2_EXCEPTION_OCCURRED    = JVM_EVENT_TYPE2_THREAD_SET_NAME + 1,
  315.     JVM_EVENT_TYPE2_EXCEPTION_THROWN    = JVM_EVENT_TYPE2_EXCEPTION_OCCURRED + 1,
  316.     JVM_EVENT_TYPE2_EXCEPTION_UNWIND    = JVM_EVENT_TYPE2_EXCEPTION_THROWN + 1,
  317.     JVM_EVENT_TYPE2_STACK_TRACE    = JVM_EVENT_TYPE2_EXCEPTION_UNWIND + 1,
  318.     JVM_EVENT_TYPE2_INITIALIZED    = JVM_EVENT_TYPE2_STACK_TRACE + 1,
  319.     JVM_EVENT_TYPE2_MONITORS_INITIALIZED    = JVM_EVENT_TYPE2_INITIALIZED + 1,
  320.     JVM_EVENT_TYPE2_LAST    = JVM_EVENT_TYPE2_MONITORS_INITIALIZED + 1
  321.     }    JVM_EVENT_TYPE2;
  322.  
  323. DEFINE_GUID(IID_IJavaEventMonitorIDInfo, 0xa57d3f40, 0x8b8a, 0x11d0, 0x93, 0x81, 0x0, 0xa0, 0xc9, 0xa, 0x8f, 0xbe);
  324.  
  325.  
  326. extern RPC_IF_HANDLE __MIDL_itf_jevmon_0000_v0_0_c_ifspec;
  327. extern RPC_IF_HANDLE __MIDL_itf_jevmon_0000_v0_0_s_ifspec;
  328.  
  329. #ifndef __IJavaEventMonitorIDInfo_INTERFACE_DEFINED__
  330. #define __IJavaEventMonitorIDInfo_INTERFACE_DEFINED__
  331.  
  332. /****************************************
  333.  * Generated header for interface: IJavaEventMonitorIDInfo
  334.  * at Wed Jul 21 09:23:19 1999
  335.  * using MIDL 3.01.75
  336.  ****************************************/
  337. /* [unique][helpstring][uuid][object] */ 
  338.  
  339.  
  340.  
  341. EXTERN_C const IID IID_IJavaEventMonitorIDInfo;
  342.  
  343. #if defined(__cplusplus) && !defined(CINTERFACE)
  344.     
  345.     interface DECLSPEC_UUID("A57D3F40-8B8A-11d0-9381-00A0C90A8FBE")
  346.     IJavaEventMonitorIDInfo : public IUnknown
  347.     {
  348.     public:
  349.         virtual HRESULT STDMETHODCALLTYPE SetEventMask( 
  350.             /* [in] */ DWORD events) = 0;
  351.         
  352.         virtual HRESULT STDMETHODCALLTYPE GetEventMask( 
  353.             /* [in] */ DWORD __RPC_FAR *pevents) = 0;
  354.         
  355.         virtual HRESULT STDMETHODCALLTYPE MethodInformation( 
  356.             /* [in] */ MethodID method_id,
  357.             /* [out] */ LPSTR __RPC_FAR *ppmethod_name,
  358.             /* [out] */ ClassID __RPC_FAR *pclass_id,
  359.             /* [out] */ JAVA_EXECUTION_MODEL __RPC_FAR *pexec,
  360.             /* [out] */ int __RPC_FAR *psource_line_info_length,
  361.             /* [out] */ SourceLineInfo __RPC_FAR *__RPC_FAR *ppsource_line_info) = 0;
  362.         
  363.         virtual HRESULT STDMETHODCALLTYPE InterpretedMethodInformation( 
  364.             /* [in] */ MethodID method_id,
  365.             /* [out] */ unsigned int __RPC_FAR *pbyte_code_length,
  366.             /* [out] */ BYTE_CODE __RPC_FAR *__RPC_FAR *ppbyte_codes) = 0;
  367.         
  368.         virtual HRESULT STDMETHODCALLTYPE JITCompiledMethodInformation( 
  369.             /* [in] */ MethodID method_id,
  370.             /* [out] */ unsigned int __RPC_FAR *pjit_code_length,
  371.             /* [out] */ unsigned char __RPC_FAR *__RPC_FAR *ppjit_code) = 0;
  372.         
  373.         virtual HRESULT STDMETHODCALLTYPE ClassInformation( 
  374.             /* [in] */ ClassID class_id,
  375.             /* [out] */ LPSTR __RPC_FAR *ppclass_name,
  376.             /* [out] */ LPSTR __RPC_FAR *ppsource_file_name,
  377.             /* [out] */ int __RPC_FAR *pmethods,
  378.             /* [out] */ MethodID __RPC_FAR *__RPC_FAR *ppmethod_ids,
  379.             /* [out] */ hyper __RPC_FAR *pobjects_created) = 0;
  380.         
  381.         virtual HRESULT STDMETHODCALLTYPE ObjectInformation( 
  382.             /* [in] */ ObjectID objectID,
  383.             /* [out] */ ClassID __RPC_FAR *pclass_id) = 0;
  384.         
  385.         virtual HRESULT STDMETHODCALLTYPE GetMonitorUsage( 
  386.             /* [out] */ hyper __RPC_FAR *pmonitors_used) = 0;
  387.         
  388.     };
  389.     
  390. #else     /* C style interface */
  391.  
  392.     typedef struct IJavaEventMonitorIDInfoVtbl
  393.     {
  394.         BEGIN_INTERFACE
  395.         
  396.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
  397.             IJavaEventMonitorIDInfo __RPC_FAR * This,
  398.             /* [in] */ REFIID riid,
  399.             /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  400.         
  401.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
  402.             IJavaEventMonitorIDInfo __RPC_FAR * This);
  403.         
  404.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
  405.             IJavaEventMonitorIDInfo __RPC_FAR * This);
  406.         
  407.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetEventMask )( 
  408.             IJavaEventMonitorIDInfo __RPC_FAR * This,
  409.             /* [in] */ DWORD events);
  410.         
  411.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetEventMask )( 
  412.             IJavaEventMonitorIDInfo __RPC_FAR * This,
  413.             /* [in] */ DWORD __RPC_FAR *pevents);
  414.         
  415.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *MethodInformation )( 
  416.             IJavaEventMonitorIDInfo __RPC_FAR * This,
  417.             /* [in] */ MethodID method_id,
  418.             /* [out] */ LPSTR __RPC_FAR *ppmethod_name,
  419.             /* [out] */ ClassID __RPC_FAR *pclass_id,
  420.             /* [out] */ JAVA_EXECUTION_MODEL __RPC_FAR *pexec,
  421.             /* [out] */ int __RPC_FAR *psource_line_info_length,
  422.             /* [out] */ SourceLineInfo __RPC_FAR *__RPC_FAR *ppsource_line_info);
  423.         
  424.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *InterpretedMethodInformation )( 
  425.             IJavaEventMonitorIDInfo __RPC_FAR * This,
  426.             /* [in] */ MethodID method_id,
  427.             /* [out] */ unsigned int __RPC_FAR *pbyte_code_length,
  428.             /* [out] */ BYTE_CODE __RPC_FAR *__RPC_FAR *ppbyte_codes);
  429.         
  430.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *JITCompiledMethodInformation )( 
  431.             IJavaEventMonitorIDInfo __RPC_FAR * This,
  432.             /* [in] */ MethodID method_id,
  433.             /* [out] */ unsigned int __RPC_FAR *pjit_code_length,
  434.             /* [out] */ unsigned char __RPC_FAR *__RPC_FAR *ppjit_code);
  435.         
  436.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ClassInformation )( 
  437.             IJavaEventMonitorIDInfo __RPC_FAR * This,
  438.             /* [in] */ ClassID class_id,
  439.             /* [out] */ LPSTR __RPC_FAR *ppclass_name,
  440.             /* [out] */ LPSTR __RPC_FAR *ppsource_file_name,
  441.             /* [out] */ int __RPC_FAR *pmethods,
  442.             /* [out] */ MethodID __RPC_FAR *__RPC_FAR *ppmethod_ids,
  443.             /* [out] */ hyper __RPC_FAR *pobjects_created);
  444.         
  445.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ObjectInformation )( 
  446.             IJavaEventMonitorIDInfo __RPC_FAR * This,
  447.             /* [in] */ ObjectID objectID,
  448.             /* [out] */ ClassID __RPC_FAR *pclass_id);
  449.         
  450.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetMonitorUsage )( 
  451.             IJavaEventMonitorIDInfo __RPC_FAR * This,
  452.             /* [out] */ hyper __RPC_FAR *pmonitors_used);
  453.         
  454.         END_INTERFACE
  455.     } IJavaEventMonitorIDInfoVtbl;
  456.  
  457.     interface IJavaEventMonitorIDInfo
  458.     {
  459.         CONST_VTBL struct IJavaEventMonitorIDInfoVtbl __RPC_FAR *lpVtbl;
  460.     };
  461.  
  462.     
  463.  
  464. #ifdef COBJMACROS
  465.  
  466.  
  467. #define IJavaEventMonitorIDInfo_QueryInterface(This,riid,ppvObject)    \
  468.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  469.  
  470. #define IJavaEventMonitorIDInfo_AddRef(This)    \
  471.     (This)->lpVtbl -> AddRef(This)
  472.  
  473. #define IJavaEventMonitorIDInfo_Release(This)    \
  474.     (This)->lpVtbl -> Release(This)
  475.  
  476.  
  477. #define IJavaEventMonitorIDInfo_SetEventMask(This,events)    \
  478.     (This)->lpVtbl -> SetEventMask(This,events)
  479.  
  480. #define IJavaEventMonitorIDInfo_GetEventMask(This,pevents)    \
  481.     (This)->lpVtbl -> GetEventMask(This,pevents)
  482.  
  483. #define IJavaEventMonitorIDInfo_MethodInformation(This,method_id,ppmethod_name,pclass_id,pexec,psource_line_info_length,ppsource_line_info)    \
  484.     (This)->lpVtbl -> MethodInformation(This,method_id,ppmethod_name,pclass_id,pexec,psource_line_info_length,ppsource_line_info)
  485.  
  486. #define IJavaEventMonitorIDInfo_InterpretedMethodInformation(This,method_id,pbyte_code_length,ppbyte_codes)    \
  487.     (This)->lpVtbl -> InterpretedMethodInformation(This,method_id,pbyte_code_length,ppbyte_codes)
  488.  
  489. #define IJavaEventMonitorIDInfo_JITCompiledMethodInformation(This,method_id,pjit_code_length,ppjit_code)    \
  490.     (This)->lpVtbl -> JITCompiledMethodInformation(This,method_id,pjit_code_length,ppjit_code)
  491.  
  492. #define IJavaEventMonitorIDInfo_ClassInformation(This,class_id,ppclass_name,ppsource_file_name,pmethods,ppmethod_ids,pobjects_created)    \
  493.     (This)->lpVtbl -> ClassInformation(This,class_id,ppclass_name,ppsource_file_name,pmethods,ppmethod_ids,pobjects_created)
  494.  
  495. #define IJavaEventMonitorIDInfo_ObjectInformation(This,objectID,pclass_id)    \
  496.     (This)->lpVtbl -> ObjectInformation(This,objectID,pclass_id)
  497.  
  498. #define IJavaEventMonitorIDInfo_GetMonitorUsage(This,pmonitors_used)    \
  499.     (This)->lpVtbl -> GetMonitorUsage(This,pmonitors_used)
  500.  
  501. #endif /* COBJMACROS */
  502.  
  503.  
  504. #endif     /* C style interface */
  505.  
  506.  
  507.  
  508. HRESULT STDMETHODCALLTYPE IJavaEventMonitorIDInfo_SetEventMask_Proxy( 
  509.     IJavaEventMonitorIDInfo __RPC_FAR * This,
  510.     /* [in] */ DWORD events);
  511.  
  512.  
  513. void __RPC_STUB IJavaEventMonitorIDInfo_SetEventMask_Stub(
  514.     IRpcStubBuffer *This,
  515.     IRpcChannelBuffer *_pRpcChannelBuffer,
  516.     PRPC_MESSAGE _pRpcMessage,
  517.     DWORD *_pdwStubPhase);
  518.  
  519.  
  520. HRESULT STDMETHODCALLTYPE IJavaEventMonitorIDInfo_GetEventMask_Proxy( 
  521.     IJavaEventMonitorIDInfo __RPC_FAR * This,
  522.     /* [in] */ DWORD __RPC_FAR *pevents);
  523.  
  524.  
  525. void __RPC_STUB IJavaEventMonitorIDInfo_GetEventMask_Stub(
  526.     IRpcStubBuffer *This,
  527.     IRpcChannelBuffer *_pRpcChannelBuffer,
  528.     PRPC_MESSAGE _pRpcMessage,
  529.     DWORD *_pdwStubPhase);
  530.  
  531.  
  532. HRESULT STDMETHODCALLTYPE IJavaEventMonitorIDInfo_MethodInformation_Proxy( 
  533.     IJavaEventMonitorIDInfo __RPC_FAR * This,
  534.     /* [in] */ MethodID method_id,
  535.     /* [out] */ LPSTR __RPC_FAR *ppmethod_name,
  536.     /* [out] */ ClassID __RPC_FAR *pclass_id,
  537.     /* [out] */ JAVA_EXECUTION_MODEL __RPC_FAR *pexec,
  538.     /* [out] */ int __RPC_FAR *psource_line_info_length,
  539.     /* [out] */ SourceLineInfo __RPC_FAR *__RPC_FAR *ppsource_line_info);
  540.  
  541.  
  542. void __RPC_STUB IJavaEventMonitorIDInfo_MethodInformation_Stub(
  543.     IRpcStubBuffer *This,
  544.     IRpcChannelBuffer *_pRpcChannelBuffer,
  545.     PRPC_MESSAGE _pRpcMessage,
  546.     DWORD *_pdwStubPhase);
  547.  
  548.  
  549. HRESULT STDMETHODCALLTYPE IJavaEventMonitorIDInfo_InterpretedMethodInformation_Proxy( 
  550.     IJavaEventMonitorIDInfo __RPC_FAR * This,
  551.     /* [in] */ MethodID method_id,
  552.     /* [out] */ unsigned int __RPC_FAR *pbyte_code_length,
  553.     /* [out] */ BYTE_CODE __RPC_FAR *__RPC_FAR *ppbyte_codes);
  554.  
  555.  
  556. void __RPC_STUB IJavaEventMonitorIDInfo_InterpretedMethodInformation_Stub(
  557.     IRpcStubBuffer *This,
  558.     IRpcChannelBuffer *_pRpcChannelBuffer,
  559.     PRPC_MESSAGE _pRpcMessage,
  560.     DWORD *_pdwStubPhase);
  561.  
  562.  
  563. HRESULT STDMETHODCALLTYPE IJavaEventMonitorIDInfo_JITCompiledMethodInformation_Proxy( 
  564.     IJavaEventMonitorIDInfo __RPC_FAR * This,
  565.     /* [in] */ MethodID method_id,
  566.     /* [out] */ unsigned int __RPC_FAR *pjit_code_length,
  567.     /* [out] */ unsigned char __RPC_FAR *__RPC_FAR *ppjit_code);
  568.  
  569.  
  570. void __RPC_STUB IJavaEventMonitorIDInfo_JITCompiledMethodInformation_Stub(
  571.     IRpcStubBuffer *This,
  572.     IRpcChannelBuffer *_pRpcChannelBuffer,
  573.     PRPC_MESSAGE _pRpcMessage,
  574.     DWORD *_pdwStubPhase);
  575.  
  576.  
  577. HRESULT STDMETHODCALLTYPE IJavaEventMonitorIDInfo_ClassInformation_Proxy( 
  578.     IJavaEventMonitorIDInfo __RPC_FAR * This,
  579.     /* [in] */ ClassID class_id,
  580.     /* [out] */ LPSTR __RPC_FAR *ppclass_name,
  581.     /* [out] */ LPSTR __RPC_FAR *ppsource_file_name,
  582.     /* [out] */ int __RPC_FAR *pmethods,
  583.     /* [out] */ MethodID __RPC_FAR *__RPC_FAR *ppmethod_ids,
  584.     /* [out] */ hyper __RPC_FAR *pobjects_created);
  585.  
  586.  
  587. void __RPC_STUB IJavaEventMonitorIDInfo_ClassInformation_Stub(
  588.     IRpcStubBuffer *This,
  589.     IRpcChannelBuffer *_pRpcChannelBuffer,
  590.     PRPC_MESSAGE _pRpcMessage,
  591.     DWORD *_pdwStubPhase);
  592.  
  593.  
  594. HRESULT STDMETHODCALLTYPE IJavaEventMonitorIDInfo_ObjectInformation_Proxy( 
  595.     IJavaEventMonitorIDInfo __RPC_FAR * This,
  596.     /* [in] */ ObjectID objectID,
  597.     /* [out] */ ClassID __RPC_FAR *pclass_id);
  598.  
  599.  
  600. void __RPC_STUB IJavaEventMonitorIDInfo_ObjectInformation_Stub(
  601.     IRpcStubBuffer *This,
  602.     IRpcChannelBuffer *_pRpcChannelBuffer,
  603.     PRPC_MESSAGE _pRpcMessage,
  604.     DWORD *_pdwStubPhase);
  605.  
  606.  
  607. HRESULT STDMETHODCALLTYPE IJavaEventMonitorIDInfo_GetMonitorUsage_Proxy( 
  608.     IJavaEventMonitorIDInfo __RPC_FAR * This,
  609.     /* [out] */ hyper __RPC_FAR *pmonitors_used);
  610.  
  611.  
  612. void __RPC_STUB IJavaEventMonitorIDInfo_GetMonitorUsage_Stub(
  613.     IRpcStubBuffer *This,
  614.     IRpcChannelBuffer *_pRpcChannelBuffer,
  615.     PRPC_MESSAGE _pRpcMessage,
  616.     DWORD *_pdwStubPhase);
  617.  
  618.  
  619.  
  620. #endif     /* __IJavaEventMonitorIDInfo_INTERFACE_DEFINED__ */
  621.  
  622.  
  623. /****************************************
  624.  * Generated header for interface: __MIDL_itf_jevmon_0078
  625.  * at Wed Jul 21 09:23:19 1999
  626.  * using MIDL 3.01.75
  627.  ****************************************/
  628. /* [local] */ 
  629.  
  630.  
  631. DEFINE_GUID(IID_IJavaEventMonitorIDInfo2, 0x25ef5e75, 0x5b53, 0x11d1, 0xa3, 0x89, 0x0, 0xc0, 0x4f, 0xb6, 0x8d, 0xe);
  632.  
  633.  
  634. extern RPC_IF_HANDLE __MIDL_itf_jevmon_0078_v0_0_c_ifspec;
  635. extern RPC_IF_HANDLE __MIDL_itf_jevmon_0078_v0_0_s_ifspec;
  636.  
  637. #ifndef __IJavaEventMonitorIDInfo2_INTERFACE_DEFINED__
  638. #define __IJavaEventMonitorIDInfo2_INTERFACE_DEFINED__
  639.  
  640. /****************************************
  641.  * Generated header for interface: IJavaEventMonitorIDInfo2
  642.  * at Wed Jul 21 09:23:19 1999
  643.  * using MIDL 3.01.75
  644.  ****************************************/
  645. /* [unique][helpstring][uuid][object] */ 
  646.  
  647.  
  648.  
  649. EXTERN_C const IID IID_IJavaEventMonitorIDInfo2;
  650.  
  651. #if defined(__cplusplus) && !defined(CINTERFACE)
  652.     
  653.     interface DECLSPEC_UUID("25EF5E75-5B53-11d1-A389-00C04FB68D0E")
  654.     IJavaEventMonitorIDInfo2 : public IJavaEventMonitorIDInfo
  655.     {
  656.     public:
  657.         virtual HRESULT STDMETHODCALLTYPE ThreadInformation( 
  658.             /* [in] */ ThreadID threadID,
  659.             /* [out] */ DWORD __RPC_FAR *pWin32ThreadID) = 0;
  660.         
  661.         virtual HRESULT STDMETHODCALLTYPE StaticClassInformation( 
  662.             /* [in] */ ClassID class_id,
  663.             /* [out] */ DWORD __RPC_FAR *pStaticDataSize,
  664.             /* [out] */ DWORD __RPC_FAR *pInstanceSize) = 0;
  665.         
  666.         virtual HRESULT STDMETHODCALLTYPE GetClassPath( 
  667.             /* [out] */ LPSTR __RPC_FAR *ppszClassPath) = 0;
  668.         
  669.         virtual HRESULT STDMETHODCALLTYPE GetObjectSize( 
  670.             /* [in] */ ObjectID objectID,
  671.             /* [out] */ DWORD __RPC_FAR *pSize) = 0;
  672.         
  673.         virtual HRESULT STDMETHODCALLTYPE GetProfilingCapabilities( 
  674.             /* [out] */ DWORD __RPC_FAR *pStates,
  675.             /* [out] */ DWORD __RPC_FAR *pCategories,
  676.             /* [out] */ JAVA_EXECUTION_MODEL __RPC_FAR *pLastModel,
  677.             /* [out] */ JVM_EVENT_TYPE __RPC_FAR *pLastType,
  678.             /* [out] */ JVM_EVENT_TYPE2 __RPC_FAR *pLastType2) = 0;
  679.         
  680.         virtual HRESULT STDMETHODCALLTYPE GetClassFields( 
  681.             /* [in] */ ClassID class_id,
  682.             /* [out] */ unsigned int __RPC_FAR *pnfields,
  683.             /* [out] */ FieldID __RPC_FAR *__RPC_FAR *pfield_ids) = 0;
  684.         
  685.         virtual HRESULT STDMETHODCALLTYPE FieldInformation( 
  686.             /* [in] */ FieldID id,
  687.             /* [out] */ LPSTR __RPC_FAR *pname,
  688.             /* [out] */ DWORD __RPC_FAR *pflags) = 0;
  689.         
  690.         virtual HRESULT STDMETHODCALLTYPE GetCurrentThread( 
  691.             /* [out] */ ThreadID __RPC_FAR *pcurrent_thread_id) = 0;
  692.         
  693.         virtual HRESULT STDMETHODCALLTYPE GetStackTrace( 
  694.             /* [in] */ ThreadID thread_id) = 0;
  695.         
  696.         virtual HRESULT STDMETHODCALLTYPE SampleThreadLocation( 
  697.             /* [in] */ ThreadID thread_id,
  698.             /* [out][in] */ JVM_METHOD_SAMPLE __RPC_FAR *psample) = 0;
  699.         
  700.         virtual HRESULT STDMETHODCALLTYPE GetSpecialClassProperties( 
  701.             /* [out] */ unsigned int __RPC_FAR *pnspecial_classes,
  702.             /* [out] */ ClassID __RPC_FAR *__RPC_FAR *ppclass_ids,
  703.             /* [out] */ DWORD __RPC_FAR *__RPC_FAR *ppclass_flags) = 0;
  704.         
  705.         virtual HRESULT STDMETHODCALLTYPE DescribeObject( 
  706.             /* [in] */ ObjectID object_id,
  707.             /* [out] */ LPWSTR __RPC_FAR *pdescr) = 0;
  708.         
  709.         virtual HRESULT STDMETHODCALLTYPE GetObjectField( 
  710.             /* [in] */ ObjectID object_id,
  711.             /* [in] */ FieldID field_id,
  712.             /* [out] */ hyper __RPC_FAR *pvalue) = 0;
  713.         
  714.         virtual HRESULT STDMETHODCALLTYPE GetArrayElement( 
  715.             /* [in] */ ObjectID object_id,
  716.             /* [in] */ unsigned int index,
  717.             /* [out] */ hyper __RPC_FAR *pvalue) = 0;
  718.         
  719.         virtual HRESULT STDMETHODCALLTYPE GetHandlesToObjects( 
  720.             /* [in] */ unsigned int nobjects,
  721.             /* [in] */ ObjectID __RPC_FAR *pobject_ids,
  722.             /* [out][in] */ ObjectHandleID __RPC_FAR *pobject_handles) = 0;
  723.         
  724.         virtual HRESULT STDMETHODCALLTYPE FreeHandlesToObjects( 
  725.             /* [in] */ unsigned int nhandles,
  726.             /* [in] */ ObjectHandleID __RPC_FAR *pobject_handles) = 0;
  727.         
  728.         virtual HRESULT STDMETHODCALLTYPE GetObjectsFromHandles( 
  729.             /* [in] */ unsigned int nhandles,
  730.             /* [out][in] */ ObjectHandleID __RPC_FAR *pobject_handles,
  731.             /* [out][in] */ ObjectID __RPC_FAR *pobject_ids) = 0;
  732.         
  733.     };
  734.     
  735. #else     /* C style interface */
  736.  
  737.     typedef struct IJavaEventMonitorIDInfo2Vtbl
  738.     {
  739.         BEGIN_INTERFACE
  740.         
  741.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
  742.             IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  743.             /* [in] */ REFIID riid,
  744.             /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  745.         
  746.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
  747.             IJavaEventMonitorIDInfo2 __RPC_FAR * This);
  748.         
  749.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
  750.             IJavaEventMonitorIDInfo2 __RPC_FAR * This);
  751.         
  752.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetEventMask )( 
  753.             IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  754.             /* [in] */ DWORD events);
  755.         
  756.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetEventMask )( 
  757.             IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  758.             /* [in] */ DWORD __RPC_FAR *pevents);
  759.         
  760.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *MethodInformation )( 
  761.             IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  762.             /* [in] */ MethodID method_id,
  763.             /* [out] */ LPSTR __RPC_FAR *ppmethod_name,
  764.             /* [out] */ ClassID __RPC_FAR *pclass_id,
  765.             /* [out] */ JAVA_EXECUTION_MODEL __RPC_FAR *pexec,
  766.             /* [out] */ int __RPC_FAR *psource_line_info_length,
  767.             /* [out] */ SourceLineInfo __RPC_FAR *__RPC_FAR *ppsource_line_info);
  768.         
  769.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *InterpretedMethodInformation )( 
  770.             IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  771.             /* [in] */ MethodID method_id,
  772.             /* [out] */ unsigned int __RPC_FAR *pbyte_code_length,
  773.             /* [out] */ BYTE_CODE __RPC_FAR *__RPC_FAR *ppbyte_codes);
  774.         
  775.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *JITCompiledMethodInformation )( 
  776.             IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  777.             /* [in] */ MethodID method_id,
  778.             /* [out] */ unsigned int __RPC_FAR *pjit_code_length,
  779.             /* [out] */ unsigned char __RPC_FAR *__RPC_FAR *ppjit_code);
  780.         
  781.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ClassInformation )( 
  782.             IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  783.             /* [in] */ ClassID class_id,
  784.             /* [out] */ LPSTR __RPC_FAR *ppclass_name,
  785.             /* [out] */ LPSTR __RPC_FAR *ppsource_file_name,
  786.             /* [out] */ int __RPC_FAR *pmethods,
  787.             /* [out] */ MethodID __RPC_FAR *__RPC_FAR *ppmethod_ids,
  788.             /* [out] */ hyper __RPC_FAR *pobjects_created);
  789.         
  790.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ObjectInformation )( 
  791.             IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  792.             /* [in] */ ObjectID objectID,
  793.             /* [out] */ ClassID __RPC_FAR *pclass_id);
  794.         
  795.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetMonitorUsage )( 
  796.             IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  797.             /* [out] */ hyper __RPC_FAR *pmonitors_used);
  798.         
  799.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ThreadInformation )( 
  800.             IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  801.             /* [in] */ ThreadID threadID,
  802.             /* [out] */ DWORD __RPC_FAR *pWin32ThreadID);
  803.         
  804.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *StaticClassInformation )( 
  805.             IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  806.             /* [in] */ ClassID class_id,
  807.             /* [out] */ DWORD __RPC_FAR *pStaticDataSize,
  808.             /* [out] */ DWORD __RPC_FAR *pInstanceSize);
  809.         
  810.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetClassPath )( 
  811.             IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  812.             /* [out] */ LPSTR __RPC_FAR *ppszClassPath);
  813.         
  814.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetObjectSize )( 
  815.             IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  816.             /* [in] */ ObjectID objectID,
  817.             /* [out] */ DWORD __RPC_FAR *pSize);
  818.         
  819.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetProfilingCapabilities )( 
  820.             IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  821.             /* [out] */ DWORD __RPC_FAR *pStates,
  822.             /* [out] */ DWORD __RPC_FAR *pCategories,
  823.             /* [out] */ JAVA_EXECUTION_MODEL __RPC_FAR *pLastModel,
  824.             /* [out] */ JVM_EVENT_TYPE __RPC_FAR *pLastType,
  825.             /* [out] */ JVM_EVENT_TYPE2 __RPC_FAR *pLastType2);
  826.         
  827.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetClassFields )( 
  828.             IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  829.             /* [in] */ ClassID class_id,
  830.             /* [out] */ unsigned int __RPC_FAR *pnfields,
  831.             /* [out] */ FieldID __RPC_FAR *__RPC_FAR *pfield_ids);
  832.         
  833.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *FieldInformation )( 
  834.             IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  835.             /* [in] */ FieldID id,
  836.             /* [out] */ LPSTR __RPC_FAR *pname,
  837.             /* [out] */ DWORD __RPC_FAR *pflags);
  838.         
  839.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetCurrentThread )( 
  840.             IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  841.             /* [out] */ ThreadID __RPC_FAR *pcurrent_thread_id);
  842.         
  843.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetStackTrace )( 
  844.             IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  845.             /* [in] */ ThreadID thread_id);
  846.         
  847.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SampleThreadLocation )( 
  848.             IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  849.             /* [in] */ ThreadID thread_id,
  850.             /* [out][in] */ JVM_METHOD_SAMPLE __RPC_FAR *psample);
  851.         
  852.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetSpecialClassProperties )( 
  853.             IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  854.             /* [out] */ unsigned int __RPC_FAR *pnspecial_classes,
  855.             /* [out] */ ClassID __RPC_FAR *__RPC_FAR *ppclass_ids,
  856.             /* [out] */ DWORD __RPC_FAR *__RPC_FAR *ppclass_flags);
  857.         
  858.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *DescribeObject )( 
  859.             IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  860.             /* [in] */ ObjectID object_id,
  861.             /* [out] */ LPWSTR __RPC_FAR *pdescr);
  862.         
  863.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetObjectField )( 
  864.             IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  865.             /* [in] */ ObjectID object_id,
  866.             /* [in] */ FieldID field_id,
  867.             /* [out] */ hyper __RPC_FAR *pvalue);
  868.         
  869.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetArrayElement )( 
  870.             IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  871.             /* [in] */ ObjectID object_id,
  872.             /* [in] */ unsigned int index,
  873.             /* [out] */ hyper __RPC_FAR *pvalue);
  874.         
  875.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetHandlesToObjects )( 
  876.             IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  877.             /* [in] */ unsigned int nobjects,
  878.             /* [in] */ ObjectID __RPC_FAR *pobject_ids,
  879.             /* [out][in] */ ObjectHandleID __RPC_FAR *pobject_handles);
  880.         
  881.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *FreeHandlesToObjects )( 
  882.             IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  883.             /* [in] */ unsigned int nhandles,
  884.             /* [in] */ ObjectHandleID __RPC_FAR *pobject_handles);
  885.         
  886.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetObjectsFromHandles )( 
  887.             IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  888.             /* [in] */ unsigned int nhandles,
  889.             /* [out][in] */ ObjectHandleID __RPC_FAR *pobject_handles,
  890.             /* [out][in] */ ObjectID __RPC_FAR *pobject_ids);
  891.         
  892.         END_INTERFACE
  893.     } IJavaEventMonitorIDInfo2Vtbl;
  894.  
  895.     interface IJavaEventMonitorIDInfo2
  896.     {
  897.         CONST_VTBL struct IJavaEventMonitorIDInfo2Vtbl __RPC_FAR *lpVtbl;
  898.     };
  899.  
  900.     
  901.  
  902. #ifdef COBJMACROS
  903.  
  904.  
  905. #define IJavaEventMonitorIDInfo2_QueryInterface(This,riid,ppvObject)    \
  906.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  907.  
  908. #define IJavaEventMonitorIDInfo2_AddRef(This)    \
  909.     (This)->lpVtbl -> AddRef(This)
  910.  
  911. #define IJavaEventMonitorIDInfo2_Release(This)    \
  912.     (This)->lpVtbl -> Release(This)
  913.  
  914.  
  915. #define IJavaEventMonitorIDInfo2_SetEventMask(This,events)    \
  916.     (This)->lpVtbl -> SetEventMask(This,events)
  917.  
  918. #define IJavaEventMonitorIDInfo2_GetEventMask(This,pevents)    \
  919.     (This)->lpVtbl -> GetEventMask(This,pevents)
  920.  
  921. #define IJavaEventMonitorIDInfo2_MethodInformation(This,method_id,ppmethod_name,pclass_id,pexec,psource_line_info_length,ppsource_line_info)    \
  922.     (This)->lpVtbl -> MethodInformation(This,method_id,ppmethod_name,pclass_id,pexec,psource_line_info_length,ppsource_line_info)
  923.  
  924. #define IJavaEventMonitorIDInfo2_InterpretedMethodInformation(This,method_id,pbyte_code_length,ppbyte_codes)    \
  925.     (This)->lpVtbl -> InterpretedMethodInformation(This,method_id,pbyte_code_length,ppbyte_codes)
  926.  
  927. #define IJavaEventMonitorIDInfo2_JITCompiledMethodInformation(This,method_id,pjit_code_length,ppjit_code)    \
  928.     (This)->lpVtbl -> JITCompiledMethodInformation(This,method_id,pjit_code_length,ppjit_code)
  929.  
  930. #define IJavaEventMonitorIDInfo2_ClassInformation(This,class_id,ppclass_name,ppsource_file_name,pmethods,ppmethod_ids,pobjects_created)    \
  931.     (This)->lpVtbl -> ClassInformation(This,class_id,ppclass_name,ppsource_file_name,pmethods,ppmethod_ids,pobjects_created)
  932.  
  933. #define IJavaEventMonitorIDInfo2_ObjectInformation(This,objectID,pclass_id)    \
  934.     (This)->lpVtbl -> ObjectInformation(This,objectID,pclass_id)
  935.  
  936. #define IJavaEventMonitorIDInfo2_GetMonitorUsage(This,pmonitors_used)    \
  937.     (This)->lpVtbl -> GetMonitorUsage(This,pmonitors_used)
  938.  
  939.  
  940. #define IJavaEventMonitorIDInfo2_ThreadInformation(This,threadID,pWin32ThreadID)    \
  941.     (This)->lpVtbl -> ThreadInformation(This,threadID,pWin32ThreadID)
  942.  
  943. #define IJavaEventMonitorIDInfo2_StaticClassInformation(This,class_id,pStaticDataSize,pInstanceSize)    \
  944.     (This)->lpVtbl -> StaticClassInformation(This,class_id,pStaticDataSize,pInstanceSize)
  945.  
  946. #define IJavaEventMonitorIDInfo2_GetClassPath(This,ppszClassPath)    \
  947.     (This)->lpVtbl -> GetClassPath(This,ppszClassPath)
  948.  
  949. #define IJavaEventMonitorIDInfo2_GetObjectSize(This,objectID,pSize)    \
  950.     (This)->lpVtbl -> GetObjectSize(This,objectID,pSize)
  951.  
  952. #define IJavaEventMonitorIDInfo2_GetProfilingCapabilities(This,pStates,pCategories,pLastModel,pLastType,pLastType2)    \
  953.     (This)->lpVtbl -> GetProfilingCapabilities(This,pStates,pCategories,pLastModel,pLastType,pLastType2)
  954.  
  955. #define IJavaEventMonitorIDInfo2_GetClassFields(This,class_id,pnfields,pfield_ids)    \
  956.     (This)->lpVtbl -> GetClassFields(This,class_id,pnfields,pfield_ids)
  957.  
  958. #define IJavaEventMonitorIDInfo2_FieldInformation(This,id,pname,pflags)    \
  959.     (This)->lpVtbl -> FieldInformation(This,id,pname,pflags)
  960.  
  961. #define IJavaEventMonitorIDInfo2_GetCurrentThread(This,pcurrent_thread_id)    \
  962.     (This)->lpVtbl -> GetCurrentThread(This,pcurrent_thread_id)
  963.  
  964. #define IJavaEventMonitorIDInfo2_GetStackTrace(This,thread_id)    \
  965.     (This)->lpVtbl -> GetStackTrace(This,thread_id)
  966.  
  967. #define IJavaEventMonitorIDInfo2_SampleThreadLocation(This,thread_id,psample)    \
  968.     (This)->lpVtbl -> SampleThreadLocation(This,thread_id,psample)
  969.  
  970. #define IJavaEventMonitorIDInfo2_GetSpecialClassProperties(This,pnspecial_classes,ppclass_ids,ppclass_flags)    \
  971.     (This)->lpVtbl -> GetSpecialClassProperties(This,pnspecial_classes,ppclass_ids,ppclass_flags)
  972.  
  973. #define IJavaEventMonitorIDInfo2_DescribeObject(This,object_id,pdescr)    \
  974.     (This)->lpVtbl -> DescribeObject(This,object_id,pdescr)
  975.  
  976. #define IJavaEventMonitorIDInfo2_GetObjectField(This,object_id,field_id,pvalue)    \
  977.     (This)->lpVtbl -> GetObjectField(This,object_id,field_id,pvalue)
  978.  
  979. #define IJavaEventMonitorIDInfo2_GetArrayElement(This,object_id,index,pvalue)    \
  980.     (This)->lpVtbl -> GetArrayElement(This,object_id,index,pvalue)
  981.  
  982. #define IJavaEventMonitorIDInfo2_GetHandlesToObjects(This,nobjects,pobject_ids,pobject_handles)    \
  983.     (This)->lpVtbl -> GetHandlesToObjects(This,nobjects,pobject_ids,pobject_handles)
  984.  
  985. #define IJavaEventMonitorIDInfo2_FreeHandlesToObjects(This,nhandles,pobject_handles)    \
  986.     (This)->lpVtbl -> FreeHandlesToObjects(This,nhandles,pobject_handles)
  987.  
  988. #define IJavaEventMonitorIDInfo2_GetObjectsFromHandles(This,nhandles,pobject_handles,pobject_ids)    \
  989.     (This)->lpVtbl -> GetObjectsFromHandles(This,nhandles,pobject_handles,pobject_ids)
  990.  
  991. #endif /* COBJMACROS */
  992.  
  993.  
  994. #endif     /* C style interface */
  995.  
  996.  
  997.  
  998. HRESULT STDMETHODCALLTYPE IJavaEventMonitorIDInfo2_ThreadInformation_Proxy( 
  999.     IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  1000.     /* [in] */ ThreadID threadID,
  1001.     /* [out] */ DWORD __RPC_FAR *pWin32ThreadID);
  1002.  
  1003.  
  1004. void __RPC_STUB IJavaEventMonitorIDInfo2_ThreadInformation_Stub(
  1005.     IRpcStubBuffer *This,
  1006.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1007.     PRPC_MESSAGE _pRpcMessage,
  1008.     DWORD *_pdwStubPhase);
  1009.  
  1010.  
  1011. HRESULT STDMETHODCALLTYPE IJavaEventMonitorIDInfo2_StaticClassInformation_Proxy( 
  1012.     IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  1013.     /* [in] */ ClassID class_id,
  1014.     /* [out] */ DWORD __RPC_FAR *pStaticDataSize,
  1015.     /* [out] */ DWORD __RPC_FAR *pInstanceSize);
  1016.  
  1017.  
  1018. void __RPC_STUB IJavaEventMonitorIDInfo2_StaticClassInformation_Stub(
  1019.     IRpcStubBuffer *This,
  1020.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1021.     PRPC_MESSAGE _pRpcMessage,
  1022.     DWORD *_pdwStubPhase);
  1023.  
  1024.  
  1025. HRESULT STDMETHODCALLTYPE IJavaEventMonitorIDInfo2_GetClassPath_Proxy( 
  1026.     IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  1027.     /* [out] */ LPSTR __RPC_FAR *ppszClassPath);
  1028.  
  1029.  
  1030. void __RPC_STUB IJavaEventMonitorIDInfo2_GetClassPath_Stub(
  1031.     IRpcStubBuffer *This,
  1032.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1033.     PRPC_MESSAGE _pRpcMessage,
  1034.     DWORD *_pdwStubPhase);
  1035.  
  1036.  
  1037. HRESULT STDMETHODCALLTYPE IJavaEventMonitorIDInfo2_GetObjectSize_Proxy( 
  1038.     IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  1039.     /* [in] */ ObjectID objectID,
  1040.     /* [out] */ DWORD __RPC_FAR *pSize);
  1041.  
  1042.  
  1043. void __RPC_STUB IJavaEventMonitorIDInfo2_GetObjectSize_Stub(
  1044.     IRpcStubBuffer *This,
  1045.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1046.     PRPC_MESSAGE _pRpcMessage,
  1047.     DWORD *_pdwStubPhase);
  1048.  
  1049.  
  1050. HRESULT STDMETHODCALLTYPE IJavaEventMonitorIDInfo2_GetProfilingCapabilities_Proxy( 
  1051.     IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  1052.     /* [out] */ DWORD __RPC_FAR *pStates,
  1053.     /* [out] */ DWORD __RPC_FAR *pCategories,
  1054.     /* [out] */ JAVA_EXECUTION_MODEL __RPC_FAR *pLastModel,
  1055.     /* [out] */ JVM_EVENT_TYPE __RPC_FAR *pLastType,
  1056.     /* [out] */ JVM_EVENT_TYPE2 __RPC_FAR *pLastType2);
  1057.  
  1058.  
  1059. void __RPC_STUB IJavaEventMonitorIDInfo2_GetProfilingCapabilities_Stub(
  1060.     IRpcStubBuffer *This,
  1061.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1062.     PRPC_MESSAGE _pRpcMessage,
  1063.     DWORD *_pdwStubPhase);
  1064.  
  1065.  
  1066. HRESULT STDMETHODCALLTYPE IJavaEventMonitorIDInfo2_GetClassFields_Proxy( 
  1067.     IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  1068.     /* [in] */ ClassID class_id,
  1069.     /* [out] */ unsigned int __RPC_FAR *pnfields,
  1070.     /* [out] */ FieldID __RPC_FAR *__RPC_FAR *pfield_ids);
  1071.  
  1072.  
  1073. void __RPC_STUB IJavaEventMonitorIDInfo2_GetClassFields_Stub(
  1074.     IRpcStubBuffer *This,
  1075.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1076.     PRPC_MESSAGE _pRpcMessage,
  1077.     DWORD *_pdwStubPhase);
  1078.  
  1079.  
  1080. HRESULT STDMETHODCALLTYPE IJavaEventMonitorIDInfo2_FieldInformation_Proxy( 
  1081.     IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  1082.     /* [in] */ FieldID id,
  1083.     /* [out] */ LPSTR __RPC_FAR *pname,
  1084.     /* [out] */ DWORD __RPC_FAR *pflags);
  1085.  
  1086.  
  1087. void __RPC_STUB IJavaEventMonitorIDInfo2_FieldInformation_Stub(
  1088.     IRpcStubBuffer *This,
  1089.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1090.     PRPC_MESSAGE _pRpcMessage,
  1091.     DWORD *_pdwStubPhase);
  1092.  
  1093.  
  1094. HRESULT STDMETHODCALLTYPE IJavaEventMonitorIDInfo2_GetCurrentThread_Proxy( 
  1095.     IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  1096.     /* [out] */ ThreadID __RPC_FAR *pcurrent_thread_id);
  1097.  
  1098.  
  1099. void __RPC_STUB IJavaEventMonitorIDInfo2_GetCurrentThread_Stub(
  1100.     IRpcStubBuffer *This,
  1101.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1102.     PRPC_MESSAGE _pRpcMessage,
  1103.     DWORD *_pdwStubPhase);
  1104.  
  1105.  
  1106. HRESULT STDMETHODCALLTYPE IJavaEventMonitorIDInfo2_GetStackTrace_Proxy( 
  1107.     IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  1108.     /* [in] */ ThreadID thread_id);
  1109.  
  1110.  
  1111. void __RPC_STUB IJavaEventMonitorIDInfo2_GetStackTrace_Stub(
  1112.     IRpcStubBuffer *This,
  1113.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1114.     PRPC_MESSAGE _pRpcMessage,
  1115.     DWORD *_pdwStubPhase);
  1116.  
  1117.  
  1118. HRESULT STDMETHODCALLTYPE IJavaEventMonitorIDInfo2_SampleThreadLocation_Proxy( 
  1119.     IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  1120.     /* [in] */ ThreadID thread_id,
  1121.     /* [out][in] */ JVM_METHOD_SAMPLE __RPC_FAR *psample);
  1122.  
  1123.  
  1124. void __RPC_STUB IJavaEventMonitorIDInfo2_SampleThreadLocation_Stub(
  1125.     IRpcStubBuffer *This,
  1126.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1127.     PRPC_MESSAGE _pRpcMessage,
  1128.     DWORD *_pdwStubPhase);
  1129.  
  1130.  
  1131. HRESULT STDMETHODCALLTYPE IJavaEventMonitorIDInfo2_GetSpecialClassProperties_Proxy( 
  1132.     IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  1133.     /* [out] */ unsigned int __RPC_FAR *pnspecial_classes,
  1134.     /* [out] */ ClassID __RPC_FAR *__RPC_FAR *ppclass_ids,
  1135.     /* [out] */ DWORD __RPC_FAR *__RPC_FAR *ppclass_flags);
  1136.  
  1137.  
  1138. void __RPC_STUB IJavaEventMonitorIDInfo2_GetSpecialClassProperties_Stub(
  1139.     IRpcStubBuffer *This,
  1140.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1141.     PRPC_MESSAGE _pRpcMessage,
  1142.     DWORD *_pdwStubPhase);
  1143.  
  1144.  
  1145. HRESULT STDMETHODCALLTYPE IJavaEventMonitorIDInfo2_DescribeObject_Proxy( 
  1146.     IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  1147.     /* [in] */ ObjectID object_id,
  1148.     /* [out] */ LPWSTR __RPC_FAR *pdescr);
  1149.  
  1150.  
  1151. void __RPC_STUB IJavaEventMonitorIDInfo2_DescribeObject_Stub(
  1152.     IRpcStubBuffer *This,
  1153.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1154.     PRPC_MESSAGE _pRpcMessage,
  1155.     DWORD *_pdwStubPhase);
  1156.  
  1157.  
  1158. HRESULT STDMETHODCALLTYPE IJavaEventMonitorIDInfo2_GetObjectField_Proxy( 
  1159.     IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  1160.     /* [in] */ ObjectID object_id,
  1161.     /* [in] */ FieldID field_id,
  1162.     /* [out] */ hyper __RPC_FAR *pvalue);
  1163.  
  1164.  
  1165. void __RPC_STUB IJavaEventMonitorIDInfo2_GetObjectField_Stub(
  1166.     IRpcStubBuffer *This,
  1167.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1168.     PRPC_MESSAGE _pRpcMessage,
  1169.     DWORD *_pdwStubPhase);
  1170.  
  1171.  
  1172. HRESULT STDMETHODCALLTYPE IJavaEventMonitorIDInfo2_GetArrayElement_Proxy( 
  1173.     IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  1174.     /* [in] */ ObjectID object_id,
  1175.     /* [in] */ unsigned int index,
  1176.     /* [out] */ hyper __RPC_FAR *pvalue);
  1177.  
  1178.  
  1179. void __RPC_STUB IJavaEventMonitorIDInfo2_GetArrayElement_Stub(
  1180.     IRpcStubBuffer *This,
  1181.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1182.     PRPC_MESSAGE _pRpcMessage,
  1183.     DWORD *_pdwStubPhase);
  1184.  
  1185.  
  1186. HRESULT STDMETHODCALLTYPE IJavaEventMonitorIDInfo2_GetHandlesToObjects_Proxy( 
  1187.     IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  1188.     /* [in] */ unsigned int nobjects,
  1189.     /* [in] */ ObjectID __RPC_FAR *pobject_ids,
  1190.     /* [out][in] */ ObjectHandleID __RPC_FAR *pobject_handles);
  1191.  
  1192.  
  1193. void __RPC_STUB IJavaEventMonitorIDInfo2_GetHandlesToObjects_Stub(
  1194.     IRpcStubBuffer *This,
  1195.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1196.     PRPC_MESSAGE _pRpcMessage,
  1197.     DWORD *_pdwStubPhase);
  1198.  
  1199.  
  1200. HRESULT STDMETHODCALLTYPE IJavaEventMonitorIDInfo2_FreeHandlesToObjects_Proxy( 
  1201.     IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  1202.     /* [in] */ unsigned int nhandles,
  1203.     /* [in] */ ObjectHandleID __RPC_FAR *pobject_handles);
  1204.  
  1205.  
  1206. void __RPC_STUB IJavaEventMonitorIDInfo2_FreeHandlesToObjects_Stub(
  1207.     IRpcStubBuffer *This,
  1208.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1209.     PRPC_MESSAGE _pRpcMessage,
  1210.     DWORD *_pdwStubPhase);
  1211.  
  1212.  
  1213. HRESULT STDMETHODCALLTYPE IJavaEventMonitorIDInfo2_GetObjectsFromHandles_Proxy( 
  1214.     IJavaEventMonitorIDInfo2 __RPC_FAR * This,
  1215.     /* [in] */ unsigned int nhandles,
  1216.     /* [out][in] */ ObjectHandleID __RPC_FAR *pobject_handles,
  1217.     /* [out][in] */ ObjectID __RPC_FAR *pobject_ids);
  1218.  
  1219.  
  1220. void __RPC_STUB IJavaEventMonitorIDInfo2_GetObjectsFromHandles_Stub(
  1221.     IRpcStubBuffer *This,
  1222.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1223.     PRPC_MESSAGE _pRpcMessage,
  1224.     DWORD *_pdwStubPhase);
  1225.  
  1226.  
  1227.  
  1228. #endif     /* __IJavaEventMonitorIDInfo2_INTERFACE_DEFINED__ */
  1229.  
  1230.  
  1231. /****************************************
  1232.  * Generated header for interface: __MIDL_itf_jevmon_0079
  1233.  * at Wed Jul 21 09:23:19 1999
  1234.  * using MIDL 3.01.75
  1235.  ****************************************/
  1236. /* [local] */ 
  1237.  
  1238.  
  1239. typedef 
  1240. enum method_call_events_disposition
  1241.     {    JVM_PROHIBIT_METHOD_CALL_EVENTS    = 1,
  1242.     JVM_PERMIT_METHOD_CALL_EVENTS    = 2,
  1243.     JVM_QUERY_DISPOSITION    = 3
  1244.     }    JVM_METHOD_CALL_EVENTS_DISPOSITION;
  1245.  
  1246. DEFINE_GUID(IID_IJavaEventMonitorIDInfo3, 0x5be7cd50, 0xe3eb, 0x11d1, 0xb0, 0x42, 0x0, 0x60, 0x8, 0x3, 0x9b, 0xf0);
  1247.  
  1248.  
  1249. extern RPC_IF_HANDLE __MIDL_itf_jevmon_0079_v0_0_c_ifspec;
  1250. extern RPC_IF_HANDLE __MIDL_itf_jevmon_0079_v0_0_s_ifspec;
  1251.  
  1252. #ifndef __IJavaEventMonitorIDInfo3_INTERFACE_DEFINED__
  1253. #define __IJavaEventMonitorIDInfo3_INTERFACE_DEFINED__
  1254.  
  1255. /****************************************
  1256.  * Generated header for interface: IJavaEventMonitorIDInfo3
  1257.  * at Wed Jul 21 09:23:19 1999
  1258.  * using MIDL 3.01.75
  1259.  ****************************************/
  1260. /* [unique][helpstring][uuid][object] */ 
  1261.  
  1262.  
  1263.  
  1264. EXTERN_C const IID IID_IJavaEventMonitorIDInfo3;
  1265.  
  1266. #if defined(__cplusplus) && !defined(CINTERFACE)
  1267.     
  1268.     interface DECLSPEC_UUID("5BE7CD50-E3EB-11d1-B042-006008039BF0")
  1269.     IJavaEventMonitorIDInfo3 : public IJavaEventMonitorIDInfo2
  1270.     {
  1271.     public:
  1272.         virtual HRESULT STDMETHODCALLTYPE EnableMethodCallEvents( 
  1273.             /* [in] */ UniqueID id,
  1274.             /* [in] */ JVM_ID_TYPE idtype,
  1275.             /* [in] */ JVM_METHOD_CALL_EVENTS_DISPOSITION Disposition) = 0;
  1276.         
  1277.         virtual HRESULT STDMETHODCALLTYPE GetMethodEntryParameters( 
  1278.             /* [out] */ DWORD __RPC_FAR *__RPC_FAR *pslots,
  1279.             /* [out] */ DWORD __RPC_FAR *__RPC_FAR *preserved,
  1280.             /* [out] */ JVM_CALLING_CONVENTION __RPC_FAR *pcalling_convention,
  1281.             /* [out] */ DWORD __RPC_FAR *pflags) = 0;
  1282.         
  1283.         virtual HRESULT STDMETHODCALLTYPE GetMethodExitReturnValue( 
  1284.             /* [out] */ MethodID __RPC_FAR *preturning_method_id,
  1285.             /* [out] */ hyper __RPC_FAR *__RPC_FAR *pret_value) = 0;
  1286.         
  1287.         virtual HRESULT STDMETHODCALLTYPE ClassInformation2( 
  1288.             /* [in] */ ClassID class_id,
  1289.             /* [out] */ ClassID __RPC_FAR *psuperclass,
  1290.             /* [out] */ ClassID __RPC_FAR *__RPC_FAR *pinterfaces,
  1291.             /* [out] */ unsigned int __RPC_FAR *pinterfaces_length,
  1292.             /* [out] */ MethodID __RPC_FAR *__RPC_FAR *pimplemented_methods,
  1293.             /* [out] */ unsigned int __RPC_FAR *pimplemented_methods_length) = 0;
  1294.         
  1295.     };
  1296.     
  1297. #else     /* C style interface */
  1298.  
  1299.     typedef struct IJavaEventMonitorIDInfo3Vtbl
  1300.     {
  1301.         BEGIN_INTERFACE
  1302.         
  1303.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
  1304.             IJavaEventMonitorIDInfo3 __RPC_FAR * This,
  1305.             /* [in] */ REFIID riid,
  1306.             /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  1307.         
  1308.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
  1309.             IJavaEventMonitorIDInfo3 __RPC_FAR * This);
  1310.         
  1311.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
  1312.             IJavaEventMonitorIDInfo3 __RPC_FAR * This);
  1313.         
  1314.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetEventMask )( 
  1315.             IJavaEventMonitorIDInfo3 __RPC_FAR * This,
  1316.             /* [in] */ DWORD events);
  1317.         
  1318.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetEventMask )( 
  1319.             IJavaEventMonitorIDInfo3 __RPC_FAR * This,
  1320.             /* [in] */ DWORD __RPC_FAR *pevents);
  1321.         
  1322.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *MethodInformation )( 
  1323.             IJavaEventMonitorIDInfo3 __RPC_FAR * This,
  1324.             /* [in] */ MethodID method_id,
  1325.             /* [out] */ LPSTR __RPC_FAR *ppmethod_name,
  1326.             /* [out] */ ClassID __RPC_FAR *pclass_id,
  1327.             /* [out] */ JAVA_EXECUTION_MODEL __RPC_FAR *pexec,
  1328.             /* [out] */ int __RPC_FAR *psource_line_info_length,
  1329.             /* [out] */ SourceLineInfo __RPC_FAR *__RPC_FAR *ppsource_line_info);
  1330.         
  1331.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *InterpretedMethodInformation )( 
  1332.             IJavaEventMonitorIDInfo3 __RPC_FAR * This,
  1333.             /* [in] */ MethodID method_id,
  1334.             /* [out] */ unsigned int __RPC_FAR *pbyte_code_length,
  1335.             /* [out] */ BYTE_CODE __RPC_FAR *__RPC_FAR *ppbyte_codes);
  1336.         
  1337.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *JITCompiledMethodInformation )( 
  1338.             IJavaEventMonitorIDInfo3 __RPC_FAR * This,
  1339.             /* [in] */ MethodID method_id,
  1340.             /* [out] */ unsigned int __RPC_FAR *pjit_code_length,
  1341.             /* [out] */ unsigned char __RPC_FAR *__RPC_FAR *ppjit_code);
  1342.         
  1343.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ClassInformation )( 
  1344.             IJavaEventMonitorIDInfo3 __RPC_FAR * This,
  1345.             /* [in] */ ClassID class_id,
  1346.             /* [out] */ LPSTR __RPC_FAR *ppclass_name,
  1347.             /* [out] */ LPSTR __RPC_FAR *ppsource_file_name,
  1348.             /* [out] */ int __RPC_FAR *pmethods,
  1349.             /* [out] */ MethodID __RPC_FAR *__RPC_FAR *ppmethod_ids,
  1350.             /* [out] */ hyper __RPC_FAR *pobjects_created);
  1351.         
  1352.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ObjectInformation )( 
  1353.             IJavaEventMonitorIDInfo3 __RPC_FAR * This,
  1354.             /* [in] */ ObjectID objectID,
  1355.             /* [out] */ ClassID __RPC_FAR *pclass_id);
  1356.         
  1357.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetMonitorUsage )( 
  1358.             IJavaEventMonitorIDInfo3 __RPC_FAR * This,
  1359.             /* [out] */ hyper __RPC_FAR *pmonitors_used);
  1360.         
  1361.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ThreadInformation )( 
  1362.             IJavaEventMonitorIDInfo3 __RPC_FAR * This,
  1363.             /* [in] */ ThreadID threadID,
  1364.             /* [out] */ DWORD __RPC_FAR *pWin32ThreadID);
  1365.         
  1366.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *StaticClassInformation )( 
  1367.             IJavaEventMonitorIDInfo3 __RPC_FAR * This,
  1368.             /* [in] */ ClassID class_id,
  1369.             /* [out] */ DWORD __RPC_FAR *pStaticDataSize,
  1370.             /* [out] */ DWORD __RPC_FAR *pInstanceSize);
  1371.         
  1372.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetClassPath )( 
  1373.             IJavaEventMonitorIDInfo3 __RPC_FAR * This,
  1374.             /* [out] */ LPSTR __RPC_FAR *ppszClassPath);
  1375.         
  1376.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetObjectSize )( 
  1377.             IJavaEventMonitorIDInfo3 __RPC_FAR * This,
  1378.             /* [in] */ ObjectID objectID,
  1379.             /* [out] */ DWORD __RPC_FAR *pSize);
  1380.         
  1381.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetProfilingCapabilities )( 
  1382.             IJavaEventMonitorIDInfo3 __RPC_FAR * This,
  1383.             /* [out] */ DWORD __RPC_FAR *pStates,
  1384.             /* [out] */ DWORD __RPC_FAR *pCategories,
  1385.             /* [out] */ JAVA_EXECUTION_MODEL __RPC_FAR *pLastModel,
  1386.             /* [out] */ JVM_EVENT_TYPE __RPC_FAR *pLastType,
  1387.             /* [out] */ JVM_EVENT_TYPE2 __RPC_FAR *pLastType2);
  1388.         
  1389.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetClassFields )( 
  1390.             IJavaEventMonitorIDInfo3 __RPC_FAR * This,
  1391.             /* [in] */ ClassID class_id,
  1392.             /* [out] */ unsigned int __RPC_FAR *pnfields,
  1393.             /* [out] */ FieldID __RPC_FAR *__RPC_FAR *pfield_ids);
  1394.         
  1395.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *FieldInformation )( 
  1396.             IJavaEventMonitorIDInfo3 __RPC_FAR * This,
  1397.             /* [in] */ FieldID id,
  1398.             /* [out] */ LPSTR __RPC_FAR *pname,
  1399.             /* [out] */ DWORD __RPC_FAR *pflags);
  1400.         
  1401.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetCurrentThread )( 
  1402.             IJavaEventMonitorIDInfo3 __RPC_FAR * This,
  1403.             /* [out] */ ThreadID __RPC_FAR *pcurrent_thread_id);
  1404.         
  1405.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetStackTrace )( 
  1406.             IJavaEventMonitorIDInfo3 __RPC_FAR * This,
  1407.             /* [in] */ ThreadID thread_id);
  1408.         
  1409.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SampleThreadLocation )( 
  1410.             IJavaEventMonitorIDInfo3 __RPC_FAR * This,
  1411.             /* [in] */ ThreadID thread_id,
  1412.             /* [out][in] */ JVM_METHOD_SAMPLE __RPC_FAR *psample);
  1413.         
  1414.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetSpecialClassProperties )( 
  1415.             IJavaEventMonitorIDInfo3 __RPC_FAR * This,
  1416.             /* [out] */ unsigned int __RPC_FAR *pnspecial_classes,
  1417.             /* [out] */ ClassID __RPC_FAR *__RPC_FAR *ppclass_ids,
  1418.             /* [out] */ DWORD __RPC_FAR *__RPC_FAR *ppclass_flags);
  1419.         
  1420.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *DescribeObject )( 
  1421.             IJavaEventMonitorIDInfo3 __RPC_FAR * This,
  1422.             /* [in] */ ObjectID object_id,
  1423.             /* [out] */ LPWSTR __RPC_FAR *pdescr);
  1424.         
  1425.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetObjectField )( 
  1426.             IJavaEventMonitorIDInfo3 __RPC_FAR * This,
  1427.             /* [in] */ ObjectID object_id,
  1428.             /* [in] */ FieldID field_id,
  1429.             /* [out] */ hyper __RPC_FAR *pvalue);
  1430.         
  1431.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetArrayElement )( 
  1432.             IJavaEventMonitorIDInfo3 __RPC_FAR * This,
  1433.             /* [in] */ ObjectID object_id,
  1434.             /* [in] */ unsigned int index,
  1435.             /* [out] */ hyper __RPC_FAR *pvalue);
  1436.         
  1437.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetHandlesToObjects )( 
  1438.             IJavaEventMonitorIDInfo3 __RPC_FAR * This,
  1439.             /* [in] */ unsigned int nobjects,
  1440.             /* [in] */ ObjectID __RPC_FAR *pobject_ids,
  1441.             /* [out][in] */ ObjectHandleID __RPC_FAR *pobject_handles);
  1442.         
  1443.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *FreeHandlesToObjects )( 
  1444.             IJavaEventMonitorIDInfo3 __RPC_FAR * This,
  1445.             /* [in] */ unsigned int nhandles,
  1446.             /* [in] */ ObjectHandleID __RPC_FAR *pobject_handles);
  1447.         
  1448.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetObjectsFromHandles )( 
  1449.             IJavaEventMonitorIDInfo3 __RPC_FAR * This,
  1450.             /* [in] */ unsigned int nhandles,
  1451.             /* [out][in] */ ObjectHandleID __RPC_FAR *pobject_handles,
  1452.             /* [out][in] */ ObjectID __RPC_FAR *pobject_ids);
  1453.         
  1454.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *EnableMethodCallEvents )( 
  1455.             IJavaEventMonitorIDInfo3 __RPC_FAR * This,
  1456.             /* [in] */ UniqueID id,
  1457.             /* [in] */ JVM_ID_TYPE idtype,
  1458.             /* [in] */ JVM_METHOD_CALL_EVENTS_DISPOSITION Disposition);
  1459.         
  1460.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetMethodEntryParameters )( 
  1461.             IJavaEventMonitorIDInfo3 __RPC_FAR * This,
  1462.             /* [out] */ DWORD __RPC_FAR *__RPC_FAR *pslots,
  1463.             /* [out] */ DWORD __RPC_FAR *__RPC_FAR *preserved,
  1464.             /* [out] */ JVM_CALLING_CONVENTION __RPC_FAR *pcalling_convention,
  1465.             /* [out] */ DWORD __RPC_FAR *pflags);
  1466.         
  1467.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetMethodExitReturnValue )( 
  1468.             IJavaEventMonitorIDInfo3 __RPC_FAR * This,
  1469.             /* [out] */ MethodID __RPC_FAR *preturning_method_id,
  1470.             /* [out] */ hyper __RPC_FAR *__RPC_FAR *pret_value);
  1471.         
  1472.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ClassInformation2 )( 
  1473.             IJavaEventMonitorIDInfo3 __RPC_FAR * This,
  1474.             /* [in] */ ClassID class_id,
  1475.             /* [out] */ ClassID __RPC_FAR *psuperclass,
  1476.             /* [out] */ ClassID __RPC_FAR *__RPC_FAR *pinterfaces,
  1477.             /* [out] */ unsigned int __RPC_FAR *pinterfaces_length,
  1478.             /* [out] */ MethodID __RPC_FAR *__RPC_FAR *pimplemented_methods,
  1479.             /* [out] */ unsigned int __RPC_FAR *pimplemented_methods_length);
  1480.         
  1481.         END_INTERFACE
  1482.     } IJavaEventMonitorIDInfo3Vtbl;
  1483.  
  1484.     interface IJavaEventMonitorIDInfo3
  1485.     {
  1486.         CONST_VTBL struct IJavaEventMonitorIDInfo3Vtbl __RPC_FAR *lpVtbl;
  1487.     };
  1488.  
  1489.     
  1490.  
  1491. #ifdef COBJMACROS
  1492.  
  1493.  
  1494. #define IJavaEventMonitorIDInfo3_QueryInterface(This,riid,ppvObject)    \
  1495.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1496.  
  1497. #define IJavaEventMonitorIDInfo3_AddRef(This)    \
  1498.     (This)->lpVtbl -> AddRef(This)
  1499.  
  1500. #define IJavaEventMonitorIDInfo3_Release(This)    \
  1501.     (This)->lpVtbl -> Release(This)
  1502.  
  1503.  
  1504. #define IJavaEventMonitorIDInfo3_SetEventMask(This,events)    \
  1505.     (This)->lpVtbl -> SetEventMask(This,events)
  1506.  
  1507. #define IJavaEventMonitorIDInfo3_GetEventMask(This,pevents)    \
  1508.     (This)->lpVtbl -> GetEventMask(This,pevents)
  1509.  
  1510. #define IJavaEventMonitorIDInfo3_MethodInformation(This,method_id,ppmethod_name,pclass_id,pexec,psource_line_info_length,ppsource_line_info)    \
  1511.     (This)->lpVtbl -> MethodInformation(This,method_id,ppmethod_name,pclass_id,pexec,psource_line_info_length,ppsource_line_info)
  1512.  
  1513. #define IJavaEventMonitorIDInfo3_InterpretedMethodInformation(This,method_id,pbyte_code_length,ppbyte_codes)    \
  1514.     (This)->lpVtbl -> InterpretedMethodInformation(This,method_id,pbyte_code_length,ppbyte_codes)
  1515.  
  1516. #define IJavaEventMonitorIDInfo3_JITCompiledMethodInformation(This,method_id,pjit_code_length,ppjit_code)    \
  1517.     (This)->lpVtbl -> JITCompiledMethodInformation(This,method_id,pjit_code_length,ppjit_code)
  1518.  
  1519. #define IJavaEventMonitorIDInfo3_ClassInformation(This,class_id,ppclass_name,ppsource_file_name,pmethods,ppmethod_ids,pobjects_created)    \
  1520.     (This)->lpVtbl -> ClassInformation(This,class_id,ppclass_name,ppsource_file_name,pmethods,ppmethod_ids,pobjects_created)
  1521.  
  1522. #define IJavaEventMonitorIDInfo3_ObjectInformation(This,objectID,pclass_id)    \
  1523.     (This)->lpVtbl -> ObjectInformation(This,objectID,pclass_id)
  1524.  
  1525. #define IJavaEventMonitorIDInfo3_GetMonitorUsage(This,pmonitors_used)    \
  1526.     (This)->lpVtbl -> GetMonitorUsage(This,pmonitors_used)
  1527.  
  1528.  
  1529. #define IJavaEventMonitorIDInfo3_ThreadInformation(This,threadID,pWin32ThreadID)    \
  1530.     (This)->lpVtbl -> ThreadInformation(This,threadID,pWin32ThreadID)
  1531.  
  1532. #define IJavaEventMonitorIDInfo3_StaticClassInformation(This,class_id,pStaticDataSize,pInstanceSize)    \
  1533.     (This)->lpVtbl -> StaticClassInformation(This,class_id,pStaticDataSize,pInstanceSize)
  1534.  
  1535. #define IJavaEventMonitorIDInfo3_GetClassPath(This,ppszClassPath)    \
  1536.     (This)->lpVtbl -> GetClassPath(This,ppszClassPath)
  1537.  
  1538. #define IJavaEventMonitorIDInfo3_GetObjectSize(This,objectID,pSize)    \
  1539.     (This)->lpVtbl -> GetObjectSize(This,objectID,pSize)
  1540.  
  1541. #define IJavaEventMonitorIDInfo3_GetProfilingCapabilities(This,pStates,pCategories,pLastModel,pLastType,pLastType2)    \
  1542.     (This)->lpVtbl -> GetProfilingCapabilities(This,pStates,pCategories,pLastModel,pLastType,pLastType2)
  1543.  
  1544. #define IJavaEventMonitorIDInfo3_GetClassFields(This,class_id,pnfields,pfield_ids)    \
  1545.     (This)->lpVtbl -> GetClassFields(This,class_id,pnfields,pfield_ids)
  1546.  
  1547. #define IJavaEventMonitorIDInfo3_FieldInformation(This,id,pname,pflags)    \
  1548.     (This)->lpVtbl -> FieldInformation(This,id,pname,pflags)
  1549.  
  1550. #define IJavaEventMonitorIDInfo3_GetCurrentThread(This,pcurrent_thread_id)    \
  1551.     (This)->lpVtbl -> GetCurrentThread(This,pcurrent_thread_id)
  1552.  
  1553. #define IJavaEventMonitorIDInfo3_GetStackTrace(This,thread_id)    \
  1554.     (This)->lpVtbl -> GetStackTrace(This,thread_id)
  1555.  
  1556. #define IJavaEventMonitorIDInfo3_SampleThreadLocation(This,thread_id,psample)    \
  1557.     (This)->lpVtbl -> SampleThreadLocation(This,thread_id,psample)
  1558.  
  1559. #define IJavaEventMonitorIDInfo3_GetSpecialClassProperties(This,pnspecial_classes,ppclass_ids,ppclass_flags)    \
  1560.     (This)->lpVtbl -> GetSpecialClassProperties(This,pnspecial_classes,ppclass_ids,ppclass_flags)
  1561.  
  1562. #define IJavaEventMonitorIDInfo3_DescribeObject(This,object_id,pdescr)    \
  1563.     (This)->lpVtbl -> DescribeObject(This,object_id,pdescr)
  1564.  
  1565. #define IJavaEventMonitorIDInfo3_GetObjectField(This,object_id,field_id,pvalue)    \
  1566.     (This)->lpVtbl -> GetObjectField(This,object_id,field_id,pvalue)
  1567.  
  1568. #define IJavaEventMonitorIDInfo3_GetArrayElement(This,object_id,index,pvalue)    \
  1569.     (This)->lpVtbl -> GetArrayElement(This,object_id,index,pvalue)
  1570.  
  1571. #define IJavaEventMonitorIDInfo3_GetHandlesToObjects(This,nobjects,pobject_ids,pobject_handles)    \
  1572.     (This)->lpVtbl -> GetHandlesToObjects(This,nobjects,pobject_ids,pobject_handles)
  1573.  
  1574. #define IJavaEventMonitorIDInfo3_FreeHandlesToObjects(This,nhandles,pobject_handles)    \
  1575.     (This)->lpVtbl -> FreeHandlesToObjects(This,nhandles,pobject_handles)
  1576.  
  1577. #define IJavaEventMonitorIDInfo3_GetObjectsFromHandles(This,nhandles,pobject_handles,pobject_ids)    \
  1578.     (This)->lpVtbl -> GetObjectsFromHandles(This,nhandles,pobject_handles,pobject_ids)
  1579.  
  1580.  
  1581. #define IJavaEventMonitorIDInfo3_EnableMethodCallEvents(This,id,idtype,Disposition)    \
  1582.     (This)->lpVtbl -> EnableMethodCallEvents(This,id,idtype,Disposition)
  1583.  
  1584. #define IJavaEventMonitorIDInfo3_GetMethodEntryParameters(This,pslots,preserved,pcalling_convention,pflags)    \
  1585.     (This)->lpVtbl -> GetMethodEntryParameters(This,pslots,preserved,pcalling_convention,pflags)
  1586.  
  1587. #define IJavaEventMonitorIDInfo3_GetMethodExitReturnValue(This,preturning_method_id,pret_value)    \
  1588.     (This)->lpVtbl -> GetMethodExitReturnValue(This,preturning_method_id,pret_value)
  1589.  
  1590. #define IJavaEventMonitorIDInfo3_ClassInformation2(This,class_id,psuperclass,pinterfaces,pinterfaces_length,pimplemented_methods,pimplemented_methods_length)    \
  1591.     (This)->lpVtbl -> ClassInformation2(This,class_id,psuperclass,pinterfaces,pinterfaces_length,pimplemented_methods,pimplemented_methods_length)
  1592.  
  1593. #endif /* COBJMACROS */
  1594.  
  1595.  
  1596. #endif     /* C style interface */
  1597.  
  1598.  
  1599.  
  1600. HRESULT STDMETHODCALLTYPE IJavaEventMonitorIDInfo3_EnableMethodCallEvents_Proxy( 
  1601.     IJavaEventMonitorIDInfo3 __RPC_FAR * This,
  1602.     /* [in] */ UniqueID id,
  1603.     /* [in] */ JVM_ID_TYPE idtype,
  1604.     /* [in] */ JVM_METHOD_CALL_EVENTS_DISPOSITION Disposition);
  1605.  
  1606.  
  1607. void __RPC_STUB IJavaEventMonitorIDInfo3_EnableMethodCallEvents_Stub(
  1608.     IRpcStubBuffer *This,
  1609.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1610.     PRPC_MESSAGE _pRpcMessage,
  1611.     DWORD *_pdwStubPhase);
  1612.  
  1613.  
  1614. HRESULT STDMETHODCALLTYPE IJavaEventMonitorIDInfo3_GetMethodEntryParameters_Proxy( 
  1615.     IJavaEventMonitorIDInfo3 __RPC_FAR * This,
  1616.     /* [out] */ DWORD __RPC_FAR *__RPC_FAR *pslots,
  1617.     /* [out] */ DWORD __RPC_FAR *__RPC_FAR *preserved,
  1618.     /* [out] */ JVM_CALLING_CONVENTION __RPC_FAR *pcalling_convention,
  1619.     /* [out] */ DWORD __RPC_FAR *pflags);
  1620.  
  1621.  
  1622. void __RPC_STUB IJavaEventMonitorIDInfo3_GetMethodEntryParameters_Stub(
  1623.     IRpcStubBuffer *This,
  1624.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1625.     PRPC_MESSAGE _pRpcMessage,
  1626.     DWORD *_pdwStubPhase);
  1627.  
  1628.  
  1629. HRESULT STDMETHODCALLTYPE IJavaEventMonitorIDInfo3_GetMethodExitReturnValue_Proxy( 
  1630.     IJavaEventMonitorIDInfo3 __RPC_FAR * This,
  1631.     /* [out] */ MethodID __RPC_FAR *preturning_method_id,
  1632.     /* [out] */ hyper __RPC_FAR *__RPC_FAR *pret_value);
  1633.  
  1634.  
  1635. void __RPC_STUB IJavaEventMonitorIDInfo3_GetMethodExitReturnValue_Stub(
  1636.     IRpcStubBuffer *This,
  1637.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1638.     PRPC_MESSAGE _pRpcMessage,
  1639.     DWORD *_pdwStubPhase);
  1640.  
  1641.  
  1642. HRESULT STDMETHODCALLTYPE IJavaEventMonitorIDInfo3_ClassInformation2_Proxy( 
  1643.     IJavaEventMonitorIDInfo3 __RPC_FAR * This,
  1644.     /* [in] */ ClassID class_id,
  1645.     /* [out] */ ClassID __RPC_FAR *psuperclass,
  1646.     /* [out] */ ClassID __RPC_FAR *__RPC_FAR *pinterfaces,
  1647.     /* [out] */ unsigned int __RPC_FAR *pinterfaces_length,
  1648.     /* [out] */ MethodID __RPC_FAR *__RPC_FAR *pimplemented_methods,
  1649.     /* [out] */ unsigned int __RPC_FAR *pimplemented_methods_length);
  1650.  
  1651.  
  1652. void __RPC_STUB IJavaEventMonitorIDInfo3_ClassInformation2_Stub(
  1653.     IRpcStubBuffer *This,
  1654.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1655.     PRPC_MESSAGE _pRpcMessage,
  1656.     DWORD *_pdwStubPhase);
  1657.  
  1658.  
  1659.  
  1660. #endif     /* __IJavaEventMonitorIDInfo3_INTERFACE_DEFINED__ */
  1661.  
  1662.  
  1663. /****************************************
  1664.  * Generated header for interface: __MIDL_itf_jevmon_0080
  1665.  * at Wed Jul 21 09:23:19 1999
  1666.  * using MIDL 3.01.75
  1667.  ****************************************/
  1668. /* [local] */ 
  1669.  
  1670.  
  1671. DEFINE_GUID(IID_IJavaEventMonitorIDInfo4, 0x5a183bd0, 0x4f46, 0x11d2, 0xb0, 0x64, 0x0, 0x60, 0x8, 0x3, 0x9b, 0xf0);
  1672.  
  1673.  
  1674. extern RPC_IF_HANDLE __MIDL_itf_jevmon_0080_v0_0_c_ifspec;
  1675. extern RPC_IF_HANDLE __MIDL_itf_jevmon_0080_v0_0_s_ifspec;
  1676.  
  1677. #ifndef __IJavaEventMonitorIDInfo4_INTERFACE_DEFINED__
  1678. #define __IJavaEventMonitorIDInfo4_INTERFACE_DEFINED__
  1679.  
  1680. /****************************************
  1681.  * Generated header for interface: IJavaEventMonitorIDInfo4
  1682.  * at Wed Jul 21 09:23:19 1999
  1683.  * using MIDL 3.01.75
  1684.  ****************************************/
  1685. /* [unique][helpstring][uuid][object] */ 
  1686.  
  1687.  
  1688.  
  1689. EXTERN_C const IID IID_IJavaEventMonitorIDInfo4;
  1690.  
  1691. #if defined(__cplusplus) && !defined(CINTERFACE)
  1692.     
  1693.     interface DECLSPEC_UUID("5A183BD0-4F46-11d2-B064-006008039BF0")
  1694.     IJavaEventMonitorIDInfo4 : public IJavaEventMonitorIDInfo3
  1695.     {
  1696.     public:
  1697.         virtual HRESULT STDMETHODCALLTYPE GetMonitorInitializationOptions( 
  1698.             /* [out] */ DWORD __RPC_FAR *pflags) = 0;
  1699.         
  1700.         virtual HRESULT STDMETHODCALLTYPE SetMonitorInitializationOptions( 
  1701.             /* [in] */ DWORD flags) = 0;
  1702.         
  1703.         virtual HRESULT STDMETHODCALLTYPE GetFinalInitializationOptions( 
  1704.             /* [out] */ DWORD __RPC_FAR *pflags) = 0;
  1705.         
  1706.     };
  1707.     
  1708. #else     /* C style interface */
  1709.  
  1710.     typedef struct IJavaEventMonitorIDInfo4Vtbl
  1711.     {
  1712.         BEGIN_INTERFACE
  1713.         
  1714.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
  1715.             IJavaEventMonitorIDInfo4 __RPC_FAR * This,
  1716.             /* [in] */ REFIID riid,
  1717.             /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  1718.         
  1719.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
  1720.             IJavaEventMonitorIDInfo4 __RPC_FAR * This);
  1721.         
  1722.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
  1723.             IJavaEventMonitorIDInfo4 __RPC_FAR * This);
  1724.         
  1725.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetEventMask )( 
  1726.             IJavaEventMonitorIDInfo4 __RPC_FAR * This,
  1727.             /* [in] */ DWORD events);
  1728.         
  1729.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetEventMask )( 
  1730.             IJavaEventMonitorIDInfo4 __RPC_FAR * This,
  1731.             /* [in] */ DWORD __RPC_FAR *pevents);
  1732.         
  1733.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *MethodInformation )( 
  1734.             IJavaEventMonitorIDInfo4 __RPC_FAR * This,
  1735.             /* [in] */ MethodID method_id,
  1736.             /* [out] */ LPSTR __RPC_FAR *ppmethod_name,
  1737.             /* [out] */ ClassID __RPC_FAR *pclass_id,
  1738.             /* [out] */ JAVA_EXECUTION_MODEL __RPC_FAR *pexec,
  1739.             /* [out] */ int __RPC_FAR *psource_line_info_length,
  1740.             /* [out] */ SourceLineInfo __RPC_FAR *__RPC_FAR *ppsource_line_info);
  1741.         
  1742.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *InterpretedMethodInformation )( 
  1743.             IJavaEventMonitorIDInfo4 __RPC_FAR * This,
  1744.             /* [in] */ MethodID method_id,
  1745.             /* [out] */ unsigned int __RPC_FAR *pbyte_code_length,
  1746.             /* [out] */ BYTE_CODE __RPC_FAR *__RPC_FAR *ppbyte_codes);
  1747.         
  1748.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *JITCompiledMethodInformation )( 
  1749.             IJavaEventMonitorIDInfo4 __RPC_FAR * This,
  1750.             /* [in] */ MethodID method_id,
  1751.             /* [out] */ unsigned int __RPC_FAR *pjit_code_length,
  1752.             /* [out] */ unsigned char __RPC_FAR *__RPC_FAR *ppjit_code);
  1753.         
  1754.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ClassInformation )( 
  1755.             IJavaEventMonitorIDInfo4 __RPC_FAR * This,
  1756.             /* [in] */ ClassID class_id,
  1757.             /* [out] */ LPSTR __RPC_FAR *ppclass_name,
  1758.             /* [out] */ LPSTR __RPC_FAR *ppsource_file_name,
  1759.             /* [out] */ int __RPC_FAR *pmethods,
  1760.             /* [out] */ MethodID __RPC_FAR *__RPC_FAR *ppmethod_ids,
  1761.             /* [out] */ hyper __RPC_FAR *pobjects_created);
  1762.         
  1763.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ObjectInformation )( 
  1764.             IJavaEventMonitorIDInfo4 __RPC_FAR * This,
  1765.             /* [in] */ ObjectID objectID,
  1766.             /* [out] */ ClassID __RPC_FAR *pclass_id);
  1767.         
  1768.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetMonitorUsage )( 
  1769.             IJavaEventMonitorIDInfo4 __RPC_FAR * This,
  1770.             /* [out] */ hyper __RPC_FAR *pmonitors_used);
  1771.         
  1772.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ThreadInformation )( 
  1773.             IJavaEventMonitorIDInfo4 __RPC_FAR * This,
  1774.             /* [in] */ ThreadID threadID,
  1775.             /* [out] */ DWORD __RPC_FAR *pWin32ThreadID);
  1776.         
  1777.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *StaticClassInformation )( 
  1778.             IJavaEventMonitorIDInfo4 __RPC_FAR * This,
  1779.             /* [in] */ ClassID class_id,
  1780.             /* [out] */ DWORD __RPC_FAR *pStaticDataSize,
  1781.             /* [out] */ DWORD __RPC_FAR *pInstanceSize);
  1782.         
  1783.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetClassPath )( 
  1784.             IJavaEventMonitorIDInfo4 __RPC_FAR * This,
  1785.             /* [out] */ LPSTR __RPC_FAR *ppszClassPath);
  1786.         
  1787.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetObjectSize )( 
  1788.             IJavaEventMonitorIDInfo4 __RPC_FAR * This,
  1789.             /* [in] */ ObjectID objectID,
  1790.             /* [out] */ DWORD __RPC_FAR *pSize);
  1791.         
  1792.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetProfilingCapabilities )( 
  1793.             IJavaEventMonitorIDInfo4 __RPC_FAR * This,
  1794.             /* [out] */ DWORD __RPC_FAR *pStates,
  1795.             /* [out] */ DWORD __RPC_FAR *pCategories,
  1796.             /* [out] */ JAVA_EXECUTION_MODEL __RPC_FAR *pLastModel,
  1797.             /* [out] */ JVM_EVENT_TYPE __RPC_FAR *pLastType,
  1798.             /* [out] */ JVM_EVENT_TYPE2 __RPC_FAR *pLastType2);
  1799.         
  1800.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetClassFields )( 
  1801.             IJavaEventMonitorIDInfo4 __RPC_FAR * This,
  1802.             /* [in] */ ClassID class_id,
  1803.             /* [out] */ unsigned int __RPC_FAR *pnfields,
  1804.             /* [out] */ FieldID __RPC_FAR *__RPC_FAR *pfield_ids);
  1805.         
  1806.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *FieldInformation )( 
  1807.             IJavaEventMonitorIDInfo4 __RPC_FAR * This,
  1808.             /* [in] */ FieldID id,
  1809.             /* [out] */ LPSTR __RPC_FAR *pname,
  1810.             /* [out] */ DWORD __RPC_FAR *pflags);
  1811.         
  1812.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetCurrentThread )( 
  1813.             IJavaEventMonitorIDInfo4 __RPC_FAR * This,
  1814.             /* [out] */ ThreadID __RPC_FAR *pcurrent_thread_id);
  1815.         
  1816.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetStackTrace )( 
  1817.             IJavaEventMonitorIDInfo4 __RPC_FAR * This,
  1818.             /* [in] */ ThreadID thread_id);
  1819.         
  1820.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SampleThreadLocation )( 
  1821.             IJavaEventMonitorIDInfo4 __RPC_FAR * This,
  1822.             /* [in] */ ThreadID thread_id,
  1823.             /* [out][in] */ JVM_METHOD_SAMPLE __RPC_FAR *psample);
  1824.         
  1825.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetSpecialClassProperties )( 
  1826.             IJavaEventMonitorIDInfo4 __RPC_FAR * This,
  1827.             /* [out] */ unsigned int __RPC_FAR *pnspecial_classes,
  1828.             /* [out] */ ClassID __RPC_FAR *__RPC_FAR *ppclass_ids,
  1829.             /* [out] */ DWORD __RPC_FAR *__RPC_FAR *ppclass_flags);
  1830.         
  1831.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *DescribeObject )( 
  1832.             IJavaEventMonitorIDInfo4 __RPC_FAR * This,
  1833.             /* [in] */ ObjectID object_id,
  1834.             /* [out] */ LPWSTR __RPC_FAR *pdescr);
  1835.         
  1836.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetObjectField )( 
  1837.             IJavaEventMonitorIDInfo4 __RPC_FAR * This,
  1838.             /* [in] */ ObjectID object_id,
  1839.             /* [in] */ FieldID field_id,
  1840.             /* [out] */ hyper __RPC_FAR *pvalue);
  1841.         
  1842.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetArrayElement )( 
  1843.             IJavaEventMonitorIDInfo4 __RPC_FAR * This,
  1844.             /* [in] */ ObjectID object_id,
  1845.             /* [in] */ unsigned int index,
  1846.             /* [out] */ hyper __RPC_FAR *pvalue);
  1847.         
  1848.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetHandlesToObjects )( 
  1849.             IJavaEventMonitorIDInfo4 __RPC_FAR * This,
  1850.             /* [in] */ unsigned int nobjects,
  1851.             /* [in] */ ObjectID __RPC_FAR *pobject_ids,
  1852.             /* [out][in] */ ObjectHandleID __RPC_FAR *pobject_handles);
  1853.         
  1854.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *FreeHandlesToObjects )( 
  1855.             IJavaEventMonitorIDInfo4 __RPC_FAR * This,
  1856.             /* [in] */ unsigned int nhandles,
  1857.             /* [in] */ ObjectHandleID __RPC_FAR *pobject_handles);
  1858.         
  1859.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetObjectsFromHandles )( 
  1860.             IJavaEventMonitorIDInfo4 __RPC_FAR * This,
  1861.             /* [in] */ unsigned int nhandles,
  1862.             /* [out][in] */ ObjectHandleID __RPC_FAR *pobject_handles,
  1863.             /* [out][in] */ ObjectID __RPC_FAR *pobject_ids);
  1864.         
  1865.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *EnableMethodCallEvents )( 
  1866.             IJavaEventMonitorIDInfo4 __RPC_FAR * This,
  1867.             /* [in] */ UniqueID id,
  1868.             /* [in] */ JVM_ID_TYPE idtype,
  1869.             /* [in] */ JVM_METHOD_CALL_EVENTS_DISPOSITION Disposition);
  1870.         
  1871.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetMethodEntryParameters )( 
  1872.             IJavaEventMonitorIDInfo4 __RPC_FAR * This,
  1873.             /* [out] */ DWORD __RPC_FAR *__RPC_FAR *pslots,
  1874.             /* [out] */ DWORD __RPC_FAR *__RPC_FAR *preserved,
  1875.             /* [out] */ JVM_CALLING_CONVENTION __RPC_FAR *pcalling_convention,
  1876.             /* [out] */ DWORD __RPC_FAR *pflags);
  1877.         
  1878.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetMethodExitReturnValue )( 
  1879.             IJavaEventMonitorIDInfo4 __RPC_FAR * This,
  1880.             /* [out] */ MethodID __RPC_FAR *preturning_method_id,
  1881.             /* [out] */ hyper __RPC_FAR *__RPC_FAR *pret_value);
  1882.         
  1883.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ClassInformation2 )( 
  1884.             IJavaEventMonitorIDInfo4 __RPC_FAR * This,
  1885.             /* [in] */ ClassID class_id,
  1886.             /* [out] */ ClassID __RPC_FAR *psuperclass,
  1887.             /* [out] */ ClassID __RPC_FAR *__RPC_FAR *pinterfaces,
  1888.             /* [out] */ unsigned int __RPC_FAR *pinterfaces_length,
  1889.             /* [out] */ MethodID __RPC_FAR *__RPC_FAR *pimplemented_methods,
  1890.             /* [out] */ unsigned int __RPC_FAR *pimplemented_methods_length);
  1891.         
  1892.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetMonitorInitializationOptions )( 
  1893.             IJavaEventMonitorIDInfo4 __RPC_FAR * This,
  1894.             /* [out] */ DWORD __RPC_FAR *pflags);
  1895.         
  1896.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetMonitorInitializationOptions )( 
  1897.             IJavaEventMonitorIDInfo4 __RPC_FAR * This,
  1898.             /* [in] */ DWORD flags);
  1899.         
  1900.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetFinalInitializationOptions )( 
  1901.             IJavaEventMonitorIDInfo4 __RPC_FAR * This,
  1902.             /* [out] */ DWORD __RPC_FAR *pflags);
  1903.         
  1904.         END_INTERFACE
  1905.     } IJavaEventMonitorIDInfo4Vtbl;
  1906.  
  1907.     interface IJavaEventMonitorIDInfo4
  1908.     {
  1909.         CONST_VTBL struct IJavaEventMonitorIDInfo4Vtbl __RPC_FAR *lpVtbl;
  1910.     };
  1911.  
  1912.     
  1913.  
  1914. #ifdef COBJMACROS
  1915.  
  1916.  
  1917. #define IJavaEventMonitorIDInfo4_QueryInterface(This,riid,ppvObject)    \
  1918.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1919.  
  1920. #define IJavaEventMonitorIDInfo4_AddRef(This)    \
  1921.     (This)->lpVtbl -> AddRef(This)
  1922.  
  1923. #define IJavaEventMonitorIDInfo4_Release(This)    \
  1924.     (This)->lpVtbl -> Release(This)
  1925.  
  1926.  
  1927. #define IJavaEventMonitorIDInfo4_SetEventMask(This,events)    \
  1928.     (This)->lpVtbl -> SetEventMask(This,events)
  1929.  
  1930. #define IJavaEventMonitorIDInfo4_GetEventMask(This,pevents)    \
  1931.     (This)->lpVtbl -> GetEventMask(This,pevents)
  1932.  
  1933. #define IJavaEventMonitorIDInfo4_MethodInformation(This,method_id,ppmethod_name,pclass_id,pexec,psource_line_info_length,ppsource_line_info)    \
  1934.     (This)->lpVtbl -> MethodInformation(This,method_id,ppmethod_name,pclass_id,pexec,psource_line_info_length,ppsource_line_info)
  1935.  
  1936. #define IJavaEventMonitorIDInfo4_InterpretedMethodInformation(This,method_id,pbyte_code_length,ppbyte_codes)    \
  1937.     (This)->lpVtbl -> InterpretedMethodInformation(This,method_id,pbyte_code_length,ppbyte_codes)
  1938.  
  1939. #define IJavaEventMonitorIDInfo4_JITCompiledMethodInformation(This,method_id,pjit_code_length,ppjit_code)    \
  1940.     (This)->lpVtbl -> JITCompiledMethodInformation(This,method_id,pjit_code_length,ppjit_code)
  1941.  
  1942. #define IJavaEventMonitorIDInfo4_ClassInformation(This,class_id,ppclass_name,ppsource_file_name,pmethods,ppmethod_ids,pobjects_created)    \
  1943.     (This)->lpVtbl -> ClassInformation(This,class_id,ppclass_name,ppsource_file_name,pmethods,ppmethod_ids,pobjects_created)
  1944.  
  1945. #define IJavaEventMonitorIDInfo4_ObjectInformation(This,objectID,pclass_id)    \
  1946.     (This)->lpVtbl -> ObjectInformation(This,objectID,pclass_id)
  1947.  
  1948. #define IJavaEventMonitorIDInfo4_GetMonitorUsage(This,pmonitors_used)    \
  1949.     (This)->lpVtbl -> GetMonitorUsage(This,pmonitors_used)
  1950.  
  1951.  
  1952. #define IJavaEventMonitorIDInfo4_ThreadInformation(This,threadID,pWin32ThreadID)    \
  1953.     (This)->lpVtbl -> ThreadInformation(This,threadID,pWin32ThreadID)
  1954.  
  1955. #define IJavaEventMonitorIDInfo4_StaticClassInformation(This,class_id,pStaticDataSize,pInstanceSize)    \
  1956.     (This)->lpVtbl -> StaticClassInformation(This,class_id,pStaticDataSize,pInstanceSize)
  1957.  
  1958. #define IJavaEventMonitorIDInfo4_GetClassPath(This,ppszClassPath)    \
  1959.     (This)->lpVtbl -> GetClassPath(This,ppszClassPath)
  1960.  
  1961. #define IJavaEventMonitorIDInfo4_GetObjectSize(This,objectID,pSize)    \
  1962.     (This)->lpVtbl -> GetObjectSize(This,objectID,pSize)
  1963.  
  1964. #define IJavaEventMonitorIDInfo4_GetProfilingCapabilities(This,pStates,pCategories,pLastModel,pLastType,pLastType2)    \
  1965.     (This)->lpVtbl -> GetProfilingCapabilities(This,pStates,pCategories,pLastModel,pLastType,pLastType2)
  1966.  
  1967. #define IJavaEventMonitorIDInfo4_GetClassFields(This,class_id,pnfields,pfield_ids)    \
  1968.     (This)->lpVtbl -> GetClassFields(This,class_id,pnfields,pfield_ids)
  1969.  
  1970. #define IJavaEventMonitorIDInfo4_FieldInformation(This,id,pname,pflags)    \
  1971.     (This)->lpVtbl -> FieldInformation(This,id,pname,pflags)
  1972.  
  1973. #define IJavaEventMonitorIDInfo4_GetCurrentThread(This,pcurrent_thread_id)    \
  1974.     (This)->lpVtbl -> GetCurrentThread(This,pcurrent_thread_id)
  1975.  
  1976. #define IJavaEventMonitorIDInfo4_GetStackTrace(This,thread_id)    \
  1977.     (This)->lpVtbl -> GetStackTrace(This,thread_id)
  1978.  
  1979. #define IJavaEventMonitorIDInfo4_SampleThreadLocation(This,thread_id,psample)    \
  1980.     (This)->lpVtbl -> SampleThreadLocation(This,thread_id,psample)
  1981.  
  1982. #define IJavaEventMonitorIDInfo4_GetSpecialClassProperties(This,pnspecial_classes,ppclass_ids,ppclass_flags)    \
  1983.     (This)->lpVtbl -> GetSpecialClassProperties(This,pnspecial_classes,ppclass_ids,ppclass_flags)
  1984.  
  1985. #define IJavaEventMonitorIDInfo4_DescribeObject(This,object_id,pdescr)    \
  1986.     (This)->lpVtbl -> DescribeObject(This,object_id,pdescr)
  1987.  
  1988. #define IJavaEventMonitorIDInfo4_GetObjectField(This,object_id,field_id,pvalue)    \
  1989.     (This)->lpVtbl -> GetObjectField(This,object_id,field_id,pvalue)
  1990.  
  1991. #define IJavaEventMonitorIDInfo4_GetArrayElement(This,object_id,index,pvalue)    \
  1992.     (This)->lpVtbl -> GetArrayElement(This,object_id,index,pvalue)
  1993.  
  1994. #define IJavaEventMonitorIDInfo4_GetHandlesToObjects(This,nobjects,pobject_ids,pobject_handles)    \
  1995.     (This)->lpVtbl -> GetHandlesToObjects(This,nobjects,pobject_ids,pobject_handles)
  1996.  
  1997. #define IJavaEventMonitorIDInfo4_FreeHandlesToObjects(This,nhandles,pobject_handles)    \
  1998.     (This)->lpVtbl -> FreeHandlesToObjects(This,nhandles,pobject_handles)
  1999.  
  2000. #define IJavaEventMonitorIDInfo4_GetObjectsFromHandles(This,nhandles,pobject_handles,pobject_ids)    \
  2001.     (This)->lpVtbl -> GetObjectsFromHandles(This,nhandles,pobject_handles,pobject_ids)
  2002.  
  2003.  
  2004. #define IJavaEventMonitorIDInfo4_EnableMethodCallEvents(This,id,idtype,Disposition)    \
  2005.     (This)->lpVtbl -> EnableMethodCallEvents(This,id,idtype,Disposition)
  2006.  
  2007. #define IJavaEventMonitorIDInfo4_GetMethodEntryParameters(This,pslots,preserved,pcalling_convention,pflags)    \
  2008.     (This)->lpVtbl -> GetMethodEntryParameters(This,pslots,preserved,pcalling_convention,pflags)
  2009.  
  2010. #define IJavaEventMonitorIDInfo4_GetMethodExitReturnValue(This,preturning_method_id,pret_value)    \
  2011.     (This)->lpVtbl -> GetMethodExitReturnValue(This,preturning_method_id,pret_value)
  2012.  
  2013. #define IJavaEventMonitorIDInfo4_ClassInformation2(This,class_id,psuperclass,pinterfaces,pinterfaces_length,pimplemented_methods,pimplemented_methods_length)    \
  2014.     (This)->lpVtbl -> ClassInformation2(This,class_id,psuperclass,pinterfaces,pinterfaces_length,pimplemented_methods,pimplemented_methods_length)
  2015.  
  2016.  
  2017. #define IJavaEventMonitorIDInfo4_GetMonitorInitializationOptions(This,pflags)    \
  2018.     (This)->lpVtbl -> GetMonitorInitializationOptions(This,pflags)
  2019.  
  2020. #define IJavaEventMonitorIDInfo4_SetMonitorInitializationOptions(This,flags)    \
  2021.     (This)->lpVtbl -> SetMonitorInitializationOptions(This,flags)
  2022.  
  2023. #define IJavaEventMonitorIDInfo4_GetFinalInitializationOptions(This,pflags)    \
  2024.     (This)->lpVtbl -> GetFinalInitializationOptions(This,pflags)
  2025.  
  2026. #endif /* COBJMACROS */
  2027.  
  2028.  
  2029. #endif     /* C style interface */
  2030.  
  2031.  
  2032.  
  2033. HRESULT STDMETHODCALLTYPE IJavaEventMonitorIDInfo4_GetMonitorInitializationOptions_Proxy( 
  2034.     IJavaEventMonitorIDInfo4 __RPC_FAR * This,
  2035.     /* [out] */ DWORD __RPC_FAR *pflags);
  2036.  
  2037.  
  2038. void __RPC_STUB IJavaEventMonitorIDInfo4_GetMonitorInitializationOptions_Stub(
  2039.     IRpcStubBuffer *This,
  2040.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2041.     PRPC_MESSAGE _pRpcMessage,
  2042.     DWORD *_pdwStubPhase);
  2043.  
  2044.  
  2045. HRESULT STDMETHODCALLTYPE IJavaEventMonitorIDInfo4_SetMonitorInitializationOptions_Proxy( 
  2046.     IJavaEventMonitorIDInfo4 __RPC_FAR * This,
  2047.     /* [in] */ DWORD flags);
  2048.  
  2049.  
  2050. void __RPC_STUB IJavaEventMonitorIDInfo4_SetMonitorInitializationOptions_Stub(
  2051.     IRpcStubBuffer *This,
  2052.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2053.     PRPC_MESSAGE _pRpcMessage,
  2054.     DWORD *_pdwStubPhase);
  2055.  
  2056.  
  2057. HRESULT STDMETHODCALLTYPE IJavaEventMonitorIDInfo4_GetFinalInitializationOptions_Proxy( 
  2058.     IJavaEventMonitorIDInfo4 __RPC_FAR * This,
  2059.     /* [out] */ DWORD __RPC_FAR *pflags);
  2060.  
  2061.  
  2062. void __RPC_STUB IJavaEventMonitorIDInfo4_GetFinalInitializationOptions_Stub(
  2063.     IRpcStubBuffer *This,
  2064.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2065.     PRPC_MESSAGE _pRpcMessage,
  2066.     DWORD *_pdwStubPhase);
  2067.  
  2068.  
  2069.  
  2070. #endif     /* __IJavaEventMonitorIDInfo4_INTERFACE_DEFINED__ */
  2071.  
  2072.  
  2073. /****************************************
  2074.  * Generated header for interface: __MIDL_itf_jevmon_0081
  2075.  * at Wed Jul 21 09:23:19 1999
  2076.  * using MIDL 3.01.75
  2077.  ****************************************/
  2078. /* [local] */ 
  2079.  
  2080.  
  2081. DEFINE_GUID(IID_IJavaEventMonitor, 0xa57d3f41, 0x8b8a, 0x11d0, 0x93, 0x81, 0x0, 0xa0, 0xc9, 0xa, 0x8f, 0xbe);
  2082.  
  2083.  
  2084. extern RPC_IF_HANDLE __MIDL_itf_jevmon_0081_v0_0_c_ifspec;
  2085. extern RPC_IF_HANDLE __MIDL_itf_jevmon_0081_v0_0_s_ifspec;
  2086.  
  2087. #ifndef __IJavaEventMonitor_INTERFACE_DEFINED__
  2088. #define __IJavaEventMonitor_INTERFACE_DEFINED__
  2089.  
  2090. /****************************************
  2091.  * Generated header for interface: IJavaEventMonitor
  2092.  * at Wed Jul 21 09:23:19 1999
  2093.  * using MIDL 3.01.75
  2094.  ****************************************/
  2095. /* [unique][helpstring][uuid][object] */ 
  2096.  
  2097.  
  2098.  
  2099. EXTERN_C const IID IID_IJavaEventMonitor;
  2100.  
  2101. #if defined(__cplusplus) && !defined(CINTERFACE)
  2102.     
  2103.     interface DECLSPEC_UUID("A57D3F41-8B8A-11d0-9381-00A0C90A8FBE")
  2104.     IJavaEventMonitor : public IUnknown
  2105.     {
  2106.     public:
  2107.         virtual HRESULT STDMETHODCALLTYPE Initialize( 
  2108.             /* [in] */ LPCSTR pclass_file_name,
  2109.             /* [in] */ IJavaEventMonitorIDInfo __RPC_FAR *pmonitor_info,
  2110.             /* [in] */ DWORD java_flags,
  2111.             /* [out] */ DWORD __RPC_FAR *prequested_events) = 0;
  2112.         
  2113.         virtual HRESULT STDMETHODCALLTYPE NotifyEvent( 
  2114.             /* [in] */ JVM_EVENT_TYPE event,
  2115.             /* [in] */ UniqueID event_id) = 0;
  2116.         
  2117.         virtual HRESULT STDMETHODCALLTYPE MethodEntry( 
  2118.             /* [in] */ MethodID method_id,
  2119.             /* [in] */ StackID stack_id) = 0;
  2120.         
  2121.         virtual HRESULT STDMETHODCALLTYPE MethodExit( 
  2122.             /* [in] */ StackID stack_id) = 0;
  2123.         
  2124.         virtual HRESULT STDMETHODCALLTYPE ExecuteByteCode( 
  2125.             /* [in] */ MethodID method_id,
  2126.             /* [in] */ BYTE_CODE __RPC_FAR *pbyte_code,
  2127.             /* [in] */ DWORD byte_code_offset) = 0;
  2128.         
  2129.         virtual HRESULT STDMETHODCALLTYPE ExecuteSourceLine( 
  2130.             /* [in] */ MethodID method_id,
  2131.             /* [in] */ DWORD line_number) = 0;
  2132.         
  2133.     };
  2134.     
  2135. #else     /* C style interface */
  2136.  
  2137.     typedef struct IJavaEventMonitorVtbl
  2138.     {
  2139.         BEGIN_INTERFACE
  2140.         
  2141.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
  2142.             IJavaEventMonitor __RPC_FAR * This,
  2143.             /* [in] */ REFIID riid,
  2144.             /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  2145.         
  2146.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
  2147.             IJavaEventMonitor __RPC_FAR * This);
  2148.         
  2149.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
  2150.             IJavaEventMonitor __RPC_FAR * This);
  2151.         
  2152.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Initialize )( 
  2153.             IJavaEventMonitor __RPC_FAR * This,
  2154.             /* [in] */ LPCSTR pclass_file_name,
  2155.             /* [in] */ IJavaEventMonitorIDInfo __RPC_FAR *pmonitor_info,
  2156.             /* [in] */ DWORD java_flags,
  2157.             /* [out] */ DWORD __RPC_FAR *prequested_events);
  2158.         
  2159.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *NotifyEvent )( 
  2160.             IJavaEventMonitor __RPC_FAR * This,
  2161.             /* [in] */ JVM_EVENT_TYPE event,
  2162.             /* [in] */ UniqueID event_id);
  2163.         
  2164.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *MethodEntry )( 
  2165.             IJavaEventMonitor __RPC_FAR * This,
  2166.             /* [in] */ MethodID method_id,
  2167.             /* [in] */ StackID stack_id);
  2168.         
  2169.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *MethodExit )( 
  2170.             IJavaEventMonitor __RPC_FAR * This,
  2171.             /* [in] */ StackID stack_id);
  2172.         
  2173.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ExecuteByteCode )( 
  2174.             IJavaEventMonitor __RPC_FAR * This,
  2175.             /* [in] */ MethodID method_id,
  2176.             /* [in] */ BYTE_CODE __RPC_FAR *pbyte_code,
  2177.             /* [in] */ DWORD byte_code_offset);
  2178.         
  2179.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ExecuteSourceLine )( 
  2180.             IJavaEventMonitor __RPC_FAR * This,
  2181.             /* [in] */ MethodID method_id,
  2182.             /* [in] */ DWORD line_number);
  2183.         
  2184.         END_INTERFACE
  2185.     } IJavaEventMonitorVtbl;
  2186.  
  2187.     interface IJavaEventMonitor
  2188.     {
  2189.         CONST_VTBL struct IJavaEventMonitorVtbl __RPC_FAR *lpVtbl;
  2190.     };
  2191.  
  2192.     
  2193.  
  2194. #ifdef COBJMACROS
  2195.  
  2196.  
  2197. #define IJavaEventMonitor_QueryInterface(This,riid,ppvObject)    \
  2198.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2199.  
  2200. #define IJavaEventMonitor_AddRef(This)    \
  2201.     (This)->lpVtbl -> AddRef(This)
  2202.  
  2203. #define IJavaEventMonitor_Release(This)    \
  2204.     (This)->lpVtbl -> Release(This)
  2205.  
  2206.  
  2207. #define IJavaEventMonitor_Initialize(This,pclass_file_name,pmonitor_info,java_flags,prequested_events)    \
  2208.     (This)->lpVtbl -> Initialize(This,pclass_file_name,pmonitor_info,java_flags,prequested_events)
  2209.  
  2210. #define IJavaEventMonitor_NotifyEvent(This,event,event_id)    \
  2211.     (This)->lpVtbl -> NotifyEvent(This,event,event_id)
  2212.  
  2213. #define IJavaEventMonitor_MethodEntry(This,method_id,stack_id)    \
  2214.     (This)->lpVtbl -> MethodEntry(This,method_id,stack_id)
  2215.  
  2216. #define IJavaEventMonitor_MethodExit(This,stack_id)    \
  2217.     (This)->lpVtbl -> MethodExit(This,stack_id)
  2218.  
  2219. #define IJavaEventMonitor_ExecuteByteCode(This,method_id,pbyte_code,byte_code_offset)    \
  2220.     (This)->lpVtbl -> ExecuteByteCode(This,method_id,pbyte_code,byte_code_offset)
  2221.  
  2222. #define IJavaEventMonitor_ExecuteSourceLine(This,method_id,line_number)    \
  2223.     (This)->lpVtbl -> ExecuteSourceLine(This,method_id,line_number)
  2224.  
  2225. #endif /* COBJMACROS */
  2226.  
  2227.  
  2228. #endif     /* C style interface */
  2229.  
  2230.  
  2231.  
  2232. HRESULT STDMETHODCALLTYPE IJavaEventMonitor_Initialize_Proxy( 
  2233.     IJavaEventMonitor __RPC_FAR * This,
  2234.     /* [in] */ LPCSTR pclass_file_name,
  2235.     /* [in] */ IJavaEventMonitorIDInfo __RPC_FAR *pmonitor_info,
  2236.     /* [in] */ DWORD java_flags,
  2237.     /* [out] */ DWORD __RPC_FAR *prequested_events);
  2238.  
  2239.  
  2240. void __RPC_STUB IJavaEventMonitor_Initialize_Stub(
  2241.     IRpcStubBuffer *This,
  2242.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2243.     PRPC_MESSAGE _pRpcMessage,
  2244.     DWORD *_pdwStubPhase);
  2245.  
  2246.  
  2247. HRESULT STDMETHODCALLTYPE IJavaEventMonitor_NotifyEvent_Proxy( 
  2248.     IJavaEventMonitor __RPC_FAR * This,
  2249.     /* [in] */ JVM_EVENT_TYPE event,
  2250.     /* [in] */ UniqueID event_id);
  2251.  
  2252.  
  2253. void __RPC_STUB IJavaEventMonitor_NotifyEvent_Stub(
  2254.     IRpcStubBuffer *This,
  2255.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2256.     PRPC_MESSAGE _pRpcMessage,
  2257.     DWORD *_pdwStubPhase);
  2258.  
  2259.  
  2260. HRESULT STDMETHODCALLTYPE IJavaEventMonitor_MethodEntry_Proxy( 
  2261.     IJavaEventMonitor __RPC_FAR * This,
  2262.     /* [in] */ MethodID method_id,
  2263.     /* [in] */ StackID stack_id);
  2264.  
  2265.  
  2266. void __RPC_STUB IJavaEventMonitor_MethodEntry_Stub(
  2267.     IRpcStubBuffer *This,
  2268.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2269.     PRPC_MESSAGE _pRpcMessage,
  2270.     DWORD *_pdwStubPhase);
  2271.  
  2272.  
  2273. HRESULT STDMETHODCALLTYPE IJavaEventMonitor_MethodExit_Proxy( 
  2274.     IJavaEventMonitor __RPC_FAR * This,
  2275.     /* [in] */ StackID stack_id);
  2276.  
  2277.  
  2278. void __RPC_STUB IJavaEventMonitor_MethodExit_Stub(
  2279.     IRpcStubBuffer *This,
  2280.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2281.     PRPC_MESSAGE _pRpcMessage,
  2282.     DWORD *_pdwStubPhase);
  2283.  
  2284.  
  2285. HRESULT STDMETHODCALLTYPE IJavaEventMonitor_ExecuteByteCode_Proxy( 
  2286.     IJavaEventMonitor __RPC_FAR * This,
  2287.     /* [in] */ MethodID method_id,
  2288.     /* [in] */ BYTE_CODE __RPC_FAR *pbyte_code,
  2289.     /* [in] */ DWORD byte_code_offset);
  2290.  
  2291.  
  2292. void __RPC_STUB IJavaEventMonitor_ExecuteByteCode_Stub(
  2293.     IRpcStubBuffer *This,
  2294.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2295.     PRPC_MESSAGE _pRpcMessage,
  2296.     DWORD *_pdwStubPhase);
  2297.  
  2298.  
  2299. HRESULT STDMETHODCALLTYPE IJavaEventMonitor_ExecuteSourceLine_Proxy( 
  2300.     IJavaEventMonitor __RPC_FAR * This,
  2301.     /* [in] */ MethodID method_id,
  2302.     /* [in] */ DWORD line_number);
  2303.  
  2304.  
  2305. void __RPC_STUB IJavaEventMonitor_ExecuteSourceLine_Stub(
  2306.     IRpcStubBuffer *This,
  2307.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2308.     PRPC_MESSAGE _pRpcMessage,
  2309.     DWORD *_pdwStubPhase);
  2310.  
  2311.  
  2312.  
  2313. #endif     /* __IJavaEventMonitor_INTERFACE_DEFINED__ */
  2314.  
  2315.  
  2316. /****************************************
  2317.  * Generated header for interface: __MIDL_itf_jevmon_0082
  2318.  * at Wed Jul 21 09:23:19 1999
  2319.  * using MIDL 3.01.75
  2320.  ****************************************/
  2321. /* [local] */ 
  2322.  
  2323.  
  2324. DEFINE_GUID(IID_IJavaEventMonitor2, 0x20f66f6f, 0x5b32, 0x11d1, 0xa3, 0x89, 0x0, 0xc0, 0x4f, 0xb6, 0x8d, 0xe);
  2325.  
  2326.  
  2327. extern RPC_IF_HANDLE __MIDL_itf_jevmon_0082_v0_0_c_ifspec;
  2328. extern RPC_IF_HANDLE __MIDL_itf_jevmon_0082_v0_0_s_ifspec;
  2329.  
  2330. #ifndef __IJavaEventMonitor2_INTERFACE_DEFINED__
  2331. #define __IJavaEventMonitor2_INTERFACE_DEFINED__
  2332.  
  2333. /****************************************
  2334.  * Generated header for interface: IJavaEventMonitor2
  2335.  * at Wed Jul 21 09:23:19 1999
  2336.  * using MIDL 3.01.75
  2337.  ****************************************/
  2338. /* [unique][helpstring][uuid][object] */ 
  2339.  
  2340.  
  2341.  
  2342. EXTERN_C const IID IID_IJavaEventMonitor2;
  2343.  
  2344. #if defined(__cplusplus) && !defined(CINTERFACE)
  2345.     
  2346.     interface DECLSPEC_UUID("20F66F6F-5B32-11d1-A389-00C04FB68D0E")
  2347.     IJavaEventMonitor2 : public IJavaEventMonitor
  2348.     {
  2349.     public:
  2350.         virtual HRESULT STDMETHODCALLTYPE NotifyEvent2( 
  2351.             /* [in] */ JVM_EVENT_TYPE2 event2,
  2352.             /* [in] */ UniqueID first_event_id,
  2353.             /* [in] */ UniqueID second_event_id) = 0;
  2354.         
  2355.         virtual HRESULT STDMETHODCALLTYPE MethodExit2( 
  2356.             /* [in] */ MethodID method_id,
  2357.             /* [in] */ StackID stack_id) = 0;
  2358.         
  2359.         virtual HRESULT STDMETHODCALLTYPE GetPossibleEventCategories( 
  2360.             /* [out] */ DWORD __RPC_FAR *ppossible_events) = 0;
  2361.         
  2362.     };
  2363.     
  2364. #else     /* C style interface */
  2365.  
  2366.     typedef struct IJavaEventMonitor2Vtbl
  2367.     {
  2368.         BEGIN_INTERFACE
  2369.         
  2370.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
  2371.             IJavaEventMonitor2 __RPC_FAR * This,
  2372.             /* [in] */ REFIID riid,
  2373.             /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  2374.         
  2375.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
  2376.             IJavaEventMonitor2 __RPC_FAR * This);
  2377.         
  2378.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
  2379.             IJavaEventMonitor2 __RPC_FAR * This);
  2380.         
  2381.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Initialize )( 
  2382.             IJavaEventMonitor2 __RPC_FAR * This,
  2383.             /* [in] */ LPCSTR pclass_file_name,
  2384.             /* [in] */ IJavaEventMonitorIDInfo __RPC_FAR *pmonitor_info,
  2385.             /* [in] */ DWORD java_flags,
  2386.             /* [out] */ DWORD __RPC_FAR *prequested_events);
  2387.         
  2388.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *NotifyEvent )( 
  2389.             IJavaEventMonitor2 __RPC_FAR * This,
  2390.             /* [in] */ JVM_EVENT_TYPE event,
  2391.             /* [in] */ UniqueID event_id);
  2392.         
  2393.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *MethodEntry )( 
  2394.             IJavaEventMonitor2 __RPC_FAR * This,
  2395.             /* [in] */ MethodID method_id,
  2396.             /* [in] */ StackID stack_id);
  2397.         
  2398.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *MethodExit )( 
  2399.             IJavaEventMonitor2 __RPC_FAR * This,
  2400.             /* [in] */ StackID stack_id);
  2401.         
  2402.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ExecuteByteCode )( 
  2403.             IJavaEventMonitor2 __RPC_FAR * This,
  2404.             /* [in] */ MethodID method_id,
  2405.             /* [in] */ BYTE_CODE __RPC_FAR *pbyte_code,
  2406.             /* [in] */ DWORD byte_code_offset);
  2407.         
  2408.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ExecuteSourceLine )( 
  2409.             IJavaEventMonitor2 __RPC_FAR * This,
  2410.             /* [in] */ MethodID method_id,
  2411.             /* [in] */ DWORD line_number);
  2412.         
  2413.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *NotifyEvent2 )( 
  2414.             IJavaEventMonitor2 __RPC_FAR * This,
  2415.             /* [in] */ JVM_EVENT_TYPE2 event2,
  2416.             /* [in] */ UniqueID first_event_id,
  2417.             /* [in] */ UniqueID second_event_id);
  2418.         
  2419.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *MethodExit2 )( 
  2420.             IJavaEventMonitor2 __RPC_FAR * This,
  2421.             /* [in] */ MethodID method_id,
  2422.             /* [in] */ StackID stack_id);
  2423.         
  2424.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetPossibleEventCategories )( 
  2425.             IJavaEventMonitor2 __RPC_FAR * This,
  2426.             /* [out] */ DWORD __RPC_FAR *ppossible_events);
  2427.         
  2428.         END_INTERFACE
  2429.     } IJavaEventMonitor2Vtbl;
  2430.  
  2431.     interface IJavaEventMonitor2
  2432.     {
  2433.         CONST_VTBL struct IJavaEventMonitor2Vtbl __RPC_FAR *lpVtbl;
  2434.     };
  2435.  
  2436.     
  2437.  
  2438. #ifdef COBJMACROS
  2439.  
  2440.  
  2441. #define IJavaEventMonitor2_QueryInterface(This,riid,ppvObject)    \
  2442.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2443.  
  2444. #define IJavaEventMonitor2_AddRef(This)    \
  2445.     (This)->lpVtbl -> AddRef(This)
  2446.  
  2447. #define IJavaEventMonitor2_Release(This)    \
  2448.     (This)->lpVtbl -> Release(This)
  2449.  
  2450.  
  2451. #define IJavaEventMonitor2_Initialize(This,pclass_file_name,pmonitor_info,java_flags,prequested_events)    \
  2452.     (This)->lpVtbl -> Initialize(This,pclass_file_name,pmonitor_info,java_flags,prequested_events)
  2453.  
  2454. #define IJavaEventMonitor2_NotifyEvent(This,event,event_id)    \
  2455.     (This)->lpVtbl -> NotifyEvent(This,event,event_id)
  2456.  
  2457. #define IJavaEventMonitor2_MethodEntry(This,method_id,stack_id)    \
  2458.     (This)->lpVtbl -> MethodEntry(This,method_id,stack_id)
  2459.  
  2460. #define IJavaEventMonitor2_MethodExit(This,stack_id)    \
  2461.     (This)->lpVtbl -> MethodExit(This,stack_id)
  2462.  
  2463. #define IJavaEventMonitor2_ExecuteByteCode(This,method_id,pbyte_code,byte_code_offset)    \
  2464.     (This)->lpVtbl -> ExecuteByteCode(This,method_id,pbyte_code,byte_code_offset)
  2465.  
  2466. #define IJavaEventMonitor2_ExecuteSourceLine(This,method_id,line_number)    \
  2467.     (This)->lpVtbl -> ExecuteSourceLine(This,method_id,line_number)
  2468.  
  2469.  
  2470. #define IJavaEventMonitor2_NotifyEvent2(This,event2,first_event_id,second_event_id)    \
  2471.     (This)->lpVtbl -> NotifyEvent2(This,event2,first_event_id,second_event_id)
  2472.  
  2473. #define IJavaEventMonitor2_MethodExit2(This,method_id,stack_id)    \
  2474.     (This)->lpVtbl -> MethodExit2(This,method_id,stack_id)
  2475.  
  2476. #define IJavaEventMonitor2_GetPossibleEventCategories(This,ppossible_events)    \
  2477.     (This)->lpVtbl -> GetPossibleEventCategories(This,ppossible_events)
  2478.  
  2479. #endif /* COBJMACROS */
  2480.  
  2481.  
  2482. #endif     /* C style interface */
  2483.  
  2484.  
  2485.  
  2486. HRESULT STDMETHODCALLTYPE IJavaEventMonitor2_NotifyEvent2_Proxy( 
  2487.     IJavaEventMonitor2 __RPC_FAR * This,
  2488.     /* [in] */ JVM_EVENT_TYPE2 event2,
  2489.     /* [in] */ UniqueID first_event_id,
  2490.     /* [in] */ UniqueID second_event_id);
  2491.  
  2492.  
  2493. void __RPC_STUB IJavaEventMonitor2_NotifyEvent2_Stub(
  2494.     IRpcStubBuffer *This,
  2495.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2496.     PRPC_MESSAGE _pRpcMessage,
  2497.     DWORD *_pdwStubPhase);
  2498.  
  2499.  
  2500. HRESULT STDMETHODCALLTYPE IJavaEventMonitor2_MethodExit2_Proxy( 
  2501.     IJavaEventMonitor2 __RPC_FAR * This,
  2502.     /* [in] */ MethodID method_id,
  2503.     /* [in] */ StackID stack_id);
  2504.  
  2505.  
  2506. void __RPC_STUB IJavaEventMonitor2_MethodExit2_Stub(
  2507.     IRpcStubBuffer *This,
  2508.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2509.     PRPC_MESSAGE _pRpcMessage,
  2510.     DWORD *_pdwStubPhase);
  2511.  
  2512.  
  2513. HRESULT STDMETHODCALLTYPE IJavaEventMonitor2_GetPossibleEventCategories_Proxy( 
  2514.     IJavaEventMonitor2 __RPC_FAR * This,
  2515.     /* [out] */ DWORD __RPC_FAR *ppossible_events);
  2516.  
  2517.  
  2518. void __RPC_STUB IJavaEventMonitor2_GetPossibleEventCategories_Stub(
  2519.     IRpcStubBuffer *This,
  2520.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2521.     PRPC_MESSAGE _pRpcMessage,
  2522.     DWORD *_pdwStubPhase);
  2523.  
  2524.  
  2525.  
  2526. #endif     /* __IJavaEventMonitor2_INTERFACE_DEFINED__ */
  2527.  
  2528.  
  2529. /****************************************
  2530.  * Generated header for interface: __MIDL_itf_jevmon_0083
  2531.  * at Wed Jul 21 09:23:19 1999
  2532.  * using MIDL 3.01.75
  2533.  ****************************************/
  2534. /* [local] */ 
  2535.  
  2536.  
  2537. typedef 
  2538. enum container_type
  2539.     {    C_FIRST    = 0,
  2540.     C_BEGIN    = C_FIRST + 1,
  2541.     C_RT_THREAD    = C_BEGIN + 1,
  2542.     C_RT_JIT    = C_RT_THREAD + 1,
  2543.     C_RT_NATIVE    = C_RT_JIT + 1,
  2544.     C_RT_NATIVEGC    = C_RT_NATIVE + 1,
  2545.     C_RT_COM    = C_RT_NATIVEGC + 1,
  2546.     C_RT_INTERPRETED    = C_RT_COM + 1,
  2547.     C_RT_FASTINTERPRETED    = C_RT_INTERPRETED + 1,
  2548.     C_RT_INTERNALFRAME    = C_RT_FASTINTERPRETED + 1,
  2549.     C_RT_INTERNALVM    = C_RT_INTERNALFRAME + 1,
  2550.     C_RT_CLASS    = C_RT_INTERNALVM + 1,
  2551.     C_RT_ROOTTABLE    = C_RT_CLASS + 1,
  2552.     C_RT_STRONGPTR    = C_RT_ROOTTABLE + 1,
  2553.     C_FINALIZED    = C_RT_STRONGPTR + 1,
  2554.     C_HEAP    = C_FINALIZED + 1,
  2555.     C_END    = C_HEAP + 1,
  2556.     C_LAST    = C_END + 1
  2557.     }    CONTAINER_TYPE;
  2558.  
  2559. DEFINE_GUID(IID_IHeapInfoCallback, 0x81a26182, 0x439f, 0x11d1, 0xb1, 0x4a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0);
  2560.  
  2561.  
  2562. extern RPC_IF_HANDLE __MIDL_itf_jevmon_0083_v0_0_c_ifspec;
  2563. extern RPC_IF_HANDLE __MIDL_itf_jevmon_0083_v0_0_s_ifspec;
  2564.  
  2565. #ifndef __IHeapInfoCallback_INTERFACE_DEFINED__
  2566. #define __IHeapInfoCallback_INTERFACE_DEFINED__
  2567.  
  2568. /****************************************
  2569.  * Generated header for interface: IHeapInfoCallback
  2570.  * at Wed Jul 21 09:23:19 1999
  2571.  * using MIDL 3.01.75
  2572.  ****************************************/
  2573. /* [unique][helpstring][uuid][object] */ 
  2574.  
  2575.  
  2576.  
  2577. EXTERN_C const IID IID_IHeapInfoCallback;
  2578.  
  2579. #if defined(__cplusplus) && !defined(CINTERFACE)
  2580.     
  2581.     interface DECLSPEC_UUID("81A26182-439F-11d1-B14A-000000000000")
  2582.     IHeapInfoCallback : public IUnknown
  2583.     {
  2584.     public:
  2585.         virtual HRESULT STDMETHODCALLTYPE BeginContainer( 
  2586.             /* [in] */ CONTAINER_TYPE type,
  2587.             /* [in] */ UniqueID id1,
  2588.             /* [in] */ UniqueID id2) = 0;
  2589.         
  2590.         virtual HRESULT STDMETHODCALLTYPE RootReferences( 
  2591.             /* [in] */ const ObjectID __RPC_FAR *prefs,
  2592.             /* [in] */ unsigned int nrefs,
  2593.             /* [in] */ const DWORD __RPC_FAR *pflags) = 0;
  2594.         
  2595.         virtual HRESULT STDMETHODCALLTYPE ObjectReferences( 
  2596.             /* [in] */ ObjectID id,
  2597.             /* [in] */ DWORD flags,
  2598.             /* [in] */ const ObjectID __RPC_FAR *prefs,
  2599.             /* [in] */ unsigned int nrefs,
  2600.             /* [in] */ const DWORD __RPC_FAR *pflags) = 0;
  2601.         
  2602.     };
  2603.     
  2604. #else     /* C style interface */
  2605.  
  2606.     typedef struct IHeapInfoCallbackVtbl
  2607.     {
  2608.         BEGIN_INTERFACE
  2609.         
  2610.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
  2611.             IHeapInfoCallback __RPC_FAR * This,
  2612.             /* [in] */ REFIID riid,
  2613.             /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  2614.         
  2615.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
  2616.             IHeapInfoCallback __RPC_FAR * This);
  2617.         
  2618.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
  2619.             IHeapInfoCallback __RPC_FAR * This);
  2620.         
  2621.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *BeginContainer )( 
  2622.             IHeapInfoCallback __RPC_FAR * This,
  2623.             /* [in] */ CONTAINER_TYPE type,
  2624.             /* [in] */ UniqueID id1,
  2625.             /* [in] */ UniqueID id2);
  2626.         
  2627.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *RootReferences )( 
  2628.             IHeapInfoCallback __RPC_FAR * This,
  2629.             /* [in] */ const ObjectID __RPC_FAR *prefs,
  2630.             /* [in] */ unsigned int nrefs,
  2631.             /* [in] */ const DWORD __RPC_FAR *pflags);
  2632.         
  2633.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ObjectReferences )( 
  2634.             IHeapInfoCallback __RPC_FAR * This,
  2635.             /* [in] */ ObjectID id,
  2636.             /* [in] */ DWORD flags,
  2637.             /* [in] */ const ObjectID __RPC_FAR *prefs,
  2638.             /* [in] */ unsigned int nrefs,
  2639.             /* [in] */ const DWORD __RPC_FAR *pflags);
  2640.         
  2641.         END_INTERFACE
  2642.     } IHeapInfoCallbackVtbl;
  2643.  
  2644.     interface IHeapInfoCallback
  2645.     {
  2646.         CONST_VTBL struct IHeapInfoCallbackVtbl __RPC_FAR *lpVtbl;
  2647.     };
  2648.  
  2649.     
  2650.  
  2651. #ifdef COBJMACROS
  2652.  
  2653.  
  2654. #define IHeapInfoCallback_QueryInterface(This,riid,ppvObject)    \
  2655.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2656.  
  2657. #define IHeapInfoCallback_AddRef(This)    \
  2658.     (This)->lpVtbl -> AddRef(This)
  2659.  
  2660. #define IHeapInfoCallback_Release(This)    \
  2661.     (This)->lpVtbl -> Release(This)
  2662.  
  2663.  
  2664. #define IHeapInfoCallback_BeginContainer(This,type,id1,id2)    \
  2665.     (This)->lpVtbl -> BeginContainer(This,type,id1,id2)
  2666.  
  2667. #define IHeapInfoCallback_RootReferences(This,prefs,nrefs,pflags)    \
  2668.     (This)->lpVtbl -> RootReferences(This,prefs,nrefs,pflags)
  2669.  
  2670. #define IHeapInfoCallback_ObjectReferences(This,id,flags,prefs,nrefs,pflags)    \
  2671.     (This)->lpVtbl -> ObjectReferences(This,id,flags,prefs,nrefs,pflags)
  2672.  
  2673. #endif /* COBJMACROS */
  2674.  
  2675.  
  2676. #endif     /* C style interface */
  2677.  
  2678.  
  2679.  
  2680. HRESULT STDMETHODCALLTYPE IHeapInfoCallback_BeginContainer_Proxy( 
  2681.     IHeapInfoCallback __RPC_FAR * This,
  2682.     /* [in] */ CONTAINER_TYPE type,
  2683.     /* [in] */ UniqueID id1,
  2684.     /* [in] */ UniqueID id2);
  2685.  
  2686.  
  2687. void __RPC_STUB IHeapInfoCallback_BeginContainer_Stub(
  2688.     IRpcStubBuffer *This,
  2689.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2690.     PRPC_MESSAGE _pRpcMessage,
  2691.     DWORD *_pdwStubPhase);
  2692.  
  2693.  
  2694. HRESULT STDMETHODCALLTYPE IHeapInfoCallback_RootReferences_Proxy( 
  2695.     IHeapInfoCallback __RPC_FAR * This,
  2696.     /* [in] */ const ObjectID __RPC_FAR *prefs,
  2697.     /* [in] */ unsigned int nrefs,
  2698.     /* [in] */ const DWORD __RPC_FAR *pflags);
  2699.  
  2700.  
  2701. void __RPC_STUB IHeapInfoCallback_RootReferences_Stub(
  2702.     IRpcStubBuffer *This,
  2703.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2704.     PRPC_MESSAGE _pRpcMessage,
  2705.     DWORD *_pdwStubPhase);
  2706.  
  2707.  
  2708. HRESULT STDMETHODCALLTYPE IHeapInfoCallback_ObjectReferences_Proxy( 
  2709.     IHeapInfoCallback __RPC_FAR * This,
  2710.     /* [in] */ ObjectID id,
  2711.     /* [in] */ DWORD flags,
  2712.     /* [in] */ const ObjectID __RPC_FAR *prefs,
  2713.     /* [in] */ unsigned int nrefs,
  2714.     /* [in] */ const DWORD __RPC_FAR *pflags);
  2715.  
  2716.  
  2717. void __RPC_STUB IHeapInfoCallback_ObjectReferences_Stub(
  2718.     IRpcStubBuffer *This,
  2719.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2720.     PRPC_MESSAGE _pRpcMessage,
  2721.     DWORD *_pdwStubPhase);
  2722.  
  2723.  
  2724.  
  2725. #endif     /* __IHeapInfoCallback_INTERFACE_DEFINED__ */
  2726.  
  2727.  
  2728. /****************************************
  2729.  * Generated header for interface: __MIDL_itf_jevmon_0084
  2730.  * at Wed Jul 21 09:23:19 1999
  2731.  * using MIDL 3.01.75
  2732.  ****************************************/
  2733. /* [local] */ 
  2734.  
  2735.  
  2736. static const int S_POSTPONE_REFERENCES   = MAKE_HRESULT(0, FACILITY_ITF, 0x01);
  2737. DEFINE_GUID(IID_IObjectAllocationCallback, 0x76514ea2, 0x33f4, 0x11d1, 0xa4, 0xa3, 0x0, 0xa0, 0xc9, 0xa, 0xeb, 0x5d);
  2738.  
  2739.  
  2740. extern RPC_IF_HANDLE __MIDL_itf_jevmon_0084_v0_0_c_ifspec;
  2741. extern RPC_IF_HANDLE __MIDL_itf_jevmon_0084_v0_0_s_ifspec;
  2742.  
  2743. #ifndef __IObjectAllocationCallback_INTERFACE_DEFINED__
  2744. #define __IObjectAllocationCallback_INTERFACE_DEFINED__
  2745.  
  2746. /****************************************
  2747.  * Generated header for interface: IObjectAllocationCallback
  2748.  * at Wed Jul 21 09:23:19 1999
  2749.  * using MIDL 3.01.75
  2750.  ****************************************/
  2751. /* [unique][helpstring][uuid][object] */ 
  2752.  
  2753.  
  2754.  
  2755. EXTERN_C const IID IID_IObjectAllocationCallback;
  2756.  
  2757. #if defined(__cplusplus) && !defined(CINTERFACE)
  2758.     
  2759.     interface DECLSPEC_UUID("76514EA2-33F4-11d1-A4A3-00A0C90AEB5D")
  2760.     IObjectAllocationCallback : public IUnknown
  2761.     {
  2762.     public:
  2763.         virtual HRESULT STDMETHODCALLTYPE OnObjectAllocated( 
  2764.             /* [in] */ ObjectID oid,
  2765.             /* [in] */ ClassID type) = 0;
  2766.         
  2767.     };
  2768.     
  2769. #else     /* C style interface */
  2770.  
  2771.     typedef struct IObjectAllocationCallbackVtbl
  2772.     {
  2773.         BEGIN_INTERFACE
  2774.         
  2775.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
  2776.             IObjectAllocationCallback __RPC_FAR * This,
  2777.             /* [in] */ REFIID riid,
  2778.             /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  2779.         
  2780.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
  2781.             IObjectAllocationCallback __RPC_FAR * This);
  2782.         
  2783.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
  2784.             IObjectAllocationCallback __RPC_FAR * This);
  2785.         
  2786.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *OnObjectAllocated )( 
  2787.             IObjectAllocationCallback __RPC_FAR * This,
  2788.             /* [in] */ ObjectID oid,
  2789.             /* [in] */ ClassID type);
  2790.         
  2791.         END_INTERFACE
  2792.     } IObjectAllocationCallbackVtbl;
  2793.  
  2794.     interface IObjectAllocationCallback
  2795.     {
  2796.         CONST_VTBL struct IObjectAllocationCallbackVtbl __RPC_FAR *lpVtbl;
  2797.     };
  2798.  
  2799.     
  2800.  
  2801. #ifdef COBJMACROS
  2802.  
  2803.  
  2804. #define IObjectAllocationCallback_QueryInterface(This,riid,ppvObject)    \
  2805.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2806.  
  2807. #define IObjectAllocationCallback_AddRef(This)    \
  2808.     (This)->lpVtbl -> AddRef(This)
  2809.  
  2810. #define IObjectAllocationCallback_Release(This)    \
  2811.     (This)->lpVtbl -> Release(This)
  2812.  
  2813.  
  2814. #define IObjectAllocationCallback_OnObjectAllocated(This,oid,type)    \
  2815.     (This)->lpVtbl -> OnObjectAllocated(This,oid,type)
  2816.  
  2817. #endif /* COBJMACROS */
  2818.  
  2819.  
  2820. #endif     /* C style interface */
  2821.  
  2822.  
  2823.  
  2824. HRESULT STDMETHODCALLTYPE IObjectAllocationCallback_OnObjectAllocated_Proxy( 
  2825.     IObjectAllocationCallback __RPC_FAR * This,
  2826.     /* [in] */ ObjectID oid,
  2827.     /* [in] */ ClassID type);
  2828.  
  2829.  
  2830. void __RPC_STUB IObjectAllocationCallback_OnObjectAllocated_Stub(
  2831.     IRpcStubBuffer *This,
  2832.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2833.     PRPC_MESSAGE _pRpcMessage,
  2834.     DWORD *_pdwStubPhase);
  2835.  
  2836.  
  2837.  
  2838. #endif     /* __IObjectAllocationCallback_INTERFACE_DEFINED__ */
  2839.  
  2840.  
  2841. /****************************************
  2842.  * Generated header for interface: __MIDL_itf_jevmon_0085
  2843.  * at Wed Jul 21 09:23:19 1999
  2844.  * using MIDL 3.01.75
  2845.  ****************************************/
  2846. /* [local] */ 
  2847.  
  2848.  
  2849. typedef 
  2850. enum tagJVM_HEAPMON_CAPABILITIES
  2851.     {    JVM_HEAPMON_OBJECT_AGE    = 0x1,
  2852.     ALL_JVM_HEAPMON_CAPABILITIES    = JVM_HEAPMON_OBJECT_AGE
  2853.     }    JVM_HEAPMON_CAPABILITIES;
  2854.  
  2855. DEFINE_GUID(IID_IJavaHeapMonitor, 0x81a26183, 0x439f, 0x11d1, 0xb1, 0x4a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0);
  2856.  
  2857.  
  2858. extern RPC_IF_HANDLE __MIDL_itf_jevmon_0085_v0_0_c_ifspec;
  2859. extern RPC_IF_HANDLE __MIDL_itf_jevmon_0085_v0_0_s_ifspec;
  2860.  
  2861. #ifndef __IJavaHeapMonitor_INTERFACE_DEFINED__
  2862. #define __IJavaHeapMonitor_INTERFACE_DEFINED__
  2863.  
  2864. /****************************************
  2865.  * Generated header for interface: IJavaHeapMonitor
  2866.  * at Wed Jul 21 09:23:19 1999
  2867.  * using MIDL 3.01.75
  2868.  ****************************************/
  2869. /* [unique][helpstring][uuid][object] */ 
  2870.  
  2871.  
  2872.  
  2873. EXTERN_C const IID IID_IJavaHeapMonitor;
  2874.  
  2875. #if defined(__cplusplus) && !defined(CINTERFACE)
  2876.     
  2877.     interface DECLSPEC_UUID("81A26183-439F-11d1-B14A-000000000000")
  2878.     IJavaHeapMonitor : public IUnknown
  2879.     {
  2880.     public:
  2881.         virtual HRESULT STDMETHODCALLTYPE GetHeapInfo( 
  2882.             /* [in] */ IHeapInfoCallback __RPC_FAR *pihicb) = 0;
  2883.         
  2884.         virtual HRESULT STDMETHODCALLTYPE NotifyOnObjectAllocations( 
  2885.             /* [in] */ IObjectAllocationCallback __RPC_FAR *pioacb) = 0;
  2886.         
  2887.         virtual HRESULT STDMETHODCALLTYPE GetContainerDescription( 
  2888.             /* [in] */ CONTAINER_TYPE type,
  2889.             /* [out] */ LPWSTR __RPC_FAR *pshort,
  2890.             /* [out] */ LPWSTR __RPC_FAR *plong) = 0;
  2891.         
  2892.         virtual HRESULT STDMETHODCALLTYPE ModifyHeapMonitorCapabilities( 
  2893.             /* [in] */ DWORD capabilities,
  2894.             /* [in] */ BOOL fenable,
  2895.             /* [out] */ DWORD __RPC_FAR *penabled_capabilities) = 0;
  2896.         
  2897.         virtual HRESULT STDMETHODCALLTYPE GetObjectAge( 
  2898.             /* [in] */ ObjectID object_id,
  2899.             /* [out] */ DWORD __RPC_FAR *pncollections_survived) = 0;
  2900.         
  2901.     };
  2902.     
  2903. #else     /* C style interface */
  2904.  
  2905.     typedef struct IJavaHeapMonitorVtbl
  2906.     {
  2907.         BEGIN_INTERFACE
  2908.         
  2909.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
  2910.             IJavaHeapMonitor __RPC_FAR * This,
  2911.             /* [in] */ REFIID riid,
  2912.             /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  2913.         
  2914.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
  2915.             IJavaHeapMonitor __RPC_FAR * This);
  2916.         
  2917.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
  2918.             IJavaHeapMonitor __RPC_FAR * This);
  2919.         
  2920.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetHeapInfo )( 
  2921.             IJavaHeapMonitor __RPC_FAR * This,
  2922.             /* [in] */ IHeapInfoCallback __RPC_FAR *pihicb);
  2923.         
  2924.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *NotifyOnObjectAllocations )( 
  2925.             IJavaHeapMonitor __RPC_FAR * This,
  2926.             /* [in] */ IObjectAllocationCallback __RPC_FAR *pioacb);
  2927.         
  2928.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetContainerDescription )( 
  2929.             IJavaHeapMonitor __RPC_FAR * This,
  2930.             /* [in] */ CONTAINER_TYPE type,
  2931.             /* [out] */ LPWSTR __RPC_FAR *pshort,
  2932.             /* [out] */ LPWSTR __RPC_FAR *plong);
  2933.         
  2934.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ModifyHeapMonitorCapabilities )( 
  2935.             IJavaHeapMonitor __RPC_FAR * This,
  2936.             /* [in] */ DWORD capabilities,
  2937.             /* [in] */ BOOL fenable,
  2938.             /* [out] */ DWORD __RPC_FAR *penabled_capabilities);
  2939.         
  2940.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetObjectAge )( 
  2941.             IJavaHeapMonitor __RPC_FAR * This,
  2942.             /* [in] */ ObjectID object_id,
  2943.             /* [out] */ DWORD __RPC_FAR *pncollections_survived);
  2944.         
  2945.         END_INTERFACE
  2946.     } IJavaHeapMonitorVtbl;
  2947.  
  2948.     interface IJavaHeapMonitor
  2949.     {
  2950.         CONST_VTBL struct IJavaHeapMonitorVtbl __RPC_FAR *lpVtbl;
  2951.     };
  2952.  
  2953.     
  2954.  
  2955. #ifdef COBJMACROS
  2956.  
  2957.  
  2958. #define IJavaHeapMonitor_QueryInterface(This,riid,ppvObject)    \
  2959.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2960.  
  2961. #define IJavaHeapMonitor_AddRef(This)    \
  2962.     (This)->lpVtbl -> AddRef(This)
  2963.  
  2964. #define IJavaHeapMonitor_Release(This)    \
  2965.     (This)->lpVtbl -> Release(This)
  2966.  
  2967.  
  2968. #define IJavaHeapMonitor_GetHeapInfo(This,pihicb)    \
  2969.     (This)->lpVtbl -> GetHeapInfo(This,pihicb)
  2970.  
  2971. #define IJavaHeapMonitor_NotifyOnObjectAllocations(This,pioacb)    \
  2972.     (This)->lpVtbl -> NotifyOnObjectAllocations(This,pioacb)
  2973.  
  2974. #define IJavaHeapMonitor_GetContainerDescription(This,type,pshort,plong)    \
  2975.     (This)->lpVtbl -> GetContainerDescription(This,type,pshort,plong)
  2976.  
  2977. #define IJavaHeapMonitor_ModifyHeapMonitorCapabilities(This,capabilities,fenable,penabled_capabilities)    \
  2978.     (This)->lpVtbl -> ModifyHeapMonitorCapabilities(This,capabilities,fenable,penabled_capabilities)
  2979.  
  2980. #define IJavaHeapMonitor_GetObjectAge(This,object_id,pncollections_survived)    \
  2981.     (This)->lpVtbl -> GetObjectAge(This,object_id,pncollections_survived)
  2982.  
  2983. #endif /* COBJMACROS */
  2984.  
  2985.  
  2986. #endif     /* C style interface */
  2987.  
  2988.  
  2989.  
  2990. HRESULT STDMETHODCALLTYPE IJavaHeapMonitor_GetHeapInfo_Proxy( 
  2991.     IJavaHeapMonitor __RPC_FAR * This,
  2992.     /* [in] */ IHeapInfoCallback __RPC_FAR *pihicb);
  2993.  
  2994.  
  2995. void __RPC_STUB IJavaHeapMonitor_GetHeapInfo_Stub(
  2996.     IRpcStubBuffer *This,
  2997.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2998.     PRPC_MESSAGE _pRpcMessage,
  2999.     DWORD *_pdwStubPhase);
  3000.  
  3001.  
  3002. HRESULT STDMETHODCALLTYPE IJavaHeapMonitor_NotifyOnObjectAllocations_Proxy( 
  3003.     IJavaHeapMonitor __RPC_FAR * This,
  3004.     /* [in] */ IObjectAllocationCallback __RPC_FAR *pioacb);
  3005.  
  3006.  
  3007. void __RPC_STUB IJavaHeapMonitor_NotifyOnObjectAllocations_Stub(
  3008.     IRpcStubBuffer *This,
  3009.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3010.     PRPC_MESSAGE _pRpcMessage,
  3011.     DWORD *_pdwStubPhase);
  3012.  
  3013.  
  3014. HRESULT STDMETHODCALLTYPE IJavaHeapMonitor_GetContainerDescription_Proxy( 
  3015.     IJavaHeapMonitor __RPC_FAR * This,
  3016.     /* [in] */ CONTAINER_TYPE type,
  3017.     /* [out] */ LPWSTR __RPC_FAR *pshort,
  3018.     /* [out] */ LPWSTR __RPC_FAR *plong);
  3019.  
  3020.  
  3021. void __RPC_STUB IJavaHeapMonitor_GetContainerDescription_Stub(
  3022.     IRpcStubBuffer *This,
  3023.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3024.     PRPC_MESSAGE _pRpcMessage,
  3025.     DWORD *_pdwStubPhase);
  3026.  
  3027.  
  3028. HRESULT STDMETHODCALLTYPE IJavaHeapMonitor_ModifyHeapMonitorCapabilities_Proxy( 
  3029.     IJavaHeapMonitor __RPC_FAR * This,
  3030.     /* [in] */ DWORD capabilities,
  3031.     /* [in] */ BOOL fenable,
  3032.     /* [out] */ DWORD __RPC_FAR *penabled_capabilities);
  3033.  
  3034.  
  3035. void __RPC_STUB IJavaHeapMonitor_ModifyHeapMonitorCapabilities_Stub(
  3036.     IRpcStubBuffer *This,
  3037.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3038.     PRPC_MESSAGE _pRpcMessage,
  3039.     DWORD *_pdwStubPhase);
  3040.  
  3041.  
  3042. HRESULT STDMETHODCALLTYPE IJavaHeapMonitor_GetObjectAge_Proxy( 
  3043.     IJavaHeapMonitor __RPC_FAR * This,
  3044.     /* [in] */ ObjectID object_id,
  3045.     /* [out] */ DWORD __RPC_FAR *pncollections_survived);
  3046.  
  3047.  
  3048. void __RPC_STUB IJavaHeapMonitor_GetObjectAge_Stub(
  3049.     IRpcStubBuffer *This,
  3050.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3051.     PRPC_MESSAGE _pRpcMessage,
  3052.     DWORD *_pdwStubPhase);
  3053.  
  3054.  
  3055.  
  3056. #endif     /* __IJavaHeapMonitor_INTERFACE_DEFINED__ */
  3057.  
  3058.  
  3059. /****************************************
  3060.  * Generated header for interface: __MIDL_itf_jevmon_0086
  3061.  * at Wed Jul 21 09:23:19 1999
  3062.  * using MIDL 3.01.75
  3063.  ****************************************/
  3064. /* [local] */ 
  3065.  
  3066.  
  3067. typedef 
  3068. enum tagJVM_WALKHEAP_FLAGS
  3069.     {    JVM_WALKHEAP_NO_ROOTS    = 0x1
  3070.     }    JVM_WALKHEAP_FLAGS;
  3071.  
  3072. DEFINE_GUID(IID_IJavaHeapMonitor2, 0x86e81530, 0x5dd8, 0x11d2, 0xb0, 0x67, 0x0, 0x60, 0x8, 0x3, 0x9b, 0xf0);
  3073.  
  3074.  
  3075. extern RPC_IF_HANDLE __MIDL_itf_jevmon_0086_v0_0_c_ifspec;
  3076. extern RPC_IF_HANDLE __MIDL_itf_jevmon_0086_v0_0_s_ifspec;
  3077.  
  3078. #ifndef __IJavaHeapMonitor2_INTERFACE_DEFINED__
  3079. #define __IJavaHeapMonitor2_INTERFACE_DEFINED__
  3080.  
  3081. /****************************************
  3082.  * Generated header for interface: IJavaHeapMonitor2
  3083.  * at Wed Jul 21 09:23:19 1999
  3084.  * using MIDL 3.01.75
  3085.  ****************************************/
  3086. /* [unique][helpstring][uuid][object] */ 
  3087.  
  3088.  
  3089.  
  3090. EXTERN_C const IID IID_IJavaHeapMonitor2;
  3091.  
  3092. #if defined(__cplusplus) && !defined(CINTERFACE)
  3093.     
  3094.     interface DECLSPEC_UUID("86E81530-5DD8-11d2-B067-006008039BF0")
  3095.     IJavaHeapMonitor2 : public IJavaHeapMonitor
  3096.     {
  3097.     public:
  3098.         virtual HRESULT STDMETHODCALLTYPE WalkHeap( 
  3099.             /* [in] */ IHeapInfoCallback __RPC_FAR *pihicb,
  3100.             /* [in] */ DWORD flags) = 0;
  3101.         
  3102.     };
  3103.     
  3104. #else     /* C style interface */
  3105.  
  3106.     typedef struct IJavaHeapMonitor2Vtbl
  3107.     {
  3108.         BEGIN_INTERFACE
  3109.         
  3110.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
  3111.             IJavaHeapMonitor2 __RPC_FAR * This,
  3112.             /* [in] */ REFIID riid,
  3113.             /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  3114.         
  3115.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
  3116.             IJavaHeapMonitor2 __RPC_FAR * This);
  3117.         
  3118.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
  3119.             IJavaHeapMonitor2 __RPC_FAR * This);
  3120.         
  3121.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetHeapInfo )( 
  3122.             IJavaHeapMonitor2 __RPC_FAR * This,
  3123.             /* [in] */ IHeapInfoCallback __RPC_FAR *pihicb);
  3124.         
  3125.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *NotifyOnObjectAllocations )( 
  3126.             IJavaHeapMonitor2 __RPC_FAR * This,
  3127.             /* [in] */ IObjectAllocationCallback __RPC_FAR *pioacb);
  3128.         
  3129.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetContainerDescription )( 
  3130.             IJavaHeapMonitor2 __RPC_FAR * This,
  3131.             /* [in] */ CONTAINER_TYPE type,
  3132.             /* [out] */ LPWSTR __RPC_FAR *pshort,
  3133.             /* [out] */ LPWSTR __RPC_FAR *plong);
  3134.         
  3135.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ModifyHeapMonitorCapabilities )( 
  3136.             IJavaHeapMonitor2 __RPC_FAR * This,
  3137.             /* [in] */ DWORD capabilities,
  3138.             /* [in] */ BOOL fenable,
  3139.             /* [out] */ DWORD __RPC_FAR *penabled_capabilities);
  3140.         
  3141.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetObjectAge )( 
  3142.             IJavaHeapMonitor2 __RPC_FAR * This,
  3143.             /* [in] */ ObjectID object_id,
  3144.             /* [out] */ DWORD __RPC_FAR *pncollections_survived);
  3145.         
  3146.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *WalkHeap )( 
  3147.             IJavaHeapMonitor2 __RPC_FAR * This,
  3148.             /* [in] */ IHeapInfoCallback __RPC_FAR *pihicb,
  3149.             /* [in] */ DWORD flags);
  3150.         
  3151.         END_INTERFACE
  3152.     } IJavaHeapMonitor2Vtbl;
  3153.  
  3154.     interface IJavaHeapMonitor2
  3155.     {
  3156.         CONST_VTBL struct IJavaHeapMonitor2Vtbl __RPC_FAR *lpVtbl;
  3157.     };
  3158.  
  3159.     
  3160.  
  3161. #ifdef COBJMACROS
  3162.  
  3163.  
  3164. #define IJavaHeapMonitor2_QueryInterface(This,riid,ppvObject)    \
  3165.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  3166.  
  3167. #define IJavaHeapMonitor2_AddRef(This)    \
  3168.     (This)->lpVtbl -> AddRef(This)
  3169.  
  3170. #define IJavaHeapMonitor2_Release(This)    \
  3171.     (This)->lpVtbl -> Release(This)
  3172.  
  3173.  
  3174. #define IJavaHeapMonitor2_GetHeapInfo(This,pihicb)    \
  3175.     (This)->lpVtbl -> GetHeapInfo(This,pihicb)
  3176.  
  3177. #define IJavaHeapMonitor2_NotifyOnObjectAllocations(This,pioacb)    \
  3178.     (This)->lpVtbl -> NotifyOnObjectAllocations(This,pioacb)
  3179.  
  3180. #define IJavaHeapMonitor2_GetContainerDescription(This,type,pshort,plong)    \
  3181.     (This)->lpVtbl -> GetContainerDescription(This,type,pshort,plong)
  3182.  
  3183. #define IJavaHeapMonitor2_ModifyHeapMonitorCapabilities(This,capabilities,fenable,penabled_capabilities)    \
  3184.     (This)->lpVtbl -> ModifyHeapMonitorCapabilities(This,capabilities,fenable,penabled_capabilities)
  3185.  
  3186. #define IJavaHeapMonitor2_GetObjectAge(This,object_id,pncollections_survived)    \
  3187.     (This)->lpVtbl -> GetObjectAge(This,object_id,pncollections_survived)
  3188.  
  3189.  
  3190. #define IJavaHeapMonitor2_WalkHeap(This,pihicb,flags)    \
  3191.     (This)->lpVtbl -> WalkHeap(This,pihicb,flags)
  3192.  
  3193. #endif /* COBJMACROS */
  3194.  
  3195.  
  3196. #endif     /* C style interface */
  3197.  
  3198.  
  3199.  
  3200. HRESULT STDMETHODCALLTYPE IJavaHeapMonitor2_WalkHeap_Proxy( 
  3201.     IJavaHeapMonitor2 __RPC_FAR * This,
  3202.     /* [in] */ IHeapInfoCallback __RPC_FAR *pihicb,
  3203.     /* [in] */ DWORD flags);
  3204.  
  3205.  
  3206. void __RPC_STUB IJavaHeapMonitor2_WalkHeap_Stub(
  3207.     IRpcStubBuffer *This,
  3208.     IRpcChannelBuffer *_pRpcChannelBuffer,
  3209.     PRPC_MESSAGE _pRpcMessage,
  3210.     DWORD *_pdwStubPhase);
  3211.  
  3212.  
  3213.  
  3214. #endif     /* __IJavaHeapMonitor2_INTERFACE_DEFINED__ */
  3215.  
  3216.  
  3217. /****************************************
  3218.  * Generated header for interface: __MIDL_itf_jevmon_0087
  3219.  * at Wed Jul 21 09:23:19 1999
  3220.  * using MIDL 3.01.75
  3221.  ****************************************/
  3222. /* [local] */ 
  3223.  
  3224.  
  3225.  
  3226. #endif   // __JEVMON_H__
  3227.  
  3228.  
  3229.  
  3230. extern RPC_IF_HANDLE __MIDL_itf_jevmon_0087_v0_0_c_ifspec;
  3231. extern RPC_IF_HANDLE __MIDL_itf_jevmon_0087_v0_0_s_ifspec;
  3232.  
  3233. /* Additional Prototypes for ALL interfaces */
  3234.  
  3235. /* end of Additional Prototypes */
  3236.  
  3237. #ifdef __cplusplus
  3238. }
  3239. #endif
  3240.  
  3241. #endif
  3242.