403Webshell
Server IP : 209.209.40.120  /  Your IP : 216.73.217.112
Web Server : Microsoft-IIS/10.0
System : Windows NT NEWWWW 10.0 build 17763 (Windows Server 2019) i586
User : NEWWWW$ ( 0)
PHP Version : 8.3.30
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /Program Files (x86)/Windows Kits/10/Include/10.0.19041.0/um/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /Program Files (x86)/Windows Kits/10/Include/10.0.19041.0/um//activdbg100.idl
// ActivDbg100.idl : ActiveX Debugging Interfaces for PDM v10.0
cpp_quote("//=--------------------------------------------------------------------------=")
cpp_quote("// ActivDbg100.h")
cpp_quote("//=--------------------------------------------------------------------------=")
cpp_quote("// (C) Copyright Microsoft Corporation.  All Rights Reserved.")
cpp_quote("//")
cpp_quote("// THIS CODE AND INFORMATION IS PROVIDED \"AS IS\" WITHOUT WARRANTY OF")
cpp_quote("// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO")
cpp_quote("// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A")
cpp_quote("// PARTICULAR PURPOSE.")
cpp_quote("//=--------------------------------------------------------------------------=")
cpp_quote("//")
cpp_quote("#include <winapifamily.h>")

#pragma region Desktop Family
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")

cpp_quote("//")
cpp_quote("// Declarations for ActiveX Scripting authoring/Debugging.")
cpp_quote("//")

#ifdef _MSC_VER
#pragma once
#endif  // _MSC_VER

import "activdbg.idl";

// Flag enumerator of the types of nodes to exclude
typedef enum tagAPPLICATION_NODE_EVENT_FILTER {
    // send all events
    FILTER_EXCLUDE_NOTHING = 0,
    // Exclude 'anonymous code' nodes. 'annonymous code' nodes are used by the jscript
    // runtime for 'new Function([args,] <code>)'
    FILTER_EXCLUDE_ANONYMOUS_CODE = 0x1,
    // Exclude 'eval code' nodes. 'eval code' nodes are used by the jscript runtime for
    // 'eval' support.
    FILTER_EXCLUDE_EVAL_CODE = 0x2
} APPLICATION_NODE_EVENT_FILTER;

// Array of IDebugDocumentText, Members allocated with CoTaskMemAlloc
typedef struct tagTEXT_DOCUMENT_ARRAY
{
    DWORD dwCount;
    [size_is(dwCount)] IDebugDocumentText **Members;
} TEXT_DOCUMENT_ARRAY;

// Interface implemented by PDM v10.0 and better. This can be QI'ed from the implementation
// of IDebugApplicationNode
[
    object,
    uuid(90a7734e-841b-4f77-9384-a2891e76e7e2),
    pointer_default(unique)
]
interface IDebugApplicationNode100: IUnknown
{
    // Sets the filter on a particular IDebugApplicationNodeEvents implementation. It 
    // allows script debuggers to filter out complier-generated child application nodes
    // so that the PDM will no longer send events when these are created/removed. By 
    // default, all nodes will be sent.
    HRESULT SetFilterForEventSink(
        [in] DWORD dwCookie,
        [in] APPLICATION_NODE_EVENT_FILTER filter
        );

    // Obtains the text documents which are hidden by the specified filter
    HRESULT GetExcludedDocuments(
        [in] APPLICATION_NODE_EVENT_FILTER filter,
        [out] TEXT_DOCUMENT_ARRAY* pDocuments
        );

    // Determines if the specified document is the document of one of the child
    // nodes of this node.
    HRESULT QueryIsChildNode(
        [in] IDebugDocument* pSearchKey
        );
};

interface IWebAppDiagnosticsSetupEvent;
// -------------------------------------------------------------
// IWebAppDiagnosticsSetup - interface exposed by PDM application
// objects to create COM objects in the debugee process and pass 
// off IWebBrowser2 to enable web diagnostics
// 
[
    object,
    uuid(379BFBE1-C6C9-432A-93E1-6D17656C538C),
    pointer_default(unique)
]
interface IWebAppDiagnosticsSetup : IUnknown
{
    HRESULT DiagnosticsSupported(
        [out, retval] VARIANT_BOOL* pRetVal
        );
    // See: http://blogs.msdn.com/b/larryosterman/archive/2005/01/31/363881.aspx 
    // for why pipeHandle is a DWORD_PTR and not a HANDLE_PTR
    HRESULT CreateObjectWithSiteAtWebApp(
        [in] REFCLSID rclsid, 
        [in] DWORD dwClsContext, 
        [in] REFIID riid, 
        [in] DWORD_PTR hPassToObject
        );
};

