ReactOS 0.4.15-dev-7889-g76290a6
SEALED_ Class Reference
Inheritance diagram for SEALED_:
Collaboration diagram for SEALED_:

Classes

class  CEnumConnectionPoints
 
struct  EventArguments
 
class  RdpClientInner
 
struct  RedirectArguments
 
class  SEALED_
 

Public Member Functions

RdpClientUIGetUI () const
 
virtual STDMETHODIMP IUnknown::QueryInterface (REFIID riid, void **ppvObject)
 
virtual STDMETHODIMP_ (ULONG) IUnknown
 
virtual STDMETHODIMP_ (ULONG) IUnknown
 
virtual STDMETHODIMP IDispatch::GetTypeInfoCount (UINT *pctinfo)
 
virtual STDMETHODIMP IDispatch::GetTypeInfo (UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
 
virtual STDMETHODIMP IDispatch::GetIDsOfNames (REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
 
virtual STDMETHODIMP IDispatch::Invoke (DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
 
virtual STDMETHODIMP GetConnectionInterface (IID *pIID)
 
virtual STDMETHODIMP GetConnectionPointContainer (IConnectionPointContainer **ppCPC)
 
virtual STDMETHODIMP Advise (IUnknown *pUnkSink, DWORD *pdwCookie)
 
virtual STDMETHODIMP Unadvise (DWORD dwCookie)
 
virtual STDMETHODIMP EnumConnections (IEnumConnections **ppEnum)
 
virtual STDMETHODIMP IConnectionPointContainer::EnumConnectionPoints (IEnumConnectionPoints **ppEnum)
 
virtual STDMETHODIMP IConnectionPointContainer::FindConnectionPoint (REFIID riid, IConnectionPoint **ppCP)
 
virtual STDMETHODIMP IDataObject::GetData (FORMATETC *pformatetcIn, STGMEDIUM *pmedium)
 
virtual STDMETHODIMP IDataObject::GetDataHere (FORMATETC *pformatetc, STGMEDIUM *pmedium)
 
virtual STDMETHODIMP IDataObject::QueryGetData (FORMATETC *pformatetc)
 
virtual STDMETHODIMP IDataObject::GetCanonicalFormatEtc (FORMATETC *pformatectIn, FORMATETC *pformatetcOut)
 
virtual STDMETHODIMP IDataObject::SetData (FORMATETC *pformatetc, STGMEDIUM *pmedium, BOOL fRelease)
 
virtual STDMETHODIMP IDataObject::EnumFormatEtc (DWORD dwDirection, IEnumFORMATETC **ppenumFormatEtc)
 
virtual STDMETHODIMP IDataObject::DAdvise (FORMATETC *pformatetc, DWORD advf, IAdviseSink *pAdvSink, DWORD *pdwConnection)
 
virtual STDMETHODIMP IDataObject::DUnadvise (DWORD dwConnection)
 
virtual STDMETHODIMP IDataObject::EnumDAdvise (IEnumSTATDATA **ppenumAdvise)
 
virtual STDMETHODIMP IObjectSafety::GetInterfaceSafetyOptions (REFIID riid, DWORD *pdwSupportedOptions, DWORD *pdwEnabledOptions)
 
virtual STDMETHODIMP IObjectSafety::SetInterfaceSafetyOptions (REFIID riid, DWORD dwOptionSetMask, DWORD dwEnabledOptions)
 
virtual STDMETHODIMP IOleControl::GetControlInfo (CONTROLINFO *pCI)
 
virtual STDMETHODIMP IOleControl::OnMnemonic (MSG *pMsg)
 
virtual STDMETHODIMP IOleControl::OnAmbientPropertyChange (DISPID dispID)
 
virtual STDMETHODIMP IOleControl::FreezeEvents (BOOL bFreeze)
 
virtual STDMETHODIMP IOleInPlaceActiveObject::TranslateAccelerator (LPMSG lpmsg)
 
virtual STDMETHODIMP IOleInPlaceActiveObject::OnFrameWindowActivate (BOOL fActivate)
 
virtual STDMETHODIMP IOleInPlaceActiveObject::OnDocWindowActivate (BOOL fActivate)
 
virtual STDMETHODIMP IOleInPlaceActiveObject::ResizeBorder (LPCRECT prcBorder, IOleInPlaceUIWindow *pUIWindow, BOOL fFrameWindow)
 
virtual STDMETHODIMP IOleInPlaceActiveObject::EnableModeless (BOOL fEnable)
 
virtual STDMETHODIMP IOleInPlaceObject::InPlaceDeactivate ()
 
virtual STDMETHODIMP IOleInPlaceObject::UIDeactivate ()
 
virtual STDMETHODIMP IOleInPlaceObject::SetObjectRects (LPCRECT lprcPosRect, LPCRECT lprcClipRect)
 
virtual STDMETHODIMP IOleInPlaceObject::ReactivateAndUndo ()
 
virtual STDMETHODIMP IOleObject::SetClientSite (IOleClientSite *pClientSite)
 
virtual STDMETHODIMP IOleObject::GetClientSite (IOleClientSite **ppClientSite)
 
virtual STDMETHODIMP IOleObject::SetHostNames (LPCOLESTR szContainerApp, LPCOLESTR szContainerObj)
 
virtual STDMETHODIMP IOleObject::Close (DWORD dwSaveOption)
 
virtual STDMETHODIMP IOleObject::SetMoniker (DWORD dwWhichMoniker, IMoniker *pmk)
 
virtual STDMETHODIMP IOleObject::GetMoniker (DWORD dwAssign, DWORD dwWhichMoniker, IMoniker **ppmk)
 
virtual STDMETHODIMP IOleObject::InitFromData (IDataObject *pDataObject, BOOL fCreation, DWORD dwReserved)
 
virtual STDMETHODIMP IOleObject::GetClipboardData (DWORD dwReserved, IDataObject **ppDataObject)
 
virtual STDMETHODIMP IOleObject::DoVerb (LONG iVerb, LPMSG lpmsg, IOleClientSite *pActiveSite, LONG lindex, HWND hwndParent, LPCRECT lprcPosRect)
 
virtual STDMETHODIMP IOleObject::EnumVerbs (IEnumOLEVERB **ppEnumOleVerb)
 
virtual STDMETHODIMP IOleObject::Update ()
 
virtual STDMETHODIMP IOleObject::IsUpToDate ()
 
virtual STDMETHODIMP IOleObject::GetUserClassID (CLSID *pClsid)
 
virtual STDMETHODIMP IOleObject::GetUserType (DWORD dwFormOfType, LPOLESTR *pszUserType)
 
virtual STDMETHODIMP IOleObject::SetExtent (DWORD dwDrawAspect, SIZEL *psizel)
 
virtual STDMETHODIMP IOleObject::GetExtent (DWORD dwDrawAspect, SIZEL *psizel)
 
HRESULT NeedAdviseHolder ()
 
virtual STDMETHODIMP IOleObject::Advise (IAdviseSink *pAdvSink, DWORD *pdwConnection)
 
virtual STDMETHODIMP IOleObject::Unadvise (DWORD dwConnection)
 
virtual STDMETHODIMP IOleObject::EnumAdvise (IEnumSTATDATA **ppenumAdvise)
 
virtual STDMETHODIMP IOleObject::GetMiscStatus (DWORD dwAspect, DWORD *pdwStatus)
 
virtual STDMETHODIMP IOleObject::SetColorScheme (LOGPALETTE *pLogpal)
 
virtual STDMETHODIMP IOleWindow::GetWindow (HWND *phwnd)
 
virtual STDMETHODIMP IOleWindow::ContextSensitiveHelp (BOOL fEnterMode)
 
virtual STDMETHODIMP IPersist::GetClassID (CLSID *pClassID)
 
virtual STDMETHODIMP IPersistPropertyBag::InitNew ()
 
virtual STDMETHODIMP IPersistPropertyBag::Load (IPropertyBag *pPropBag, IErrorLog *pErrorLog)
 
virtual STDMETHODIMP IPersistPropertyBag::Save (IPropertyBag *pPropBag, BOOL fClearDirty, BOOL fSaveAllProperties)
 
virtual STDMETHODIMP IPersistStorage::IsDirty ()
 
virtual STDMETHODIMP IPersistStorage::InitNew (IStorage *pStg)
 
virtual STDMETHODIMP IPersistStorage::Load (IStorage *pStg)
 
virtual STDMETHODIMP IPersistStorage::Save (IStorage *pStgSave, BOOL fSameAsLoad)
 
virtual STDMETHODIMP IPersistStorage::SaveCompleted (IStorage *pStgNew)
 
virtual STDMETHODIMP IPersistStorage::HandsOffStorage ()
 
virtual STDMETHODIMP IPersistStreamInit::IsDirty ()
 
virtual STDMETHODIMP IPersistStreamInit::Load (LPSTREAM pStm)
 
virtual STDMETHODIMP IPersistStreamInit::Save (LPSTREAM pStm, BOOL fClearDirty)
 
virtual STDMETHODIMP IPersistStreamInit::GetSizeMax (ULARGE_INTEGER *pCbSize)
 
virtual STDMETHODIMP IPersistStreamInit::InitNew ()
 
virtual STDMETHODIMP IProvideClassInfo::GetClassInfo (ITypeInfo **ppTI)
 
virtual STDMETHODIMP IProvideClassInfo2::GetGUID (DWORD dwGuidKind, GUID *pGUID)
 
virtual STDMETHODIMP IQuickActivate::QuickActivate (QACONTAINER *pQaContainer, QACONTROL *pQaControl)
 
virtual STDMETHODIMP IQuickActivate::SetContentExtent (LPSIZEL pSizel)
 
virtual STDMETHODIMP IQuickActivate::GetContentExtent (LPSIZEL pSizel)
 
virtual STDMETHODIMP IViewObject::Draw (DWORD dwDrawAspect, LONG lindex, void *pvAspect, DVTARGETDEVICE *ptd, HDC hdcTargetDev, HDC hdcDraw, LPCRECTL lprcBounds, LPCRECTL lprcWBounds, BOOL(STDMETHODCALLTYPE *pfnContinue)(ULONG_PTR dwContinue), ULONG_PTR dwContinue)
 
virtual STDMETHODIMP IViewObject::GetColorSet (DWORD dwDrawAspect, LONG lindex, void *pvAspect, DVTARGETDEVICE *ptd, HDC hicTargetDev, LOGPALETTE **ppColorSet)
 
virtual STDMETHODIMP IViewObject::Freeze (DWORD dwDrawAspect, LONG lindex, void *pvAspect, DWORD *pdwFreeze)
 
virtual STDMETHODIMP IViewObject::Unfreeze (DWORD dwFreeze)
 
virtual STDMETHODIMP IViewObject::SetAdvise (DWORD aspects, DWORD advf, IAdviseSink *pAdvSink)
 
virtual STDMETHODIMP IViewObject::GetAdvise (DWORD *pAspects, DWORD *pAdvf, IAdviseSink **ppAdvSink)
 
virtual STDMETHODIMP IViewObject2::GetExtent (DWORD dwDrawAspect, LONG lindex, DVTARGETDEVICE *ptd, LPSIZEL lpsizel)
 
virtual STDMETHODIMP IMsTscAx::put_Server (BSTR pServer)
 
virtual STDMETHODIMP IMsTscAx::get_Server (BSTR *pServer) const
 
virtual STDMETHODIMP IMsTscAx::put_Domain (BSTR pDomain)
 
virtual STDMETHODIMP IMsTscAx::get_Domain (BSTR *pDomain) const
 
virtual STDMETHODIMP IMsTscAx::put_UserName (BSTR pUserName)
 
virtual STDMETHODIMP IMsTscAx::get_UserName (BSTR *pUserName) const
 
virtual STDMETHODIMP IMsTscAx::put_DisconnectedText (BSTR pDisconnectedText)
 
virtual STDMETHODIMP IMsTscAx::get_DisconnectedText (BSTR *pDisconnectedText) const
 
virtual STDMETHODIMP IMsTscAx::put_ConnectingText (BSTR pConnectingText)
 
virtual STDMETHODIMP IMsTscAx::get_ConnectingText (BSTR *pConnectingText) const
 
virtual STDMETHODIMP IMsTscAx::get_Connected (short *pIsConnected) const
 
virtual STDMETHODIMP IMsTscAx::put_DesktopWidth (long pVal)
 
virtual STDMETHODIMP IMsTscAx::get_DesktopWidth (long *pVal) const
 
virtual STDMETHODIMP IMsTscAx::put_DesktopHeight (long pVal)
 
virtual STDMETHODIMP IMsTscAx::get_DesktopHeight (long *pVal) const
 
virtual STDMETHODIMP IMsTscAx::put_StartConnected (long pfStartConnected)
 
virtual STDMETHODIMP IMsTscAx::get_StartConnected (long *pfStartConnected) const
 
virtual STDMETHODIMP IMsTscAx::get_HorizontalScrollBarVisible (long *pfHScrollVisible) const
 
virtual STDMETHODIMP IMsTscAx::get_VerticalScrollBarVisible (long *pfVScrollVisible) const
 
virtual STDMETHODIMP IMsTscAx::put_FullScreenTitle (BSTR rhs)
 
virtual STDMETHODIMP IMsTscAx::get_CipherStrength (long *pCipherStrength) const
 
virtual STDMETHODIMP IMsTscAx::get_Version (BSTR *pVersion) const
 
virtual STDMETHODIMP IMsTscAx::get_SecuredSettingsEnabled (long *pSecuredSettingsEnabled) const
 
virtual STDMETHODIMP IMsTscAx::get_SecuredSettings (MSTSCLib::IMsTscSecuredSettings **ppSecuredSettings) const
 
virtual STDMETHODIMP IMsTscAx::get_AdvancedSettings (MSTSCLib::IMsTscAdvancedSettings **ppAdvSettings) const
 
virtual STDMETHODIMP IMsTscAx::get_Debugger (MSTSCLib::IMsTscDebug **ppDebugger) const
 
virtual STDMETHODIMP IMsTscAx::Connect ()
 
virtual STDMETHODIMP IMsTscAx::Disconnect ()
 
virtual STDMETHODIMP IMsTscAx::CreateVirtualChannels (BSTR newVal)
 
virtual STDMETHODIMP IMsTscAx::SendOnVirtualChannel (BSTR chanName, BSTR ChanData)
 
virtual STDMETHODIMP IMsRdpClient::put_ColorDepth (long pcolorDepth)
 
virtual STDMETHODIMP IMsRdpClient::get_ColorDepth (long *pcolorDepth) const
 
virtual STDMETHODIMP IMsRdpClient::get_AdvancedSettings2 (MSTSCLib::IMsRdpClientAdvancedSettings **ppAdvSettings) const
 
virtual STDMETHODIMP IMsRdpClient::get_SecuredSettings2 (MSTSCLib::IMsRdpClientSecuredSettings **ppSecuredSettings) const
 
virtual STDMETHODIMP IMsRdpClient::get_ExtendedDisconnectReason (MSTSCLib::ExtendedDisconnectReasonCode *pExtendedDisconnectReason) const
 
virtual STDMETHODIMP IMsRdpClient::put_FullScreen (VARIANT_BOOL pfFullScreen)
 
virtual STDMETHODIMP IMsRdpClient::get_FullScreen (VARIANT_BOOL *pfFullScreen) const
 
virtual STDMETHODIMP IMsRdpClient::SetVirtualChannelOptions (BSTR chanName, long chanOptions)
 
virtual STDMETHODIMP IMsRdpClient::GetVirtualChannelOptions (BSTR chanName, long *pChanOptions)
 
virtual STDMETHODIMP IMsRdpClient::RequestClose (MSTSCLib::ControlCloseStatus *pCloseStatus)
 
virtual STDMETHODIMP IMsRdpClient2::get_AdvancedSettings3 (MSTSCLib::IMsRdpClientAdvancedSettings2 **ppAdvSettings) const
 
virtual STDMETHODIMP IMsRdpClient2::put_ConnectedStatusText (BSTR pConnectedStatusText)
 
virtual STDMETHODIMP IMsRdpClient2::get_ConnectedStatusText (BSTR *pConnectedStatusText) const
 
virtual STDMETHODIMP IMsRdpClient3::get_AdvancedSettings4 (MSTSCLib::IMsRdpClientAdvancedSettings3 **ppAdvSettings) const
 
virtual STDMETHODIMP IMsRdpClient4::get_AdvancedSettings5 (MSTSCLib::IMsRdpClientAdvancedSettings4 **ppAdvSettings5) const
 
virtual STDMETHODIMP IMsTscNonScriptable::put_ClearTextPassword (BSTR rhs)
 
virtual STDMETHODIMP IMsTscNonScriptable::put_PortablePassword (BSTR pPortablePass)
 
virtual STDMETHODIMP IMsTscNonScriptable::get_PortablePassword (BSTR *pPortablePass) const
 
virtual STDMETHODIMP IMsTscNonScriptable::put_PortableSalt (BSTR pPortableSalt)
 
virtual STDMETHODIMP IMsTscNonScriptable::get_PortableSalt (BSTR *pPortableSalt) const
 
virtual STDMETHODIMP IMsTscNonScriptable::put_BinaryPassword (BSTR pBinaryPassword)
 
virtual STDMETHODIMP IMsTscNonScriptable::get_BinaryPassword (BSTR *pBinaryPassword) const
 
virtual STDMETHODIMP IMsTscNonScriptable::put_BinarySalt (BSTR pSalt)
 
virtual STDMETHODIMP IMsTscNonScriptable::get_BinarySalt (BSTR *pSalt) const
 
virtual STDMETHODIMP IMsTscNonScriptable::ResetPassword ()
 
virtual STDMETHODIMP IMsRdpClientNonScriptable::NotifyRedirectDeviceChange (MSTSCLib::UINT_PTR wParam, MSTSCLib::LONG_PTR lParam)
 
virtual STDMETHODIMP IMsRdpClientNonScriptable::SendKeys (long numKeys, VARIANT_BOOL *pbArrayKeyUp, long *plKeyData)
 
virtual STDMETHODIMP IMsRdpClientNonScriptable2::put_UIParentWindowHandle (HWND phwndUIParentWindowHandle)
 
virtual STDMETHODIMP IMsRdpClientNonScriptable2::get_UIParentWindowHandle (HWND *phwndUIParentWindowHandle) const
 
- Public Member Functions inherited from IUnknown
HRESULT QueryInterface ([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
 
ULONG AddRef ()
 
ULONG Release ()
 
- Public Member Functions inherited from IDispatch
HRESULT GetTypeInfoCount ([out] UINT *pctinfo)
 
HRESULT GetTypeInfo ([in] UINT iTInfo, [in] LCID lcid, [out] ITypeInfo **ppTInfo)
 
HRESULT GetIDsOfNames ([in] REFIID riid, [in, size_is(cNames)] LPOLESTR *rgszNames, [in] UINT cNames, [in] LCID lcid, [out, size_is(cNames)] DISPID *rgDispId)
 
HRESULT Invoke ([in] DISPID dispIdMember, [in] REFIID riid, [in] LCID lcid, [in] WORD wFlags, [in, out] DISPPARAMS *pDispParams, [out] VARIANT *pVarResult, [out] EXCEPINFO *pExcepInfo, [out] UINT *puArgErr)
 
HRESULT RemoteInvoke ([in] DISPID dispIdMember, [in] REFIID riid, [in] LCID lcid, [in] DWORD dwFlags, [in] DISPPARAMS *pDispParams, [out] VARIANT *pVarResult, [out] EXCEPINFO *pExcepInfo, [out] UINT *pArgErr, [in] UINT cVarRef, [in, size_is(cVarRef)] UINT *rgVarRefIdx, [in, out, size_is(cVarRef)] VARIANTARG *rgVarRef)
 
- Public Member Functions inherited from IConnectionPointContainer
HRESULT EnumConnectionPoints ([out] IEnumConnectionPoints **ppEnum)
 
HRESULT FindConnectionPoint ([in] REFIID riid, [out] IConnectionPoint **ppCP)
 
- Public Member Functions inherited from IDataObject
HRESULT GetData ([in, unique] FORMATETC *pformatetcIn, [out] STGMEDIUM *pmedium)
 
HRESULT RemoteGetData ([in, unique] FORMATETC *pformatetcIn, [out] STGMEDIUM *pRemoteMedium)
 
HRESULT GetDataHere ([in, unique] FORMATETC *pformatetc, [in, out] STGMEDIUM *pmedium)
 
HRESULT RemoteGetDataHere ([in, unique] FORMATETC *pformatetc, [in, out] STGMEDIUM *pRemoteMedium)
 
HRESULT QueryGetData ([in, unique] FORMATETC *pformatetc)
 
HRESULT GetCanonicalFormatEtc ([in, unique] FORMATETC *pformatectIn, [out] FORMATETC *pformatetcOut)
 
HRESULT SetData ([in, unique] FORMATETC *pformatetc, [in, unique] STGMEDIUM *pmedium, [in] BOOL fRelease)
 
HRESULT RemoteSetData ([in, unique] FORMATETC *pformatetc, [in, unique] FLAG_STGMEDIUM *pmedium, [in] BOOL fRelease)
 
HRESULT EnumFormatEtc ([in] DWORD dwDirection, [out] IEnumFORMATETC **ppenumFormatEtc)
 
HRESULT DAdvise ([in] FORMATETC *pformatetc, [in] DWORD advf, [in, unique] IAdviseSink *pAdvSink, [out] DWORD *pdwConnection)
 
HRESULT DUnadvise ([in] DWORD dwConnection)
 
HRESULT EnumDAdvise ([out] IEnumSTATDATA **ppenumAdvise)
 
- Public Member Functions inherited from IObjectSafety
HRESULT GetInterfaceSafetyOptions ([in] REFIID riid, [out] DWORD *pdwSupportedOptions, [out] DWORD *pdwEnabledOptions)
 
HRESULT SetInterfaceSafetyOptions ([in] REFIID riid, [in] DWORD dwOptionSetMask, [in] DWORD dwEnabledOptions)
 
- Public Member Functions inherited from IOleControl
HRESULT GetControlInfo ([out] CONTROLINFO *pCI)
 
HRESULT OnMnemonic ([in] MSG *pMsg)
 
HRESULT OnAmbientPropertyChange ([in] DISPID dispID)
 
HRESULT FreezeEvents ([in] BOOL bFreeze)
 
- Public Member Functions inherited from IOleInPlaceActiveObject
HRESULT TranslateAccelerator ([in] LPMSG lpmsg)
 
HRESULT RemoteTranslateAccelerator ()
 
HRESULT OnFrameWindowActivate ([in] BOOL fActivate)
 
HRESULT OnDocWindowActivate ([in] BOOL fActivate)
 
HRESULT ResizeBorder ([in] LPCRECT prcBorder, [in, unique] IOleInPlaceUIWindow *pUIWindow, [in] BOOL fFrameWindow)
 
HRESULT RemoteResizeBorder ([in] LPCRECT prcBorder, [in] REFIID riid, [in, unique, iid_is(riid)] IOleInPlaceUIWindow *pUIWindow, [in] BOOL fFrameWindow)
 
HRESULT EnableModeless ([in] BOOL fEnable)
 
- Public Member Functions inherited from IOleWindow
HRESULT GetWindow ([out] HWND *phwnd)
 
HRESULT ContextSensitiveHelp ([in] BOOL fEnterMode)
 
- Public Member Functions inherited from IOleInPlaceObject
HRESULT InPlaceDeactivate ()
 
HRESULT UIDeactivate ()
 
HRESULT SetObjectRects ([in] LPCRECT lprcPosRect, [in] LPCRECT lprcClipRect)
 
HRESULT ReactivateAndUndo ()
 
- Public Member Functions inherited from IOleObject
HRESULT SetClientSite ([in, unique] IOleClientSite *pClientSite)
 
HRESULT GetClientSite ([out] IOleClientSite **ppClientSite)
 
HRESULT SetHostNames ([in] LPCOLESTR szContainerApp, [in, unique] LPCOLESTR szContainerObj)
 
HRESULT Close ([in] DWORD dwSaveOption)
 
HRESULT SetMoniker ([in] DWORD dwWhichMoniker, [in, unique] IMoniker *pmk)
 
HRESULT GetMoniker ([in] DWORD dwAssign, [in] DWORD dwWhichMoniker, [out] IMoniker **ppmk)
 
HRESULT InitFromData ([in, unique] IDataObject *pDataObject, [in] BOOL fCreation, [in] DWORD dwReserved)
 
HRESULT GetClipboardData ([in] DWORD dwReserved, [out] IDataObject **ppDataObject)
 
HRESULT DoVerb ([in] LONG iVerb, [in, unique] LPMSG lpmsg, [in, unique] IOleClientSite *pActiveSite, [in] LONG lindex, [in] HWND hwndParent, [in, unique] LPCRECT lprcPosRect)
 
HRESULT EnumVerbs ([out] IEnumOLEVERB **ppEnumOleVerb)
 
HRESULT Update ()
 
HRESULT IsUpToDate ()
 
HRESULT GetUserClassID ([out] CLSID *pClsid)
 
HRESULT GetUserType ([in] DWORD dwFormOfType, [out] LPOLESTR *pszUserType)
 
HRESULT SetExtent ([in] DWORD dwDrawAspect, [in] SIZEL *psizel)
 
HRESULT GetExtent ([in] DWORD dwDrawAspect, [out] SIZEL *psizel)
 
HRESULT Advise ([in, unique] IAdviseSink *pAdvSink, [out] DWORD *pdwConnection)
 
HRESULT Unadvise ([in] DWORD dwConnection)
 
HRESULT EnumAdvise ([out] IEnumSTATDATA **ppenumAdvise)
 
HRESULT GetMiscStatus ([in] DWORD dwAspect, [out] DWORD *pdwStatus)
 
HRESULT SetColorScheme ([in] LOGPALETTE *pLogpal)
 
- Public Member Functions inherited from IPersist
HRESULT GetClassID ([out] CLSID *pClassID)
 
- Public Member Functions inherited from IPersistPropertyBag
HRESULT InitNew ()
 
HRESULT Load ([in] IPropertyBag *pPropBag, [in] IErrorLog *pErrorLog)
 
HRESULT Save ([in] IPropertyBag *pPropBag, [in] BOOL fClearDirty, [in] BOOL fSaveAllProperties)
 
- Public Member Functions inherited from IPersistStorage
HRESULT IsDirty ()
 
HRESULT InitNew ([in, unique] IStorage *pStg)
 
HRESULT Load ([in, unique] IStorage *pStg)
 
HRESULT Save ([in, unique] IStorage *pStgSave, [in] BOOL fSameAsLoad)
 
HRESULT SaveCompleted ([in, unique] IStorage *pStgNew)
 
HRESULT HandsOffStorage ()
 
- Public Member Functions inherited from IPersistStreamInit
HRESULT IsDirty ()
 
HRESULT Load ([in] LPSTREAM pStm)
 
HRESULT Save ([in] LPSTREAM pStm, [in] BOOL fClearDirty)
 
HRESULT GetSizeMax ([out] ULARGE_INTEGER *pcbSize)
 
HRESULT InitNew ()
 
- Public Member Functions inherited from IProvideClassInfo
HRESULT GetClassInfo ([out] ITypeInfo **ppTI)
 
- Public Member Functions inherited from IProvideClassInfo2
HRESULT GetGUID ([in] DWORD dwGuidKind, [out] GUID *pGUID)
 
- Public Member Functions inherited from IQuickActivate
HRESULT QuickActivate ([in] QACONTAINER *pQaContainer, [in, out] QACONTROL *pQaControl)
 
HRESULT RemoteQuickActivate ([in] QACONTAINER *pQaContainer, [out] QACONTROL *pQaControl)
 
HRESULT SetContentExtent ([in] LPSIZEL pSizel)
 
HRESULT GetContentExtent ([out] LPSIZEL pSizel)
 
- Public Member Functions inherited from IViewObject
HRESULT Draw ([in] DWORD dwDrawAspect, [in] LONG lindex, [in, unique] void *pvAspect, [in, unique] DVTARGETDEVICE *ptd, [in] HDC hdcTargetDev, [in] HDC hdcDraw, [in] LPCRECTL lprcBounds, [in, unique] LPCRECTL lprcWBounds, [in] BOOL(*pfnContinue)(ULONG_PTR dwContinue), [in] ULONG_PTR dwContinue)
 
HRESULT RemoteDraw ([in] DWORD dwDrawAspect, [in] LONG lindex, [in] ULONG_PTR pvAspect, [in, unique] DVTARGETDEVICE *ptd, [in] ULONG_PTR hdcTargetDev, [in] ULONG_PTR hdcDraw, [in] LPCRECTL lprcBounds, [in, unique] LPCRECTL lprcWBounds, [in] IContinue *pContinue)
 
HRESULT GetColorSet ([in] DWORD dwDrawAspect, [in] LONG lindex, [in, unique] void *pvAspect, [in, unique] DVTARGETDEVICE *ptd, [in] HDC hicTargetDev, [out] LOGPALETTE **ppColorSet)
 
HRESULT RemoteGetColorSet ([in] DWORD dwDrawAspect, [in] LONG lindex, [in] ULONG_PTR pvAspect, [in, unique] DVTARGETDEVICE *ptd, [in] ULONG_PTR hicTargetDev, [out] LOGPALETTE **ppColorSet)
 
HRESULT Freeze ([in] DWORD dwDrawAspect, [in] LONG lindex, [in, unique] void *pvAspect, [out] DWORD *pdwFreeze)
 
HRESULT RemoteFreeze ([in] DWORD dwDrawAspect, [in] LONG lindex, [in] ULONG_PTR pvAspect, [out] DWORD *pdwFreeze)
 
HRESULT Unfreeze ([in] DWORD dwFreeze)
 
HRESULT SetAdvise ([in] DWORD aspects, [in] DWORD advf, [in, unique] IAdviseSink *pAdvSink)
 
HRESULT GetAdvise ([out, unique] DWORD *pAspects, [out, unique] DWORD *pAdvf, [out] IAdviseSink **ppAdvSink)
 
HRESULT RemoteGetAdvise ([out] DWORD *pAspects, [out] DWORD *pAdvf, [out] IAdviseSink **ppAdvSink)
 
- Public Member Functions inherited from IViewObject2
HRESULT GetExtent ([in] DWORD dwDrawAspect, [in] LONG lindex, [in, unique] DVTARGETDEVICE *ptd, [out] LPSIZEL lpsizel)
 
HRESULT GetConnectionInterface ([out] IID *pIID)
 
HRESULT GetConnectionPointContainer ([out] IConnectionPointContainer **ppCPC)
 
HRESULT Advise ([in] IUnknown *pUnkSink, [out] DWORD *pdwCookie)
 
HRESULT Unadvise ([in] DWORD dwCookie)
 
HRESULT EnumConnections ([out] IEnumConnections **ppEnum)
 
- Public Member Functions inherited from MSTSCLib::IMsRdpClient
HRESULT SetVirtualChannelOptions ([in] BSTR chanName, [in] long chanOptions)
 
HRESULT GetVirtualChannelOptions ([in] BSTR chanName, [out, retval] long *pChanOptions)
 
HRESULT RequestClose ([out, retval] ControlCloseStatus *pCloseStatus)
 
- Public Member Functions inherited from MSTSCLib::IMsTscAx
HRESULT Connect ()
 
HRESULT Disconnect ()
 
HRESULT CreateVirtualChannels ([in] BSTR newVal)
 
HRESULT SendOnVirtualChannel ([in] BSTR chanName, [in] BSTR ChanData)
 
- Public Member Functions inherited from MSTSCLib::IMsRdpClientNonScriptable
HRESULT NotifyRedirectDeviceChange ([in] UINT_PTR wParam, [in] LONG_PTR lParam)
 
HRESULT SendKeys ([in] long numKeys, [in] VARIANT_BOOL *pbArrayKeyUp, [in] long *plKeyData)
 
- Public Member Functions inherited from MSTSCLib::IMsTscNonScriptable
HRESULT ResetPassword ()
 

Static Public Member Functions

static RdpClient * InnerToOuter (RdpClientInner *innerThis)
 
static RdpClient * InnerToOuter (AdvancedSettings *innerThis)
 
static RdpClient * InnerToOuter (SecuredSettings *innerThis)
 
static RdpClient * InnerToOuter (RDPCLIENT *innerThis)
 
static const RdpClient * InnerToOuter (const RdpClientInner *innerThis)
 
static const RdpClient * InnerToOuter (const AdvancedSettings *innerThis)
 
static const RdpClient * InnerToOuter (const SecuredSettings *innerThis)
 
static const RdpClient * InnerToOuter (const RDPCLIENT *innerThis)
 
static bool OnPublicKey (RDPCLIENT *This, unsigned char *key, unsigned int key_size)
 
static void OnLogon (RDPCLIENT *This)
 
static bool OnRedirect (RDPCLIENT *This, uint32 flags, uint32 server_len, wchar_t *server, uint32 cookie_len, char *cookie, uint32 username_len, wchar_t *username, uint32 domain_len, wchar_t *domain, uint32 password_len, wchar_t *password)
 
static BOOL Startup ()
 
static void Shutdown ()
 
static HRESULT CreateInstance (REFCLSID rclsid, unsigned libIndex, IUnknown *punkOuter, REFIID riid, void **ppObj)
 

Private Types

enum  {
  RDPC_WM_ = WM_USER , RDPC_WM_SYNC_EVENT , RDPC_WM_ASYNC_EVENT , RDPC_WM_DISCONNECT ,
  RDPC_WM_REQUEST_CLOSE , RDPC_WM_REDIRECT
}
 
typedef void(RdpClient::* AsyncEventCallback) (DISPID eventId, VARIANTARG *rgvarg, unsigned int cArgs, VARIANTARG *retVal)
 

Private Member Functions

bool IsSafeForScripting () const
 
HRESULT GetProperty (BSTR &prop, BSTR *retVal) const
 
HRESULT GetProperty (LPSTR &prop, BSTR *retVal) const
 
HRESULT SetProperty (BSTR &prop, BSTR newValue)
 
HRESULT ReplaceProperty (BSTR &prop, BSTR newValue)
 
HRESULT SetProperty (LPSTR &prop, BSTR newValue)
 
HRESULT ReplaceProperty (LPSTR &prop, LPSTR newValue)
 
template<class Type >
HRESULT SetProperty (bool &prop, const Type &newValue)
 
template<class Type >
HRESULT SetProperty (Type &prop, const Type &newValue)
 
template<class Type >
HRESULT GetProperty (const bool &prop, Type *retVal) const
 
template<class Type >
HRESULT GetProperty (const Type &prop, Type *retVal) const
 
MSTSCLib::IMsTscAxEvents ** GetSinks () const
 
void UnfreezeEvents ()
 
void InvokeSinks (DISPID eventId, VARIANTARG rgvarg[], unsigned int cArgs, VARIANTARG *retval)
 
void CleanupEventArgumentsCallback (DISPID eventId, VARIANTARG *rgvarg, unsigned int cArgs, VARIANTARG *retVal)
 
void FireEventInsideApartment (DISPID eventId, VARIANTARG *rgvarg=NULL, unsigned int cArgs=0, VARIANTARG *retval=NULL, AsyncEventCallback callback=NULL)
 
bool HandleEvent (UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT &result)
 
void FireEventOutsideApartment (DISPID eventId, VARIANTARG *rgvarg=NULL, unsigned int cArgs=0, VARIANTARG *retval=NULL, AsyncEventCallback callback=NULL)
 
HRESULT FireEventOutsideApartmentAsync (DISPID eventId, VARIANTARG *rgvarg=NULL, unsigned int cArgs=0, VARIANTARG *retval=NULL, AsyncEventCallback callback=NULL)
 
void FireConnecting ()
 
void FireConnected ()
 
void FireLoginComplete ()
 
void FireDisconnected (long reason)
 
void FireEnterFullScreenMode ()
 
void FireLeaveFullScreenMode ()
 
HRESULT FireChannelReceivedData (char(&chanName)[CHANNEL_NAME_LEN+1], void *chanData, unsigned int chanDataSize)
 
void FireRequestGoFullScreen ()
 
void FireRequestLeaveFullScreen ()
 
void FireFatalError (long errorCode)
 
void FireFatalErrorFromApartment (long errorCode)
 
void FireWarning (long warningCode)
 
void FireRemoteDesktopSizeChange (long width, long height)
 
void FireIdleTimeoutNotification ()
 
void FireRequestContainerMinimize ()
 
bool FireConfirmClose ()
 
HRESULT FireReceivedTSPublicKey (void *publicKey, unsigned int publicKeyLength)
 
LONG FireAutoReconnecting (long disconnectReason, long attemptCount)
 
void FireAuthenticationWarningDisplayed ()
 
void FireAuthenticationWarningDismissed ()
 
HRESULT queryInterface (REFIID riid, void **ppvObject)
 
ULONG addRef ()
 
ULONG release ()
 
 RdpClient (REFCLSID classId, unsigned libIndex, IUnknown *punkOuter)
 
 ~RdpClient ()
 
template<class Interface >
HRESULT GetAdvancedSettings (Interface **ppAdvSettings)
 
template<class Interface >
HRESULT GetSecuredSettings (Interface **ppSecuredSettings)
 
HRESULT LoadTypeLibrary ()
 
HRESULT LoadDispTypeInfo ()
 
HRESULT AcquireDispTypeInfo (ITypeInfo **ppTI)
 
bool OnPublicKey (unsigned char *key, unsigned int key_size)
 
void OnLogon ()
 
bool OnRedirect (uint32 flags, uint32 server_len, wchar_t *server, uint32 cookie_len, char *cookie, uint32 username_len, wchar_t *username, uint32 domain_len, wchar_t *domain, uint32 password_len, wchar_t *password)
 
void ProtocolLoop ()
 
void JoinProtocolThread ()
 
void TerminateProtocolThread ()
 
void PerformDisconnect (long reason)
 
LRESULT ControlWindowProc (UINT uMsg, WPARAM wParam, LPARAM lParam)
 
HRESULT CreateControlWindow (HWND hwndParent)
 
HRESULT DestroyControlWindow ()
 
HRESULT Activate (LONG iVerb, IOleClientSite *pActiveSite, HWND hwndParent, LPCRECT lprcPosRect)
 

Static Private Member Functions

static VOID CALLBACK DisconnectAPC (ULONG_PTR)
 
static DWORD WINAPI ProtocolLoopThreadProc (LPVOID lpParam)
 
static VOID CALLBACK ConnectionTimerAPC (LPVOID, DWORD, DWORD)
 
static LRESULT CALLBACK ControlWindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 

Private Attributes

LONG m_refCount
 
IUnknownm_punkOuter
 
SEALED_::RdpClientInner m_inner
 
CLSID m_classId
 
unsigned m_typeLibIndex
 
ITypeLibm_typeLib
 
ITypeInfom_dispTypeInfo
 
size_t m_EventSinksCount
 
union {
   MSTSCLib::IMsTscAxEvents *   m_EventSinksStatic [1]
 
   MSTSCLib::IMsTscAxEvents **   m_EventSinks
 
}; 
 
HWND m_controlWindow
 
IOleClientSitem_clientSite
 
IOleInPlaceSitem_inPlaceSite
 
IOleAdviseHolderm_adviseHolder
 
LONG m_freezeEvents
 
bool m_uiActive
 
DWORD m_SafetyOptions
 
RdpClientUIm_clientUI
 
RDPCLIENT m_protocolState
 
HANDLE m_protocolThread
 
HANDLE m_protocolThreadWaitingReconnection
 
bool m_reconnectAborted
 
bool m_actuallyConnected
 
bool m_loggedIn
 
BSTR m_Domain
 
BSTR m_UserName
 
BSTR m_DisconnectedText
 
BSTR m_ConnectingText
 
BSTR m_FullScreenTitle
 
BSTR m_StartProgram
 
BSTR m_WorkDir
 
BSTR m_ConnectedStatusText
 
BSTR m_ClearTextPassword
 
BSTR m_RdpdrLocalPrintingDocName
 
BSTR m_RdpdrClipCleanTempDirString
 
BSTR m_RdpdrClipPasteInfoString
 
BSTR m_KeyboardLayoutString
 
LPSTR m_Server
 
LPSTR m_LoadBalanceInfo
 
HWND m_UIParentWindowHandle
 
long m_DesktopWidth
 
long m_DesktopHeight
 
long m_StartConnected
 
long m_ColorDepth
 
long m_KeyboardHookMode
 
long m_AudioRedirectionMode
 
long m_TransportType
 
long m_SasSequence
 
long m_RDPPort
 
long m_HotKeyFullScreen
 
long m_HotKeyAltEsc
 
long m_HotKeyAltShiftTab
 
long m_HotKeyAltSpace
 
long m_HotKeyAltTab
 
long m_HotKeyCtrlAltDel
 
long m_HotKeyCtrlEsc
 
long m_orderDrawThresold
 
long m_BitmapCacheSize
 
long m_BitmapVirtualCacheSize
 
long m_NumBitmapCaches
 
long m_brushSupportLevel
 
long m_minInputSendInterval
 
long m_InputEventsAtOnce
 
long m_maxEventCount
 
long m_keepAliveInternal
 
long m_shutdownTimeout
 
long m_overallConnectionTimeout
 
long m_singleConnectionTimeout
 
long m_MinutesToIdleTimeout
 
long m_BitmapVirtualCache16BppSize
 
long m_BitmapVirtualCache24BppSize
 
long m_PerformanceFlags
 
long m_MaxReconnectAttempts
 
unsigned int m_AuthenticationLevel
 
MSTSCLib::ExtendedDisconnectReasonCode m_ExtendedDisconnectReason
 
bool m_Connected
 
bool m_Compress
 
bool m_BitmapPersistence
 
bool m_allowBackgroundInput
 
bool m_ContainerHandledFullScreen
 
bool m_DisableRdpdr
 
bool m_SecuredSettingsEnabled
 
bool m_FullScreen
 
bool m_AcceleratorPassthrough
 
bool m_ShadowBitmap
 
bool m_EncryptionEnabled
 
bool m_DedicatedTerminal
 
bool m_DisableCtrlAltDel
 
bool m_EnableWindowsKey
 
bool m_DoubleClickDetect
 
bool m_MaximizeShell
 
bool m_ScaleBitmapCachesByBpp
 
bool m_CachePersistenceActive
 
bool m_ConnectToServerConsole
 
bool m_SmartSizing
 
bool m_DisplayConnectionBar
 
bool m_PinConnectionBar
 
bool m_GrabFocusOnConnect
 
bool m_RedirectDrives
 
bool m_RedirectPrinters
 
bool m_RedirectPorts
 
bool m_RedirectSmartCards
 
bool m_NotifyTSPublicKey
 
bool m_CanAutoReconnect
 
bool m_EnableAutoReconnect
 
bool m_ConnectionBarShowMinimizeButton
 
bool m_ConnectionBarShowRestoreButton
 
SEALED_::SEALED_ m_advancedSettings
 
SEALED_::SEALED_ m_securedSettings
 

Friends

class AdvancedSettings
 
class SecuredSettings
 

Additional Inherited Members

- Public Types inherited from IUnknown
typedef IUnknownLPUNKNOWN
 
- Public Types inherited from IDispatch
typedef IDispatchLPDISPATCH
 
- Public Types inherited from IConnectionPointContainer
typedef IConnectionPointContainerPCONNECTIONPOINTCONTAINER
 
typedef IConnectionPointContainerLPCONNECTIONPOINTCONTAINER
 
- Public Types inherited from IDataObject
enum  tagDATADIR { DATADIR_GET = 1 , DATADIR_SET = 2 }
 
typedef IDataObjectLPDATAOBJECT
 
typedef enum IDataObject::tagDATADIR DATADIR
 
- Public Types inherited from IOleControl
enum  tagCTRLINFO { CTRLINFO_EATS_RETURN = 1 , CTRLINFO_EATS_ESCAPE = 2 }
 
typedef IOleControlLPOLECONTROL
 
typedef struct IOleControl::tagCONTROLINFO CONTROLINFO
 
typedef struct IOleControl::tagCONTROLINFOLPCONTROLINFO
 
typedef enum IOleControl::tagCTRLINFO CTRLINFO
 
- Public Types inherited from IOleInPlaceActiveObject
typedef IOleInPlaceActiveObjectLPOLEINPLACEACTIVEOBJECT
 
- Public Types inherited from IOleWindow
typedef IOleWindowLPOLEWINDOW
 
- Public Types inherited from IOleInPlaceObject
typedef IOleInPlaceObjectLPOLEINPLACEOBJECT
 
- Public Types inherited from IOleObject
enum  tagOLEGETMONIKER { OLEGETMONIKER_ONLYIFTHERE = 1 , OLEGETMONIKER_FORCEASSIGN = 2 , OLEGETMONIKER_UNASSIGN = 3 , OLEGETMONIKER_TEMPFORUSER = 4 }
 
enum  tagOLEWHICHMK { OLEWHICHMK_CONTAINER = 1 , OLEWHICHMK_OBJREL = 2 , OLEWHICHMK_OBJFULL = 3 }
 
enum  tagUSERCLASSTYPE { USERCLASSTYPE_FULL = 1 , USERCLASSTYPE_SHORT = 2 , USERCLASSTYPE_APPNAME = 3 }
 
enum  tagOLEMISC {
  OLEMISC_RECOMPOSEONRESIZE = 0x1 , OLEMISC_ONLYICONIC = 0x2 , OLEMISC_INSERTNOTREPLACE = 0x4 , OLEMISC_STATIC = 0x8 ,
  OLEMISC_CANTLINKINSIDE = 0x10 , OLEMISC_CANLINKBYOLE1 = 0x20 , OLEMISC_ISLINKOBJECT = 0x40 , OLEMISC_INSIDEOUT = 0x80 ,
  OLEMISC_ACTIVATEWHENVISIBLE = 0x100 , OLEMISC_RENDERINGISDEVICEINDEPENDENT = 0x200 , OLEMISC_INVISIBLEATRUNTIME = 0x400 , OLEMISC_ALWAYSRUN = 0x800 ,
  OLEMISC_ACTSLIKEBUTTON = 0x1000 , OLEMISC_ACTSLIKELABEL = 0x2000 , OLEMISC_NOUIACTIVATE = 0x4000 , OLEMISC_ALIGNABLE = 0x8000 ,
  OLEMISC_SIMPLEFRAME = 0x10000 , OLEMISC_SETCLIENTSITEFIRST = 0x20000 , OLEMISC_IMEMODE = 0x40000 , OLEMISC_IGNOREACTIVATEWHENVISIBLE = 0x80000 ,
  OLEMISC_WANTSTOMENUMERGE = 0x100000 , OLEMISC_SUPPORTSMULTILEVELUNDO = 0x200000
}
 
enum  tagOLECLOSE { OLECLOSE_SAVEIFDIRTY = 0 , OLECLOSE_NOSAVE = 1 , OLECLOSE_PROMPTSAVE = 2 }
 
typedef IOleObjectLPOLEOBJECT
 
typedef enum IOleObject::tagOLEGETMONIKER OLEGETMONIKER
 
typedef enum IOleObject::tagOLEWHICHMK OLEWHICHMK
 
typedef enum IOleObject::tagUSERCLASSTYPE USERCLASSTYPE
 
typedef enum IOleObject::tagOLEMISC OLEMISC
 
typedef enum IOleObject::tagOLECLOSE OLECLOSE
 
- Public Types inherited from IPersist
typedef IPersistLPPERSIST
 
- Public Types inherited from IPersistPropertyBag
typedef IPersistPropertyBagLPPERSISTPROPERTYBAG
 
- Public Types inherited from IPersistStorage
typedef IPersistStorageLPPERSISTSTORAGE
 
- Public Types inherited from IPersistStreamInit
typedef IPersistStreamInitLPPERSISTSTREAMINIT
 
- Public Types inherited from IProvideClassInfo
typedef IProvideClassInfoLPPROVIDECLASSINFO
 
- Public Types inherited from IProvideClassInfo2
enum  tagGUIDKIND { GUIDKIND_DEFAULT_SOURCE_DISP_IID = 1 }
 
typedef IProvideClassInfo2LPPROVIDECLASSINFO2
 
typedef enum IProvideClassInfo2::tagGUIDKIND GUIDKIND
 
- Public Types inherited from IQuickActivate
enum  tagQACONTAINERFLAGS {
  QACONTAINER_SHOWHATCHING = 0x1 , QACONTAINER_SHOWGRABHANDLES = 0x2 , QACONTAINER_USERMODE = 0x4 , QACONTAINER_DISPLAYASDEFAULT = 0x8 ,
  QACONTAINER_UIDEAD = 0x10 , QACONTAINER_AUTOCLIP = 0x20 , QACONTAINER_MESSAGEREFLECT = 0x40 , QACONTAINER_SUPPORTSMNEMONICS = 0x80
}
 
typedef IQuickActivateLPQUICKACTIVATE
 
typedef enum IQuickActivate::tagQACONTAINERFLAGS QACONTAINERFLAGS
 
typedef DWORD OLE_COLOR
 
typedef struct IQuickActivate::tagQACONTAINER QACONTAINER
 
typedef struct IQuickActivate::tagQACONTROL QACONTROL
 
- Public Types inherited from IViewObject
typedef IViewObjectLPVIEWOBJECT
 
- Public Types inherited from IViewObject2
typedef IViewObject2LPVIEWOBJECT2
 
- Public Types inherited from IConnectionPoint
typedef IConnectionPointPCONNECTIONPOINT
 
typedef IConnectionPointLPCONNECTIONPOINT
 
- Public Attributes inherited from IDispatch
const DISPID DISPID_UNKNOWN = -1
 
const DISPID DISPID_VALUE = 0
 
const DISPID DISPID_PROPERTYPUT = -3
 
const DISPID DISPID_NEWENUM = -4
 
const DISPID DISPID_EVALUATE = -5
 
const DISPID DISPID_CONSTRUCTOR = -6
 
const DISPID DISPID_DESTRUCTOR = -7
 
const DISPID DISPID_COLLECT = -8
 
- Properties inherited from MSTSCLib::IMsRdpClient4
IMsRdpClientAdvancedSettings4 AdvancedSettings5 [get]
 
- Properties inherited from MSTSCLib::IMsRdpClient3
IMsRdpClientAdvancedSettings3 AdvancedSettings4 [get]
 
- Properties inherited from MSTSCLib::IMsRdpClient2
IMsRdpClientAdvancedSettings2 AdvancedSettings3 [get]
 
BSTR ConnectedStatusText [get, set]
 
- Properties inherited from MSTSCLib::IMsRdpClient
long ColorDepth [get, set]
 
IMsRdpClientAdvancedSettings AdvancedSettings2 [get]
 
IMsRdpClientSecuredSettings SecuredSettings2 [get]
 
ExtendedDisconnectReasonCode ExtendedDisconnectReason [get]
 
VARIANT_BOOL FullScreen [get, set]
 
- Properties inherited from MSTSCLib::IMsTscAx
BSTR Server [get, set]
 
BSTR Domain [get, set]
 
BSTR UserName [get, set]
 
BSTR DisconnectedText [get, set]
 
BSTR ConnectingText [get, set]
 
short Connected [get]
 
long DesktopWidth [get, set]
 
long DesktopHeight [get, set]
 
long StartConnected [get, set]
 
long HorizontalScrollBarVisible [get]
 
long VerticalScrollBarVisible [get]
 
BSTR FullScreenTitle [set]
 
long CipherStrength [get]
 
BSTR Version [get]
 
long SecuredSettingsEnabled [get]
 
IMsTscSecuredSettings SecuredSettings [get]
 
IMsTscAdvancedSettings AdvancedSettings [get]
 
IMsTscDebug Debugger [get]
 
- Properties inherited from MSTSCLib::IMsRdpClientNonScriptable2
HWND UIParentWindowHandle [get, set]
 
- Properties inherited from MSTSCLib::IMsTscNonScriptable
BSTR ClearTextPassword [set]
 
BSTR PortablePassword [get, set]
 
BSTR PortableSalt [get, set]
 
BSTR BinaryPassword [get, set]
 
BSTR BinarySalt [get, set]
 

Detailed Description

Definition at line 1244 of file activex.cpp.

Member Typedef Documentation

◆ AsyncEventCallback

typedef void(RdpClient::* SEALED_::AsyncEventCallback) (DISPID eventId, VARIANTARG *rgvarg, unsigned int cArgs, VARIANTARG *retVal)
private

Definition at line 1638 of file activex.cpp.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
private
Enumerator
RDPC_WM_ 
RDPC_WM_SYNC_EVENT 
RDPC_WM_ASYNC_EVENT 
RDPC_WM_DISCONNECT 
RDPC_WM_REQUEST_CLOSE 
RDPC_WM_REDIRECT 

Definition at line 1711 of file activex.cpp.

1712 {
1713 RDPC_WM_ = WM_USER,
1719 };
@ RDPC_WM_REQUEST_CLOSE
Definition: activex.cpp:1717
@ RDPC_WM_DISCONNECT
Definition: activex.cpp:1716
@ RDPC_WM_ASYNC_EVENT
Definition: activex.cpp:1715
@ RDPC_WM_
Definition: activex.cpp:1713
@ RDPC_WM_SYNC_EVENT
Definition: activex.cpp:1714
@ RDPC_WM_REDIRECT
Definition: activex.cpp:1718
#define WM_USER
Definition: winuser.h:1895

Constructor & Destructor Documentation

◆ ~RdpClient()

SEALED_::~RdpClient ( )
inlineprivate

Definition at line 2352 of file activex.cpp.

2353 {
2354 assert(m_refCount == 0);
2355
2356 if(m_Connected)
2357 {
2358 // Terminate the protocol thread
2360
2361 // Dispatch the RDPC_WM_DISCONNECT message sent by the dying thread
2362 MSG msg;
2363 PeekMessage(&msg, m_controlWindow, 0, 0, PM_NOREMOVE);
2364
2365 assert(!m_Connected);
2366 }
2367
2369
2370 if(m_typeLib)
2371 m_typeLib->Release();
2372
2373 if(m_dispTypeInfo)
2375
2377
2378 for(size_t i = 0; i < m_EventSinksCount; ++ i)
2379 sinks[i]->Release();
2380
2381 if(m_EventSinksCount > 1)
2382 delete[] m_EventSinks;
2383
2384 if(m_clientSite)
2386
2387 if(m_inPlaceSite)
2389
2390 if(m_adviseHolder)
2392
2393 SysFreeString(m_Domain);
2394 SysFreeString(m_UserName);
2395 SysFreeString(m_DisconnectedText);
2396 SysFreeString(m_DisconnectedText);
2397 SysFreeString(m_FullScreenTitle);
2398 SysFreeString(m_StartProgram);
2399 SysFreeString(m_WorkDir);
2400 SysFreeString(m_ConnectedStatusText);
2401 SysFreeString(m_ClearTextPassword);
2402 SysFreeString(m_RdpdrLocalPrintingDocName);
2403 SysFreeString(m_RdpdrClipCleanTempDirString);
2404 SysFreeString(m_RdpdrClipPasteInfoString);
2405
2406 FreeLpsz(m_LoadBalanceInfo);
2407 FreeLpsz(m_Server);
2408
2409 unlockServer();
2410 }
#define msg(x)
Definition: auth_time.c:54
_In_ BOOLEAN Release
Definition: cdrom.h:920
ITypeInfo * m_dispTypeInfo
Definition: activex.cpp:1332
HRESULT DestroyControlWindow()
Definition: activex.cpp:4293
size_t m_EventSinksCount
Definition: activex.cpp:1335
IOleInPlaceSite * m_inPlaceSite
Definition: activex.cpp:1346
IOleAdviseHolder * m_adviseHolder
Definition: activex.cpp:1347
IOleClientSite * m_clientSite
Definition: activex.cpp:1345
MSTSCLib::IMsTscAxEvents ** GetSinks() const
Definition: activex.cpp:1606
ITypeLib * m_typeLib
Definition: activex.cpp:1331
void TerminateProtocolThread()
Definition: activex.cpp:3973
MSTSCLib::IMsTscAxEvents ** m_EventSinks
Definition: activex.cpp:1340
#define assert(x)
Definition: debug.h:53
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
ULONG Release()
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
Definition: oleaut.c:271
TW_UINT32 TW_UINT16 TW_UINT16 MSG
Definition: twain.h:1829
#define PeekMessage
Definition: winuser.h:5830
#define PM_NOREMOVE
Definition: winuser.h:1195

Member Function Documentation

◆ AcquireDispTypeInfo()

HRESULT SEALED_::AcquireDispTypeInfo ( ITypeInfo **  ppTI)
inlineprivate

Definition at line 3595 of file activex.cpp.

3596 {
3598
3599 if(FAILED(hr))
3600 return hr;
3601
3603 *ppTI = m_dispTypeInfo;
3604 return S_OK;
3605 }
HRESULT LoadDispTypeInfo()
Definition: activex.cpp:3574
ULONG AddRef()
#define S_OK
Definition: intsafe.h:52
#define FAILED(hr)
Definition: intsafe.h:51
HRESULT hr
Definition: shlfolder.c:183

◆ Activate()

HRESULT SEALED_::Activate ( LONG  iVerb,
IOleClientSite pActiveSite,
HWND  hwndParent,
LPCRECT  lprcPosRect 
)
inlineprivate

Definition at line 4304 of file activex.cpp.

4305 {
4306 if(pActiveSite == NULL)
4307 pActiveSite = m_clientSite;
4308
4309 if(pActiveSite == NULL)
4310 return E_FAIL;
4311
4312 // TODO: store this until we are closed or deactivated
4314
4315 HRESULT hr = pActiveSite->QueryInterface(&site);
4316
4317 if(FAILED(hr))
4318 return hr;
4319
4320 IOleInPlaceFrame * frame = NULL;
4321 IOleInPlaceUIWindow * uiWindow = NULL;
4322
4323 for(;;)
4324 {
4325 hr = site->CanInPlaceActivate();
4326
4327 if(hr == S_FALSE)
4328 hr = E_FAIL;
4329
4330 if(FAILED(hr))
4331 break;
4332
4333 site->OnInPlaceActivate();
4334
4335 if(hwndParent == NULL)
4336 {
4337 hr = site->GetWindow(&hwndParent);
4338
4339 if(FAILED(hr))
4340 break;
4341 }
4342
4343 RECT rcPos;
4344 RECT rcClip;
4345 OLEINPLACEFRAMEINFO frameInfo = { sizeof(frameInfo) };
4346
4347 site->GetWindowContext(&frame, &uiWindow, &rcPos, &rcClip, &frameInfo);
4348
4349 if(lprcPosRect == NULL)
4350 lprcPosRect = &rcPos;
4351
4352 if(m_controlWindow)
4353 ShowWindow(m_controlWindow, SW_SHOW);
4354 else
4355 {
4357
4358 if(FAILED(hr))
4359 break;
4360 }
4361
4362 SetObjectRects(lprcPosRect, &rcClip);
4363
4364 // UI activation
4365 if((iVerb == OLEIVERB_PRIMARY || iVerb == OLEIVERB_UIACTIVATE) && !m_uiActive)
4366 {
4367 m_uiActive = true;
4368
4369 hr = site->OnUIActivate();
4370
4371 if(FAILED(hr))
4372 break;
4373
4375 (
4376 m_controlWindow,
4377 NULL,
4378 lprcPosRect->left,
4379 lprcPosRect->top,
4380 lprcPosRect->right - lprcPosRect->left,
4381 lprcPosRect->bottom - lprcPosRect->top,
4383 );
4384
4385 if(frame)
4386 {
4387 frame->SetActiveObject(this, NULL);
4388 frame->SetBorderSpace(NULL);
4389 }
4390
4391 if(uiWindow)
4392 {
4393 uiWindow->SetActiveObject(this, NULL);
4394 uiWindow->SetBorderSpace(NULL);
4395 }
4396 }
4397
4398 break;
4399 }
4400
4401 if(uiWindow)
4402 uiWindow->Release();
4403
4404 if(frame)
4405 frame->Release();
4406
4407 site->Release();
4408
4409 if(SUCCEEDED(hr))
4410 pActiveSite->ShowObject();
4411
4412 return hr;
4413 }
HRESULT CreateControlWindow(HWND hwndParent)
Definition: activex.cpp:4269
bool m_uiActive
Definition: activex.cpp:1349
static HWND hwndParent
Definition: cryptui.c:300
#define E_FAIL
Definition: ddrawi.h:102
#define NULL
Definition: types.h:112
HRESULT ShowObject()
HRESULT SetObjectRects([in] LPCRECT lprcPosRect, [in] LPCRECT lprcClipRect)
HRESULT SetActiveObject([in, unique] IOleInPlaceActiveObject *pActiveObject, [in, string, unique] LPCOLESTR pszObjName)
HRESULT SetBorderSpace([in, unique] LPCBORDERWIDTHS pborderwidths)
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
#define SUCCEEDED(hr)
Definition: intsafe.h:50
static IActiveScriptSite * site
Definition: script.c:149
#define OLEIVERB_UIACTIVATE
Definition: ole2.h:42
#define OLEIVERB_PRIMARY
Definition: ole2.h:38
LONG right
Definition: windef.h:308
LONG bottom
Definition: windef.h:309
LONG top
Definition: windef.h:307
LONG left
Definition: windef.h:306
#define S_FALSE
Definition: winerror.h:2357
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
BOOL WINAPI SetWindowPos(_In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
#define SWP_SHOWWINDOW
Definition: winuser.h:1248
#define SW_SHOW
Definition: winuser.h:775

◆ addRef()

ULONG SEALED_::addRef ( )
inlineprivate

Definition at line 2224 of file activex.cpp.

2225 {
2226 return InterlockedIncrement(&m_refCount);
2227 }
#define InterlockedIncrement
Definition: armddk.h:53

◆ Advise()

virtual STDMETHODIMP SEALED_::Advise ( IUnknown pUnkSink,
DWORD pdwCookie 
)
inlinevirtual

Implements IConnectionPoint.

Definition at line 4500 of file activex.cpp.

4501 {
4503
4504 if(FAILED(pUnkSink->QueryInterface(&sink)))
4506
4508 DWORD cookie = 0;
4509
4510 if(m_EventSinksCount)
4511 {
4512 bool found = false;
4513
4514 for(size_t i = 0; i < m_EventSinksCount; ++ i)
4515 {
4516 found = (sinks[i] == NULL);
4517
4518 if(found)
4519 {
4520 cookie = static_cast<DWORD>(i);
4521 break;
4522 }
4523 }
4524
4525 if(!found)
4526 {
4527 MSTSCLib::IMsTscAxEvents ** newSinks = new MSTSCLib::IMsTscAxEvents *[m_EventSinksCount + 1];
4528
4529 if(newSinks == NULL)
4530 {
4531 sink->Release();
4532 return E_OUTOFMEMORY;
4533 }
4534
4535 std::copy(sinks, sinks + m_EventSinksCount, newSinks);
4536
4537 m_EventSinks = newSinks;
4538 sinks = newSinks;
4539
4540 cookie = static_cast<DWORD>(m_EventSinksCount);
4541 }
4542 }
4543
4544 sinks[cookie] = sink;
4545 *pdwCookie = cookie;
4546
4547 return S_OK;
4548 }
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
unsigned long DWORD
Definition: ntddk_ex.h:95
GLsizei GLenum GLboolean sink
Definition: glext.h:5672
#define CONNECT_E_CANNOTCONNECT
Definition: olectl.h:253
Definition: cookie.c:34

◆ CleanupEventArgumentsCallback()

void SEALED_::CleanupEventArgumentsCallback ( DISPID  eventId,
VARIANTARG rgvarg,
unsigned int  cArgs,
VARIANTARG retVal 
)
inlineprivate

Definition at line 1646 of file activex.cpp.

1653 {
1654 assert((rgvarg == NULL) == (cArgs == 0));
1655
1656 for(unsigned int i = 0; i < cArgs; ++ i)
1657 VariantClear(&rgvarg[i]);
1658
1659 if(retVal)
1660 VariantClear(retVal);
1661 }
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
Definition: variant.c:648

◆ ConnectionTimerAPC()

static VOID CALLBACK SEALED_::ConnectionTimerAPC ( LPVOID  ,
DWORD  ,
DWORD   
)
inlinestaticprivate

Definition at line 3763 of file activex.cpp.

3764 {
3765 }

◆ ControlWindowProc() [1/2]

static LRESULT CALLBACK SEALED_::ControlWindowProc ( HWND  hwnd,
UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam 
)
inlinestaticprivate

Definition at line 4251 of file activex.cpp.

4252 {
4253 if(uMsg == WM_CREATE)
4254 {
4256 (
4257 hwnd,
4259 (LONG_PTR)reinterpret_cast<LPCREATESTRUCT>(lParam)->lpCreateParams
4260 );
4261 }
4262
4263 RdpClient * Self = reinterpret_cast<RdpClient *>(GetWindowLongPtr(hwnd, GWLP_USERDATA));
4264 assert(Self);
4265
4266 return Self->ControlWindowProc(uMsg, wParam, lParam);
4267 }
RdpClient(REFCLSID classId, unsigned libIndex, IUnknown *punkOuter)
Definition: activex.cpp:2240
WPARAM wParam
Definition: combotst.c:138
LPARAM lParam
Definition: combotst.c:139
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
#define GetWindowLongPtr
Definition: treelist.c:73
#define SetWindowLongPtr
Definition: treelist.c:70
#define GWLP_USERDATA
Definition: treelist.c:63
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023
#define WM_CREATE
Definition: winuser.h:1608

◆ ControlWindowProc() [2/2]

LRESULT SEALED_::ControlWindowProc ( UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam 
)
inlineprivate

Definition at line 4169 of file activex.cpp.

4170 {
4171 switch(uMsg)
4172 {
4173 case WM_SIZE:
4174 {
4175 // TODO: resize UI
4176 }
4177
4178 return 0;
4179
4180 case WM_PAINT:
4181 {
4182 LPCWSTR text = NULL;
4183
4184 if(!m_Connected)
4186 else if(m_actuallyConnected)
4188 else
4190
4191 RECT clientRect;
4192 GetClientRect(m_controlWindow, &clientRect);
4193
4194 PAINTSTRUCT ps;
4195 HDC hdc = BeginPaint(m_controlWindow, &ps);
4196
4200
4201 RECT textRect = clientRect;
4202
4203 DrawTextW
4204 (
4205 hdc,
4206 text,
4207 -1,
4208 &textRect,
4210 );
4211
4212 if(textRect.right > clientRect.right)
4213 textRect.right = clientRect.right;
4214
4215 if(textRect.bottom > clientRect.bottom)
4216 textRect.bottom = clientRect.bottom;
4217
4218 textRect.left = (clientRect.right - textRect.right) / 2;
4220 textRect.top = (clientRect.bottom - textRect.bottom) / 2;
4222
4223 DrawTextW
4224 (
4225 hdc,
4226 text,
4227 -1,
4228 &textRect,
4230 );
4231
4232 EndPaint(m_controlWindow, &ps);
4233 }
4234
4235 return 0;
4236
4237 default:
4238 {
4240
4241 if(HandleEvent(uMsg, wParam, lParam, result))
4242 return result;
4243 }
4244
4245 break;
4246 }
4247
4248 return DefWindowProc(m_controlWindow, uMsg, wParam, lParam);
4249 }
BSTR m_DisconnectedText
Definition: activex.cpp:1373
bool HandleEvent(UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT &result)
Definition: activex.cpp:1726
BSTR m_ConnectedStatusText
Definition: activex.cpp:1378
BSTR m_ConnectingText
Definition: activex.cpp:1374
const WCHAR * text
Definition: package.c:1799
GLuint64EXT * result
Definition: glext.h:11304
HDC hdc
Definition: main.c:9
static HDC
Definition: imagelist.c:92
INT WINAPI DrawTextW(HDC hdc, LPCWSTR str, INT count, LPRECT rect, UINT flags)
Definition: defwnd.c:16
#define DefWindowProc
Definition: ros2win.h:31
RECT textRect
Definition: startmenu.cpp:1392
LONG_PTR LRESULT
Definition: windef.h:209
HGDIOBJ WINAPI GetStockObject(_In_ int)
COLORREF WINAPI SetBkColor(_In_ HDC, _In_ COLORREF)
Definition: dc.c:999
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
Definition: dc.c:1539
#define SYSTEM_FONT
Definition: wingdi.h:911
COLORREF WINAPI SetTextColor(_In_ HDC, _In_ COLORREF)
Definition: text.c:918
#define WM_PAINT
Definition: winuser.h:1620
DWORD WINAPI GetSysColor(_In_ int)
#define DT_NOPREFIX
Definition: winuser.h:537
#define COLOR_WINDOW
Definition: winuser.h:918
#define DT_CENTER
Definition: winuser.h:527
#define DT_END_ELLIPSIS
Definition: winuser.h:529
#define COLOR_WINDOWTEXT
Definition: winuser.h:921
#define WM_SIZE
Definition: winuser.h:1611
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
BOOL WINAPI EndPaint(_In_ HWND, _In_ const PAINTSTRUCT *)
#define DT_WORDBREAK
Definition: winuser.h:544
#define DT_CALCRECT
Definition: winuser.h:526
HDC WINAPI BeginPaint(_In_ HWND, _Out_ LPPAINTSTRUCT)
#define DT_EDITCONTROL
Definition: winuser.h:528
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185

◆ CreateControlWindow()

HRESULT SEALED_::CreateControlWindow ( HWND  hwndParent)
inlineprivate

Definition at line 4269 of file activex.cpp.

4270 {
4272 (
4273 TEXT("MissTosca_Control"),
4274 NULL,
4280 hwndParent,
4281 NULL,
4283 this
4284 );
4285
4286 if(m_controlWindow == NULL)
4288
4290 return S_OK;
4291 }
HWND m_UIParentWindowHandle
Definition: activex.cpp:1387
HWND m_controlWindow
Definition: activex.cpp:1344
#define TEXT(s)
Definition: k32.h:26
#define WS_CHILD
Definition: pedump.c:617
#define WS_CLIPCHILDREN
Definition: pedump.c:619
DWORD WINAPI GetLastError(void)
Definition: except.c:1042
#define HRESULT_FROM_WIN32(x)
Definition: winerror.h:92
#define CreateWindow
Definition: winuser.h:5754
#define CW_USEDEFAULT
Definition: winuser.h:225

◆ CreateInstance()

static HRESULT SEALED_::CreateInstance ( REFCLSID  rclsid,
unsigned  libIndex,
IUnknown punkOuter,
REFIID  riid,
void **  ppObj 
)
inlinestatic

Definition at line 4041 of file activex.cpp.

4042 {
4043 RdpClient * obj = new RdpClient(rclsid, libIndex, punkOuter);
4044
4045 if(obj == NULL)
4046 return E_OUTOFMEMORY;
4047
4048 HRESULT hr = obj->m_inner.QueryInterface(riid, ppObj);
4049
4050 if(FAILED(hr))
4051 {
4052 delete obj;
4053 return hr;
4054 }
4055
4056 assert(obj->m_refCount == 1);
4057 assert(*ppObj != NULL);
4058
4059 return S_OK;
4060 }
REFIID riid
Definition: atlbase.h:39

◆ DestroyControlWindow()

HRESULT SEALED_::DestroyControlWindow ( )
inlineprivate

Definition at line 4293 of file activex.cpp.

4294 {
4295 if(m_controlWindow == NULL)
4296 return S_FALSE;
4297
4298 HWND controlWindow = NULL;
4299 std::swap(controlWindow, m_controlWindow);
4300 DestroyWindow(controlWindow);
4301 return S_OK;
4302 }
void swap(StackAllocator< _Tp > &__a, StackAllocator< _Tp > &__b)
BOOL WINAPI DestroyWindow(_In_ HWND)

◆ DisconnectAPC()

static VOID CALLBACK SEALED_::DisconnectAPC ( ULONG_PTR  )
inlinestaticprivate

Definition at line 1721 of file activex.cpp.

1722 {
1723 // no need to do anything. The interruption will be enough
1724 }

◆ EnumConnections()

virtual STDMETHODIMP SEALED_::EnumConnections ( IEnumConnections **  ppEnum)
inlinevirtual

Implements IConnectionPoint.

Definition at line 4565 of file activex.cpp.

4566 {
4567 // I see no real value in this
4568 return E_NOTIMPL;
4569 }
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ FireAuthenticationWarningDismissed()

void SEALED_::FireAuthenticationWarningDismissed ( )
inlineprivate

Definition at line 2151 of file activex.cpp.

2152 {
2153 // Source: protocol
2155 }
void FireEventOutsideApartment(DISPID eventId, VARIANTARG *rgvarg=NULL, unsigned int cArgs=0, VARIANTARG *retval=NULL, AsyncEventCallback callback=NULL)
Definition: activex.cpp:1889

◆ FireAuthenticationWarningDisplayed()

void SEALED_::FireAuthenticationWarningDisplayed ( )
inlineprivate

Definition at line 2145 of file activex.cpp.

2146 {
2147 // Source: protocol
2149 }

◆ FireAutoReconnecting()

LONG SEALED_::FireAutoReconnecting ( long  disconnectReason,
long  attemptCount 
)
inlineprivate

Definition at line 2124 of file activex.cpp.

2125 {
2127 VARIANTARG args[2] = { };
2128 VARIANTARG retval = { };
2129
2130 args[1].vt = VT_I4;
2131 args[1].lVal = disconnectReason;
2132
2133 args[0].vt = VT_I4;
2134 args[0].lVal = attemptCount;
2135
2136 retval.vt = VT_BYREF | VT_I4;
2137 retval.plVal = &continueStatus;
2138
2139 // Source: protocol
2141
2142 return continueStatus;
2143 }
#define ARRAYSIZE(array)
Definition: filtermapper.c:47
@ VT_BYREF
Definition: compat.h:2342
@ VT_I4
Definition: compat.h:2298
@ autoReconnectContinueAutomatic
Definition: mstsclib.idl:38
long LONG
Definition: pedump.c:60
Definition: match.c:390
LONG * plVal
Definition: compat.h:2413
VARTYPE vt
Definition: compat.h:2381

◆ FireChannelReceivedData()

HRESULT SEALED_::FireChannelReceivedData ( char(&)  chanName[CHANNEL_NAME_LEN+1],
void chanData,
unsigned int  chanDataSize 
)
inlineprivate

Definition at line 1970 of file activex.cpp.

1971 {
1972 // BUGBUG: what to do when we run out of memory?
1973
1974 OLECHAR wchanName[ARRAYSIZE(chanName)];
1975 std::copy(chanName + 0, chanName + ARRAYSIZE(chanName), wchanName);
1976
1977 BSTR bstrChanName = SysAllocString(wchanName);
1978
1979 if(bstrChanName == NULL)
1980 return E_OUTOFMEMORY;
1981
1982 BSTR bstrChanData = SysAllocStringByteLen(NULL, chanDataSize);
1983
1984 if(bstrChanData == NULL)
1985 {
1986 SysFreeString(bstrChanName);
1987 return E_OUTOFMEMORY;
1988 }
1989
1990 CopyMemory(bstrChanData, chanData, chanDataSize);
1991
1992 VARIANTARG args[2] = { };
1993
1994 args[1].vt = VT_BSTR;
1995 args[1].bstrVal = bstrChanName;
1996
1997 args[0].vt = VT_BSTR;
1998 args[0].bstrVal = bstrChanData;
1999
2000 // Source: protocol
2001 HRESULT hr = FireEventOutsideApartmentAsync(7, args, ARRAYSIZE(args), NULL, &RdpClient::CleanupEventArgumentsCallback);
2002
2003 if(FAILED(hr))
2005
2006 return hr;
2007 }
void CleanupEventArgumentsCallback(DISPID eventId, VARIANTARG *rgvarg, unsigned int cArgs, VARIANTARG *retVal)
Definition: activex.cpp:1647
HRESULT FireEventOutsideApartmentAsync(DISPID eventId, VARIANTARG *rgvarg=NULL, unsigned int cArgs=0, VARIANTARG *retval=NULL, AsyncEventCallback callback=NULL)
Definition: activex.cpp:1904
WCHAR OLECHAR
Definition: compat.h:2292
OLECHAR * BSTR
Definition: compat.h:2293
@ VT_BSTR
Definition: compat.h:2303
BSTR WINAPI SysAllocString(LPCOLESTR str)
Definition: oleaut.c:238
BSTR WINAPI DECLSPEC_HOTPATCH SysAllocStringByteLen(LPCSTR str, UINT len)
Definition: oleaut.c:428
#define CopyMemory
Definition: winbase.h:1710

◆ FireConfirmClose()

bool SEALED_::FireConfirmClose ( )
inlineprivate

Definition at line 2080 of file activex.cpp.

2081 {
2082 VARIANTARG retval = { };
2083 VARIANT_BOOL allowClose = VARIANT_TRUE;
2084
2085 retval.vt = VT_BYREF | VT_BOOL;
2086 retval.pboolVal = &allowClose;
2087
2088 // Source: control
2089 FireEventInsideApartment(15, NULL, 0, &retval);
2090
2091 return allowClose != VARIANT_FALSE;
2092 }
void FireEventInsideApartment(DISPID eventId, VARIANTARG *rgvarg=NULL, unsigned int cArgs=0, VARIANTARG *retval=NULL, AsyncEventCallback callback=NULL)
Definition: activex.cpp:1665
short VARIANT_BOOL
Definition: compat.h:2290
@ VT_BOOL
Definition: compat.h:2306
VARIANT_BOOL * pboolVal
Definition: compat.h:2416

◆ FireConnected()

void SEALED_::FireConnected ( )
inlineprivate

Definition at line 1940 of file activex.cpp.

1941 {
1942 // Source: protocol
1944 }

◆ FireConnecting()

void SEALED_::FireConnecting ( )
inlineprivate

Definition at line 1934 of file activex.cpp.

1935 {
1936 // Source: protocol
1938 }

◆ FireDisconnected()

void SEALED_::FireDisconnected ( long  reason)
inlineprivate

Definition at line 1952 of file activex.cpp.

1953 {
1954 // Source: protocol. Special handling
1955 SendMessage(m_controlWindow, RDPC_WM_DISCONNECT, reason, 0);
1956 }
static WCHAR reason[MAX_STRING_RESOURCE_LEN]
Definition: object.c:1904
#define SendMessage
Definition: winuser.h:5843

◆ FireEnterFullScreenMode()

void SEALED_::FireEnterFullScreenMode ( )
inlineprivate

Definition at line 1958 of file activex.cpp.

1959 {
1960 // Source: UI window
1962 }

◆ FireEventInsideApartment()

void SEALED_::FireEventInsideApartment ( DISPID  eventId,
VARIANTARG rgvarg = NULL,
unsigned int  cArgs = 0,
VARIANTARG retval = NULL,
AsyncEventCallback  callback = NULL 
)
inlineprivate

Definition at line 1664 of file activex.cpp.

1672 {
1673 assert(InsideApartment());
1674
1675 if(retval == NULL && callback)
1676 {
1677 VARIANTARG localRetval = { };
1678 retval = &localRetval;
1679 }
1680
1681 InvokeSinks(eventId, rgvarg, cArgs, retval);
1682
1683 if(callback)
1684 (this->*callback)(eventId, rgvarg, cArgs, retval);
1685 }
void InvokeSinks(DISPID eventId, VARIANTARG rgvarg[], unsigned int cArgs, VARIANTARG *retval)
Definition: activex.cpp:1621
static IPrintDialogCallback callback
Definition: printdlg.c:326

◆ FireEventOutsideApartment()

void SEALED_::FireEventOutsideApartment ( DISPID  eventId,
VARIANTARG rgvarg = NULL,
unsigned int  cArgs = 0,
VARIANTARG retval = NULL,
AsyncEventCallback  callback = NULL 
)
inlineprivate

Definition at line 1888 of file activex.cpp.

1896 {
1897 assert(!InsideApartment());
1898 EventArguments syncEvent = { eventId, rgvarg, cArgs, retval, callback };
1899 SendMessage(m_controlWindow, RDPC_WM_SYNC_EVENT, 0, reinterpret_cast<LPARAM>(&syncEvent));
1900 }
LONG_PTR LPARAM
Definition: windef.h:208

◆ FireEventOutsideApartmentAsync()

HRESULT SEALED_::FireEventOutsideApartmentAsync ( DISPID  eventId,
VARIANTARG rgvarg = NULL,
unsigned int  cArgs = 0,
VARIANTARG retval = NULL,
AsyncEventCallback  callback = NULL 
)
inlineprivate

Definition at line 1903 of file activex.cpp.

1911 {
1912 assert(!InsideApartment());
1913
1914 EventArguments * asyncEvent = new EventArguments();
1915
1916 if(asyncEvent == NULL)
1917 return E_OUTOFMEMORY;
1918
1919 asyncEvent->eventId = eventId;
1920 asyncEvent->rgvarg = rgvarg;
1921 asyncEvent->cArgs = cArgs;
1922 asyncEvent->retval = NULL;
1923
1924 if(!PostMessage(m_controlWindow, RDPC_WM_ASYNC_EVENT, 0, reinterpret_cast<LPARAM>(asyncEvent)))
1925 {
1926 delete asyncEvent;
1928 }
1929
1930 return S_OK;
1931 }
#define PostMessage
Definition: winuser.h:5832

◆ FireFatalError()

void SEALED_::FireFatalError ( long  errorCode)
inlineprivate

Definition at line 2021 of file activex.cpp.

2022 {
2023 VARIANTARG arg = { };
2024
2025 arg.vt = VT_I4;
2026 arg.lVal = errorCode;
2027
2028 // Source: protocol
2030 }

◆ FireFatalErrorFromApartment()

void SEALED_::FireFatalErrorFromApartment ( long  errorCode)
inlineprivate

Definition at line 2032 of file activex.cpp.

2033 {
2034 VARIANTARG arg = { };
2035
2036 arg.vt = VT_I4;
2037 arg.lVal = errorCode;
2038
2039 // Source: control
2041 }

◆ FireIdleTimeoutNotification()

void SEALED_::FireIdleTimeoutNotification ( )
inlineprivate

Definition at line 2068 of file activex.cpp.

2069 {
2070 // Source: input thread
2072 }

◆ FireLeaveFullScreenMode()

void SEALED_::FireLeaveFullScreenMode ( )
inlineprivate

Definition at line 1964 of file activex.cpp.

1965 {
1966 // Source: UI window
1968 }

◆ FireLoginComplete()

void SEALED_::FireLoginComplete ( )
inlineprivate

Definition at line 1946 of file activex.cpp.

1947 {
1948 // Source: protocol
1950 }

◆ FireReceivedTSPublicKey()

HRESULT SEALED_::FireReceivedTSPublicKey ( void publicKey,
unsigned int  publicKeyLength 
)
inlineprivate

Definition at line 2094 of file activex.cpp.

2095 {
2096 assert(m_Connected);
2097
2098 if(!m_NotifyTSPublicKey)
2099 return S_OK;
2100
2101 BSTR bstrPublicKey = SysAllocStringByteLen(NULL, publicKeyLength);
2102
2103 if(bstrPublicKey == NULL)
2104 return E_OUTOFMEMORY;
2105
2106 CopyMemory(bstrPublicKey, publicKey, publicKeyLength);
2107
2108 VARIANT_BOOL continueLogon = VARIANT_TRUE;
2109 VARIANTARG arg = { };
2110 VARIANTARG retval = { };
2111
2112 arg.vt = VT_BSTR;
2113 arg.bstrVal = bstrPublicKey;
2114
2115 retval.vt = VT_BYREF | VT_BOOL;
2116 retval.pboolVal = &continueLogon;
2117
2118 // Source: protocol
2119 FireEventOutsideApartment(16, &arg, 1, &retval);
2120
2121 return continueLogon ? S_OK : S_FALSE;
2122 }

◆ FireRemoteDesktopSizeChange()

void SEALED_::FireRemoteDesktopSizeChange ( long  width,
long  height 
)
inlineprivate

Definition at line 2054 of file activex.cpp.

2055 {
2056 VARIANTARG args[2] = { };
2057
2058 args[1].vt = VT_I4;
2059 args[1].lVal = width;
2060
2061 args[0].vt = VT_I4;
2062 args[0].lVal = height;
2063
2064 // Source: UI window
2066 }
GLint GLint GLsizei GLsizei height
Definition: gl.h:1546
GLint GLint GLsizei width
Definition: gl.h:1546

◆ FireRequestContainerMinimize()

void SEALED_::FireRequestContainerMinimize ( )
inlineprivate

Definition at line 2074 of file activex.cpp.

2075 {
2076 // Source: UI window
2078 }

◆ FireRequestGoFullScreen()

void SEALED_::FireRequestGoFullScreen ( )
inlineprivate

Definition at line 2009 of file activex.cpp.

2010 {
2011 // Source: UI window
2013 }

◆ FireRequestLeaveFullScreen()

void SEALED_::FireRequestLeaveFullScreen ( )
inlineprivate

Definition at line 2015 of file activex.cpp.

2016 {
2017 // Source: UI window
2019 }

◆ FireWarning()

void SEALED_::FireWarning ( long  warningCode)
inlineprivate

Definition at line 2043 of file activex.cpp.

2044 {
2045 VARIANTARG arg = { };
2046
2047 arg.vt = VT_I4;
2048 arg.lVal = warningCode;
2049
2050 // Source: protocol
2052 }

◆ GetAdvancedSettings()

template<class Interface >
HRESULT SEALED_::GetAdvancedSettings ( Interface **  ppAdvSettings)
inlineprivate

Definition at line 3331 of file activex.cpp.

3332 {
3333 addRef();
3334 *ppAdvSettings = &m_advancedSettings;
3335 return S_OK;
3336 }
ULONG addRef()
Definition: activex.cpp:2224
SEALED_::SEALED_ m_advancedSettings

◆ GetConnectionInterface()

virtual STDMETHODIMP SEALED_::GetConnectionInterface ( IID pIID)
inlinevirtual

Implements IConnectionPoint.

Definition at line 4481 of file activex.cpp.

4482 {
4483 if(pIID == NULL)
4484 return E_POINTER;
4485
4486 *pIID = MSTSCLib::DIID_IMsTscAxEvents;
4487 return S_OK;
4488 }
#define E_POINTER
Definition: winerror.h:2365

◆ GetConnectionPointContainer()

virtual STDMETHODIMP SEALED_::GetConnectionPointContainer ( IConnectionPointContainer **  ppCPC)
inlinevirtual

Implements IConnectionPoint.

Definition at line 4490 of file activex.cpp.

4491 {
4492 if(ppCPC == NULL)
4493 return E_POINTER;
4494
4495 addRef();
4496 *ppCPC = this;
4497 return S_OK;
4498 }

◆ GetProperty() [1/4]

HRESULT SEALED_::GetProperty ( BSTR prop,
BSTR retVal 
) const
inlineprivate

Definition at line 1459 of file activex.cpp.

1460 {
1461 assert(InsideApartment());
1462
1463 if(retVal == NULL)
1464 return E_POINTER;
1465
1466 *retVal = SysAllocStringLen(prop, SysStringLen(prop));
1467
1468 if(*retVal == NULL)
1469 return E_OUTOFMEMORY;
1470
1471 return S_OK;
1472 }
UINT WINAPI SysStringLen(BSTR str)
Definition: oleaut.c:196
BSTR WINAPI SysAllocStringLen(const OLECHAR *str, unsigned int len)
Definition: oleaut.c:339

◆ GetProperty() [2/4]

template<class Type >
HRESULT SEALED_::GetProperty ( const bool prop,
Type retVal 
) const
inlineprivate

Definition at line 1583 of file activex.cpp.

1584 {
1585 assert(InsideApartment());
1586
1587 if(retVal == NULL)
1588 return E_POINTER;
1589
1590 *retVal = prop ? VARIANT_TRUE : VARIANT_FALSE;
1591 return S_OK;
1592 }

◆ GetProperty() [3/4]

template<class Type >
HRESULT SEALED_::GetProperty ( const Type prop,
Type retVal 
) const
inlineprivate

Definition at line 1594 of file activex.cpp.

1595 {
1596 assert(InsideApartment());
1597
1598 if(retVal == NULL)
1599 return E_POINTER;
1600
1601 *retVal = prop;
1602 return S_OK;
1603 }

◆ GetProperty() [4/4]

HRESULT SEALED_::GetProperty ( LPSTR prop,
BSTR retVal 
) const
inlineprivate

Definition at line 1474 of file activex.cpp.

1475 {
1476 assert(InsideApartment());
1477
1478 if(retVal == NULL)
1479 return E_POINTER;
1480
1481 *retVal = LpszToBstr(prop);
1482
1483 if(*retVal == NULL)
1484 return E_OUTOFMEMORY;
1485
1486 return S_OK;
1487 }

◆ GetSecuredSettings()

template<class Interface >
HRESULT SEALED_::GetSecuredSettings ( Interface **  ppSecuredSettings)
inlineprivate

Definition at line 3530 of file activex.cpp.

3531 {
3532 if(!m_SecuredSettingsEnabled)
3533 return E_FAIL;
3534
3535 addRef();
3536 *ppSecuredSettings = &m_securedSettings;
3537 return S_OK;
3538 }
SEALED_::SEALED_ m_securedSettings

◆ GetSinks()

MSTSCLib::IMsTscAxEvents ** SEALED_::GetSinks ( ) const
inlineprivate

Definition at line 1606 of file activex.cpp.

1607 {
1608 if(m_EventSinksCount > 1)
1609 return m_EventSinks;
1610 else
1611 return const_cast<MSTSCLib::IMsTscAxEvents **>(m_EventSinksStatic);
1612 }
MSTSCLib::IMsTscAxEvents * m_EventSinksStatic[1]
Definition: activex.cpp:1339

◆ GetUI()

RdpClientUI * SEALED_::GetUI ( ) const
inline

Definition at line 3649 of file activex.cpp.

3650 {
3651 assert(m_clientUI);
3652 return m_clientUI;
3653 }
RdpClientUI * m_clientUI
Definition: activex.cpp:1360

◆ HandleEvent()

bool SEALED_::HandleEvent ( UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam,
LRESULT result 
)
inlineprivate

Definition at line 1726 of file activex.cpp.

1727 {
1728 result = 0;
1729
1730 switch(uMsg)
1731 {
1732 /* Regular event to be dispatched to the container's sink */
1733 case RDPC_WM_SYNC_EVENT:
1735
1737 {
1738 const EventArguments * eventArgs = reinterpret_cast<EventArguments *>(lParam);
1739 assert(eventArgs);
1740
1742 (
1743 eventArgs->eventId,
1744 eventArgs->rgvarg,
1745 eventArgs->cArgs,
1746 eventArgs->retval,
1747 eventArgs->callback
1748 );
1749
1750 if(uMsg == RDPC_WM_ASYNC_EVENT)
1751 delete eventArgs;
1752 }
1753
1754 break;
1755
1756 /* The protocol thread is about to die: prepare for disconnection */
1757 case RDPC_WM_DISCONNECT:
1758 {
1759 assert(m_Connected);
1760 assert(InsideApartment());
1762
1763 // Unblock the protocol thread and wait for it to terminate
1764 ReplyMessage(0);
1766
1767 // Finish disconnecting
1768 PerformDisconnect(static_cast<long>(wParam));
1769 }
1770
1771 break;
1772
1773 case RDPC_WM_REDIRECT:
1774 {
1776 assert(lParam);
1777 assert(m_Connected);
1779
1780 RedirectArguments * redirectArgs = reinterpret_cast<RedirectArguments *>(lParam);
1781
1782 // BUGBUG: this is extremely messy and more prone to out-of-memory than it should be
1783 LPSTR lpszNewServer = NULL;
1784 LPSTR lpszNewCookie = NULL;
1785 BSTR strNewUsername = NULL;
1786 BSTR strNewDomain = NULL;
1787 BSTR strNewPassword = NULL;
1788 HRESULT hr = S_OK;
1789
1790 for(;;)
1791 {
1792 // Allocate the new properties
1793 hr = E_OUTOFMEMORY;
1794
1795 // FIXME: convert the hostname to Punycode, not the ANSI codepage
1796 lpszNewServer = AllocLpsz(redirectArgs->server, redirectArgs->server_len / sizeof(OLECHAR));
1797
1798 if(lpszNewServer == NULL && redirectArgs->server_len)
1799 break;
1800
1801 lpszNewCookie = AllocLpsz(redirectArgs->cookie, redirectArgs->cookie_len);
1802
1803 if(lpszNewCookie == NULL && redirectArgs->cookie_len)
1804 break;
1805
1806 strNewUsername = SysAllocStringLen(redirectArgs->username, redirectArgs->username_len / sizeof(OLECHAR));
1807
1808 if(strNewUsername == NULL && redirectArgs->username_len)
1809 break;
1810
1811 strNewDomain = SysAllocStringLen(redirectArgs->domain, redirectArgs->domain_len / sizeof(OLECHAR));
1812
1813 if(strNewDomain == NULL && redirectArgs->domain_len)
1814 break;
1815
1816 strNewPassword = SysAllocStringLen(redirectArgs->password, redirectArgs->password_len / sizeof(OLECHAR));
1817
1818 if(strNewPassword == NULL && redirectArgs->password_len)
1819 break;
1820
1821 hr = S_OK;
1822 break;
1823 }
1824
1825 // Success
1826 if(SUCCEEDED(hr))
1827 {
1828 // set the new properties
1829 ReplaceProperty(m_Server, lpszNewServer);
1830 ReplaceProperty(m_LoadBalanceInfo, lpszNewCookie);
1831 ReplaceProperty(m_UserName, strNewUsername);
1832 ReplaceProperty(m_Domain, strNewDomain);
1833 ReplaceProperty(m_ClearTextPassword, strNewPassword);
1834 }
1835 // Failure
1836 else
1837 {
1838 // free the buffers
1839 FreeLpsz(lpszNewServer);
1840 FreeLpsz(lpszNewCookie);
1841 SysFreeString(strNewUsername);
1842 SysFreeString(strNewDomain);
1843 SysFreeString(strNewPassword);
1844
1845 // signal the error
1848 result = -1;
1849 }
1850 }
1851
1852 break;
1853
1854 // BUGBUG: this could potentially disconnect an unrelated connection established later...
1856 {
1858
1859 if(m_Connected)
1860 {
1861 // Ask confirmation to the container in case we are logged in
1862 if(m_loggedIn && !FireConfirmClose())
1863 break;
1864
1865 // For reentrancy (OnConfirmClose could deviously call Disconnect)
1866 if(m_protocolThread == NULL)
1867 break;
1868
1869 // Terminate the protocol thread. It will fire the Disconnected event on exit
1871 }
1872 }
1873
1874 break;
1875
1876 default:
1877 return false;
1878 }
1879
1880 // If the calling thread is blocked, unblock it ASAP
1881 if(InSendMessage())
1883
1884 return true;
1885 }
#define False
Definition: types.h:25
void PerformDisconnect(long reason)
Definition: activex.cpp:3994
void JoinProtocolThread()
Definition: activex.cpp:3965
RDPCLIENT m_protocolState
Definition: activex.cpp:1361
HRESULT ReplaceProperty(BSTR &prop, BSTR newValue)
Definition: activex.cpp:1517
bool FireConfirmClose()
Definition: activex.cpp:2080
LPSTR AllocLpsz(const CHAR *lpsz, size_t cb)
Definition: activex.cpp:61
BOOL redirect
Definition: rdesktop.h:213
int disconnect_reason
Definition: rdesktop.h:191
BOOL WINAPI ReplyMessage(_In_ LRESULT)
BOOL WINAPI InSendMessage(void)
Definition: message.c:1372
char * LPSTR
Definition: xmlstorage.h:182

◆ IConnectionPointContainer::EnumConnectionPoints()

virtual STDMETHODIMP SEALED_::IConnectionPointContainer::EnumConnectionPoints ( IEnumConnectionPoints **  ppEnum)
inlinevirtual

Definition at line 4572 of file activex.cpp.

4573 {
4574 *ppEnum = new CEnumConnectionPoints(this);
4575
4576 if(*ppEnum == NULL)
4577 return E_OUTOFMEMORY;
4578
4579 return S_OK;
4580 }

◆ IConnectionPointContainer::FindConnectionPoint()

virtual STDMETHODIMP SEALED_::IConnectionPointContainer::FindConnectionPoint ( REFIID  riid,
IConnectionPoint **  ppCP 
)
inlinevirtual

Definition at line 4582 of file activex.cpp.

4583 {
4584 if(riid != MSTSCLib::DIID_IMsTscAxEvents)
4586
4587 addRef();
4588 *ppCP = this;
4589
4590 return S_OK;
4591 }
#define CONNECT_E_NOCONNECTION
Definition: olectl.h:251

◆ IDataObject::DAdvise()

virtual STDMETHODIMP SEALED_::IDataObject::DAdvise ( FORMATETC *  pformatetc,
DWORD  advf,
IAdviseSink pAdvSink,
DWORD pdwConnection 
)
inlinevirtual

Definition at line 4624 of file activex.cpp.

4625 {
4626 return E_NOTIMPL;
4627 }

◆ IDataObject::DUnadvise()

virtual STDMETHODIMP SEALED_::IDataObject::DUnadvise ( DWORD  dwConnection)
inlinevirtual

Definition at line 4629 of file activex.cpp.

4630 {
4631 return E_NOTIMPL;
4632 }

◆ IDataObject::EnumDAdvise()

virtual STDMETHODIMP SEALED_::IDataObject::EnumDAdvise ( IEnumSTATDATA **  ppenumAdvise)
inlinevirtual

Definition at line 4634 of file activex.cpp.

4635 {
4636 return E_NOTIMPL;
4637 }

◆ IDataObject::EnumFormatEtc()

virtual STDMETHODIMP SEALED_::IDataObject::EnumFormatEtc ( DWORD  dwDirection,
IEnumFORMATETC **  ppenumFormatEtc 
)
inlinevirtual

Definition at line 4619 of file activex.cpp.

4620 {
4621 return E_NOTIMPL;
4622 }

◆ IDataObject::GetCanonicalFormatEtc()

virtual STDMETHODIMP SEALED_::IDataObject::GetCanonicalFormatEtc ( FORMATETC *  pformatectIn,
FORMATETC *  pformatetcOut 
)
inlinevirtual

Definition at line 4609 of file activex.cpp.

4610 {
4611 return E_NOTIMPL;
4612 }

◆ IDataObject::GetData()

virtual STDMETHODIMP SEALED_::IDataObject::GetData ( FORMATETC *  pformatetcIn,
STGMEDIUM *  pmedium 
)
inlinevirtual

Definition at line 4594 of file activex.cpp.

4595 {
4596 return E_NOTIMPL;
4597 }

◆ IDataObject::GetDataHere()

virtual STDMETHODIMP SEALED_::IDataObject::GetDataHere ( FORMATETC *  pformatetc,
STGMEDIUM *  pmedium 
)
inlinevirtual

Definition at line 4599 of file activex.cpp.

4600 {
4601 return E_NOTIMPL;
4602 }

◆ IDataObject::QueryGetData()

virtual STDMETHODIMP SEALED_::IDataObject::QueryGetData ( FORMATETC *  pformatetc)
inlinevirtual

Definition at line 4604 of file activex.cpp.

4605 {
4606 return E_NOTIMPL;
4607 }

◆ IDataObject::SetData()

virtual STDMETHODIMP SEALED_::IDataObject::SetData ( FORMATETC *  pformatetc,
STGMEDIUM *  pmedium,
BOOL  fRelease 
)
inlinevirtual

Definition at line 4614 of file activex.cpp.

4615 {
4616 return E_NOTIMPL;
4617 }

◆ IDispatch::GetIDsOfNames()

virtual STDMETHODIMP SEALED_::IDispatch::GetIDsOfNames ( REFIID  riid,
LPOLESTR rgszNames,
UINT  cNames,
LCID  lcid,
DISPID rgDispId 
)
inlinevirtual

Definition at line 4451 of file activex.cpp.

4452 {
4454
4455 if(FAILED(hr))
4456 return hr;
4457
4458 return m_dispTypeInfo->GetIDsOfNames(rgszNames, cNames, rgDispId);
4459 }
HRESULT GetIDsOfNames([in, size_is(cNames)] LPOLESTR *rgszNames, [in] UINT cNames, [out, size_is(cNames)] MEMBERID *pMemId)

◆ IDispatch::GetTypeInfo()

virtual STDMETHODIMP SEALED_::IDispatch::GetTypeInfo ( UINT  iTInfo,
LCID  lcid,
ITypeInfo **  ppTInfo 
)
inlinevirtual

Definition at line 4443 of file activex.cpp.

4444 {
4445 if(iTInfo != 0)
4446 return DISP_E_BADINDEX;
4447
4448 return AcquireDispTypeInfo(ppTInfo);
4449 }
HRESULT AcquireDispTypeInfo(ITypeInfo **ppTI)
Definition: activex.cpp:3595
#define DISP_E_BADINDEX
Definition: winerror.h:2520

◆ IDispatch::GetTypeInfoCount()

virtual STDMETHODIMP SEALED_::IDispatch::GetTypeInfoCount ( UINT pctinfo)
inlinevirtual

Definition at line 4437 of file activex.cpp.

4438 {
4439 *pctinfo = 1;
4440 return S_OK;
4441 }

◆ IDispatch::Invoke()

virtual STDMETHODIMP SEALED_::IDispatch::Invoke ( DISPID  dispIdMember,
REFIID  riid,
LCID  lcid,
WORD  wFlags,
DISPPARAMS *  pDispParams,
VARIANT pVarResult,
EXCEPINFO *  pExcepInfo,
UINT puArgErr 
)
inlinevirtual

Definition at line 4461 of file activex.cpp.

4462 {
4464
4465 if(FAILED(hr))
4466 return hr;
4467
4468 return m_dispTypeInfo->Invoke
4469 (
4470 static_cast<MSTSCLib::IMsRdpClient4 *>(this),
4471 dispIdMember,
4472 wFlags,
4473 pDispParams,
4474 pVarResult,
4475 pExcepInfo,
4476 puArgErr
4477 );
4478 }
HRESULT Invoke([in] PVOID pvInstance, [in] MEMBERID memid, [in] WORD wFlags, [in, out] DISPPARAMS *pDispParams, [out] VARIANT *pVarResult, [out] EXCEPINFO *pExcepInfo, [out] UINT *puArgErr)
_In_ DWORD _Out_ _In_ WORD wFlags
Definition: wincon.h:531

◆ IMsRdpClient2::get_AdvancedSettings3()

virtual STDMETHODIMP SEALED_::IMsRdpClient2::get_AdvancedSettings3 ( MSTSCLib::IMsRdpClientAdvancedSettings2 **  ppAdvSettings) const
inlinevirtual

Definition at line 5511 of file activex.cpp.

5512 {
5513 return GetAdvancedSettings(ppAdvSettings);
5514 }
HRESULT GetAdvancedSettings(Interface **ppAdvSettings)
Definition: activex.cpp:3331

◆ IMsRdpClient2::get_ConnectedStatusText()

virtual STDMETHODIMP SEALED_::IMsRdpClient2::get_ConnectedStatusText ( BSTR pConnectedStatusText) const
inlinevirtual

Definition at line 5521 of file activex.cpp.

5522 {
5523 return GetProperty(m_ConnectedStatusText, pConnectedStatusText);
5524 }
HRESULT GetProperty(BSTR &prop, BSTR *retVal) const
Definition: activex.cpp:1459

◆ IMsRdpClient2::put_ConnectedStatusText()

virtual STDMETHODIMP SEALED_::IMsRdpClient2::put_ConnectedStatusText ( BSTR  pConnectedStatusText)
inlinevirtual

Definition at line 5516 of file activex.cpp.

5517 {
5518 return SetProperty(m_ConnectedStatusText, pConnectedStatusText);
5519 }
HRESULT SetProperty(BSTR &prop, BSTR newValue)
Definition: activex.cpp:1489

◆ IMsRdpClient3::get_AdvancedSettings4()

virtual STDMETHODIMP SEALED_::IMsRdpClient3::get_AdvancedSettings4 ( MSTSCLib::IMsRdpClientAdvancedSettings3 **  ppAdvSettings) const
inlinevirtual

Definition at line 5527 of file activex.cpp.

5528 {
5529 return GetAdvancedSettings(ppAdvSettings);
5530 }

◆ IMsRdpClient4::get_AdvancedSettings5()

virtual STDMETHODIMP SEALED_::IMsRdpClient4::get_AdvancedSettings5 ( MSTSCLib::IMsRdpClientAdvancedSettings4 **  ppAdvSettings5) const
inlinevirtual

Definition at line 5533 of file activex.cpp.

5534 {
5535 return GetAdvancedSettings(ppAdvSettings5);
5536 }

◆ IMsRdpClient::get_AdvancedSettings2()

virtual STDMETHODIMP SEALED_::IMsRdpClient::get_AdvancedSettings2 ( MSTSCLib::IMsRdpClientAdvancedSettings **  ppAdvSettings) const
inlinevirtual

Definition at line 5449 of file activex.cpp.

5450 {
5451 return GetAdvancedSettings(ppAdvSettings);
5452 }

◆ IMsRdpClient::get_ColorDepth()

virtual STDMETHODIMP SEALED_::IMsRdpClient::get_ColorDepth ( long pcolorDepth) const
inlinevirtual

Definition at line 5444 of file activex.cpp.

5445 {
5446 return GetProperty(m_ColorDepth, pcolorDepth);
5447 }

◆ IMsRdpClient::get_ExtendedDisconnectReason()

virtual STDMETHODIMP SEALED_::IMsRdpClient::get_ExtendedDisconnectReason ( MSTSCLib::ExtendedDisconnectReasonCode pExtendedDisconnectReason) const
inlinevirtual

Definition at line 5459 of file activex.cpp.

5460 {
5461 return GetProperty(m_ExtendedDisconnectReason, pExtendedDisconnectReason);
5462 }

◆ IMsRdpClient::get_FullScreen()

virtual STDMETHODIMP SEALED_::IMsRdpClient::get_FullScreen ( VARIANT_BOOL pfFullScreen) const
inlinevirtual

Definition at line 5476 of file activex.cpp.

5477 {
5478 return GetProperty(m_FullScreen, pfFullScreen);
5479 }

◆ IMsRdpClient::get_SecuredSettings2()

virtual STDMETHODIMP SEALED_::IMsRdpClient::get_SecuredSettings2 ( MSTSCLib::IMsRdpClientSecuredSettings **  ppSecuredSettings) const
inlinevirtual

Definition at line 5454 of file activex.cpp.

5455 {
5456 return GetSecuredSettings(ppSecuredSettings);
5457 }
HRESULT GetSecuredSettings(Interface **ppSecuredSettings)
Definition: activex.cpp:3530

◆ IMsRdpClient::GetVirtualChannelOptions()

virtual STDMETHODIMP SEALED_::IMsRdpClient::GetVirtualChannelOptions ( BSTR  chanName,
long pChanOptions 
)
inlinevirtual

Definition at line 5486 of file activex.cpp.

5487 {
5488 return E_NOTIMPL; // TODO
5489 }

◆ IMsRdpClient::put_ColorDepth()

virtual STDMETHODIMP SEALED_::IMsRdpClient::put_ColorDepth ( long  pcolorDepth)
inlinevirtual

Definition at line 5426 of file activex.cpp.

5427 {
5428 switch(pcolorDepth)
5429 {
5430 case 8:
5431 case 15:
5432 case 16:
5433 case 24:
5434 case 32:
5435 break;
5436
5437 default:
5438 return E_INVALIDARG;
5439 }
5440
5441 return SetProperty(m_ColorDepth, pcolorDepth);
5442 }
#define E_INVALIDARG
Definition: ddrawi.h:101

◆ IMsRdpClient::put_FullScreen()

virtual STDMETHODIMP SEALED_::IMsRdpClient::put_FullScreen ( VARIANT_BOOL  pfFullScreen)
inlinevirtual

Definition at line 5464 of file activex.cpp.

5465 {
5466 if(!m_Connected)
5467 return E_FAIL;
5468
5469 if(pfFullScreen && !m_SecuredSettingsEnabled)
5470 return E_FAIL;
5471
5472 // TODO
5473 return E_NOTIMPL;
5474 }

◆ IMsRdpClient::RequestClose()

virtual STDMETHODIMP SEALED_::IMsRdpClient::RequestClose ( MSTSCLib::ControlCloseStatus pCloseStatus)
inlinevirtual

Definition at line 5491 of file activex.cpp.

5492 {
5493 if(pCloseStatus == NULL)
5494 return E_POINTER;
5495
5496 if(!m_Connected)
5497 {
5498 *pCloseStatus = MSTSCLib::controlCloseCanProceed;
5499 return S_OK;
5500 }
5501
5503
5504 if(!PostMessage(m_controlWindow, RDPC_WM_REQUEST_CLOSE, 0, 0))
5506
5507 return S_OK;
5508 }
@ controlCloseWaitForEvents
Definition: mstsclib.idl:74
@ controlCloseCanProceed
Definition: mstsclib.idl:73

◆ IMsRdpClient::SetVirtualChannelOptions()

virtual STDMETHODIMP SEALED_::IMsRdpClient::SetVirtualChannelOptions ( BSTR  chanName,
long  chanOptions 
)
inlinevirtual

Definition at line 5481 of file activex.cpp.

5482 {
5483 return E_NOTIMPL; // TODO
5484 }

◆ IMsRdpClientNonScriptable2::get_UIParentWindowHandle()

virtual STDMETHODIMP SEALED_::IMsRdpClientNonScriptable2::get_UIParentWindowHandle ( HWND phwndUIParentWindowHandle) const
inlinevirtual

Definition at line 5608 of file activex.cpp.

5609 {
5610 return GetProperty(m_UIParentWindowHandle, phwndUIParentWindowHandle);
5611 }

◆ IMsRdpClientNonScriptable2::put_UIParentWindowHandle()

virtual STDMETHODIMP SEALED_::IMsRdpClientNonScriptable2::put_UIParentWindowHandle ( HWND  phwndUIParentWindowHandle)
inlinevirtual

Definition at line 5603 of file activex.cpp.

5604 {
5605 return SetProperty(m_UIParentWindowHandle, phwndUIParentWindowHandle);
5606 }

◆ IMsRdpClientNonScriptable::NotifyRedirectDeviceChange()

virtual STDMETHODIMP SEALED_::IMsRdpClientNonScriptable::NotifyRedirectDeviceChange ( MSTSCLib::UINT_PTR  wParam,
MSTSCLib::LONG_PTR  lParam 
)
inlinevirtual

Definition at line 5590 of file activex.cpp.

5591 {
5592 return E_NOTIMPL; // TODO
5593 }

◆ IMsRdpClientNonScriptable::SendKeys()

virtual STDMETHODIMP SEALED_::IMsRdpClientNonScriptable::SendKeys ( long  numKeys,
VARIANT_BOOL pbArrayKeyUp,
long plKeyData 
)
inlinevirtual

Definition at line 5595 of file activex.cpp.

5596 {
5597 // NOTE: the keys must be sent in a single, atomic sequence
5598 // TODO: acquire the write lock
5599 return E_NOTIMPL; // TODO
5600 }

◆ IMsTscAx::Connect()

virtual STDMETHODIMP SEALED_::IMsTscAx::Connect ( )
inlinevirtual

Definition at line 5273 of file activex.cpp.

5274 {
5275 if(m_Connected)
5276 {
5277 // Protocol thread waiting for a manual reconnection: wake it up
5278 if(m_protocolThreadWaitingReconnection)
5279 {
5280 SetEvent(m_protocolThreadWaitingReconnection);
5281 return S_OK;
5282 }
5283
5284 return E_FAIL;
5285 }
5286
5287 m_Connected = true;
5288
5289 HRESULT hr;
5290
5291 if(m_controlWindow == NULL)
5292 {
5294
5295 if(FAILED(hr))
5296 return hr;
5297 }
5298
5299 for(;;)
5300 {
5301 // TODO: initialize plugin DLLs/channels
5302
5303 m_clientUI = new RdpClientUI();
5304
5305 if(m_clientUI == NULL)
5306 {
5307 hr = E_OUTOFMEMORY;
5308 break;
5309 }
5310
5311 m_clientUI->Initialize(m_controlWindow);
5312
5314
5316 {
5317 hr = E_OUTOFMEMORY;
5318 break;
5319 }
5320
5322
5324 {
5326 break;
5327 }
5328
5329 // Keyboard layout
5330 // BUGBUG: not too sure about the semantics
5331 long keyboardLayout = -1;
5332 WCHAR * endPtr = NULL;
5333
5334 if(m_KeyboardLayoutString)
5335 keyboardLayout = wcstol(m_KeyboardLayoutString, &endPtr, 0);
5336
5337 // no keyboard layout specified or invalid keyboard layout: use current keyboard layout
5338 if(endPtr == NULL || *endPtr == 0 || keyboardLayout == -1)
5339 keyboardLayout = PtrToLong(GetKeyboardLayout(0)); // FIXME? use LOWORD()?
5340
5341 m_protocolState.keylayout = keyboardLayout;
5342
5343 // in case of failure, assume English (US)
5344 if(m_protocolState.keylayout == 0)
5346
5347 // Physical keyboard information
5351
5352 // in case of failure, assume an IBM Enhanced keyboard with 12 function keys
5354 {
5358 }
5359
5360 // More initialization
5368 m_protocolState.encryption = m_EncryptionEnabled ? TRUE : FALSE; // TBD: detect automatically
5370 m_protocolState.desktop_save = True; // FIXME? tie to bitmap cache setting?
5372 m_protocolState.use_rdp5 = True; // TBD: detect automatically
5376 m_protocolState.rdp.current_status = 1;
5377
5378 // TODO: cache tuning based on the provided parameters
5379
5380 m_protocolState.cache.bmpcache_lru[0] = -1;
5381 m_protocolState.cache.bmpcache_lru[1] = -1;
5382 m_protocolState.cache.bmpcache_lru[2] = -1;
5383 m_protocolState.cache.bmpcache_mru[0] = -1;
5384 m_protocolState.cache.bmpcache_mru[1] = -1;
5385 m_protocolState.cache.bmpcache_mru[2] = -1;
5386
5387 DWORD dwIgnore;
5388 m_protocolThread = CreateThread(NULL, 0, ProtocolLoopThreadProc, this, 0, &dwIgnore);
5389
5390 hr = S_OK;
5391 break;
5392 }
5393
5394 if(FAILED(hr))
5395 m_Connected = false;
5396
5397 return hr;
5398 }
#define True
Definition: types.h:24
#define PtrToLong(p)
Definition: basetsd.h:84
HRESULT Initialize(HWND hwndParent)
Definition: activex.cpp:304
bool m_ConnectToServerConsole
Definition: activex.cpp:1443
long m_DesktopHeight
Definition: activex.cpp:1389
long m_DesktopWidth
Definition: activex.cpp:1388
long m_ColorDepth
Definition: activex.cpp:1391
bool m_Compress
Definition: activex.cpp:1426
long m_PerformanceFlags
Definition: activex.cpp:1419
long m_RDPPort
Definition: activex.cpp:1396
HANDLE m_protocolThread
Definition: activex.cpp:1362
bool m_Connected
Definition: activex.cpp:1425
bool m_EncryptionEnabled
Definition: activex.cpp:1435
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
HANDLE WINAPI DECLSPEC_HOTPATCH CreateThread(IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN DWORD dwStackSize, IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter, IN DWORD dwCreationFlags, OUT LPDWORD lpThreadId)
Definition: thread.c:137
_Check_return_ long __cdecl wcstol(_In_z_ const wchar_t *_Str, _Out_opt_ _Deref_post_z_ wchar_t **_EndPtr, _In_ int _Radix)
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
Definition: env.c:56
LPSTR BstrToLpsz(BSTR bstr)
Definition: activex.cpp:97
#define MAKELANGID(p, s)
Definition: nls.h:15
#define LANG_ENGLISH
Definition: nls.h:52
#define SUBLANG_ENGLISH_US
Definition: nls.h:222
BOOL WINAPI SHIM_OBJ_NAME() GetComputerNameA(LPSTR lpBuffer, LPDWORD lpnSize)
Definition: shimtest.c:21
BOOL use_rdp5
Definition: rdesktop.h:208
int tcp_port_rdp
Definition: rdesktop.h:229
int keyboard_subtype
Definition: rdesktop.h:194
BOOL bitmap_cache
Definition: rdesktop.h:201
int keyboard_type
Definition: rdesktop.h:193
BOOL bitmap_cache_persist_enable
Definition: rdesktop.h:202
struct rdpclient::rdp_ rdp
int width
Definition: rdesktop.h:197
unsigned int keylayout
Definition: rdesktop.h:192
int keyboard_functionkeys
Definition: rdesktop.h:195
int server_depth
Definition: rdesktop.h:199
BOOL bitmap_cache_precache
Definition: rdesktop.h:203
char * licence_username
Definition: rdesktop.h:175
BOOL encryption
Definition: rdesktop.h:204
BOOL packet_encryption
Definition: rdesktop.h:205
struct rdpclient::cache_ cache
char licence_hostname[MAX_COMPUTERNAME_LENGTH+1]
Definition: rdesktop.h:176
BOOL desktop_save
Definition: rdesktop.h:206
BOOL bitmap_compression
Definition: rdesktop.h:200
uint32 rdp5_performanceflags
Definition: rdesktop.h:210
BOOL polygon_ellipse_orders
Definition: rdesktop.h:207
int height
Definition: rdesktop.h:198
BOOL console_session
Definition: rdesktop.h:209
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
Definition: synch.c:733
HKL WINAPI GetKeyboardLayout(_In_ DWORD)
int WINAPI GetKeyboardType(_In_ int)
__wchar_t WCHAR
Definition: xmlstorage.h:180

◆ IMsTscAx::CreateVirtualChannels()

virtual STDMETHODIMP SEALED_::IMsTscAx::CreateVirtualChannels ( BSTR  newVal)
inlinevirtual

Definition at line 5410 of file activex.cpp.

5411 {
5412 UINT strLength = SysStringLen(newVal);
5413
5414 if(strLength < 1 || strLength > 300)
5415 return E_INVALIDARG;
5416
5417 return E_NOTIMPL; // TODO
5418 }
unsigned int UINT
Definition: ndis.h:50

◆ IMsTscAx::Disconnect()

virtual STDMETHODIMP SEALED_::IMsTscAx::Disconnect ( )
inlinevirtual

Definition at line 5400 of file activex.cpp.

5401 {
5402 if(!m_Connected)
5403 return E_FAIL;
5404
5405 // Terminate the protocol thread. On exit, it will fire the Disconnected event
5407 return S_OK;
5408 }

◆ IMsTscAx::get_AdvancedSettings()

virtual STDMETHODIMP SEALED_::IMsTscAx::get_AdvancedSettings ( MSTSCLib::IMsTscAdvancedSettings **  ppAdvSettings) const
inlinevirtual

Definition at line 5263 of file activex.cpp.

5264 {
5265 return GetAdvancedSettings(ppAdvSettings);
5266 }

◆ IMsTscAx::get_CipherStrength()

virtual STDMETHODIMP SEALED_::IMsTscAx::get_CipherStrength ( long pCipherStrength) const
inlinevirtual

Definition at line 5229 of file activex.cpp.

5230 {
5231 if(pCipherStrength == NULL)
5232 return E_INVALIDARG;
5233
5234 *pCipherStrength = 128; // BUGBUG: a later version may change this. Use a compile-time constant
5235 return S_OK;
5236 }

◆ IMsTscAx::get_Connected()

virtual STDMETHODIMP SEALED_::IMsTscAx::get_Connected ( short pIsConnected) const
inlinevirtual

Definition at line 5172 of file activex.cpp.

5173 {
5174 return GetProperty(m_Connected, pIsConnected);
5175 }

◆ IMsTscAx::get_ConnectingText()

virtual STDMETHODIMP SEALED_::IMsTscAx::get_ConnectingText ( BSTR pConnectingText) const
inlinevirtual

Definition at line 5167 of file activex.cpp.

5168 {
5169 return GetProperty(m_ConnectingText, pConnectingText);
5170 }

◆ IMsTscAx::get_Debugger()

virtual STDMETHODIMP SEALED_::IMsTscAx::get_Debugger ( MSTSCLib::IMsTscDebug **  ppDebugger) const
inlinevirtual

Definition at line 5268 of file activex.cpp.

5269 {
5270 return E_NOTIMPL;
5271 }

◆ IMsTscAx::get_DesktopHeight()

virtual STDMETHODIMP SEALED_::IMsTscAx::get_DesktopHeight ( long pVal) const
inlinevirtual

Definition at line 5198 of file activex.cpp.

5199 {
5200 return GetProperty(m_DesktopHeight, pVal);
5201 }

◆ IMsTscAx::get_DesktopWidth()

virtual STDMETHODIMP SEALED_::IMsTscAx::get_DesktopWidth ( long pVal) const
inlinevirtual

Definition at line 5185 of file activex.cpp.

5186 {
5187 return GetProperty(m_DesktopWidth, pVal);
5188 }

◆ IMsTscAx::get_DisconnectedText()

virtual STDMETHODIMP SEALED_::IMsTscAx::get_DisconnectedText ( BSTR pDisconnectedText) const
inlinevirtual

Definition at line 5157 of file activex.cpp.

5158 {
5159 return GetProperty(m_DisconnectedText, pDisconnectedText);
5160 }

◆ IMsTscAx::get_Domain()

virtual STDMETHODIMP SEALED_::IMsTscAx::get_Domain ( BSTR pDomain) const
inlinevirtual

Definition at line 5137 of file activex.cpp.

5138 {
5139 return GetProperty(m_Domain, pDomain);
5140 }

◆ IMsTscAx::get_HorizontalScrollBarVisible()

virtual STDMETHODIMP SEALED_::IMsTscAx::get_HorizontalScrollBarVisible ( long pfHScrollVisible) const
inlinevirtual

Definition at line 5213 of file activex.cpp.

5214 {
5215 return E_NOTIMPL; // TODO
5216 }

◆ IMsTscAx::get_SecuredSettings()

virtual STDMETHODIMP SEALED_::IMsTscAx::get_SecuredSettings ( MSTSCLib::IMsTscSecuredSettings **  ppSecuredSettings) const
inlinevirtual

Definition at line 5258 of file activex.cpp.

5259 {
5260 return GetSecuredSettings(ppSecuredSettings);
5261 }

◆ IMsTscAx::get_SecuredSettingsEnabled()

virtual STDMETHODIMP SEALED_::IMsTscAx::get_SecuredSettingsEnabled ( long pSecuredSettingsEnabled) const
inlinevirtual

Definition at line 5252 of file activex.cpp.

5253 {
5254 // TODO: initialize m_SecuredSettingsEnabled as soon as we have an OLE client site
5255 return GetProperty(m_SecuredSettingsEnabled, pSecuredSettingsEnabled);
5256 }

◆ IMsTscAx::get_Server()

virtual STDMETHODIMP SEALED_::IMsTscAx::get_Server ( BSTR pServer) const
inlinevirtual

Definition at line 5127 of file activex.cpp.

5128 {
5129 return GetProperty(m_Server, pServer);
5130 }

◆ IMsTscAx::get_StartConnected()

virtual STDMETHODIMP SEALED_::IMsTscAx::get_StartConnected ( long pfStartConnected) const
inlinevirtual

Definition at line 5208 of file activex.cpp.

5209 {
5210 return GetProperty(m_StartConnected, pfStartConnected);
5211 }

◆ IMsTscAx::get_UserName()

virtual STDMETHODIMP SEALED_::IMsTscAx::get_UserName ( BSTR pUserName) const
inlinevirtual

Definition at line 5147 of file activex.cpp.

5148 {
5149 return GetProperty(m_UserName, pUserName);
5150 }
static LPWSTR pUserName

◆ IMsTscAx::get_Version()

virtual STDMETHODIMP SEALED_::IMsTscAx::get_Version ( BSTR pVersion) const
inlinevirtual

Definition at line 5238 of file activex.cpp.

5239 {
5240 if(pVersion == NULL)
5241 return E_INVALIDARG;
5242
5243 BSTR version = SysAllocString(L"5.2.3790.1830"); // BUGBUG: don't use hardcoded string
5244
5245 if(version == NULL)
5246 return E_OUTOFMEMORY;
5247
5248 *pVersion = version;
5249 return S_OK;
5250 }
static const WCHAR version[]
Definition: asmname.c:66
#define L(x)
Definition: ntvdm.h:50

◆ IMsTscAx::get_VerticalScrollBarVisible()

virtual STDMETHODIMP SEALED_::IMsTscAx::get_VerticalScrollBarVisible ( long pfVScrollVisible) const
inlinevirtual

Definition at line 5218 of file activex.cpp.

5219 {
5220 return E_NOTIMPL; // TODO
5221 }

◆ IMsTscAx::put_ConnectingText()

virtual STDMETHODIMP SEALED_::IMsTscAx::put_ConnectingText ( BSTR  pConnectingText)
inlinevirtual

Definition at line 5162 of file activex.cpp.

5163 {
5164 return SetProperty(m_ConnectingText, pConnectingText);
5165 }

◆ IMsTscAx::put_DesktopHeight()

virtual STDMETHODIMP SEALED_::IMsTscAx::put_DesktopHeight ( long  pVal)
inlinevirtual

Definition at line 5190 of file activex.cpp.

5191 {
5192 if(pVal < 200 || pVal > 1200)
5193 return E_INVALIDARG;
5194
5195 return SetProperty(m_DesktopHeight, pVal);
5196 }

◆ IMsTscAx::put_DesktopWidth()

virtual STDMETHODIMP SEALED_::IMsTscAx::put_DesktopWidth ( long  pVal)
inlinevirtual

Definition at line 5177 of file activex.cpp.

5178 {
5179 if(pVal < 200 || pVal > 1600)
5180 return E_INVALIDARG;
5181
5182 return SetProperty(m_DesktopWidth, pVal);
5183 }

◆ IMsTscAx::put_DisconnectedText()

virtual STDMETHODIMP SEALED_::IMsTscAx::put_DisconnectedText ( BSTR  pDisconnectedText)
inlinevirtual

Definition at line 5152 of file activex.cpp.

5153 {
5154 return SetProperty(m_DisconnectedText, pDisconnectedText);
5155 }

◆ IMsTscAx::put_Domain()

virtual STDMETHODIMP SEALED_::IMsTscAx::put_Domain ( BSTR  pDomain)
inlinevirtual

Definition at line 5132 of file activex.cpp.

5133 {
5134 return SetProperty(m_Domain, pDomain);
5135 }

◆ IMsTscAx::put_FullScreenTitle()

virtual STDMETHODIMP SEALED_::IMsTscAx::put_FullScreenTitle ( BSTR  rhs)
inlinevirtual

Definition at line 5223 of file activex.cpp.

5224 {
5225 // TODO
5226 return E_NOTIMPL;
5227 }

◆ IMsTscAx::put_Server()

virtual STDMETHODIMP SEALED_::IMsTscAx::put_Server ( BSTR  pServer)
inlinevirtual

Definition at line 5121 of file activex.cpp.

5122 {
5123 // FIXME: convert the hostname to Punycode, not the ANSI codepage
5124 return SetProperty(m_Server, pServer);
5125 }

◆ IMsTscAx::put_StartConnected()

virtual STDMETHODIMP SEALED_::IMsTscAx::put_StartConnected ( long  pfStartConnected)
inlinevirtual

Definition at line 5203 of file activex.cpp.

5204 {
5205 return SetProperty(m_StartConnected, pfStartConnected);
5206 }

◆ IMsTscAx::put_UserName()

virtual STDMETHODIMP SEALED_::IMsTscAx::put_UserName ( BSTR  pUserName)
inlinevirtual

Definition at line 5142 of file activex.cpp.

5143 {
5144 return SetProperty(m_UserName, pUserName);
5145 }

◆ IMsTscAx::SendOnVirtualChannel()

virtual STDMETHODIMP SEALED_::IMsTscAx::SendOnVirtualChannel ( BSTR  chanName,
BSTR  ChanData 
)
inlinevirtual

Definition at line 5420 of file activex.cpp.

5421 {
5422 return E_NOTIMPL; // TODO
5423 }

◆ IMsTscNonScriptable::get_BinaryPassword()

virtual STDMETHODIMP SEALED_::IMsTscNonScriptable::get_BinaryPassword ( BSTR pBinaryPassword) const
inlinevirtual

Definition at line 5569 of file activex.cpp.

5570 {
5571 return E_NOTIMPL;
5572 }

◆ IMsTscNonScriptable::get_BinarySalt()

virtual STDMETHODIMP SEALED_::IMsTscNonScriptable::get_BinarySalt ( BSTR pSalt) const
inlinevirtual

Definition at line 5579 of file activex.cpp.

5580 {
5581 return E_NOTIMPL;
5582 }

◆ IMsTscNonScriptable::get_PortablePassword()

virtual STDMETHODIMP SEALED_::IMsTscNonScriptable::get_PortablePassword ( BSTR pPortablePass) const
inlinevirtual

Definition at line 5549 of file activex.cpp.

5550 {
5551 return E_NOTIMPL;
5552 }

◆ IMsTscNonScriptable::get_PortableSalt()

virtual STDMETHODIMP SEALED_::IMsTscNonScriptable::get_PortableSalt ( BSTR pPortableSalt) const
inlinevirtual

Definition at line 5559 of file activex.cpp.

5560 {
5561 return E_NOTIMPL;
5562 }

◆ IMsTscNonScriptable::put_BinaryPassword()

virtual STDMETHODIMP SEALED_::IMsTscNonScriptable::put_BinaryPassword ( BSTR  pBinaryPassword)
inlinevirtual

Definition at line 5564 of file activex.cpp.

5565 {
5566 return E_NOTIMPL;
5567 }

◆ IMsTscNonScriptable::put_BinarySalt()

virtual STDMETHODIMP SEALED_::IMsTscNonScriptable::put_BinarySalt ( BSTR  pSalt)
inlinevirtual

Definition at line 5574 of file activex.cpp.

5575 {
5576 return E_NOTIMPL;
5577 }

◆ IMsTscNonScriptable::put_ClearTextPassword()

virtual STDMETHODIMP SEALED_::IMsTscNonScriptable::put_ClearTextPassword ( BSTR  rhs)
inlinevirtual

Definition at line 5539 of file activex.cpp.

5540 {
5541 return SetProperty(m_ClearTextPassword, rhs);
5542 }

◆ IMsTscNonScriptable::put_PortablePassword()

virtual STDMETHODIMP SEALED_::IMsTscNonScriptable::put_PortablePassword ( BSTR  pPortablePass)
inlinevirtual

Definition at line 5544 of file activex.cpp.

5545 {
5546 return E_NOTIMPL;
5547 }

◆ IMsTscNonScriptable::put_PortableSalt()

virtual STDMETHODIMP SEALED_::IMsTscNonScriptable::put_PortableSalt ( BSTR  pPortableSalt)
inlinevirtual

Definition at line 5554 of file activex.cpp.

5555 {
5556 return E_NOTIMPL;
5557 }

◆ IMsTscNonScriptable::ResetPassword()

virtual STDMETHODIMP SEALED_::IMsTscNonScriptable::ResetPassword ( )
inlinevirtual

Definition at line 5584 of file activex.cpp.

5585 {
5586 return SetProperty(m_ClearTextPassword, NULL);
5587 }

◆ InnerToOuter() [1/8]

static RdpClient * SEALED_::InnerToOuter ( AdvancedSettings *  innerThis)
inlinestatic

Definition at line 3614 of file activex.cpp.

3615 {
3616 return CONTAINING_RECORD(innerThis, RdpClient, m_advancedSettings);
3617 }
#define CONTAINING_RECORD(address, type, field)
Definition: typedefs.h:260

◆ InnerToOuter() [2/8]

static const RdpClient * SEALED_::InnerToOuter ( const AdvancedSettings *  innerThis)
inlinestatic

Definition at line 3634 of file activex.cpp.

3635 {
3636 return CONTAINING_RECORD(innerThis, RdpClient, m_advancedSettings);
3637 }

◆ InnerToOuter() [3/8]

static const RdpClient * SEALED_::InnerToOuter ( const RDPCLIENT innerThis)
inlinestatic

Definition at line 3644 of file activex.cpp.

3645 {
3646 return CONTAINING_RECORD(innerThis, RdpClient, m_protocolState);
3647 }

◆ InnerToOuter() [4/8]

static const RdpClient * SEALED_::InnerToOuter ( const RdpClientInner innerThis)
inlinestatic

Definition at line 3629 of file activex.cpp.

3630 {
3631 return CONTAINING_RECORD(innerThis, RdpClient, m_inner);
3632 }

◆ InnerToOuter() [5/8]

static const RdpClient * SEALED_::InnerToOuter ( const SecuredSettings *  innerThis)
inlinestatic

Definition at line 3639 of file activex.cpp.

3640 {
3641 return CONTAINING_RECORD(innerThis, RdpClient, m_securedSettings);
3642 }

◆ InnerToOuter() [6/8]

static RdpClient * SEALED_::InnerToOuter ( RDPCLIENT innerThis)
inlinestatic

Definition at line 3624 of file activex.cpp.

3625 {
3626 return CONTAINING_RECORD(innerThis, RdpClient, m_protocolState);
3627 }

◆ InnerToOuter() [7/8]

static RdpClient * SEALED_::InnerToOuter ( RdpClientInner innerThis)
inlinestatic

Definition at line 3609 of file activex.cpp.

3610 {
3611 return CONTAINING_RECORD(innerThis, RdpClient, m_inner);
3612 }

◆ InnerToOuter() [8/8]

static RdpClient * SEALED_::InnerToOuter ( SecuredSettings *  innerThis)
inlinestatic

Definition at line 3619 of file activex.cpp.

3620 {
3621 return CONTAINING_RECORD(innerThis, RdpClient, m_securedSettings);
3622 }

◆ InvokeSinks()

void SEALED_::InvokeSinks ( DISPID  eventId,
VARIANTARG  rgvarg[],
unsigned int  cArgs,
VARIANTARG retval 
)
inlineprivate

Definition at line 1621 of file activex.cpp.

1622 {
1623 assert(InsideApartment());
1624
1626
1627 params.rgvarg = rgvarg;
1628 params.rgdispidNamedArgs = NULL;
1629 params.cArgs = cArgs;
1630 params.cNamedArgs = 0;
1631
1633
1634 for(size_t i = 0; i < m_EventSinksCount; ++ i)
1635 sinks[i]->Invoke(eventId, IID_NULL, 0, DISPATCH_METHOD, &params, retval, NULL, NULL);
1636 }
GLenum const GLfloat * params
Definition: glext.h:5645
HRESULT Invoke([in] DISPID dispIdMember, [in] REFIID riid, [in] LCID lcid, [in] WORD wFlags, [in, out] DISPPARAMS *pDispParams, [out] VARIANT *pVarResult, [out] EXCEPINFO *pExcepInfo, [out] UINT *puArgErr)
struct stdole::DISPPARAMS DISPPARAMS
#define DISPATCH_METHOD
Definition: oleauto.h:1006
#define IID_NULL
Definition: guiddef.h:98

◆ IObjectSafety::GetInterfaceSafetyOptions()

virtual STDMETHODIMP SEALED_::IObjectSafety::GetInterfaceSafetyOptions ( REFIID  riid,
DWORD pdwSupportedOptions,
DWORD pdwEnabledOptions 
)
inlinevirtual

Definition at line 4640 of file activex.cpp.

4641 {
4642 if(pdwSupportedOptions == NULL || pdwEnabledOptions == NULL)
4643 return E_POINTER;
4644
4645 if(riid != IID_IDispatch)
4646 return E_NOINTERFACE;
4647
4648 *pdwSupportedOptions = INTERFACESAFE_FOR_UNTRUSTED_CALLER;
4649 *pdwEnabledOptions = m_SafetyOptions;
4650 return S_OK;
4651 }
DWORD m_SafetyOptions
Definition: activex.cpp:1352
const GUID IID_IDispatch
#define E_NOINTERFACE
Definition: winerror.h:2364

◆ IObjectSafety::SetInterfaceSafetyOptions()

virtual STDMETHODIMP SEALED_::IObjectSafety::SetInterfaceSafetyOptions ( REFIID  riid,
DWORD  dwOptionSetMask,
DWORD  dwEnabledOptions 
)
inlinevirtual

Definition at line 4653 of file activex.cpp.

4654 {
4655 if(riid != IID_IDispatch)
4656 return E_NOINTERFACE;
4657
4658 m_SafetyOptions = dwEnabledOptions & (dwOptionSetMask & INTERFACESAFE_FOR_UNTRUSTED_CALLER);
4659 return S_OK;
4660 }

◆ IOleControl::FreezeEvents()

virtual STDMETHODIMP SEALED_::IOleControl::FreezeEvents ( BOOL  bFreeze)
inlinevirtual

Definition at line 4678 of file activex.cpp.

4679 {
4680 if(bFreeze)
4681 InterlockedIncrement(&m_freezeEvents);
4682 else if(InterlockedDecrement(&m_freezeEvents) == 0)
4684
4685 return S_OK;
4686 }
#define InterlockedDecrement
Definition: armddk.h:52
void UnfreezeEvents()
Definition: activex.cpp:1615

◆ IOleControl::GetControlInfo()

virtual STDMETHODIMP SEALED_::IOleControl::GetControlInfo ( CONTROLINFO pCI)
inlinevirtual

Definition at line 4663 of file activex.cpp.

4664 {
4665 return E_NOTIMPL;
4666 }

◆ IOleControl::OnAmbientPropertyChange()

virtual STDMETHODIMP SEALED_::IOleControl::OnAmbientPropertyChange ( DISPID  dispID)
inlinevirtual

Definition at line 4673 of file activex.cpp.

4674 {
4675 return S_OK;
4676 }

◆ IOleControl::OnMnemonic()

virtual STDMETHODIMP SEALED_::IOleControl::OnMnemonic ( MSG pMsg)
inlinevirtual

Definition at line 4668 of file activex.cpp.

4669 {
4670 return E_NOTIMPL;
4671 }

◆ IOleInPlaceActiveObject::EnableModeless()

virtual STDMETHODIMP SEALED_::IOleInPlaceActiveObject::EnableModeless ( BOOL  fEnable)
inlinevirtual

Definition at line 4711 of file activex.cpp.

4712 {
4713 return S_OK;
4714 }

◆ IOleInPlaceActiveObject::OnDocWindowActivate()

virtual STDMETHODIMP SEALED_::IOleInPlaceActiveObject::OnDocWindowActivate ( BOOL  fActivate)
inlinevirtual

Definition at line 4700 of file activex.cpp.

4701 {
4702 // TODO
4703 return E_NOTIMPL;
4704 }

◆ IOleInPlaceActiveObject::OnFrameWindowActivate()

virtual STDMETHODIMP SEALED_::IOleInPlaceActiveObject::OnFrameWindowActivate ( BOOL  fActivate)
inlinevirtual

Definition at line 4694 of file activex.cpp.

4695 {
4696 // TODO
4697 return E_NOTIMPL;
4698 }

◆ IOleInPlaceActiveObject::ResizeBorder()

virtual STDMETHODIMP SEALED_::IOleInPlaceActiveObject::ResizeBorder ( LPCRECT  prcBorder,
IOleInPlaceUIWindow pUIWindow,
BOOL  fFrameWindow 
)
inlinevirtual

Definition at line 4706 of file activex.cpp.

4707 {
4708 return S_OK;
4709 }

◆ IOleInPlaceActiveObject::TranslateAccelerator()

virtual STDMETHODIMP SEALED_::IOleInPlaceActiveObject::TranslateAccelerator ( LPMSG  lpmsg)
inlinevirtual

Definition at line 4689 of file activex.cpp.

4690 {
4691 return E_NOTIMPL;
4692 }

◆ IOleInPlaceObject::InPlaceDeactivate()

virtual STDMETHODIMP SEALED_::IOleInPlaceObject::InPlaceDeactivate ( )
inlinevirtual

Definition at line 4717 of file activex.cpp.

4718 {
4719 // TODO: UIDeactivate, destroy window, inplacesite->OnInPlaceDeactivate
4720 return E_NOTIMPL;
4721 }

◆ IOleInPlaceObject::ReactivateAndUndo()

virtual STDMETHODIMP SEALED_::IOleInPlaceObject::ReactivateAndUndo ( )
inlinevirtual

Definition at line 4749 of file activex.cpp.

4750 {
4751 return E_NOTIMPL;
4752 }

◆ IOleInPlaceObject::SetObjectRects()

virtual STDMETHODIMP SEALED_::IOleInPlaceObject::SetObjectRects ( LPCRECT  lprcPosRect,
LPCRECT  lprcClipRect 
)
inlinevirtual

Definition at line 4729 of file activex.cpp.

4730 {
4731 if(m_controlWindow == NULL)
4732 return E_FAIL;
4733
4735 (
4736 m_controlWindow,
4737 lprcPosRect->left,
4738 lprcPosRect->top,
4739 lprcPosRect->right - lprcPosRect->left,
4740 lprcPosRect->bottom - lprcPosRect->top,
4741 TRUE
4742 );
4743
4744 SetWindowRgn(m_controlWindow, CreateRectRgnIndirect(lprcClipRect), TRUE);
4745
4746 return E_NOTIMPL;
4747 }
HRGN WINAPI CreateRectRgnIndirect(_In_ LPCRECT)
int WINAPI SetWindowRgn(_In_ HWND, _In_opt_ HRGN, _In_ BOOL)
BOOL WINAPI MoveWindow(_In_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ BOOL)

◆ IOleInPlaceObject::UIDeactivate()

virtual STDMETHODIMP SEALED_::IOleInPlaceObject::UIDeactivate ( )
inlinevirtual

Definition at line 4723 of file activex.cpp.

4724 {
4725 // TODO
4726 return E_NOTIMPL;
4727 }

◆ IOleObject::Advise()

virtual STDMETHODIMP SEALED_::IOleObject::Advise ( IAdviseSink pAdvSink,
DWORD pdwConnection 
)
inlinevirtual

Definition at line 4888 of file activex.cpp.

4889 {
4891
4892 if(FAILED(hr))
4893 return hr;
4894
4895 return m_adviseHolder->Advise(pAdvSink, pdwConnection);
4896 }
HRESULT NeedAdviseHolder()
Definition: activex.cpp:4880
HRESULT Advise([in, unique] IAdviseSink *pAdvise, [out] DWORD *pdwConnection)

◆ IOleObject::Close()

virtual STDMETHODIMP SEALED_::IOleObject::Close ( DWORD  dwSaveOption)
inlinevirtual

Definition at line 4785 of file activex.cpp.

4786 {
4787 // TODO: deactivate, destroy window, release in-place site, release advise sink
4788 return E_NOTIMPL; // TODO
4789 }

◆ IOleObject::DoVerb()

virtual STDMETHODIMP SEALED_::IOleObject::DoVerb ( LONG  iVerb,
LPMSG  lpmsg,
IOleClientSite pActiveSite,
LONG  lindex,
HWND  hwndParent,
LPCRECT  lprcPosRect 
)
inlinevirtual

Definition at line 4811 of file activex.cpp.

4812 {
4813 HRESULT hr;
4814
4815 switch(iVerb)
4816 {
4817 case OLEIVERB_PRIMARY:
4818 case OLEIVERB_SHOW:
4821 hr = S_OK;
4822 break;
4823
4824 default:
4825 if(iVerb > 0)
4827 else
4828 hr = E_NOTIMPL;
4829 }
4830
4831 if(FAILED(hr))
4832 return hr;
4833
4834 HRESULT hrActivate = Activate(iVerb, pActiveSite, hwndParent, lprcPosRect);
4835
4836 if(FAILED(hrActivate))
4837 hr = hrActivate;
4838
4839 return hr;
4840 }
HRESULT Activate(LONG iVerb, IOleClientSite *pActiveSite, HWND hwndParent, LPCRECT lprcPosRect)
Definition: activex.cpp:4304
#define OLEIVERB_INPLACEACTIVATE
Definition: ole2.h:43
#define OLEIVERB_SHOW
Definition: ole2.h:39
#define OLEOBJ_S_INVALIDVERB
Definition: winerror.h:2716

◆ IOleObject::EnumAdvise()

virtual STDMETHODIMP SEALED_::IOleObject::EnumAdvise ( IEnumSTATDATA **  ppenumAdvise)
inlinevirtual

Definition at line 4908 of file activex.cpp.

4909 {
4911
4912 if(FAILED(hr))
4913 return hr;
4914
4915 return m_adviseHolder->EnumAdvise(ppenumAdvise);
4916 }
HRESULT EnumAdvise([out] IEnumSTATDATA **ppenumAdvise)

◆ IOleObject::EnumVerbs()

virtual STDMETHODIMP SEALED_::IOleObject::EnumVerbs ( IEnumOLEVERB **  ppEnumOleVerb)
inlinevirtual

Definition at line 4842 of file activex.cpp.

4843 {
4844 return OleRegEnumVerbs(m_classId, ppEnumOleVerb);
4845 }
HRESULT WINAPI OleRegEnumVerbs(REFCLSID clsid, LPENUMOLEVERB *ppenum)
Definition: ole2.c:1125

◆ IOleObject::GetClientSite()

virtual STDMETHODIMP SEALED_::IOleObject::GetClientSite ( IOleClientSite **  ppClientSite)
inlinevirtual

Definition at line 4768 of file activex.cpp.

4769 {
4770 if(ppClientSite == NULL)
4771 return E_POINTER;
4772
4773 if(m_clientSite)
4775
4776 *ppClientSite = m_clientSite;
4777 return S_OK;
4778 }

◆ IOleObject::GetClipboardData()

virtual STDMETHODIMP SEALED_::IOleObject::GetClipboardData ( DWORD  dwReserved,
IDataObject **  ppDataObject 
)
inlinevirtual

Definition at line 4806 of file activex.cpp.

4807 {
4808 return E_NOTIMPL;
4809 }

◆ IOleObject::GetExtent()

virtual STDMETHODIMP SEALED_::IOleObject::GetExtent ( DWORD  dwDrawAspect,
SIZEL psizel 
)
inlinevirtual

Definition at line 4874 of file activex.cpp.

4875 {
4876 // TODO: return size
4877 return E_NOTIMPL;
4878 }

◆ IOleObject::GetMiscStatus()

virtual STDMETHODIMP SEALED_::IOleObject::GetMiscStatus ( DWORD  dwAspect,
DWORD pdwStatus 
)
inlinevirtual

Definition at line 4918 of file activex.cpp.

4919 {
4920 return OleRegGetMiscStatus(m_classId, dwAspect, pdwStatus);
4921 }
HRESULT WINAPI OleRegGetMiscStatus(REFCLSID clsid, DWORD dwAspect, DWORD *pdwStatus)
Definition: ole2.c:864

◆ IOleObject::GetMoniker()

virtual STDMETHODIMP SEALED_::IOleObject::GetMoniker ( DWORD  dwAssign,
DWORD  dwWhichMoniker,
IMoniker **  ppmk 
)
inlinevirtual

Definition at line 4796 of file activex.cpp.

4797 {
4798 return E_NOTIMPL;
4799 }

◆ IOleObject::GetUserClassID()

virtual STDMETHODIMP SEALED_::IOleObject::GetUserClassID ( CLSID pClsid)
inlinevirtual

Definition at line 4857 of file activex.cpp.

4858 {
4859 *pClsid = m_classId;
4860 return S_OK;
4861 }
CLSID m_classId
Definition: activex.cpp:1327

◆ IOleObject::GetUserType()

virtual STDMETHODIMP SEALED_::IOleObject::GetUserType ( DWORD  dwFormOfType,
LPOLESTR pszUserType 
)
inlinevirtual

Definition at line 4863 of file activex.cpp.

4864 {
4865 return OleRegGetUserType(m_classId, dwFormOfType, pszUserType);
4866 }
HRESULT WINAPI OleRegGetUserType(REFCLSID clsid, DWORD form, LPOLESTR *usertype)
Definition: ole2.c:678

◆ IOleObject::InitFromData()

virtual STDMETHODIMP SEALED_::IOleObject::InitFromData ( IDataObject pDataObject,
BOOL  fCreation,
DWORD  dwReserved 
)
inlinevirtual

Definition at line 4801 of file activex.cpp.

4802 {
4803 return E_NOTIMPL;
4804 }

◆ IOleObject::IsUpToDate()

virtual STDMETHODIMP SEALED_::IOleObject::IsUpToDate ( )
inlinevirtual

Definition at line 4852 of file activex.cpp.

4853 {
4854 return S_OK;
4855 }

◆ IOleObject::SetClientSite()

virtual STDMETHODIMP SEALED_::IOleObject::SetClientSite ( IOleClientSite pClientSite)
inlinevirtual

Definition at line 4755 of file activex.cpp.

4756 {
4757 if(m_clientSite)
4759
4760 m_clientSite = pClientSite;
4761
4762 if(m_clientSite)
4764
4765 return S_OK;
4766 }

◆ IOleObject::SetColorScheme()

virtual STDMETHODIMP SEALED_::IOleObject::SetColorScheme ( LOGPALETTE pLogpal)
inlinevirtual

Definition at line 4923 of file activex.cpp.

4924 {
4925 return E_NOTIMPL;
4926 }

◆ IOleObject::SetExtent()

virtual STDMETHODIMP SEALED_::IOleObject::SetExtent ( DWORD  dwDrawAspect,
SIZEL psizel 
)
inlinevirtual

Definition at line 4868 of file activex.cpp.

4869 {
4870 // TODO: resize
4871 return E_NOTIMPL;
4872 }

◆ IOleObject::SetHostNames()

virtual STDMETHODIMP SEALED_::IOleObject::SetHostNames ( LPCOLESTR  szContainerApp,
LPCOLESTR  szContainerObj 
)
inlinevirtual

Definition at line 4780 of file activex.cpp.

4781 {
4782 return S_OK;
4783 }

◆ IOleObject::SetMoniker()

virtual STDMETHODIMP SEALED_::IOleObject::SetMoniker ( DWORD  dwWhichMoniker,
IMoniker pmk 
)
inlinevirtual

Definition at line 4791 of file activex.cpp.

4792 {
4793 return E_NOTIMPL;
4794 }

◆ IOleObject::Unadvise()

virtual STDMETHODIMP SEALED_::IOleObject::Unadvise ( DWORD  dwConnection)
inlinevirtual

Definition at line 4898 of file activex.cpp.

4899 {
4901
4902 if(FAILED(hr))
4903 return hr;
4904
4905 return m_adviseHolder->Unadvise(dwConnection);
4906 }
HRESULT Unadvise([in] DWORD dwConnection)

◆ IOleObject::Update()

virtual STDMETHODIMP SEALED_::IOleObject::Update ( )
inlinevirtual

Definition at line 4847 of file activex.cpp.

4848 {
4849 return S_OK;
4850 }

◆ IOleWindow::ContextSensitiveHelp()

virtual STDMETHODIMP SEALED_::IOleWindow::ContextSensitiveHelp ( BOOL  fEnterMode)
inlinevirtual

Definition at line 4941 of file activex.cpp.

4942 {
4943 return E_NOTIMPL;
4944 }

◆ IOleWindow::GetWindow()

virtual STDMETHODIMP SEALED_::IOleWindow::GetWindow ( HWND phwnd)
inlinevirtual

Definition at line 4929 of file activex.cpp.

4930 {
4931 if(phwnd == NULL)
4932 return E_POINTER;
4933
4934 if(m_controlWindow == NULL)
4935 return E_FAIL;
4936
4937 *phwnd = m_controlWindow;
4938 return S_OK;
4939 }

◆ IPersist::GetClassID()

virtual STDMETHODIMP SEALED_::IPersist::GetClassID ( CLSID pClassID)
inlinevirtual

Definition at line 4947 of file activex.cpp.

4948 {
4949 *pClassID = m_classId;
4950 return S_OK;
4951 }

◆ IPersistPropertyBag::InitNew()

virtual STDMETHODIMP SEALED_::IPersistPropertyBag::InitNew ( )
inlinevirtual

Definition at line 4954 of file activex.cpp.

4955 {
4956 return E_NOTIMPL;
4957 }

◆ IPersistPropertyBag::Load()

virtual STDMETHODIMP SEALED_::IPersistPropertyBag::Load ( IPropertyBag pPropBag,
IErrorLog pErrorLog 
)
inlinevirtual

Definition at line 4959 of file activex.cpp.

4960 {
4961 return E_NOTIMPL;
4962 }

◆ IPersistPropertyBag::Save()

virtual STDMETHODIMP SEALED_::IPersistPropertyBag::Save ( IPropertyBag pPropBag,
BOOL  fClearDirty,
BOOL  fSaveAllProperties 
)
inlinevirtual

Definition at line 4964 of file activex.cpp.

4965 {
4966 return E_NOTIMPL;
4967 }

◆ IPersistStorage::HandsOffStorage()