1 // XcpControlHost.h : Declaration of the XcpControlHost
\r
9 #include "xcpctrl_h.h"
\r
11 #if defined(_WIN32_WCE) && !defined(_CE_DCOM) && !defined(_CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA)
\r
12 #error "Single-threaded COM objects are not properly supported on Windows CE platform, such as the Windows Mobile platforms that do not include full DCOM support. Define _CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA to force ATL to support creating single-thread COM object's and allow use of it's single-threaded COM object implementations. The threading model in your rgs file was set to 'Free' as that is the only threading model supported in non DCOM Windows CE platforms."
\r
16 class XcpControlHost
\r
17 : public ATL::CAxHostWindow
\r
18 , public IXcpControlHost2
\r
20 HWND hControlWindow;
\r
21 IUnknown* m_pUnKnown;
\r
22 IXcpControl2* m_pControl;
\r
29 XcpHostOption_FreezeOnInitialFrame = 0x001,
\r
30 XcpHostOption_DisableFullScreen = 0x002,
\r
31 XcpHostOption_DisableManagedExecution = 0x008,
\r
32 XcpHostOption_EnableCrossDomainDownloads = 0x010,
\r
33 XcpHostOption_UseCustomAppDomain = 0x020,
\r
34 XcpHostOption_DisableNetworking = 0x040,
\r
35 XcpHostOption_DisableScriptCallouts = 0x080,
\r
36 XcpHostOption_EnableHtmlDomAccess = 0x100,
\r
37 XcpHostOption_EnableScriptableObjectAccess = 0x200,
\r
41 // IXcpControlHost implementation declarations
\r
42 STDMETHOD(GetHostOptions)(DWORD* pdwOptions);
\r
43 STDMETHOD(NotifyLoaded)();
\r
44 STDMETHOD(NotifyError)(BSTR bstrError, BSTR bstrSource, long nLine, long nColumn);
\r
45 STDMETHOD(InvokeHandler)(BSTR bstrName, VARIANT varParam1, VARIANT varParam2, VARIANT* pvarResult);
\r
46 STDMETHOD(GetBaseUrl)(BSTR* pbstrUrl);
\r
47 STDMETHOD(GetNamedSource)(BSTR bstrSourceID, BSTR* pbstrSource);
\r
48 STDMETHOD(DownloadUrl)(BSTR bstrUrl, IXcpControlDownloadCallback* pCallback, IStream** ppStream);
\r
49 STDMETHOD(GetCustomAppDomain)(IUnknown** ppAppDomain);
\r
50 STDMETHOD(GetControlVersion)(UINT *puMajorVersion, UINT *puMinorVersion);
\r
52 // Infrastructure for control creation.
\r
53 HRESULT CreateXcpControl(HWND hwnd);
\r
54 HRESULT DestroyXcpControl();
\r
56 DECLARE_NOT_AGGREGATABLE(XcpControlHost);
\r
58 BEGIN_COM_MAP(XcpControlHost)
\r
59 COM_INTERFACE_ENTRY(IXcpControlHost2)
\r
60 COM_INTERFACE_ENTRY_CHAIN(CAxHostWindow)
\r
63 BEGIN_MSG_MAP(XcpControlHost)
\r
64 CHAIN_MSG_MAP(CAxHostWindow)
\r
67 //IServiceProvider Implementation
\r
68 STDMETHOD(QueryService)(REFGUID rsid, REFIID riid, void** ppvObj);
\r
71 STDMETHOD(AttachControl)(IUnknown* pUnkControl, HWND hWnd);
\r
72 HRESULT ActivateXcpControl(IUnknown* pUnkControl);
\r
74 IXcpControl2* GetXcpControlPtr()
\r