// Flags enum indicating a set of options and/or capabilities that apply to the attached debugger
enum SCRIPT_DEBUGGER_OPTIONS
{
    // no options are set
    SDO_NONE                                = 0x00000000,

    // Indicates if the script runtime should raise BREAKREASON_ERROR events when an exception
    // is thrown. This option may be set by the debugger, or set by user-code via 
    // 'Debug.enableFirstChanceExceptions(<true|false>)'.
    SDO_ENABLE_FIRST_CHANCE_EXCEPTIONS      = 0x00000001,
    
    // Indicates if the attached debugger supports web workers.
    SDO_ENABLE_WEB_WORKER_SUPPORT           = 0x00000002,

    // Indicates if the attached debugger enables the script runtime to participate in
    // identifying exception in non-user code.
    SDO_ENABLE_NONUSER_CODE_SUPPORT         = 0x00000004,
    
    // Indicates if the debugger supports handling library stack frame (provided for purpose of
    // display only, no associated code/document context)
    SDO_ENABLE_LIBRARY_STACK_FRAME          = 0x00000008
};

cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(SCRIPT_DEBUGGER_OPTIONS)")

// Interface implemented by the IDebugApplication object in pdm.dll to provide new capabilities
// which are intended to be callable by script debuggers in addition to in proc callers.
[
    object,
    uuid(D5FE005B-2836-485e-B1F9-89D91AA24FD4),
    pointer_default(unique),
]
interface IRemoteDebugApplication110: IUnknown
{
    // Called to update debugger options. This method should be called after ConnectDebugger.
    // DisconnectDebugger automatically resets to the default options.
    // The options default to 0 (SDO_NONE).
    HRESULT SetDebuggerOptions(
        [in] enum SCRIPT_DEBUGGER_OPTIONS mask,
        [in] enum SCRIPT_DEBUGGER_OPTIONS value
    );

    // Returns the current set of options which are enabled
    HRESULT GetCurrentDebuggerOptions([out] enum SCRIPT_DEBUGGER_OPTIONS* pCurrentOptions);
    // Returns the Main thread for hosts that call SetSite (IE) otherwise returns E_FAIL
    HRESULT GetMainThread([out] IRemoteDebugApplicationThread **ppThread);
}

cpp_quote("#ifndef DISABLE_ACTIVDBG_INTERFACE_WRAPPERS")  
cpp_quote("#ifdef _WIN64")  
cpp_quote("#define IDebugApplication110 IDebugApplication11064")  
cpp_quote("#define IID_IDebugApplication110 IID_IDebugApplication11064")  
cpp_quote("#else")  
cpp_quote("#define IDebugApplication110 IDebugApplication11032")  
cpp_quote("#define IID_IDebugApplication110 IID_IDebugApplication11032")  
cpp_quote("#endif")  
cpp_quote("#endif")  


// Interface implemented by the IDebugApplication object in pdm.dll to provide new capabilities
// which are intended to be callable from inside the script target process (local).

[
    object,
    uuid(BDB3B5DE-89F2-4E11-84A5-97445F941C7D),
    local,
    pointer_default(unique)
]
interface IDebugApplication11032 : IRemoteDebugApplication110
{
    HRESULT SynchronousCallInMainThread([in] IDebugThreadCall32* pptc, [in] DWORD_PTR dwParam1, [in] DWORD_PTR dwParam2, [in] DWORD_PTR dwParam3);
    HRESULT AsynchronousCallInMainThread([in] IDebugThreadCall32* pptc, [in] DWORD_PTR dwParam1, [in] DWORD_PTR dwParam2, [in] DWORD_PTR dwParam3);

    // Waits for any of the specified handles to be signalled while allowing cross-thread calls to be posted to this thread. API must
    // be called from the debugger thread.
    HRESULT CallableWaitForHandles([in] DWORD handleCount, [in, size_is(handleCount)] const HANDLE* pHandles, [out] DWORD* pIndex);
}

