// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. /***************************************************************************** ** ** ** XCordebug.idl - Experimental (undocumented) Debugging interfaces. ** ** ** *****************************************************************************/ /* ------------------------------------------------------------------------- * * Imported types * ------------------------------------------------------------------------- */ import "cordebug.idl"; // @dbgtodo : proper API docs here. // - include failure semantics of Filter. What does failure mean? // /* Comments to add to ICorDebugDataTarget docs: * Whenever the target process changes, the debugger client must * call ICorDebugProcess4::ProcessStateChanged before issuing any other * ICorDebug API calls. */ [ object, local, uuid(E930C679-78AF-4953-8AB7-B0AABF0F9F80), pointer_default(unique) ] interface ICorDebugProcess4 : IUnknown { /* * Process native debug events. */ HRESULT Filter( [in, length_is(countBytes), size_is(countBytes)] const BYTE pRecord[], [in] DWORD countBytes, [in] CorDebugRecordFormat format, [in] DWORD dwFlags, [in] DWORD dwThreadId, [in] ICorDebugManagedCallback * pCallback, [in, out] CORDB_CONTINUE_STATUS * pContinueStatus); /* * Debugger calls this to notify ICorDebug that the process is running. * * Notes: * ProcessStateChanged(PROCESS_RUNNING) has similar semantics to ICorDebugProcess::Continue(); */ HRESULT ProcessStateChanged([in] CorDebugStateChange eChange); }; #ifdef FEATURE_LEGACYNETCF_DBG_HOST_CONTROL /* A private API for use on Windows phone to invoke CLR hosting * callbacks on IHostNetCFDebugControlManager. This allows the * host's UI thread to be suspended and resumed on demand. * * This API should not be used for anything other than the * Windows Phone scenario, it should never be made public, * and as soon as we support mixed-mode debugging it should * be retired by removing the interface and failing any * QueryInterface call for it. */ [ object, local, uuid(34B27FB0-A318-450D-A0DD-11B70B21F41D), pointer_default(unique) ] interface ICorDebugLegacyNetCFHostCallbackInvoker_PrivateWindowsPhoneOnly : IUnknown { // Invokes IHostNetCFDebugControlManager::NotifyPause() on the debuggee's host HRESULT InvokePauseCallback(); // Invokes IHostNetCFDebugControlManager::NotifyResume() on the debuggee's host HRESULT InvokeResumeCallback(); }; #endif