ReactOS  0.4.14-dev-614-gbfd8a84
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 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)
 
- 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 RdpClientInnerToOuter (RdpClientInner *innerThis)
 
static RdpClientInnerToOuter (AdvancedSettings *innerThis)
 
static RdpClientInnerToOuter (SecuredSettings *innerThis)
 
static RdpClientInnerToOuter (RDPCLIENT *innerThis)
 
static const RdpClientInnerToOuter (const RdpClientInner *innerThis)
 
static const RdpClientInnerToOuter (const AdvancedSettings *innerThis)
 
static const RdpClientInnerToOuter (const SecuredSettings *innerThis)
 
static const RdpClientInnerToOuter (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 1639 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.

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;
2364 
2365  assert(!m_Connected);
2366  }
2367 
2369 
2370  if(m_typeLib)
2371  m_typeLib->Release();
2372 
2373  if(m_dispTypeInfo)
2375 
2376  MSTSCLib::IMsTscAxEvents ** sinks = GetSinks();
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)
2385  m_clientSite->Release();
2386 
2387  if(m_inPlaceSite)
2389 
2390  if(m_adviseHolder)
2392 
2405 
2407  FreeLpsz(m_Server);
2408 
2409  unlockServer();
2410  }
BSTR m_RdpdrLocalPrintingDocName
Definition: activex.cpp:1380
#define PeekMessage
Definition: winuser.h:5805
LPSTR m_LoadBalanceInfo
Definition: activex.cpp:1385
BSTR m_DisconnectedText
Definition: activex.cpp:1373
BSTR m_ConnectedStatusText
Definition: activex.cpp:1378
void TerminateProtocolThread()
Definition: activex.cpp:3973
TW_UINT32 TW_UINT16 TW_UINT16 MSG
Definition: twain.h:1827
IOleInPlaceSite * m_inPlaceSite
Definition: activex.cpp:1346
MSTSCLib::IMsTscAxEvents ** m_EventSinks
Definition: activex.cpp:1340
IOleAdviseHolder * m_adviseHolder
Definition: activex.cpp:1347
MSTSCLib::IMsTscAxEvents ** GetSinks() const
Definition: activex.cpp:1606
#define assert(x)
Definition: debug.h:53
BSTR m_FullScreenTitle
Definition: activex.cpp:1375
ITypeInfo * m_dispTypeInfo
Definition: activex.cpp:1332
HRESULT DestroyControlWindow()
Definition: activex.cpp:4293
IOleClientSite * m_clientSite
Definition: activex.cpp:1345
#define PM_NOREMOVE
Definition: winuser.h:1181
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()
BSTR m_RdpdrClipPasteInfoString
Definition: activex.cpp:1382
BSTR m_UserName
Definition: activex.cpp:1372
BSTR m_WorkDir
Definition: activex.cpp:1377
BSTR m_StartProgram
Definition: activex.cpp:1376
BSTR m_Domain
Definition: activex.cpp:1371
LONG m_refCount
Definition: activex.cpp:1285
BSTR m_ClearTextPassword
Definition: activex.cpp:1379
BSTR m_RdpdrClipCleanTempDirString
Definition: activex.cpp:1381
LPSTR m_Server
Definition: activex.cpp:1384
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
Definition: oleaut.c:271
size_t m_EventSinksCount
Definition: activex.cpp:1335
bool m_Connected
Definition: activex.cpp:1425
HWND m_controlWindow
Definition: activex.cpp:1344
#define msg(x)
Definition: auth_time.c:54
ITypeLib * m_typeLib
Definition: activex.cpp:1331

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 hr
Definition: shlfolder.c:183
ITypeInfo * m_dispTypeInfo
Definition: activex.cpp:1332
LONG HRESULT
Definition: typedefs.h:77
ULONG AddRef()
#define S_OK
Definition: intsafe.h:59
HRESULT LoadDispTypeInfo()
Definition: activex.cpp:3574

