home *** CD-ROM | disk | FTP | other *** search
Text File | 2000-05-04 | 37.8 KB | 1,987 lines |
- /*++
-
- (C) Copyright 1995 - 1999 Microsoft Corporation. All rights reserved.
-
- Module Name:
-
- javadbg.idl
-
- Abstract:
-
- Java debugging interfaces.
-
- --*/
-
- import "oleidl.idl";
-
- interface IEnumLINEINFO;
- interface IEnumRemoteBooleanValue;
- interface IEnumRemoteByteValue;
- interface IEnumRemoteCharValue;
- interface IEnumRemoteDoubleValue;
- interface IEnumRemoteField;
- interface IEnumRemoteFloatValue;
- interface IEnumRemoteIntValue;
- interface IEnumRemoteLongValue;
- interface IEnumRemoteObject;
- interface IEnumRemoteProcess;
- interface IEnumRemoteShortValue;
- interface IEnumRemoteStackFrames;
- interface IEnumRemoteThread;
- interface IEnumRemoteThreadGroup;
- interface IEnumRemoteValue;
- interface IJavaDebugManager;
- interface IJavaLEDebugManager;
- interface IRemoteArrayField;
- interface IRemoteArrayObject;
- interface IRemoteBooleanObject;
- interface IRemoteByteObject;
- interface IRemoteCharObject;
- interface IRemoteClassField;
- interface IRemoteClassFieldEx;
- interface IRemoteClassObject;
- interface IRemoteContainerField;
- interface IRemoteContainerObject;
- interface IRemoteDataField;
- interface IRemoteDebugManager;
- interface IRemoteDebugManagerCallback;
- interface IRemoteDebugManagerCallbackEx;
- interface IRemoteDoubleObject;
- interface IRemoteField;
- interface IRemoteFloatObject;
- interface IRemoteIntObject;
- interface IRemoteLongObject;
- interface IRemoteMethodField;
- interface IRemoteObject;
- interface IRemoteProcess;
- interface IRemoteProcessCallback;
- interface IRemoteProcessCallbackEx;
- interface IRemoteProcessCallbackEx2;
- interface IRemoteShortObject;
- interface IRemoteStackFrame;
- interface IRemoteStackFrameEx;
- interface IRemoteThread;
- interface IRemoteThreadEx;
- interface IRemoteThreadGroup;
- interface IMethodLocation;
- interface IEnumCodeBreakpoints;
-
- interface IJavaEnumLINEINFO;
- interface IJavaEnumRemoteBooleanValue;
- interface IJavaEnumRemoteByteValue;
- interface IJavaEnumRemoteCharValue;
- interface IJavaEnumRemoteDoubleValue;
- interface IJavaEnumRemoteFloatValue;
- interface IJavaEnumRemoteIntValue;
- interface IJavaEnumRemoteLongValue;
- interface IJavaEnumRemoteShortValue;
- interface IJavaEnumRemoteField;
- interface IJavaEnumRemoteObject;
- interface IJavaEnumRemoteProcess;
- interface IJavaEnumRemoteThread;
- interface IJavaEnumRemoteThreadGroup;
-
-
- //
- // error codes
- //
- cpp_quote("// error codes")
- cpp_quote("//")
- cpp_quote("// errors returned by IRemoteContainer::GetFieldObject")
- cpp_quote("#define E_FIELDOUTOFSCOPE (0x80040001)")
- cpp_quote("#define E_FIELDNOTINOBJECT (0x80040002)")
- cpp_quote("#define E_NOFIELDS (0x80040003)")
- cpp_quote("#define E_NULLOBJECTREF (0x80040004)")
- cpp_quote("// errors returned by IRemoteProcess::FindClass")
- cpp_quote("#define E_CLASSNOTFOUND (0x80040010)")
- cpp_quote("// errors returned by IRemoteMethodField")
- cpp_quote("#define E_BADMETHOD (0x80040020)")
- cpp_quote("#define E_NODEBUGINFORMATION (0x80040021)")
- cpp_quote("#define E_NOBREAKPOINTS (0x80040022)")
- cpp_quote("// errors returned by IRemoteContainerObject::GetFieldObject")
- cpp_quote("#define E_NOTINITIALIZED (0x80040100)")
- cpp_quote("// errors returned by IRemoteObject::SetBreakpoint")
- cpp_quote("#define E_TOOMANYBREAKPOINTS (0x80040101)")
- cpp_quote("// errors returned by IRemoteObject or IRemoteField")
- cpp_quote("#define E_NOLONGERVALID (0x80040102)")
- cpp_quote("// errors returned by IRemoteStackFrame::SetPC")
- cpp_quote("// The PC is not within the method or at a valid opcode boundary.")
- cpp_quote("#define E_INVALIDPC (0x80040103)")
-
-
- // Environment variable flag values
- enum
- {
- // Disable the JIT compiler so that bytecode execution may be profiled.
- MSJDBG_FL_REQUIRE_BYTE_CODE_EXECUTION = 0x0001,
-
- // Enable profiling.
- MSJDBG_FL_ENABLE_PROFILING = 0x0002,
-
- // Don't use hardware breakpoints.
- MSJDBG_NO_HARDWARE_BREAKPOINTS = 0x0004,
-
- // Don't use page breakpoints.
- MSJDBG_NO_PAGE_BREAKPOINTS = 0x0008,
-
- // Disable JIT-compiled code debugging.
- MSJDBG_DISABLE_JIT_COMPILED_CODE_DEBUGGING = 0x0010,
-
- // Show native/COM/delegate frames in call stacks and allow stepping in
- // these frames.
- MSJDBG_DEBUG_NATIVE_METHODS = 0x0020,
-
- // Send StartClassEvent when an applet, control, or application is
- // loaded.
- MSJDBG_SEND_START_CLASS_EVENTS = 0x0040,
-
- // Send a CanStopEvent on leaving the stepping frame, else a StepEvent.
- MSJDBG_SEND_CAN_STOP_EVENT_ON_STEP_OUT = 0x0080,
-
- // Ignore methods without debug information while stepping.
- MSJDBG_IGNORE_METHODS_WITHOUT_DEBUG_INFO = 0x0200,
-
- // On stepping out of a top-most frame, send a CanStopEvent/StepEvent at
- // the next debuggable frame. Default behavior is to stop stepping.
- MSJDBG_STEP_AT_THREAD_REENTRY = 0x0400,
-
- // Never return E_NULLOBJECTREF from GetFieldObject; instead, wait until
- // the object is used. (This is necessary to be able to set data
- // breakpoints on locations that are currently null.)
- MSJDBG_CREATE_NULL_OBJECTS = 0x0800,
-
- // Never succeessfully return an interface that may be used in a
- // type-unsafe way. Default behavior is to allow QueryInterface to succeed
- // for any IRemoteXXXObject on any primitive location, ex. this flag
- // prevents the debugger from reading an int location as a double.
- MSJDBG_STRICT_TYPE_CHECKS = 0x1000,
-
- // Disables compatibility modes for DebugStringEvent. A proper
- // implementation of DebugStringEvent should:
- // - interpret control characters sensibly. Lone '\r' and '\n' characters
- // will be automatically converted to "\r\n" pairs by the VM.
- // - appropriately convert and display the Unicode characters
- // - display the strings in a timely manner. A debugger should not wait
- // until a "\r\n" to display the output.
- // - permit multiple lines in the string.
- // - permit empty strings/blank lines.
- MSJDBG_REGULAR_DEBUG_STRING_EVENT = 0x2000,
- };
-
-
- [
- object,
- uuid(275d9da0-5ff5-11cf-a5e1-00aa006bbf16)
- ]
-
- interface IEnumLINEINFO : IUnknown
- {
- typedef IEnumLINEINFO *LPENUMLINEINFO;
-
- typedef struct tagLINEINFO
- {
- USHORT offPC;
- USHORT iLine;
- }
- LINEINFO, *LPLINEINFO;
-
- HRESULT Next
- (
- [in] ULONG celt,
- [out, size_is(celt), length_is(*pceltFetched)] LPLINEINFO rgelt,
- [out] ULONG *pceltFetched
- );
-
- HRESULT Skip
- (
- [in] ULONG celt
- );
-
- HRESULT Reset
- (
- );
-
- HRESULT Clone
- (
- [out, retval] IJavaEnumLINEINFO **ppEnum
- );
-
- HRESULT GetCount
- (
- [out, retval] ULONG *pcelt
- );
- }
-
-
- [
- object,
- uuid(CB33C082-16E6-11d0-ACBB-00401C608501)
- ]
-
- interface IJavaEnumLINEINFO : IEnumLINEINFO
- {
- HRESULT GetNext
- (
- [out] LINEINFO *pli
- );
- }
-
-
- [
- object,
- uuid(275d9d80-5ff5-11cf-a5e1-00aa006bbf16)
- ]
-
- interface IRemoteField : IUnknown
- {
- typedef IRemoteField *LPREMOTEFIELD;
-
- HRESULT GetName
- (
- [out, retval] LPOLESTR *ppszName
- );
-
- //
- // field kinds
- //
- enum
- {
- FIELD_KIND_DATA_OBJECT = 0x00000001,
- FIELD_KIND_DATA_PRIMITIVE = 0x00000002,
- FIELD_KIND_ARRAY = 0x00000004,
- FIELD_KIND_CLASS = 0x00000008,
- FIELD_KIND_METHOD = 0x00000010,
- FIELD_KIND_LOCAL = 0x00001000,
- FIELD_KIND_PARAM = 0x00002000,
- FIELD_KIND_THIS = 0x00004000,
- FIELD_KIND_INNER_CLASS = 0x00008000,
- };
- typedef ULONG FIELDKIND;
-
- HRESULT GetKind
- (
- [out, retval] FIELDKIND *pfk
- );
-
- HRESULT GetType
- (
- [out, retval] IRemoteField **ppType
- );
-
- HRESULT GetContainer
- (
- [out, retval] IRemoteContainerField **ppContainer
- );
-
- //
- // Modifier flags
- //
- enum
- {
- FIELD_ACC_PUBLIC = 0x00000001,
- FIELD_ACC_PRIVATE = 0x00000002,
- FIELD_ACC_PROTECTED = 0x00000004,
- FIELD_ACC_STATIC = 0x00000008,
- FIELD_ACC_FINAL = 0x00000010,
- FIELD_ACC_SYNCHRONIZED = 0x00000020,
- FIELD_ACC_VOLATILE = 0x00000040,
- FIELD_ACC_TRANSIENT = 0x00000080,
- FIELD_ACC_NATIVE = 0x00000100,
- FIELD_ACC_INTERFACE = 0x00000200,
- FIELD_ACC_ABSTRACT = 0x00000400,
- FIELD_ACC_SUPER = 0x00000800,
- FIELD_ACC_SYNTHETIC = 0x00001000,
- };
- typedef ULONG FIELDMODIFIERS;
-
- HRESULT GetModifiers
- (
- [out, retval] FIELDMODIFIERS *pulModifiers
- );
- }
-
-
- [
- object,
- uuid(275d9da1-5ff5-11cf-a5e1-00aa006bbf16)
- ]
-
- interface IEnumRemoteField : IUnknown
- {
- typedef IEnumRemoteField *LPENUMREMOTEFIELD;
-
- HRESULT Next
- (
- [in] ULONG celt,
- [out, size_is(celt), length_is(*pceltFetched)] IRemoteField *rgelt[],
- [out] ULONG *pceltFetched
- );
-
- HRESULT Skip
- (
- [in] ULONG celt
- );
-
- HRESULT Reset
- (
- );
-
- HRESULT Clone
- (
- [out, retval] IJavaEnumRemoteField **ppEnum
- );
-
- HRESULT GetCount
- (
- [out, retval] ULONG *pcelt
- );
- }
-
-
- [
- object,
- uuid(CB33C083-16E6-11d0-ACBB-00401C608501)
- ]
-
- interface IJavaEnumRemoteField : IEnumRemoteField
- {
- HRESULT GetNext
- (
- [out, retval] IRemoteField **ppirf
- );
- }
-
-
- [
- object,
- uuid(275d9d81-5ff5-11cf-a5e1-00aa006bbf16)
- ]
-
- interface IRemoteDataField : IRemoteField
- {
- typedef IRemoteDataField *LPREMOTEDATAFIELD;
- }
-
-
- [
- object,
- uuid(275d9d82-5ff5-11cf-a5e1-00aa006bbf16)
- ]
-
- interface IRemoteArrayField : IRemoteDataField
- {
- typedef IRemoteArrayField *LPREMOTEARRAYFIELD;
-
- HRESULT GetSize
- (
- [out, retval] ULONG *pcElements
- );
- }
-
-
- [
- object,
- uuid(275d9d83-5ff5-11cf-a5e1-00aa006bbf16)
- ]
-
- interface IRemoteContainerField : IRemoteField
- {
- typedef IRemoteContainerField *LPREMOTECONTAINERFIELD;
-
- HRESULT GetFields
- (
- [out] IJavaEnumRemoteField **ppEnum,
- [in] FIELDKIND ulKind,
- [in] FIELDMODIFIERS ulModifiers,
- [in, unique] LPCOLESTR lpcszName
- );
- }
-
-
- [
- object,
- uuid(275d9d84-5ff5-11cf-a5e1-00aa006bbf16)
- ]
-
- interface IRemoteMethodField : IRemoteContainerField
- {
- typedef IRemoteMethodField *LPREMOTEMETHODFIELD;
-
- HRESULT SetBreakpoint
- (
- [in] ULONG offPC
- );
-
- HRESULT ClearBreakpoint
- (
- [in] ULONG offPC
- );
-
- HRESULT GetLineInfo
- (
- [out, retval] IJavaEnumLINEINFO **ppEnum
- );
-
- HRESULT GetBytes
- (
- [out, retval] ILockBytes **ppLockBytes
- );
-
- HRESULT GetScope
- (
- [in, unique] IRemoteField *pField,
- [out] ULONG *poffStart,
- [out] ULONG *pcbScope
- );
-
- HRESULT GetIndexedField
- (
- [in] ULONG slot,
- [in] ULONG offPC,
- [out, retval] IRemoteField **ppField
- );
- }
-
-
- [
- object,
- uuid(6E2E7A20-C9CE-11d1-B040-006008039BF0)
- ]
- interface IRemoteMethodFieldEx : IRemoteMethodField
- {
- HRESULT GetCodeBreakpoints
- (
- [out, retval] IEnumCodeBreakpoints **ppiecbp
- );
-
- HRESULT GetMethodLocationForPC
- (
- [in] ULONG ulPC,
- [out, retval] IMethodLocation **ppiml
- );
- }
-
-
- [
- object,
- uuid(275d9d85-5ff5-11cf-a5e1-00aa006bbf16)
- ]
-
- interface IRemoteClassField : IRemoteContainerField
- {
- typedef IRemoteClassField *LPREMOTECLASSFIELD;
-
- //
- // Constant pool tags
- //
- enum
- {
- CP_CONSTANT_UTF8 = 1,
- CP_CONSTANT_UNICODE = 2,
- CP_CONSTANT_INTEGER = 3,
- CP_CONSTANT_FLOAT = 4,
- CP_CONSTANT_LONG = 5,
- CP_CONSTANT_DOUBLE = 6,
- CP_CONSTANT_CLASS = 7,
- CP_CONSTANT_STRING = 8,
- CP_CONSTANT_FIELDREF = 9,
- CP_CONSTANT_METHODREF = 10,
- CP_CONSTANT_INTERFACEMETHODREF = 11,
- CP_CONSTANT_NAMEANDTYPE = 12
- };
-
- HRESULT GetFileName
- (
- [out, retval] LPOLESTR *ppszFileName
- );
-
- HRESULT GetSourceFileName
- (
- [out, retval] LPOLESTR *ppszSourceFileName
- );
-
- HRESULT GetSuperclass
- (
- [out, retval] IRemoteClassField **ppSuperclass
- );
-
- HRESULT GetInterfaces
- (
- [out, retval] IJavaEnumRemoteField **ppEnum
- );
-
- HRESULT GetConstantPoolItem
- (
- [in] ULONG indexCP,
- [out, size_is(,*plength)] BYTE **ppCPBytes,
- [out] ULONG *plength
- );
- }
-
-
- [
- object,
- uuid(F6457430-E998-11d1-B044-006008039BF0)
- ]
- interface IRemotePrimitiveClassField : IRemoteClassField
- {
- enum
- {
- PRIMITIVE_VOID = 1,
- PRIMITIVE_BOOLEAN = 2,
- PRIMITIVE_BYTE = 3,
- PRIMITIVE_CHAR = 4,
- PRIMITIVE_SHORT = 5,
- PRIMITIVE_INT = 6,
- PRIMITIVE_FLOAT = 7,
- PRIMITIVE_LONG = 8,
- PRIMITIVE_DOUBLE = 9,
- };
- typedef ULONG PRIMITIVE_TYPE;
-
- HRESULT GetPrimitiveType
- (
- [out, retval] PRIMITIVE_TYPE *pPrimitiveType
- );
- }
-
-
- [
- object,
- uuid(C8DF0FF6-7595-11d1-B6CB-0000F87572EF)
- ]
- interface IRemoteClassFieldEx : IRemoteClassField
- {
- HRESULT GetSourceFileDir
- (
- [out, retval] LPOLESTR *ppszSourceFileName
- );
- }
-
-
- [
- object,
- uuid(848E2A30-6A11-11d1-BA38-006008039BF0)
- ]
- interface IRemoteInnerClassField : IRemoteClassFieldEx
- {
- HRESULT GetInnerClassName
- (
- [out, retval] LPOLESTR *ppszName
- );
-
- HRESULT GetInnerClassModifiers
- (
- [out, retval] FIELDMODIFIERS *pulModifiers
- );
-
- HRESULT GetOuterClass
- (
- [out, retval] IRemoteClassField **ppOuterClass
- );
- }
-
-
- [
- object,
- uuid(275d9db0-5ff5-11cf-a5e1-00aa006bbf16)
- ]
-
- interface IRemoteObject : IUnknown
- {
- typedef IRemoteObject *LPREMOTEOBJECT;
-
- HRESULT GetType
- (
- [out, retval] IRemoteField **ppType
- );
-
- HRESULT SetBreakpoint
- (
- );
-
- HRESULT ClearBreakpoint
- (
- );
-
- //
- // JAVA built-int types
- //
- typedef BYTE JAVA_BOOLEAN;
- typedef signed char JAVA_BYTE;
- typedef USHORT JAVA_CHAR;
- typedef double JAVA_DOUBLE;
- typedef float JAVA_FLOAT;
- typedef LONG JAVA_INT;
- typedef LONGLONG JAVA_LONG;
- typedef SHORT JAVA_SHORT;
- typedef LPOLESTR JAVA_STRING;
- }
-
-
- [
- object,
- uuid(9C4F66F0-5A2C-11d1-BA33-006008039BF0)
- ]
-
- interface IRemoteObjectEx : IRemoteObject
- {
- HRESULT IsSameObject
- (
- [in] IRemoteObject *other
- );
-
- HRESULT GetContainer
- (
- [out, retval] IRemoteObject **ppContainer
- );
-
- HRESULT GetIdentity
- (
- [out, retval] IRemoteObjectEx **ppIdentity
- );
- }
-
-
- [
- object,
- uuid(275d9da2-5ff5-11cf-a5e1-00aa006bbf16)
- ]
-
- interface IEnumRemoteObject : IUnknown
- {
- typedef IEnumRemoteObject *LPENUMREMOTEOBJECT;
-
- HRESULT Next
- (
- [in] ULONG celt,
- [out, size_is(celt), length_is(*pceltFetched)] IRemoteObject *rgelt[],
- [out] ULONG *pceltFetched
- );
-
- HRESULT Skip
- (
- [in] ULONG celt
- );
-
- HRESULT Reset
- (
- );
-
- HRESULT Clone
- (
- [out, retval] IJavaEnumRemoteObject **ppEnum
- );
-
- HRESULT GetCount
- (
- [out, retval] ULONG *pcelt
- );
- }
-
-
- [
- object,
- uuid(CB33C084-16E6-11d0-ACBB-00401C608501)
- ]
-
- interface IJavaEnumRemoteObject : IEnumRemoteObject
- {
- HRESULT GetNext
- (
- [out, retval] IRemoteObject **ppiro
- );
- }
-
-
- [
- object,
- uuid(da0a7738-de8e-11cf-b3b3-00a0244a1dd2)
- ]
-
- interface IEnumRemoteValue : IUnknown
- {
- typedef IEnumRemoteValue *LPENUMREMOTEVALUE;
-
- HRESULT Skip
- (
- [in] ULONG celt
- );
-
- HRESULT Reset
- (
- );
-
- HRESULT Clone
- (
- [out, retval] IEnumRemoteValue **ppEnum
- );
-
- HRESULT GetCount
- (
- [out, retval] ULONG *pcelt
- );
- }
-
-
- [
- object,
- uuid(282e2c9c-df62-11cf-b3b3-00a0244a1dd2)
- ]
-
- interface IEnumRemoteBooleanValue : IEnumRemoteValue
- {
- typedef IEnumRemoteBooleanValue *LPENUMREMOTEBOOLEANVALUE;
-
- HRESULT Next
- (
- [in] ULONG celt,
- [out, size_is(celt), length_is(*pceltFetched)] JAVA_BOOLEAN rgelt[],
- [out] ULONG *pceltFetched
- );
- }
-
-
- [
- object,
- uuid(CB33C086-16E6-11d0-ACBB-00401C608501)
- ]
-
- interface IJavaEnumRemoteBooleanValue : IEnumRemoteBooleanValue
- {
- HRESULT GetNext
- (
- [out, retval] JAVA_BOOLEAN *pjb
- );
- }
-
-
- [
- object,
- uuid(29831ce2-df62-11cf-b3b3-00a0244a1dd2)
- ]
-
- interface IEnumRemoteByteValue : IEnumRemoteValue
- {
- typedef IEnumRemoteByteValue *LPENUMREMOTEBYTEVALUE;
-
- HRESULT Next
- (
- [in] ULONG celt,
- [out, size_is(celt), length_is(*pceltFetched)] JAVA_BYTE rgelt[],
- [out] ULONG *pceltFetched
- );
- }
-
-
- [
- object,
- uuid(CB33C087-16E6-11d0-ACBB-00401C608501)
- ]
-
- interface IJavaEnumRemoteByteValue : IEnumRemoteByteValue
- {
- HRESULT GetNext
- (
- [out, retval] JAVA_BYTE *pjbyte
- );
- }
-
-
- [
- object,
- uuid(c5d31048-de81-11cf-b3b3-00a0244a1dd2)
- ]
-
- interface IEnumRemoteCharValue : IEnumRemoteValue
- {
- typedef IEnumRemoteCharValue *LPENUMREMOTECHARVALUE;
-
- HRESULT Next
- (
- [in] ULONG celt,
- [out, size_is(celt), length_is(*pceltFetched)] JAVA_CHAR rgelt[],
- [out] ULONG *pceltFetched
- );
- }
-
-
- [
- object,
- uuid(CB33C088-16E6-11d0-ACBB-00401C608501)
- ]
-
- interface IJavaEnumRemoteCharValue : IEnumRemoteCharValue
- {
- HRESULT GetNext
- (
- [out, retval] JAVA_CHAR *pjch
- );
- }
-
-
- [
- object,
- uuid(9dc9ac24-df62-11cf-b3b3-00a0244a1dd2)
- ]
-
- interface IEnumRemoteDoubleValue : IEnumRemoteValue
- {
- typedef IEnumRemoteDoubleValue *LPENUMREMOTEDOUBLEVALUE;
-
- HRESULT Next
- (
- [in] ULONG celt,
- [out, size_is(celt), length_is(*pceltFetched)] JAVA_DOUBLE rgelt[],
- [out] ULONG *pceltFetched
- );
- }
-
-
- [
- object,
- uuid(CB33C089-16E6-11d0-ACBB-00401C608501)
- ]
-
- interface IJavaEnumRemoteDoubleValue : IEnumRemoteDoubleValue
- {
- HRESULT GetNext
- (
- [out, retval] JAVA_DOUBLE *pjdbl
- );
- }
-
-
- [
- object,
- uuid(a4c10b1c-df62-11cf-b3b3-00a0244a1dd2)
- ]
-
- interface IEnumRemoteFloatValue : IEnumRemoteValue
- {
- typedef IEnumRemoteFloatValue *LPENUMREMOTEFLOATVALUE;
-
- HRESULT Next
- (
- [in] ULONG celt,
- [out, size_is(celt), length_is(*pceltFetched)] JAVA_FLOAT rgelt[],
- [out] ULONG *pceltFetched
- );
- }
-
-
- [
- object,
- uuid(CB33C08A-16E6-11d0-ACBB-00401C608501)
- ]
-
- interface IJavaEnumRemoteFloatValue : IEnumRemoteFloatValue
- {
- HRESULT GetNext
- (
- [out, retval] JAVA_FLOAT *pjflt
- );
- }
-
-
- [
- object,
- uuid(aa5eb51a-df62-11cf-b3b3-00a0244a1dd2)
- ]
-
- interface IEnumRemoteIntValue : IEnumRemoteValue
- {
- typedef IEnumRemoteIntValue *LPENUMREMOTEINTVALUE;
-
- HRESULT Next
- (
- [in] ULONG celt,
- [out, size_is(celt), length_is(*pceltFetched)] JAVA_INT rgelt[],
- [out] ULONG *pceltFetched
- );
- }
-
-
- [
- object,
- uuid(CB33C08B-16E6-11d0-ACBB-00401C608501)
- ]
-
- interface IJavaEnumRemoteIntValue : IEnumRemoteIntValue
- {
- HRESULT GetNext
- (
- [out, retval] JAVA_INT *pjn
- );
- }
-
-
- [
- object,
- uuid(b208e470-df62-11cf-b3b3-00a0244a1dd2)
- ]
-
- interface IEnumRemoteLongValue : IEnumRemoteValue
- {
- typedef IEnumRemoteLongValue *LPENUMREMOTELONGVALUE;
-
- HRESULT Next
- (
- [in] ULONG celt,
- [out, size_is(celt), length_is(*pceltFetched)] JAVA_LONG rgelt[],
- [out] ULONG *pceltFetched
- );
- }
-
-
- [
- object,
- uuid(CB33C08C-16E6-11d0-ACBB-00401C608501)
- ]
-
- interface IJavaEnumRemoteLongValue : IEnumRemoteLongValue
- {
- HRESULT GetNext
- (
- [out, retval] JAVA_LONG *pjl
- );
- }
-
-
- [
- object,
- uuid(b74e576c-df62-11cf-b3b3-00a0244a1dd2)
- ]
-
- interface IEnumRemoteShortValue : IEnumRemoteValue
- {
- typedef IEnumRemoteShortValue *LPENUMREMOTESHORTVALUE;
-
- HRESULT Next
- (
- [in] ULONG celt,
- [out, size_is(celt), length_is(*pceltFetched)] JAVA_SHORT rgelt[],
- [out] ULONG *pceltFetched
- );
- }
-
-
- [
- object,
- uuid(CB33C08D-16E6-11d0-ACBB-00401C608501)
- ]
-
- interface IJavaEnumRemoteShortValue : IEnumRemoteShortValue
- {
- HRESULT GetNext
- (
- [out, retval] JAVA_SHORT *pjsh
- );
- }
-
-
- [
- object,
- uuid(275d9db1-5ff5-11cf-a5e1-00aa006bbf16)
- ]
-
- interface IRemoteArrayObject : IRemoteObject
- {
- typedef IRemoteArrayObject *LPREMOTEARRAYOBJECT;
-
- HRESULT GetElementObjects
- (
- [out, retval] IJavaEnumRemoteObject **ppEnum
- );
-
- HRESULT GetSize
- (
- [out, retval] ULONG *pcElements
- );
-
- HRESULT GetElementValues
- (
- [out, retval] IEnumRemoteValue **ppEnum
- );
- }
-
-
- [
- object,
- uuid(275d9db2-5ff5-11cf-a5e1-00aa006bbf16)
- ]
-
- interface IRemoteBooleanObject : IRemoteObject
- {
- typedef IRemoteBooleanObject *LPREMOTEBOOLEANOBJECT;
-
- HRESULT GetValue
- (
- [out, retval] JAVA_BOOLEAN *pvalue
- );
-
- HRESULT SetValue
- (
- [in] JAVA_BOOLEAN value
- );
- }
-
-
- [
- object,
- uuid(275d9db3-5ff5-11cf-a5e1-00aa006bbf16)
- ]
-
- interface IRemoteByteObject : IRemoteObject
- {
- typedef IRemoteByteObject *LPREMOTEBYTEOBJECT;
-
- HRESULT GetValue
- (
- [out, retval] JAVA_BYTE *pvalue
- );
-
- HRESULT SetValue
- (
- [in] JAVA_BYTE value
- );
- }
-
-
- [
- object,
- uuid(275d9db4-5ff5-11cf-a5e1-00aa006bbf16)
- ]
-
- interface IRemoteCharObject : IRemoteObject
- {
- typedef IRemoteCharObject *LPREMOTECHAROBJECT;
-
- HRESULT GetValue
- (
- [out, retval] JAVA_CHAR *pvalue
- );
-
- HRESULT SetValue
- (
- [in] JAVA_CHAR value
- );
- }
-
-
- [
- object,
- uuid(275d9dbb-5ff5-11cf-a5e1-00aa006bbf16)
- ]
-
- interface IRemoteClassObject : IRemoteContainerObject
- {
- typedef IRemoteClassObject *LPREMOTECLASSOBJECT;
-
- HRESULT GetDerivedMostType
- (
- [out, retval] IRemoteClassField **ppDerivedMostField
- );
- }
-
-
- [
- object,
- uuid(275d9db5-5ff5-11cf-a5e1-00aa006bbf16)
- ]
-
- interface IRemoteContainerObject : IRemoteObject
- {
- typedef IRemoteContainerObject *LPREMOTECONTAINEROBJECT;
-
- HRESULT GetFieldObject
- (
- [in, unique] IRemoteField *pField,
- [out, retval] IRemoteObject **ppFieldObject
- );
- }
-
-
- [
- object,
- uuid(275d9db6-5ff5-11cf-a5e1-00aa006bbf16)
- ]
-
- interface IRemoteDoubleObject : IRemoteObject
- {
- typedef IRemoteDoubleObject *LPREMOTEDOUBLEOBJECT;
-
- HRESULT GetValue
- (
- [out, retval] JAVA_DOUBLE *pvalue
- );
-
- HRESULT SetValue
- (
- [in] JAVA_DOUBLE *pvalue
- );
- }
-
-
- [
- object,
- uuid(275d9db7-5ff5-11cf-a5e1-00aa006bbf16)
- ]
-
- interface IRemoteFloatObject : IRemoteObject
- {
- typedef IRemoteFloatObject *LPREMOTEFLOATOBJECT;
-
- HRESULT GetValue
- (
- [out, retval] JAVA_FLOAT *pvalue
- );
-
- HRESULT SetValue
- (
- [in] JAVA_FLOAT *pvalue
- );
- }
-
-
- [
- object,
- uuid(275d9db8-5ff5-11cf-a5e1-00aa006bbf16)
- ]
-
- interface IRemoteIntObject : IRemoteObject
- {
- typedef IRemoteIntObject *LPREMOTEINTOBJECT;
-
- HRESULT GetValue
- (
- [out, retval] JAVA_INT *pvalue
- );
-
- HRESULT SetValue
- (
- [in] JAVA_INT value
- );
- }
-
-
- [
- object,
- uuid(275d9db9-5ff5-11cf-a5e1-00aa006bbf16)
- ]
-
- interface IRemoteLongObject : IRemoteObject
- {
- typedef IRemoteLongObject *LPREMOTELONGOBJECT;
-
- HRESULT GetValue
- (
- [out, retval] JAVA_LONG *pvalue
- );
-
- HRESULT SetValue
- (
- [in] JAVA_LONG value
- );
- }
-
-
- [
- object,
- uuid(275d9dba-5ff5-11cf-a5e1-00aa006bbf16)
- ]
-
- interface IRemoteShortObject : IRemoteObject
- {
- typedef IRemoteShortObject *LPREMOTESHORTOBJECT;
-
- HRESULT GetValue
- (
- [out, retval] JAVA_SHORT *pvalue
- );
-
- HRESULT SetValue
- (
- [in] JAVA_SHORT value
- );
- }
-
-
- [
- object,
- uuid(275d9d90-5ff5-11cf-a5e1-00aa006bbf16)
- ]
-
- interface IRemoteStackFrame : IUnknown
- {
- typedef IRemoteStackFrame *LPREMOTESTACKOBJECT;
-
- HRESULT GetCallingFrame
- (
- [out, retval] IRemoteStackFrame **ppCallingFrame
- );
-
- HRESULT GetMethodObject
- (
- [out, retval] IRemoteContainerObject **ppMethodObject
- );
-
- HRESULT GetPC
- (
- [out, retval] ULONG *offPC
- );
-
- HRESULT SetPC
- (
- [in] ULONG offPC
- );
-
- //
- // stack frame kinds
- //
- enum
- {
- FRAME_KIND_INVALID = 0x00,
- FRAME_KIND_INTERPRETED = 0x01,
- FRAME_KIND_NATIVE = 0x02,
- FRAME_KIND_JIT_COMPILED = 0x03,
- FRAME_KIND_FAST_INTERPRETED = 0x04,
- FRAME_KIND_COM = 0x05,
- };
- typedef ULONG FRAMEKIND;
-
- HRESULT GetKind
- (
- [out, retval] FRAMEKIND *pfk
- );
- }
-
-
- [
- object,
- uuid(DA4BA03E-A641-11d0-B83D-00A0244A1DE2)
- ]
-
- interface IRemoteStackFrameEx : IRemoteStackFrame
- {
- HRESULT GetStackRange
- (
- [out] ULONG *pdwMin,
- [out] ULONG *pdwLim
- );
-
- HRESULT GetRealPC
- (
- [out, retval] ULONG *offPC
- );
-
- // One method location -> one point of execution.
- HRESULT GetMethodLocation
- (
- [out, retval] IMethodLocation **ppiml
- );
- }
-
-
- [
- object,
- uuid(275d9d92-5ff5-11cf-a5e1-00aa006bbf16)
- ]
-
- interface IRemoteThreadGroup : IUnknown
- {
- typedef IRemoteThreadGroup *LPREMOTETHREADGROUP;
-
- HRESULT GetName
- (
- [out, retval] LPOLESTR *ppszName
- );
-
- HRESULT GetThreads
- (
- [out, retval] IJavaEnumRemoteThread **ppEnum
- );
-
- HRESULT GetThreadGroups
- (
- [out, retval] IJavaEnumRemoteThreadGroup **ppEnum
- );
- }
-
-
- [
- object,
- uuid(497C2740-6628-11d1-BA38-006008039BF0)
- ]
- interface IRemoteThreadGroupEx : IRemoteThreadGroup
- {
- HRESULT GetParent
- (
- [out, retval] IRemoteThreadGroupEx **ppParentGroup
- );
- }
-
-
- [
- object,
- uuid(275d9da4-5ff5-11cf-a5e1-00aa006bbf16)
- ]
-
- interface IEnumRemoteThreadGroup : IUnknown
- {
- typedef IEnumRemoteThreadGroup *LPENUMREMOTETHREADGROUP;
-
- HRESULT Next
- (
- [in] ULONG celt,
- [out, size_is(celt), length_is(*pceltFetched)] IRemoteThreadGroup *rgelt[],
- [out] ULONG *pceltFetched
- );
-
- HRESULT Skip
- (
- [in] ULONG celt
- );
-
- HRESULT Reset
- (
- );
-
- HRESULT Clone
- (
- [out, retval] IJavaEnumRemoteThreadGroup **ppEnum
- );
- }
-
-
- [
- object,
- uuid(CB33C08E-16E6-11d0-ACBB-00401C608501)
- ]
-
- interface IJavaEnumRemoteThreadGroup : IEnumRemoteThreadGroup
- {
- HRESULT GetNext
- (
- [out, retval] IRemoteThreadGroup **ppirtg
- );
- }
-
-
- [
- object,
- uuid(275d9d91-5ff5-11cf-a5e1-00aa006bbf16)
- ]
-
- interface IRemoteThread : IUnknown
- {
- typedef IRemoteThread *LPREMOTETHREAD;
-
- HRESULT GetName
- (
- [out, retval] LPOLESTR *ppszName
- );
-
- HRESULT GetCurrentFrame
- (
- [out, retval] IRemoteStackFrame **ppCurrentFrame
- );
-
- HRESULT GetThreadGroup
- (
- [out, retval] IRemoteThreadGroup **ppThreadGroup
- );
-
- HRESULT Go
- (
- );
-
- HRESULT Step
- (
- );
-
- HRESULT StepIn
- (
- );
-
- HRESULT StepOut
- (
- );
-
- HRESULT RangeStep
- (
- [in] ULONG offStart,
- [in] ULONG offEnd
- );
-
- HRESULT RangeStepIn
- (
- [in] ULONG offStart,
- [in] ULONG offEnd
- );
-
- HRESULT Destroy
- (
- );
-
- HRESULT Suspend
- (
- );
-
- HRESULT Resume
- (
- );
-
- HRESULT GetSuspendCount
- (
- [out, retval] ULONG *pcSuspend
- );
- }
-
-
- [
- object,
- uuid(D38AFAE0-A611-11d0-B83D-00A0244A1DE2)
- ]
-
- interface IRemoteThreadEx : IRemoteThread
- {
- HRESULT GetThreadId
- (
- [out, retval] ULONG *pdwTid
- );
-
- HRESULT GetStackFrames
- (
- [out, retval] IEnumRemoteStackFrames **ppEnum
- );
-
- HRESULT IsStartBlock
- (
- [in] IRemoteStackFrame *pFrame
- );
-
- HRESULT WatchForStep
- (
- [in] BOOL fWatch,
- [in] ULONG dwStack
- );
-
- HRESULT Continue
- (
- );
-
- HRESULT AllowExecution
- (
- [in] BOOL fAllow
- );
-
- HRESULT PassExceptionToDebuggee
- (
- [in] BOOL fPass
- );
-
- HRESULT ClearExecutionState
- (
- );
-
- HRESULT WithdrawFromThreadBank
- (
- );
- }
-
-
- [
- object,
- uuid(275d9da3-5ff5-11cf-a5e1-00aa006bbf16)
- ]
-
- interface IEnumRemoteThread : IUnknown
- {
- typedef IEnumRemoteThread *LPENUMREMOTETHREAD;
-
- HRESULT Next
- (
- [in] ULONG celt,
- [out, size_is(celt), length_is(*pceltFetched)] IRemoteThread *rgelt[],
- [out] ULONG *pceltFetched
- );
-
- HRESULT Skip
- (
- [in] ULONG celt
- );
-
- HRESULT Reset
- (
- );
-
- HRESULT Clone
- (
- [out, retval] IJavaEnumRemoteThread **ppEnum
- );
- }
-
-
- [
- object,
- uuid(CB33C08F-16E6-11d0-ACBB-00401C608501)
- ]
-
- interface IJavaEnumRemoteThread : IEnumRemoteThread
- {
- HRESULT GetNext
- (
- [out, retval] IRemoteThread **ppt
- );
- }
-
-
- [
- object,
- uuid(275d9d94-5ff5-11cf-a5e1-00aa006bbf16)
- ]
-
- interface IRemoteProcessCallback : IUnknown
- {
- typedef IRemoteProcessCallback *LPREMOTEPROCESSCALLBACK;
-
- enum
- {
- EXCEPTION_KIND_FIRST_CHANCE = 0x0001,
- EXCEPTION_KIND_LAST_CHANCE = 0x0002,
- };
- typedef ULONG EXCEPTIONKIND;
-
-
- HRESULT DebugStringEvent
- (
- [in, unique] IRemoteThread *pThread,
- [in] LPCOLESTR pszDebugString
- );
-
- HRESULT CodeBreakpointEvent
- (
- [in, unique] IRemoteThread *pThread
- );
-
- HRESULT DataBreakpointEvent
- (
- [in, unique] IRemoteThread *pThread,
- [in, unique] IRemoteObject *pObject
- );
-
- HRESULT ExceptionEvent
- (
- [in, unique] IRemoteThread *pThread,
- [in, unique] IRemoteClassField *pExceptionClass,
- [in] EXCEPTIONKIND exceptionKind
- );
-
- HRESULT StepEvent
- (
- [in, unique] IRemoteThread *pThread
- );
-
- HRESULT CanStopEvent
- (
- [in, unique] IRemoteThread *pThread
- );
-
- HRESULT BreakEvent
- (
- [in, unique] IRemoteThread *pThread
- );
-
- HRESULT ThreadCreateEvent
- (
- [in, unique] IRemoteThread *pThread
- );
-
- HRESULT ThreadDestroyEvent
- (
- [in, unique] IRemoteThread *pThread
- );
-
- HRESULT ThreadGroupCreateEvent
- (
- [in, unique] IRemoteThread *pThread,
- [in, unique] IRemoteThreadGroup *pThreadGroup
- );
-
- HRESULT ThreadGroupDestroyEvent
- (
- [in, unique] IRemoteThread *pThread,
- [in, unique] IRemoteThreadGroup *pThreadGroup
- );
-
- HRESULT ClassLoadEvent
- (
- [in, unique] IRemoteThread *pThread,
- [in, unique] IRemoteClassField *pClassType
- );
-
- HRESULT ClassUnloadEvent
- (
- [in, unique] IRemoteThread *pThread,
- [in, unique] IRemoteClassField *pClassType
- );
-
- HRESULT ProcessDestroyEvent
- (
- [in, unique] IRemoteThread *pThread
- );
-
- HRESULT TraceEvent
- (
- [in, unique] IRemoteThread *pThread
- );
-
- HRESULT LoadCompleteEvent
- (
- [in, unique] IRemoteThread *pThread
- );
- }
-
-
- [
- object,
- uuid(F3C3EAC2-BB3F-11d0-B840-00A0244A1DE2)
- ]
-
- interface IRemoteProcessCallbackEx : IRemoteProcessCallback
- {
- typedef IRemoteProcessCallbackEx *LPREMOTEPROCESSCALLBACKEX;
-
- HRESULT StartClassEvent
- (
- [in] LPCOLESTR pcstrStartClass
- );
-
- HRESULT CodeBreakpointEventEx
- (
- [in, unique] IRemoteThread *pirt,
- [in, unique] IMethodLocation *piml
- );
- }
-
-
- [
- object,
- uuid(E65A0530-F975-11d1-B04A-006008039BF0)
- ]
- interface IRemoteProcessCallbackEx2 : IRemoteProcessCallbackEx
- {
- HRESULT ExceptionEventEx
- (
- [in, unique] IRemoteThread *pThread,
- [in, unique] IRemoteClassField *pExceptionClass,
- [in] EXCEPTIONKIND exceptionKind,
- [in, unique] IRemoteClassObject *pExceptionObject
- );
- }
-
-
- [
- object,
- uuid(275d9d93-5ff5-11cf-a5e1-00aa006bbf16)
- ]
-
- interface IRemoteProcess : IUnknown
- {
- typedef IRemoteProcess *LPREMOTEPROCESS;
-
- HRESULT RegisterCallback
- (
- [in, unique] IRemoteProcessCallback *pCallback
- );
-
- HRESULT Detach
- (
- );
-
- HRESULT Break
- (
- );
-
- HRESULT GetGlobalContainerObject
- (
- [out, retval] IRemoteContainerObject **ppGlobalContainerObject
- );
-
- HRESULT FindClass
- (
- [in] LPCOLESTR pszClassName,
- [out, retval] IRemoteClassField **ppClassType
- );
-
- HRESULT TraceMethods
- (
- [in] BOOL bTraceOn
- );
-
- HRESULT GetThreadGroups
- (
- [out, retval] IJavaEnumRemoteThreadGroup **ppEnum
- );
- }
-
-
- [
- object,
- uuid(275d9da5-5ff5-11cf-a5e1-00aa006bbf16)
- ]
-
- interface IEnumRemoteProcess : IUnknown
- {
- typedef IEnumRemoteProcess *LPENUMREMOTEPROCESS;
-
- HRESULT Next
- (
- [in] ULONG celt,
- [out, size_is(celt), length_is(*pceltFetched)] IRemoteProcess *rgelt[],
- [out] ULONG *pceltFetched
- );
-
- HRESULT Skip
- (
- [in] ULONG celt
- );
-
- HRESULT Reset
- (
- );
-
- HRESULT Clone
- (
- [out, retval] IJavaEnumRemoteProcess **ppEnum
- );
- }
-
-
- [
- object,
- uuid(CB33C090-16E6-11d0-ACBB-00401C608501)
- ]
-
- interface IJavaEnumRemoteProcess : IEnumRemoteProcess
- {
- HRESULT GetNext
- (
- [out, retval] IRemoteProcess **ppirp
- );
- }
-
-
- [
- object,
- uuid(275d9d61-5ff5-11cf-a5e1-00aa006bbf16)
- ]
-
- interface IRemoteDebugManagerCallback : IUnknown
- {
- typedef IRemoteDebugManagerCallback *LPREMOTEDEBUGMANAGERCALLBACK;
-
- HRESULT ProcessCreateEvent
- (
- [in, unique] IRemoteProcess *pProcessNew,
- [in, unique] IRemoteProcess *pProcessParent
- );
- }
-
-
- [
- object,
- uuid(E3732322-2E0D-11d1-B069-00A0244A1DE2)
- ]
-
- interface IRemoteDebugManagerCallbackEx : IRemoteDebugManagerCallback
- {
- HRESULT StartClassEvent
- (
- [in] LPCOLESTR pcstrStartClass
- );
- }
-
-
- [
- object,
- uuid(275d9d60-5ff5-11cf-a5e1-00aa006bbf16)
- ]
-
- interface IRemoteDebugManager : IUnknown
- {
- typedef IRemoteDebugManager *LPREMOTEDEBUGMANAGER;
-
- HRESULT RegisterCallback
- (
- [in, unique] IRemoteDebugManagerCallback *pCallback
- );
-
- HRESULT Detach
- (
- );
-
- HRESULT GetActiveProcesses
- (
- [out, retval] IJavaEnumRemoteProcess **ppEnum
- );
-
- HRESULT RequestCreateEvent
- (
- [in] LPCOLESTR pszProcessName,
- [in] DWORD dwParentProcessId
- );
- }
-
-
- [
- object,
- uuid(275d9dc0-5ff5-11cf-a5e1-00aa006bbf16)
- ]
-
- interface IJavaDebugManager : IUnknown
- {
- HRESULT RegisterRemoteDebugManager
- (
- [in, unique] IRemoteDebugManager *pirdm,
- [in] DWORD dwProcessID
- );
-
- HRESULT Detach
- (
- );
- }
-
-
- [
- object,
- uuid(50656CD0-063E-11d2-B04F-006008039BF0)
- ]
- interface IJITAttachDebugger : IUnknown
- {
- HRESULT JITAttach
- (
- [in] IRemoteProcess *pRunningProcess,
- [in] IRemoteThread *pThread,
- [in] IRemoteClassObject *pExceptionObject
- );
- }
-
-
- [
- object,
- uuid(8F20BA80-D239-11d0-B84F-00A0244A1DE2)
- ]
-
- interface IEnumRemoteStackFrames : IUnknown
- {
- HRESULT Next
- (
- [in] ULONG celt,
- [out, size_is(celt), length_is(*pceltFetched)] IRemoteStackFrame *rgelt[],
- [out] ULONG *pceltFetched
- );
-
- HRESULT Skip
- (
- [in] ULONG celt
- );
-
- HRESULT Reset
- (
- );
-
- HRESULT Clone
- (
- [out, retval] IEnumRemoteStackFrames **ppEnum
- );
-
- HRESULT GetCount
- (
- [out, retval] ULONG *pcelt
- );
- }
-
-
- #ifndef JAVAIFCS
- // Force MIDL to generate a CLSID for RemoteJavaDebugManager.
- [
- uuid(BCB909E1-DFAB-11d1-A3E9-00C04FB68D0E)
- ]
- library JavaDebuggingLibrary
- {
- #endif
- [
- uuid(275d9d50-5ff5-11cf-a5e1-00aa006bbf16)
- ]
- coclass RemoteJavaDebugManager
- {
- interface IRemoteDebugManager;
- }
- #ifndef JAVAIFCS
- }
- #endif
-
-
- // Supports COM object identity for equality.
- [
- object,
- uuid(6E2E7A21-C9CE-11d1-B040-006008039BF0)
- ]
- interface IMethodLocation : IUnknown
- {
- HRESULT GetMethod
- (
- [out, retval] IRemoteMethodField **ppirmf
- );
-
- // Many method locations -> one base PC.
- HRESULT GetBasePC
- (
- [out, retval] ULONG *pulPC
- );
-
- HRESULT SetBreakpoint
- (
- );
-
- HRESULT ClearBreakpoint
- (
- );
- }
-
- [
- object,
- uuid(6E2E7A22-C9CE-11d1-B040-006008039BF0)
- ]
- interface IEnumCodeBreakpoints : IUnknown
- {
- HRESULT Next
- (
- [in] ULONG ulc,
- [out, size_is(ulc), length_is(*pulcFetched)] IMethodLocation **ppiml,
- [out] ULONG *pulcFetched
- );
-
- HRESULT Skip
- (
- [in] ULONG ulc
- );
-
- HRESULT Reset
- (
- );
-
- HRESULT Clone
- (
- [out, retval] IEnumCodeBreakpoints **ppiecbp
- );
-
- HRESULT GetCount
- (
- [out, retval] ULONG *pulc
- );
- }
-
-