ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

cordebug.idl
Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2011 Alistair Leslie-Hughes
00003  *
00004  * This library is free software; you can redistribute it and/or
00005  * modify it under the terms of the GNU Lesser General Public
00006  * License as published by the Free Software Foundation; either
00007  * version 2.1 of the License, or (at your option) any later version.
00008  *
00009  * This library is distributed in the hope that it will be useful,
00010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012  * Lesser General Public License for more details.
00013  *
00014  * You should have received a copy of the GNU Lesser General Public
00015  * License along with this library; if not, write to the Free Software
00016  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
00017  */
00018 
00019 import "unknwn.idl";
00020 import "objidl.idl";
00021 
00022 cpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
00023 cpp_quote("#undef CreateProcess")
00024 cpp_quote("#endif")
00025 
00026 interface ICorDebugAppDomain;
00027 interface ICorDebugAppDomainEnum;
00028 interface ICorDebugAssembly;
00029 interface ICorDebugAssemblyEnum;
00030 interface ICorDebugBreakpoint;
00031 interface ICorDebugBreakpointEnum;
00032 interface ICorDebugChain;
00033 interface ICorDebugChainEnum;
00034 interface ICorDebugClass;
00035 interface ICorDebugCode;
00036 interface ICorDebugContext;
00037 interface ICorDebugEditAndContinueSnapshot;
00038 interface ICorDebugEditAndContinueErrorInfo;
00039 interface ICorDebugEnum;
00040 interface ICorDebugErrorInfoEnum;
00041 interface ICorDebugEval;
00042 interface ICorDebugFrame;
00043 interface ICorDebugFrameEnum;
00044 interface ICorDebugFunction;
00045 interface ICorDebugFunctionBreakpoint;
00046 interface ICorDebugManagedCallback;
00047 interface ICorDebugManagedCallback2;
00048 interface ICorDebugMDA;
00049 interface ICorDebugModule;
00050 interface ICorDebugModuleBreakpoint;
00051 interface ICorDebugModuleEnum;
00052 interface ICorDebugObjectEnum;
00053 interface ICorDebugObjectValue;
00054 interface ICorDebugProcess;
00055 interface ICorDebugProcessEnum;
00056 interface ICorDebugRegisterSet;
00057 interface ICorDebugStepper;
00058 interface ICorDebugStepperEnum;
00059 interface ICorDebugThreadEnum;
00060 interface ICorDebugUnmanagedCallback;
00061 interface ICorDebugValue;
00062 interface ICorDebugValueBreakpoint;
00063 
00064 
00065 typedef [wire_marshal(unsigned long)] void *HPROCESS;
00066 typedef [wire_marshal(unsigned long)] void *HTHREAD;
00067 
00068 /* These are defined in corhrd.idl but used here. */
00069 cpp_quote("#if 0")
00070 
00071 typedef UINT32 mdToken;
00072 typedef mdToken mdModule;
00073 typedef SIZE_T  mdScope;
00074 typedef mdToken mdTypeDef;
00075 typedef mdToken mdSourceFile;
00076 typedef mdToken mdMemberRef;
00077 typedef mdToken mdMethodDef;
00078 typedef mdToken mdFieldDef;
00079 typedef mdToken mdSignature;
00080 typedef ULONG CorElementType;
00081 typedef SIZE_T PCCOR_SIGNATURE;
00082 
00083 typedef SIZE_T LPDEBUG_EVENT;
00084 
00085 typedef SIZE_T LPSTARTUPINFOW;
00086 typedef SIZE_T LPPROCESS_INFORMATION;
00087 
00088 cpp_quote("#endif")
00089 
00090 typedef ULONG64 CORDB_ADDRESS;
00091 typedef ULONG64 CORDB_REGISTER;
00092 
00093 typedef UINT64 TASKID;
00094 typedef DWORD CONNID;
00095 
00096 
00097 cpp_quote("#ifndef _COR_IL_MAP")
00098 cpp_quote("#define _COR_IL_MAP")
00099 
00100 typedef struct _COR_IL_MAP
00101 {
00102     ULONG32 oldOffset;
00103     ULONG32 newOffset;
00104     BOOL    fAccurate;
00105 } COR_IL_MAP;
00106 
00107 cpp_quote("#endif /* _COR_IL_MAP */")
00108 
00109 cpp_quote("#ifndef _COR_DEBUG_IL_TO_NATIVE_MAP_")
00110 cpp_quote("#define _COR_DEBUG_IL_TO_NATIVE_MAP_")
00111 
00112 typedef enum CorDebugIlToNativeMappingTypes
00113 {
00114     NO_MAPPING = -1,
00115     PROLOG     = -2,
00116     EPILOG     = -3
00117 } CorDebugIlToNativeMappingTypes;
00118 
00119 typedef struct COR_DEBUG_IL_TO_NATIVE_MAP
00120 {
00121     ULONG32 ilOffset;
00122     ULONG32 nativeStartOffset;
00123     ULONG32 nativeEndOffset;
00124 } COR_DEBUG_IL_TO_NATIVE_MAP;
00125 
00126 cpp_quote("#endif /* _COR_DEBUG_IL_TO_NATIVE_MAP_ */")
00127 
00128 
00129 typedef enum CorDebugThreadState
00130 {
00131     THREAD_RUN,
00132     THREAD_SUSPEND
00133 } CorDebugThreadState;
00134 
00135 typedef enum CorDebugCreateProcessFlags
00136 {
00137     DEBUG_NO_SPECIAL_OPTIONS        = 0x0000
00138 } CorDebugCreateProcessFlags;
00139 
00140 [
00141     object,
00142     local,
00143     uuid(CC7BCAF7-8A68-11d2-983C-0000F808342D),
00144     pointer_default(unique)
00145 ]
00146 interface ICorDebugValue : IUnknown
00147 {
00148     HRESULT GetType([out] CorElementType *pType);
00149     HRESULT GetSize([out] ULONG32 *pSize);
00150     HRESULT GetAddress([out] CORDB_ADDRESS *pAddress);
00151     HRESULT CreateBreakpoint([out] ICorDebugValueBreakpoint **ppBreakpoint);
00152 };
00153 
00154 [
00155     object,
00156     local,
00157     uuid(938c6d66-7fb6-4f69-b389-425b8987329b),
00158     pointer_default(unique)
00159 ]
00160 interface ICorDebugThread : IUnknown
00161 {
00162     HRESULT GetProcess([out] ICorDebugProcess **ppProcess);
00163     HRESULT GetID([out] DWORD *pdwThreadId);
00164     HRESULT GetHandle([out] HTHREAD *phThreadHandle);
00165     HRESULT GetAppDomain([out] ICorDebugAppDomain **ppAppDomain);
00166     HRESULT SetDebugState([in] CorDebugThreadState state);
00167     HRESULT GetDebugState([out] CorDebugThreadState *pState);
00168 
00169     typedef enum CorDebugUserState
00170     {
00171         USER_STOP_REQUESTED     = 0x01,
00172         USER_SUSPEND_REQUESTED  = 0x02,
00173         USER_BACKGROUND         = 0x04,
00174         USER_UNSTARTED          = 0x08,
00175         USER_STOPPED            = 0x10,
00176         USER_WAIT_SLEEP_JOIN    = 0x20,
00177         USER_SUSPENDED          = 0x40,
00178 
00179         USER_UNSAFE_POINT       = 0x80,
00180     } CorDebugUserState;
00181 
00182     HRESULT GetUserState([out] CorDebugUserState *pState);
00183     HRESULT GetCurrentException([out] ICorDebugValue **ppExceptionObject);
00184     HRESULT ClearCurrentException();
00185     HRESULT CreateStepper([out] ICorDebugStepper **ppStepper);
00186     HRESULT EnumerateChains([out] ICorDebugChainEnum **ppChains);
00187     HRESULT GetActiveChain([out] ICorDebugChain **ppChain);
00188     HRESULT GetActiveFrame([out] ICorDebugFrame **ppFrame);
00189     HRESULT GetRegisterSet([out] ICorDebugRegisterSet **ppRegisters);
00190     HRESULT CreateEval([out] ICorDebugEval **ppEval);
00191     HRESULT GetObject([out] ICorDebugValue **ppObject);
00192 };
00193 
00194 [
00195     object,
00196     local,
00197     uuid(3d6f5f62-7538-11d3-8d5b-00104b35e7ef),
00198     pointer_default(unique)
00199 ]
00200 
00201 interface ICorDebugController : IUnknown
00202 {
00203     HRESULT Stop([in] DWORD dwTimeoutIgnored);
00204     HRESULT Continue([in] BOOL fIsOutOfBand);
00205     HRESULT IsRunning([out] BOOL *pbRunning);
00206     HRESULT HasQueuedCallbacks([in] ICorDebugThread *pThread,
00207                                [out] BOOL *pbQueued);
00208     HRESULT EnumerateThreads([out] ICorDebugThreadEnum **ppThreads);
00209     HRESULT SetAllThreadsDebugState([in] CorDebugThreadState state,
00210                                     [in] ICorDebugThread *pExceptThisThread);
00211     HRESULT Detach();
00212     HRESULT Terminate([in] UINT exitCode);
00213     HRESULT CanCommitChanges([in] ULONG cSnapshots,
00214                              [in] ICorDebugEditAndContinueSnapshot *pSnapshots[],
00215                              [out] ICorDebugErrorInfoEnum **pError);
00216     HRESULT CommitChanges([in] ULONG cSnapshots,
00217                           [in] ICorDebugEditAndContinueSnapshot *pSnapshots[],
00218                           [out] ICorDebugErrorInfoEnum **pError);
00219 };
00220 
00221 [
00222     object,
00223     local,
00224     uuid(3d6f5f64-7538-11d3-8d5b-00104b35e7ef),
00225     pointer_default(unique)
00226 ]
00227 interface ICorDebugProcess : ICorDebugController
00228 {
00229     HRESULT GetID([out] DWORD *pdwProcessId);
00230     HRESULT GetHandle([out] HPROCESS *phProcessHandle);
00231     HRESULT GetThread([in] DWORD dwThreadId, [out] ICorDebugThread **ppThread);
00232     HRESULT EnumerateObjects([out] ICorDebugObjectEnum **ppObjects);
00233     HRESULT IsTransitionStub([in] CORDB_ADDRESS address, [out] BOOL *pbTransitionStub);
00234     HRESULT IsOSSuspended([in] DWORD threadID, [out] BOOL *pbSuspended);
00235     HRESULT GetThreadContext([in] DWORD threadID, [in] ULONG32 contextSize,
00236                              [in, out] BYTE context[]);
00237     HRESULT SetThreadContext([in] DWORD threadID, [in] ULONG32 contextSize, [in] BYTE context[]);
00238     HRESULT ReadMemory([in] CORDB_ADDRESS address, [in] DWORD size, [out] BYTE buffer[], [out] SIZE_T *read);
00239     HRESULT WriteMemory([in] CORDB_ADDRESS address, [in] DWORD size, [in] BYTE buffer[], [out] SIZE_T *written);
00240     HRESULT ClearCurrentException([in] DWORD threadID);
00241     HRESULT EnableLogMessages([in]BOOL fOnOff);
00242     HRESULT ModifyLogSwitch([in] WCHAR *pLogSwitchName,
00243                             [in]LONG lLevel);
00244     HRESULT EnumerateAppDomains([out] ICorDebugAppDomainEnum **ppAppDomains);
00245     HRESULT GetObject([out] ICorDebugValue **ppObject);
00246     HRESULT ThreadForFiberCookie([in] DWORD fiberCookie, [out] ICorDebugThread **ppThread);
00247     HRESULT GetHelperThreadID([out] DWORD *pThreadID);
00248 };
00249 
00250 [
00251     object,
00252     local,
00253     uuid(3d6f5f63-7538-11d3-8d5b-00104b35e7ef),
00254     pointer_default(unique)
00255 ]
00256 interface ICorDebugAppDomain : ICorDebugController
00257 {
00258     HRESULT GetProcess([out] ICorDebugProcess **ppProcess);
00259     HRESULT EnumerateAssemblies([out] ICorDebugAssemblyEnum **ppAssemblies);
00260     HRESULT GetModuleFromMetaDataInterface([in] IUnknown *pIMetaData,
00261                                            [out] ICorDebugModule **ppModule);
00262     HRESULT EnumerateBreakpoints([out] ICorDebugBreakpointEnum **ppBreakpoints);
00263     HRESULT EnumerateSteppers([out] ICorDebugStepperEnum **ppSteppers);
00264     HRESULT IsAttached([out] BOOL *pbAttached);
00265     HRESULT GetName([in] ULONG32 cchName, [out] ULONG32 *pcchName, [out] WCHAR szName[]);
00266     HRESULT GetObject([out] ICorDebugValue **ppObject);
00267     HRESULT Attach();
00268     HRESULT GetID([out] ULONG32 *pId);
00269 };
00270 
00271 [
00272     object,
00273     local,
00274     uuid(3d6f5f60-7538-11d3-8d5b-00104b35e7ef),
00275     pointer_default(unique)
00276 ]
00277 interface ICorDebugManagedCallback : IUnknown
00278 {
00279     HRESULT Breakpoint([in] ICorDebugAppDomain *pAppDomain,
00280                        [in] ICorDebugThread *pThread,
00281                        [in] ICorDebugBreakpoint *pBreakpoint);
00282 
00283     typedef enum CorDebugStepReason
00284     {
00285         STEP_NORMAL,
00286         STEP_RETURN,
00287         STEP_CALL,
00288         STEP_EXCEPTION_FILTER,
00289         STEP_EXCEPTION_HANDLER,
00290         STEP_INTERCEPT,
00291         STEP_EXIT
00292     } CorDebugStepReason;
00293 
00294     HRESULT StepComplete([in] ICorDebugAppDomain *pAppDomain, [in] ICorDebugThread *pThread,
00295                          [in] ICorDebugStepper *pStepper, [in] CorDebugStepReason reason);
00296     HRESULT Break([in] ICorDebugAppDomain *pAppDomain,
00297                   [in] ICorDebugThread *thread);
00298     HRESULT Exception([in] ICorDebugAppDomain *pAppDomain, [in] ICorDebugThread *pThread,
00299                       [in] BOOL unhandled);
00300     HRESULT EvalComplete([in] ICorDebugAppDomain *pAppDomain, [in] ICorDebugThread *pThread,
00301                          [in] ICorDebugEval *pEval);
00302     HRESULT EvalException([in] ICorDebugAppDomain *pAppDomain, [in] ICorDebugThread *pThread,
00303                           [in] ICorDebugEval *pEval);
00304     HRESULT CreateProcess([in] ICorDebugProcess *pProcess);
00305     HRESULT ExitProcess([in] ICorDebugProcess *pProcess);
00306     HRESULT CreateThread([in] ICorDebugAppDomain *pAppDomain,[in] ICorDebugThread *thread);
00307     HRESULT ExitThread([in] ICorDebugAppDomain *pAppDomain, [in] ICorDebugThread *thread);
00308     HRESULT LoadModule([in] ICorDebugAppDomain *pAppDomain, [in] ICorDebugModule *pModule);
00309     HRESULT UnloadModule([in] ICorDebugAppDomain *pAppDomain, [in] ICorDebugModule *pModule);
00310     HRESULT LoadClass([in] ICorDebugAppDomain *pAppDomain, [in] ICorDebugClass *c);
00311     HRESULT UnloadClass([in] ICorDebugAppDomain *pAppDomain, [in] ICorDebugClass *c);
00312     HRESULT DebuggerError([in] ICorDebugProcess *pProcess, [in] HRESULT errorHR,
00313                           [in] DWORD errorCode);
00314 
00315     typedef enum LoggingLevelEnum
00316     {
00317         LTraceLevel0   = 0,
00318         LTraceLevel1,
00319         LTraceLevel2,
00320         LTraceLevel3,
00321         LTraceLevel4,
00322         LStatusLevel0  = 20,
00323         LStatusLevel1,
00324         LStatusLevel2,
00325         LStatusLevel3,
00326         LStatusLevel4,
00327         LWarningLevel  = 40,
00328         LErrorLevel    = 50,
00329         LPanicLevel    = 100
00330     } LoggingLevelEnum;
00331 
00332     typedef enum LogSwitchCallReason
00333     {
00334         SWITCH_CREATE,
00335         SWITCH_MODIFY,
00336         SWITCH_DELETE
00337     } LogSwitchCallReason;
00338 
00339     HRESULT LogMessage([in] ICorDebugAppDomain *pAppDomain, [in] ICorDebugThread *pThread,
00340                        [in] LONG lLevel, [in] WCHAR *pLogSwitchName, [in] WCHAR *pMessage);
00341     HRESULT LogSwitch([in] ICorDebugAppDomain *pAppDomain, [in] ICorDebugThread *pThread,
00342                       [in] LONG lLevel, [in] ULONG ulReason, [in] WCHAR *pLogSwitchName,
00343                       [in] WCHAR *pParentName);
00344     HRESULT CreateAppDomain([in] ICorDebugProcess *pProcess, [in] ICorDebugAppDomain *pAppDomain);
00345     HRESULT ExitAppDomain([in] ICorDebugProcess *pProcess, [in] ICorDebugAppDomain *pAppDomain);
00346     HRESULT LoadAssembly([in] ICorDebugAppDomain *pAppDomain, [in] ICorDebugAssembly *pAssembly);
00347     HRESULT UnloadAssembly([in] ICorDebugAppDomain *pAppDomain, [in] ICorDebugAssembly *pAssembly);
00348     HRESULT ControlCTrap([in] ICorDebugProcess *pProcess);
00349     HRESULT NameChange([in] ICorDebugAppDomain *pAppDomain, [in] ICorDebugThread *pThread);
00350     HRESULT UpdateModuleSymbols([in] ICorDebugAppDomain *pAppDomain, [in] ICorDebugModule *pModule,
00351                                 [in] IStream *pSymbolStream);
00352     HRESULT EditAndContinueRemap([in] ICorDebugAppDomain *pAppDomain, [in] ICorDebugThread *pThread,
00353                                  [in] ICorDebugFunction *pFunction, [in] BOOL fAccurate);
00354 
00355     HRESULT BreakpointSetError([in] ICorDebugAppDomain *pAppDomain, [in] ICorDebugThread *pThread,
00356                                [in] ICorDebugBreakpoint *pBreakpoint, [in] DWORD dwError);
00357 };
00358 
00359 [
00360     object,
00361     local,
00362     uuid(250E5EEA-DB5C-4C76-B6F3-8C46F12E3203),
00363     pointer_default(unique)
00364 ]
00365 interface ICorDebugManagedCallback2 : IUnknown
00366 {
00367     HRESULT FunctionRemapOpportunity([in] ICorDebugAppDomain *pAppDomain,
00368                    [in] ICorDebugThread *pThread, [in] ICorDebugFunction *pOldFunction,
00369                    [in] ICorDebugFunction *pNewFunction, [in] ULONG32 oldILOffset);
00370 
00371     HRESULT CreateConnection([in] ICorDebugProcess *pProcess, [in] CONNID dwConnectionId,
00372                                 [in] WCHAR *pConnName);
00373 
00374     HRESULT ChangeConnection([in] ICorDebugProcess *pProcess, [in] CONNID dwConnectionId );
00375 
00376     HRESULT DestroyConnection([in] ICorDebugProcess *pProcess, [in] CONNID dwConnectionId );
00377 
00378 
00379     typedef enum CorDebugExceptionCallbackType
00380     {
00381         DEBUG_EXCEPTION_FIRST_CHANCE = 1,
00382         DEBUG_EXCEPTION_USER_FIRST_CHANCE = 2,
00383         DEBUG_EXCEPTION_CATCH_HANDLER_FOUND = 3,
00384         DEBUG_EXCEPTION_UNHANDLED = 4
00385     } CorDebugExceptionCallbackType;
00386 
00387     typedef enum CorDebugExceptionFlags
00388     {
00389         DEBUG_EXCEPTION_CAN_BE_INTERCEPTED = 0x0001
00390     } CorDebugExceptionFlags;
00391 
00392     HRESULT Exception( [in] ICorDebugAppDomain *pAppDomain, [in] ICorDebugThread *pThread,
00393                        [in] ICorDebugFrame *pFrame, [in] ULONG32 nOffset,
00394                        [in] CorDebugExceptionCallbackType dwEventType, [in] DWORD dwFlags );
00395 
00396     typedef enum CorDebugExceptionUnwindCallbackType
00397     {
00398         DEBUG_EXCEPTION_UNWIND_BEGIN = 1,
00399         DEBUG_EXCEPTION_INTERCEPTED = 2
00400     } CorDebugExceptionUnwindCallbackType;
00401 
00402     HRESULT ExceptionUnwind( [in] ICorDebugAppDomain *pAppDomain, [in] ICorDebugThread *pThread,
00403                              [in] CorDebugExceptionUnwindCallbackType dwEventType,
00404                              [in] DWORD dwFlags );
00405 
00406     HRESULT FunctionRemapComplete([in] ICorDebugAppDomain *pAppDomain,
00407                              [in] ICorDebugThread *pThread, [in] ICorDebugFunction *pFunction);
00408 
00409     HRESULT MDANotification([in] ICorDebugController * pController,
00410                             [in] ICorDebugThread *pThread, [in] ICorDebugMDA * pMDA
00411     );
00412 
00413 };
00414 [
00415     object,
00416     local,
00417     uuid(3d6f5f61-7538-11d3-8d5b-00104b35e7ef),
00418     pointer_default(unique)
00419 ]
00420 interface ICorDebug : IUnknown
00421 {
00422     HRESULT Initialize();
00423     HRESULT Terminate();
00424     HRESULT SetManagedHandler([in] ICorDebugManagedCallback *pCallback);
00425     HRESULT SetUnmanagedHandler([in] ICorDebugUnmanagedCallback *pCallback);
00426     HRESULT CreateProcess([in] LPCWSTR lpApplicationName, [in] LPWSTR lpCommandLine,
00427                           [in] LPSECURITY_ATTRIBUTES lpProcessAttributes,
00428                           [in] LPSECURITY_ATTRIBUTES lpThreadAttributes,
00429                           [in] BOOL bInheritHandles, [in] DWORD dwCreationFlags,
00430                           [in] PVOID lpEnvironment, [in] LPCWSTR lpCurrentDirectory,
00431                           [in] LPSTARTUPINFOW lpStartupInfo,
00432                           [in] LPPROCESS_INFORMATION lpProcessInformation,
00433                           [in] CorDebugCreateProcessFlags debuggingFlags,
00434                           [out] ICorDebugProcess **ppProcess);
00435 
00436     HRESULT DebugActiveProcess([in] DWORD id, [in] BOOL win32Attach,
00437                                [out] ICorDebugProcess **ppProcess);
00438     HRESULT EnumerateProcesses([out] ICorDebugProcessEnum **ppProcess);
00439     HRESULT GetProcess([in] DWORD dwProcessId, [out] ICorDebugProcess **ppProcess);
00440     HRESULT CanLaunchOrAttach([in] DWORD dwProcessId, [in] BOOL win32DebuggingEnabled);
00441 };
00442 
00443 
00444 [
00445     object,
00446     local,
00447     uuid(CC7BCAE8-8A68-11d2-983C-0000F808342D),
00448     pointer_default(unique)
00449 ]
00450 interface ICorDebugBreakpoint : IUnknown
00451 {
00452     HRESULT Activate([in] BOOL bActive);
00453     HRESULT IsActive([out] BOOL *pbActive);
00454 };
00455 
00456 [
00457     object,
00458     local,
00459     uuid(CC7BCAE9-8A68-11d2-983C-0000F808342D),
00460     pointer_default(unique)
00461 ]
00462 interface ICorDebugFunctionBreakpoint : ICorDebugBreakpoint
00463 {
00464     HRESULT GetFunction([out] ICorDebugFunction **ppFunction);
00465     HRESULT GetOffset([out] ULONG32 *pnOffset);
00466 };
00467 
00468 [
00469     object,
00470     local,
00471     uuid(CC7BCAEA-8A68-11d2-983C-0000F808342D),
00472     pointer_default(unique)
00473 ]
00474 interface ICorDebugModuleBreakpoint : ICorDebugBreakpoint
00475 {
00476     HRESULT GetModule([out] ICorDebugModule **ppModule);
00477 };
00478 
00479 [
00480     object,
00481     local,
00482     uuid(CC7BCAEB-8A68-11d2-983C-0000F808342D),
00483     pointer_default(unique)
00484 ]
00485 interface ICorDebugValueBreakpoint : ICorDebugBreakpoint
00486 {
00487     HRESULT GetValue([out] ICorDebugValue **ppValue);
00488 };
00489 
00490 [
00491     object,
00492     local,
00493     uuid(CC7BCAEC-8A68-11d2-983C-0000F808342D),
00494     pointer_default(unique)
00495 ]
00496 interface ICorDebugStepper : IUnknown
00497 {
00498     HRESULT IsActive([out] BOOL *pbActive);
00499     HRESULT Deactivate();
00500 
00501     typedef enum CorDebugIntercept
00502     {
00503           INTERCEPT_NONE                = 0x0 ,
00504           INTERCEPT_CLASS_INIT          = 0x01,
00505           INTERCEPT_EXCEPTION_FILTER    = 0x02,
00506           INTERCEPT_SECURITY            = 0x04,
00507           INTERCEPT_CONTEXT_POLICY      = 0x08,
00508           INTERCEPT_INTERCEPTION        = 0x10,
00509           INTERCEPT_ALL                 = 0xffff
00510     } CorDebugIntercept;
00511 
00512     HRESULT SetInterceptMask([in] CorDebugIntercept mask);
00513 
00514     typedef enum CorDebugUnmappedStop
00515     {
00516         STOP_NONE               = 0x0,
00517         STOP_PROLOG             = 0x01,
00518         STOP_EPILOG             = 0x02,
00519         STOP_NO_MAPPING_INFO    = 0x04,
00520         STOP_OTHER_UNMAPPED     = 0x08,
00521         STOP_UNMANAGED          = 0x10,
00522 
00523         STOP_ALL                = 0xffff,
00524 
00525     } CorDebugUnmappedStop;
00526 
00527     HRESULT SetUnmappedStopMask([in] CorDebugUnmappedStop mask);
00528     HRESULT Step([in] BOOL bStepIn);
00529 
00530     typedef struct COR_DEBUG_STEP_RANGE
00531     {
00532         ULONG32 startOffset, endOffset;
00533     } COR_DEBUG_STEP_RANGE;
00534 
00535     HRESULT StepRange([in] BOOL bStepIn, [in] COR_DEBUG_STEP_RANGE ranges[], [in] ULONG32 cRangeCount);
00536     HRESULT StepOut();
00537     HRESULT SetRangeIL([in] BOOL bIL);
00538 };
00539 
00540 [
00541     object,
00542     local,
00543     uuid(CC7BCB01-8A68-11d2-983C-0000F808342D),
00544     pointer_default(unique)
00545 ]
00546 interface ICorDebugEnum : IUnknown
00547 {
00548     HRESULT Skip([in] ULONG celt);
00549     HRESULT Reset();
00550     HRESULT Clone([out] ICorDebugEnum **ppEnum);
00551     HRESULT GetCount([out] ULONG *pcelt);
00552 };
00553 
00554 [
00555     object,
00556     local,
00557     uuid(63ca1b24-4359-4883-bd57-13f815f58744),
00558     pointer_default(unique)
00559 ]
00560 
00561 interface ICorDebugAppDomainEnum : ICorDebugEnum
00562 {
00563     HRESULT Next([in] ULONG celt, [out] ICorDebugAppDomain *values[], [out] ULONG *pceltFetched);
00564 
00565 };
00566 
00567 [
00568     object,
00569     local,
00570     uuid(4a2a1ec9-85ec-4bfb-9f15-a89fdfe0fe83),
00571     pointer_default(unique)
00572 ]
00573 interface ICorDebugAssemblyEnum : ICorDebugEnum
00574 {
00575     HRESULT Next([in] ULONG celt, [out] ICorDebugAssembly *values[], [out] ULONG *pceltFetched);
00576 
00577 };
00578 
00579 [
00580     object,
00581     local,
00582     uuid(CC7BCB03-8A68-11d2-983C-0000F808342D),
00583     pointer_default(unique)
00584 ]
00585 interface ICorDebugBreakpointEnum : ICorDebugEnum
00586 {
00587     HRESULT Next([in] ULONG celt, [out] ICorDebugBreakpoint *breakpoints[], [out] ULONG *pceltFetched);
00588 };
00589 
00590 [
00591     object,
00592     local,
00593     uuid(CC7BCB08-8A68-11d2-983C-0000F808342D),
00594     pointer_default(unique)
00595 ]
00596 interface ICorDebugChainEnum : ICorDebugEnum
00597 {
00598     HRESULT Next([in] ULONG celt, [out] ICorDebugChain *chains[], [out] ULONG *pceltFetched);
00599 };
00600 
00601 [
00602     object,
00603     local,
00604     uuid(F0E18809-72B5-11d2-976F-00A0C9B4D50C),
00605     pointer_default(unique)
00606 ]
00607 interface ICorDebugErrorInfoEnum : ICorDebugEnum
00608 {
00609     HRESULT Next([in] ULONG celt, [out] ICorDebugEditAndContinueErrorInfo *errors[],
00610                  [out] ULONG *pceltFetched);
00611 };
00612 
00613 [
00614     object,
00615     local,
00616     uuid(CC7BCB07-8A68-11d2-983C-0000F808342D),
00617     pointer_default(unique)
00618 ]
00619 interface ICorDebugFrameEnum : ICorDebugEnum
00620 {
00621     HRESULT Next([in] ULONG celt, [out] ICorDebugFrame *frames[], [out] ULONG *pceltFetched);
00622 };
00623 
00624 [
00625     object,
00626     local,
00627     uuid(CC7BCB09-8A68-11d2-983C-0000F808342D),
00628     pointer_default(unique)
00629 ]
00630 interface ICorDebugModuleEnum : ICorDebugEnum
00631 {
00632     HRESULT Next([in] ULONG celt, [out] ICorDebugModule *modules[], [out] ULONG *pceltFetched);
00633 };
00634 
00635 [
00636     object,
00637     local,
00638     uuid(CC7BCB02-8A68-11d2-983C-0000F808342D),
00639     pointer_default(unique)
00640 ]
00641 interface ICorDebugObjectEnum : ICorDebugEnum
00642 {
00643     HRESULT Next([in] ULONG celt, [out] CORDB_ADDRESS objects[], [out] ULONG *pceltFetched);
00644 };
00645 
00646 [
00647     object,
00648     local,
00649     uuid(CC7BCB05-8A68-11d2-983C-0000F808342D),
00650     pointer_default(unique)
00651 ]
00652 interface ICorDebugProcessEnum : ICorDebugEnum
00653 {
00654     HRESULT Next([in] ULONG celt, [out] ICorDebugProcess *processes[], [out] ULONG *pceltFetched);
00655 };
00656 
00657 [
00658     object,
00659     local,
00660     uuid(CC7BCB04-8A68-11d2-983C-0000F808342D),
00661     pointer_default(unique)
00662 ]
00663 interface ICorDebugStepperEnum : ICorDebugEnum
00664 {
00665     HRESULT Next([in] ULONG celt, [out] ICorDebugStepper *steppers[], [out] ULONG *pceltFetched);
00666 };
00667 
00668 [
00669     object,
00670     local,
00671     uuid(CC7BCB06-8A68-11d2-983C-0000F808342D),
00672     pointer_default(unique)
00673 ]
00674 interface ICorDebugThreadEnum : ICorDebugEnum
00675 {
00676     HRESULT Next([in] ULONG celt, [out] ICorDebugThread *threads[], [out] ULONG *pceltFetched);
00677 };
00678 
00679 [
00680     object,
00681     local,
00682     uuid(CC7BCAEE-8A68-11d2-983C-0000F808342D),
00683     pointer_default(unique)
00684 ]
00685 interface ICorDebugChain : IUnknown
00686 {
00687     HRESULT GetThread([out] ICorDebugThread **ppThread);
00688     HRESULT GetStackRange([out] CORDB_ADDRESS *pStart, [out] CORDB_ADDRESS *pEnd);
00689     HRESULT GetContext([out] ICorDebugContext **ppContext);
00690     HRESULT GetCaller([out] ICorDebugChain **ppChain);
00691     HRESULT GetCallee([out] ICorDebugChain **ppChain);
00692     HRESULT GetPrevious([out] ICorDebugChain **ppChain);
00693     HRESULT GetNext([out] ICorDebugChain **ppChain);
00694     HRESULT IsManaged([out] BOOL *pManaged);
00695     HRESULT EnumerateFrames([out] ICorDebugFrameEnum **ppFrames);
00696     HRESULT GetActiveFrame([out] ICorDebugFrame **ppFrame);
00697     HRESULT GetRegisterSet([out] ICorDebugRegisterSet **ppRegisters);
00698     typedef enum CorDebugChainReason
00699     {
00700         CHAIN_NONE              = 0x000,
00701         CHAIN_CLASS_INIT        = 0x001,
00702         CHAIN_EXCEPTION_FILTER  = 0x002,
00703         CHAIN_SECURITY          = 0x004,
00704         CHAIN_CONTEXT_POLICY    = 0x008,
00705         CHAIN_INTERCEPTION      = 0x010,
00706         CHAIN_PROCESS_START     = 0x020,
00707         CHAIN_THREAD_START      = 0x040,
00708         CHAIN_ENTER_MANAGED     = 0x080,
00709         CHAIN_ENTER_UNMANAGED   = 0x100,
00710         CHAIN_DEBUGGER_EVAL     = 0x200,
00711         CHAIN_CONTEXT_SWITCH    = 0x400,
00712         CHAIN_FUNC_EVAL         = 0x800,
00713     } CorDebugChainReason;
00714 
00715     HRESULT GetReason([out] CorDebugChainReason *pReason);
00716 };
00717 
00718 [
00719     object,
00720     local,
00721     uuid(CC7BCAEF-8A68-11d2-983C-0000F808342D),
00722     pointer_default(unique)
00723 ]
00724 interface ICorDebugFrame : IUnknown
00725 {
00726     HRESULT GetChain([out] ICorDebugChain **ppChain);
00727     HRESULT GetCode([out] ICorDebugCode **ppCode);
00728     HRESULT GetFunction([out] ICorDebugFunction **ppFunction);
00729     HRESULT GetFunctionToken([out] mdMethodDef *pToken);
00730     HRESULT GetStackRange([out] CORDB_ADDRESS *pStart, [out] CORDB_ADDRESS *pEnd);
00731     HRESULT GetCaller([out] ICorDebugFrame **ppFrame);
00732     HRESULT GetCallee([out] ICorDebugFrame **ppFrame);
00733     HRESULT CreateStepper([out] ICorDebugStepper **ppStepper);
00734 };
00735 
00736 
00737 [
00738     object,
00739     local,
00740     uuid(CC7BCB0B-8A68-11d2-983C-0000F808342D),
00741     pointer_default(unique)
00742 ]
00743 interface ICorDebugRegisterSet : IUnknown
00744 {
00745     typedef enum CorDebugRegister
00746     {
00747         REGISTER_INSTRUCTION_POINTER = 0,
00748         REGISTER_STACK_POINTER,
00749         REGISTER_FRAME_POINTER,
00750 
00751         REGISTER_X86_EIP = 0,
00752         REGISTER_X86_ESP,
00753         REGISTER_X86_EBP,
00754 
00755         REGISTER_X86_EAX,
00756         REGISTER_X86_ECX,
00757         REGISTER_X86_EDX,
00758         REGISTER_X86_EBX,
00759 
00760         REGISTER_X86_ESI,
00761         REGISTER_X86_EDI,
00762 
00763         REGISTER_X86_FPSTACK_0,
00764         REGISTER_X86_FPSTACK_1,
00765         REGISTER_X86_FPSTACK_2,
00766         REGISTER_X86_FPSTACK_3,
00767         REGISTER_X86_FPSTACK_4,
00768         REGISTER_X86_FPSTACK_5,
00769         REGISTER_X86_FPSTACK_6,
00770         REGISTER_X86_FPSTACK_7,
00771 
00772         REGISTER_AMD64_RIP = 0,
00773         REGISTER_AMD64_RSP,
00774         REGISTER_AMD64_RBP,
00775 
00776         REGISTER_AMD64_RAX,
00777         REGISTER_AMD64_RCX,
00778         REGISTER_AMD64_RDX,
00779         REGISTER_AMD64_RBX,
00780 
00781         REGISTER_AMD64_RSI,
00782         REGISTER_AMD64_RDI,
00783 
00784         REGISTER_AMD64_R8,
00785         REGISTER_AMD64_R9,
00786         REGISTER_AMD64_R10,
00787         REGISTER_AMD64_R11,
00788         REGISTER_AMD64_R12,
00789         REGISTER_AMD64_R13,
00790         REGISTER_AMD64_R14,
00791         REGISTER_AMD64_R15,
00792 
00793         REGISTER_AMD64_XMM0,
00794         REGISTER_AMD64_XMM1,
00795         REGISTER_AMD64_XMM2,
00796         REGISTER_AMD64_XMM3,
00797         REGISTER_AMD64_XMM4,
00798         REGISTER_AMD64_XMM5,
00799         REGISTER_AMD64_XMM6,
00800         REGISTER_AMD64_XMM7,
00801         REGISTER_AMD64_XMM8,
00802         REGISTER_AMD64_XMM9,
00803         REGISTER_AMD64_XMM10,
00804         REGISTER_AMD64_XMM11,
00805         REGISTER_AMD64_XMM12,
00806         REGISTER_AMD64_XMM13,
00807         REGISTER_AMD64_XMM14,
00808         REGISTER_AMD64_XMM15,
00809 
00810         REGISTER_IA64_BSP = REGISTER_FRAME_POINTER,
00811 
00812         REGISTER_IA64_R0  = REGISTER_IA64_BSP + 1,
00813         REGISTER_IA64_F0  = REGISTER_IA64_R0  + 128,
00814 
00815     } CorDebugRegister;
00816 
00817     HRESULT GetRegistersAvailable([out] ULONG64 *pAvailable);
00818 
00819     HRESULT GetRegisters([in] ULONG64 mask, [in] ULONG32 regCount,
00820                          [out] CORDB_REGISTER regBuffer[]);
00821     HRESULT SetRegisters([in] ULONG64 mask, [in] ULONG32 regCount,
00822                          [in] CORDB_REGISTER regBuffer[]);
00823     HRESULT GetThreadContext([in] ULONG32 contextSize, [in, out] BYTE context[]);
00824     HRESULT SetThreadContext([in] ULONG32 contextSize, [in] BYTE context[]);
00825 }
00826 
00827 [
00828     object,
00829     local,
00830     uuid(CC7BCAF6-8A68-11d2-983C-0000F808342D),
00831     pointer_default(unique)
00832 ]
00833 interface ICorDebugEval : IUnknown
00834 {
00835     HRESULT CallFunction([in] ICorDebugFunction *pFunction, [in] ULONG32 nArgs,
00836                          [in] ICorDebugValue *ppArgs[]);
00837     HRESULT NewObject([in] ICorDebugFunction *pConstructor, [in] ULONG32 nArgs,
00838                       [in] ICorDebugValue *ppArgs[]);
00839     HRESULT NewObjectNoConstructor([in] ICorDebugClass *pClass);
00840     HRESULT NewString([in] LPCWSTR string);
00841     HRESULT NewArray([in] CorElementType elementType, [in] ICorDebugClass *pElementClass,
00842                      [in] ULONG32 rank, [in] ULONG32 dims[], [in] ULONG32 lowBounds[]);
00843     HRESULT IsActive([out] BOOL *pbActive);
00844     HRESULT Abort();
00845     HRESULT GetResult([out] ICorDebugValue **ppResult);
00846     HRESULT GetThread([out] ICorDebugThread **ppThread);
00847     HRESULT CreateValue([in] CorElementType elementType, [in] ICorDebugClass *pElementClass,
00848                         [out] ICorDebugValue **ppValue);
00849 };
00850 
00851 [
00852     object,
00853     local,
00854     uuid(6DC3FA01-D7CB-11d2-8A95-0080C792E5D8),
00855     pointer_default(unique)
00856 ]
00857 interface ICorDebugEditAndContinueSnapshot : IUnknown
00858 {
00859     HRESULT CopyMetaData([in] IStream *pIStream, [out] GUID *pMvid);
00860     HRESULT GetMvid([out] GUID *pMvid);
00861     HRESULT GetRoDataRVA([out] ULONG32 *pRoDataRVA);
00862     HRESULT GetRwDataRVA([out] ULONG32 *pRwDataRVA);
00863     HRESULT SetPEBytes([in] IStream *pIStream);
00864     HRESULT SetILMap([in] mdToken mdFunction, [in] ULONG cMapSize, [in] COR_IL_MAP map[]);
00865     HRESULT SetPESymbolBytes([in] IStream *pIStream);
00866 };
00867 
00868 [
00869     object,
00870     local,
00871     uuid(dba2d8c1-e5c5-4069-8c13-10a7c6abf43d),
00872     pointer_default(unique)
00873 ]
00874 interface ICorDebugModule : IUnknown
00875 {
00876     HRESULT GetProcess([out] ICorDebugProcess **ppProcess);
00877     HRESULT GetBaseAddress([out] CORDB_ADDRESS *pAddress);
00878     HRESULT GetAssembly([out] ICorDebugAssembly **ppAssembly);
00879     HRESULT GetName([in] ULONG32 cchName, [out] ULONG32 *pcchName, [out] WCHAR szName[]);
00880     HRESULT EnableJITDebugging([in] BOOL bTrackJITInfo, [in] BOOL bAllowJitOpts);
00881     HRESULT EnableClassLoadCallbacks([in] BOOL bClassLoadCallbacks);
00882     HRESULT GetFunctionFromToken([in] mdMethodDef methodDef, [out] ICorDebugFunction **ppFunction);
00883     HRESULT GetFunctionFromRVA([in] CORDB_ADDRESS rva, [out] ICorDebugFunction **ppFunction);
00884     HRESULT GetClassFromToken([in] mdTypeDef typeDef, [out] ICorDebugClass **ppClass);
00885     HRESULT CreateBreakpoint([out] ICorDebugModuleBreakpoint **ppBreakpoint);
00886     HRESULT GetEditAndContinueSnapshot([out] ICorDebugEditAndContinueSnapshot **ppEditAndContinueSnapshot);
00887     HRESULT GetMetaDataInterface([in] REFIID riid, [out] IUnknown **ppObj);
00888     HRESULT GetToken([out] mdModule *pToken);
00889     HRESULT IsDynamic([out] BOOL *pDynamic);
00890     HRESULT GetGlobalVariableValue([in] mdFieldDef fieldDef, [out] ICorDebugValue **ppValue);
00891     HRESULT GetSize([out] ULONG32 *pcBytes);
00892     HRESULT IsInMemory([out] BOOL *pInMemory);
00893 };
00894 
00895 [
00896     object,
00897     local,
00898     uuid(CC7BCAF5-8A68-11d2-983C-0000F808342D),
00899     pointer_default(unique)
00900 ]
00901 interface ICorDebugClass : IUnknown
00902 {
00903     HRESULT GetModule([out] ICorDebugModule **pModule);
00904     HRESULT GetToken([out] mdTypeDef *pTypeDef);
00905     HRESULT GetStaticFieldValue([in] mdFieldDef fieldDef, [in] ICorDebugFrame *pFrame,
00906                                 [out] ICorDebugValue **ppValue);
00907 };
00908 
00909 [
00910     object,
00911     local,
00912     uuid(df59507c-d47a-459e-bce2-6427eac8fd06),
00913     pointer_default(unique)
00914 ]
00915 interface ICorDebugAssembly : IUnknown
00916 {
00917     HRESULT GetProcess([out] ICorDebugProcess **ppProcess);
00918     HRESULT GetAppDomain([out] ICorDebugAppDomain **ppAppDomain);
00919     HRESULT EnumerateModules([out] ICorDebugModuleEnum **ppModules);
00920     HRESULT GetCodeBase([in] ULONG32 cchName, [out] ULONG32 *pcchName, [out] WCHAR szName[]);
00921     HRESULT GetName([in] ULONG32 cchName, [out] ULONG32 *pcchName, [out] WCHAR szName[]);
00922 };
00923 
00924 
00925 [
00926     object,
00927     local,
00928     uuid(CC7BCAF3-8A68-11d2-983C-0000F808342D),
00929     pointer_default(unique)
00930 ]
00931 interface ICorDebugFunction : IUnknown
00932 {
00933     HRESULT GetModule([out] ICorDebugModule **ppModule);
00934     HRESULT GetClass([out] ICorDebugClass **ppClass);
00935     HRESULT GetToken([out] mdMethodDef *pMethodDef);
00936     HRESULT GetILCode([out] ICorDebugCode **ppCode);
00937     HRESULT GetNativeCode([out] ICorDebugCode **ppCode);
00938     HRESULT CreateBreakpoint([out] ICorDebugFunctionBreakpoint **ppBreakpoint);
00939     HRESULT GetLocalVarSigToken([out] mdSignature *pmdSig);
00940     HRESULT GetCurrentVersionNumber([out] ULONG32 *pnCurrentVersion);
00941 };
00942 
00943 [
00944     object,
00945     local,
00946     uuid(5263E909-8CB5-11d3-BD2F-0000F80849BD),
00947     pointer_default(unique)
00948 ]
00949 interface ICorDebugUnmanagedCallback : IUnknown
00950 {
00951     HRESULT DebugEvent([in] LPDEBUG_EVENT pDebugEvent, [in] BOOL fOutOfBand);
00952 };
00953 
00954 [
00955     object,
00956     local,
00957     uuid(8D600D41-F4F6-4cb3-B7EC-7BD164944036),
00958     pointer_default(unique)
00959 ]
00960 interface ICorDebugEditAndContinueErrorInfo : IUnknown
00961 {
00962     HRESULT GetModule([out] ICorDebugModule **ppModule);
00963     HRESULT GetToken([out]mdToken *pToken);
00964     HRESULT GetErrorCode([out]HRESULT *pHr);
00965     HRESULT GetString([in] ULONG32 cchString, [out] ULONG32 *pcchString,
00966                       [out] WCHAR szString[]);
00967 }
00968 
00969 [
00970     object,
00971     local,
00972     uuid(18AD3D6E-B7D2-11d2-BD04-0000F80849BD),
00973     pointer_default(unique)
00974 ]
00975 interface ICorDebugObjectValue : ICorDebugValue
00976 {
00977     HRESULT GetClass([out] ICorDebugClass **ppClass);
00978     HRESULT GetFieldValue([in] ICorDebugClass *pClass, [in] mdFieldDef fieldDef,
00979                           [out] ICorDebugValue **ppValue);
00980     HRESULT GetVirtualMethod([in] mdMemberRef memberRef, [out] ICorDebugFunction **ppFunction);
00981     HRESULT GetContext([out] ICorDebugContext **ppContext);
00982     HRESULT IsValueClass([out] BOOL *pbIsValueClass);
00983     HRESULT GetManagedCopy([out] IUnknown **ppObject);
00984     HRESULT SetFromManagedCopy([in] IUnknown *pObject);
00985 };
00986 
00987 [
00988     object,
00989     local,
00990     uuid(CC7BCB00-8A68-11d2-983C-0000F808342D),
00991     pointer_default(unique)
00992 ]
00993 interface ICorDebugContext : ICorDebugObjectValue
00994 {
00995 };
00996 
00997 [
00998     object,
00999     local,
01000     uuid(CC7BCAF4-8A68-11d2-983C-0000F808342D),
01001     pointer_default(unique)
01002 ]
01003 interface ICorDebugCode : IUnknown
01004 {
01005     HRESULT IsIL([out] BOOL *pbIL);
01006     HRESULT GetFunction([out] ICorDebugFunction **ppFunction);
01007     HRESULT GetAddress([out] CORDB_ADDRESS *pStart);
01008     HRESULT GetSize([out] ULONG32 *pcBytes);
01009     HRESULT CreateBreakpoint([in] ULONG32 offset, [out] ICorDebugFunctionBreakpoint **ppBreakpoint);
01010     HRESULT GetCode([in] ULONG32 startOffset, [in] ULONG32 endOffset,
01011                     [in] ULONG32 cBufferAlloc, [out] BYTE buffer[], [out] ULONG32 *pcBufferSize);
01012     HRESULT GetVersionNumber([out] ULONG32 *nVersion);
01013     HRESULT GetILToNativeMapping([in] ULONG32 cMap, [out] ULONG32 *pcMap,
01014                                  [out] COR_DEBUG_IL_TO_NATIVE_MAP map[]);
01015     HRESULT GetEnCRemapSequencePoints([in] ULONG32 cMap,[out] ULONG32 *pcMap,
01016                                       [out] ULONG32 offsets[]);
01017 };
01018 
01019 [
01020     object,
01021     local,
01022     uuid(CC726F2F-1DB7-459b-B0EC-05F01D841B42),
01023     pointer_default(unique)
01024 ]
01025 interface ICorDebugMDA : IUnknown
01026 {
01027     HRESULT GetName([in] ULONG32 cchName, [out] ULONG32 * pcchName, [out] WCHAR szName[]);
01028 
01029     HRESULT GetDescription([in] ULONG32 cchName, [out] ULONG32 * pcchName, [out] WCHAR szName[]);
01030 
01031     HRESULT GetXML([in] ULONG32 cchName, [out] ULONG32 * pcchName, [out] WCHAR szName[]);
01032 
01033     typedef enum CorDebugMDAFlags
01034     {
01035         MDA_FLAG_SLIP = 0x2
01036     } CorDebugMDAFlags;
01037 
01038     HRESULT GetFlags([in] CorDebugMDAFlags * pFlags);
01039 
01040     HRESULT GetOSThreadId([out] DWORD * pOsTid);
01041 };

Generated on Fri May 25 2012 04:29:47 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.