◆ 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)
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 
4374  SetWindowPos
4375  (
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 hr
Definition: shlfolder.c:183
static IActiveScriptSite * site
Definition: script.c:149
bool m_uiActive
Definition: activex.cpp:1349
LONG top
Definition: windef.h:307
LONG left
Definition: windef.h:306
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
LONG right
Definition: windef.h:308
#define E_FAIL
Definition: ddrawi.h:102
IOleClientSite * m_clientSite
Definition: activex.cpp:1345
HRESULT SetObjectRects([in] LPCRECT lprcPosRect, [in] LPCRECT lprcClipRect)
HRESULT SetActiveObject([in, unique] IOleInPlaceActiveObject *pActiveObject, [in, string, unique] LPCOLESTR pszObjName)
ULONG Release()
#define S_FALSE
Definition: winerror.h:2357
smooth NULL
Definition: ftsmooth.c:416
static HWND hwndParent
Definition: cryptui.c:300
#define SW_SHOW
Definition: winuser.h:769
LONG HRESULT
Definition: typedefs.h:77
HRESULT ShowObject()
HRESULT CreateControlWindow(HWND hwndParent)
Definition: activex.cpp:4269
#define OLEIVERB_UIACTIVATE
Definition: ole2.h:42
#define SWP_SHOWWINDOW
Definition: winuser.h:1233
HWND m_controlWindow
Definition: activex.cpp:1344
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
#define OLEIVERB_PRIMARY
Definition: ole2.h:38
LONG bottom
Definition: windef.h:309
BOOL WINAPI SetWindowPos(_In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
HRESULT SetBorderSpace([in, unique] LPCBORDERWIDTHS pborderwidths)
#define SUCCEEDED(hr)
Definition: intsafe.h:57

◆ addRef()

ULONG SEALED_::addRef ( )
inlineprivate

Definition at line 2224 of file activex.cpp.

2225  {
2227  }
LONG m_refCount
Definition: activex.cpp:1285
#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)))
4505  return CONNECT_E_CANNOTCONNECT;
4506 
4507  MSTSCLib::IMsTscAxEvents ** sinks = GetSinks();
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  {
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 CONNECT_E_CANNOTCONNECT
Definition: olectl.h:253
MSTSCLib::IMsTscAxEvents ** m_EventSinks
Definition: activex.cpp:1340
MSTSCLib::IMsTscAxEvents ** GetSinks() const
Definition: activex.cpp:1606
GLsizei GLenum GLboolean sink
Definition: glext.h:5672
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
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
smooth NULL
Definition: ftsmooth.c:416
unsigned long DWORD
Definition: ntddk_ex.h:95
#define S_OK
Definition: intsafe.h:59
Definition: cookie.c:33
INT copy(TCHAR source[MAX_PATH], TCHAR dest[MAX_PATH], INT append, DWORD lpdwFlags, BOOL bTouch)
Definition: copy.c:51
size_t m_EventSinksCount
Definition: activex.cpp:1335
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)

◆ CleanupEventArgumentsCallback()

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

Definition at line 1647 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  }
#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
smooth NULL
Definition: ftsmooth.c:416
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]

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;
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  {
4239  LRESULT result;
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  }
HGDIOBJ WINAPI GetStockObject(_In_ int)
BSTR m_DisconnectedText
Definition: activex.cpp:1373
BSTR m_ConnectedStatusText
Definition: activex.cpp:1378
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
const WCHAR * text
Definition: package.c:1827
#define DT_WORDBREAK
Definition: winuser.h:544
static HDC
Definition: imagelist.c:92
LONG top
Definition: windef.h:307
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
Definition: dc.c:1497
bool HandleEvent(UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT &result)
Definition: activex.cpp:1726
LONG left
Definition: windef.h:306
BOOL WINAPI EndPaint(_In_ HWND, _In_ const PAINTSTRUCT *)
LONG right
Definition: windef.h:308
#define DT_NOPREFIX
Definition: winuser.h:537
#define COLOR_WINDOW
Definition: winuser.h:908
DWORD WINAPI GetSysColor(_In_ int)
WPARAM wParam
Definition: combotst.c:138
COLORREF WINAPI SetBkColor(_In_ HDC, _In_ COLORREF)
Definition: dc.c:975
#define DT_CALCRECT
Definition: winuser.h:526
HDC WINAPI BeginPaint(_In_ HWND, _Out_ LPPAINTSTRUCT)
#define DT_END_ELLIPSIS
Definition: winuser.h:529
RECT textRect
Definition: startmenu.cpp:1392
smooth NULL
Definition: ftsmooth.c:416
#define SYSTEM_FONT
Definition: wingdi.h:910
#define DefWindowProc
Definition: ros2win.h:31
#define WM_SIZE
Definition: winuser.h:1593
#define COLOR_WINDOWTEXT
Definition: winuser.h:911
#define WM_PAINT
Definition: winuser.h:1602
HDC hdc
Definition: main.c:9
bool m_actuallyConnected
Definition: activex.cpp:1365
COLORREF WINAPI SetTextColor(_In_ HDC, _In_ COLORREF)
Definition: text.c:888
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
BSTR m_ConnectingText
Definition: activex.cpp:1374
bool m_Connected
Definition: activex.cpp:1425
HWND m_controlWindow
Definition: activex.cpp:1344
LONG bottom
Definition: windef.h:309
#define DT_CENTER
Definition: winuser.h:527
LONG_PTR LRESULT
Definition: windef.h:209
GLuint64EXT * result
Definition: glext.h:11304
LPARAM lParam
Definition: combotst.c:139
#define DT_EDITCONTROL
Definition: winuser.h:528
INT WINAPI DrawTextW(HDC hdc, LPCWSTR str, INT count, LPRECT rect, UINT flags)
Definition: defwnd.c:17

◆ ControlWindowProc() [2/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,
4258  GWLP_USERDATA,
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  }
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
#define assert(x)
Definition: debug.h:53
#define SetWindowLongPtr
Definition: treelist.c:70
WPARAM wParam
Definition: combotst.c:138
#define GWLP_USERDATA
Definition: treelist.c:63
RdpClient(REFCLSID classId, unsigned libIndex, IUnknown *punkOuter)
Definition: activex.cpp:2240
__int3264 LONG_PTR
Definition: activex.cpp:277
#define WM_CREATE
Definition: winuser.h:1590
#define GetWindowLongPtr
Definition: treelist.c:73
LPARAM lParam
Definition: combotst.c:139

◆ CreateControlWindow()

HRESULT SEALED_::CreateControlWindow ( HWND  hwndParent)
inlineprivate

Definition at line 4269 of file activex.cpp.

