1*34dd1e25SAndrew Rist /************************************************************** 2*34dd1e25SAndrew Rist * 3*34dd1e25SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*34dd1e25SAndrew Rist * or more contributor license agreements. See the NOTICE file 5*34dd1e25SAndrew Rist * distributed with this work for additional information 6*34dd1e25SAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*34dd1e25SAndrew Rist * to you under the Apache License, Version 2.0 (the 8*34dd1e25SAndrew Rist * "License"); you may not use this file except in compliance 9*34dd1e25SAndrew Rist * with the License. You may obtain a copy of the License at 10*34dd1e25SAndrew Rist * 11*34dd1e25SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12*34dd1e25SAndrew Rist * 13*34dd1e25SAndrew Rist * Unless required by applicable law or agreed to in writing, 14*34dd1e25SAndrew Rist * software distributed under the License is distributed on an 15*34dd1e25SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*34dd1e25SAndrew Rist * KIND, either express or implied. See the License for the 17*34dd1e25SAndrew Rist * specific language governing permissions and limitations 18*34dd1e25SAndrew Rist * under the License. 19*34dd1e25SAndrew Rist * 20*34dd1e25SAndrew Rist *************************************************************/ 21*34dd1e25SAndrew Rist 22*34dd1e25SAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir // SOComWindowPeer.h: Definition of the SOComWindowPeer class 25cdf0e10cSrcweir // 26cdf0e10cSrcweir ////////////////////////////////////////////////////////////////////// 27cdf0e10cSrcweir 28cdf0e10cSrcweir #if !defined __SOCOMWINDOWPEER_H_ 29cdf0e10cSrcweir #define __SOCOMWINDOWPEER_H_ 30cdf0e10cSrcweir 31cdf0e10cSrcweir #if _MSC_VER > 1000 32cdf0e10cSrcweir #pragma once 33cdf0e10cSrcweir #endif // _MSC_VER > 1000 34cdf0e10cSrcweir 35cdf0e10cSrcweir #include "resource.h" // main symbols 36cdf0e10cSrcweir #include <ExDispID.h> 37cdf0e10cSrcweir #include <ExDisp.h> 38cdf0e10cSrcweir #include <shlguid.h> 39cdf0e10cSrcweir #include <atlctl.h> 40cdf0e10cSrcweir 41cdf0e10cSrcweir #include "so_activex.h" 42cdf0e10cSrcweir 43cdf0e10cSrcweir ///////////////////////////////////////////////////////////////////////////// 44cdf0e10cSrcweir // SOComWindowPeer 45cdf0e10cSrcweir 46cdf0e10cSrcweir class SOComWindowPeer : 47cdf0e10cSrcweir public IDispatchImpl<ISOComWindowPeer, &IID_ISOComWindowPeer, &LIBID_SO_ACTIVEXLib>, 48cdf0e10cSrcweir public ISupportErrorInfo, 49cdf0e10cSrcweir public CComObjectRoot, 50cdf0e10cSrcweir public CComCoClass<SOComWindowPeer,&CLSID_SOComWindowPeer> 51cdf0e10cSrcweir { 52cdf0e10cSrcweir HWND m_hwnd; 53cdf0e10cSrcweir public: SOComWindowPeer()54cdf0e10cSrcweir SOComWindowPeer() : m_hwnd( NULL ) {} 55cdf0e10cSrcweir 56cdf0e10cSrcweir BEGIN_COM_MAP(SOComWindowPeer) 57cdf0e10cSrcweir COM_INTERFACE_ENTRY(IDispatch) 58cdf0e10cSrcweir COM_INTERFACE_ENTRY(ISOComWindowPeer) 59cdf0e10cSrcweir COM_INTERFACE_ENTRY(ISupportErrorInfo) 60cdf0e10cSrcweir END_COM_MAP() 61cdf0e10cSrcweir DECLARE_NOT_AGGREGATABLE(SOComWindowPeer) 62cdf0e10cSrcweir // Remove the comment from the line above if you don't want your object to 63cdf0e10cSrcweir // support aggregation. 64cdf0e10cSrcweir 65cdf0e10cSrcweir DECLARE_REGISTRY_RESOURCEID(IDR_SOCOMWINDOWPEER) 66cdf0e10cSrcweir 67cdf0e10cSrcweir // ISupportsErrorInfo 68cdf0e10cSrcweir STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid); 69cdf0e10cSrcweir 70cdf0e10cSrcweir // ISOComWindowPeer getWindowHandle(SAFEARRAY __RPC_FAR * procId,short s,long __RPC_FAR * ret)71cdf0e10cSrcweir virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getWindowHandle( 72cdf0e10cSrcweir /* [in] */ SAFEARRAY __RPC_FAR * procId, 73cdf0e10cSrcweir /* [in] */ short s, 74cdf0e10cSrcweir /* [retval][out] */ long __RPC_FAR *ret) 75cdf0e10cSrcweir { 76cdf0e10cSrcweir *ret = (long) m_hwnd; 77cdf0e10cSrcweir return S_OK; 78cdf0e10cSrcweir } 79cdf0e10cSrcweir getToolkit(IDispatch __RPC_FAR * __RPC_FAR * retVal)80cdf0e10cSrcweir virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE getToolkit( 81cdf0e10cSrcweir /* [retval][out] */ IDispatch __RPC_FAR *__RPC_FAR *retVal) 82cdf0e10cSrcweir { 83cdf0e10cSrcweir *retVal = NULL; 84cdf0e10cSrcweir return S_OK; 85cdf0e10cSrcweir } 86cdf0e10cSrcweir setPointer(IDispatch __RPC_FAR * xPointer)87cdf0e10cSrcweir virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE setPointer( 88cdf0e10cSrcweir /* [in] */ IDispatch __RPC_FAR *xPointer) 89cdf0e10cSrcweir { 90cdf0e10cSrcweir return S_OK; 91cdf0e10cSrcweir } 92cdf0e10cSrcweir setBackground(int nColor)93cdf0e10cSrcweir virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE setBackground( 94cdf0e10cSrcweir /* [in] */ int nColor) 95cdf0e10cSrcweir { 96cdf0e10cSrcweir return S_OK; 97cdf0e10cSrcweir } 98cdf0e10cSrcweir invalidate(short __MIDL_0015)99cdf0e10cSrcweir virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE invalidate( 100cdf0e10cSrcweir /* [in] */ short __MIDL_0015) 101cdf0e10cSrcweir { 102cdf0e10cSrcweir return S_OK; 103cdf0e10cSrcweir } 104cdf0e10cSrcweir invalidateRect(IDispatch __RPC_FAR * aRect,short nFlags)105cdf0e10cSrcweir virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE invalidateRect( 106cdf0e10cSrcweir /* [in] */ IDispatch __RPC_FAR *aRect, 107cdf0e10cSrcweir /* [in] */ short nFlags) 108cdf0e10cSrcweir { 109cdf0e10cSrcweir return S_OK; 110cdf0e10cSrcweir } 111cdf0e10cSrcweir dispose(void)112cdf0e10cSrcweir virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE dispose( void) 113cdf0e10cSrcweir { 114cdf0e10cSrcweir return S_OK; 115cdf0e10cSrcweir } 116cdf0e10cSrcweir addEventListener(IDispatch __RPC_FAR * xListener)117cdf0e10cSrcweir virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE addEventListener( 118cdf0e10cSrcweir /* [in] */ IDispatch __RPC_FAR *xListener) 119cdf0e10cSrcweir { 120cdf0e10cSrcweir return S_OK; 121cdf0e10cSrcweir } 122cdf0e10cSrcweir removeEventListener(IDispatch __RPC_FAR * xListener)123cdf0e10cSrcweir virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE removeEventListener( 124cdf0e10cSrcweir /* [in] */ IDispatch __RPC_FAR *xListener) 125cdf0e10cSrcweir { 126cdf0e10cSrcweir return S_OK; 127cdf0e10cSrcweir } 128cdf0e10cSrcweir get_Bridge_implementedInterfaces(SAFEARRAY __RPC_FAR * __RPC_FAR * pVal)129cdf0e10cSrcweir virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Bridge_implementedInterfaces( 130cdf0e10cSrcweir /* [retval][out] */ SAFEARRAY __RPC_FAR * __RPC_FAR *pVal) 131cdf0e10cSrcweir { 132cdf0e10cSrcweir *pVal = SafeArrayCreateVector( VT_BSTR, 0, 2 ); 133cdf0e10cSrcweir 134cdf0e10cSrcweir if( !*pVal ) 135cdf0e10cSrcweir return E_FAIL; 136cdf0e10cSrcweir 137cdf0e10cSrcweir long ix = 0; 138cdf0e10cSrcweir CComBSTR aInterface( OLESTR( "com.sun.star.awt.XSystemDependentWindowPeer" ) ); 139cdf0e10cSrcweir SafeArrayPutElement( *pVal, &ix, aInterface ); 140cdf0e10cSrcweir 141cdf0e10cSrcweir ix = 1; 142cdf0e10cSrcweir aInterface = CComBSTR( OLESTR( "com.sun.star.awt.XWindowPeer" ) ); 143cdf0e10cSrcweir SafeArrayPutElement( *pVal, &ix, aInterface ); 144cdf0e10cSrcweir 145cdf0e10cSrcweir return S_OK; 146cdf0e10cSrcweir } 147cdf0e10cSrcweir SetHWNDInternally(HWND hwnd)148cdf0e10cSrcweir void SetHWNDInternally( HWND hwnd ) { m_hwnd = hwnd; } 149cdf0e10cSrcweir }; 150cdf0e10cSrcweir 151cdf0e10cSrcweir #endif // __SOCOMWINDOWPEER_H_ 152