[
    object,
    uuid(2039D958-4EEB-496A-87BB-2E5201EADEEF),
    local,
    pointer_default(unique)
]
interface IDebugApplication11064 : IRemoteDebugApplication110
{
    HRESULT SynchronousCallInMainThread([in] IDebugThreadCall64* pptc, [in] DWORD_PTR dwParam1, [in] DWORD_PTR dwParam2, [in] DWORD_PTR dwParam3);
    HRESULT AsynchronousCallInMainThread([in] IDebugThreadCall64* pptc, [in] DWORD_PTR dwParam1, [in] DWORD_PTR dwParam2, [in] DWORD_PTR dwParam3);

    // Waits for any of the specified handles to be signalled while allowing cross-thread calls to be posted to this thread. API must
    // be called from the debugger thread.
    HRESULT CallableWaitForHandles([in] DWORD handleCount, [in, size_is(handleCount)] const HANDLE* pHandles, [out] DWORD* pIndex);
}

[
    object,
    uuid(16FF3A42-A5F5-432B-B625-8E8E16F57E15),
    local,
    pointer_default(unique)
]
interface IWebAppDiagnosticsObjectInitialization : IUnknown 
{
    // because this is a local interface, HANDLE_PTR is used
    HRESULT Initialize(
        [in, annotation("_In_")] HANDLE_PTR hPassedHandle,
        [in, annotation("_In_")] IUnknown* pDebugApplication
        );
}


// Implemented by the javascript engine to provide extended WinRT error info 
// from a BREAKREASON_ERROR event. QI-able from IActiveScriptError.
[  
    object,  
    uuid(73A3F82A-0FE9-4B33-BA3B-FE095F697E0A),  
    pointer_default(unique)
]  
interface IActiveScriptWinRTErrorDebug : IActiveScriptError  
{  
    /// Return WinRT Restricted Error string, if available  
    HRESULT GetRestrictedErrorString([out] BSTR * errorString);  
    /// Return WinRT Restricted Error reference string, if available  
    HRESULT GetRestrictedErrorReference([out] BSTR * referenceString);  
    /// Return Capability SID for the WinRT error, if available
    HRESULT GetCapabilitySid([out] BSTR * capabilitySid);
}  

// Indicates the kind of exception thrown 
typedef enum tagSCRIPT_ERROR_DEBUG_EXCEPTION_THROWN_KIND
{
    // Indicates if the current exception is a first chance exception.
    ETK_FIRST_CHANCE                 = 0x00000000,

    // Indicates if the current exception is not handled in the user code.
    ETK_USER_UNHANDLED              = 0x00000001,

    // Indicates if the current exception is not handled.
    ETK_UNHANDLED                   = 0x00000002
} SCRIPT_ERROR_DEBUG_EXCEPTION_THROWN_KIND;

// Implemented by the javascript engine to provide information whether a
// BREAKREASON_ERROR event is for a first chance exception,
// unhandled in the user code, or an unhandled exception.
[
    object,
    uuid(516E42B6-89A8-4530-937B-5F0708431442),
    pointer_default(unique)
]
interface IActiveScriptErrorDebug110 : IUnknown
{
    // Returns S_OK on success of the operation.
    HRESULT GetExceptionThrownKind([out] SCRIPT_ERROR_DEBUG_EXCEPTION_THROWN_KIND * pExceptionKind);
};

// Connection point based event interface.  Advise against
// a debug application thread to receive these events from that thread.
// Events will be fired on the originating thread.
[
    object,
    uuid(84E5E468-D5DA-48A8-83F4-40366429007B),
    helpstring("IDebugApplicationThreadEvents110 Interface"),  
    local,
    pointer_default(unique)
]
interface IDebugApplicationThreadEvents110 : IUnknown
{
    // The thread is suspending for a breakpoint and can handle
    // calls which require the thread to be fully suspended
    HRESULT OnSuspendForBreakPoint( void );
    // The thread is resuming from a breakpoint and will be 
    // active once again
    HRESULT OnResumeFromBreakPoint( void );

    // A call into the thread using the PDM's thread switching has completed
    HRESULT OnThreadRequestComplete( void );

    // A call into the thread using the PDM's thraed switching has begun
    HRESULT OnBeginThreadRequest( void );
}

cpp_quote("#ifndef DISABLE_ACTIVDBG_INTERFACE_WRAPPERS")  
cpp_quote("#ifdef _WIN64")  
cpp_quote("#define IDebugApplicationThread110 IDebugApplicationThread11064")  
cpp_quote("#define IID_IDebugApplicationThread110 IID_IDebugApplicationThread11064")  
cpp_quote("#else")  
cpp_quote("#define IDebugApplicationThread110 IDebugApplicationThread11032")  
cpp_quote("#define IID_IDebugApplicationThread110 IID_IDebugApplicationThread11032")  
cpp_quote("#endif")  
cpp_quote("#endif")  

