Update of /cvsroot/pywin32/pywin32/com/win32comext/internet/src
In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv23269/com/win32comext/internet/src
Modified Files:
Tag: py3k
internet.cpp
Added Files:
Tag: py3k
PyIDocHostUIHandler.cpp PyIDocHostUIHandler.h
PyIHTMLOMWindowServices.cpp PyIHTMLOMWindowServices.h
PyIInternetSecurityManager.cpp PyIInternetSecurityManager.h
Log Message:
win32com.internet gets support for IDocHostUIHandler, IHTMLOMWindowServices
and IInternetSecurityManager interfaces, and CoInternetCreateSecurityManager
function.
--- NEW FILE: PyIHTMLOMWindowServices.cpp ---
// This file implements the IHTMLOMWindowServices Interface and Gateway for Python.
// Generated by makegw.py
#include "internet_pch.h"
#include "MsHtmHst.h"
#include "PyIHTMLOMWindowServices.h"
// @doc - This file contains autoduck documentation
// Gateway Implementation
STDMETHODIMP PyGHTMLOMWindowServices::moveTo(
/* [in] */ LONG x,
/* [in] */ LONG y)
{
PY_GATEWAY_METHOD;
return InvokeViaPolicy("moveTo", NULL, "ll", x, y);
}
STDMETHODIMP PyGHTMLOMWindowServices::moveBy(
/* [in] */ LONG x,
/* [in] */ LONG y)
{
PY_GATEWAY_METHOD;
return InvokeViaPolicy("moveBy", NULL, "ll", x, y);
}
STDMETHODIMP PyGHTMLOMWindowServices::resizeTo(
/* [in] */ LONG x,
/* [in] */ LONG y)
{
PY_GATEWAY_METHOD;
return InvokeViaPolicy("resizeTo", NULL, "ll", x, y);
}
STDMETHODIMP PyGHTMLOMWindowServices::resizeBy(
/* [in] */ LONG x,
/* [in] */ LONG y)
{
PY_GATEWAY_METHOD;
return InvokeViaPolicy("resizeBy", NULL, "ll", x, y);
}
Index: internet.cpp
===================================================================
RCS file: /cvsroot/pywin32/pywin32/com/win32comext/internet/src/internet.cpp,v
retrieving revision 1.4.2.1
retrieving revision 1.4.2.2
diff -C2 -d -r1.4.2.1 -r1.4.2.2
*** internet.cpp 29 Aug 2008 08:32:58 -0000 1.4.2.1
--- internet.cpp 2 Nov 2008 12:55:54 -0000 1.4.2.2
***************
*** 14,20 ****
--- 14,23 ----
#include "internet_pch.h"
+ #include "MsHtmHst.h"
#include "stddef.h" // for offsetof
#include "PythonCOMRegister.h" // For simpler registration of IIDs etc.
+ #include "PyIDocHostUIHandler.h"
+ #include "PyIHTMLOMWindowServices.h"
#include "PyIInternetProtocolRoot.h"
#include "PyIInternetProtocol.h"
***************
*** 23,26 ****
--- 26,30 ----
#include "PyIInternetPriority.h"
#include "PyIInternetBindInfo.h"
+ #include "PyIInternetSecurityManager.h"
// Check a function pointer that is supplied by a specific IE version (ie,
***************
*** 34,37 ****
--- 38,46 ----
static CoInternetIsFeatureEnabled_func pfnCoInternetIsFeatureEnabled=NULL;
+ typedef HRESULT (WINAPI *CoInternetCreateSecurityManager_func)(IServiceProvider *pSP, IInternetSecurityManager **ppSM, DWORD dwReserved);
+ static CoInternetCreateSecurityManager_func pfnCoInternetCreateSecurityManager=NULL;
+
+ // STDAPI CoInternetCreateZoneManager(IServiceProvider *pSP, IInternetZoneManager **ppZM, DWORD dwReserved);
+
HMODULE loadmodule(TCHAR *dllname)
{
***************
*** 185,188 ****
--- 194,226 ----
}
+ // @pymethod <o PyIInternetSecurityManager>|internet|CoInternetCreateSecurityManager|
+ static PyObject *PyCoInternetCreateSecurityManager(PyObject *self, PyObject *args)
+ {
+ CHECK_IE_PFN(CoInternetCreateSecurityManager);
+ PyObject *obprov;
+ DWORD reserved;
+ if (!PyArg_ParseTuple(args, "Oi",
+ &obprov, // &pyparm <o PyIServiceProvider>|serviceProvider||
+ &reserved)) // @pyparm int|reserved||
+ return NULL;
+ IServiceProvider *prov;
+ if (!PyCom_InterfaceFromPyInstanceOrObject(obprov, IID_IServiceProvider, (void **)&prov, TRUE /* bNoneOK */))
+ return NULL;
+ HRESULT hr;
+ IInternetSecurityManager *sm = 0;
+ PY_INTERFACE_PRECALL;
+ hr = (*pfnCoInternetCreateSecurityManager)(prov, &sm, reserved);
+ prov->Release();
+ PY_INTERFACE_POSTCALL;
+ if (FAILED(hr))
+ return PyCom_BuildPyException(hr);
+ return PyCom_PyObjectFromIUnknown(sm, IID_IInternetSecurityManager, FALSE);
+
+ }
+
+ STDAPI CoInternetCreateSecurityManager(IServiceProvider *pSP, IInternetSecurityManager **ppSM, DWORD dwReserved);
+
+ STDAPI CoInternetCreateZoneManager(IServiceProvider *pSP, IInternetZoneManager **ppZM, DWORD dwReserved);
+
/* List of module functions */
***************
*** 190,193 ****
--- 228,232 ----
static struct PyMethodDef internet_functions[]=
{
+ { "CoInternetCreateSecurityManager", PyCoInternetCreateSecurityManager}, // @pymeth CoInternetCreateSecurityManager|
{ "CoInternetIsFeatureEnabled", PyCoInternetIsFeatureEnabled}, // @pymeth CoInternetIsFeatureEnabled|
{ "CoInternetSetFeatureEnabled", PyCoInternetSetFeatureEnabled}, // @pymeth CoInternetSetFeatureEnabled|
***************
*** 211,214 ****
--- 250,255 ----
static const PyCom_InterfaceSupportInfo g_interfaceSupportData[] =
{
+ PYCOM_INTERFACE_FULL (DocHostUIHandler),
+ PYCOM_INTERFACE_SERVER_ONLY(HTMLOMWindowServices),
PYCOM_INTERFACE_FULL (InternetProtocolRoot),
PYCOM_INTERFACE_FULL (InternetProtocol),
***************
*** 217,220 ****
--- 258,262 ----
PYCOM_INTERFACE_FULL (InternetPriority),
PYCOM_INTERFACE_FULL (InternetBindInfo),
+ PYCOM_INTERFACE_FULL (InternetSecurityManager),
};
***************
*** 261,264 ****
--- 303,307 ----
pfnCoInternetSetFeatureEnabled=(CoInternetSetFeatureEnabled_func)loadapifunc("CoInternetSetFeatureEnabled", urlmon_dll);
pfnCoInternetIsFeatureEnabled=(CoInternetIsFeatureEnabled_func)loadapifunc("CoInternetIsFeatureEnabled", urlmon_dll);
+ pfnCoInternetCreateSecurityManager=(CoInternetCreateSecurityManager_func)loadapifunc("CoInternetCreateSecurityManager", urlmon_dll);
ADD_CONSTANT(FEATURE_OBJECT_CACHING); // @const internet|FEATURE_OBJECT_CACHING|
--- NEW FILE: PyIDocHostUIHandler.h ---
// This file declares the IDocHostUIHandler Interface and Gateway for Python.
// Generated by makegw.py
// ---------------------------------------------------
//
// Interface Declaration
class PyIDocHostUIHandler : public PyIUnknown
{
public:
MAKE_PYCOM_CTOR(PyIDocHostUIHandler);
static IDocHostUIHandler *GetI(PyObject *self);
static PyComTypeObject type;
// The Python methods
static PyObject *ShowContextMenu(PyObject *self, PyObject *args);
static PyObject *GetHostInfo(PyObject *self, PyObject *args);
static PyObject *ShowUI(PyObject *self, PyObject *args);
static PyObject *HideUI(PyObject *self, PyObject *args);
static PyObject *UpdateUI(PyObject *self, PyObject *args);
static PyObject *EnableModeless(PyObject *self, PyObject *args);
static PyObject *OnDocWindowActivate(PyObject *self, PyObject *args);
static PyObject *OnFrameWindowActivate(PyObject *self, PyObject *args);
static PyObject *ResizeBorder(PyObject *self, PyObject *args);
static PyObject *TranslateAccelerator(PyObject *self, PyObject *args);
static PyObject *GetOptionKeyPath(PyObject *self, PyObject *args);
static PyObject *GetDropTarget(PyObject *self, PyObject *args);
static PyObject *GetExternal(PyObject *self, PyObject *args);
static PyObject *TranslateUrl(PyObject *self, PyObject *args);
static PyObject *FilterDataObject(PyObject *self, PyObject *args);
protected:
PyIDocHostUIHandler(IUnknown *pdisp);
~PyIDocHostUIHandler();
};
// ---------------------------------------------------
//
// Gateway Declaration
class PyGDocHostUIHandler : public PyGatewayBase, public IDocHostUIHandler
{
protected:
PyGDocHostUIHandler(PyObject *instance) : PyGatewayBase(instance) { ; }
PYGATEWAY_MAKE_SUPPORT2(PyGDocHostUIHandler, IDocHostUIHandler, IID_IDocHostUIHandler, PyGatewayBase)
// IDocHostUIHandler
STDMETHOD(ShowContextMenu)(
DWORD dwID,
POINT * ppt,
IUnknown * pcmdtReserved,
IDispatch * pdispReserved);
STDMETHOD(GetHostInfo)(
DOCHOSTUIINFO * pInfo);
STDMETHOD(ShowUI)(
DWORD dwID,
IOleInPlaceActiveObject * pActiveObject,
IOleCommandTarget * pCommandTarget,
IOleInPlaceFrame * pFrame,
IOleInPlaceUIWindow * pDoc);
STDMETHOD(HideUI)(
void);
STDMETHOD(UpdateUI)(
void);
STDMETHOD(EnableModeless)(
BOOL fEnable);
STDMETHOD(OnDocWindowActivate)(
BOOL fActivate);
STDMETHOD(OnFrameWindowActivate)(
BOOL fActivate);
STDMETHOD(ResizeBorder)(
LPCRECT prcBorder,
IOleInPlaceUIWindow * pUIWindow,
BOOL fRameWindow);
STDMETHOD(TranslateAccelerator)(
LPMSG lpMsg,
const GUID * pguidCmdGroup,
DWORD nCmdID);
STDMETHOD(GetOptionKeyPath)(
LPOLESTR * pchKey,
DWORD dw);
STDMETHOD(GetDropTarget)(
IDropTarget * pDropTarget,
IDropTarget ** ppDropTarget);
STDMETHOD(GetExternal)(
IDispatch ** ppDispatch);
STDMETHOD(TranslateUrl)(
DWORD dwTranslate,
OLECHAR * pchURLIn,
OLECHAR ** ppchURLOut);
STDMETHOD(FilterDataObject)(
IDataObject * pDO,
IDataObject ** ppDORet);
};
--- NEW FILE: PyIHTMLOMWindowServices.h ---
// This file declares the IHTMLOMWindowServices Interface and Gateway for Python.
// Generated by makegw.py
// ---------------------------------------------------
//
// Gateway Declaration
class PyGHTMLOMWindowServices : public PyGatewayBase, public IHTMLOMWindowServices
{
protected:
PyGHTMLOMWindowServices(PyObject *instance) : PyGatewayBase(instance) { ; }
PYGATEWAY_MAKE_SUPPORT2(PyGHTMLOMWindowServices, IHTMLOMWindowServices, IID_IHTMLOMWindowServices, PyGatewayBase)
// IHTMLOMWindowServices
STDMETHOD(moveTo)(
LONG x,
LONG y);
STDMETHOD(moveBy)(
LONG x,
LONG y);
STDMETHOD(resizeTo)(
LONG x,
LONG y);
STDMETHOD(resizeBy)(
LONG x,
LONG y);
};
--- NEW FILE: PyIInternetSecurityManager.h ---
// This file declares the IInternetSecurityManager Interface and Gateway for Python.
// Generated by makegw.py
// ---------------------------------------------------
//
// Interface Declaration
#include "internet_pch.h"
class PyIInternetSecurityManager : public PyIUnknown
{
public:
MAKE_PYCOM_CTOR(PyIInternetSecurityManager);
static IInternetSecurityManager *GetI(PyObject *self);
static PyComTypeObject type;
// The Python methods
static PyObject *SetSecuritySite(PyObject *self, PyObject *args);
static PyObject *GetSecuritySite(PyObject *self, PyObject *args);
static PyObject *MapUrlToZone(PyObject *self, PyObject *args);
static PyObject *GetSecurityId(PyObject *self, PyObject *args);
static PyObject *ProcessUrlAction(PyObject *self, PyObject *args);
static PyObject *QueryCustomPolicy(PyObject *self, PyObject *args);
static PyObject *SetZoneMapping(PyObject *self, PyObject *args);
static PyObject *GetZoneMappings(PyObject *self, PyObject *args);
protected:
PyIInternetSecurityManager(IUnknown *pdisp);
~PyIInternetSecurityManager();
};
// ---------------------------------------------------
//
// Gateway Declaration
class PyGInternetSecurityManager : public PyGatewayBase, public IInternetSecurityManager
{
protected:
PyGInternetSecurityManager(PyObject *instance) : PyGatewayBase(instance) { ; }
PYGATEWAY_MAKE_SUPPORT2(PyGInternetSecurityManager, IInternetSecurityManager, IID_IInternetSecurityManager, PyGatewayBase)
// IInternetSecurityManager
STDMETHOD(SetSecuritySite)(
IInternetSecurityMgrSite * pSite);
STDMETHOD(GetSecuritySite)(
IInternetSecurityMgrSite ** ppSite);
STDMETHOD(MapUrlToZone)(
LPCWSTR pwszUrl,
DWORD * pdwZone,
DWORD dwFlags);
STDMETHOD(GetSecurityId)(
LPCWSTR pwszUrl,
BYTE * pbSecurityId,
DWORD * pcbSecurityId,
DWORD_PTR dwReserved);
STDMETHOD(ProcessUrlAction)(
LPCWSTR pwszUrl,
DWORD dwAction,
BYTE * pPolicy,
DWORD cbPolicy,
BYTE * pContext,
DWORD cbContext,
DWORD dwFlags,
DWORD dwReserved);
STDMETHOD(QueryCustomPolicy)(
LPCWSTR pwszUrl,
REFGUID guidKey,
BYTE ** ppPolicy,
DWORD * pcbPolicy,
BYTE * pContext,
DWORD cbContext,
DWORD dwReserved);
STDMETHOD(SetZoneMapping)(
DWORD dwZone,
LPCWSTR lpszPattern,
DWORD dwFlags);
STDMETHOD(GetZoneMappings)(
DWORD dwZone,
IEnumString ** ppenumString,
DWORD dwFlags);
};
--- NEW FILE: PyIDocHostUIHandler.cpp ---
// This file implements the IDocHostUIHandler Interface and Gateway for Python.
// Generated by makegw.py
#include "internet_pch.h"
#include "MsHtmHst.h"
#include "PyIDocHostUIHandler.h"
// @doc - This file contains autoduck documentation
// ---------------------------------------------------
//
// Interface Implementation
PyIDocHostUIHandler::PyIDocHostUIHandler(IUnknown *pdisp):
PyIUnknown(pdisp)
{
ob_type = &type;
}
PyIDocHostUIHandler::~PyIDocHostUIHandler()
{
}
/* static */ IDocHostUIHandler *PyIDocHostUIHandler::GetI(PyObject *self)
{
return (IDocHostUIHandler *)PyIUnknown::GetI(self);
}
// @pymethod |PyIDocHostUIHandler|ShowContextMenu|Description of ShowContextMenu.
PyObject *PyIDocHostUIHandler::ShowContextMenu(PyObject *self, PyObject *args)
{
IDocHostUIHandler *pIDHUIH = GetI(self);
if ( pIDHUIH == NULL )
return NULL;
// @pyparm int|dwID||Description for dwID
POINT pt;
// @pyparm (int, int)|pt||Description for ppt
// @pyparm <o PyIUnknown>|pcmdtReserved||Description for pcmdtReserved
// @pyparm <o PyIDispatch>|pdispReserved||Description for pdispReserved
PyObject *obpcmdtReserved;
PyObject *obpdispReserved;
DWORD dwID;
IUnknown * pcmdtReserved;
IDispatch * pdispReserved;
if ( !PyArg_ParseTuple(args, "l(ii)OO:ShowContextMenu", &dwID, &pt.x, &pt.y,
&obpcmdtReserved, &obpdispReserved) )
return NULL;
BOOL bPythonIsHappy = TRUE;
if (!PyCom_InterfaceFromPyInstanceOrObject(obpcmdtReserved, IID_IUnknown, (void **)&pcmdtReserved, TRUE /* bNoneOK */))
return NULL;
if (!PyCom_InterfaceFromPyInstanceOrObject(obpdispReserved, IID_IDispatch, (void **)&pdispReserved, TRUE /* bNoneOK */)) {
if (pcmdtReserved) pcmdtReserved->Release();
return NULL;
}
HRESULT hr;
PY_INTERFACE_PRECALL;
hr = pIDHUIH->ShowContextMenu( dwID, &pt, pcmdtReserved, pdispReserved );
if (pcmdtReserved) pcmdtReserved->Release();
if (pdispReserved) pdispReserved->Release();
PY_INTERFACE_POSTCALL;
if ( FAILED(hr) )
return PyCom_BuildPyException(hr, pIDHUIH, IID_IDocHostUIHandler );
return PyInt_FromLong(hr);
}
// @pymethod |PyIDocHostUIHandler|GetHostInfo|Description of GetHostInfo.
PyObject *PyIDocHostUIHandler::GetHostInfo(PyObject *self, PyObject *args)
{
IDocHostUIHandler *pIDHUIH = GetI(self);
if ( pIDHUIH == NULL )
return NULL;
DOCHOSTUIINFO info;
memset(&info, 0, sizeof(info));
info.cbSize = sizeof(info);
if ( !PyArg_ParseTuple(args, ":GetHostInfo"))
return NULL;
HRESULT hr;
PY_INTERFACE_PRECALL;
hr = pIDHUIH->GetHostInfo(&info);
PY_INTERFACE_POSTCALL;
if ( FAILED(hr) )
return PyCom_BuildPyException(hr, pIDHUIH, IID_IDocHostUIHandler);
return Py_BuildValue("iiNN", info.dwFlags, info.dwDoubleClick,
MakeOLECHARToObj(info.pchHostCss),
MakeOLECHARToObj(info.pchHostNS));
}
// @pymethod |PyIDocHostUIHandler|ShowUI|Description of ShowUI.
PyObject *PyIDocHostUIHandler::ShowUI(PyObject *self, PyObject *args)
{
IDocHostUIHandler *pIDHUIH = GetI(self);
if ( pIDHUIH == NULL )
return NULL;
// @pyparm int|dwID||Description for dwID
// @pyparm <o PyIOleInPlaceActiveObject>|pActiveObject||Description for pActiveObject
// @pyparm <o PyIOleCommandTarget>|pCommandTarget||Description for pCommandTarget
// @pyparm <o PyIOleInPlaceFrame>|pFrame||Description for pFrame
// @pyparm <o PyIOleInPlaceUIWindow>|pDoc||Description for pDoc
PyObject *obpActiveObject;
PyObject *obpCommandTarget;
PyObject *obpFrame;
PyObject *obpDoc;
DWORD dwID;
if ( !PyArg_ParseTuple(args, "lOOOO:ShowUI", &dwID, &obpActiveObject, &obpCommandTarget, &obpFrame, &obpDoc) )
return NULL;
IOleInPlaceActiveObject * pActiveObject;
IOleCommandTarget * pCommandTarget;
IOleInPlaceFrame * pFrame;
IOleInPlaceUIWindow * pDoc;
BOOL bPythonIsHappy = TRUE;
if (bPythonIsHappy && !PyCom_InterfaceFromPyInstanceOrObject(obpActiveObject, IID_IOleInPlaceActiveObject, (void **)&pActiveObject, TRUE /* bNoneOK */))
bPythonIsHappy = FALSE;
if (bPythonIsHappy && !PyCom_InterfaceFromPyInstanceOrObject(obpCommandTarget, IID_IOleCommandTarget, (void **)&pCommandTarget, TRUE /* bNoneOK */))
bPythonIsHappy = FALSE;
if (bPythonIsHappy && !PyCom_InterfaceFromPyInstanceOrObject(obpFrame, IID_IOleInPlaceFrame, (void **)&pFrame, TRUE /* bNoneOK */))
bPythonIsHappy = FALSE;
if (bPythonIsHappy && !PyCom_InterfaceFromPyInstanceOrObject(obpDoc, IID_IOleInPlaceUIWindow, (void **)&pDoc, TRUE /* bNoneOK */))
bPythonIsHappy = FALSE;
if (!bPythonIsHappy) return NULL;
HRESULT hr;
PY_INTERFACE_PRECALL;
hr = pIDHUIH->ShowUI( dwID, pActiveObject, pCommandTarget, pFrame, pDoc );
if (pActiveObject) pActiveObject->Release();
if (pCommandTarget) pCommandTarget->Release();
if (pFrame) pFrame->Release();
if (pDoc) pDoc->Release();
PY_INTERFACE_POSTCALL;
if ( FAILED(hr) )
return PyCom_BuildPyException(hr, pIDHUIH, IID_IDocHostUIHandler );
return PyInt_FromLong(hr);
}
// @pymethod |PyIDocHostUIHandler|HideUI|Description of HideUI.
PyObject *PyIDocHostUIHandler::HideUI(PyObject *self, PyObject *args)
{
IDocHostUIHandler *pIDHUIH = GetI(self);
if ( pIDHUIH == NULL )
return NULL;
if ( !PyArg_ParseTuple(args, ":HideUI") )
return NULL;
HRESULT hr;
PY_INTERFACE_PRECALL;
hr = pIDHUIH->HideUI( );
PY_INTERFACE_POSTCALL;
if ( FAILED(hr) )
return PyCom_BuildPyException(hr, pIDHUIH, IID_IDocHostUIHandler );
return PyInt_FromLong(hr);
}
// @pymethod |PyIDocHostUIHandler|UpdateUI|Description of UpdateUI.
PyObject *PyIDocHostUIHandler::UpdateUI(PyObject *self, PyObject *args)
{
IDocHostUIHandler *pIDHUIH = GetI(self);
if ( pIDHUIH == NULL )
return NULL;
if ( !PyArg_ParseTuple(args, ":UpdateUI") )
return NULL;
HRESULT hr;
PY_INTERFACE_PRECALL;
hr = pIDHUIH->UpdateUI( );
PY_INTERFACE_POSTCALL;
if ( FAILED(hr) )
return PyCom_BuildPyException(hr, pIDHUIH, IID_IDocHostUIHandler );
return PyInt_FromLong(hr);
}
// @pymethod |PyIDocHostUIHandler|EnableModeless|Description of EnableModeless.
PyObject *PyIDocHostUIHandler::EnableModeless(PyObject *self, PyObject *args)
{
IDocHostUIHandler *pIDHUIH = GetI(self);
if ( pIDHUIH == NULL )
return NULL;
// @pyparm int|fEnable||Description for fEnable
BOOL fEnable;
if ( !PyArg_ParseTuple(args, "i:EnableModeless", &fEnable) )
return NULL;
HRESULT hr;
PY_INTERFACE_PRECALL;
hr = pIDHUIH->EnableModeless( fEnable );
PY_INTERFACE_POSTCALL;
if ( FAILED(hr) )
return PyCom_BuildPyException(hr, pIDHUIH, IID_IDocHostUIHandler );
return PyInt_FromLong(hr);
}
// @pymethod |PyIDocHostUIHandler|OnDocWindowActivate|Description of OnDocWindowActivate.
PyObject *PyIDocHostUIHandler::OnDocWindowActivate(PyObject *self, PyObject *args)
{
IDocHostUIHandler *pIDHUIH = GetI(self);
if ( pIDHUIH == NULL )
return NULL;
// @pyparm int|fActivate||Description for fActivate
BOOL fActivate;
if ( !PyArg_ParseTuple(args, "i:OnDocWindowActivate", &fActivate) )
return NULL;
HRESULT hr;
PY_INTERFACE_PRECALL;
hr = pIDHUIH->OnDocWindowActivate( fActivate );
PY_INTERFACE_POSTCALL;
if ( FAILED(hr) )
return PyCom_BuildPyException(hr, pIDHUIH, IID_IDocHostUIHandler );
return PyInt_FromLong(hr);
}
// @pymethod |PyIDocHostUIHandler|OnFrameWindowActivate|Description of OnFrameWindowActivate.
PyObject *PyIDocHostUIHandler::OnFrameWindowActivate(PyObject *self, PyObject *args)
{
IDocHostUIHandler *pIDHUIH = GetI(self);
if ( pIDHUIH == NULL )
return NULL;
// @pyparm int|fActivate||Description for fActivate
BOOL fActivate;
if ( !PyArg_ParseTuple(args, "i:OnFrameWindowActivate", &fActivate) )
return NULL;
HRESULT hr;
PY_INTERFACE_PRECALL;
hr = pIDHUIH->OnFrameWindowActivate( fActivate );
PY_INTERFACE_POSTCALL;
if ( FAILED(hr) )
return PyCom_BuildPyException(hr, pIDHUIH, IID_IDocHostUIHandler );
return PyInt_FromLong(hr);
}
// @pymethod |PyIDocHostUIHandler|ResizeBorder|Description of ResizeBorder.
PyObject *PyIDocHostUIHandler::ResizeBorder(PyObject *self, PyObject *args)
{
IDocHostUIHandler *pIDHUIH = GetI(self);
if ( pIDHUIH == NULL )
return NULL;
RECT border;
// @pyparm (int, int, int, int)|prcBorder||Description for prcBorder
// @pyparm <o PyIOleInPlaceUIWindow>|pUIWindow||Description for pUIWindow
// @pyparm int|fRameWindow||Description for fRameWindow
PyObject *obpUIWindow;
IOleInPlaceUIWindow * pUIWindow;
BOOL fRameWindow;
if ( !PyArg_ParseTuple(args, "(iiii)Oi:ResizeBorder",
&border.left, &border.top, &border.right, &border.bottom,
&obpUIWindow, &fRameWindow) )
return NULL;
if (!PyCom_InterfaceFromPyInstanceOrObject(obpUIWindow, IID_IOleInPlaceUIWindow, (void **)&pUIWindow, TRUE /* bNoneOK */))
return NULL;
HRESULT hr;
PY_INTERFACE_PRECALL;
hr = pIDHUIH->ResizeBorder(&border, pUIWindow, fRameWindow );
if (pUIWindow) pUIWindow->Release();
PY_INTERFACE_POSTCALL;
if ( FAILED(hr) )
return PyCom_BuildPyException(hr, pIDHUIH, IID_IDocHostUIHandler );
return PyInt_FromLong(hr);
}
// @pymethod |PyIDocHostUIHandler|TranslateAccelerator|Description of TranslateAccelerator.
PyObject *PyIDocHostUIHandler::TranslateAccelerator(PyObject *self, PyObject *args)
{
IDocHostUIHandler *pIDHUIH = GetI(self);
if ( pIDHUIH == NULL )
return NULL;
MSG msg;
PyObject *oblpMsg;
// @pyparm <o PyLPMSG>|lpMsg||Description for lpMsg
// @pyparm <o PyIID>|pguidCmdGroup||Description for pguidCmdGroup
// @pyparm int|nCmdID||Description for nCmdID
PyObject *obpguidCmdGroup;
IID guidCmdGroup;
DWORD nCmdID;
if ( !PyArg_ParseTuple(args, "OOl:TranslateAccelerator", &oblpMsg, &obpguidCmdGroup, &nCmdID) )
return NULL;
BOOL bPythonIsHappy = TRUE;
if (bPythonIsHappy && !PyWinObject_AsMSG(oblpMsg, &msg)) bPythonIsHappy = FALSE;
if (!PyWinObject_AsIID(obpguidCmdGroup, &guidCmdGroup)) bPythonIsHappy = FALSE;
if (!bPythonIsHappy) return NULL;
HRESULT hr;
PY_INTERFACE_PRECALL;
hr = pIDHUIH->TranslateAccelerator(&msg, &guidCmdGroup, nCmdID );
PY_INTERFACE_POSTCALL;
if ( FAILED(hr) )
return PyCom_BuildPyException(hr, pIDHUIH, IID_IDocHostUIHandler );
return PyInt_FromLong(hr);
}
// @pymethod |PyIDocHostUIHandler|GetOptionKeyPath|Description of GetOptionKeyPath.
PyObject *PyIDocHostUIHandler::GetOptionKeyPath(PyObject *self, PyObject *args)
{
IDocHostUIHandler *pIDHUIH = GetI(self);
if ( pIDHUIH == NULL )
return NULL;
// @pyparm int|dw||Description for dw
LPOLESTR pchKey;
DWORD dw;
if ( !PyArg_ParseTuple(args, "l:GetOptionKeyPath", &dw) )
return NULL;
HRESULT hr;
PY_INTERFACE_PRECALL;
hr = pIDHUIH->GetOptionKeyPath( &pchKey, dw );
PY_INTERFACE_POSTCALL;
if ( FAILED(hr) )
return PyCom_BuildPyException(hr, pIDHUIH, IID_IDocHostUIHandler );
PyObject *pyretval = MakeOLECHARToObj(pchKey);
CoTaskMemFree(pchKey);
return pyretval;
}
// @pymethod |PyIDocHostUIHandler|GetDropTarget|Description of GetDropTarget.
PyObject *PyIDocHostUIHandler::GetDropTarget(PyObject *self, PyObject *args)
{
IDocHostUIHandler *pIDHUIH = GetI(self);
if ( pIDHUIH == NULL )
return NULL;
// @pyparm <o PyIDropTarget>|pDropTarget||Description for pDropTarget
PyObject *obpDropTarget;
IDropTarget * pDropTarget;
IDropTarget * ppDropTarget;
if ( !PyArg_ParseTuple(args, "O:GetDropTarget", &obpDropTarget) )
return NULL;
BOOL bPythonIsHappy = TRUE;
if (bPythonIsHappy && !PyCom_InterfaceFromPyInstanceOrObject(obpDropTarget, IID_IDropTarget, (void **)&pDropTarget, TRUE /* bNoneOK */))
bPythonIsHappy = FALSE;
if (!bPythonIsHappy) return NULL;
HRESULT hr;
PY_INTERFACE_PRECALL;
hr = pIDHUIH->GetDropTarget( pDropTarget, &ppDropTarget );
if (pDropTarget) pDropTarget->Release();
PY_INTERFACE_POSTCALL;
if ( FAILED(hr) )
return PyCom_BuildPyException(hr, pIDHUIH, IID_IDocHostUIHandler );
return PyCom_PyObjectFromIUnknown(ppDropTarget, IID_IDropTarget, FALSE);
}
// @pymethod |PyIDocHostUIHandler|GetExternal|Description of GetExternal.
PyObject *PyIDocHostUIHandler::GetExternal(PyObject *self, PyObject *args)
{
IDocHostUIHandler *pIDHUIH = GetI(self);
if ( pIDHUIH == NULL )
return NULL;
IDispatch * ppDispatch;
if ( !PyArg_ParseTuple(args, ":GetExternal") )
return NULL;
HRESULT hr;
PY_INTERFACE_PRECALL;
hr = pIDHUIH->GetExternal( &ppDispatch );
PY_INTERFACE_POSTCALL;
if ( FAILED(hr) )
return PyCom_BuildPyException(hr, pIDHUIH, IID_IDocHostUIHandler );
return PyCom_PyObjectFromIUnknown(ppDispatch, IID_IDispatch, FALSE);
}
// @pymethod |PyIDocHostUIHandler|TranslateUrl|Description of TranslateUrl.
PyObject *PyIDocHostUIHandler::TranslateUrl(PyObject *self, PyObject *args)
{
IDocHostUIHandler *pIDHUIH = GetI(self);
if ( pIDHUIH == NULL )
return NULL;
// @pyparm int|dwTranslate||Description for dwTranslate
// @pyparm <o unicode>|pchURLIn||Description for pchURLIn
PyObject *obpchURLIn;
DWORD dwTranslate;
OLECHAR *pchURLIn;
OLECHAR *pchURLOut = 0;
if ( !PyArg_ParseTuple(args, "lO:TranslateUrl", &dwTranslate, &obpchURLIn) )
return NULL;
if (!PyWinObject_AsWCHAR(obpchURLIn, &pchURLIn))
return NULL;
HRESULT hr;
PY_INTERFACE_PRECALL;
hr = pIDHUIH->TranslateUrl( dwTranslate, pchURLIn, &pchURLOut);
PyWinObject_FreeWCHAR(pchURLIn);
PY_INTERFACE_POSTCALL;
if ( FAILED(hr) )
return PyCom_BuildPyException(hr, pIDHUIH, IID_IDocHostUIHandler );
PyObject *pyretval = MakeOLECHARToObj(pchURLOut);
CoTaskMemFree(pchURLOut);
return pyretval;
}
// @pymethod |PyIDocHostUIHandler|FilterDataObject|Description of FilterDataObject.
PyObject *PyIDocHostUIHandler::FilterDataObject(PyObject *self, PyObject *args)
{
IDocHostUIHandler *pIDHUIH = GetI(self);
if ( pIDHUIH == NULL )
return NULL;
// @pyparm <o PyIDataObject>|pDO||Description for pDO
PyObject *obpDO;
IDataObject * pDO;
IDataObject * ppDORet;
if ( !PyArg_ParseTuple(args, "O:FilterDataObject", &obpDO) )
return NULL;
if (!PyCom_InterfaceFromPyInstanceOrObject(obpDO, IID_IDataObject, (void **)&pDO, TRUE /* bNoneOK */))
return NULL;
HRESULT hr;
PY_INTERFACE_PRECALL;
hr = pIDHUIH->FilterDataObject( pDO, &ppDORet );
if (pDO) pDO->Release();
PY_INTERFACE_POSTCALL;
if ( FAILED(hr) )
return PyCom_BuildPyException(hr, pIDHUIH, IID_IDocHostUIHandler );
return PyCom_PyObjectFromIUnknown(ppDORet, IID_IDataObject, FALSE);
}
// @object PyIDocHostUIHandler|Description of the interface
static struct PyMethodDef PyIDocHostUIHandler_methods[] =
{
{ "ShowContextMenu", PyIDocHostUIHandler::ShowContextMenu, 1 }, // @pymeth ShowContextMenu|Description of ShowContextMenu
{ "GetHostInfo", PyIDocHostUIHandler::GetHostInfo, 1 }, // @pymeth GetHostInfo|Description of GetHostInfo
{ "ShowUI", PyIDocHostUIHandler::ShowUI, 1 }, // @pymeth ShowUI|Description of ShowUI
{ "HideUI", PyIDocHostUIHandler::HideUI, 1 }, // @pymeth HideUI|Description of HideUI
{ "UpdateUI", PyIDocHostUIHandler::UpdateUI, 1 }, // @pymeth UpdateUI|Description of UpdateUI
{ "EnableModeless", PyIDocHostUIHandler::EnableModeless, 1 }, // @pymeth EnableModeless|Description of EnableModeless
{ "OnDocWindowActivate", PyIDocHostUIHandler::OnDocWindowActivate, 1 }, // @pymeth OnDocWindowActivate|Description of OnDocWindowActivate
{ "OnFrameWindowActivate", PyIDocHostUIHandler::OnFrameWindowActivate, 1 }, // @pymeth OnFrameWindowActivate|Description of OnFrameWindowActivate
{ "ResizeBorder", PyIDocHostUIHandler::ResizeBorder, 1 }, // @pymeth ResizeBorder|Description of ResizeBorder
{ "TranslateAccelerator", PyIDocHostUIHandler::TranslateAccelerator, 1 }, // @pymeth TranslateAccelerator|Description of TranslateAccelerator
{ "GetOptionKeyPath", PyIDocHostUIHandler::GetOptionKeyPath, 1 }, // @pymeth GetOptionKeyPath|Description of GetOptionKeyPath
{ "GetDropTarget", PyIDocHostUIHandler::GetDropTarget, 1 }, // @pymeth GetDropTarget|Description of GetDropTarget
{ "GetExternal", PyIDocHostUIHandler::GetExternal, 1 }, // @pymeth GetExternal|Description of GetExternal
{ "TranslateUrl", PyIDocHostUIHandler::TranslateUrl, 1 }, // @pymeth TranslateUrl|Description of TranslateUrl
{ "FilterDataObject", PyIDocHostUIHandler::FilterDataObject, 1 }, // @pymeth FilterDataObject|Description of FilterDataObject
{ NULL }
};
PyComTypeObject PyIDocHostUIHandler::type("PyIDocHostUIHandler",
&PyIUnknown::type,
sizeof(PyIDocHostUIHandler),
PyIDocHostUIHandler_methods,
GET_PYCOM_CTOR(PyIDocHostUIHandler));
// ---------------------------------------------------
//
// Gateway Implementation
STDMETHODIMP PyGDocHostUIHandler::ShowContextMenu(
/* [in] */ DWORD dwID,
/* [in] */ POINT * ppt,
/* [in] */ IUnknown * pcmdtReserved,
/* [in] */ IDispatch * pdispReserved)
{
PY_GATEWAY_METHOD;
return InvokeViaPolicy("ShowContextMenu", NULL, "l(ii)NO",
dwID, ppt->x, ppt->y,
PyCom_PyObjectFromIUnknown(pcmdtReserved, IID_IUnknown, TRUE),
PyCom_PyObjectFromIUnknown(pdispReserved, IID_IDispatch, TRUE));
}
STDMETHODIMP PyGDocHostUIHandler::GetHostInfo(
/* [out][in] */ DOCHOSTUIINFO * pInfo)
{
PY_GATEWAY_METHOD;
PyObject *result;
HRESULT hr=InvokeViaPolicy("GetHostInfo", &result, "");
if (FAILED(hr)) return hr;
// Process the Python results, and convert back to the real params
PyObject *obhostcss, *obhostns;
if (!PyArg_ParseTuple(result, "iiOO", &pInfo->dwFlags, &pInfo->dwDoubleClick, &obhostcss, &obhostns) ||
!PyWinObject_AsTaskAllocatedWCHAR(obhostcss, &pInfo->pchHostCss, TRUE, NULL) ||
!PyWinObject_AsTaskAllocatedWCHAR(obhostns, &pInfo->pchHostNS, TRUE, NULL))
hr = MAKE_PYCOM_GATEWAY_FAILURE_CODE("GetHostInfo");
Py_DECREF(result);
return hr;
}
STDMETHODIMP PyGDocHostUIHandler::ShowUI(
/* [in] */ DWORD dwID,
/* [in] */ IOleInPlaceActiveObject * pActiveObject,
/* [in] */ IOleCommandTarget * pCommandTarget,
/* [in] */ IOleInPlaceFrame * pFrame,
/* [in] */ IOleInPlaceUIWindow * pDoc)
{
PY_GATEWAY_METHOD;
PyObject *obpActiveObject;
PyObject *obpCommandTarget;
PyObject *obpFrame;
PyObject *obpDoc;
obpActiveObject = PyCom_PyObjectFromIUnknown(pActiveObject, IID_IOleInPlaceActiveObject, TRUE);
obpCommandTarget = PyCom_PyObjectFromIUnknown(pCommandTarget, IID_IOleCommandTarget, TRUE);
obpFrame = PyCom_PyObjectFromIUnknown(pFrame, IID_IOleInPlaceFrame, TRUE);
obpDoc = PyCom_PyObjectFromIUnknown(pDoc, IID_IOleInPlaceUIWindow, TRUE);
HRESULT hr=InvokeViaPolicy("ShowUI", NULL, "lOOOO", dwID, obpActiveObject, obpCommandTarget, obpFrame, obpDoc);
Py_XDECREF(obpActiveObject);
Py_XDECREF(obpCommandTarget);
Py_XDECREF(obpFrame);
Py_XDECREF(obpDoc);
return hr;
}
STDMETHODIMP PyGDocHostUIHandler::HideUI(
void)
{
PY_GATEWAY_METHOD;
return InvokeViaPolicy("HideUI", NU...
[truncated message content] |