4270  {
4272  (
4273  TEXT("MissTosca_Control"),
4274  NULL,
4276  CW_USEDEFAULT,
4277  CW_USEDEFAULT,
4278  CW_USEDEFAULT,
4279  CW_USEDEFAULT,
4280  hwndParent,
4281  NULL,
4282  GetCurrentModule(),
4283  this
4284  );
4285 
4286  if(m_controlWindow == NULL)
4287  return HRESULT_FROM_WIN32(GetLastError());
4288 
4290  return S_OK;
4291  }
#define HRESULT_FROM_WIN32(x)
Definition: winerror.h:92
#define CreateWindow
Definition: winuser.h:5729
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
#define WS_CHILD
Definition: pedump.c:617
#define WS_CLIPCHILDREN
Definition: pedump.c:619
#define CW_USEDEFAULT
Definition: winuser.h:225
smooth NULL
Definition: ftsmooth.c:416
static HWND hwndParent
Definition: cryptui.c:300
HWND m_UIParentWindowHandle
Definition: activex.cpp:1387
#define S_OK
Definition: intsafe.h:59
#define TEXT(s)
Definition: k32.h:26
HWND m_controlWindow
Definition: activex.cpp:1344

◆ 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  }
HRESULT hr
Definition: shlfolder.c:183
REFIID riid
Definition: precomp.h:44
#define assert(x)
Definition: debug.h:53
GLsizei GLsizei GLuint * obj
Definition: glext.h:6042
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
smooth NULL
Definition: ftsmooth.c:416
LONG HRESULT
Definition: typedefs.h:77
#define S_OK
Definition: intsafe.h:59
RdpClient(REFCLSID classId, unsigned libIndex, IUnknown *punkOuter)
Definition: activex.cpp:2240

◆ 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)
#define S_FALSE
Definition: winerror.h:2357
smooth NULL
Definition: ftsmooth.c:416
#define S_OK
Definition: intsafe.h:59
HWND m_controlWindow
Definition: activex.cpp:1344

◆ 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  }
void FireEventOutsideApartment(DISPID eventId, VARIANTARG *rgvarg=NULL, unsigned int cArgs=0, VARIANTARG *retval=NULL, AsyncEventCallback callback=NULL)
Definition: activex.cpp:1889

◆ 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
2140  FireEventOutsideApartment(17, args, ARRAYSIZE(args), &retval);
2141 
2142  return continueStatus;
2143  }
void FireEventOutsideApartment(DISPID eventId, VARIANTARG *rgvarg=NULL, unsigned int cArgs=0, VARIANTARG *retval=NULL, AsyncEventCallback callback=NULL)
Definition: activex.cpp:1889
Definition: compat.h:1947
#define ARRAYSIZE(array)
Definition: filtermapper.c:47
Definition: match.c:390
long LONG
Definition: pedump.c:60
VARTYPE vt
Definition: compat.h:2030
LONG * plVal
Definition: compat.h:2062

◆ 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  }
WCHAR OLECHAR
Definition: compat.h:1941
HRESULT hr
Definition: shlfolder.c:183
void CleanupEventArgumentsCallback(DISPID eventId, VARIANTARG *rgvarg, unsigned int cArgs, VARIANTARG *retVal)
Definition: activex.cpp:1647
#define ARRAYSIZE(array)
Definition: filtermapper.c:47
OLECHAR * BSTR
Definition: compat.h:1942
Definition: match.c:390
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
smooth NULL
Definition: ftsmooth.c:416
BSTR WINAPI SysAllocString(LPCOLESTR str)
Definition: oleaut.c:238
BSTR WINAPI DECLSPEC_HOTPATCH SysAllocStringByteLen(LPCSTR str, UINT len)
Definition: oleaut.c:428
LONG HRESULT
Definition: typedefs.h:77
#define CopyMemory
Definition: winbase.h:1640
HRESULT FireEventOutsideApartmentAsync(DISPID eventId, VARIANTARG *rgvarg=NULL, unsigned int cArgs=0, VARIANTARG *retval=NULL, AsyncEventCallback callback=NULL)
Definition: activex.cpp:1904
INT copy(TCHAR source[MAX_PATH], TCHAR dest[MAX_PATH], INT append, DWORD lpdwFlags, BOOL bTouch)
Definition: copy.c:51
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
Definition: oleaut.c:271

◆ 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  }
short VARIANT_BOOL
Definition: compat.h:1939
smooth NULL
Definition: ftsmooth.c:416
void FireEventInsideApartment(DISPID eventId, VARIANTARG *rgvarg=NULL, unsigned int cArgs=0, VARIANTARG *retval=NULL, AsyncEventCallback callback=NULL)
Definition: activex.cpp:1665
VARTYPE vt
Definition: compat.h:2030
VARIANT_BOOL * pboolVal
Definition: compat.h:2065

◆ FireConnected()

void SEALED_::FireConnected ( )
inlineprivate

Definition at line 1940 of file activex.cpp.

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

◆ FireConnecting()

void SEALED_::FireConnecting ( )
inlineprivate

Definition at line 1934 of file activex.cpp.

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

◆ FireDisconnected()

void SEALED_::FireDisconnected ( long  reason)
inlineprivate

Definition at line 1952 of file activex.cpp.

1953  {
1954  // Source: protocol. Special handling
1956  }
static WCHAR reason[MAX_STRING_RESOURCE_LEN]
Definition: object.c:1904
HWND m_controlWindow
Definition: activex.cpp:1344
#define SendMessage
Definition: winuser.h:5818

