// This file declares the IRemoteDebugApplication Interface and Gateway for Python.
// Generated by makegw.py
// ---------------------------------------------------
//
// Interface Declaration

class PyIRemoteDebugApplication : public PyIUnknown
{
public:
	MAKE_PYCOM_CTOR_ERRORINFO(PyIRemoteDebugApplication, IID_IRemoteDebugApplication);
	static IRemoteDebugApplication *GetI(PyObject *self);
	static PyComTypeObject type;

	// The Python methods
	static PyObject *ResumeFromBreakPoint(PyObject *self, PyObject *args);
	static PyObject *CauseBreak(PyObject *self, PyObject *args);
	static PyObject *ConnectDebugger(PyObject *self, PyObject *args);
	static PyObject *DisconnectDebugger(PyObject *self, PyObject *args);
	static PyObject *GetDebugger(PyObject *self, PyObject *args);
	static PyObject *CreateInstanceAtApplication(PyObject *self, PyObject *args);
	static PyObject *QueryAlive(PyObject *self, PyObject *args);
	static PyObject *EnumThreads(PyObject *self, PyObject *args);
	static PyObject *GetName(PyObject *self, PyObject *args);
	static PyObject *GetRootNode(PyObject *self, PyObject *args);
	static PyObject *EnumGlobalExpressionContexts(PyObject *self, PyObject *args);
protected:
	PyIRemoteDebugApplication(IUnknown *pdisp);
	~PyIRemoteDebugApplication();
};
// ---------------------------------------------------
//
// Gateway Declaration

class PyGRemoteDebugApplication : public PyGatewayBase, public IRemoteDebugApplication
{
protected:
	PyGRemoteDebugApplication(PyObject *instance) : PyGatewayBase(instance) { ; }
	PYGATEWAY_MAKE_SUPPORT(PyGRemoteDebugApplication, IRemoteDebugApplication, IID_IRemoteDebugApplication)

	// IRemoteDebugApplication
	STDMETHOD(ResumeFromBreakPoint)(
		IRemoteDebugApplicationThread __RPC_FAR * prptFocus,
		BREAKRESUMEACTION bra,
		ERRORRESUMEACTION era);

	STDMETHOD(CauseBreak)(
		void);

	STDMETHOD(ConnectDebugger)(
		IApplicationDebugger __RPC_FAR * pad);

	STDMETHOD(DisconnectDebugger)(
		void);

	STDMETHOD(GetDebugger)(
		IApplicationDebugger __RPC_FAR *__RPC_FAR * pad);

	STDMETHOD(CreateInstanceAtApplication)(
		REFCLSID rclsid,
		IUnknown __RPC_FAR * pUnkOuter,
		DWORD dwClsContext,
		REFIID riid,
		IUnknown __RPC_FAR *__RPC_FAR * ppvObject);

	STDMETHOD(QueryAlive)(
		void);

	STDMETHOD(EnumThreads)(
		IEnumRemoteDebugApplicationThreads **pperdat); 

	STDMETHOD(GetName)(
		BSTR __RPC_FAR * pbstrName);

	STDMETHOD(GetRootNode)(
		IDebugApplicationNode **ppdanRoot); 

    STDMETHOD(EnumGlobalExpressionContexts)(
            /* [out] */ IEnumDebugExpressionContexts __RPC_FAR *__RPC_FAR *ppedec);

};
