1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 // 5 // LogExts API Logging Manifest describing the interfaces of the Remote Desktop 6 // ActiveX control. All definitions were extracted from the type library 7 // embedded into mstscax.dll. 8 // 9 // To use this file copy it to winext\manifest directory of the WinDbg 10 // installation and add #include "rdp.h" to winext\manifest\main.h. Then load 11 // !logexts extension as usual and enable the "rdp" category. 12 13 module MSTSCAX.DLL: 14 category rdp: 15 16 // 17 // GUIDs 18 // 19 20 struct __declspec(uuid("336d5562-efa8-482e-8cb3-c5c0fc7a7db6")) IMsTscAxEvents; 21 struct __declspec(uuid("92b4a539-7115-4b7c-a5a9-e5d9efc2780a")) IMsRdpClient; 22 struct __declspec(uuid("8c11efae-92c3-11d1-bc1e-00c04fa31489")) IMsTscAx; 23 struct __declspec(uuid("327bb5cd-834e-4400-aef2-b30e15e5d682")) IMsTscAx_Redist; 24 struct __declspec(uuid("c9d65442-a0f9-45b2-8f73-d61d2db8cbb6")) IMsTscSecuredSettings; 25 struct __declspec(uuid("809945cc-4b3b-4a92-a6b0-dbf9b5f2ef2d")) IMsTscAdvancedSettings; 26 struct __declspec(uuid("209d0eb9-6254-47b1-9033-a98dae55bb27")) IMsTscDebug; 27 struct __declspec(uuid("3c65b4ab-12b3-465b-acd4-b8dad3bff9e2")) IMsRdpClientAdvancedSettings; 28 struct __declspec(uuid("605befcf-39c1-45cc-a811-068fb7be346d")) IMsRdpClientSecuredSettings; 29 struct __declspec(uuid("c1e6743a-41c1-4a74-832a-0dd06c1c7a0e")) IMsTscNonScriptable; 30 struct __declspec(uuid("2f079c4c-87b2-4afd-97ab-20cdb43038ae")) IMsRdpClientNonScriptable; 31 struct __declspec(uuid("e7e17dc4-3b71-4ba7-a8e6-281ffadca28f")) IMsRdpClient2; 32 struct __declspec(uuid("9ac42117-2b76-4320-aa44-0e616ab8437b")) IMsRdpClientAdvancedSettings2; 33 struct __declspec(uuid("91b7cbc5-a72e-4fa0-9300-d647d7e897ff")) IMsRdpClient3; 34 struct __declspec(uuid("19cd856b-c542-4c53-acee-f127e3be1a59")) IMsRdpClientAdvancedSettings3; 35 struct __declspec(uuid("095e0738-d97d-488b-b9f6-dd0e8d66c0de")) IMsRdpClient4; 36 struct __declspec(uuid("fba7f64e-7345-4405-ae50-fa4a763dc0de")) IMsRdpClientAdvancedSettings4; 37 struct __declspec(uuid("17a5e535-4072-4fa4-af32-c8d0d47345e9")) IMsRdpClientNonScriptable2; 38 struct __declspec(uuid("4eb5335b-6429-477d-b922-e06a28ecd8bf")) IMsRdpClient5; 39 struct __declspec(uuid("720298c0-a099-46f5-9f82-96921bae4701")) IMsRdpClientTransportSettings; 40 struct __declspec(uuid("fba7f64e-6783-4405-da45-fa4a763dabd0")) IMsRdpClientAdvancedSettings5; 41 struct __declspec(uuid("fdd029f9-467a-4c49-8529-64b521dbd1b4")) ITSRemoteProgram; 42 struct __declspec(uuid("d012ae6d-c19a-4bfe-b367-201f8911f134")) IMsRdpClientShell; 43 struct __declspec(uuid("b3378d90-0728-45c7-8ed7-b6159fb92219")) IMsRdpClientNonScriptable3; 44 struct __declspec(uuid("56540617-d281-488c-8738-6a8fdf64a118")) IMsRdpDeviceCollection; 45 struct __declspec(uuid("60c3b9c8-9e92-4f5e-a3e7-604a912093ea")) IMsRdpDevice; 46 struct __declspec(uuid("7ff17599-da2c-4677-ad35-f60c04fe1585")) IMsRdpDriveCollection; 47 struct __declspec(uuid("d28b5458-f694-47a8-8e61-40356a767e46")) IMsRdpDrive; 48 struct __declspec(uuid("d43b7d80-8517-4b6d-9eac-96ad6800d7f2")) IMsRdpClient6; 49 struct __declspec(uuid("222c4b5d-45d9-4df0-a7c6-60cf9089d285")) IMsRdpClientAdvancedSettings6; 50 struct __declspec(uuid("67341688-d606-4c73-a5d2-2e0489009319")) IMsRdpClientTransportSettings2; 51 struct __declspec(uuid("f50fa8aa-1c7d-4f59-b15c-a90cacae1fcb")) IMsRdpClientNonScriptable4; 52 struct __declspec(uuid("b2a5b5ce-3461-444a-91d4-add26d070638")) IMsRdpClient7; 53 struct __declspec(uuid("26036036-4010-4578-8091-0db9a1edf9c3")) IMsRdpClientAdvancedSettings7; 54 struct __declspec(uuid("3d5b21ac-748d-41de-8f30-e15169586bd4")) IMsRdpClientTransportSettings3; 55 struct __declspec(uuid("25f2ce20-8b1d-4971-a7cd-549dae201fc0")) IMsRdpClientSecuredSettings2; 56 struct __declspec(uuid("92c38a7d-241a-418c-9936-099872c9af20")) ITSRemoteProgram2; 57 struct __declspec(uuid("4f6996d5-d7b1-412c-b0ff-063718566907")) IMsRdpClientNonScriptable5; 58 struct __declspec(uuid("fdd029f9-9574-4def-8529-64b521cccaa4")) IMsRdpPreferredRedirectionInfo; 59 struct __declspec(uuid("302d8188-0052-4807-806a-362b628f9ac5")) IMsRdpExtendedSettings; 60 struct __declspec(uuid("4247e044-9271-43a9-bc49-e2ad9e855d62")) IMsRdpClient8; 61 struct __declspec(uuid("89acb528-2557-4d16-8625-226a30e97e9a")) IMsRdpClientAdvancedSettings8; 62 struct __declspec(uuid("079863b7-6d47-4105-8bfe-0cdcb360e67d")) IRemoteDesktopClientEvents; 63 struct __declspec(uuid("57d25668-625a-4905-be4e-304caa13f89c")) IRemoteDesktopClient; 64 struct __declspec(uuid("48a0f2a7-2713-431f-bbac-6f4558e7d64d")) IRemoteDesktopClientSettings; 65 struct __declspec(uuid("7d54bc4e-1028-45d4-8b0a-b9b6bffba176")) IRemoteDesktopClientActions; 66 struct __declspec(uuid("260ec22d-8cbc-44b5-9e88-2a37f6c93ae9")) IRemoteDesktopClientTouchPointer; 67 struct __declspec(uuid("A0B2DD9A-7F53-4E65-8547-851952EC8C96")) IMsRdpSessionManager; 68 69 // 70 // Typedefs 71 // 72 73 typedef LPVOID LONG_PTR; 74 75 typedef struct tagSAFEARRAYBOUND { 76 ULONG cElements; 77 LONG lLbound; 78 } SAFEARRAYBOUND; 79 80 typedef struct tagSAFEARRAY { 81 USHORT cDims; 82 USHORT fFeatures; 83 ULONG cbElements; 84 ULONG cLocks; 85 PVOID pvData; 86 SAFEARRAYBOUND rgsabound[1]; 87 } SAFEARRAY; 88 89 // 90 // Values 91 // 92 93 value short VARIANT_BOOL { 94 #define VARIANT_TRUE 0xffff 95 #define VARIANT_FALSE 0 96 }; 97 98 value long AutoReconnectContinueState { 99 #define autoReconnectContinueAutomatic 0 100 #define autoReconnectContinueStop 1 101 #define autoReconnectContinueManual 2 102 }; 103 104 value long RemoteWindowDisplayedAttribute { 105 #define remoteAppWindowNone 0 106 #define remoteAppWindowDisplayed 1 107 #define remoteAppShellIconDisplayed 2 108 }; 109 110 value long RemoteProgramResult { 111 #define remoteAppResultOk 0 112 #define remoteAppResultLocked 1 113 #define remoteAppResultProtocolError 2 114 #define remoteAppResultNotInWhitelist 3 115 #define remoteAppResultNetworkPathDenied 4 116 #define remoteAppResultFileNotFound 5 117 #define remoteAppResultFailure 6 118 #define remoteAppResultHookNotLoaded 7 119 }; 120 121 value long ExtendedDisconnectReasonCode { 122 #define exDiscReasonNoInfo 0 123 #define exDiscReasonAPIInitiatedDisconnect 1 124 #define exDiscReasonAPIInitiatedLogoff 2 125 #define exDiscReasonServerIdleTimeout 3 126 #define exDiscReasonServerLogonTimeout 4 127 #define exDiscReasonReplacedByOtherConnection 5 128 #define exDiscReasonOutOfMemory 6 129 #define exDiscReasonServerDeniedConnection 7 130 #define exDiscReasonServerDeniedConnectionFips 8 131 #define exDiscReasonServerInsufficientPrivileges 9 132 #define exDiscReasonServerFreshCredsRequired 10 133 #define exDiscReasonLicenseInternal 256 134 #define exDiscReasonLicenseNoLicenseServer 257 135 #define exDiscReasonLicenseNoLicense 258 136 #define exDiscReasonLicenseErrClientMsg 259 137 #define exDiscReasonLicenseHwidDoesntMatchLicense 260 138 #define exDiscReasonLicenseErrClientLicense 261 139 #define exDiscReasonLicenseCantFinishProtocol 262 140 #define exDiscReasonLicenseClientEndedProtocol 263 141 #define exDiscReasonLicenseErrClientEncryption 264 142 #define exDiscReasonLicenseCantUpgradeLicense 265 143 #define exDiscReasonLicenseNoRemoteConnections 266 144 #define exDiscReasonLicenseCreatingLicStoreAccDenied 267 145 #define exDiscReasonRdpEncInvalidCredentials 768 146 #define exDiscReasonProtocolRangeStart 4096 147 #define exDiscReasonProtocolRangeEnd 32767 148 }; 149 150 value long ControlCloseStatus { 151 #define controlCloseCanProceed 0 152 #define controlCloseWaitForEvents 1 153 }; 154 155 value long RedirectionWarningType { 156 #define RedirectionWarningTypeDefault 0 157 #define RedirectionWarningTypeUnsigned 1 158 #define RedirectionWarningTypeUnknown 2 159 #define RedirectionWarningTypeUser 3 160 #define RedirectionWarningTypeThirdPartySigned 4 161 #define RedirectionWarningTypeTrusted 5 162 }; 163 164 value long RemoteSessionActionType { 165 #define RemoteSessionActionCharms 0 166 #define RemoteSessionActionAppbar 1 167 #define RemoteSessionActionSnap 2 168 #define RemoteSessionActionStartScreen 3 169 #define RemoteSessionActionAppSwitch 4 170 }; 171 172 value long ClientSpec { 173 #define FullMode 0 174 #define ThinClientMode 1 175 #define SmallCacheMode 2 176 }; 177 178 value long ControlReconnectStatus { 179 #define controlReconnectStarted 0 180 #define controlReconnectBlocked 1 181 }; 182 183 value long RemoteActionType { 184 #define RemoteActionCharms 0 185 #define RemoteActionAppbar 1 186 #define RemoteActionSnap 2 187 #define RemoteActionStartScreen 3 188 #define RemoteActionAppSwitch 4 189 }; 190 191 value long SnapshotEncodingType { 192 #define SnapshotEncodingDataUri 0 193 }; 194 195 value long SnapshotFormatType { 196 #define SnapshotFormatPng 0 197 #define SnapshotFormatJpeg 1 198 #define SnapshotFormatBmp 2 199 }; 200 201 // 202 // Interfaces 203 // 204 205 interface IMsTscAxEvents : IDispatch { 206 HRESULT OnConnecting(); 207 HRESULT OnConnected(); 208 HRESULT OnLoginComplete(); 209 HRESULT OnDisconnected(long discReason); 210 HRESULT OnEnterFullScreenMode(); 211 HRESULT OnLeaveFullScreenMode(); 212 HRESULT OnChannelReceivedData(BSTR chanName, BSTR data); 213 HRESULT OnRequestGoFullScreen(); 214 HRESULT OnRequestLeaveFullScreen(); 215 HRESULT OnFatalError(long errorCode); 216 HRESULT OnWarning(long warningCode); 217 HRESULT OnRemoteDesktopSizeChange(long width, long height); 218 HRESULT OnIdleTimeoutNotification(); 219 HRESULT OnRequestContainerMinimize(); 220 HRESULT OnConfirmClose([out] VARIANT_BOOL* pfAllowClose); 221 HRESULT OnReceivedTSPublicKey(BSTR publicKey, [out] VARIANT_BOOL* pfContinueLogon); 222 HRESULT OnAutoReconnecting(long disconnectReason, long attemptCount, [out] AutoReconnectContinueState* pArcContinueStatus); 223 HRESULT OnAuthenticationWarningDisplayed(); 224 HRESULT OnAuthenticationWarningDismissed(); 225 HRESULT OnRemoteProgramResult(BSTR bstrRemoteProgram, RemoteProgramResult lError, VARIANT_BOOL vbIsExecutable); 226 HRESULT OnRemoteProgramDisplayed(VARIANT_BOOL vbDisplayed, ULONG uDisplayInformation); 227 HRESULT OnRemoteWindowDisplayed(VARIANT_BOOL vbDisplayed, LPVOID hwnd, RemoteWindowDisplayedAttribute windowAttribute); 228 HRESULT OnLogonError(long lError); 229 HRESULT OnFocusReleased(int iDirection); 230 HRESULT OnUserNameAcquired(BSTR bstrUserName); 231 HRESULT OnMouseInputModeChanged(VARIANT_BOOL fMouseModeRelative); 232 HRESULT OnServiceMessageReceived(BSTR serviceMessage); 233 HRESULT OnConnectionBarPullDown(); 234 HRESULT OnNetworkStatusChanged(ULONG qualityLevel, long bandwidth, long rtt); 235 HRESULT OnDevicesButtonPressed(); 236 HRESULT OnAutoReconnected(); 237 HRESULT OnAutoReconnecting2(long disconnectReason, VARIANT_BOOL networkAvailable, long attemptCount, long maxAttemptCount); 238 }; 239 240 interface IMsTscSecuredSettings : IDispatch { 241 HRESULT put_StartProgram(BSTR pStartProgram); 242 HRESULT get_StartProgram([out] BSTR* pStartProgram); 243 HRESULT put_WorkDir(BSTR pWorkDir); 244 HRESULT get_WorkDir([out] BSTR* pWorkDir); 245 HRESULT put_FullScreen(long pfFullScreen); 246 HRESULT get_FullScreen([out] long* pfFullScreen); 247 }; 248 249 interface IMsTscAdvancedSettings : IDispatch { 250 HRESULT put_Compress(long pcompress); 251 HRESULT get_Compress([out] long* pcompress); 252 HRESULT put_BitmapPeristence(long pbitmapPeristence); 253 HRESULT get_BitmapPeristence([out] long* pbitmapPeristence); 254 HRESULT put_allowBackgroundInput(long pallowBackgroundInput); 255 HRESULT get_allowBackgroundInput([out] long* pallowBackgroundInput); 256 HRESULT put_KeyBoardLayoutStr(BSTR _arg1); 257 HRESULT put_PluginDlls(BSTR _arg1); 258 HRESULT put_IconFile(BSTR _arg1); 259 HRESULT put_IconIndex(long _arg1); 260 HRESULT put_ContainerHandledFullScreen(long pContainerHandledFullScreen); 261 HRESULT get_ContainerHandledFullScreen([out] long* pContainerHandledFullScreen); 262 HRESULT put_DisableRdpdr(long pDisableRdpdr); 263 HRESULT get_DisableRdpdr([out] long* pDisableRdpdr); 264 }; 265 266 interface IMsTscDebug : IDispatch { 267 HRESULT put_HatchBitmapPDU(long phatchBitmapPDU); 268 HRESULT get_HatchBitmapPDU([out] long* phatchBitmapPDU); 269 HRESULT put_HatchSSBOrder(long phatchSSBOrder); 270 HRESULT get_HatchSSBOrder([out] long* phatchSSBOrder); 271 HRESULT put_HatchMembltOrder(long phatchMembltOrder); 272 HRESULT get_HatchMembltOrder([out] long* phatchMembltOrder); 273 HRESULT put_HatchIndexPDU(long phatchIndexPDU); 274 HRESULT get_HatchIndexPDU([out] long* phatchIndexPDU); 275 HRESULT put_LabelMemblt(long plabelMemblt); 276 HRESULT get_LabelMemblt([out] long* plabelMemblt); 277 HRESULT put_BitmapCacheMonitor(long pbitmapCacheMonitor); 278 HRESULT get_BitmapCacheMonitor([out] long* pbitmapCacheMonitor); 279 HRESULT put_MallocFailuresPercent(long pmallocFailuresPercent); 280 HRESULT get_MallocFailuresPercent([out] long* pmallocFailuresPercent); 281 HRESULT put_MallocHugeFailuresPercent(long pmallocHugeFailuresPercent); 282 HRESULT get_MallocHugeFailuresPercent([out] long* pmallocHugeFailuresPercent); 283 HRESULT put_NetThroughput(long NetThroughput); 284 HRESULT get_NetThroughput([out] long* NetThroughput); 285 HRESULT put_CLXCmdLine(BSTR pCLXCmdLine); 286 HRESULT get_CLXCmdLine([out] BSTR* pCLXCmdLine); 287 HRESULT put_CLXDll(BSTR pCLXDll); 288 HRESULT get_CLXDll([out] BSTR* pCLXDll); 289 HRESULT put_RemoteProgramsHatchVisibleRegion(long pcbHatch); 290 HRESULT get_RemoteProgramsHatchVisibleRegion([out] long* pcbHatch); 291 HRESULT put_RemoteProgramsHatchVisibleNoDataRegion(long pcbHatch); 292 HRESULT get_RemoteProgramsHatchVisibleNoDataRegion([out] long* pcbHatch); 293 HRESULT put_RemoteProgramsHatchNonVisibleRegion(long pcbHatch); 294 HRESULT get_RemoteProgramsHatchNonVisibleRegion([out] long* pcbHatch); 295 HRESULT put_RemoteProgramsHatchWindow(long pcbHatch); 296 HRESULT get_RemoteProgramsHatchWindow([out] long* pcbHatch); 297 HRESULT put_RemoteProgramsStayConnectOnBadCaps(long pcbStayConnected); 298 HRESULT get_RemoteProgramsStayConnectOnBadCaps([out] long* pcbStayConnected); 299 HRESULT get_ControlType([out] UINT* pControlType); 300 HRESULT put_DecodeGfx(VARIANT_BOOL _arg1); 301 }; 302 303 interface IMsTscAx : IDispatch 304 { 305 HRESULT put_Server(BSTR pServer); 306 HRESULT get_Server([out] BSTR* pServer); 307 HRESULT put_Domain(BSTR pDomain); 308 HRESULT get_Domain([out] BSTR* pDomain); 309 HRESULT put_UserName(BSTR pUserName); 310 HRESULT get_UserName([out] BSTR* pUserName); 311 HRESULT put_DisconnectedText(BSTR pDisconnectedText); 312 HRESULT get_DisconnectedText([out] BSTR* pDisconnectedText); 313 HRESULT put_ConnectingText(BSTR pConnectingText); 314 HRESULT get_ConnectingText([out] BSTR* pConnectingText); 315 HRESULT get_Connected([out] short* pIsConnected); 316 HRESULT put_DesktopWidth(long pVal); 317 HRESULT get_DesktopWidth([out] long* pVal); 318 HRESULT put_DesktopHeight(long pVal); 319 HRESULT get_DesktopHeight([out] long* pVal); 320 HRESULT put_StartConnected(long pfStartConnected); 321 HRESULT get_StartConnected([out] long* pfStartConnected); 322 HRESULT get_HorizontalScrollBarVisible([out] long* pfHScrollVisible); 323 HRESULT get_VerticalScrollBarVisible([out] long* pfVScrollVisible); 324 HRESULT put_FullScreenTitle(BSTR _arg1); 325 HRESULT get_CipherStrength([out] long* pCipherStrength); 326 HRESULT get_Version([out] BSTR* pVersion); 327 HRESULT get_SecuredSettingsEnabled([out] long* pSecuredSettingsEnabled); 328 HRESULT get_SecuredSettings([out] IMsTscSecuredSettings** ppSecuredSettings); 329 HRESULT get_AdvancedSettings([out] IMsTscAdvancedSettings** ppAdvSettings); 330 HRESULT get_Debugger([out] IMsTscDebug** ppDebugger); 331 HRESULT Connect(); 332 HRESULT Disconnect(); 333 HRESULT CreateVirtualChannels(BSTR newVal); 334 HRESULT SendOnVirtualChannel(BSTR chanName, BSTR ChanData); 335 }; 336 337 interface IMsRdpClientAdvancedSettings : IMsTscAdvancedSettings { 338 HRESULT put_SmoothScroll(long psmoothScroll); 339 HRESULT get_SmoothScroll([out] long* psmoothScroll); 340 HRESULT put_AcceleratorPassthrough(long pacceleratorPassthrough); 341 HRESULT get_AcceleratorPassthrough([out] long* pacceleratorPassthrough); 342 HRESULT put_ShadowBitmap(long pshadowBitmap); 343 HRESULT get_ShadowBitmap([out] long* pshadowBitmap); 344 HRESULT put_TransportType(long ptransportType); 345 HRESULT get_TransportType([out] long* ptransportType); 346 HRESULT put_SasSequence(long psasSequence); 347 HRESULT get_SasSequence([out] long* psasSequence); 348 HRESULT put_EncryptionEnabled(long pencryptionEnabled); 349 HRESULT get_EncryptionEnabled([out] long* pencryptionEnabled); 350 HRESULT put_DedicatedTerminal(long pdedicatedTerminal); 351 HRESULT get_DedicatedTerminal([out] long* pdedicatedTerminal); 352 HRESULT put_RDPPort(long prdpPort); 353 HRESULT get_RDPPort([out] long* prdpPort); 354 HRESULT put_EnableMouse(long penableMouse); 355 HRESULT get_EnableMouse([out] long* penableMouse); 356 HRESULT put_DisableCtrlAltDel(long pdisableCtrlAltDel); 357 HRESULT get_DisableCtrlAltDel([out] long* pdisableCtrlAltDel); 358 HRESULT put_EnableWindowsKey(long penableWindowsKey); 359 HRESULT get_EnableWindowsKey([out] long* penableWindowsKey); 360 HRESULT put_DoubleClickDetect(long pdoubleClickDetect); 361 HRESULT get_DoubleClickDetect([out] long* pdoubleClickDetect); 362 HRESULT put_MaximizeShell(long pmaximizeShell); 363 HRESULT get_MaximizeShell([out] long* pmaximizeShell); 364 HRESULT put_HotKeyFullScreen(long photKeyFullScreen); 365 HRESULT get_HotKeyFullScreen([out] long* photKeyFullScreen); 366 HRESULT put_HotKeyCtrlEsc(long photKeyCtrlEsc); 367 HRESULT get_HotKeyCtrlEsc([out] long* photKeyCtrlEsc); 368 HRESULT put_HotKeyAltEsc(long photKeyAltEsc); 369 HRESULT get_HotKeyAltEsc([out] long* photKeyAltEsc); 370 HRESULT put_HotKeyAltTab(long photKeyAltTab); 371 HRESULT get_HotKeyAltTab([out] long* photKeyAltTab); 372 HRESULT put_HotKeyAltShiftTab(long photKeyAltShiftTab); 373 HRESULT get_HotKeyAltShiftTab([out] long* photKeyAltShiftTab); 374 HRESULT put_HotKeyAltSpace(long photKeyAltSpace); 375 HRESULT get_HotKeyAltSpace([out] long* photKeyAltSpace); 376 HRESULT put_HotKeyCtrlAltDel(long photKeyCtrlAltDel); 377 HRESULT get_HotKeyCtrlAltDel([out] long* photKeyCtrlAltDel); 378 HRESULT put_orderDrawThreshold(long porderDrawThreshold); 379 HRESULT get_orderDrawThreshold([out] long* porderDrawThreshold); 380 HRESULT put_BitmapCacheSize(long pbitmapCacheSize); 381 HRESULT get_BitmapCacheSize([out] long* pbitmapCacheSize); 382 HRESULT put_BitmapVirtualCacheSize(long pbitmapVirtualCacheSize); 383 HRESULT get_BitmapVirtualCacheSize([out] long* pbitmapVirtualCacheSize); 384 HRESULT put_ScaleBitmapCachesByBPP(long pbScale); 385 HRESULT get_ScaleBitmapCachesByBPP([out] long* pbScale); 386 HRESULT put_NumBitmapCaches(long pnumBitmapCaches); 387 HRESULT get_NumBitmapCaches([out] long* pnumBitmapCaches); 388 HRESULT put_CachePersistenceActive(long pcachePersistenceActive); 389 HRESULT get_CachePersistenceActive([out] long* pcachePersistenceActive); 390 HRESULT put_PersistCacheDirectory(BSTR _arg1); 391 HRESULT put_brushSupportLevel(long pbrushSupportLevel); 392 HRESULT get_brushSupportLevel([out] long* pbrushSupportLevel); 393 HRESULT put_minInputSendInterval(long pminInputSendInterval); 394 HRESULT get_minInputSendInterval([out] long* pminInputSendInterval); 395 HRESULT put_InputEventsAtOnce(long pinputEventsAtOnce); 396 HRESULT get_InputEventsAtOnce([out] long* pinputEventsAtOnce); 397 HRESULT put_maxEventCount(long pmaxEventCount); 398 HRESULT get_maxEventCount([out] long* pmaxEventCount); 399 HRESULT put_keepAliveInterval(long pkeepAliveInterval); 400 HRESULT get_keepAliveInterval([out] long* pkeepAliveInterval); 401 HRESULT put_shutdownTimeout(long pshutdownTimeout); 402 HRESULT get_shutdownTimeout([out] long* pshutdownTimeout); 403 HRESULT put_overallConnectionTimeout(long poverallConnectionTimeout); 404 HRESULT get_overallConnectionTimeout([out] long* poverallConnectionTimeout); 405 HRESULT put_singleConnectionTimeout(long psingleConnectionTimeout); 406 HRESULT get_singleConnectionTimeout([out] long* psingleConnectionTimeout); 407 HRESULT put_KeyboardType(long pkeyboardType); 408 HRESULT get_KeyboardType([out] long* pkeyboardType); 409 HRESULT put_KeyboardSubType(long pkeyboardSubType); 410 HRESULT get_KeyboardSubType([out] long* pkeyboardSubType); 411 HRESULT put_KeyboardFunctionKey(long pkeyboardFunctionKey); 412 HRESULT get_KeyboardFunctionKey([out] long* pkeyboardFunctionKey); 413 HRESULT put_WinceFixedPalette(long pwinceFixedPalette); 414 HRESULT get_WinceFixedPalette([out] long* pwinceFixedPalette); 415 HRESULT put_ConnectToServerConsole(VARIANT_BOOL pConnectToConsole); 416 HRESULT get_ConnectToServerConsole([out] VARIANT_BOOL* pConnectToConsole); 417 HRESULT put_BitmapPersistence(long pbitmapPersistence); 418 HRESULT get_BitmapPersistence([out] long* pbitmapPersistence); 419 HRESULT put_MinutesToIdleTimeout(long pminutesToIdleTimeout); 420 HRESULT get_MinutesToIdleTimeout([out] long* pminutesToIdleTimeout); 421 HRESULT put_SmartSizing(VARIANT_BOOL pfSmartSizing); 422 HRESULT get_SmartSizing([out] VARIANT_BOOL* pfSmartSizing); 423 HRESULT put_RdpdrLocalPrintingDocName(BSTR pLocalPrintingDocName); 424 HRESULT get_RdpdrLocalPrintingDocName([out] BSTR* pLocalPrintingDocName); 425 HRESULT put_RdpdrClipCleanTempDirString(BSTR clipCleanTempDirString); 426 HRESULT get_RdpdrClipCleanTempDirString([out] BSTR* clipCleanTempDirString); 427 HRESULT put_RdpdrClipPasteInfoString(BSTR clipPasteInfoString); 428 HRESULT get_RdpdrClipPasteInfoString([out] BSTR* clipPasteInfoString); 429 HRESULT put_ClearTextPassword(BSTR _arg1); 430 HRESULT put_DisplayConnectionBar(VARIANT_BOOL pDisplayConnectionBar); 431 HRESULT get_DisplayConnectionBar([out] VARIANT_BOOL* pDisplayConnectionBar); 432 HRESULT put_PinConnectionBar(VARIANT_BOOL pPinConnectionBar); 433 HRESULT get_PinConnectionBar([out] VARIANT_BOOL* pPinConnectionBar); 434 HRESULT put_GrabFocusOnConnect(VARIANT_BOOL pfGrabFocusOnConnect); 435 HRESULT get_GrabFocusOnConnect([out] VARIANT_BOOL* pfGrabFocusOnConnect); 436 HRESULT put_LoadBalanceInfo(BSTR pLBInfo); 437 HRESULT get_LoadBalanceInfo([out] BSTR* pLBInfo); 438 HRESULT put_RedirectDrives(VARIANT_BOOL pRedirectDrives); 439 HRESULT get_RedirectDrives([out] VARIANT_BOOL* pRedirectDrives); 440 HRESULT put_RedirectPrinters(VARIANT_BOOL pRedirectPrinters); 441 HRESULT get_RedirectPrinters([out] VARIANT_BOOL* pRedirectPrinters); 442 HRESULT put_RedirectPorts(VARIANT_BOOL pRedirectPorts); 443 HRESULT get_RedirectPorts([out] VARIANT_BOOL* pRedirectPorts); 444 HRESULT put_RedirectSmartCards(VARIANT_BOOL pRedirectSmartCards); 445 HRESULT get_RedirectSmartCards([out] VARIANT_BOOL* pRedirectSmartCards); 446 HRESULT put_BitmapVirtualCache16BppSize(long pBitmapVirtualCache16BppSize); 447 HRESULT get_BitmapVirtualCache16BppSize([out] long* pBitmapVirtualCache16BppSize); 448 HRESULT put_BitmapVirtualCache24BppSize(long pBitmapVirtualCache24BppSize); 449 HRESULT get_BitmapVirtualCache24BppSize([out] long* pBitmapVirtualCache24BppSize); 450 HRESULT put_PerformanceFlags(long pDisableList); 451 HRESULT get_PerformanceFlags([out] long* pDisableList); 452 HRESULT put_ConnectWithEndpoint(VARIANT* _arg1); 453 HRESULT put_NotifyTSPublicKey(VARIANT_BOOL pfNotify); 454 HRESULT get_NotifyTSPublicKey([out] VARIANT_BOOL* pfNotify); 455 }; 456 457 interface IMsRdpClientSecuredSettings : IMsTscSecuredSettings { 458 HRESULT put_KeyboardHookMode(long pkeyboardHookMode); 459 HRESULT get_KeyboardHookMode([out] long* pkeyboardHookMode); 460 HRESULT put_AudioRedirectionMode(long pAudioRedirectionMode); 461 HRESULT get_AudioRedirectionMode([out] long* pAudioRedirectionMode); 462 }; 463 464 interface IMsRdpClient : IMsTscAx { 465 HRESULT put_ColorDepth(long pcolorDepth); 466 HRESULT get_ColorDepth([out] long* pcolorDepth); 467 HRESULT get_AdvancedSettings2([out] IMsRdpClientAdvancedSettings** ppAdvSettings); 468 HRESULT get_SecuredSettings2([out] IMsRdpClientSecuredSettings** ppSecuredSettings); 469 HRESULT get_ExtendedDisconnectReason([out] ExtendedDisconnectReasonCode* pExtendedDisconnectReason); 470 HRESULT put_FullScreen(VARIANT_BOOL pfFullScreen); 471 HRESULT get_FullScreen([out] VARIANT_BOOL* pfFullScreen); 472 HRESULT SetVirtualChannelOptions(BSTR chanName, long chanOptions); 473 HRESULT GetVirtualChannelOptions(BSTR chanName, [out] long* pChanOptions); 474 HRESULT RequestClose([out] ControlCloseStatus* pCloseStatus); 475 }; 476 477 interface IMsTscNonScriptable : IUnknown { 478 HRESULT put_ClearTextPassword(BSTR _arg1); 479 HRESULT put_PortablePassword(BSTR pPortablePass); 480 HRESULT get_PortablePassword([out] BSTR* pPortablePass); 481 HRESULT put_PortableSalt(BSTR pPortableSalt); 482 HRESULT get_PortableSalt([out] BSTR* pPortableSalt); 483 HRESULT put_BinaryPassword(BSTR pBinaryPassword); 484 HRESULT get_BinaryPassword([out] BSTR* pBinaryPassword); 485 HRESULT put_BinarySalt(BSTR pSalt); 486 HRESULT get_BinarySalt([out] BSTR* pSalt); 487 HRESULT ResetPassword(); 488 }; 489 490 interface IMsRdpClientNonScriptable : IMsTscNonScriptable { 491 HRESULT NotifyRedirectDeviceChange(UINT_PTR wParam, LONG_PTR lParam); 492 HRESULT SendKeys(long numKeys, VARIANT_BOOL* pbArrayKeyUp, long* plKeyData); 493 }; 494 495 interface IMsRdpClientAdvancedSettings2 : IMsRdpClientAdvancedSettings { 496 HRESULT get_CanAutoReconnect([out] VARIANT_BOOL* pfCanAutoReconnect); 497 HRESULT put_EnableAutoReconnect(VARIANT_BOOL pfEnableAutoReconnect); 498 HRESULT get_EnableAutoReconnect([out] VARIANT_BOOL* pfEnableAutoReconnect); 499 HRESULT put_MaxReconnectAttempts(long pMaxReconnectAttempts); 500 HRESULT get_MaxReconnectAttempts([out] long* pMaxReconnectAttempts); 501 }; 502 503 interface IMsRdpClient2 : IMsRdpClient { 504 HRESULT get_AdvancedSettings3([out] IMsRdpClientAdvancedSettings2** ppAdvSettings); 505 HRESULT put_ConnectedStatusText(BSTR pConnectedStatusText); 506 HRESULT get_ConnectedStatusText([out] BSTR* pConnectedStatusText); 507 }; 508 509 interface IMsRdpClientAdvancedSettings3 : IMsRdpClientAdvancedSettings2 { 510 HRESULT put_ConnectionBarShowMinimizeButton(VARIANT_BOOL pfShowMinimize); 511 HRESULT get_ConnectionBarShowMinimizeButton([out] VARIANT_BOOL* pfShowMinimize); 512 HRESULT put_ConnectionBarShowRestoreButton(VARIANT_BOOL pfShowRestore); 513 HRESULT get_ConnectionBarShowRestoreButton([out] VARIANT_BOOL* pfShowRestore); 514 }; 515 516 interface IMsRdpClient3 : IMsRdpClient2 { 517 HRESULT get_AdvancedSettings4([out] IMsRdpClientAdvancedSettings3** ppAdvSettings); 518 }; 519 520 interface IMsRdpClientAdvancedSettings4 : IMsRdpClientAdvancedSettings3 { 521 HRESULT put_AuthenticationLevel(UINT puiAuthLevel); 522 HRESULT get_AuthenticationLevel([out] UINT* puiAuthLevel); 523 }; 524 525 interface IMsRdpClient4 : IMsRdpClient3 { 526 HRESULT get_AdvancedSettings5([out] IMsRdpClientAdvancedSettings4** ppAdvSettings); 527 }; 528 529 interface IMsRdpClientNonScriptable2 : IMsRdpClientNonScriptable { 530 HRESULT put_UIParentWindowHandle(LPVOID phwndUIParentWindowHandle); 531 HRESULT get_UIParentWindowHandle([out] LPVOID* phwndUIParentWindowHandle); 532 }; 533 534 interface IMsRdpClientTransportSettings : IDispatch { 535 HRESULT put_GatewayHostname(BSTR pProxyHostname); 536 HRESULT get_GatewayHostname([out] BSTR* pProxyHostname); 537 HRESULT put_GatewayUsageMethod(ULONG pulProxyUsageMethod); 538 HRESULT get_GatewayUsageMethod([out] ULONG* pulProxyUsageMethod); 539 HRESULT put_GatewayProfileUsageMethod(ULONG pulProxyProfileUsageMethod); 540 HRESULT get_GatewayProfileUsageMethod([out] ULONG* pulProxyProfileUsageMethod); 541 HRESULT put_GatewayCredsSource(ULONG pulProxyCredsSource); 542 HRESULT get_GatewayCredsSource([out] ULONG* pulProxyCredsSource); 543 HRESULT put_GatewayUserSelectedCredsSource(ULONG pulProxyCredsSource); 544 HRESULT get_GatewayUserSelectedCredsSource([out] ULONG* pulProxyCredsSource); 545 HRESULT get_GatewayIsSupported([out] long* pfProxyIsSupported); 546 HRESULT get_GatewayDefaultUsageMethod([out] ULONG* pulProxyDefaultUsageMethod); 547 }; 548 549 interface IMsRdpClientAdvancedSettings5 : IMsRdpClientAdvancedSettings4 { 550 HRESULT put_RedirectClipboard(VARIANT_BOOL pfRedirectClipboard); 551 HRESULT get_RedirectClipboard([out] VARIANT_BOOL* pfRedirectClipboard); 552 HRESULT put_AudioRedirectionMode(UINT puiAudioRedirectionMode); 553 HRESULT get_AudioRedirectionMode([out] UINT* puiAudioRedirectionMode); 554 HRESULT put_ConnectionBarShowPinButton(VARIANT_BOOL pfShowPin); 555 HRESULT get_ConnectionBarShowPinButton([out] VARIANT_BOOL* pfShowPin); 556 HRESULT put_PublicMode(VARIANT_BOOL pfPublicMode); 557 HRESULT get_PublicMode([out] VARIANT_BOOL* pfPublicMode); 558 HRESULT put_RedirectDevices(VARIANT_BOOL pfRedirectPnPDevices); 559 HRESULT get_RedirectDevices([out] VARIANT_BOOL* pfRedirectPnPDevices); 560 HRESULT put_RedirectPOSDevices(VARIANT_BOOL pfRedirectPOSDevices); 561 HRESULT get_RedirectPOSDevices([out] VARIANT_BOOL* pfRedirectPOSDevices); 562 HRESULT put_BitmapVirtualCache32BppSize(long pBitmapVirtualCache32BppSize); 563 HRESULT get_BitmapVirtualCache32BppSize([out] long* pBitmapVirtualCache32BppSize); 564 }; 565 566 interface ITSRemoteProgram : IDispatch { 567 HRESULT put_RemoteProgramMode(VARIANT_BOOL pvboolRemoteProgramMode); 568 HRESULT get_RemoteProgramMode([out] VARIANT_BOOL* pvboolRemoteProgramMode); 569 HRESULT ServerStartProgram(BSTR bstrExecutablePath, BSTR bstrFilePath, BSTR bstrWorkingDirectory, VARIANT_BOOL vbExpandEnvVarInWorkingDirectoryOnServer, BSTR bstrArguments, VARIANT_BOOL vbExpandEnvVarInArgumentsOnServer); 570 }; 571 572 interface IMsRdpClientShell : IDispatch { 573 HRESULT Launch(); 574 HRESULT put_RdpFileContents(BSTR pszRdpFile); 575 HRESULT get_RdpFileContents([out] BSTR* pszRdpFile); 576 HRESULT SetRdpProperty(BSTR szProperty, VARIANT Value); 577 HRESULT GetRdpProperty(BSTR szProperty, [out] VARIANT* pValue); 578 HRESULT get_IsRemoteProgramClientInstalled([out] VARIANT_BOOL* pbClientInstalled); 579 HRESULT put_PublicMode(VARIANT_BOOL pfPublicMode); 580 HRESULT get_PublicMode([out] VARIANT_BOOL* pfPublicMode); 581 HRESULT ShowTrustedSitesManagementDialog(); 582 }; 583 584 interface IMsRdpClient5 : IMsRdpClient4 { 585 HRESULT get_TransportSettings([out] IMsRdpClientTransportSettings** ppXportSet); 586 HRESULT get_AdvancedSettings6([out] IMsRdpClientAdvancedSettings5** ppAdvSettings); 587 HRESULT GetErrorDescription(UINT disconnectReason, UINT ExtendedDisconnectReason, [out] BSTR* pBstrErrorMsg); 588 HRESULT get_RemoteProgram([out] ITSRemoteProgram** ppRemoteProgram); 589 HRESULT get_MsRdpClientShell([out] IMsRdpClientShell** ppLauncher); 590 }; 591 592 interface IMsRdpDevice : IUnknown { 593 HRESULT get_DeviceInstanceId([out] BSTR* pDevInstanceId); 594 HRESULT get_FriendlyName([out] BSTR* pFriendlyName); 595 HRESULT get_DeviceDescription([out] BSTR* pDeviceDescription); 596 HRESULT put_RedirectionState(VARIANT_BOOL pvboolRedirState); 597 HRESULT get_RedirectionState([out] VARIANT_BOOL* pvboolRedirState); 598 }; 599 600 interface IMsRdpDeviceCollection : IUnknown { 601 HRESULT RescanDevices(VARIANT_BOOL vboolDynRedir); 602 HRESULT get_DeviceByIndex(ULONG index, [out] IMsRdpDevice** ppDevice); 603 HRESULT get_DeviceById(BSTR devInstanceId, [out] IMsRdpDevice** ppDevice); 604 HRESULT get_DeviceCount([out] ULONG* pDeviceCount); 605 }; 606 607 interface IMsRdpDrive : IUnknown { 608 HRESULT get_Name([out] BSTR* pName); 609 HRESULT put_RedirectionState(VARIANT_BOOL pvboolRedirState); 610 HRESULT get_RedirectionState([out] VARIANT_BOOL* pvboolRedirState); 611 }; 612 613 interface IMsRdpDriveCollection : IUnknown { 614 HRESULT RescanDrives(VARIANT_BOOL vboolDynRedir); 615 HRESULT get_DriveByIndex(ULONG index, [out] IMsRdpDrive** ppDevice); 616 HRESULT get_DriveCount([out] ULONG* pDriveCount); 617 }; 618 619 interface IMsRdpClientNonScriptable3 : IMsRdpClientNonScriptable2 { 620 HRESULT put_ShowRedirectionWarningDialog(VARIANT_BOOL pfShowRdrDlg); 621 HRESULT get_ShowRedirectionWarningDialog([out] VARIANT_BOOL* pfShowRdrDlg); 622 HRESULT put_PromptForCredentials(VARIANT_BOOL pfPrompt); 623 HRESULT get_PromptForCredentials([out] VARIANT_BOOL* pfPrompt); 624 HRESULT put_NegotiateSecurityLayer(VARIANT_BOOL pfNegotiate); 625 HRESULT get_NegotiateSecurityLayer([out] VARIANT_BOOL* pfNegotiate); 626 HRESULT put_EnableCredSspSupport(VARIANT_BOOL pfEnableSupport); 627 HRESULT get_EnableCredSspSupport([out] VARIANT_BOOL* pfEnableSupport); 628 HRESULT put_RedirectDynamicDrives(VARIANT_BOOL pfRedirectDynamicDrives); 629 HRESULT get_RedirectDynamicDrives([out] VARIANT_BOOL* pfRedirectDynamicDrives); 630 HRESULT put_RedirectDynamicDevices(VARIANT_BOOL pfRedirectDynamicDevices); 631 HRESULT get_RedirectDynamicDevices([out] VARIANT_BOOL* pfRedirectDynamicDevices); 632 HRESULT get_DeviceCollection([out] IMsRdpDeviceCollection** ppDeviceCollection); 633 HRESULT get_DriveCollection([out] IMsRdpDriveCollection** ppDeviceCollection); 634 HRESULT put_WarnAboutSendingCredentials(VARIANT_BOOL pfWarn); 635 HRESULT get_WarnAboutSendingCredentials([out] VARIANT_BOOL* pfWarn); 636 HRESULT put_WarnAboutClipboardRedirection(VARIANT_BOOL pfWarn); 637 HRESULT get_WarnAboutClipboardRedirection([out] VARIANT_BOOL* pfWarn); 638 HRESULT put_ConnectionBarText(BSTR pConnectionBarText); 639 HRESULT get_ConnectionBarText([out] BSTR* pConnectionBarText); 640 }; 641 642 interface IMsRdpClientAdvancedSettings6 : IMsRdpClientAdvancedSettings5 { 643 HRESULT put_RelativeMouseMode(VARIANT_BOOL pfRelativeMouseMode); 644 HRESULT get_RelativeMouseMode([out] VARIANT_BOOL* pfRelativeMouseMode); 645 HRESULT get_AuthenticationServiceClass([out] BSTR* pbstrAuthServiceClass); 646 HRESULT put_AuthenticationServiceClass(BSTR pbstrAuthServiceClass); 647 HRESULT get_PCB([out] BSTR* bstrPCB); 648 HRESULT put_PCB(BSTR bstrPCB); 649 HRESULT put_HotKeyFocusReleaseLeft(long HotKeyFocusReleaseLeft); 650 HRESULT get_HotKeyFocusReleaseLeft([out] long* HotKeyFocusReleaseLeft); 651 HRESULT put_HotKeyFocusReleaseRight(long HotKeyFocusReleaseRight); 652 HRESULT get_HotKeyFocusReleaseRight([out] long* HotKeyFocusReleaseRight); 653 HRESULT put_EnableCredSspSupport(VARIANT_BOOL pfEnableSupport); 654 HRESULT get_EnableCredSspSupport([out] VARIANT_BOOL* pfEnableSupport); 655 HRESULT get_AuthenticationType([out] UINT* puiAuthType); 656 HRESULT put_ConnectToAdministerServer(VARIANT_BOOL pConnectToAdministerServer); 657 HRESULT get_ConnectToAdministerServer([out] VARIANT_BOOL* pConnectToAdministerServer); 658 }; 659 660 interface IMsRdpClientTransportSettings2 : IMsRdpClientTransportSettings { 661 HRESULT put_GatewayCredSharing(ULONG pulProxyCredSharing); 662 HRESULT get_GatewayCredSharing([out] ULONG* pulProxyCredSharing); 663 HRESULT put_GatewayPreAuthRequirement(ULONG pulProxyPreAuthRequirement); 664 HRESULT get_GatewayPreAuthRequirement([out] ULONG* pulProxyPreAuthRequirement); 665 HRESULT put_GatewayPreAuthServerAddr(BSTR pbstrProxyPreAuthServerAddr); 666 HRESULT get_GatewayPreAuthServerAddr([out] BSTR* pbstrProxyPreAuthServerAddr); 667 HRESULT put_GatewaySupportUrl(BSTR pbstrProxySupportUrl); 668 HRESULT get_GatewaySupportUrl([out] BSTR* pbstrProxySupportUrl); 669 HRESULT put_GatewayEncryptedOtpCookie(BSTR pbstrEncryptedOtpCookie); 670 HRESULT get_GatewayEncryptedOtpCookie([out] BSTR* pbstrEncryptedOtpCookie); 671 HRESULT put_GatewayEncryptedOtpCookieSize(ULONG pulEncryptedOtpCookieSize); 672 HRESULT get_GatewayEncryptedOtpCookieSize([out] ULONG* pulEncryptedOtpCookieSize); 673 HRESULT put_GatewayUsername(BSTR pProxyUsername); 674 HRESULT get_GatewayUsername([out] BSTR* pProxyUsername); 675 HRESULT put_GatewayDomain(BSTR pProxyDomain); 676 HRESULT get_GatewayDomain([out] BSTR* pProxyDomain); 677 HRESULT put_GatewayPassword(BSTR _arg1); 678 }; 679 680 interface IMsRdpClient6 : IMsRdpClient5 { 681 HRESULT get_AdvancedSettings7([out] IMsRdpClientAdvancedSettings6** ppAdvSettings); 682 HRESULT get_TransportSettings2([out] IMsRdpClientTransportSettings2** ppXportSet2); 683 }; 684 685 interface IMsRdpClientNonScriptable4 : IMsRdpClientNonScriptable3 { 686 HRESULT put_RedirectionWarningType(RedirectionWarningType pWrnType); 687 HRESULT get_RedirectionWarningType([out] RedirectionWarningType* pWrnType); 688 HRESULT put_MarkRdpSettingsSecure(VARIANT_BOOL pfRdpSecure); 689 HRESULT get_MarkRdpSettingsSecure([out] VARIANT_BOOL* pfRdpSecure); 690 HRESULT put_PublisherCertificateChain(VARIANT* pVarCert); 691 HRESULT get_PublisherCertificateChain([out] VARIANT* pVarCert); 692 HRESULT put_WarnAboutPrinterRedirection(VARIANT_BOOL pfWarn); 693 HRESULT get_WarnAboutPrinterRedirection([out] VARIANT_BOOL* pfWarn); 694 HRESULT put_AllowCredentialSaving(VARIANT_BOOL pfAllowSave); 695 HRESULT get_AllowCredentialSaving([out] VARIANT_BOOL* pfAllowSave); 696 HRESULT put_PromptForCredsOnClient(VARIANT_BOOL pfPromptForCredsOnClient); 697 HRESULT get_PromptForCredsOnClient([out] VARIANT_BOOL* pfPromptForCredsOnClient); 698 HRESULT put_LaunchedViaClientShellInterface(VARIANT_BOOL pfLaunchedViaClientShellInterface); 699 HRESULT get_LaunchedViaClientShellInterface([out] VARIANT_BOOL* pfLaunchedViaClientShellInterface); 700 HRESULT put_TrustedZoneSite(VARIANT_BOOL pfIsTrustedZone); 701 HRESULT get_TrustedZoneSite([out] VARIANT_BOOL* pfIsTrustedZone); 702 }; 703 704 interface IMsRdpClientAdvancedSettings7 : IMsRdpClientAdvancedSettings6 { 705 HRESULT put_AudioCaptureRedirectionMode(VARIANT_BOOL pfRedir); 706 HRESULT get_AudioCaptureRedirectionMode([out] VARIANT_BOOL* pfRedir); 707 HRESULT put_VideoPlaybackMode(UINT pVideoPlaybackMode); 708 HRESULT get_VideoPlaybackMode([out] UINT* pVideoPlaybackMode); 709 HRESULT put_EnableSuperPan(VARIANT_BOOL pfEnableSuperPan); 710 HRESULT get_EnableSuperPan([out] VARIANT_BOOL* pfEnableSuperPan); 711 HRESULT put_SuperPanAccelerationFactor(ULONG puAccelFactor); 712 HRESULT get_SuperPanAccelerationFactor([out] ULONG* puAccelFactor); 713 HRESULT put_NegotiateSecurityLayer(VARIANT_BOOL pfNegotiate); 714 HRESULT get_NegotiateSecurityLayer([out] VARIANT_BOOL* pfNegotiate); 715 HRESULT put_AudioQualityMode(UINT pAudioQualityMode); 716 HRESULT get_AudioQualityMode([out] UINT* pAudioQualityMode); 717 HRESULT put_RedirectDirectX(VARIANT_BOOL pfRedirectDirectX); 718 HRESULT get_RedirectDirectX([out] VARIANT_BOOL* pfRedirectDirectX); 719 HRESULT put_NetworkConnectionType(UINT pConnectionType); 720 HRESULT get_NetworkConnectionType([out] UINT* pConnectionType); 721 }; 722 723 interface IMsRdpClientTransportSettings3 : IMsRdpClientTransportSettings2 { 724 HRESULT put_GatewayCredSourceCookie(ULONG pulProxyCredSourceCookie); 725 HRESULT get_GatewayCredSourceCookie([out] ULONG* pulProxyCredSourceCookie); 726 HRESULT put_GatewayAuthCookieServerAddr(BSTR pbstrProxyAuthCookieServerAddr); 727 HRESULT get_GatewayAuthCookieServerAddr([out] BSTR* pbstrProxyAuthCookieServerAddr); 728 HRESULT put_GatewayEncryptedAuthCookie(BSTR pbstrEncryptedAuthCookie); 729 HRESULT get_GatewayEncryptedAuthCookie([out] BSTR* pbstrEncryptedAuthCookie); 730 HRESULT put_GatewayEncryptedAuthCookieSize(ULONG pulEncryptedAuthCookieSize); 731 HRESULT get_GatewayEncryptedAuthCookieSize([out] ULONG* pulEncryptedAuthCookieSize); 732 HRESULT put_GatewayAuthLoginPage(BSTR pbstrProxyAuthLoginPage); 733 HRESULT get_GatewayAuthLoginPage([out] BSTR* pbstrProxyAuthLoginPage); 734 }; 735 736 interface IMsRdpClientSecuredSettings2 : IMsRdpClientSecuredSettings { 737 HRESULT get_PCB([out] BSTR* bstrPCB); 738 HRESULT put_PCB(BSTR bstrPCB); 739 }; 740 741 interface ITSRemoteProgram2 : ITSRemoteProgram { 742 HRESULT put_RemoteApplicationName(BSTR _arg1); 743 HRESULT put_RemoteApplicationProgram(BSTR _arg1); 744 HRESULT put_RemoteApplicationArgs(BSTR _arg1); 745 }; 746 747 interface IMsRdpClient7 : IMsRdpClient6 { 748 HRESULT get_AdvancedSettings8([out] IMsRdpClientAdvancedSettings7** ppAdvSettings); 749 HRESULT get_TransportSettings3([out] IMsRdpClientTransportSettings3** ppXportSet3); 750 HRESULT GetStatusText(UINT statusCode, [out] BSTR* pBstrStatusText); 751 HRESULT get_SecuredSettings3([out] IMsRdpClientSecuredSettings2** ppSecuredSettings); 752 HRESULT get_RemoteProgram2([out] ITSRemoteProgram2** ppRemoteProgram); 753 }; 754 755 interface IMsRdpClientNonScriptable5 : IMsRdpClientNonScriptable4 { 756 HRESULT put_UseMultimon(VARIANT_BOOL pfUseMultimon); 757 HRESULT get_UseMultimon([out] VARIANT_BOOL* pfUseMultimon); 758 HRESULT get_RemoteMonitorCount([out] ULONG* pcRemoteMonitors); 759 HRESULT GetRemoteMonitorsBoundingBox(/*[out]*/ long* pLeft, /*[out]*/ long* pTop, /*[out]*/ long* pRight, /*[out]*/ long* pBottom); 760 HRESULT get_RemoteMonitorLayoutMatchesLocal([out] VARIANT_BOOL* pfRemoteMatchesLocal); 761 HRESULT put_DisableConnectionBar(VARIANT_BOOL _arg1); 762 HRESULT put_DisableRemoteAppCapsCheck(VARIANT_BOOL pfDisableRemoteAppCapsCheck); 763 HRESULT get_DisableRemoteAppCapsCheck([out] VARIANT_BOOL* pfDisableRemoteAppCapsCheck); 764 HRESULT put_WarnAboutDirectXRedirection(VARIANT_BOOL pfWarn); 765 HRESULT get_WarnAboutDirectXRedirection([out] VARIANT_BOOL* pfWarn); 766 HRESULT put_AllowPromptingForCredentials(VARIANT_BOOL pfAllow); 767 HRESULT get_AllowPromptingForCredentials([out] VARIANT_BOOL* pfAllow); 768 }; 769 770 interface IMsRdpPreferredRedirectionInfo : IUnknown { 771 HRESULT put_UseRedirectionServerName(VARIANT_BOOL pVal); 772 HRESULT get_UseRedirectionServerName([out] VARIANT_BOOL* pVal); 773 }; 774 775 interface IMsRdpExtendedSettings : IUnknown { 776 HRESULT put_Property(BSTR bstrPropertyName, VARIANT* pValue); 777 HRESULT get_Property(BSTR bstrPropertyName, [out] VARIANT* pValue); 778 }; 779 780 interface IMsRdpClientAdvancedSettings8 : IMsRdpClientAdvancedSettings7 { 781 HRESULT put_BandwidthDetection(VARIANT_BOOL pfAutodetect); 782 HRESULT get_BandwidthDetection([out] VARIANT_BOOL* pfAutodetect); 783 HRESULT put_ClientProtocolSpec(ClientSpec pClientMode); 784 HRESULT get_ClientProtocolSpec([out] ClientSpec* pClientMode); 785 }; 786 787 interface IMsRdpClient8 : IMsRdpClient7 { 788 HRESULT SendRemoteAction(RemoteSessionActionType actionType); 789 HRESULT get_AdvancedSettings9([out] IMsRdpClientAdvancedSettings8** ppAdvSettings); 790 HRESULT Reconnect(ULONG ulWidth, ULONG ulHeight, [out] ControlReconnectStatus* pReconnectStatus); 791 }; 792 793 interface IRemoteDesktopClientEvents : IDispatch { 794 HRESULT OnConnecting(); 795 HRESULT OnConnected(); 796 HRESULT OnLoginCompleted(); 797 HRESULT OnDisconnected(long disconnectReason, long ExtendedDisconnectReason, BSTR disconnectErrorMessage); 798 HRESULT OnStatusChanged(long statusCode, BSTR statusMessage); 799 HRESULT OnAutoReconnecting(long disconnectReason, long ExtendedDisconnectReason, BSTR disconnectErrorMessage, VARIANT_BOOL networkAvailable, long attemptCount, long maxAttemptCount); 800 HRESULT OnAutoReconnected(); 801 HRESULT OnDialogDisplaying(); 802 HRESULT OnDialogDismissed(); 803 HRESULT OnNetworkStatusChanged(ULONG qualityLevel, long bandwidth, long rtt); 804 HRESULT OnAdminMessageReceived(BSTR adminMessage); 805 HRESULT OnKeyCombinationPressed(long keyCombination); 806 HRESULT OnRemoteDesktopSizeChanged(long width, long height); 807 HRESULT OnTouchPointerCursorMoved(long x, long y); 808 }; 809 810 interface IRemoteDesktopClientSettings : IDispatch { 811 HRESULT ApplySettings(BSTR RdpFileContents); 812 HRESULT RetrieveSettings([out] BSTR* RdpFileContents); 813 HRESULT GetRdpProperty(BSTR propertyName, [out] VARIANT* Value); 814 HRESULT SetRdpProperty(BSTR propertyName, VARIANT Value); 815 }; 816 817 interface IRemoteDesktopClientActions : IDispatch { 818 HRESULT SuspendScreenUpdates(); 819 HRESULT ResumeScreenUpdates(); 820 HRESULT ExecuteRemoteAction(RemoteActionType remoteAction); 821 HRESULT GetSnapshot(SnapshotEncodingType snapshotEncoding, SnapshotFormatType snapshotFormat, ULONG snapshotWidth, ULONG snapshotHeight, [out] BSTR* snapshotData); 822 }; 823 824 interface IRemoteDesktopClientTouchPointer : IDispatch { 825 HRESULT put_Enabled(VARIANT_BOOL Enabled); 826 HRESULT get_Enabled([out] VARIANT_BOOL* Enabled); 827 HRESULT put_EventsEnabled(VARIANT_BOOL EventsEnabled); 828 HRESULT get_EventsEnabled([out] VARIANT_BOOL* EventsEnabled); 829 HRESULT put_PointerSpeed(ULONG PointerSpeed); 830 HRESULT get_PointerSpeed([out] ULONG* PointerSpeed); 831 }; 832 833 interface IRemoteDesktopClient : IDispatch { 834 HRESULT Connect(); 835 HRESULT Disconnect(); 836 HRESULT Reconnect(ULONG width, ULONG height); 837 HRESULT get_Settings([out] IRemoteDesktopClientSettings** Settings); 838 HRESULT get_Actions([out] IRemoteDesktopClientActions** Actions); 839 HRESULT get_TouchPointer([out] IRemoteDesktopClientTouchPointer** TouchPointer); 840 HRESULT DeleteSavedCredentials(BSTR serverName); 841 }; 842 843 interface IMsRdpSessionManager : IUnknown { 844 HRESULT StartRemoteApplication(SAFEARRAY* psaCreds, SAFEARRAY* psaParams, long lFlags); 845 HRESULT GetProcessId([out] ULONG* pulProcessId); 846 }; 847 848 HRESULT DllGetClassObject(REFCLSID rclsid, [iid] REFIID riid, [out] COM_INTERFACE_PTR* ppv); 849