◆ FireEnterFullScreenMode()

void SEALED_::FireEnterFullScreenMode ( )
inlineprivate

Definition at line 1958 of file activex.cpp.

1959  {
1960  // Source: UI window
1962  }
void FireEventInsideApartment(DISPID eventId, VARIANTARG *rgvarg=NULL, unsigned int cArgs=0, VARIANTARG *retval=NULL, AsyncEventCallback callback=NULL)
Definition: activex.cpp:1665

◆ FireEventInsideApartment()

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

Definition at line 1665 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  }
#define assert(x)
Definition: debug.h:53
void InvokeSinks(DISPID eventId, VARIANTARG rgvarg[], unsigned int cArgs, VARIANTARG *retval)
Definition: activex.cpp:1621
smooth NULL
Definition: ftsmooth.c:416
MmuTrapHandler callback[0x30]
Definition: mmuobject.c:44

◆ FireEventOutsideApartment()

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

Definition at line 1889 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  }
#define assert(x)
Definition: debug.h:53
MmuTrapHandler callback[0x30]
Definition: mmuobject.c:44
HWND m_controlWindow
Definition: activex.cpp:1344
#define SendMessage
Definition: winuser.h:5818

◆ FireEventOutsideApartmentAsync()

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

Definition at line 1904 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;
1927  return HRESULT_FROM_WIN32(GetLastError());
1928  }
1929 
1930  return S_OK;
1931  }
#define HRESULT_FROM_WIN32(x)
Definition: winerror.h:92
#define assert(x)
Definition: debug.h:53
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
smooth NULL
Definition: ftsmooth.c:416
#define PostMessage
Definition: winuser.h:5807
#define S_OK
Definition: intsafe.h:59
HWND m_controlWindow
Definition: activex.cpp:1344

◆ 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
2029  FireEventOutsideApartment(10, &arg, 1);
2030  }
void FireEventOutsideApartment(DISPID eventId, VARIANTARG *rgvarg=NULL, unsigned int cArgs=0, VARIANTARG *retval=NULL, AsyncEventCallback callback=NULL)
Definition: activex.cpp:1889
Definition: compat.h:1947

◆ 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
2040  FireEventInsideApartment(10, &arg, 1);
2041  }
Definition: compat.h:1947
void FireEventInsideApartment(DISPID eventId, VARIANTARG *rgvarg=NULL, unsigned int cArgs=0, VARIANTARG *retval=NULL, AsyncEventCallback callback=NULL)
Definition: activex.cpp:1665

◆ FireIdleTimeoutNotification()

void SEALED_::FireIdleTimeoutNotification ( )
inlineprivate

Definition at line 2068 of file activex.cpp.

2069  {
2070  // Source: input thread
2072  }
void FireEventOutsideApartment(DISPID eventId, VARIANTARG *rgvarg=NULL, unsigned int cArgs=0, VARIANTARG *retval=NULL, AsyncEventCallback callback=NULL)
Definition: activex.cpp:1889

◆ FireLeaveFullScreenMode()

void SEALED_::FireLeaveFullScreenMode ( )
inlineprivate

Definition at line 1964 of file activex.cpp.

1965  {
1966  // Source: UI window
1968  }
void FireEventInsideApartment(DISPID eventId, VARIANTARG *rgvarg=NULL, unsigned int cArgs=0, VARIANTARG *retval=NULL, AsyncEventCallback callback=NULL)
Definition: activex.cpp:1665

◆ FireLoginComplete()

void SEALED_::FireLoginComplete ( )
inlineprivate

Definition at line 1946 of file activex.cpp.

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

◆ FireReceivedTSPublicKey()

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

Definition at line 2094 of file activex.cpp.

2095  {
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  }
void FireEventOutsideApartment(DISPID eventId, VARIANTARG *rgvarg=NULL, unsigned int cArgs=0, VARIANTARG *retval=NULL, AsyncEventCallback callback=NULL)
Definition: activex.cpp:1889
#define assert(x)
Definition: debug.h:53
OLECHAR * BSTR
Definition: compat.h:1942
short VARIANT_BOOL
Definition: compat.h:1939
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define S_FALSE
Definition: winerror.h:2357
bool m_NotifyTSPublicKey
Definition: activex.cpp:1452
smooth NULL
Definition: ftsmooth.c:416
BSTR WINAPI DECLSPEC_HOTPATCH SysAllocStringByteLen(LPCSTR str, UINT len)
Definition: oleaut.c:428
#define CopyMemory
Definition: winbase.h:1640
#define S_OK
Definition: intsafe.h:59
bool m_Connected
Definition: activex.cpp:1425
VARTYPE vt
Definition: compat.h:2030
VARIANT_BOOL * pboolVal
Definition: compat.h:2065

◆ 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 width
Definition: gl.h:1546
Definition: compat.h:1947
#define ARRAYSIZE(array)
Definition: filtermapper.c:47
Definition: match.c:390
void FireEventInsideApartment(DISPID eventId, VARIANTARG *rgvarg=NULL, unsigned int cArgs=0, VARIANTARG *retval=NULL, AsyncEventCallback callback=NULL)
Definition: activex.cpp:1665
GLint GLint GLsizei GLsizei height
Definition: gl.h:1546

◆ FireRequestContainerMinimize()

