VirtualBox

source: vbox/trunk/src/VBox/Main/include/VRDPServerImpl.h@ 30690

Last change on this file since 30690 was 28802, checked in by vboxsync, 15 years ago

VRDP video channel configuration API.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.6 KB
Line 
1/* $Id: VRDPServerImpl.h 28802 2010-04-27 09:23:16Z vboxsync $ */
2
3/** @file
4 *
5 * VirtualBox COM class implementation
6 */
7
8/*
9 * Copyright (C) 2006-2007 Oracle Corporation
10 *
11 * This file is part of VirtualBox Open Source Edition (OSE), as
12 * available from http://www.virtualbox.org. This file is free software;
13 * you can redistribute it and/or modify it under the terms of the GNU
14 * General Public License (GPL) as published by the Free Software
15 * Foundation, in version 2 as it comes in the "COPYING" file of the
16 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
17 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
18 */
19
20#ifndef ____H_VRDPSERVER
21#define ____H_VRDPSERVER
22
23#include "VirtualBoxBase.h"
24
25#include <VBox/VRDPAuth.h>
26
27namespace settings
28{
29 struct VRDPSettings;
30}
31
32class ATL_NO_VTABLE VRDPServer :
33 public VirtualBoxBase,
34 public VirtualBoxSupportErrorInfoImpl<VRDPServer, IVRDPServer>,
35 public VirtualBoxSupportTranslation<VRDPServer>,
36 VBOX_SCRIPTABLE_IMPL(IVRDPServer)
37{
38public:
39
40 struct Data
41 {
42 BOOL mEnabled;
43 Bstr mVRDPPorts;
44 Bstr mVRDPAddress;
45 VRDPAuthType_T mAuthType;
46 ULONG mAuthTimeout;
47 BOOL mAllowMultiConnection;
48 BOOL mReuseSingleConnection;
49 BOOL mVideoChannel;
50 ULONG mVideoChannelQuality;
51 };
52
53 VIRTUALBOXBASE_ADD_ERRORINFO_SUPPORT (VRDPServer)
54
55 DECLARE_NOT_AGGREGATABLE(VRDPServer)
56
57 DECLARE_PROTECT_FINAL_CONSTRUCT()
58
59 BEGIN_COM_MAP(VRDPServer)
60 COM_INTERFACE_ENTRY (ISupportErrorInfo)
61 COM_INTERFACE_ENTRY (IVRDPServer)
62 COM_INTERFACE_ENTRY2 (IDispatch, IVRDPServer)
63 END_COM_MAP()
64
65 DECLARE_EMPTY_CTOR_DTOR (VRDPServer)
66
67 HRESULT FinalConstruct();
68 void FinalRelease();
69
70 // public initializer/uninitializer for internal purposes only
71 HRESULT init(Machine *aParent);
72 HRESULT init(Machine *aParent, VRDPServer *aThat);
73 HRESULT initCopy (Machine *aParent, VRDPServer *aThat);
74 void uninit();
75
76 // IVRDPServer properties
77 STDMETHOD(COMGETTER(Enabled)) (BOOL *aEnabled);
78 STDMETHOD(COMSETTER(Enabled)) (BOOL aEnable);
79 STDMETHOD(COMGETTER(Ports)) (BSTR *aPorts);
80 STDMETHOD(COMSETTER(Ports)) (IN_BSTR aPorts);
81 STDMETHOD(COMGETTER(NetAddress)) (BSTR *aAddress);
82 STDMETHOD(COMSETTER(NetAddress)) (IN_BSTR aAddress);
83 STDMETHOD(COMGETTER(AuthType)) (VRDPAuthType_T *aType);
84 STDMETHOD(COMSETTER(AuthType)) (VRDPAuthType_T aType);
85 STDMETHOD(COMGETTER(AuthTimeout)) (ULONG *aTimeout);
86 STDMETHOD(COMSETTER(AuthTimeout)) (ULONG aTimeout);
87 STDMETHOD(COMGETTER(AllowMultiConnection)) (BOOL *aAllowMultiConnection);
88 STDMETHOD(COMSETTER(AllowMultiConnection)) (BOOL aAllowMultiConnection);
89 STDMETHOD(COMGETTER(ReuseSingleConnection)) (BOOL *aReuseSingleConnection);
90 STDMETHOD(COMSETTER(ReuseSingleConnection)) (BOOL aReuseSingleConnection);
91 STDMETHOD(COMGETTER(VideoChannel)) (BOOL *aVideoChannel);
92 STDMETHOD(COMSETTER(VideoChannel)) (BOOL aVideoChannel);
93 STDMETHOD(COMGETTER(VideoChannelQuality)) (ULONG *aVideoChannelQuality);
94 STDMETHOD(COMSETTER(VideoChannelQuality)) (ULONG aVideoChannelQuality);
95
96 // IVRDPServer methods
97
98 // public methods only for internal purposes
99
100 HRESULT loadSettings(const settings::VRDPSettings &data);
101 HRESULT saveSettings(settings::VRDPSettings &data);
102
103 void rollback();
104 void commit();
105 void copyFrom (VRDPServer *aThat);
106
107 // for VirtualBoxSupportErrorInfoImpl
108 static const wchar_t *getComponentName() { return L"VRDPServer"; }
109
110private:
111
112 Machine * const mParent;
113 const ComObjPtr<VRDPServer> mPeer;
114
115 Backupable<Data> mData;
116};
117
118#endif // ____H_VRDPSERVER
119/* vi: set tabstop=4 shiftwidth=4 expandtab: */
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette