787
void Console::guestPropertiesVRDPUpdateActiveClient(uint32_t u32ClientId)
789
if (!guestPropertiesVRDPEnabled())
792
LogFlowFunc(("%d\n", u32ClientId));
794
Bstr bstrFlags(L"RDONLYGUEST,TRANSIENT");
797
RTStrPrintf(szClientId, sizeof(szClientId), "%u", u32ClientId);
799
mMachine->SetGuestProperty(Bstr("/VirtualBox/HostInfo/VRDP/ActiveClient").raw(),
800
Bstr(szClientId).raw(),
806
void Console::guestPropertiesVRDPUpdateNameChange(uint32_t u32ClientId, const char *pszName)
808
if (!guestPropertiesVRDPEnabled())
814
Bstr bstrReadOnlyGuest(L"RDONLYGUEST");
816
RTStrPrintf(szPropNm, sizeof(szPropNm), "/VirtualBox/HostInfo/VRDP/Client/%u/Name", u32ClientId);
817
Bstr clientName(pszName);
819
mMachine->SetGuestProperty(Bstr(szPropNm).raw(),
821
bstrReadOnlyGuest.raw());
825
void Console::guestPropertiesVRDPUpdateClientAttach(uint32_t u32ClientId, bool fAttached)
827
if (!guestPropertiesVRDPEnabled())
832
Bstr bstrReadOnlyGuest(L"RDONLYGUEST");
835
RTStrPrintf(szPropNm, sizeof(szPropNm), "/VirtualBox/HostInfo/VRDP/Client/%u/Attach", u32ClientId);
837
Bstr bstrValue = fAttached? "1": "0";
839
mMachine->SetGuestProperty(Bstr(szPropNm).raw(),
841
bstrReadOnlyGuest.raw());
785
844
void Console::guestPropertiesVRDPUpdateDisconnect(uint32_t u32ClientId)
787
846
if (!guestPropertiesVRDPEnabled())
790
851
Bstr bstrReadOnlyGuest(L"RDONLYGUEST");
792
853
char szPropNm[256];
793
854
RTStrPrintf(szPropNm, sizeof(szPropNm), "/VirtualBox/HostInfo/VRDP/Client/%u/Name", u32ClientId);
794
mMachine->SetGuestProperty(Bstr(szPropNm).raw(), Bstr("").raw(),
855
mMachine->SetGuestProperty(Bstr(szPropNm).raw(), NULL,
795
856
bstrReadOnlyGuest.raw());
797
858
RTStrPrintf(szPropNm, sizeof(szPropNm), "/VirtualBox/HostInfo/VRDP/Client/%u/User", u32ClientId);
798
mMachine->SetGuestProperty(Bstr(szPropNm).raw(), Bstr("").raw(),
859
mMachine->SetGuestProperty(Bstr(szPropNm).raw(), NULL,
799
860
bstrReadOnlyGuest.raw());
801
862
RTStrPrintf(szPropNm, sizeof(szPropNm), "/VirtualBox/HostInfo/VRDP/Client/%u/Domain", u32ClientId);
802
mMachine->SetGuestProperty(Bstr(szPropNm).raw(), Bstr("").raw(),
863
mMachine->SetGuestProperty(Bstr(szPropNm).raw(), NULL,
864
bstrReadOnlyGuest.raw());
866
RTStrPrintf(szPropNm, sizeof(szPropNm), "/VirtualBox/HostInfo/VRDP/Client/%u/Attach", u32ClientId);
867
mMachine->SetGuestProperty(Bstr(szPropNm).raw(), NULL,
803
868
bstrReadOnlyGuest.raw());
805
870
char szClientId[64];
1061
1126
return VINF_SUCCESS;
1129
void Console::VRDPClientStatusChange(uint32_t u32ClientId, const char *pszStatus)
1133
AutoCaller autoCaller(this);
1134
AssertComRCReturnVoid(autoCaller.rc());
1136
LogFlowFunc(("%s\n", pszStatus));
1138
/* Parse the status string. */
1139
if (RTStrICmp(pszStatus, "ATTACH") == 0)
1141
guestPropertiesVRDPUpdateClientAttach(u32ClientId, true);
1143
else if (RTStrICmp(pszStatus, "DETACH") == 0)
1145
guestPropertiesVRDPUpdateClientAttach(u32ClientId, false);
1147
else if (RTStrNICmp(pszStatus, "NAME=", strlen("NAME=")) == 0)
1149
guestPropertiesVRDPUpdateNameChange(u32ClientId, pszStatus + strlen("NAME="));
1064
1155
void Console::VRDPClientConnect(uint32_t u32ClientId)
1066
1157
LogFlowFuncEnter();