void SEALED_::FireRequestContainerMinimize ( )
inlineprivate

Definition at line 2074 of file activex.cpp.

2075  {
2076  // Source: UI window
2078  }
void FireEventInsideApartment(DISPID eventId, VARIANTARG *rgvarg=NULL, unsigned int cArgs=0, VARIANTARG *retval=NULL, AsyncEventCallback callback=NULL)
Definition: activex.cpp:1665

◆ FireRequestGoFullScreen()

void SEALED_::FireRequestGoFullScreen ( )
inlineprivate

Definition at line 2009 of file activex.cpp.

2010  {
2011  // Source: UI window
2013  }
void FireEventInsideApartment(DISPID eventId, VARIANTARG *rgvarg=NULL, unsigned int cArgs=0, VARIANTARG *retval=NULL, AsyncEventCallback callback=NULL)
Definition: activex.cpp:1665

◆ FireRequestLeaveFullScreen()

void SEALED_::FireRequestLeaveFullScreen ( )
inlineprivate

Definition at line 2015 of file activex.cpp.

2016  {
2017  // Source: UI window
2019  }
void FireEventInsideApartment(DISPID eventId, VARIANTARG *rgvarg=NULL, unsigned int cArgs=0, VARIANTARG *retval=NULL, AsyncEventCallback callback=NULL)
Definition: activex.cpp:1665

◆ 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
2051  FireEventOutsideApartment(11, &arg, 1);
2052  }
void FireEventOutsideApartment(DISPID eventId, VARIANTARG *rgvarg=NULL, unsigned int cArgs=0, VARIANTARG *retval=NULL, AsyncEventCallback callback=NULL)
Definition: activex.cpp:1889
Definition: compat.h:1947

◆ 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  }
SEALED_::SEALED_ m_advancedSettings
#define S_OK
Definition: intsafe.h:59
ULONG addRef()
Definition: activex.cpp:2224

◆ 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 
4487  return S_OK;
4488  }
smooth NULL
Definition: ftsmooth.c:416
#define S_OK
Definition: intsafe.h:59
EXTERN_C const IID DIID_IMsTscAxEvents
Definition: activex.cpp:289
#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  }
smooth NULL
Definition: ftsmooth.c:416
#define S_OK
Definition: intsafe.h:59
ULONG addRef()
Definition: activex.cpp:2224
#define E_POINTER
Definition: winerror.h:2365

◆ 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  }
BSTR WINAPI SysAllocStringLen(const OLECHAR *str, unsigned int len)
Definition: oleaut.c:339
#define assert(x)
Definition: debug.h:53
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
smooth NULL
Definition: ftsmooth.c:416
UINT WINAPI SysStringLen(BSTR str)
Definition: oleaut.c:196
#define S_OK
Definition: intsafe.h:59
#define E_POINTER
Definition: winerror.h:2365

◆ GetProperty() [2/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  }
#define assert(x)
Definition: debug.h:53
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
smooth NULL
Definition: ftsmooth.c:416
#define S_OK
Definition: intsafe.h:59
#define E_POINTER
Definition: winerror.h:2365

◆ GetProperty() [3/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  }
#define assert(x)
Definition: debug.h:53
smooth NULL
Definition: ftsmooth.c:416
#define S_OK
Definition: intsafe.h:59
#define E_POINTER
Definition: winerror.h:2365

◆ GetProperty() [4/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  }
#define assert(x)
Definition: debug.h:53
smooth NULL
Definition: ftsmooth.c:416
#define S_OK
Definition: intsafe.h:59
#define E_POINTER
Definition: winerror.h:2365

◆ GetSecuredSettings()

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

Definition at line 3530 of file activex.cpp.

3531  {
3533  return E_FAIL;
3534 
3535  addRef();
3536  *ppSecuredSettings = &m_securedSettings;
3537  return S_OK;
3538  }
#define E_FAIL
Definition: ddrawi.h:102
SEALED_::SEALED_ m_securedSettings
bool m_SecuredSettingsEnabled
Definition: activex.cpp:1431
#define S_OK
Definition: intsafe.h:59
ULONG addRef()
Definition: activex.cpp:2224

◆ 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_EventSinks
Definition: activex.cpp:1340
MSTSCLib::IMsTscAxEvents * m_EventSinksStatic[1]
Definition: activex.cpp:1339
size_t m_EventSinksCount
Definition: activex.cpp:1335

◆ GetUI()

RdpClientUI* SEALED_::GetUI ( ) const
inline

Definition at line 3649 of file activex.cpp.