// Implemented by a debug application thread.  QI'able off objects implementing IDebugApplicationThread
[
    object,
    uuid(2194AC5C-6561-404A-A2E9-F57D72DE3702),
    helpstring("IDebugApplicationThread11032 Interface"),
    local,
    pointer_default(unique)
]
interface IDebugApplicationThread11032 : IUnknown
{
    // A count of how many thread requests from the PDM's thread switching mechanisms are currently processing
    // Usually 0 or 1, but it's possible for this to be higher if one thread call starts processing but 
    // triggers a synchronous call out of thread or otherwise suspends the thread (for example, by triggering
    // an IDebugApplicationEvents event which is issued on the debugger thread)
    HRESULT GetActiveThreadRequestCount([out, annotation("_Out_")] UINT * puiThreadRequests);

    // SuspendForBreakPoint has been called on this thread and has not yet completed.
    HRESULT IsSuspendedForBreakPoint([out, annotation("_Out_")] BOOL * pfIsSuspended);

    // This thread is in a state that will process calls made using the PDM's thread 
    // switching mechanisms (SynchronousCallInThread etc)
    HRESULT IsThreadCallable([out, annotation("_Out_")] BOOL * pfIsCallable);

    HRESULT AsynchronousCallIntoThread([in] IDebugThreadCall32* pptc, [in] DWORD_PTR dwParam1, [in] DWORD_PTR dwParam2, [in] DWORD_PTR dwParam3);
}

[
    object,
    uuid(420AA4CC-EFD8-4DAC-983B-47127826917D),
    helpstring("IDebugApplicationThread11064 Interface"),
    local,
    pointer_default(unique)
]
interface IDebugApplicationThread11064 : IUnknown
{
    // A count of how many thread requests from the PDM's thread switching mechanisms are currently processing
    // Usually 0 or 1, but it's possible for this to be higher if one thread call starts processing but 
    // triggers a synchronous call out of thread or otherwise suspends the thread (for example, by triggering
    // an IDebugApplicationEvents event which is issued on the debugger thread)
    HRESULT GetActiveThreadRequestCount([out, annotation("_Out_")] UINT * puiThreadRequests);

    // SuspendForBreakPoint has been called on this thread and has not yet completed.
    HRESULT IsSuspendedForBreakPoint([out, annotation("_Out_")] BOOL * pfIsSuspended);

    // This thread is in a state that will process calls made using the PDM's thread 
    // switching mechanisms (SynchronousCallInThread etc)
    HRESULT IsThreadCallable([out, annotation("_Out_")] BOOL * pfIsCallable);

    HRESULT AsynchronousCallIntoThread([in] IDebugThreadCall64* pptc, [in] DWORD_PTR dwParam1, [in] DWORD_PTR dwParam2, [in] DWORD_PTR dwParam3);
}

// Represents a syntax error, or other critical error which is being raised to the
// the debugger. This event is fired using IDebugApplication.FireDebuggerEvent, 
// and is received by the debugger using IApplicationDebugger.onDebuggerEvent. The
// debugger should block in its implementation of onDebuggerEvent until it is ready
// for the host to resume further processing.
[
    object,
    uuid(2f69c611-6b14-47e8-9260-4bb7c52f504b),
    pointer_default(unique)
]
interface IRemoteDebugCriticalErrorEvent110 : IUnknown
{
    // Obtains information about the error
    //
    // pbstrSource: Specifies to the web developer what aspect of their page the issue
    //   pertains to. Ex: "HTML", "DOM", "SCRIPT", etc
    // pMessageId: Indicates an error code. source+messageid should uniquely identify the
    //�  message so that information about the error can be found in help.
    // pbstrMessage: Message to display to users
    // ppLocation: [Optional] Location where the error occurred. Should be non-null 
    //   whenever possible.
    HRESULT GetErrorInfo(
        [out] BSTR* pbstrSource,
        [out] int* pMessageId,
        [out] BSTR* pbstrMessage,
        [out] IDebugDocumentContext** ppLocation);
};