3650  {
3651  assert(m_clientUI);
3652  return m_clientUI;
3653  }
#define assert(x)
Definition: debug.h:53
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:
1734  assert(InSendMessage());
1735 
1736  case RDPC_WM_ASYNC_EVENT:
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  {
1760  assert(InsideApartment());
1761  assert(InSendMessage());
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  {
1775  assert(InSendMessage());
1776  assert(lParam);
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...
1855  case RDPC_WM_REQUEST_CLOSE:
1856  {
1857  assert(!InSendMessage());
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  }
WCHAR OLECHAR
Definition: compat.h:1941
LPSTR m_LoadBalanceInfo
Definition: activex.cpp:1385
bool m_loggedIn
Definition: activex.cpp:1366
HRESULT hr
Definition: shlfolder.c:183
BSTR WINAPI SysAllocStringLen(const OLECHAR *str, unsigned int len)
Definition: oleaut.c:339
void PerformDisconnect(long reason)
Definition: activex.cpp:3994
RDPCLIENT m_protocolState
Definition: activex.cpp:1361
void TerminateProtocolThread()
Definition: activex.cpp:3973
BOOL WINAPI InSendMessage(void)
Definition: message.c:1371
#define assert(x)
Definition: debug.h:53
OLECHAR * BSTR
Definition: compat.h:1942
char * LPSTR
Definition: xmlstorage.h:182
WPARAM wParam
Definition: combotst.c:138
void JoinProtocolThread()
Definition: activex.cpp:3965
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
smooth NULL
Definition: ftsmooth.c:416
bool FireConfirmClose()
Definition: activex.cpp:2080
BOOL WINAPI ReplyMessage(_In_ LRESULT)
BOOL redirect
Definition: rdesktop.h:213
BSTR m_UserName
Definition: activex.cpp:1372
void FireEventInsideApartment(DISPID eventId, VARIANTARG *rgvarg=NULL, unsigned int cArgs=0, VARIANTARG *retval=NULL, AsyncEventCallback callback=NULL)
Definition: activex.cpp:1665
BSTR m_Domain
Definition: activex.cpp:1371
#define False
Definition: types.h:25
LONG HRESULT
Definition: typedefs.h:77
BSTR m_ClearTextPassword
Definition: activex.cpp:1379
HANDLE m_protocolThread
Definition: activex.cpp:1362
LPSTR m_Server
Definition: activex.cpp:1384
#define S_OK
Definition: intsafe.h:59
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
Definition: oleaut.c:271
bool m_Connected
Definition: activex.cpp:1425
LPSTR AllocLpsz(const WCHAR *lpwsz, int cchIn)
Definition: activex.cpp:74
int disconnect_reason
Definition: rdesktop.h:191
HRESULT ReplaceProperty(BSTR &prop, BSTR newValue)
Definition: activex.cpp:1517
GLuint64EXT * result
Definition: glext.h:11304
LPARAM lParam
Definition: combotst.c:139
#define SUCCEEDED(hr)
Definition: intsafe.h:57

◆ 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  }
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
smooth NULL
Definition: ftsmooth.c:416
#define S_OK
Definition: intsafe.h:59

◆ IConnectionPointContainer::FindConnectionPoint()

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

Definition at line 4582 of file activex.cpp.

4583  {
4585  return CONNECT_E_NOCONNECTION;
4586 
4587  addRef();
4588  *ppCP = this;
4589 
4590  return S_OK;
4591  }
REFIID riid
Definition: precomp.h:44
#define CONNECT_E_NOCONNECTION
Definition: olectl.h:251
#define S_OK
Definition: intsafe.h:59
EXTERN_C const IID DIID_IMsTscAxEvents
Definition: activex.cpp:289
ULONG addRef()
Definition: activex.cpp:2224

◆ 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  }
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ IDataObject::DUnadvise()

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

Definition at line 4629 of file activex.cpp.

4630  {
4631  return E_NOTIMPL;
4632  }
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ IDataObject::EnumDAdvise()

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

Definition at line 4634 of file activex.cpp.

4635  {
4636  return E_NOTIMPL;
4637  }
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ 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  }
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ 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  }
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ 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  }
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ 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  }
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ IDataObject::QueryGetData()

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

Definition at line 4604 of file activex.cpp.

4605  {
4606  return E_NOTIMPL;
4607  }
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ 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  }
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ 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 hr
Definition: shlfolder.c:183
ITypeInfo * m_dispTypeInfo
Definition: activex.cpp:1332
LONG HRESULT
Definition: typedefs.h:77
HRESULT GetIDsOfNames([in, size_is(cNames)] LPOLESTR *rgszNames, [in] UINT cNames, [out, size_is(cNames)] MEMBERID *pMemId)
HRESULT LoadDispTypeInfo()
Definition: activex.cpp:3574

◆ 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  }
#define S_OK
Definition: intsafe.h:59

◆ 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 hr
Definition: shlfolder.c:183
ITypeInfo * m_dispTypeInfo
Definition: activex.cpp:1332
HRESULT Invoke([in] PVOID pvInstance, [in] MEMBERID memid, [in] WORD wFlags, [in, out] DISPPARAMS *pDispParams, [out] VARIANT *pVarResult, [out] EXCEPINFO *pExcepInfo, [out] UINT *puArgErr)
LONG HRESULT
Definition: typedefs.h:77
_In_ DWORD _Out_ _In_ WORD wFlags
Definition: wincon.h:519
HRESULT LoadDispTypeInfo()
Definition: activex.cpp:3574

◆ 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  }
BSTR m_ConnectedStatusText
Definition: activex.cpp:1378
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  }
BSTR m_ConnectedStatusText
Definition: activex.cpp:1378
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  }
HRESULT GetAdvancedSettings(Interface **ppAdvSettings)
Definition: activex.cpp:3331

◆ 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  }
HRESULT GetAdvancedSettings(Interface **ppAdvSettings)
Definition: activex.cpp:3331

◆ 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  }
HRESULT GetAdvancedSettings(Interface **ppAdvSettings)
Definition: activex.cpp:3331

◆ 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  }
HRESULT GetProperty(BSTR &prop, BSTR *retVal) const
Definition: activex.cpp:1459
long m_ColorDepth
Definition: activex.cpp:1391

◆ 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  }
HRESULT GetProperty(BSTR &prop, BSTR *retVal) const
Definition: activex.cpp:1459
MSTSCLib::ExtendedDisconnectReasonCode m_ExtendedDisconnectReason
Definition: activex.cpp:1423

◆ 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  }
HRESULT GetProperty(BSTR &prop, BSTR *retVal) const
Definition: activex.cpp:1459
bool m_FullScreen
Definition: activex.cpp:1432

◆ 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  }
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ 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
HRESULT SetProperty(BSTR &prop, BSTR newValue)
Definition: activex.cpp:1489
long m_ColorDepth
Definition: activex.cpp:1391

◆ 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  }
#define E_FAIL
Definition: ddrawi.h:102
bool m_SecuredSettingsEnabled
Definition: activex.cpp:1431
#define E_NOTIMPL
Definition: ddrawi.h:99
bool m_Connected
Definition: activex.cpp:1425

◆ 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 
5502  *pCloseStatus = MSTSCLib::controlCloseWaitForEvents;
5503 
5505  return HRESULT_FROM_WIN32(GetLastError());
5506 
5507  return S_OK;
5508  }
#define HRESULT_FROM_WIN32(x)
Definition: winerror.h:92
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
smooth NULL
Definition: ftsmooth.c:416
#define PostMessage
Definition: winuser.h:5807
#define S_OK
Definition: intsafe.h:59
bool m_Connected
Definition: activex.cpp:1425
HWND m_controlWindow
Definition: activex.cpp:1344
#define E_POINTER
Definition: winerror.h:2365

◆ 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  }
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ 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  }
HWND m_UIParentWindowHandle
Definition: activex.cpp:1387
HRESULT GetProperty(BSTR &prop, BSTR *retVal) const
Definition: activex.cpp:1459

◆ 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  }
HWND m_UIParentWindowHandle
Definition: activex.cpp:1387
HRESULT SetProperty(BSTR &prop, BSTR newValue)
Definition: activex.cpp:1489

◆ 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  }
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ 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  }
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ 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
5279  {
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 
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 
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
5365  m_protocolState.bitmap_cache = True; // TODO
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  }
BOOL WINAPI SHIM_OBJ_NAME() GetComputerNameA(LPSTR lpBuffer, LPDWORD lpnSize)
Definition: shimtest.c:21
BOOL bitmap_cache_precache
Definition: rdesktop.h:203
#define TRUE
Definition: types.h:120
bool m_EncryptionEnabled
Definition: activex.cpp:1435
#define HRESULT_FROM_WIN32(x)
Definition: winerror.h:92
static DWORD WINAPI ProtocolLoopThreadProc(LPVOID lpParam)
Definition: activex.cpp:3757
HRESULT hr
Definition: shlfolder.c:183
RDPCLIENT m_protocolState
Definition: activex.cpp:1361
#define PtrToLong(p)
Definition: basetsd.h:84
#define ARRAYSIZE(array)
Definition: filtermapper.c:47
int keyboard_subtype
Definition: rdesktop.h:194
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
Definition: synch.c:733
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
BOOL desktop_save
Definition: rdesktop.h:206
_Check_return_ long __cdecl wcstol(_In_z_ const wchar_t *_Str, _Out_opt_ _Deref_post_z_ wchar_t **_EndPtr, _In_ int _Radix)
HANDLE m_protocolThreadWaitingReconnection
Definition: activex.cpp:1363
#define E_FAIL
Definition: ddrawi.h:102
BOOL bitmap_cache
Definition: rdesktop.h:201
LPSTR BstrToLpsz(BSTR bstr)
Definition: activex.cpp:97
#define SUBLANG_ENGLISH_US
Definition: nls.h:222
BOOL packet_encryption
Definition: rdesktop.h:205
long m_RDPPort
Definition: activex.cpp:1396
int keyboard_type
Definition: rdesktop.h:193
unsigned int keylayout
Definition: rdesktop.h:192
BSTR m_KeyboardLayoutString
Definition: activex.cpp:1383
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
long m_PerformanceFlags
Definition: activex.cpp:1419
HRESULT Initialize(HWND hwndParent)
Definition: activex.cpp:304
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:136
smooth NULL
Definition: ftsmooth.c:416
struct rdpclient::cache_ cache
BSTR m_UserName
Definition: activex.cpp:1372
int width
Definition: rdesktop.h:197
BOOL console_session
Definition: rdesktop.h:209
#define True
Definition: types.h:24
long m_DesktopWidth
Definition: activex.cpp:1388
#define False
Definition: types.h:25
RdpClientUI * m_clientUI
Definition: activex.cpp:1360
__wchar_t WCHAR
Definition: xmlstorage.h:180
LONG HRESULT
Definition: typedefs.h:77
BOOL encryption
Definition: rdesktop.h:204
struct rdpclient::rdp_ rdp
int keyboard_functionkeys
Definition: rdesktop.h:195
unsigned long DWORD
Definition: ntddk_ex.h:95
char * licence_username
Definition: rdesktop.h:175
#define LANG_ENGLISH
Definition: nls.h:52
BOOL use_rdp5
Definition: rdesktop.h:208
int tcp_port_rdp
Definition: rdesktop.h:229
HRESULT CreateControlWindow(HWND hwndParent)
Definition: activex.cpp:4269
HANDLE m_protocolThread
Definition: activex.cpp:1362
#define S_OK
Definition: intsafe.h:59
PKEYBOARD_LAYOUT GetKeyboardLayout()
Definition: utils.c:194
int server_depth
Definition: rdesktop.h:199
char licence_hostname[MAX_COMPUTERNAME_LENGTH+1]
Definition: rdesktop.h:176
bool m_Connected
Definition: activex.cpp:1425
HWND m_controlWindow
Definition: activex.cpp:1344
int height
Definition: rdesktop.h:198
BOOL polygon_ellipse_orders
Definition: rdesktop.h:207
#define MAKELANGID(p, s)
Definition: nls.h:15
BOOL bitmap_cache_persist_enable
Definition: rdesktop.h:202
bool m_ConnectToServerConsole
Definition: activex.cpp:1443
bool m_Compress
Definition: activex.cpp:1426
BOOL bitmap_compression
Definition: rdesktop.h:200
long m_DesktopHeight
Definition: activex.cpp:1389
uint32 rdp5_performanceflags
Definition: rdesktop.h:210
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
Definition: env.c:54
long m_ColorDepth
Definition: activex.cpp:1391
int WINAPI GetKeyboardType(_In_ int)