///
/// Exhautive list of the all possible invocation types
typedef enum tagSCRIPT_INVOCATION_CONTEXT_TYPE
{
       SICT_Event,
       SICT_SetTimeout,
       SICT_SetInterval,
       SICT_SetImmediate,
       SICT_RequestAnimationFrame,
       SICT_ToString,
       SICT_MutationObserverCheckpoint,
       SICT_WWAExecUnsafeLocalFunction,
       SICT_WWAExecAtPriority
} SCRIPT_INVOCATION_CONTEXT_TYPE;

///
/// Provides the information about invocation context.
/// The object will be available to the debugger when debugger queries for a stack frame which belongs to the virtual invocation context frame.
[
    object,
    uuid(5D7741B7-AF7E-4A2A-85E5-C77F4D0659FB),
    helpstring("IScriptInvocationContext Interface"),
    pointer_default(unique)
]
interface IScriptInvocationContext : IUnknown
{
    // Populates the script invocation context type.
    HRESULT GetContextType([out] SCRIPT_INVOCATION_CONTEXT_TYPE * pInvocationContextType);

    // Populates the description of the invocation context.
    HRESULT GetContextDescription([out] BSTR* pDescription);

    // Populates the context object.
    HRESULT GetContextObject([out] IUnknown** ppContextObject);
};

// Indicates the type of frame provided from the runtime.
typedef enum tagDEBUG_STACKFRAME_TYPE
{
    // Indicates if the current frame is script code.
    DST_SCRIPT_FRAME,

    // Indicates if the current frame is an internal frame
    DST_INTERNAL_FRAME,

    // Indicates if the current frame is an invocation/event frame
    DST_INVOCATION_FRAME
} DEBUG_STACKFRAME_TYPE;

///
/// This interface is an extension of the interface IDebugStackFrame. This extension is made to provide invocation context information to the debugger.
///
[
    object,
    uuid(4B509611-B6EA-4B24-ADCB-D0CCFD1A7E33),
    helpstring("IDebugStackFrame110 Interface"),
    pointer_default(unique)
]
interface IDebugStackFrame110: IDebugStackFrame
{
    // Mentions the type of current frame, which helps debugger to distinguish among the usual script frame or internal frame or virtual invocation frame.
    // Returns S_OK on success.
    HRESULT GetStackFrameType([out] DEBUG_STACKFRAME_TYPE * pStackFrameKind);

    // If the current frame is a  invocation frame, this API will be used to get more info about the context of the invocation.
    // ppInvocationContext: an object passed from the host.
    // Returns S_OK upon success.
    //        E_FAIL when this is not virtual invocation/event frame.
    HRESULT GetScriptInvocationContext([out] IScriptInvocationContext ** ppInvocationContext);
};

// Indicates the type of message provided by the runtime
typedef enum tagDEBUG_EVENT_INFO_TYPE
{
    // Indicates if the current message general - imagine as console.info.
    DEIT_GENERAL,

    // Special message - AsmJS error due to debugging
    DEIT_ASMJS_IN_DEBUGGING,

    // Special message - Runtime succeeded on AsmJS 
    DEIT_ASMJS_SUCCEEDED,

    // Special message - Runtime failed on AsmJS 
    DEIT_ASMJS_FAILED

} DEBUG_EVENT_INFO_TYPE;

// Represents a message/info raised by the runtime to the debugger in order to pass any kind of message (think of this similar to console.* APIs)
// This event is fired using IDebugApplication.FireDebuggerEvent, and is received by the debugger using IApplicationDebugger.onDebuggerEvent.
// The debugger should block in its implementation of onDebuggerEvent until it is ready
// for the host to resume further processing.
[
    object,
    uuid(9FF56BB6-EB89-4C0F-8823-CC2A4C0B7F26),
    pointer_default(unique)
]
interface IRemoteDebugInfoEvent110 : IUnknown
{
    // Obtains information about the message info
    //
    HRESULT GetEventInfo(
        // Mention the message type - a way of filtering on the debugger side
        [out] DEBUG_EVENT_INFO_TYPE* pMessageType,

        // pbstrMessage : Message text 
        [out] BSTR* pbstrMessage,

        // pbstrUrl [Optional] : An URL - represents the page url for the script engine points the message to
        [out] BSTR* pbstrUrl,

        // ppLocation: [Optional] Location where the message is meant in the page source.
        [out] IDebugDocumentContext** ppLocation);
};

cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */")
#pragma endregion

Youez - 2016 - github.com/yon3zu
LinuXploit