◆ 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  }
#define E_INVALIDARG
Definition: ddrawi.h:101
UINT WINAPI SysStringLen(BSTR str)
Definition: oleaut.c:196
#define E_NOTIMPL
Definition: ddrawi.h:99
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  }
void TerminateProtocolThread()
Definition: activex.cpp:3973
#define E_FAIL
Definition: ddrawi.h:102
#define S_OK
Definition: intsafe.h:59
bool m_Connected
Definition: activex.cpp:1425

◆ 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  }
HRESULT GetAdvancedSettings(Interface **ppAdvSettings)
Definition: activex.cpp:3331

◆ 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  }
#define E_INVALIDARG
Definition: ddrawi.h:101
smooth NULL
Definition: ftsmooth.c:416
#define S_OK
Definition: intsafe.h:59

◆ 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  }
HRESULT GetProperty(BSTR &prop, BSTR *retVal) const
Definition: activex.cpp:1459
bool m_Connected
Definition: activex.cpp:1425

◆ 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  }
HRESULT GetProperty(BSTR &prop, BSTR *retVal) const
Definition: activex.cpp:1459
BSTR m_ConnectingText
Definition: activex.cpp:1374

◆ 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  }
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ 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  }
HRESULT GetProperty(BSTR &prop, BSTR *retVal) const
Definition: activex.cpp:1459
long m_DesktopHeight
Definition: activex.cpp:1389

◆ 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  }
long m_DesktopWidth
Definition: activex.cpp:1388
HRESULT GetProperty(BSTR &prop, BSTR *retVal) const
Definition: activex.cpp:1459

◆ 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  }
BSTR m_DisconnectedText
Definition: activex.cpp:1373
HRESULT GetProperty(BSTR &prop, BSTR *retVal) const
Definition: activex.cpp:1459

◆ 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  }
BSTR m_Domain
Definition: activex.cpp:1371
HRESULT GetProperty(BSTR &prop, BSTR *retVal) const
Definition: activex.cpp:1459

◆ 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  }
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ 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  }
HRESULT GetSecuredSettings(Interface **ppSecuredSettings)
Definition: activex.cpp:3530

◆ 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  }
HRESULT GetProperty(BSTR &prop, BSTR *retVal) const
Definition: activex.cpp:1459
bool m_SecuredSettingsEnabled
Definition: activex.cpp:1431

◆ 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  }
HRESULT GetProperty(BSTR &prop, BSTR *retVal) const
Definition: activex.cpp:1459
LPSTR m_Server
Definition: activex.cpp:1384

◆ 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  }
long m_StartConnected
Definition: activex.cpp:1390
HRESULT GetProperty(BSTR &prop, BSTR *retVal) const
Definition: activex.cpp:1459

◆ 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  }
BSTR m_UserName
Definition: activex.cpp:1372
HRESULT GetProperty(BSTR &prop, BSTR *retVal) const
Definition: activex.cpp:1459

◆ 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  }
OLECHAR * BSTR
Definition: compat.h:1942
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define E_INVALIDARG
Definition: ddrawi.h:101
smooth NULL
Definition: ftsmooth.c:416
static const WCHAR version[]
Definition: asmname.c:66
BSTR WINAPI SysAllocString(LPCOLESTR str)
Definition: oleaut.c:238
static const WCHAR L[]
Definition: oid.c:1250
#define S_OK
Definition: intsafe.h:59

◆ 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  }
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ 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  }
HRESULT SetProperty(BSTR &prop, BSTR newValue)
Definition: activex.cpp:1489
BSTR m_ConnectingText
Definition: activex.cpp:1374

◆ 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  }
#define E_INVALIDARG
Definition: ddrawi.h:101
HRESULT SetProperty(BSTR &prop, BSTR newValue)
Definition: activex.cpp:1489
long m_DesktopHeight
Definition: activex.cpp:1389

◆ 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  }
#define E_INVALIDARG
Definition: ddrawi.h:101
long m_DesktopWidth
Definition: activex.cpp:1388
HRESULT SetProperty(BSTR &prop, BSTR newValue)
Definition: activex.cpp:1489

◆ 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  }