SmartFTP FTP Library
sfFTPLib.idl
Go to the documentation of this file.
1// sfFTPLib.idl : IDL source for sfFTPLib
2//
3// This file will be processed by the MIDL tool to
4// produce the type library (sfFTPLib.tlb) and marshalling code.
5//
6// Notes:
7// - .NET doesn't like defaultvalue(0)
8
9#include <olectl.h> // DISPID_*
10import "oaidl.idl";
11import "ocidl.idl";
12import "propidl.idl"; // REFPROPVARIANT
13import "propsys.idl"; // IPropertyStore
14#include <WinError.h> // MAKE_HRESULT
15
17// warning MIDL2362 : too many methods in the interface, requires Windows NT 4.0 SP3 or greater.
18midl_pragma warning( disable: 2362 )
20
30typedef [v1_enum] enum FTPProtocol
31{
37 [helpstring("Standard unencrypted FTP")]
39
46 [helpstring("Legacy Implicit TLS")]
48
56 [helpstring("Explicit TLS (Mandatory)")]
58
67 [helpstring("Explicit TLS (Opportunistic)")]
70
71typedef [v1_enum] enum ProxyType
72{
77 [helpstring("Direct connection (No Proxy)")]
79
85 [helpstring("SOCKS5 Proxy")]
87
93 [helpstring("SOCKS4 Proxy")]
95
101 [helpstring("SOCKS4A Proxy")]
103
110 [helpstring("HTTP Tunneling (CONNECT method)")]
113
129// TODO: rename to FTPPortMode
130typedef [v1_enum] enum PortMode
131{
139 [helpstring("PortMode ftpPortMode Default")]
141
149 [helpstring("PortMode ftpPortMode Manual")]
152
156// TODO: rename to FTPPassiveIPMode
157typedef [v1_enum] enum PassiveMode
158{
167 [helpstring("PassiveMode ftpPassiveMode UseIPFromReply")]
169
177 [helpstring("PassiveMode ftpPassiveMode UseHostIP")]
179
187 [helpstring("PassiveMode ftpPassiveMode Auto")]
190
197// TODO: rename to FTPDataTransferType
198typedef [v1_enum] enum DataTransferType
199{
200 [helpstring("Unknown data transfer type")]
202
213 [helpstring("ASCII data transfer type")]
215
224 [helpstring("Image (Binary) data transfer type")]
226
235 [helpstring("EBCDIC data transfer type")]
238
249 // TODO: rename to FTPDataTransferMode
250typedef [v1_enum] enum DataTransferMode
251{
255 [helpstring("Unknown transfer mode")]
257
269 [helpstring("Standard Stream transfer mode")]
271
286 [helpstring("Compressed transfer mode")]
289
298// TODO: rename to FTPDataProtection
299typedef [v1_enum] enum DataProtection
300{
301 [helpstring("DataProtection ftpDataProtection Unknown")]
303
307 [helpstring("Clear (disabled)")]
309
313 [helpstring("Private (enabled)")]
316
317typedef [v1_enum] enum ProtocolFamily
318{
322 [helpstring("Unspecified")]
324
328 [helpstring("IPv4")]
330
334 [helpstring("IPv6")]
337
338typedef [v1_enum] enum ServerCapability
339{
340 [helpstring("ServerCapability ftpServerCapability GetFileSize")]
342
343 [helpstring("ServerCapability ftpServerCapability GetModifyTime")]
345
346 [helpstring("ServerCapability ftpServerCapability GetCreateTime")]
348
349 [helpstring("ServerCapability ftpServerCapability SetModifyTime")]
351
352 [helpstring("ServerCapability ftpServerCapability SetCreateTime")]
354
355 [helpstring("ServerCapability ftpServerCapability CopyFile")]
357
358 [helpstring("ServerCapability ftpServerCapability FXPFile")]
360
361 [helpstring("ServerCapability ftpServerCapability Stat")]
363
364 [helpstring("ServerCapability ftpServerCapability MLST")]
366
367 [helpstring("ServerCapability ftpServerCapability SetUnixPermissions")]
369
370 [helpstring("ServerCapability ftpServerCapability Restart")]
372
373 [helpstring("ServerCapability ftpServerCapability UTF8")]
375
376 [helpstring("ServerCapability ftpServerCapability Compression")]
378
379 [helpstring("ServerCapability ftpServerCapability Range")]
381
382 [helpstring("ServerCapability ftpServerCapability MachineReadableList")]
385
386typedef [v1_enum] enum ServerCapabilityState
387{
388 [helpstring("Unavailable")]
390
391 [helpstring("Available")]
393
394 [helpstring("Unknown")]
397
407typedef [v1_enum] enum CaseSensitivity
408{
414 [helpstring("Unknown")]
416
426 [helpstring("Case-sensitive")]
428
438 [helpstring("Case-insensitive")]
441
442typedef [v1_enum] enum ParserFormat
443{
444 [helpstring("Unknown")] ftpParserFormatUnknown = 0,
445 [helpstring("Unix")] ftpParserFormatUnix = 1,
446 [helpstring("MLST")] ftpParserFormatMLST = 2,
447 [helpstring("VMS")] ftpParserFormatVMS = 3,
448 [helpstring("VxWorks")] ftpParserFormatVxWorks = 4,
449 [helpstring("DOS")] ftpParserFormatDOS = 5,
450 [helpstring("Tandem")] ftpParserFormatTandem = 6,
451 [helpstring("VOS")] ftpParserFormatVOS = 7,
452 [helpstring("MVS")] ftpParserFormatMVS = 8,
453 [helpstring("AS400")] ftpParserFormatAS400 = 9,
454 [helpstring("OS2")] ftpParserFormatOS2 = 10,
455 [helpstring("Netware")] ftpParserFormatNetware = 11,
456 [helpstring("pSOSystem")] ftpParserFormatpSOSystem = 12,
457 [helpstring("NT")] ftpParserFormatNT = 13,
458 [helpstring("MD11")] ftpParserFormatMD11 = 14,
459 [helpstring("BS2000")] ftpParserFormatBS2000 = 15,
460 [helpstring("VM")] ftpParserFormatVM = 16,
461 [helpstring("ConnectEnterprise")] ftpParserFormatConnectEnterprise = 17,
462 [helpstring("GrassValley")] ftpParserFormatGrassValley = 18,
463 [helpstring("Simple")] ftpParserFormatSimple = 19,
464 [helpstring("GXSEnterprise")] ftpParserFormatGXSEnterprise = 20,
465 [helpstring("GXSInformationExchangeFTPGateway")] ftpParserFormatGXSInformationExchangeFTPGateway = 21,
466 [helpstring("SecurePortal2000")] ftpParserFormatSecurePortal2000 = 22,
467 [helpstring("Meditech")] ftpParserFormatMeditech = 23,
469
484typedef [v1_enum] enum ServerType {
488 [helpstring("Unknown")]
490
498 [helpstring("Unix")]
500
505 [helpstring("Peter Lewis")]
507
514 [helpstring("VMS")]
516
524 [helpstring("Windows NT")]
526
530 [helpstring("Amiga")]
532
536 [helpstring("Legacy Classic Mac OS")]
538
543 [helpstring("IBM MVS")]
545
550 [helpstring("IBM AS/400")]
552
556 [helpstring("OS/2")]
558
562 [helpstring("HP NonStop (Tandem)")]
564
568 [helpstring("Stratus VOS")]
570
574 [helpstring("McDonnell Douglas MD-11 Avionics system")]
576
580 [helpstring("pSOSystem")]
582
587 [helpstring("Novell Netware")]
589
590 // --- Specialized / Embedded Systems ---
591
592 [helpstring("TNTEmbeddedToolSuite")]
594
595 [helpstring("BS2000")]
596 ftpServerTypeBS2000 = 16, // Siemens Mainframe
597
598 [helpstring("VM")]
599 ftpServerTypeVM = 17, // IBM VM/CMS
600
601 [helpstring("VxWorks")]
602 ftpServerTypeVxWorks = 18, // Wind River RTOS
603
604 [helpstring("Windows CE")]
605 ftpServerTypeWindowsCE = 19, // Embedded Windows
606
607 [helpstring("GXS Enterprise")]
608 ftpServerTypeGXSEnterprise = 20, // GXS Enterprise
609
610 [helpstring("Interchange Services")]
611 ftpServerTypeICS = 21, // Interchange Services Batch FTP server
612
613 [helpstring("GrassValley")]
614 ftpServerTypeGrassValley = 22, // Broadcast media servers
615
616 [helpstring("GXS Information Exchange")]
617 ftpServerTypeGXSInformationExchangeFTPGateway = 23, // GXS Information Exchange FTP Gateway
618
619 [helpstring("SecurePortal2000")]
621
625 [helpstring("Multi-User Dungeon Object System (LPMud)")]
627
629
634typedef [v1_enum] enum ServerSoftware
635{
636 [helpstring("Unknown")] ftpServerSoftwareUnknown = 0,
637 [helpstring("RaidenFTPd")] ftpServerSoftwareRaidenFTPd = 1,
638 [helpstring("ServU")] ftpServerSoftwareServU = 2,
639 [helpstring("GSFTPS")] ftpServerSoftwareGSFTPS = 3,
640 [helpstring("WSFTP")] ftpServerSoftwareWSFTP = 4,
641 [helpstring("PureFTPd")] ftpServerSoftwarePureFTPd = 5,
642 [helpstring("GuildFTPd")] ftpServerSoftwareGuildFTPd = 6,
643 [helpstring("Titan")] ftpServerSoftwareTitan = 7,
644 [helpstring("Orenosv")] ftpServerSoftwareOrenosv = 8,
645 [helpstring("DrFTPd")] ftpServerSoftwareDrFTPd = 9,
646 [helpstring("moftpd")] ftpServerSoftwaremoftpd = 10,
647 [helpstring("glftpd")] ftpServerSoftwareglftpd = 11,
648 [helpstring("NcFTPd")] ftpServerSoftwareNcFTPd = 12,
649 [helpstring("SurgeFTP")] ftpServerSoftwareSurgeFTP = 13,
650 [helpstring("Blackmoon")] ftpServerSoftwareBlackmoon = 14,
651 [helpstring("WarFTPd")] ftpServerSoftwareWarFTPd = 15,
652 [helpstring("WFTPD")] ftpServerSoftwareWFTPD = 16,
653 [helpstring("ShareIt")] ftpServerSoftwareShareIt = 17,
654 [helpstring("Gene6")] ftpServerSoftwareGene6 = 18,
655// [helpstring("VxWorks")] ftpServerSoftwareVxWorks = 19,
656 [helpstring("NoFeel")] ftpServerSoftwareNoFeel = 20,
657 [helpstring("MOVEit")] ftpServerSoftwareMOVEit = 21,
658 [helpstring("iNEWS")] ftpServerSoftwareiNEWS = 22,
659 [helpstring("Fastream")] ftpServerSoftwareFastream = 23,
660 [helpstring("ConnectEnterprise")] ftpServerSoftwareConnectEnterprise = 24,
661 [helpstring("MicrosoftFTP")] ftpServerSoftwareMicrosoftFTP = 25,
662 [helpstring("OracleXMLDB")] ftpServerSoftwareOracleXMLDB = 26,
663 [helpstring("FileZilla")] ftpServerSoftwareFileZilla = 27,
664 [helpstring("ProFTPD")] ftpServerSoftwareProFTPD = 28,
665 [helpstring("SnapOS")] ftpServerSoftwareSnapOS = 29,
666 [helpstring("MacOSX")] ftpServerSoftwareMacOSX = 30,
667 [helpstring("cuftpd")] ftpServerSoftwarecuftpd = 31,
668 [helpstring("CerberusFTPServer")] ftpServerSoftwareCerberusFTPServer = 32,
669 [helpstring("zOS")] ftpServerSoftwarezOS = 33,
670 [helpstring("HumaxiCord")] ftpServerSoftwareHumaxiCord = 34,
671 [helpstring("Mtcp")] ftpServerSoftwareMtcp = 35,
672 [helpstring("Ps3")] ftpServerSoftwarePs3 = 36,
673 [helpstring("Meditech")] ftpServerSoftwareMeditech = 37,
674 [helpstring("CleoVLTrader")] ftpServerSoftwareCleoVLTrader = 38,
675 [helpstring("WebMethods")] ftpServerSoftwareWebMethods = 39,
676 [helpstring("JustCloud")] ftpServerSoftwareJustCloud = 40,
677 [helpstring("MultiNet")] ftpServerSoftwareMultiNet = 41,
678 [helpstring("TransCore")] ftpServerSoftwareTransCore = 42,
679 [helpstring("TopfieldPVR")] ftpServerSoftwareTopfieldPVR = 43
681
682typedef [v1_enum] enum OperatingSystem
683{
691 [helpstring("Unknown")] ftpOperatingSystemUnknown = 0,
692
696 [helpstring("Windows")] ftpOperatingSystemWindows = 1,
697
701 [helpstring("Unix")] ftpOperatingSystemUnix = 2,
702
711 [helpstring("VMS")] ftpOperatingSystemVMS = 3
713
715
722// TODO: property missing in IFTPConnection
723// Used by FTP::OperationSetModifyTime
724typedef [v1_enum] enum FTPSetFileTimeCommand
725{
729 [helpstring("Unknown")]
730 ftpSetFileTimeCommandUnknown = 0,
731
737 [helpstring("Auto")]
738 ftpSetFileTimeCommandAuto = 1,
739
744 [helpstring("MFMT")]
745 ftpSetFileTimeCommandMFMT = 2,
746
753 [helpstring("MDTM")]
754 ftpSetFileTimeCommandMDTM = 3,
755
760 [helpstring("MFF")]
761 ftpSetFileTimeCommandMFF = 6
762} SetFileTimeCommand;
764
765typedef [v1_enum] enum StatusEventType
766{
767 [helpstring("LocalCommand")]
769
770 [helpstring("LocalInfo")]
772
773 [helpstring("LocalError")]
775
776 [helpstring("Remote")]
779
780typedef [v1_enum] enum ConnectionStatus
781{
782 [helpstring("Unknown")]
784
785 [helpstring("Connecting")]
787
788 [helpstring("Connected")]
790
791 [helpstring("Disconnecting")]
793
794 [helpstring("Disconnected")]
797
798typedef [v1_enum] enum SFTPConnectionStatus
799{
803 [helpstring("Unknown")]
805
814 [helpstring("Init")]
816
825 [helpstring("Closing")]
828
829typedef [v1_enum] enum LogFormat
830{
831 [helpstring("Unicode")]
833
834 [helpstring("UTF8")]
837
838typedef [v1_enum] enum HashAlgo
839{
840 [helpstring("Unknown")] ftpHashAlgoUnknown = 0,
841 [helpstring("CRC32")] ftpHashAlgoCRC32 = 1,
842 [helpstring("MD5")] ftpHashAlgoMD5= 2,
843 [helpstring("SHA1")] ftpHashAlgoSHA1 = 3,
844 [helpstring("SHA256")] ftpHashAlgoSHA256 = 4,
845 [helpstring("SHA384")] ftpHashAlgoSHA384 = 5,
846 [helpstring("SHA512")] ftpHashAlgoSHA512 = 6,
847 [helpstring("Microsoft QuickXorHash")] ftpHashAlgoMicrosoftQuickXorHash = 7
849
851// Internal use only: FTP::OperationTransfer
852typedef [v1_enum] enum FTPDataMethod
853{
854 [helpstring("Unknown")]
855 ftpDataMethodUnknown = 0,
856
857 [helpstring("Active")]
858 ftpDataMethodActive = 1,
859
860 [helpstring("Passive")]
861 ftpDataMethodPassive = 2
862} FTPDataMethod;
864
873typedef [v1_enum] enum KeyExchange
874{
875 [helpstring("KeyExchange Unknown")]
877
887 [helpstring("KeyExchange DiffieHellmanGroup14SHA1")]
889
899 [helpstring("KeyExchange DiffieHellmanGroupExchangeSHA1")]
901
910 [helpstring("KeyExchange DiffieHellmanGroupExchangeSHA256")]
912
921 [helpstring("KeyExchange DiffieHellmanGroup14SHA256")]
923
933 [helpstring("KeyExchange DiffieHellmanGroup16SHA512")]
935
943 [helpstring("KeyExchange ECDH256")]
945
952 [helpstring("KeyExchange ECDH384")]
954
961 [helpstring("KeyExchange ECDH521")]
963
972 [helpstring("KeyExchange Curve25519")]
974
982 [helpstring("KeyExchange Curve25519libssh")]
984
994 [helpstring("KeyExchange MlKem768x25519")]
997
1006typedef [v1_enum] enum Encryption
1007{
1011 [helpstring("Unknown")]
1013
1014 // -------------------------------------------------------------------------
1015 // Legacy / Deprecated (Avoid)
1016 // -------------------------------------------------------------------------
1017
1025 [helpstring("Triple-DES (3DES)")]
1027
1035 [helpstring("AES in Cipher Block Chaining (CBC) mode (128-bit)")]
1037
1042 [helpstring("AES in Cipher Block Chaining (CBC) mode (192-bit)")]
1044
1049 [helpstring("AES in Cipher Block Chaining (CBC) mode (256-bit)")]
1051
1052 // -------------------------------------------------------------------------
1053 // Standard (Safe)
1054 // -------------------------------------------------------------------------
1055
1063 [helpstring("AES in Counter (CTR) mode (128-bit)")]
1065
1069 [helpstring("AES in Counter (CTR) mode (192-bit)")]
1071
1075 [helpstring("AES in Counter (CTR) mode (256-bit)")]
1077
1078 // -------------------------------------------------------------------------
1079 // Modern / High Performance (Recommended)
1080 // -------------------------------------------------------------------------
1081
1089 [helpstring("AES in Galois/Counter Mode (GCM) (128-bit)")]
1091
1099 [helpstring("AES in Galois/Counter Mode (GCM) (256-bit)")]
1101
1110 [helpstring("ChaCha20 with Poly1305 MAC")]
1113
1130typedef [v1_enum] enum HMAC
1131{
1132 [helpstring("Unknown")]
1134
1139 [helpstring("hmac-sha1: HMAC SHA1")]
1141
1146 [helpstring("none: HMAC None")]
1148
1153 [helpstring("hmac-sha2-256: HMAC SHA2-256")]
1155
1160 [helpstring("hmac-sha2-512: HMAC SHA2-512")]
1162
1167 [helpstring("hmac-sha2-256-etm@openssh.com: HMAC SHA2-256 EtM")]
1169
1174 [helpstring("hmac-sha2-512-etm@openssh.com: HMAC SHA2-512 EtM")]
1177
1184typedef [v1_enum] enum SSHCompression
1185{
1186 [helpstring("Unknown: Unspecified or invalid compression method.")]
1188
1192 [helpstring("none: No compression.")]
1194
1205 [helpstring("zlib@openssh.com: Delayed zlib compression.")]
1208
1216typedef [v1_enum] enum FeatureDiscoveryMode
1217{
1223 [helpstring("FeatureDiscoveryMode ftpFeatureDiscoveryMode AfterLogin")]
1225
1232 [helpstring("FeatureDiscoveryMode ftpFeatureDiscoveryMode BeforeAndAfterLogin")]
1235
1243[
1244 object,
1245 uuid(05692BAF-A61B-4692-AB93-58108D48994D),
1246 dual,
1247 oleautomation,
1248 nonextensible,
1249 helpstring("IGlobal Interface"),
1250 pointer_default(unique)
1251]
1252interface IGlobal : IDispatch
1253{
1262 [propget, id(1), helpstring("property Version")] HRESULT Version([out, retval] BSTR* retval);
1263
1275 [propput, id(4), helpstring("property FIPS")] HRESULT FIPS([in] VARIANT_BOOL newValue);
1276 [propget, id(4), helpstring("property FIPS")] HRESULT FIPS([out, retval] VARIANT_BOOL* retval);
1277
1286 [propget, id(7), helpstring("property TotalBytesReceived")] HRESULT TotalBytesReceived([out, retval] ULONGLONG *retval);
1287
1296 [propget, id(8), helpstring("property TotalBytesSent")] HRESULT TotalBytesSent([out, retval] ULONGLONG *retval);
1297
1310 [propput, id(9), helpstring("property ActivationUrl")] HRESULT ActivationUrl([in] BSTR newVal);
1311 [propget, id(9), helpstring("property ActivationUrl")] HRESULT ActivationUrl([out, retval] BSTR *retval);
1312
1328 [id(12), helpstring("method LoadLicense")] HRESULT LoadLicense([in] BSTR productKey);
1329
1331// [id(13), helpstring("method GetActivationRequest")] GetActivationRequest([out] BSTR* activationRequest);
1332// [id(14), helpstring("method HandleActivationResponse")] HandleActivationResponse([in] BSTR activationResponse);
1334};
1335
1348[ uuid(2F818839-9A89-4821-BBFA-DCB242646EF2),
1349 object,
1350 oleautomation,
1351 dual,
1352 nonextensible,
1353 helpstring("IFTPPortPool Interface"),
1354 pointer_default(unique)
1355]
1356interface IFTPPortPool : IDispatch
1357{
1366 [propget, id(1), helpstring("property MinPort")]
1367 HRESULT MinPort([out, retval] long* retval);
1368
1377 [propget, id(2), helpstring("property MaxPort")]
1378 HRESULT MaxPort([out, retval] long* retval);
1379
1392 [id(100), helpstring("method NextPort")]
1393 HRESULT NextPort([out, retval] long* retval);
1394
1410 [id(101), helpstring("method SetPortRange")]
1411 HRESULT SetPortRange([in] long minPort, [in] long maxPort);
1412};
1413
1414[
1415 object,
1416 uuid(00EF4F3A-9300-4FB7-BC27-7F13D6E1D9BD),
1417 dual,
1418 oleautomation,
1419 nonextensible,
1420 helpstring("IGlobalSpeedLimit Interface"),
1421 pointer_default(unique)
1422]
1423interface IGlobalSpeedLimit : IDispatch
1424{
1438 [propget, id(1), helpstring("property UploadSpeedLimit")]
1439 HRESULT UploadSpeedLimit([out, retval] long* retval);
1440 [propput, id(1), helpstring("property UploadSpeedLimit")]
1441 HRESULT UploadSpeedLimit([in] long newValue);
1442
1456 [propget, id(2), helpstring("property DownloadSpeedLimit")]
1457 HRESULT DownloadSpeedLimit([out, retval] long* retval);
1458 [propput, id(2), helpstring("property DownloadSpeedLimit")]
1459 HRESULT DownloadSpeedLimit([in] long newValue);
1460};
1461
1474typedef [v1_enum] enum ItemType {
1479 [helpstring("ItemType ftpItemType RegularFile")]
1481
1485 [helpstring("ItemType ftpItemType Directory")]
1487
1492 [helpstring("ItemType ftpItemType SymbolicLink")]
1494
1498 [helpstring("ItemType ftpItemType Special")]
1500
1506 [helpstring("ItemType ftpItemType Unknown")]
1508
1513 [helpstring("ItemType ftpItemType FIFO")]
1515
1521 [helpstring("ItemType ftpItemType CharacterDevice")]
1523
1529 [helpstring("ItemType ftpItemType BlockDevice")]
1531
1536 [helpstring("ItemType ftpItemType Socket")]
1538
1540
1556[
1557 object,
1558 uuid(6E66C7AD-703F-410F-92E6-BB98A702D073),
1559 oleautomation,
1560 dual,
1561 nonextensible,
1562 helpstring("ISecurityConnectionInfo Interface"),
1563 pointer_default(unique)
1564]
1565interface ISecurityConnectionInfo : IDispatch
1566{
1574 [propget, id(1), helpstring("property Protocol")]
1575 HRESULT Protocol([out, retval] long* retval);
1576
1582 [propget, id(2), helpstring("property CipherAlgo")]
1583 HRESULT CipherAlgo([out, retval] BSTR* retval);
1584
1593 [propget, id(3), helpstring("property CipherStrength")]
1594 HRESULT CipherStrength([out, retval] long* retval);
1595
1601 [propget, id(4), helpstring("property HashAlgo")]
1602 HRESULT HashAlgo([out, retval] BSTR* retval);
1603
1609 [propget, id(5), helpstring("property HashStrength")]
1610 HRESULT HashStrength([out, retval] long* retval);
1611
1617 [propget, id(6), helpstring("property ExchangeAlgo")]
1618 HRESULT ExchangeAlgo([out, retval] BSTR* retval);
1619
1626 [propget, id(7), helpstring("property ExchangeStrength")]
1627 HRESULT ExchangeStrength([out, retval] long* retval);
1628};
1629
1630[
1631 object,
1632 uuid(B11A9B35-27A7-4387-B089-B1B632A8059F),
1633 nonextensible,
1634 pointer_default(unique)
1635]
1636interface IStreamFilter : IUnknown
1637{
1638 // Do not use a IStream as argument otherwise the proxy stubs for IStream and ISequentialStream are generated which is not what we want
1639 // This is the case because the manifest adds <comInterfaceExternalProxyStub > for IStream
1640 HRESULT Initialize([in] IStream* stream);
1641 HRESULT Uninitialize();
1642 HRESULT GetStream([out] IStream** stream);
1643};
1644
1645[
1646 object,
1647 uuid(411899B9-5F68-40EF-BE59-044A393C34A2),
1648 nonextensible,
1649 pointer_default(unique)
1650]
1651interface IStreamFilterInfo : IUnknown
1652{
1653 [propget] HRESULT AlignSize([out, retval] long* retval);
1654};
1655
1660[
1661 object,
1662 uuid(44875A47-88B4-4310-A777-5A63261355EE),
1663 oleautomation,
1664 dual,
1665 nonextensible,
1666 helpstring("IFTPClientId Interface"),
1667 pointer_default(unique)
1668]
1669interface IFTPClientId : IDispatch
1670{
1683 [propput, id(1), helpstring("property Name")]
1684 HRESULT Name([in] BSTR newValue);
1685 [propget, id(1), helpstring("property Name")]
1686 HRESULT Name([out, retval] BSTR* retval);
1687
1700 [propput, id(2), helpstring("property Version")]
1701 HRESULT Version([in] BSTR newValue);
1702 [propget, id(2), helpstring("property Version")]
1703 HRESULT Version([out, retval] BSTR* retval);
1704};
1705
1715[
1716 object,
1717 uuid(CDEE9011-5363-455A-BD11-E3C49CECDB3F),
1718 oleautomation,
1719 dual,
1720 nonextensible,
1721 helpstring("IFTPServerId Interface"),
1722 pointer_default(unique)
1723]
1724interface IFTPServerId : IDispatch
1725{
1733 [propget, id(1), helpstring("property Name")]
1734 HRESULT Name([out, retval] BSTR* retval);
1735
1742 [propget, id(2), helpstring("property Version")]
1743 HRESULT Version([out, retval] BSTR* retval);
1744
1752 [propget, id(3), helpstring("property CaseSensitivity")]
1753 HRESULT CaseSensitivity([out, retval] CaseSensitivity* retval);
1754};
1755
1756[
1757 object,
1758 uuid(19D50DD2-F381-4DA0-923D-DA672ABA7824),
1759 oleautomation,
1760 dual,
1761 nonextensible,
1762 helpstring("IFTPServerState Interface"),
1763 pointer_default(unique)
1764]
1765interface IFTPServerState : IDispatch
1766{
1787 [propget, id(1), helpstring("property CodePage")]
1788 HRESULT CodePage([out, retval] long* retval);
1789
1808 [propget, id(2), helpstring("property DataProtection")]
1809 HRESULT DataProtection([out, retval] DataProtection* retval);
1810
1827 [propget, id(15), helpstring("property CommandProtection")]
1828 HRESULT CommandProtection([out, retval] DataProtection* retval);
1829
1838 [propget, id(3), helpstring("property DataTransferType")]
1839 HRESULT DataTransferType([out, retval] DataTransferType* retval);
1840
1852 [propget, id(4), helpstring("property DataTransferMode")]
1853 HRESULT DataTransferMode([out, retval] DataTransferMode* retval);
1854
1865 [propget, id(6), helpstring("property ServerType")]
1866 HRESULT ServerType([out, retval] ServerType* retval);
1867
1882 [propget, id(7), helpstring("property ServerSoftware")]
1883 HRESULT ServerSoftware([out, retval] ServerSoftware* retval);
1884
1895 [propget, id(8), helpstring("property PBSZ")]
1896 HRESULT PBSZ([out, retval] VARIANT_BOOL* retval);
1897
1919 [propget, id(9), helpstring("property SSCN")]
1920 HRESULT SSCN([out, retval] VARIANT_BOOL* retval);
1930 [propget, id(10), helpstring("property WorkingDirectory")]
1931 HRESULT WorkingDirectory([out, retval] BSTR* retval);
1932
1945 [propget, id(16), helpstring("property HomeDirectory")]
1946 HRESULT HomeDirectory([out, retval] BSTR* retval);
1947
1968 [propget, id(11), helpstring("property SYSTReply")]
1969 HRESULT SYSTReply([out, retval] BSTR* retval);
1970
1990 [propget, id(12), helpstring("property FEATReply")]
1991 HRESULT FEATReply([out, retval] BSTR* retval);
1992
2001 [propget, id(13), helpstring("property WelcomeMessage")]
2002 HRESULT WelcomeMessage([out, retval] BSTR* retval);
2003
2028 [propget, id(14), helpstring("property ServerId")]
2029 HRESULT ServerId([out, retval] IFTPServerId ** retval);
2030
2040 [propget, id(103), helpstring("property OperatingSystem")]
2041 HRESULT OperatingSystem([out, retval] OperatingSystem *retval);
2042
2043 [id(101), helpstring("method EvaluateParserFormat")]
2044 HRESULT EvaluateParserFormat([out, retval] ParserFormat *retval);
2060 [id(105), helpstring("method GetCaseSensitivity")]
2061 HRESULT GetCaseSensitivity([out, retval] CaseSensitivity* retval);
2062
2063 [id(108), helpstring("method GetServerCapabilityState")]
2064 HRESULT GetServerCapabilityState([in] ServerCapability capability, [out, retval] ServerCapabilityState* retval);
2080 [id(104), helpstring("method IsHashAlgoAvailable")]
2081 HRESULT IsHashAlgoAvailable([in] HashAlgo algo, [out, retval] VARIANT_BOOL* retval);
2082
2102 [id(106), helpstring("method LookupFeature")]
2103 HRESULT LookupFeature([in] BSTR key, [out] BSTR *value, [out, retval] VARIANT_BOOL *retval);
2104};
2105
2106typedef [v1_enum] enum KeyType
2107{
2108 [helpstring("KeyType ftpKeyType Unknown")]
2110
2114 [helpstring("KeyType ftpKeyType PrivateKey")]
2116
2120 [helpstring("KeyType ftpKeyType PublicKey")]
2123
2124typedef [v1_enum] enum KeyAlgo
2125{
2129 [helpstring("KeyAlgo ftpKeyAlgo Unknown")]
2131
2140 [helpstring("KeyAlgo ftpKeyAlgo RSA")]
2142
2153 [helpstring("KeyAlgo ftpKeyAlgo DSA")]
2155
2166 [helpstring("KeyAlgo ftpKeyAlgo ECDSAP256")]
2168
2177 [helpstring("KeyAlgo ftpKeyAlgo ECDSAP384")]
2179
2188 [helpstring("KeyAlgo ftpKeyAlgo ECDSAP521")]
2190
2197 [helpstring("KeyAlgo ftpKeyAlgo Ed25519")]
2199
2206 [helpstring("KeyAlgo ftpKeyAlgo Ed448")]
2208
2220 [helpstring("KeyAlgo ftpKeyAlgo MlDsa44")]
2222
2234 [helpstring("KeyAlgo ftpKeyAlgo MlDsa65")]
2236
2248 [helpstring("KeyAlgo ftpKeyAlgo MlDsa87")]
2251
2259typedef [v1_enum] enum SSHPublicKeyAlgo
2260{
2261 [helpstring("Unknown: Unspecified or invalid algorithm.")]
2263
2264 // --- RSA Family (Classic) ---
2265
2268 [helpstring("ssh-rsa: Legacy RSA with SHA-1. Deprecated; use SHA-2 variants instead.")]
2270
2272 [helpstring("rsa-sha2-256: RSA with SHA-256.")]
2274
2276 [helpstring("rsa-sha2-512: RSA with SHA-512.")]
2278
2279 // --- Elliptic Curve Family (ECDSA / EdDSA) ---
2280
2282 [helpstring("ecdsa-sha2-nistp256: NIST P-256 Curve. Standard ECDSA variant.")]
2284
2286 [helpstring("ecdsa-sha2-nistp384: NIST P-384 Curve.")]
2288
2290 [helpstring("ecdsa-sha2-nistp521: NIST P-521 Curve.")]
2292
2295 [helpstring("ssh-ed25519: Curve25519 signature.")]
2297
2299 [helpstring("ssh-ed448: EdDSA using the Goldilocks curve.")]
2301
2302 // --- Post-Quantum (ML-DSA / Crystals-Dilithium) ---
2303
2306 [helpstring("ml-dsa-44: NIST Post-Quantum signature.")]
2308
2310 [helpstring("ml-dsa-65: NIST Post-Quantum signature.")]
2312
2314 [helpstring("ml-dsa-87: NIST Post-Quantum signature.")]
2316
2317 // --- X.509 Certificate Variants ---
2318
2320 [helpstring("x509v3-sign-rsa: RSA signatures using X.509v3 certificates.")]
2322
2324 [helpstring("x509v3-ecdsa-sha2-nistp256: ECDSA signatures using X.509v3 certificates.")]
2326
2328 [helpstring("x509v3-ecdsa-sha2-nistp384: ECDSA P-384 signatures using X.509v3 certificates.")]
2330
2332 [helpstring("x509v3-ecdsa-sha2-nistp521: ECDSA P-521 signatures using X.509v3 certificates.")]
2334
2336 [helpstring("x509v3-rsa2048-sha256: RSA-2048 with SHA-256 using X.509v3 certificates.")]
2338
2339 // --- OpenSSH Certificate Variants ---
2340
2342 [helpstring("rsa-sha2-256-cert-v01@openssh.com: OpenSSH Certificate based on RSA SHA-256.")]
2344
2346 [helpstring("rsa-sha2-512-cert-v01@openssh.com: OpenSSH Certificate based on RSA SHA-512.")]
2348
2350 [helpstring("ssh-ed25519-cert-v01@openssh.com: OpenSSH Certificate based on Ed25519.")]
2352
2354 [helpstring("ssh-rsa-cert-v01@openssh.com: Legacy OpenSSH RSA Certificate (SHA-1).")]
2356
2358 [helpstring("ssh-dss-cert-v01@openssh.com: Legacy OpenSSH DSA Certificate.")]
2360
2362 [helpstring("ecdsa-sha2-nistp256-cert-v01@openssh.com: OpenSSH Certificate based on ECDSA P-256.")]
2364
2366 [helpstring("ecdsa-sha2-nistp384-cert-v01@openssh.com: OpenSSH Certificate based on ECDSA P-384.")]
2368
2370 [helpstring("ecdsa-sha2-nistp521-cert-v01@openssh.com: OpenSSH Certificate based on ECDSA P-521.")]
2372
2373 // --- Legacy / Insecure ---
2374
2377 [helpstring("ssh-dss: Legacy Digital Signature Algorithm. Deprecated and insecure.")]
2380
2381typedef [v1_enum] enum CertificateType
2382{
2383 [helpstring("Unknown")]
2385
2394 [helpstring("X.509: Standard Public Key Infrastructure")]
2396
2411 [helpstring("OpenSSH: SSH Proprietary Certificate")]
2414
2427[
2428 uuid(DEA6D5FC-1CA3-4d58-876C-5D0C4C02F835), // IID_IKey
2429 object,
2430 oleautomation,
2431 dual,
2432 nonextensible,
2433 helpstring("IKey Interface"),
2434 pointer_default(unique)
2435]
2436interface IKey : IDispatch
2437{
2447 [propget, id(1), helpstring("property Type")]
2448 HRESULT Type([out, retval] KeyType* retval);
2449
2459 [propget, id(2), helpstring("property Bits")]
2460 HRESULT Bits([out, retval] long* retval);
2461
2472 [propget, id(3), helpstring("property Algo")]
2473 HRESULT Algo([out, retval] KeyAlgo* retval);
2474
2483 [propget, id(4), helpstring("property Certificate")]
2484 HRESULT Certificate([out, retval] VARIANT* retval);
2485
2492 [propget, id(5), helpstring("property CertificateType")]
2493 HRESULT CertificateType([out, retval] CertificateType* retval);
2494
2502 [id(22), helpstring("method ImportBlob")]
2503 HRESULT ImportBlob(
2504 [in] LPCWSTR pszBlobType,
2505 [in, size_is(cbInput)] byte* pbInput,
2506 [in] ULONG cbInput
2507 );
2508
2523 [id(23), helpstring("method Verify")]
2524 HRESULT Verify(
2525 [in] HashAlgo hashAlgo,
2526 [in, size_is(cbSignature)] byte* pbSignature,
2527 [in] ULONG cbSignature,
2528 [in, size_is(cbInput)] byte* pbInput,
2529 [in] ULONG cbInput,
2530 [in] ULONG flags
2531 );
2532
2547 [id(24), helpstring("method ExportKey")]
2548 HRESULT ExportKey(
2549 [in] LPCWSTR pszBlobType,
2550 [out, size_is(*pcbData)] byte* pbData,
2551 [in,out] ULONG *pcbData
2552 );
2553
2572 [id(25), helpstring("method Sign")]
2573 HRESULT Sign(
2574 [in] HashAlgo hashAlgo,
2575 [in, size_is(cbInput)] byte* pbInput,
2576 [in] ULONG cbInput,
2577 [out, size_is(*pcbSignature)] byte* pbSignature,
2578 [in,out] ULONG *pcbSignature,
2579 [in] ULONG flags
2580 );
2581
2594 [id(26), helpstring("method SetProperty")]
2595 HRESULT SetProperty(
2596 [in] LPCWSTR pszProperty,
2597 [in, size_is(cbInput)] byte* pbInput,
2598 [in] ULONG cbInput,
2599 [in] ULONG dwFlags
2600 );
2601};
2602
2609[
2610 object,
2611 uuid(67888DE9-428E-4CCE-B0A5-97D0883142A6),
2612 oleautomation,
2613 dual,
2614 nonextensible,
2615 helpstring("IProxySettings Interface"),
2616 pointer_default(unique)
2617]
2618interface IProxySettings : IDispatch
2619{
2625 [propput, id(1), helpstring("property Host")]
2626 HRESULT Host([in] BSTR newValue);
2627 [propget, id(1), helpstring("property Host")]
2628 HRESULT Host([out, retval] BSTR* retval);
2629
2635 [propput, id(2), helpstring("property Port")]
2636 HRESULT Port([in] long newValue);
2637 [propget, id(2), helpstring("property Port")]
2638 HRESULT Port([out, retval] long* retval);
2639
2646 [propput, id(3), helpstring("property Type")]
2647 HRESULT Type([in] ProxyType newValue);
2648 [propget, id(3), helpstring("property Type")]
2649 HRESULT Type([out, retval] ProxyType* retval);
2656 [propput, id(4), helpstring("property Authentication")]
2657 HRESULT Authentication([in] VARIANT_BOOL newValue);
2658 [propget, id(4), helpstring("property Authentication")]
2659 HRESULT Authentication([out, retval] VARIANT_BOOL* retval);
2660
2666 [propput, id(5), helpstring("property Username")]
2667 HRESULT Username([in] BSTR newValue);
2668 [propget, id(5), helpstring("property Username")]
2669 HRESULT Username([out, retval] BSTR* retval);
2670
2676 [propput, id(6), helpstring("property Password")]
2677 HRESULT Password([in] BSTR newValue);
2678 [propget, id(6), helpstring("property Password")]
2679 HRESULT Password([out, retval] BSTR* retval);
2680
2686 [propput, id(8), helpstring("property ProtocolFamily")]
2687 HRESULT ProtocolFamily([in] long newValue);
2688 [propget, id(8), helpstring("property ProtocolFamily")]
2689 HRESULT ProtocolFamily([out, retval] long* retval);
2690
2696 [propput, id(9), helpstring("property ProtocolFamilyPreference")]
2697 HRESULT ProtocolFamilyPreference([in] long newValue);
2698 [propget, id(9), helpstring("property ProtocolFamilyPreference")]
2699 HRESULT ProtocolFamilyPreference([out, retval] long* retval);
2700};
2701
2702[
2703 object,
2704 uuid(2A36B23A-4D39-47E6-A659-FF457D19AEC1),
2705 oleautomation,
2706 dual,
2707 nonextensible,
2708 helpstring("ISocketSettings Interface"),
2709 pointer_default(unique)
2710]
2711interface ISocketSettings : IDispatch
2712{
2720 [propput, id(114), helpstring("property SendBufferSize")]
2721 HRESULT SendBufferSize([in] long newValue);
2722 [propget, id(114), helpstring("property SendBufferSize")]
2723 HRESULT SendBufferSize([out, retval] long* retval);
2724
2733 [propput, id(115), helpstring("property ReceiveBufferSize")]
2734 HRESULT ReceiveBufferSize([in] long newValue);
2735 [propget, id(115), helpstring("property ReceiveBufferSize")]
2736 HRESULT ReceiveBufferSize([out, retval] long* retval);
2737
2753 [propput, id(164), helpstring("property AutoTuneSendBufferSize")]
2754 HRESULT AutoTuneSendBufferSize([in] VARIANT_BOOL newValue);
2755 [propget, id(164), helpstring("property AutoTuneSendBufferSize")]
2756 HRESULT AutoTuneSendBufferSize([out, retval] VARIANT_BOOL* retval);
2757
2773 [propput, id(163), helpstring("property AutoTuneReceiveBufferSize")]
2774 HRESULT AutoTuneReceiveBufferSize([in] VARIANT_BOOL newValue);
2775 [propget, id(163), helpstring("property AutoTuneReceiveBufferSize")]
2776 HRESULT AutoTuneReceiveBufferSize([out, retval] VARIANT_BOOL* retval);
2777
2797 [propput, id(9), helpstring("property TcpNoDelay")]
2798 HRESULT TcpNoDelay([in] VARIANT_BOOL newValue);
2799 [propget, id(9), helpstring("property TcpNoDelay")]
2800 HRESULT TcpNoDelay([out, retval] VARIANT_BOOL* retval);
2801};
2802
2803[
2804 object,
2805 uuid(43F64D39-D795-43E7-AD13-4AC58A16706E),
2806 oleautomation,
2807 dual,
2808 nonextensible,
2809 helpstring("ISpeedLimitSettings Interface"),
2810 pointer_default(unique)
2811]
2812interface ISpeedLimitSettings : IDispatch
2813{
2819 [propget, id(1), helpstring("property UploadSpeedLimit")]
2820 HRESULT UploadSpeedLimit([out, retval] long* retval);
2821 [propput, id(1), helpstring("property UploadSpeedLimit")]
2822 HRESULT UploadSpeedLimit([in] long newValue);
2823
2829 [propget, id(2), helpstring("property DownloadSpeedLimit")]
2830 HRESULT DownloadSpeedLimit([out, retval] long* retval);
2831 [propput, id(2), helpstring("property DownloadSpeedLimit")]
2832 HRESULT DownloadSpeedLimit([in] long newValue);
2833};
2834
2835[
2836 object,
2837 uuid(E73FB5C8-7B36-49D0-B491-C5C0E34640E3),
2838 pointer_default(unique)
2839]
2840interface ICompletionHandler : IUnknown
2841{
2842 HRESULT OnComplete([in] HRESULT error);
2843}
2844
2845[
2846 object,
2847 uuid(294F6B85-F0F9-4A29-8125-609C20BC4226),
2848 oleautomation,
2849 dual,
2850 nonextensible,
2851 helpstring("ITlsSocket Interface"),
2852 pointer_default(unique)
2853]
2854interface ITlsSocket : IDispatch
2855{
2856 [propget, id(13), helpstring("property Enabled")]
2857 HRESULT Enabled([out, retval] VARIANT_BOOL* retval);
2858
2867 [propput, id(14), helpstring("property ClientCertThumbprint")]
2868 HRESULT ClientCertThumbprint([in] VARIANT thumbprint);
2869 [propget, id(14), helpstring("property ClientCertThumbprint")]
2870 HRESULT ClientCertThumbprint([out, retval] VARIANT* retval);
2871
2879 [propput, id(15), helpstring("property ClientCertStore")]
2880 HRESULT ClientCertStore([in] BSTR newValue);
2881 [propget, id(15), helpstring("property ClientCertStore")]
2882 HRESULT ClientCertStore([out, retval] BSTR* retval);
2883
2892 [propput, id(16), helpstring("property ClientCertStoreLocation")]
2893 HRESULT ClientCertStoreLocation([in] long newValue);
2894 [propget, id(16), helpstring("property ClientCertStoreLocation")]
2895 HRESULT ClientCertStoreLocation([out, retval] long* retval);
2896
2907 [propget, id(20), helpstring("property ConnectionInfo")]
2908 HRESULT ConnectionInfo([out, retval] ISecurityConnectionInfo **retval);
2909
2915 [propget, id(17), helpstring("property RemoteCert")]
2916 HRESULT RemoteCert([out,retval] VARIANT* retval);
2917
2922 [propput, id(21), helpstring("property DisabledProtocols")]
2923 HRESULT DisabledProtocols([in] long newValue);
2924 [propget, id(21), helpstring("property DisabledProtocols")]
2925 HRESULT DisabledProtocols([out, retval] long* retval);
2926};
2927
2928[
2929 object,
2930 uuid(58B37E37-9F86-4348-8698-A3D7A0A81EF5),
2931 dual,
2932 nonextensible,
2933 helpstring("ISFTPExtendedCheckFileResult Interface"),
2934 pointer_default(unique)
2935]
2936interface ISFTPExtendedCheckFileResult : IDispatch
2937{
2947 [propget, id(1), helpstring("property HashAlgo")]
2948 HRESULT HashAlgo([out, retval] HashAlgo* retval);
2949
2965 [propget, id(2), helpstring("property HashAsString")]
2966 HRESULT HashAsString([out, retval] BSTR* retval);
2967};
2968
2969[
2970 object,
2971 uuid(BB665147-7336-47C5-AFF4-DB5819BD29CE),
2972 pointer_default(unique)
2973]
2974interface ILogger : IUnknown
2975{
2976 // midl doesn't support 64-bit SIZE_T for size_is()
2977 // Use a counted buffer: LPCWSTR carries [string] and would require a terminator.
2978 HRESULT Log([in] StatusEventType eventType, [in, size_is(textLength)] const WCHAR* text, [in] UINT textLength);
2979};
2980
2981[
2982 object,
2983 uuid(8ABB3C80-5D7E-4C5F-9B9E-41161B498114),
2984 pointer_default(unique)
2985]
2986interface IConnectionWithLogger : IUnknown
2987{
2988 HRESULT SetLogger([in, unique] ILogger* logger);
2989 HRESULT GetLogger([out] ILogger** logger);
2990};
2991
2992[
2993 object,
2994 uuid(BC45DF1A-883F-4CEB-B6EA-9DFC2F0E83B4),
2995 oleautomation,
2996 dual,
2997 nonextensible,
2998 helpstring("IFileLogger Interface"),
2999 pointer_default(unique)
3000]
3001interface IFileLogger : IDispatch
3002{
3007 [propput, id(1), helpstring("property File")]
3008 HRESULT File([in] BSTR newValue);
3009 [propget, id(1), helpstring("property File")]
3010 HRESULT File([out, retval] BSTR* retval);
3011
3016 [propput, id(2), helpstring("property Format")]
3017 HRESULT Format([in] LogFormat newValue);
3018 [propget, id(2), helpstring("property Format")]
3019 HRESULT Format([out, retval] LogFormat* retval);
3020
3021 [id(100), helpstring("method WriteLog")]
3022 HRESULT WriteLog([in] BSTR text);
3023};
3024
3025typedef [v1_enum] enum FTPItemAttribute
3026{
3027 [helpstring("ItemAttribute ftpFTPItemAttribute Size")] ftpFTPItemAttributeSize = 0x1,
3028 [helpstring("ItemAttribute ftpFTPItemAttribute Permissions")] ftpFTPItemAttributePermissions = 0x4,
3029 [helpstring("ItemAttribute ftpFTPItemAttribute AccessTime")] ftpFTPItemAttributeAccessTime = 0x8,
3030 [helpstring("ItemAttribute ftpFTPItemAttribute CreateTime")] ftpFTPItemAttributeCreateTime = 0x10,
3031 [helpstring("ItemAttribute ftpFTPItemAttribute ModifyTime")] ftpFTPItemAttributeModifyTime = 0x20,
3032 [helpstring("ItemAttribute ftpFTPItemAttribute ACL")] ftpFTPItemAttributeACL = 0x40,
3033 [helpstring("ItemAttribute ftpFTPItemAttribute SubSecondTimes")] ftpFTPItemAttributeSubSecondTimes = 0x100,
3034 [helpstring("ItemAttribute ftpFTPItemAttribute Bits")] ftpFTPItemAttributeBits = 0x200,
3035 [helpstring("ItemAttribute ftpFTPItemAttribute AllocationSize")] ftpFTPItemAttributeAllocationSize = 0x400,
3036 [helpstring("ItemAttribute ftpFTPItemAttribute TextHint")] ftpFTPItemAttributeTextHint = 0x800,
3037 [helpstring("ItemAttribute ftpFTPItemAttribute MimeType")] ftpFTPItemAttributeMimeType = 0x1000,
3038 [helpstring("ItemAttribute ftpFTPItemAttribute LinkCount")] ftpFTPItemAttributeLinkCount = 0x2000,
3039 [helpstring("ItemAttribute ftpFTPItemAttribute UntranslatedName")] ftpFTPItemAttributeUntranslatedName = 0x4000,
3040 [helpstring("ItemAttribute ftpFTPItemAttribute CTime")] ftpFTPItemAttributeCTime = 0x8000,
3041 [helpstring("ItemAttribute ftpFTPItemAttribute Extended")] ftpFTPItemAttributeExtended = 0x80000000,
3042 [helpstring("ItemAttribute ftpFTPItemAttribute Owner")] ftpFTPItemAttributeOwner = 0x10000,
3043 [helpstring("ItemAttribute ftpFTPItemAttribute UnixPermissions")] ftpFTPItemAttributeUnixPermissions = 0x20000,
3044 [helpstring("ItemAttribute ftpFTPItemAttribute WindowsAttributes")] ftpFTPItemAttributeWindowsAttributes = 0x40000,
3045 [helpstring("ItemAttribute ftpFTPItemAttribute Group")] ftpFTPItemAttributeGroup = 0x80000,
3047
3051[
3052 object,
3053 uuid(36CE9B15-1CF2-4E76-9D1B-069DDB0E7C9D),
3054 oleautomation,
3055 dual,
3056 nonextensible,
3057 helpstring("IFTPItem Interface"),
3058 pointer_default(unique)
3059]
3060interface IFTPItem : IDispatch
3061{
3065 [propput, id(1), helpstring("property Name")]
3066 HRESULT Name([in] BSTR newValue);
3067 [propget, id(1), helpstring("property Name")]
3068 HRESULT Name([out, retval] BSTR* retval);
3069
3073 [propput, id(2), helpstring("property Type")]
3074 HRESULT Type([in] ItemType newType);
3075 [propget, id(2), helpstring("property Type")]
3076 HRESULT Type([out, retval] ItemType* retval);
3081 [propput, id(3), helpstring("property Owner")]
3082 HRESULT Owner([in] BSTR newValue);
3083 [propget, id(3), helpstring("property Owner")]
3084 HRESULT Owner([out, retval] BSTR* retval);
3085
3089 [propput, id(4), helpstring("property Group")]
3090 HRESULT Group([in] BSTR newValue);
3091 [propget, id(4), helpstring("property Group")]
3092 HRESULT Group([out, retval] BSTR* retval);
3093
3114 [propput, id(5), helpstring("property Size")]
3115 HRESULT Size([in] ULONGLONG newValue);
3116 [propget, id(5), helpstring("property Size")]
3117 HRESULT Size([out, retval] ULONGLONG* retval);
3118
3137 [propget, id(6), helpstring("property SizeLo")]
3138 HRESULT SizeLo([out, retval] long* retval);
3139
3153 [propget, id(7), helpstring("property SizeHi")]
3154 HRESULT SizeHi([out, retval] long* retval);
3155
3172 [propput, id(10), helpstring("property ModifyTime")]
3173 HRESULT ModifyTime([in] FILETIME newValue);
3174 [propget, id(10), helpstring("property ModifyTime")]
3175 HRESULT ModifyTime([out, retval] FILETIME* retval);
3176
3177 [propput, id(9), helpstring("property ModifyTimeAsDate")]
3178 HRESULT ModifyTimeAsDate([in] VARIANT newValue);
3179 [propget, id(9), helpstring("property ModifyTimeAsDate")]
3180 HRESULT ModifyTimeAsDate([out, retval] VARIANT* retval);
3181
3198 [propput, id(16), helpstring("property AccessTime")]
3199 HRESULT AccessTime([in] FILETIME newValue);
3200 [propget, id(16), helpstring("property AccessTime")]
3201 HRESULT AccessTime([out, retval] FILETIME* retval);
3202
3219 [propput, id(17), helpstring("property CreateTime")]
3220 HRESULT CreateTime([in] FILETIME newValue);
3221 [propget, id(17), helpstring("property CreateTime")]
3222 HRESULT CreateTime([out, retval] FILETIME* retval);
3223
3245 [propput, id(28), helpstring("property CTime")]
3246 HRESULT CTime([in] FILETIME newValue);
3247 [propget, id(28), helpstring("property CTime")]
3248 HRESULT CTime([out, retval] FILETIME* retval);
3249
3250 [propput, id(12), helpstring("property CreateTimeAsDate")]
3251 HRESULT CreateTimeAsDate([in] VARIANT newValue);
3252 [propget, id(12), helpstring("property CreateTimeAsDate")]
3253 HRESULT CreateTimeAsDate([out, retval] VARIANT* retval);
3254
3255 [propput, id(15), helpstring("property AccessTimeAsDate")]
3256 HRESULT AccessTimeAsDate([in] VARIANT newValue);
3257 [propget, id(15), helpstring("property AccessTimeAsDate")]
3258 HRESULT AccessTimeAsDate([out, retval] VARIANT* retval);
3259
3260 [propput, id(27), helpstring("property CTimeAsDate")]
3261 HRESULT CTimeAsDate([in] VARIANT newValue);
3262 [propget, id(27), helpstring("property CTimeAsDate")]
3263 HRESULT CTimeAsDate([out, retval] VARIANT* retval);
3264
3281 [propput, id(20), helpstring("property AttributeBits")]
3282 HRESULT AttributeBits([in] long newValue);
3283 [propget, id(20), helpstring("property AttributeBits")]
3284 HRESULT AttributeBits([out, retval] long* retval);
3285
3306 [propput, id(21), helpstring("property ValidAttributeBits")]
3307 HRESULT ValidAttributeBits([in] long newValue);
3308 [propget, id(21), helpstring("property ValidAttributeBits")]
3309 HRESULT ValidAttributeBits([out, retval] long* retval);
3310
3335 [propput, id(22), helpstring("property UnixFilePermissions")]
3336 HRESULT UnixFilePermissions([in] long newValue);
3337 [propget, id(22), helpstring("property UnixFilePermissions")]
3338 HRESULT UnixFilePermissions([out, retval] long* retval);
3339
3360 [propput, id(23), helpstring("property AllocationSize")]
3361 HRESULT AllocationSize([in] ULONGLONG newValue);
3362 [propget, id(23), helpstring("property AllocationSize")]
3363 HRESULT AllocationSize([out, retval] ULONGLONG* retval);
3364
3365 [propput, id(24), helpstring("property MimeType")]
3366 HRESULT MimeType([in] BSTR newValue);
3367 [propget, id(24), helpstring("property MimeType")]
3368 HRESULT MimeType([out, retval] BSTR* retval);
3388 [propput, id(25), helpstring("property LinkPoint")]
3389 HRESULT LinkPoint([in] BSTR newValue);
3390 [propget, id(25), helpstring("property LinkPoint")]
3391 HRESULT LinkPoint([out, retval] BSTR* retval);
3392
3393 [propput, id(26), helpstring("property Unique")]
3394 HRESULT Unique([in] BSTR newValue);
3395 [propget, id(26), helpstring("property Unique")]
3396 HRESULT Unique([out, retval] BSTR* retval);
3397
3411 [propput, id(29), helpstring("property UTC")]
3412 HRESULT UTC([in] VARIANT_BOOL newValue);
3413 [propget, id(29), helpstring("property UTC")]
3414 HRESULT UTC([out, retval] VARIANT_BOOL* retval);
3415
3416 [propput, id(30), helpstring("property TimePrecision")]
3417 HRESULT TimePrecision([in] long newValue);
3418 [propget, id(30), helpstring("property TimePrecision")]
3419 HRESULT TimePrecision([out, retval] long * retval);
3420
3433 [id(101), helpstring("method IsValidAttribute")]
3434 HRESULT IsValidAttribute([in] FTPItemAttribute attribute, [out, retval] VARIANT_BOOL* retval);
3435
3441 [id(102), restricted, helpstring("Returns the item's property store")]
3442 HRESULT GetPropertyStore([out, retval] IPropertyStore** propertyStore);
3443};
3444
3445[
3446 object,
3447 uuid(9055CECB-7F8F-4B16-AA4D-4D21CC6485E9),
3448 dual,
3449 oleautomation,
3450 nonextensible,
3451 helpstring("IFTPItems Interface"),
3452 pointer_default(unique)
3453]
3454interface IFTPItems : IDispatch
3455{
3464 [propget, id(DISPID_VALUE), helpstring("method Item")]
3465 HRESULT Item( [in] long index, [out,retval] IFTPItem** item);
3467 [propget, id(DISPID_NEWENUM), restricted, helpstring("method _NewEnum")]
3468 HRESULT _NewEnum([out, retval] IUnknown** retval);
3469
3482 [propget, id(1), helpstring("property Count")]
3483 HRESULT Count([out, retval] long* retval);
3484
3485 HRESULT GetAt([in] UINT index, [out,retval] IFTPItem** item);
3486 [propget] HRESULT Size([out, retval] UINT* size);
3487};
3488
3501[
3502 object,
3503 uuid(8C1FDFC9-14A3-478F-88A2-EFF54CA87662),
3504 pointer_default(unique)
3505]
3506interface ITransferProgressEvents : IUnknown
3507{
3523 HRESULT OnTransferProgress([in] ULONGLONG bytesTransferred);
3524};
3525
3526interface ISFTPSpaceAvailable;
3527
3528[ uuid(65D75061-6343-4124-9D64-64F1EABB34C2), // IID_IFTPConnection
3529 object,
3530 oleautomation,
3531 dual,
3532 nonextensible,
3533 helpstring("IFTPConnection Interface"),
3534 pointer_default(unique)
3535]
3536interface IFTPConnection : IDispatch
3537{
3538 // OperationHandler
3542 [propget, id(2), helpstring("property Busy")]
3543 HRESULT Busy([out, retval] VARIANT_BOOL* retval);
3544
3565 [propget, id(119), helpstring("property Aborted")]
3566 HRESULT Aborted([out, retval] VARIANT_BOOL* retval);
3567
3594 [propput, id(117), helpstring("property UseMessageLoop")]
3595 HRESULT UseMessageLoop([in] VARIANT_BOOL newValue);
3596 [propget, id(117), helpstring("property UseMessageLoop")]
3597 HRESULT UseMessageLoop([out, retval] VARIANT_BOOL* retval);
3598
3615 [propput, id(19), helpstring("property Timeout")]
3616 HRESULT Timeout([in] long newValue);
3617 [propget, id(19), helpstring("property Timeout")]
3618 HRESULT Timeout([out, retval] long* retval);
3619
3620 // IConnection
3621
3631 [propget, id(3), helpstring("property ConnectionStatus")]
3632 HRESULT ConnectionStatus([out, retval] ConnectionStatus* retval);
3633
3642 [propput, id(4), helpstring("property Host")]
3643 HRESULT Host([in] BSTR newValue);
3644 [propget, id(4), helpstring("property Host")]
3645 HRESULT Host([out, retval] BSTR* retval);
3646
3661 [propput, id(5), helpstring("property Port")]
3662 HRESULT Port([in] long newValue);
3663 [propget, id(5), helpstring("property Port")]
3664 HRESULT Port([out, retval] long* retval);
3665
3678 [propput, id(22), helpstring("property ProtocolFamilyPreference")]
3679 HRESULT ProtocolFamilyPreference([in] ProtocolFamily newValue);
3680 [propget, id(22), helpstring("property ProtocolFamilyPreference")]
3681 HRESULT ProtocolFamilyPreference([out, retval] ProtocolFamily* retval);
3682
3693 [propget, id(91), helpstring("property ProtocolFamily")]
3694 HRESULT ProtocolFamily([out, retval] ProtocolFamily* retval);
3695
3696 // IFTPConnection
3697
3718 // TODO: rename to EnableLogin/EnableAuthentication
3719 [propput, id(122), helpstring("property Login")]
3720 HRESULT Login([in] VARIANT_BOOL newValue);
3721 [propget, id(122), helpstring("property Login")]
3722 HRESULT Login([out, retval] VARIANT_BOOL * retval);
3723
3747 [propput, id(6), helpstring("property Username")]
3748 HRESULT Username([in] BSTR newValue);
3749 [propget, id(6), helpstring("property Username")]
3750 HRESULT Username([out, retval] BSTR* retval);
3751
3772 [propput, id(7), helpstring("property Password")]
3773 HRESULT Password([in] BSTR newValue);
3774 [propget, id(7), helpstring("property Password")]
3775 HRESULT Password([out, retval] BSTR* retval);
3776
3794 [propput, id(8), helpstring("property Protocol")]
3795 HRESULT Protocol([in] FTPProtocol newValue);
3796 [propget, id(8), helpstring("property Protocol")]
3797 HRESULT Protocol([out, retval] FTPProtocol* retval);
3798
3826 [propput, id(9), helpstring("property PortMode")]
3827 HRESULT PortMode([in] PortMode newValue);
3828 [propget, id(9), helpstring("property PortMode")]
3829 HRESULT PortMode([out, retval] PortMode* retval);
3830
3853 [propput, id(10), helpstring("property PortIP")]
3854 HRESULT PortIP([in] BSTR newValue);
3855 [propget, id(10), helpstring("property PortIP")]
3856 HRESULT PortIP([out, retval] BSTR* retval);
3857
3884 // TODO: rename to UsePassiveMode
3885 [propput, id(11), helpstring("property Passive")]
3886 HRESULT Passive([in] VARIANT_BOOL newValue);
3887 [propget, id(11), helpstring("property Passive")]
3888 HRESULT Passive([out, retval] VARIANT_BOOL* retval);
3889
3902 [propput, id(12), helpstring("property DataTransferType")]
3903 HRESULT DataTransferType([in] DataTransferType newValue);
3904 [propget, id(12), helpstring("property DataTransferType")]
3905 HRESULT DataTransferType([out, retval] DataTransferType* retval);
3906
3907 [propput, id(13), helpstring("property DataProtection")]
3908 HRESULT DataProtection([in] DataProtection newValue);
3909 [propget, id(13), helpstring("property DataProtection")]
3910 HRESULT DataProtection([out, retval] DataProtection* retval);
3911
3912 [propput, id(165), helpstring("property CommandProtection")]
3913 HRESULT CommandProtection([in] DataProtection newValue);
3914 [propget, id(165), helpstring("property CommandProtection")]
3915 HRESULT CommandProtection([out, retval] DataProtection* retval);
3916
3948 [propput, id(106), helpstring("property PROTFallback")]
3949 HRESULT PROTFallback([in] VARIANT_BOOL newValue);
3950 [propget, id(106), helpstring("property PROTFallback")]
3951 HRESULT PROTFallback([out, retval] VARIANT_BOOL* retval);
3952
3953 [propput, id(20), helpstring("property CodePage")]
3954 HRESULT CodePage([in] long newValue);
3955 [propget, id(20), helpstring("property CodePage")]
3956 HRESULT CodePage([out, retval] long* retval);
3957
3985 [propput, id(21), helpstring("property PassiveMode")]
3986 HRESULT PassiveMode([in] PassiveMode newValue);
3987 [propget, id(21), helpstring("property PassiveMode")]
3988 HRESULT PassiveMode([out, retval] PassiveMode* retval);
3989
4018 [propput, id(23), helpstring("property LimitLocalPortRange")]
4019 HRESULT LimitLocalPortRange([in] VARIANT_BOOL newValue);
4020 [propget, id(23), helpstring("property LimitLocalPortRange")]
4021 HRESULT LimitLocalPortRange([out, retval] VARIANT_BOOL* retval);
4022
4054 [propput, id(24), helpstring("property UseMLSD")]
4055 HRESULT UseMLSD([in] VARIANT_BOOL newValue);
4056 [propget, id(24), helpstring("property UseMLSD")]
4057 HRESULT UseMLSD([out, retval] VARIANT_BOOL* retval);
4058
4072 [propput, id(25), helpstring("property DataTransferMode")]
4073 HRESULT DataTransferMode([in] DataTransferMode newValue);
4074 [propget, id(25), helpstring("property DataTransferMode")]
4075 HRESULT DataTransferMode([out, retval] DataTransferMode* retval);
4076
4107 [propput, id(26), helpstring("property LISTOption")]
4108 HRESULT LISTOption([in] long newValue);
4109 [propget, id(26), helpstring("property LISTOption")]
4110 HRESULT LISTOption([out, retval] long* retval);
4111
4131 [propput, id(27), helpstring("property DataTransferSpeedLimit")]
4132 HRESULT DataTransferSpeedLimit([in] long newValue);
4133 [propget, id(27), helpstring("property DataTransferSpeedLimit")]
4134 HRESULT DataTransferSpeedLimit([out, retval] long* retval);
4135
4159 [propput, id(89), helpstring("property SSCN")]
4160 HRESULT SSCN([in] VARIANT_BOOL newValue);
4161 [propget, id(89), helpstring("property SSCN")]
4162 HRESULT SSCN([out, retval] VARIANT_BOOL* retval);
4163
4195 [propput, id(101), helpstring("property FeatureDiscovery")]
4196 HRESULT FeatureDiscovery([in] FeatureDiscoveryMode newValue);
4197 [propget, id(101), helpstring("property FeatureDiscovery")]
4198 HRESULT FeatureDiscovery([out, retval] FeatureDiscoveryMode* retval);
4199
4228 [propput, id(116), helpstring("property FileBufferSize")]
4229 HRESULT FileBufferSize([in] long newValue);
4230 [propget, id(116), helpstring("property FileBufferSize")]
4231 HRESULT FileBufferSize([out, retval] long* retval);
4257 [propget, id(136), helpstring("property IdleKeepAlive")]
4258 HRESULT IdleKeepAlive([out, retval] VARIANT_BOOL* retval);
4259 [propput, id(136), helpstring("property IdleKeepAlive")]
4260 HRESULT IdleKeepAlive([in] VARIANT_BOOL newValue);
4261
4290 [propget, id(137), helpstring("property TransferKeepAlive")]
4291 HRESULT TransferKeepAlive([out, retval] VARIANT_BOOL* retval);
4292 [propput, id(137), helpstring("property TransferKeepAlive")]
4293 HRESULT TransferKeepAlive([in] VARIANT_BOOL newValue);
4294
4320 [propput, id(133), helpstring("property KeepAliveInterval")]
4321 HRESULT KeepAliveInterval([in] long newValue);
4322 [propget, id(133), helpstring("property KeepAliveInterval")]
4323 HRESULT KeepAliveInterval([out, retval] long *retval);
4324
4350 [propput, id(162), helpstring("property ClientId")]
4351 HRESULT ClientId([in] IFTPClientId* newValue);
4352 [propget, id(162), helpstring("property ClientId")]
4353 HRESULT ClientId([out, retval] IFTPClientId** retval);
4354
4382 [propput, id(98), helpstring("property HidePassword")]
4383 HRESULT HidePassword([in] VARIANT_BOOL newValue);
4384 [propget, id(98), helpstring("property HidePassword")]
4385 HRESULT HidePassword([out, retval] VARIANT_BOOL* retval);
4386
4395 [propget, id(43), helpstring("property WorkingDirectory")]
4396 HRESULT WorkingDirectory([out, retval] BSTR* retval);
4397
4419 [propget, id(102), helpstring("property PeerName")]
4420 HRESULT PeerName([out, retval] BSTR* retval);
4421
4433 [propget, id(134), helpstring("property ServerState")]
4434 HRESULT ServerState([out, retval] IFTPServerState **retval);
4435
4446 [propget, id(138), helpstring("property Proxy")]
4447 HRESULT Proxy([out, retval] IProxySettings** retval);
4448
4460 // TODO: rename to ITlsSocket
4461 [propget, id(14), helpstring("property SSLSocketLayer")]
4462 HRESULT SSLSocketLayer([out, retval] ITlsSocket** retval);
4463
4474 [propget, id(15), helpstring("property SocketSettings")]
4475 HRESULT SocketSettings([out, retval] ISocketSettings** retval);
4476
4487 [propget, id(16), helpstring("property SpeedLimitSettings")]
4488 HRESULT SpeedLimitSettings([out, retval] ISpeedLimitSettings** retval);
4489
4503 [propput, id(18), helpstring("property Logger")]
4504 HRESULT Logger([in] ILogger* logger);
4505
4521 [propput, id(139), helpstring("property CompressionLevel")]
4522 HRESULT CompressionLevel([in] long newValue);
4523 [propget, id(139), helpstring("property CompressionLevel")]
4524 HRESULT CompressionLevel([out, retval] long* retval);
4525
4550 [propget, id(47), helpstring("property LastReply")] HRESULT
4551 LastReply([out, retval] BSTR* retval);
4552
4567 [propget, id(48), helpstring("property LastReplyCode")]
4568 HRESULT LastReplyCode([out, retval] long *retval);
4584 [propget, id(112), helpstring("property LastCommand")]
4585 HRESULT LastCommand([out, retval] BSTR* retval);
4586
4607 [propget, id(51), helpstring("property LastError")]
4608 HRESULT LastError([out, retval] HRESULT* retval);
4609
4635 [propget, id(160), helpstring("property LastDataConnectionError")]
4636 HRESULT LastDataConnectionError([out, retval] HRESULT* retval);
4637
4650 [propget, id(55), helpstring("property LastTransferBytes")]
4651 HRESULT LastTransferBytes([out, retval] ULONGLONG *retval);
4652
4664 [propget, id(56), helpstring("property LastTransferBytesLo")]
4665 HRESULT LastTransferBytesLo([out, retval] long *retval);
4666
4681 [propget, id(108), helpstring("property LastTransferBytesHi")]
4682 HRESULT LastTransferBytesHi([out, retval] long *retval);
4683
4696 [propget, id(57), helpstring("property LastTransferTime")]
4697 HRESULT LastTransferTime([out, retval] long *retval);
4698
4716 [propget, id(58), helpstring("property LastTransferSpeed")]
4717 HRESULT LastTransferSpeed([out, retval] long *retval);
4718
4743 [propput, id(93), helpstring("property PassiveAddress")]
4744 HRESULT PassiveAddress([in] BSTR newValue);
4745 [propget, id(93), helpstring("property PassiveAddress")]
4746 HRESULT PassiveAddress([out, retval] BSTR* retval);
4747
4773 [propput, id(110), helpstring("property Account")]
4774 HRESULT Account([in] BSTR newValue);
4775 [propget, id(110), helpstring("property Account")]
4776 HRESULT Account([out, retval] BSTR* retval);
4777
4781 [id(62), helpstring("method Abort")]
4782 HRESULT Abort();
4783
4788 [id(92), helpstring("method Continue")]
4789 HRESULT Continue();
4790
4791 // IFTPConnection
4797 [id(61), helpstring("method Close")]
4798 HRESULT Close();
4799
4806 [id(63), helpstring("method Connect")]
4807 HRESULT Connect();
4808
4819 [id(64), helpstring("method Disconnect")]
4820 HRESULT Disconnect();
4821
4827 [id(65), helpstring("method ChangeDirectory")]
4828 HRESULT ChangeDirectory([in] BSTR directory);
4829
4844 [id(147), helpstring("method UpdateWorkingDirectory")]
4845 HRESULT UpdateWorkingDirectory();
4846
4857 [id(66), helpstring("method DownloadFile")]
4858 HRESULT DownloadFile([in] BSTR remoteFile, [in] BSTR localFile, [in] long startPositionLo, [in] long startPositionHi);
4860 [id(150), helpstring("method DownloadFromCommand")]
4861 HRESULT DownloadFromCommand([in] BSTR command, [in] VARIANT localFile, [in] long remoteStartPosLo, [in] long remoteStartPosHi);
4862
4894 [id(123), helpstring("method DownloadFileEx")]
4895 HRESULT DownloadFileEx([in] BSTR remoteFile, [in] VARIANT localFile, [in] ULONGLONG startPosition, [in] ULONGLONG endPosition, [in] ITransferProgressEvents* progress);
4896
4917 [id(68), helpstring("method UploadFile")]
4918 HRESULT UploadFile([in] BSTR localFile, [in] BSTR remoteFile, [in] long startPositionLo, [in] long startPositionHi);
4919
4948 [id(124), helpstring("method UploadFileEx")]
4949 HRESULT UploadFileEx([in] VARIANT localFile, [in] BSTR remoteFile, [in] ULONGLONG startPosition, [in] ITransferProgressEvents* progress);
4950
4966 [id(121), helpstring("method NewFile")]
4967 HRESULT NewFile([in] BSTR file);
4968
4977 [id(69), helpstring("method ChangeDirectoryUp")]
4978 HRESULT ChangeDirectoryUp();
4979
4996 [id(70), helpstring("method RenameFile")]
4997 HRESULT RenameFile([in] BSTR fileFrom, [in] BSTR fileTo);
4998
5005 [id(71), helpstring("method DeleteFile")]
5006 HRESULT DeleteFile([in] BSTR file);
5007
5024 [id(72), helpstring("method RenameDirectory")]
5025 HRESULT RenameDirectory([in] BSTR directoryFrom, [in] BSTR directoryTo);
5042 [id(73), helpstring("method RemoveDirectory")]
5043 HRESULT RemoveDirectory([in] BSTR directory);
5044
5050 [id(74), helpstring("method Command")]
5051 HRESULT Command([in] BSTR command);
5052
5062 [id(75), helpstring("method MakeDirectory")]
5063 HRESULT MakeDirectory([in] BSTR directory);
5082 [id(76), helpstring("method GetFileSize")]
5083 HRESULT GetFileSize([in] BSTR file, [out, retval] ULONGLONG* retval);
5084
5091 [id(78), helpstring("method GetFileSize32")]
5092 HRESULT GetFileSize32([in] BSTR file, [out, retval] long* retval);
5093
5109 [id(77), helpstring("method ReadDirectory")]
5110 HRESULT ReadDirectory([out, retval] IFTPItems** retval);
5111
5112 [id(153), helpstring("method ReadDirectoryEx")]
5113 HRESULT ReadDirectoryEx([in] ITransferProgressEvents* progress, [out, retval] IFTPItems** retval);
5114
5115 [id(118), helpstring("method ReadDirectoryFromCommand")]
5116 HRESULT ReadDirectoryFromCommand([in] BSTR command, [out, retval] IFTPItems** retval);
5117
5135 [id(79), helpstring("method ReadDirectoryRaw")]
5136 HRESULT ReadDirectoryRaw([in] VARIANT localFile);
5137
5153 [id(80), helpstring("method GetModifyTime")]
5154 HRESULT GetModifyTime([in] BSTR file, [out, retval] FILETIME* retval);
5155
5166 [id(81), helpstring("method GetModifyTimeAsDate")]
5167 HRESULT GetModifyTimeAsDate([in] BSTR file, [out, retval] VARIANT* retval);
5168
5169// [id(139), helpstring("method GetItem")]
5170// HRESULT GetItem([in] BSTR name, [out, retval] IFTPItem** retval);\
5171
5172 [id(140), helpstring("method GetMLST")]
5173 HRESULT GetMLST([in] BSTR name, [out, retval] IFTPItem** retval);
5174
5185 [id(141), helpstring("method Stat")]
5186 HRESULT Stat([in] BSTR name, [out, retval] IFTPItems** retval);
5187
5208 [id(83), helpstring("method SetModifyTime")]
5209 HRESULT SetModifyTime([in] BSTR file, [in] FILETIME time);
5210
5227 [id(85), helpstring("method SetModifyTimeAsDate")]
5228 HRESULT SetModifyTimeAsDate([in] BSTR file, [in] VARIANT date);
5229
5250 [id(170), helpstring("method SetCreateTime")]
5251 HRESULT SetCreateTime([in] BSTR file, [in] FILETIME time);
5252
5269 [id(171), helpstring("method SetCreateTimeAsDate")]
5270 HRESULT SetCreateTimeAsDate([in] BSTR file, [in] VARIANT date);
5271
5295 [id(84), helpstring("method SetUnixPermissions")]
5296 HRESULT SetUnixPermissions([in] BSTR name, [in] long permissions);
5297
5310 [id(86), helpstring("method GetFileHash")]
5311 HRESULT GetFileHash([in] HashAlgo algo, [in] BSTR file, [in] ULONGLONG start, [in] ULONGLONG length, [out, retval] BSTR* retval);
5312
5319 [id(88), helpstring("method ClearCommandChannel")]
5320 HRESULT ClearCommandChannel();
5321
5336 [id(90), helpstring("method InitializeTransfer")]
5337 HRESULT InitializeTransfer();
5338
5378 [id(94), helpstring("method FXPDownloadFile")]
5379 HRESULT FXPDownloadFile([in] BSTR remoteFile, [in] ULONGLONG startPosition);
5380
5420 [id(95), helpstring("method FXPUploadFile")]
5421 HRESULT FXPUploadFile([in] BSTR remoteFile, [in] ULONGLONG startPosition);
5422
5437 [id(174), helpstring("method GetSpaceAvailable")]
5438 HRESULT GetSpaceAvailable([in] BSTR path, [out, retval] ISFTPSpaceAvailable** retval);
5439
5440 [id(176), helpstring("method CopyFile")]
5441 HRESULT CopyFile([in] BSTR sourceFile, [in] BSTR destinationFile);
5442
5458 [id(177), helpstring("method SetFileLogger")]
5459 HRESULT SetFileLogger([out, retval] IFileLogger** fileLogger);
5460};
5461
5462[ object,
5463 uuid(DB80022E-14E3-4af0-B075-46C3889E15EB), // IID_IFTPParser
5464 nonextensible,
5465 pointer_default(unique)
5466]
5467interface IFTPParser : IUnknown
5468{
5469 HRESULT Initialize([in] ParserFormat format);
5470 HRESULT ParseLine([in] LPCWSTR line, [out, retval] IFTPItem** item);
5471};
5472
5480[ object,
5481 uuid(B1798D9B-1282-4A31-BCF3-75609768B745), // IID_IFTPParserD
5482 oleautomation,
5483 nonextensible,
5484 helpstring("IFTPParserD Interface"),
5485 pointer_default(unique)
5486]
5487interface IFTPParserD : IDispatch
5488{
5497 [id(10), helpstring("method Initialize")]
5498 HRESULT Initialize([in] ParserFormat format);
5499
5517 [id(11), helpstring("method ParseLine")]
5518 HRESULT ParseLine([in] BSTR line, [out, retval] IFTPItem** item);
5519};
5520
5521[
5522 object,
5523 uuid(44ABDFAD-4F53-4CB3-8B68-3F70AB7943FB),
5524 oleautomation,
5525 dual,
5526 nonextensible,
5527 helpstring("IFTPFXP Interface"),
5528 pointer_default(unique)
5529]
5530interface IFTPFXP : IDispatch
5531{
5544 [propput, id(3), helpstring("property Source")]
5545 HRESULT Source([in] IFTPConnection *newValue);
5546 [propget, id(3), helpstring("property Source")]
5547 HRESULT Source([out, retval] IFTPConnection** retval);
5548
5561 [propput, id(4), helpstring("property Destination")]
5562 HRESULT Destination([in] IFTPConnection *newValue);
5563 [propget, id(4), helpstring("property Destination")]
5564 HRESULT Destination([out, retval] IFTPConnection** retval);
5565
5597 [id(10), helpstring("method FXPFile")]
5598 HRESULT FXPFile([in] BSTR sourceFile, [in] BSTR destinationFile, [in] long startPositionLo, [in] long startPositionHi);
5599
5600 [local] HRESULT FXPFileEx([in] LPCWSTR sourceFile, [in] LPCWSTR destinationFile, [in] ULONGLONG startPosition, [in] HANDLE cancelEvent);
5601};
5602
5603typedef [v1_enum] enum SSHServerSoftware
5604{
5605 [helpstring("SSHServerSoftware ftpSSHServerSoftware Unknown")] ftpSSHServerSoftwareUnknown = 0,
5606 [helpstring("SSHServerSoftware ftpSSHServerSoftware VShell")] ftpSSHServerSoftwareVShell = 1,
5607 [helpstring("SSHServerSoftware ftpSSHServerSoftware SSHTectia")] ftpSSHServerSoftwareSSHTectia = 2,
5608 [helpstring("SSHServerSoftware ftpSSHServerSoftware OpenSSH")] ftpSSHServerSoftwareOpenSSH = 3,
5609 [helpstring("SSHServerSoftware ftpSSHServerSoftware Titan")] ftpSSHServerSoftwareTitan = 4,
5610 [helpstring("SSHServerSoftware ftpSSHServerSoftware GSFTPS")] ftpSSHServerSoftwareGSFTPS = 5,
5611 [helpstring("SSHServerSoftware ftpSSHServerSoftware WinSSHD")] ftpSSHServerSoftwareWinSSHD = 6,
5612 [helpstring("SSHServerSoftware ftpSSHServerSoftware WSFTP")] ftpSSHServerSoftwareWSFTP = 7,
5613 [helpstring("SSHServerSoftware ftpSSHServerSoftware FTPShell")] ftpSSHServerSoftwareFTPShell = 8,
5614 [helpstring("SSHServerSoftware ftpSSHServerSoftware WeOnlyDo")] ftpSSHServerSoftwareWeOnlyDo = 9,
5615 [helpstring("SSHServerSoftware ftpSSHServerSoftware PragmaFortressSSH")] ftpSSHServerSoftwarePragmaFortressSSH = 10,
5616 [helpstring("SSHServerSoftware ftpSSHServerSoftware JSCAPE")] ftpSSHServerSoftwareJSCAPE = 11,
5617 [helpstring("SSHServerSoftware ftpSSHServerSoftware CoreFTP")] ftpSSHServerSoftwareCoreFTP = 12,
5618 [helpstring("SSHServerSoftware ftpSSHServerSoftware OpenVMS")] ftpSSHServerSoftwareOpenVMS = 13,
5619 [helpstring("SSHServerSoftware ftpSSHServerSoftware FSecure")] ftpSSHServerSoftwareFSecure = 14,
5620 [helpstring("SSHServerSoftware ftpSSHServerSoftware SSHcomOld")] ftpSSHServerSoftwareSSHcomOld = 15,
5621 [helpstring("SSHServerSoftware ftpSSHServerSoftware Sun")] ftpSSHServerSoftwareSun = 16,
5622 [helpstring("SSHServerSoftware ftpSSHServerSoftware ServU")] ftpSSHServerSoftwareServU = 17,
5623 [helpstring("SSHServerSoftware ftpSSHServerSoftware dropbear")] ftpSSHServerSoftwaredropbear = 18,
5624 [helpstring("SSHServerSoftware ftpSSHServerSoftware ReflectionForSecureIT")] ftpSSHServerSoftwareReflectionForSecureIT = 19,
5625 [helpstring("SSHServerSoftware ftpSSHServerSoftware SSHTools")] ftpSSHServerSoftwareSSHTools = 20,
5626 [helpstring("SSHServerSoftware ftpSSHServerSoftware GXSSSHD")] ftpSSHServerSoftwareGXSSSHD = 21,
5627 [helpstring("SSHServerSoftware ftpSSHServerSoftware ProFTPD")] ftpSSHServerSoftwareProFTPD = 22,
5628 [helpstring("SSHServerSoftware ftpSSHServerSoftware zFTPServer")] ftpSSHServerSoftwarezFTPServer = 23,
5629 [helpstring("SSHServerSoftware ftpSSHServerSoftware Maverick")] ftpSSHServerSoftwareMaverick = 24,
5630 [helpstring("SSHServerSoftware ftpSSHServerSoftware SecureTransport")] ftpSSHServerSoftwareSecureTransport = 25,
5631 [helpstring("SSHServerSoftware ftpSSHServerSoftware Xlight")] ftpSSHServerSoftwareXlight = 26
5633
5634typedef [v1_enum] enum SFTPStatus
5635{
5636// --- General Status ---
5637
5642 [helpstring("SFTPStatus ftpSFTPStatus Ok")]
5644
5651 [helpstring("SFTPStatus ftpSFTPStatus EOF")]
5653
5660 [helpstring("SFTPStatus ftpSFTPStatus Failure")]
5662
5668 [helpstring("SFTPStatus ftpSFTPStatus BadMessage")]
5670
5676 [helpstring("SFTPStatus ftpSFTPStatus OpUnsupported")]
5678
5679 // --- Connection State (Client Side) ---
5680
5685 [helpstring("SFTPStatus ftpSFTPStatus NoConnection")]
5687
5692 [helpstring("SFTPStatus ftpSFTPStatus ConnectionLost")]
5694
5695 // --- File & Path Existence ---
5696
5702 [helpstring("SFTPStatus ftpSFTPStatus NoSuchFile")]
5704
5711 [helpstring("SFTPStatus ftpSFTPStatus NoSuchPath")]
5713
5720 [helpstring("SFTPStatus ftpSFTPStatus FileAlreadyExists")]
5722
5729 [helpstring("SFTPStatus ftpSFTPStatus NotADirectory")]
5731
5738 [helpstring("SFTPStatus ftpSFTPStatus FileIsADirectory")]
5740
5746 [helpstring("SFTPStatus ftpSFTPStatus InvalidFilename")]
5748
5754 [helpstring("SFTPStatus ftpSFTPStatus LinkLoop")]
5756
5757 // --- Permissions & Access ---
5758
5764 [helpstring("SFTPStatus ftpSFTPStatus PermissionDenied")]
5766
5772 [helpstring("SFTPStatus ftpSFTPStatus WriteProtect")]
5774
5780 [helpstring("SFTPStatus ftpSFTPStatus CannotDelete")]
5782
5788 [helpstring("SFTPStatus ftpSFTPStatus DirNotEmpty")]
5790
5791 // --- Handles & Parameters ---
5792
5798 [helpstring("SFTPStatus ftpSFTPStatus InvalidHandle")]
5800
5806 [helpstring("SFTPStatus ftpSFTPStatus InvalidParameter")]
5808
5809 // --- Storage & Quotas (SFTP v6) ---
5810
5816 [helpstring("SFTPStatus ftpSFTPStatus NoMedia")]
5818
5824 [helpstring("SFTPStatus ftpSFTPStatus NoSpaceOnFilesystem")]
5826
5832 [helpstring("SFTPStatus ftpSFTPStatus QuotaExceeded")]
5834
5835 // --- Advanced Locking & Principals (SFTP v6) ---
5836
5842 [helpstring("SFTPStatus ftpSFTPStatus UnknownPrincipal")]
5844
5850 [helpstring("SFTPStatus ftpSFTPStatus LocalConflict")]
5852
5858 [helpstring("SFTPStatus ftpSFTPStatus ByteRangeLockConflict")]
5860
5866 [helpstring("SFTPStatus ftpSFTPStatus ByteRangeLockRefused")]
5868
5874 [helpstring("SFTPStatus ftpSFTPStatus DeletePending")]
5876
5882 [helpstring("SFTPStatus ftpSFTPStatus FileCorrupt")]
5884
5890 [helpstring("SFTPStatus ftpSFTPStatus OwnerInvalid")]
5892
5898 [helpstring("SFTPStatus ftpSFTPStatus GroupInvalid")]
5900
5906 [helpstring("SFTPStatus ftpSFTPStatus NoMatchingByteRangeLock")]
5909
5910// Forward declaration
5911interface IKey;
5912
5913[
5914 object,
5915 uuid(6807C542-6AE2-4E14-AF12-84C2E1A39E46),
5916 dual,
5917 nonextensible,
5918 helpstring("ISFTPStatVFS Interface"),
5919 pointer_default(unique)
5920]
5921interface ISFTPStatVFS : IDispatch
5922{
5924 [propget, id(1), helpstring("property bsize")] HRESULT bsize([out, retval] ULONGLONG* retval);
5925
5927 [propget, id(2), helpstring("property frsize")] HRESULT frsize([out, retval] ULONGLONG* retval);
5928
5930 [propget, id(3), helpstring("property blocks")] HRESULT blocks([out, retval] ULONGLONG* retval);
5931
5933 [propget, id(4), helpstring("property bfree")] HRESULT bfree([out, retval] ULONGLONG* retval);
5934
5936 [propget, id(5), helpstring("property bavail")] HRESULT bavail([out, retval] ULONGLONG* retval);
5937
5939 [propget, id(6), helpstring("property files")] HRESULT files([out, retval] ULONGLONG* retval);
5940
5942 [propget, id(7), helpstring("property ffree")] HRESULT ffree([out, retval] ULONGLONG* retval);
5943
5945 [propget, id(8), helpstring("property favail")] HRESULT favail([out, retval] ULONGLONG* retval);
5946
5948 [propget, id(9), helpstring("property fsid")] HRESULT fsid([out, retval] ULONGLONG* retval);
5949
5951 [propget, id(10), helpstring("property flag")] HRESULT flag([out, retval] ULONGLONG* retval);
5952
5954 [propget, id(11), helpstring("property namemax")] HRESULT namemax([out, retval] ULONGLONG* retval);
5955};
5956
5971[
5972 object,
5973 uuid(D117CF34-177D-49AB-BD19-46DC87857947),
5974 dual,
5975 nonextensible,
5976 helpstring("ISFTPVendorId Interface"),
5977 pointer_default(unique)
5978]
5979interface ISFTPVendorId : IDispatch
5980{
5996 [propput, id(1), helpstring("property VendorName")]
5997 HRESULT VendorName([in] BSTR newValue);
5998 [propget, id(1), helpstring("property VendorName")]
5999 HRESULT VendorName([out, retval] BSTR *retval);
6000
6015 [propput, id(2), helpstring("property ProductName")]
6016 HRESULT ProductName([in] BSTR newValue);
6017 [propget, id(2), helpstring("property ProductName")]
6018 HRESULT ProductName([out, retval] BSTR *retval);
6019
6034 [propput, id(3), helpstring("property ProductVersion")]
6035 HRESULT ProductVersion([in] BSTR newValue);
6036 [propget, id(3), helpstring("property ProductVersion")]
6037 HRESULT ProductVersion([out, retval] BSTR *retval);
6038
6054 [propput, id(4), helpstring("property ProductBuild")]
6055 HRESULT ProductBuild([in] ULONGLONG newValue);
6056 [propget, id(4), helpstring("property ProductBuild")]
6057 HRESULT ProductBuild([out, retval] ULONGLONG *retval);
6058};
6059
6060[
6061 object,
6062 uuid(F8D2F36D-B32D-45EF-965E-2DA153B3D523),
6063 dual,
6064 nonextensible,
6065 helpstring("ISFTPServerState Interface"),
6066 pointer_default(unique)
6067]
6068interface ISFTPServerState : IDispatch
6069{
6092 [propget, id(1), helpstring("property EOL")]
6093 HRESULT EOL([out, retval] BSTR *retval);
6094
6117 [propget, id(3), helpstring("property VendorId")]
6118 HRESULT VendorId([out, retval] ISFTPVendorId **retval);
6119
6140 [propget, id(4), helpstring("property MaxReadSize")]
6141 HRESULT MaxReadSize([out, retval] long* retval);
6142
6164 [propput, id(4), helpstring("property MaxReadSize")]
6165 HRESULT MaxReadSize([in] long newValue);
6166
6192 [id(100), helpstring("method IsExtension")]
6193 HRESULT IsExtension([in] BSTR extension, [out, retval] VARIANT_BOOL *retval);
6194};
6195
6196typedef [v1_enum] enum GSSAPIMethod
6197{
6201 [helpstring("GSSAPIMethod Unknown")]
6203
6216 [helpstring("GSSAPIMethod MITKerberos")]
6218
6232 [helpstring("GSSAPIMethod MicrosoftKerberos")]
6235
6236[
6237 object,
6238 uuid(B79FF913-446B-442B-A541-049178F39605),
6239 dual,
6240 nonextensible,
6241 helpstring("ISFTPSpaceAvailable Interface"),
6242 pointer_default(unique)
6243]
6244interface ISFTPSpaceAvailable : IDispatch
6245{
6247 [propget, id(1), helpstring("property BytesOnDevice")]
6248 HRESULT BytesOnDevice([out, retval] ULONGLONG* retval);
6249
6251 [propget, id(2), helpstring("property UnusedBytesOnDevice")]
6252 HRESULT UnusedBytesOnDevice([out, retval] ULONGLONG* retval);
6255 [propget, id(3), helpstring("property BytesAvailableToUser")]
6256 HRESULT BytesAvailableToUser([out, retval] ULONGLONG* retval);
6257
6262 [propget, id(4), helpstring("property UnusedBytesAvailableToUser")]
6263 HRESULT UnusedBytesAvailableToUser([out, retval] ULONGLONG* retval);
6264
6266 [propget, id(5), helpstring("property BytesPerAllocationUnit")]
6267 HRESULT BytesPerAllocationUnit([out, retval] long* retval);
6268};
6269
6277[
6278 object,
6279 uuid(DEE0FBC7-4879-4CA5-83D9-8BF827D6A1D7),
6280 dual,
6281 nonextensible,
6282 helpstring("ISSHConnectionInfo Interface"),
6283 pointer_default(unique)
6284]
6285interface ISSHConnectionInfo : IDispatch
6286{
6290 [propget, id(1), helpstring("property KeyExchangeAlgorithm")] HRESULT KeyExchangeAlgorithm([out, retval] KeyExchange* retval);
6291
6295 [propget, id(2), helpstring("property KeyExchangeHashAlgorithm")] HRESULT KeyExchangeHashAlgorithm([out, retval] HashAlgo* retval);
6296
6297 [propget, id(3), helpstring("property ClientToServerEncryption")] HRESULT ClientToServerEncryption([out, retval] Encryption* retval);
6298
6302 [propget, id(4), helpstring("property ServerToClientEncryption")] HRESULT ServerToClientEncryption([out, retval] Encryption* retval);
6303
6307 [propget, id(5), helpstring("property ClientToServerCompression")] HRESULT ClientToServerCompression([out, retval] SSHCompression* retval);
6308
6312 [propget, id(6), helpstring("property ServerToClientCompression")] HRESULT ServerToClientCompression([out, retval] SSHCompression* retval);
6313
6321 [propget, id(7), helpstring("property ClientToServerMAC")] HRESULT ClientToServerMAC([out, retval] HMAC* retval);
6322
6330 [propget, id(8), helpstring("property ServerToClientMAC")] HRESULT ServerToClientMAC([out, retval] HMAC* retval);
6331
6335 [propget, id(9), helpstring("property HostKeyAlgorithm")] HRESULT HostKeyAlgorithm([out, retval] SSHPublicKeyAlgo* retval);
6336};
6337
6341[
6342 object,
6343 uuid(F63AF79B-4567-40B2-84A9-07F823750AC6),
6344 dual,
6345 nonextensible,
6346 helpstring("ISSHServerState Interface"),
6347 pointer_default(unique)
6348]
6349interface ISSHServerState : IDispatch
6350{
6357 [propget, id(26), helpstring("property ServerSoftware")] HRESULT ServerSoftware([out, retval] SSHServerSoftware* retval);
6358
6369 [propget, id(59), helpstring("property OperatingSystem")] HRESULT OperatingSystem([out, retval] OperatingSystem *retval);
6370
6384 [propget, id(27), helpstring("property RemoteId")] HRESULT RemoteId([out, retval] BSTR* retval);
6385};
6386
6387interface ISFTPConnection;
6388
6389[
6390 object,
6391 uuid(EAFA9ED3-6D11-44F6-B28D-EEA199508903),
6392 dual,
6393 nonextensible,
6394 helpstring("ISSHConnection Interface"),
6395 pointer_default(unique)
6396]
6397interface ISSHConnection : IDispatch
6398{
6399 // OperationHandler
6403 [propget, id(2), helpstring("property Busy")]
6404 HRESULT Busy([out, retval] VARIANT_BOOL* retval);
6405
6416 [propget, id(3), helpstring("property ConnectionInfo")]
6417 HRESULT ConnectionInfo([out, retval] ISSHConnectionInfo** retval);
6418
6428 [propget, id(14), helpstring("property ConnectionStatus")]
6429 HRESULT ConnectionStatus([out, retval] ConnectionStatus* retval);
6430
6457 [propput, id(117), helpstring("property UseMessageLoop")]
6458 HRESULT UseMessageLoop([in] VARIANT_BOOL newValue);
6459 [propget, id(117), helpstring("property UseMessageLoop")]
6460 HRESULT UseMessageLoop([out, retval] VARIANT_BOOL* retval);
6461
6470 [propput, id(4), helpstring("property Host")]
6471 HRESULT Host([in] BSTR newValue);
6472 [propget, id(4), helpstring("property Host")]
6473 HRESULT Host([out, retval] BSTR* retval);
6474
6489 [propput, id(5), helpstring("property Port")]
6490 HRESULT Port([in] long newValue);
6491 [propget, id(5), helpstring("property Port")]
6492 HRESULT Port([out, retval] long* retval);
6493
6504 [propget, id(20), helpstring("property ProtocolFamily")]
6505 HRESULT ProtocolFamily([out, retval] ProtocolFamily* retval);
6506
6519 [propput, id(22), helpstring("property ProtocolFamilyPreference")]
6520 HRESULT ProtocolFamilyPreference([in] ProtocolFamily newValue);
6521 [propget, id(22), helpstring("property ProtocolFamilyPreference")]
6522 HRESULT ProtocolFamilyPreference([out, retval] ProtocolFamily* retval);
6523
6524 // ISSHConnection
6525
6538 [propput, id(6), helpstring("property Username")]
6539 HRESULT Username([in] BSTR newValue);
6540 [propget, id(6), helpstring("property Username")]
6541 HRESULT Username([out, retval] BSTR* retval);
6542
6560 [propput, id(7), helpstring("property Password")]
6561 HRESULT Password([in] BSTR newValue);
6562 [propget, id(7), helpstring("property Password")]
6563 HRESULT Password([out, retval] BSTR* retval);
6564
6582 [propput, id(8), helpstring("property ClientId")]
6583 HRESULT ClientId([in] BSTR newValue);
6584 [propget, id(8), helpstring("property ClientId")]
6585 HRESULT ClientId([out, retval] BSTR* retval);
6586
6603 [propput, id(19), helpstring("property Timeout")]
6604 HRESULT Timeout([in] long newValue);
6605 [propget, id(19), helpstring("property Timeout")]
6606 HRESULT Timeout([out, retval] long* retval);
6607
6623 [propput, id(32), helpstring("property CompressionLevel")]
6624 HRESULT CompressionLevel([in] long newValue);
6625 [propget, id(32), helpstring("property CompressionLevel")]
6626 HRESULT CompressionLevel([out, retval] long* retval);
6627
6640 [propput, id(10), helpstring("property PrivateKey")]
6641 HRESULT PrivateKey([in] IKey *newValue);
6642 [propget, id(10), helpstring("property PrivateKey")]
6643 HRESULT PrivateKey([out, retval] IKey** retval);
6644
6670 [propput, id(40), helpstring("property AgentKeyBlob")]
6671 HRESULT AgentKeyBlob([in] VARIANT* newValue);
6672 [propget, id(40), helpstring("property AgentKeyBlob")]
6673 HRESULT AgentKeyBlob([out, retval] VARIANT* retval);
6700 [propput, id(11), helpstring("property Authentications")]
6701 HRESULT Authentications([in] VARIANT* newValue);
6702 [propget, id(11), helpstring("property Authentications")]
6703 HRESULT Authentications([out, retval] VARIANT* retval);
6704
6740 [propput, id(12), helpstring("property Encryptions")]
6741 HRESULT Encryptions([in] VARIANT* newValue);
6742 [propget, id(12), helpstring("property Encryptions")]
6743 HRESULT Encryptions([out, retval] VARIANT* retval);
6744
6781 [propput, id(13), helpstring("property MACs")]
6782 HRESULT MACs([in] VARIANT* newValue);
6783 [propget, id(13), helpstring("property MACs")]
6784 HRESULT MACs([out, retval] VARIANT* retval);
6785
6815 [propput, id(9), helpstring("property Compressions")]
6816 HRESULT Compressions([in] VARIANT* newValue);
6817 [propget, id(9), helpstring("property Compressions")]
6818 HRESULT Compressions([out, retval] VARIANT* retval);
6819
6857 [propput, id(25), helpstring("property KeyExchanges")]
6858 HRESULT KeyExchanges([in] VARIANT* newValue);
6859 [propget, id(25), helpstring("property KeyExchanges")]
6860 HRESULT KeyExchanges([out, retval] VARIANT* retval);
6861
6888 [propput, id(28), helpstring("property ClientHostKey")]
6889 HRESULT ClientHostKey([in] IKey *newValue);
6890 [propget, id(28), helpstring("property ClientHostKey")]
6891 HRESULT ClientHostKey([out, retval] IKey** retval);
6892
6911 [propput, id(29), helpstring("property ClientHostname")]
6912 HRESULT ClientHostname([in] BSTR newValue);
6913 [propget, id(29), helpstring("property ClientHostname")]
6914 HRESULT ClientHostname([out, retval] BSTR* retval);
6922 [propget, id(30), helpstring("property ServerHostKey")]
6923 HRESULT ServerHostKey([out, retval] IKey** retval);
6924
6956 [propput, id(33), helpstring("property KeepAliveInterval")]
6957 HRESULT KeepAliveInterval([in] long newValue);
6958 [propget, id(33), helpstring("property KeepAliveInterval")]
6959 HRESULT KeepAliveInterval([out, retval] long* retval);
6960
6971 [propget, id(31), helpstring("property Proxy")]
6972 HRESULT Proxy([out, retval] IProxySettings** retval);
6973
6987 [propput, id(18), helpstring("property Logger")]
6988 HRESULT Logger([in] ILogger* logger);
6989
6998 [propput, id(171), helpstring("property Languages")]
6999 HRESULT Languages([in] VARIANT* newValue);
7000 [propget, id(171), helpstring("property Languages")]
7001 HRESULT Languages([out, retval] VARIANT* retval);
7002
7052 [propput, id(172), helpstring("property ServerHostKeyAlgorithms")]
7053 HRESULT ServerHostKeyAlgorithms([in] VARIANT* newValue);
7054 [propget, id(172), helpstring("property ServerHostKeyAlgorithms")]
7055 HRESULT ServerHostKeyAlgorithms([out, retval] VARIANT* retval);
7075 [propput, id(173), helpstring("property GSSAPIMethod")]
7076 HRESULT GSSAPIMethod([in] GSSAPIMethod newValue);
7077 [propget, id(173), helpstring("property GSSAPIMethod")]
7078 HRESULT GSSAPIMethod([out, retval] GSSAPIMethod* retval);
7079
7107 [propput, id(175), helpstring("property UsePasswordForKeyboardInteractive")]
7108 HRESULT UsePasswordForKeyboardInteractive([in] VARIANT_BOOL newValue);
7109 [propget, id(175), helpstring("property UsePasswordForKeyboardInteractive")]
7110 HRESULT UsePasswordForKeyboardInteractive([out, retval] VARIANT_BOOL* retval);
7111
7118 [propget, id(174), helpstring("property ServerState")]
7119 HRESULT ServerState([out, retval] ISSHServerState** retval);
7120
7131 [propget, id(15), helpstring("property SocketSettings")]
7132 HRESULT SocketSettings([out, retval] ISocketSettings** retval);
7133
7144 [propget, id(16), helpstring("property SpeedLimitSettings")]
7145 HRESULT SpeedLimitSettings([out, retval] ISpeedLimitSettings** retval);
7146
7152 [id(61), helpstring("method Close")]
7153 HRESULT Close();
7154
7158 [id(62), helpstring("method Abort")]
7159 HRESULT Abort();
7160
7174 [id(63), helpstring("method Connect")]
7175 HRESULT Connect();
7176
7200 [id(64), helpstring("method Disconnect")]
7201 HRESULT Disconnect();
7202
7217 [id(65), helpstring("method CreateSFTPConnection")]
7218 HRESULT CreateSFTPConnection([out, retval] ISFTPConnection **retval);
7219
7220 HRESULT SendPacket([in, size_is(length)] byte* data, [in] long length);
7221
7237 [id(177), helpstring("method SetFileLogger")]
7238 HRESULT SetFileLogger([out, retval] IFileLogger** fileLogger);
7239};
7240
7241[
7242 object,
7243 uuid(AA8FBBFD-22DF-41EF-83D0-5ECDB6BD47E6),
7244 oleautomation,
7245 dual,
7246 nonextensible,
7247 helpstring("ISFTPConnection Interface"),
7248 pointer_default(unique)
7249]
7250interface ISFTPConnection : IDispatch
7251{
7252 // Connection
7256 [propget, id(2), helpstring("property Busy")]
7257 HRESULT Busy([out, retval] VARIANT_BOOL* retval);
7258
7285 [propput, id(117), helpstring("property UseMessageLoop")]
7286 HRESULT UseMessageLoop([in] VARIANT_BOOL newValue);
7287 [propget, id(117), helpstring("property UseMessageLoop")]
7288 HRESULT UseMessageLoop([out, retval] VARIANT_BOOL* retval);
7289
7306 [propput, id(19), helpstring("property Timeout")]
7307 HRESULT Timeout([in] long newValue);
7308 [propget, id(19), helpstring("property Timeout")]
7309 HRESULT Timeout([out, retval] long* retval);
7310
7311 // SFTP
7312
7319 [propget, id(1), helpstring("property SSHConnection")]
7320 HRESULT SSHConnection([out, retval] ISSHConnection** retval);
7321
7350 [propput, id(24), helpstring("property ProtocolVersionPreference")]
7351 HRESULT ProtocolVersionPreference([in] long newValue);
7352 [propget, id(24), helpstring("property ProtocolVersionPreference")]
7353 HRESULT ProtocolVersionPreference([out, retval] long* retval);
7354
7382 [propput, id(182), helpstring("property SFTPServerCommand")]
7383 HRESULT SFTPServerCommand([in] BSTR newValue);
7384 [propget, id(182), helpstring("property SFTPServerCommand")]
7385 HRESULT SFTPServerCommand([out, retval] BSTR* retval);
7386
7415 [propput, id(183), helpstring("property ServerLineTerminator")]
7416 HRESULT ServerLineTerminator([in] BSTR newValue);
7417 [propget, id(183), helpstring("property ServerLineTerminator")]
7418 HRESULT ServerLineTerminator([out, retval] BSTR* retval);
7419
7432 [propget, id(4), helpstring("property ProtocolVersion")]
7433 HRESULT ProtocolVersion([out, retval] long* retval);
7434
7446 [propget, id(3), helpstring("property Status")]
7447 HRESULT Status([out, retval] SFTPConnectionStatus* retval);
7448
7466 [propget, id(181), helpstring("property VendorId")]
7467 HRESULT VendorId([out, retval] ISFTPVendorId **retval);
7468 [propput, id(181), helpstring("property VendorId")]
7469 HRESULT VendorId([in] ISFTPVendorId *newValue);
7470
7484 [propput, id(53), helpstring("property Logger")]
7485 HRESULT Logger([in] ILogger* logger);
7486
7502 [propget, id(54), helpstring("property LastStatusCode")]
7503 HRESULT LastStatusCode([out, retval] SFTPStatus* retval);
7504
7525 [propget, id(50), helpstring("property LastStatusMessage")]
7526 HRESULT LastStatusMessage([out, retval] BSTR* retval);
7527
7540 [propget, id(14), helpstring("property LastTransferBytes")]
7541 HRESULT LastTransferBytes([out, retval] ULONGLONG* retval);
7542
7554 [propget, id(15), helpstring("property LastTransferBytesLo")]
7555 HRESULT LastTransferBytesLo([out, retval] long* retval);
7556
7571 [propget, id(16), helpstring("property LastTransferBytesHi")]
7572 HRESULT LastTransferBytesHi([out, retval] long* retval);
7573
7586 [propget, id(17), helpstring("property LastTransferTime")]
7587 HRESULT LastTransferTime([out, retval] long *retval);
7588
7606 [propget, id(18), helpstring("property LastTransferSpeed")]
7607 HRESULT LastTransferSpeed([out, retval] long *retval);
7608
7645 [propput, id(37), helpstring("property CodePage")]
7646 HRESULT CodePage([in] long newValue);
7647 [propget, id(37), helpstring("property CodePage")]
7648 HRESULT CodePage([out, retval] long* retval);
7649
7660 [propget, id(170), helpstring("property ServerState")]
7661 HRESULT ServerState([out, retval] ISFTPServerState **retval);
7662
7667 [id(61), helpstring("method Close")]
7668 HRESULT Close();
7669
7673 [id(62), helpstring("method Abort")]
7674 HRESULT Abort();
7675
7686 [id(63), helpstring("method Connect")]
7687 HRESULT Connect();
7688
7703 [id(64), helpstring("method Disconnect")]
7704 HRESULT Disconnect();
7705
7721 [id(81), helpstring("method NewFile")]
7722 HRESULT NewFile([in] BSTR remoteFile);
7723
7758 [id(123), helpstring("method DownloadFile")]
7759 HRESULT DownloadFile([in] BSTR remoteFile, [in] VARIANT localFile, [in] DataTransferType transferType, [in] long startPositionLo, [in] long startPositionHi);
7760
7798 [id(146), helpstring("method DownloadFileEx")]
7799 HRESULT DownloadFileEx([in] BSTR remoteFile, [in] VARIANT localFile, [in] DataTransferType transferType, [in] ULONGLONG startPosition, [in] ULONGLONG endPosition, [in] long flags, [in] ITransferProgressEvents* progress);
7800
7834 [id(124), helpstring("method UploadFile")]
7835 HRESULT UploadFile([in] VARIANT localFile, [in] BSTR remoteFile, [in] DataTransferType transferType, [in] long startPositionLo, [in] long startPositionHi);
7836
7865 [id(125), helpstring("method UploadFileEx")]
7866 HRESULT UploadFileEx([in] VARIANT localFile, [in] BSTR remoteFile, [in] DataTransferType transferType, [in] ULONGLONG startPosition, [in] ITransferProgressEvents* progress);
7867
7903 [id(70), helpstring("method Rename")]
7904 HRESULT Rename([in] BSTR oldPath, [in] BSTR newPath, [in] long flags);
7905
7917 [id(71), helpstring("method RemoveFile")]
7918 HRESULT RemoveFile([in] BSTR file);
7919
7940 [id(73), helpstring("method RemoveDirectory")]
7941 HRESULT RemoveDirectory([in] BSTR directory);
7942
7959 [id(75), helpstring("method MakeDirectory")]
7960 HRESULT MakeDirectory([in] BSTR directory);
7961
7981 [id(77), helpstring("method ReadDirectory")]
7982 HRESULT ReadDirectory([in] BSTR directory, [out, retval] IFTPItems** retval);
7983
8004 [id(78), helpstring("method ReadDirectoryEx")]
8005 HRESULT ReadDirectoryEx([in] BSTR directory, [in] ITransferProgressEvents* progress, [out, retval] IFTPItems** retval);
8006
8026 [id(120), helpstring("method RealPath")]
8027 HRESULT RealPath([in] BSTR original, [out, retval] BSTR* retval);
8028
8062 [id(121), helpstring("method RealPathEx")]
8063 HRESULT RealPathEx([in] BSTR original, [in] long flags, [in] BSTR component, [out, retval] BSTR* retval);
8064
8081 [id(133), helpstring("method Stat")]
8082 HRESULT Stat([in] BSTR path, [in] long flags, [out, retval] IFTPItem** retval);
8083
8103 [id(135), helpstring("method LStat")]
8104 HRESULT LStat([in] BSTR path, [in] long flags, [out, retval] IFTPItem** retval);
8105
8122 [id(134), helpstring("method StatEx")]
8123 HRESULT StatEx([in] BSTR path, [in] long flags, VARIANT_BOOL followLink, [out, retval] IFTPItem** retval);
8124
8145 [id(136), helpstring("method SetStat")]
8146 HRESULT SetStat([in] BSTR path, [in] IFTPItem* item);
8147
8167 [id(140), helpstring("method ReadLink")]
8168 HRESULT ReadLink([in] BSTR path, [out, retval] BSTR* retval);
8169
8202 [id(141), helpstring("method Link")]
8203 HRESULT Link([in] BSTR path, [in] BSTR linkPoint, [in] VARIANT_BOOL symbolicLink);
8204
8222 [id(142), helpstring("method StatVFS")]
8223 HRESULT StatVFS([in] BSTR path, [out,retval] ISFTPStatVFS** retval);
8224
8254 [id(168), helpstring("method GetFileHash")]
8255 HRESULT GetFileHash([in] HashAlgo algo, [in] BSTR path, [in] ULONGLONG offset, [in] ULONGLONG length, [out, retval] ISFTPExtendedCheckFileResult** retval);
8256
8270 [id(174), helpstring("method GetSpaceAvailable")]
8271 HRESULT GetSpaceAvailable([in] BSTR path, [out, retval] ISFTPSpaceAvailable** retval);
8272
8293 [id(176), helpstring("method CopyFile")]
8294 HRESULT CopyFile([in] BSTR sourceFile, [in] BSTR destinationFile, [in] VARIANT_BOOL overwrite);
8295
8311 [id(177), helpstring("method SetFileLogger")]
8312 HRESULT SetFileLogger([out, retval] IFileLogger** fileLogger);
8313};
8314
8315[
8316 object,
8317 uuid(F15D7259-E281-4F1B-8AA0-492AA3BDB7D5),
8318 oleautomation,
8319 dual,
8320 nonextensible,
8321 helpstring("IOpenSSLKey Interface"),
8322 pointer_default(unique)
8323]
8325{
8326 [id(110), helpstring("method Generate")] HRESULT Generate([in] long nid, [in] long bits);
8327};
8328
8329typedef [v1_enum] enum KeyFileFormat
8330{
8331 [helpstring("KeyFileFormat ftpKeyFileFormat Unknown")] ftpKeyFileFormatUnknown = 0,
8332 [helpstring("KeyFileFormat ftpKeyFileFormat PKCS8")] ftpKeyFileFormatPKCS8 = 1,
8333 [helpstring("KeyFileFormat ftpKeyFileFormat PKCS12")] ftpKeyFileFormatPKCS12 = 2,
8334 [helpstring("KeyFileFormat ftpKeyFileFormat VanDyke")] ftpKeyFileFormatVanDyke = 3,
8335 [helpstring("KeyFileFormat ftpKeyFileFormat SSH")] ftpKeyFileFormatSSH = 4,
8336 [helpstring("KeyFileFormat ftpKeyFileFormat OpenSSL")] ftpKeyFileFormatOpenSSL = 5,
8337 [helpstring("KeyFileFormat ftpKeyFileFormat Putty")] ftpKeyFileFormatPutty = 6,
8338 [helpstring("KeyFileFormat ftpKeyFileFormat OpenSSH")] ftpKeyFileFormatOpenSSH = 7
8340
8341[
8342 object,
8343 uuid(9B3D1FFA-EFBD-408B-AA81-B9B186138E24),
8344 oleautomation,
8345 dual,
8346 nonextensible,
8347 helpstring("IKeyManager Interface"),
8348 pointer_default(unique)
8349]
8350interface IKeyManager : IDispatch
8351{
8367 [id(1), helpstring("method LoadFile")] HRESULT LoadFile([in] BSTR file, [in] BSTR password, [out, retval] IKey** retval);
8368
8387 [id(2), helpstring("method SaveFile")] HRESULT SaveFile([in] KeyFileFormat fileFormat, [in] IKey* key, [in] KeyType keyType, [in] BSTR file, [in] BSTR password);
8388
8422 [id(3), helpstring("method LoadFromCertificateStore")] HRESULT LoadFromCertificateStore([in] BSTR thumbprint, [out, retval] IKey** retval);
8423};
8424
8425[
8426 uuid(1975424E-6927-40b2-A479-DE92310E8944), // IID_IConnection
8427 pointer_default(unique)
8428]
8429interface IConnection : IUnknown
8430{
8431 [propget] HRESULT ConnectionStatus([out, retval] ConnectionStatus* retval);
8432}
8433
8434[
8435 object,
8436 uuid(2314C692-2C8A-4168-BB4B-DC26D525A1AE),
8437 nonextensible,
8438 pointer_default(unique)
8439]
8440interface IAES128CTRWriteStream : IUnknown
8441{
8442 HRESULT SetKey([in, size_is(keyLength)] byte* key, [in] ULONG keyLength);
8443};
8444
8445[
8446 object,
8447 uuid(324D5D60-31E1-4D59-887F-96B93BAC3B2B),
8448 nonextensible,
8449 pointer_default(unique)
8450]
8451interface IAES128CTRReadStream : IUnknown
8452{
8453 HRESULT SetKey([in, size_is(keyLength)] byte* key, [in] ULONG keyLength);
8454};
8455
8456[
8457 object,
8458 uuid(14FCCC7F-E60D-4E08-A0D8-B4E01823223D),
8459 nonextensible,
8460 pointer_default(unique)
8461]
8462interface IHashProgress : IUnknown
8463{
8464 HRESULT OnProgress(ULONGLONG chunk);
8465};
8466
8467[
8468 object,
8469 uuid(AC19E8BE-AFFB-4AD4-954E-EDED75F2379E),
8470 dual,
8471 oleautomation,
8472 nonextensible,
8473 helpstring("ICryptoHash Interface"),
8474 pointer_default(unique)
8475]
8476interface ICryptoHash : IDispatch
8477{
8478 [propget, id(1), helpstring("property Type")] HRESULT Type([out, retval] HashAlgo* retval);
8479
8480 [id(10), helpstring("method Initialize")] HRESULT Initialize(HashAlgo hashtype);
8481 [id(12), helpstring("method ReInitialize")] HRESULT ReInitialize();
8482 [id(13), helpstring("method GetSize")] HRESULT GetSize([out, retval] long *retval);
8483 [id(14), helpstring("method AddBSTR")] HRESULT AddBSTR([in] BSTR bstr);
8484 [id(22), helpstring("method AddBlob")] HRESULT AddBlob([in, size_is(cbBlob)] const byte* pbBlob, UINT cbBlob);
8485 [id(15), helpstring("method AddFile")] HRESULT AddFile([in] VARIANT var);
8486 [id(11), helpstring("method AddStream")] HRESULT AddStream([in] IStream* stream, [in] ULONGLONG length, [in] IHashProgress* progress);
8487 [id(16), helpstring("method GetValue")] HRESULT GetValue([out, retval] VARIANT *retval);
8488 [id(17), helpstring("method CompareStringValue")] HRESULT CompareStringValue([in] BSTR value1, [in] BSTR value2, [out, retval] long *retval);
8489 [id(19), helpstring("method GetValueAsString")] HRESULT GetValueAsString([out, retval] BSTR *retval);
8490 HRESULT GetValueEx([out, size_is(*valueLength)] byte* value, [in, out] ULONG* valueLength);
8491};
8492
8493[
8494 object,
8495 uuid(9E58A1EB-F70E-4FA4-A6FD-F6DB4F19EE5F),
8496 nonextensible,
8497 pointer_default(unique)
8498]
8499interface IParserWriteStream : IUnknown
8500{
8501 [propput] HRESULT Format([in] ParserFormat newValue);
8502 [propget] HRESULT Format([out, retval] ParserFormat* retval);
8503 [propput] HRESULT Codepage([in] UINT newValue);
8504 [propget] HRESULT Codepage([out, retval] UINT* retval);
8505 [propget] HRESULT FTPItems([out, retval] IFTPItems** retval);
8506};
8507
8508[
8509 object,
8510 uuid(3FCDE1F6-BB49-490C-B422-B3937D7B7F16),
8511 dual,
8512 nonextensible,
8513 helpstring("IUtils Interface"),
8514 pointer_default(unique)
8515]
8516interface IUtils : IDispatch
8517{
8518 [id(100), helpstring("method HashAlgoToString")] HRESULT HashAlgoToString([in] HashAlgo hashalgo, [out,retval] BSTR *retval);
8519 [id(101), helpstring("method KeyExchangeToString")] HRESULT KeyExchangeToString([in] KeyExchange keyexchange, [out,retval] BSTR *retval);
8520 [id(102), helpstring("method EncryptionToString")] HRESULT EncryptionToString([in] Encryption encryption, [out,retval] BSTR *retval);
8521 [id(103), helpstring("method HMACToString")] HRESULT HMACToString([in] HMAC mac, [out,retval] BSTR *retval);
8522 [id(104), helpstring("method SSHPublicKeyAlgoToString")] HRESULT SSHPublicKeyAlgoToString([in] SSHPublicKeyAlgo keyalgo, [out,retval] BSTR *retval);
8523 [id(105), helpstring("method SSHCompressionToString")] HRESULT SSHCompressionToString([in] SSHCompression compression, [out,retval] BSTR *retval);
8524 [id(106), helpstring("method ProxyTypeToString")] HRESULT ProxyTypeToString([in] ProxyType proxytype, [out,retval] BSTR *retval);
8525 [id(107), helpstring("method ServerSoftwareToString")] HRESULT ServerSoftwareToString([in] ServerSoftware software, [out,retval] BSTR *retval);
8526 [id(108), helpstring("method FileTimeToUnixTime")] HRESULT FileTimeToUnixTime([in] FILETIME filetime, [out, retval] ULONGLONG *retval);
8527 [id(109), helpstring("method UnixTimeToFileTime")] HRESULT UnixTimeToFileTime([in] ULONGLONG unixTime, [out, retval] FILETIME *retval);
8528 [id(110), helpstring("method FileTimeToVariantTime")] HRESULT FileTimeToVariantTime([in] FILETIME filetime, [out, retval] DATE *retval);
8529 [id(111), helpstring("method VariantTimeToFileTime")] HRESULT VariantTimeToFileTime([in] DATE date, [out, retval] FILETIME *retval);
8530 [id(112), helpstring("method MessageFromHRESULT")] HRESULT MessageFromHRESULT([in] HRESULT result, [out, retval] BSTR* retval);
8531};
8532
8533[
8534 object,
8535 uuid(A53A8E57-41F6-49d5-9495-2FF849A06F03),
8536 pointer_default(unique)
8537]
8538interface ISSHChannelClient : IUnknown
8539{
8540 HRESULT OnDetach();
8541 HRESULT OnClose();
8542 HRESULT OnData();
8543 HRESULT OnSend();
8544 HRESULT OnEof();
8545};
8546
8563[
8564 object,
8565 uuid(49D66525-9192-43C3-A767-C047A8168DDB),
8566 pointer_default(unique)
8567]
8568interface ISSHKeyBlobHelper : IUnknown
8569{
8587 HRESULT GetPublicKeyBlob([in] IKey* key, [out, retval] VARIANT* retval);
8588};
8589
8590[
8591 object,
8592 uuid(306E71BD-B532-4F21-9036-41FBBB0DE83B),
8593 pointer_default(unique)
8594]
8595interface IBCryptKey : IKey
8596{
8597 HRESULT Initialize([in] LPCWSTR algorithmName);
8598 HRESULT InitializeEx([in] LPCWSTR algorithmName, [in] LPCWSTR curveName);
8599 HRESULT Generate([in] long bits);
8600};
8601
8602[
8603 object,
8604 uuid(4B53484C-3C6F-4430-BB2B-B16CC220489B),
8605 pointer_default(unique)
8606]
8607interface INCryptKey : IKey
8608{
8609 HRESULT Initialize([in] LPCWSTR provider);
8610 HRESULT CreatePersistedKey([in] LPCWSTR algorithmName);
8611 HRESULT Generate([in] long bits);
8612};
8613
8614[
8615 object,
8616 uuid(EF6EF546-4063-443B-98D7-E360CB31F124),
8617 nonextensible,
8618 pointer_default(unique),
8619 local
8620]
8621interface INCryptKeyCustom : IUnknown
8622{
8623 HRESULT Initialize([in] /*PCCERT_CONTEXT*/void* certContext);
8624 HRESULT GetHandle([out,retval] /*NCRYPT_KEY_HANDLE*/ULONG_PTR *retval);
8625};
8626
8627[
8628 uuid(7A3A786C-EB8C-43b3-BC10-8D09ACF5D195),
8629 version(4.0),
8630 helpstring("SmartFTP FTP Library 4.0 Type Library")
8631]
8633{
8634 importlib(STDOLE_TLB);
8635
8636 typedef [v1_enum] enum _HRESULT
8637 {
8638 [helpstring("Operation pending")] FTPLIB_E_BUSY = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3101),
8639 [helpstring("Not connected")] FTPLIB_E_NOTCONNECTED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3102),
8640 [helpstring("Timeout")] FTPLIB_E_TIMEOUT = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3103),
8641 [helpstring("No operation to abort")] FTPLIB_E_NOOPERATION = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3104),
8642 [helpstring("Not initialized")] FTPLIB_E_NOTINIT = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3105),
8643 [helpstring("Wrong reply")] FTPLIB_E_WRONGREPLY = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3106),
8644 [helpstring("More data is required to continue")] FTPLIB_E_MOREDATA = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3108),
8645 [helpstring("Paused")] FTPLIB_E_PAUSED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3109),
8646 [helpstring("Connection setting mismatch")] FTPLIB_E_SETTINGMISMATCH = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x310a),
8647 [helpstring("Connection not disconnected")] FTPLIB_E_NOTDISCONNECTED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x310b),
8648 [helpstring("Connection is closed")] FTPLIB_E_CONNECTIONCLOSED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x310c),
8649 [helpstring("Data connection failure")] FTPLIB_E_DATACONNECTION_CONNECT = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x310d),
8650 [helpstring("Authentication failed")] FTPLIB_E_AUTHENTICATION = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x310e),
8651 [helpstring("PORT command failed")] FTPLIB_E_PORTCOMMANDFAILED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x310f),
8652 [helpstring("Restart not permitted")] FTPLIB_E_RESTARTNOTPERMITTED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3110),
8653 [helpstring("Server protocol violation")] FTPLIB_E_SERVERPROTOCOLVIOLATION = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3111),
8654 [helpstring("Command not implemented")] FTPLIB_E_COMMANDNOTIMPLEMENTED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3112),
8655 [helpstring("Not a regular file")] FTPLIB_E_NOTAREGULARFILE = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3113),
8656 [helpstring("Too many connections")] FTPLIB_E_TOOMANYCONNECTIONS = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3114),
8657 [helpstring("PASV command failed")] FTPLIB_E_PASVCOMMANDFAILED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3115),
8658 [helpstring("TLS not supported")] FTPLIB_E_TLSNOTSUPPORTED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3116),
8659 [helpstring("Host name expected")] FTPLIB_E_HOSTNAMEEXPECTED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3117),
8660 [helpstring("Server policy requires TLS")] FTPLIB_E_SERVERPOLICYREQUIRESTLS = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3118),
8661 [helpstring("The IP is banned")] FTPLIB_E_IPBANNED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3119),
8662 [helpstring("Home directory")] FTPLIB_E_HOMEDIRECTORY = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x311a),
8663 [helpstring("Box: User needs to accept terms of service")] FTPLIB_E_BOX_ACCEPTTERMSOFSERVICE = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x311b),
8664 [helpstring("Box: The application is blocked by your administrator")] FTPLIB_E_BOX_APPLICATIONBLOCKED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x311c),
8665 [helpstring("Box: Captcha is required")] FTPLIB_E_BOX_CAPTCHAREQUIRED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x311d),
8666 [helpstring("Local policy requires CCC")] FTPLIB_E_LOCALPOLICYREQUIRESCCC = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x311e),
8667 [helpstring("Not logged in")] FTPLIB_E_NOTLOGGEDIN = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x311f),
8668 [helpstring("The server's user limit has been reached")] FTPLIB_E_TOOMANYUSERS = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3129),
8669 [helpstring("TLS data session token error")] FTPLIB_E_TLSDATASESSIONTOKENERROR = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x312B),
8670 [helpstring("Could not create file")] FTPLIB_E_COULDNOTCREATEFILE = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x312C),
8671
8672 // SSH specific
8673 [helpstring("Unexpected remote id")] FTPLIB_E_SSH_UNEXPECTEDREMOTEID = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3120),
8674 [helpstring("Host authentication failed")] FTPLIB_E_SSH_HOSTAUTHENTICATION = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3121),
8675 [helpstring("Algorithm negotiation failed")] FTPLIB_E_SSH_NEGOTIATION = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3122),
8676 [helpstring("Invalid host key")] FTPLIB_E_SSH_INVALIDHOSTKEY = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3123),
8677 [helpstring("Invalid message")] FTPLIB_E_SSH_INVALIDMESSAGE = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3124),
8678 [helpstring("Failed to request channel")] FTPLIB_E_SSH_CHANNEL_REQUESTFAILURE = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3125),
8679 [helpstring("Failed to open channel")] FTPLIB_E_SSH_CHANNEL_OPENFAILURE = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3126),
8680 [helpstring("Key exchange failed")] FTPLIB_E_SSH_KEYEXCHANGE = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3127),
8681 [helpstring("Channel eof")] FTPLIB_E_SSH_CHANNEL_EOF = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3128),
8682 [helpstring("Invalid host signature")] FTPLIB_E_SSH_INVALIDHOSTSIGNATURE = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x312A),
8683 [helpstring("Host key rejected")] FTPLIB_E_SSH_HOSTKEYREJECTED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x312D),
8684
8685 [helpstring("Wrong password")] FTPLIB_E_KEYFILE_PASSWORD = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3130),
8686 [helpstring("Invalid format")] FTPLIB_E_KEYFILE_INVALIDFORMAT = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3131),
8687 [helpstring("Key is invalid")] FTPLIB_E_KEY_INVALID = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3132),
8688 [helpstring("Unsupported algorithm")] FTPLIB_E_KEYFILE_UNSUPPORTED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3133),
8689
8690 // SFTP
8691 [helpstring("Unexpected SFTP packet type")] FTPLIB_E_SFTP_UNEXPECTEDPACKETTYPE = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3140),
8692 [helpstring("SFTP status error")] FTPLIB_E_SFTP_STATUSERROR = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3141),
8693 [helpstring("Invalid message")] FTPLIB_E_SFTP_INVALIDMESSAGE = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3142),
8694
8695 // FTP more
8696 [helpstring("Command not implemented for argument")] FTPLIB_E_COMMANDNOTIMPLEMENTEDFORARGUMENT = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3150),
8697 [helpstring("Character conversion failed")] FTPLIB_E_CHARACTERCONVERSION = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3151),
8698 [helpstring("SSH server detected")] FTPLIB_E_SSHSERVERDETECTED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3152),
8699
8700 // License
8701 [helpstring("License: Feature not licensed")] FTPLIB_E_LICENSE_FEATURENOTLICENSED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3200),
8702 [helpstring("License: Product mismatch")] FTPLIB_E_LICENSE_PRODUCTMISMATCH = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3201),
8703 [helpstring("License: Version mismatch")] FTPLIB_E_LICENSE_VERSIONMISMATCH = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3202),
8704 [helpstring("License: MachineId mismatch")] FTPLIB_E_LICENSE_MACHINEIDMISMATCH = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3203),
8705 [helpstring("License: License expired")] FTPLIB_E_LICENSE_EXPIRED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3204),
8706 [helpstring("License: Maintenance expired")] FTPLIB_E_LICENSE_MAINTENANCEEXPIRED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3205),
8707
8708 // License activation error codes
8709 [helpstring("Activation: Unsupported version")] FTPLIB_E_ACTIVATION_UNSUPPORTEDVERSION = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x5500),
8710 [helpstring("Activation: Invalid serial")] FTPLIB_E_ACTIVATION_INVALIDSERIAL = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x5501),
8711 [helpstring("Activation: Product mismatch")] FTPLIB_E_ACTIVATION_PRODUCTMISMATCH = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x5502),
8712 [helpstring("Activation: License inactive")] FTPLIB_E_ACTIVATION_LICENSEINACTIVE = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x5503),
8713 [helpstring("Activation: License expired")] FTPLIB_E_ACTIVATION_LICENSEEXPIRED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x5504),
8714 [helpstring("Activation: License exhausted")] FTPLIB_E_ACTIVATION_LICENSEEXHAUSTED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x5505),
8715 [helpstring("Activation: Invalid request")] FTPLIB_E_ACTIVATION_INVALIDREQUEST = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x5506),
8716 [helpstring("Activation: SubLicense not found")] FTPLIB_E_ACTIVATION_SUBLICENSENOTFOUND = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x5507),
8717 [helpstring("Activation: Maintenance expired")] FTPLIB_E_ACTIVATION_MAINTENANCEEXPIRED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x5508),
8718 [helpstring("Activation: SubLicense disabled")] FTPLIB_E_ACTIVATION_SUBLICENSEDISABLED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x5509),
8719 [helpstring("Activation: Product version not supported")] FTPLIB_E_ACTIVATION_PRODUCTVERSIONNOTSUPPORTED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x550A),
8720 [helpstring("Activation: Operating system not supported")] FTPLIB_E_ACTIVATION_OPERATINGSYSTEMNOTSUPPORTED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x550B)
8721 } _HRESULT;
8722
8739 typedef [v1_enum] enum UnixPermissions
8740 {
8741 // --- Public (World/Other) Permissions ---
8747 [helpstring("UnixPermission ftpUnixPermission PublicExecute")]
8749
8756 [helpstring("UnixPermission ftpUnixPermission PublicWrite")]
8758
8764 [helpstring("UnixPermission ftpUnixPermission PublicRead")]
8766
8767
8768 // --- Group Permissions ---
8774 [helpstring("UnixPermission ftpUnixPermission GroupExecute")]
8776
8782 [helpstring("UnixPermission ftpUnixPermission GroupWrite")]
8784
8790 [helpstring("UnixPermission ftpUnixPermission GroupRead")]
8792
8793
8794 // --- User (Owner) Permissions ---
8800 [helpstring("UnixPermission ftpUnixPermission UserExecute")]
8802
8808 [helpstring("UnixPermission ftpUnixPermission UserWrite")]
8810
8816 [helpstring("UnixPermission ftpUnixPermission UserRead")]
8818
8819
8820 // --- Special Bits ---
8828 [helpstring("UnixPermission ftpUnixPermission SystemSticky")]
8830
8839 [helpstring("UnixPermission ftpUnixPermission SetGID")]
8841
8848 [helpstring("UnixPermission ftpUnixPermission SetUID")]
8850
8851 } UnixPermissions;
8852
8853 // mapped from SSH_FILEXFER_ATTR_FLAGS_
8854 typedef [v1_enum] enum SFTPItemAttributeBit
8855 {
8856 [helpstring("SFTPItemAttributeBit ftpSFTPItemAttributeBit ReadOnly")] ftpSFTPItemAttributeBitReadOnly = 0x1,
8857 [helpstring("SFTPItemAttributeBit ftpSFTPItemAttributeBit System")] ftpSFTPItemAttributeBitSystem = 0x2,
8858 [helpstring("SFTPItemAttributeBit ftpSFTPItemAttributeBit Hidden")] ftpSFTPItemAttributeBitHidden = 0x4,
8859 [helpstring("SFTPItemAttributeBit ftpSFTPItemAttributeBit CaseInsensitive")] ftpSFTPItemAttributeBitCaseInsensitive = 0x8,
8860 [helpstring("SFTPItemAttributeBit ftpSFTPItemAttributeBit Archive")] ftpSFTPItemAttributeBitArchive = 0x10,
8861 [helpstring("SFTPItemAttributeBit ftpSFTPItemAttributeBit Encrypted")] ftpSFTPItemAttributeBitEncrypted = 0x20,
8862 [helpstring("SFTPItemAttributeBit ftpSFTPItemAttributeBit Compressed")] ftpSFTPItemAttributeBitCompressed = 0x40,
8863 [helpstring("SFTPItemAttributeBit ftpSFTPItemAttributeBit Sparse")] ftpSFTPItemAttributeBitSparse = 0x80,
8864 [helpstring("SFTPItemAttributeBit ftpSFTPItemAttributeBit AppendOnly")] ftpSFTPItemAttributeBitAppendOnly = 0x100,
8865 [helpstring("SFTPItemAttributeBit ftpSFTPItemAttributeBit Immutable")] ftpSFTPItemAttributeBitImmutable = 0x200,
8866 [helpstring("SFTPItemAttributeBit ftpSFTPItemAttributeBit Sync")] ftpSFTPItemAttributeBitSync = 0x400,
8867 [helpstring("SFTPItemAttributeBit ftpSFTPItemAttributeBit TranslationErr")] ftpSFTPItemAttributeBitTranslationErr = 0x800
8868 } SFTPItemAttributeBit;
8869
8870 // mapped from SSH_FILEXFER_ATTR_
8871 typedef [v1_enum] enum SFTPItemAttribute
8872 {
8873 [helpstring("SFTPItemAttribute ftpSFTPItemAttribute Size")] ftpSFTPItemAttributeSize = 0x1,
8874 [helpstring("SFTPItemAttribute ftpSFTPItemAttribute UIDGID")] ftpSFTPItemAttributeUIDGID = 0x2,
8875 [helpstring("SFTPItemAttribute ftpSFTPItemAttribute Permissions")] ftpSFTPItemAttributePermissions = 0x4,
8876 [helpstring("SFTPItemAttribute ftpSFTPItemAttribute AccessTime")] ftpSFTPItemAttributeAccessTime = 0x8,
8877 [helpstring("SFTPItemAttribute ftpSFTPItemAttribute CreateTime")] ftpSFTPItemAttributeCreateTime = 0x10,
8878 [helpstring("SFTPItemAttribute ftpSFTPItemAttribute ModifyTime")] ftpSFTPItemAttributeModifyTime = 0x20,
8879 [helpstring("SFTPItemAttribute ftpSFTPItemAttribute ACL")] ftpSFTPItemAttributeACL = 0x40,
8880 [helpstring("SFTPItemAttribute ftpSFTPItemAttribute OwnerGroup")] ftpSFTPItemAttributeOwnerGroup = 0x80,
8881 [helpstring("SFTPItemAttribute ftpSFTPItemAttribute SubSecondTimes")] ftpSFTPItemAttributeSubSecondTimes = 0x100,
8882 [helpstring("SFTPItemAttribute ftpSFTPItemAttribute Bits")] ftpSFTPItemAttributeBits = 0x200,
8883 [helpstring("SFTPItemAttribute ftpSFTPItemAttribute AllocationSize")] ftpSFTPItemAttributeAllocationSize = 0x400,
8884 [helpstring("SFTPItemAttribute ftpSFTPItemAttribute TextHint")] ftpSFTPItemAttributeTextHint = 0x800,
8885 [helpstring("SFTPItemAttribute ftpSFTPItemAttribute MimeType")] ftpSFTPItemAttributeMimeType = 0x1000,
8886 [helpstring("SFTPItemAttribute ftpSFTPItemAttribute LinkCount")] ftpSFTPItemAttributeLinkCount = 0x2000,
8887 [helpstring("SFTPItemAttribute ftpSFTPItemAttribute UntranslatedName")] ftpSFTPItemAttributeUntranslatedName = 0x4000,
8888 [helpstring("SFTPItemAttribute ftpSFTPItemAttribute CTime")] ftpSFTPItemAttributeCTime = 0x8000,
8889 [helpstring("SFTPItemAttribute ftpSFTPItemAttribute Extended")] ftpSFTPItemAttributeExtended = 0x80000000
8890 } SFTPItemAttribute;
8891
8906 typedef [v1_enum] enum LISTOption
8907 {
8913 [helpstring("LISTOption ftpLISTOption Long")]
8915
8921 [helpstring("LISTOption ftpLISTOption All")]
8923
8928 [helpstring("LISTOption ftpLISTOption Links")]
8930
8936 [helpstring("LISTOption ftpLISTOption T")]
8938
8944 [helpstring("LISTOption ftpLISTOption Recursive")]
8946 } LISTOption;
8947
8951 typedef [v1_enum] enum DownloadFlags
8952 {
8960 [helpstring("DownloadFlags ftpDownloadFlag None")]
8962
8975 [helpstring("DownloadFlags ftpDownloadFlag ReadBeyondEnd")]
8977
8978 } DownloadFlags;
8979
8987 typedef [v1_enum] enum SSHAuthentication
8988 {
8989 [helpstring("SSHAuthentication Unknown")]
8991
9001 [helpstring("SSHAuthentication None")]
9003
9010 [helpstring("SSHAuthentication Password")]
9012
9022 [helpstring("SSHAuthentication KeyboardInteractive")]
9024
9033 [helpstring("SSHAuthentication PublicKey")]
9035
9043 [helpstring("SSHAuthentication SecurID")]
9045
9053 [helpstring("SSHAuthentication HostBased")]
9055
9063 [helpstring("SSHAuthentication GSSAPI")]
9065 } SSHAuthentication;
9066
9072 [
9073 uuid(D216FD3A-DAC1-4692-AAE1-EB5551128990),
9074 nonextensible,
9075 helpstring("Event interface for FTPConnection")
9076 ]
9078 {
9079 properties:
9080
9081 methods:
9082 [id(1), helpstring("method OnDisconnect")] void OnDisconnect();
9083 [id(3), helpstring("method OnVerifyCert")] void OnVerifyCert([in,out] VARIANT_BOOL* shouldContinue);
9084 };
9085
9086 [
9087 object,
9088 uuid(0B79DE64-B5EB-430E-90F9-291F20ECDC3A),
9089 pointer_default(unique)
9090 ]
9091 interface IFTPConnectionEvents : IUnknown
9092 {
9093 HRESULT OnDisconnect();
9094 HRESULT OnVerifyCert([in,out] VARIANT_BOOL* shouldContinue);
9095 };
9096
9110 [
9111 uuid(50177264-39E2-43EC-8377-E1A97AB63ED2),
9112 helpstring("FTPConnectionSTA Class"),
9113 ]
9115 {
9116 [default] interface IFTPConnection;
9117 [default, source] dispinterface _IFTPConnectionEvents;
9118 };
9119
9135 [
9136 uuid(B32243B2-7D9E-464D-A2A4-4117540E0F70),
9137 helpstring("FTPConnectionMTA Class"),
9138 ]
9140 {
9141 [default] interface IFTPConnection;
9142 [default, source] dispinterface _IFTPConnectionEvents;
9143 [source] interface IFTPConnectionEvents;
9144 interface IConnection;
9145 interface IConnectionWithLogger;
9146 };
9147
9154 [
9155 uuid(614D8CE6-3583-49af-BACE-4B92EB4C4A73),
9156 helpstring("FTPParser Class"),
9157 ]
9159 {
9160 interface IFTPParser;
9161 [default] dispinterface IFTPParserD;
9162 };
9163
9170 [
9171 uuid(D7A7E08A-31B5-4b7b-8908-2F4530349C50),
9172 helpstring("FTPPortPool Class"),
9173 ]
9175 {
9176 [default] interface IFTPPortPool;
9177 };
9178
9184 [
9185 uuid(0BBB9B85-DE7A-4DE5-90C1-82ACF2AE6FA2),
9186 helpstring("FTPFXP Class"),
9187 ]
9188 coclass FTPFXP
9189 {
9190 [default] interface IFTPFXP;
9191 };
9192
9200 [
9201 uuid(B46A15B8-9AA5-41A4-897D-B58A809B2D5B),
9202 helpstring("GlobalSpeedLimit Class"),
9203 ]
9205 {
9206 [default] interface IGlobalSpeedLimit;
9207 };
9208
9215 [
9216 uuid(52D6E699-9256-414F-8FCD-F38FDF6AC8EE),
9217 helpstring("Global Class"),
9218 ]
9219 coclass Global
9220 {
9221 [default] interface IGlobal;
9222 };
9223
9234 [
9235 uuid(2A49E162-7159-4F6F-BA7D-FC110DC0C603),
9236 nonextensible,
9237 helpstring("_ISFTPConnectionEvents Interface")
9238 ]
9240 {
9241 properties:
9242 methods:
9243
9254 [id(3), helpstring("method OnClose")]
9255 void OnClose();
9256 };
9257
9271 [
9272 object,
9273 uuid(1FFFC239-2D50-4049-BF97-F98671CB7EB7),
9274 pointer_default(unique)
9275 ]
9276 interface ISFTPConnectionEvents : IUnknown
9277 {
9288 HRESULT OnClose();
9289 };
9290
9303 [
9304 uuid(066D6AC8-34D6-450b-B92F-17C8F6CC5E44),
9305 nonextensible,
9306 helpstring("_ISSHConnectionEvents Interface")
9307 ]
9309 {
9310 properties:
9311 methods:
9316 [id(3), helpstring("method OnDisconnect")]
9318
9323 [id(11), helpstring("method OnLogin")]
9324 void OnLogin();
9325
9339 [id(13), helpstring("method OnHostKey")]
9340 void OnHostKey([in] VARIANT varHostKey,[in, out] VARIANT_BOOL* accept);
9341
9352 [id(14), helpstring("method OnLoginChallenge")]
9353 void OnLoginChallenge([in] BSTR challenge,[out] BSTR* response);
9354
9360 [id(15), helpstring("method OnUserAuthBanner")]
9361 void OnUserAuthBanner([in] BSTR message);
9362
9370 [id(16), helpstring("method OnPasswordChangeRequest")]
9371 void OnPasswordChangeRequest([in] BSTR prompt,[out] BSTR* newPassword,[in, out] VARIANT_BOOL* handled);
9372
9378 [id(19), helpstring("method OnAuthentication")]
9379 void OnAuthentication([in] BSTR method);
9380
9387 [id(20), helpstring("method OnHostKeys")]
9388 void OnHostKeys([in] VARIANT hostKeys);
9389 };
9390
9391 [
9392 object,
9393 uuid(75B7A9CA-430E-49E7-A5D3-EA371143DA8C),
9394 pointer_default(unique)
9395 ]
9396 interface ISSHConnectionEvents : IUnknown
9397 {
9398 HRESULT OnDisconnect();
9399 HRESULT OnLogin();
9400 HRESULT OnHostKey([in] VARIANT varHostKey, [in, out] VARIANT_BOOL* accept);
9401 HRESULT OnLoginChallenge([in] LPCWSTR challenge, [out] BSTR *response);
9402 HRESULT OnUserAuthBanner([in] LPCWSTR message);
9403 HRESULT OnPasswordChangeRequest([in] LPCWSTR prompt, [out] BSTR *newPassword, [in, out] VARIANT_BOOL* handled);
9404 HRESULT OnAuthentication([in] LPCWSTR method);
9405 HRESULT OnHostKeys([in, size_is(numberOfKeys)] const PROPVARIANT hostKeys[*], [in] UINT numberOfKeys);
9406 };
9407
9428 [
9429 uuid(08E560E0-86E2-4DDE-A397-E7C82DE9CD94),
9430 helpstring("SFTPConnection Class")
9431 ]
9433 {
9437 [default] interface ISFTPConnection;
9438
9442 [default, source] dispinterface _ISFTPConnectionEvents;
9443
9447 [source] interface ISFTPConnectionEvents;
9448 };
9449
9466 [
9467 uuid(DCA42CB3-D61B-4B82-888D-E3D893E28EE8),
9468 helpstring("FTPItem Class")
9469 ]
9470 coclass FTPItem
9471 {
9472 [default] interface IFTPItem;
9473 };
9474
9475 [
9476 uuid(F0B71643-5FE6-4FCA-89F5-525F06F580DD),
9477 helpstring("OpenSSLKey Class")
9478 ]
9480 {
9481 [default] interface IOpenSSLKey;
9482 };
9483
9502 [
9503 uuid(A9A48E15-6303-491D-9E6E-96F0E2418A1E),
9504 helpstring("KeyManager Class")
9505 ]
9507 {
9511 [default] interface IKeyManager;
9512 };
9513
9514 [
9515 uuid(AAC5FE7F-3615-4D42-B913-C22EACEF1363),
9516 helpstring("AES128CTRWriteStream Class")
9517 ]
9519 {
9520 [default] interface IAES128CTRWriteStream;
9521 interface IStreamFilter;
9522 interface IStreamFilterInfo;
9523 };
9524
9525 [
9526 uuid(026F6EBB-0A23-4585-B2E5-E167B0C34D17),
9527 helpstring("AES128CTRReadStream Class")
9528 ]
9530 {
9531 [default] interface IAES128CTRReadStream;
9532 interface IStreamFilter;
9533 interface IStreamFilterInfo;
9534 };
9535
9536 [
9537 uuid(2D7B4FA9-1507-4EE1-9CFD-12159C91EB9C),
9538 helpstring("CryptoHash Class")
9539 ]
9541 {
9542 [default] interface ICryptoHash;
9543 };
9544
9548 [
9549 uuid(1679D561-2D4C-453D-B11A-52BED2E29B12),
9550 helpstring("FTPClientId Class")
9551 ]
9553 {
9557 [default] interface IFTPClientId;
9558 };
9559
9560 [
9561 uuid(B6DFA153-8930-4FB4-8FE3-2D0D76422764),
9562 helpstring("ParserWriteStream Class")
9563 ]
9565 {
9566 [default] interface IParserWriteStream;
9567 };
9568
9569 [
9570 uuid(2AF42C62-29E4-4B68-8EB2-F63B6B5701F3),
9571 helpstring("SFTPVendorId Class")
9572 ]
9574 {
9575 [default] interface ISFTPVendorId;
9576 };
9577
9590 [
9591 uuid(A1B47E91-51FC-42AC-A661-31C78534DF7D),
9592 helpstring("SSHConnection Class")
9593 ]
9595 {
9599 [default] interface ISSHConnection;
9600
9604 [default, source] dispinterface _ISSHConnectionEvents;
9605
9609 [source] interface ISSHConnectionEvents;
9610 };
9611
9612 [
9613 uuid(2D9B03D3-392A-42DB-96F2-37F58A4E98D3),
9614 helpstring("Utils Class")
9615 ]
9616 coclass Utils
9617 {
9618 [default] interface IUtils;
9619 };
9620
9621 [
9622 uuid(21BA1BBB-59C8-4D94-9C59-5F5A73115310),
9623 helpstring("SSHKeyBlobHelper Class")
9624 ]
9626 {
9627 [default] interface ISSHKeyBlobHelper;
9628 };
9629
9630 [
9631 uuid(8640D9C2-8B88-41D6-BA21-414A1561EA59),
9632 helpstring("BCryptKey Class")
9633 ]
9635 {
9636 [default] interface IBCryptKey;
9637 };
9638
9639 [
9640 uuid(06099E23-684A-4D60-8D2C-83D666C75123),
9641 helpstring("NCryptKey Class")
9642 ]
9644 {
9645 [default] interface INCryptKey;
9646 interface INCryptKeyCustom;
9647 };
9648
9649 [
9650 uuid(7AC02032-BBB0-4A4F-BB4F-E92C5A225A28),
9651 helpstring("FileLogger Class")
9652 ]
9654 {
9655 [default] interface IFileLogger;
9656 };
9657};
Definition sfFTPLib.idl:9530
Definition sfFTPLib.idl:9519
Definition sfFTPLib.idl:9635
Definition sfFTPLib.idl:9541
Encapsulates the client application identity sent to the server.
Definition sfFTPLib.idl:9553
Definition sfFTPLib.idl:9140
Definition sfFTPLib.idl:9115
The implementation class for Server-to-Server (FXP) transfers.
Definition sfFTPLib.idl:9189
Represents a single file, directory, or symbolic link within a file system.
Definition sfFTPLib.idl:9471
Definition sfFTPLib.idl:9159
The concrete implementation of the port pool manager.
Definition sfFTPLib.idl:9175
Definition sfFTPLib.idl:9654
The central configuration and licensing manager for the library.
Definition sfFTPLib.idl:9220
The component class responsible for managing global bandwidth usage.
Definition sfFTPLib.idl:9205
Provides a centralized toolkit for creating, loading, and managing SSH user identity keys.
Definition sfFTPLib.idl:9507
Definition sfFTPLib.idl:9644
Definition sfFTPLib.idl:9480
Definition sfFTPLib.idl:9565
The main class for establishing SFTP (SSH File Transfer Protocol) connections.
Definition sfFTPLib.idl:9433
Definition sfFTPLib.idl:9574
The main class for establishing SSH (Secure Shell) sessions for command execution.
Definition sfFTPLib.idl:9595
Definition sfFTPLib.idl:9626
Definition sfFTPLib.idl:9617
Definition sfFTPLib.idl:8452
HRESULT SetKey([in, size_is(keyLength)] byte *key, [in] ULONG keyLength)
Definition sfFTPLib.idl:8441
HRESULT SetKey([in, size_is(keyLength)] byte *key, [in] ULONG keyLength)
Definition sfFTPLib.idl:8596
HRESULT Generate([in] long bits)
HRESULT Initialize([in] LPCWSTR algorithmName)
HRESULT InitializeEx([in] LPCWSTR algorithmName, [in] LPCWSTR curveName)
Definition sfFTPLib.idl:2841
HRESULT OnComplete([in] HRESULT error)
Definition sfFTPLib.idl:8430
ConnectionStatus ConnectionStatus
Definition sfFTPLib.idl:2987
HRESULT GetLogger([out] ILogger **logger)
HRESULT SetLogger([in, unique] ILogger *logger)
Definition sfFTPLib.idl:8477
HRESULT Initialize(HashAlgo hashtype)
HRESULT GetSize([out, retval] long *retval)
HRESULT AddBlob([in, size_is(cbBlob)] const byte *pbBlob, UINT cbBlob)
HRESULT GetValueEx([out, size_is(*valueLength)] byte *value, [in, out] ULONG *valueLength)
HRESULT ReInitialize()
HRESULT GetValue([out, retval] VARIANT *retval)
HashAlgo Type
HRESULT AddStream([in] IStream *stream, [in] ULONGLONG length, [in] IHashProgress *progress)
HRESULT AddBSTR([in] BSTR bstr)
HRESULT GetValueAsString([out, retval] BSTR *retval)
HRESULT AddFile([in] VARIANT var)
HRESULT CompareStringValue([in] BSTR value1, [in] BSTR value2, [out, retval] long *retval)
Encapsulates the client application identity sent to the server via the CSID and CLNT commands.
Definition sfFTPLib.idl:1670
BSTR Name
Gets or sets the application name used in the CSID and CLNT commands.
BSTR Version
Gets or sets the application version used in the CSID and CLNT commands.
Definition sfFTPLib.idl:3537
HRESULT ReadDirectoryEx([in] ITransferProgressEvents *progress, [out, retval] IFTPItems **retval)
ULONGLONG LastTransferBytes
Retrieves the total number of bytes transferred during the last SFTP transfer.
BSTR PortIP
Specifies the IP address sent to the server during Active Mode (PORT) negotiations.
HRESULT GetMLST([in] BSTR name, [out, retval] IFTPItem **retval)
HRESULT Close()
Closes the connection.
long CompressionLevel
Controls the aggressiveness of the zlib compression algorithm.
HRESULT UpdateWorkingDirectory()
Synchronizes the local WorkingDirectory property with the server.
HRESULT RemoveDirectory([in] BSTR directory)
Removes a directory from the server.
HRESULT NewFile([in] BSTR file)
Creates a new, empty (zero-byte) file on the remote server.
DataProtection DataProtection
DataTransferType DataTransferType
Gets or sets the transfer mode (ASCII vs. Binary) for file operations.
VARIANT_BOOL HidePassword
Controls whether the password is masked in the component's log output.
HRESULT RenameFile([in] BSTR fileFrom, [in] BSTR fileTo)
Renames or moves a file on the server.
BSTR WorkingDirectory
Retrieves the current remote working directory.
HRESULT FXPDownloadFile([in] BSTR remoteFile, [in] ULONGLONG startPosition)
Initiates a server-to-server (FXP) file transfer from this server.
PassiveMode PassiveMode
Controls how the client determines the target IP address for Passive Mode data connections.
BSTR Account
Gets or sets the account information used for the ACCT command.
HRESULT ReadDirectoryRaw([in] VARIANT localFile)
Downloads the raw directory listing from the server to a local file.
long FileBufferSize
Sets the size of the internal memory buffer used for local file I/O operations.
HRESULT DeleteFile([in] BSTR file)
Deletes a file from the current working directory on the server.
long LISTOption
Gets or sets the flags used for the FTP LIST command.
BSTR Host
Specifies the destination server address.
ILogger Logger
Attaches a logging mechanism to the FTP session for debugging and auditing.
long LastTransferSpeed
Retrieves the average data transfer rate of the last FTP transfer.
HRESULT LastError
Retrieves the HRESULT error code of the most recent operation.
BSTR PeerName
Retrieves the IP address of the currently connected remote server.
VARIANT_BOOL IdleKeepAlive
Enables automatic "keep-alive" packets to prevent connection timeouts during inactivity.
VARIANT_BOOL Passive
Controls whether the data connection is established in Passive (PASV) or Active (PORT) mode.
VARIANT_BOOL UseMLSD
Controls whether the component uses the MLSD command if supported by the server.
HRESULT GetFileHash([in] HashAlgo algo, [in] BSTR file, [in] ULONGLONG start, [in] ULONGLONG length, [out, retval] BSTR *retval)
Retrieves the hash value of a file or portion specified with start and length.
IProxySettings Proxy
Accesses the proxy configuration settings for the connection.
DataProtection CommandProtection
HRESULT SetCreateTime([in] BSTR file, [in] FILETIME time)
Sets the creation timestamp of a file on the remote server.
HRESULT InitializeTransfer()
Explicitly applies data transfer settings to the server.
HRESULT DownloadFileEx([in] BSTR remoteFile, [in] VARIANT localFile, [in] ULONGLONG startPosition, [in] ULONGLONG endPosition, [in] ITransferProgressEvents *progress)
Downloads a file from the current working directory on the remote server with extended options.
BSTR Password
Gets or sets the password used for authentication.
IFTPClientId ClientId
Gets or sets the client identification information sent to the server via the CSID and CLNT commands.
ProtocolFamily ProtocolFamily
Retrieves the network protocol family (IPv4 or IPv6) used for the active connection.
HRESULT MakeDirectory([in] BSTR directory)
Creates a new directory on the server.
ProtocolFamily ProtocolFamilyPreference
Controls the preference for IPv4 or IPv6 during hostname resolution.
HRESULT GetFileSize([in] BSTR file, [out, retval] ULONGLONG *retval)
Retrieves the size of a specified file on the server.
BSTR LastCommand
Retrieves the raw text of the most recent FTP command sent to the server.
HRESULT RenameDirectory([in] BSTR directoryFrom, [in] BSTR directoryTo)
Renames or moves a directory on the server.
VARIANT_BOOL Busy
Indicates whether the connection is currently executing an operation.
HRESULT CopyFile([in] BSTR sourceFile, [in] BSTR destinationFile)
HRESULT FXPUploadFile([in] BSTR remoteFile, [in] ULONGLONG startPosition)
Initiates a server-to-server (FXP) file transfer to this server.
ISocketSettings SocketSettings
Accesses the low-level TCP socket configuration.
VARIANT_BOOL UseMessageLoop
Controls whether the component processes Windows messages during blocking operations.
FeatureDiscoveryMode FeatureDiscovery
Configures when the FEAT command is sent to discover server capabilities.
HRESULT Command([in] BSTR command)
Sends a raw string command to the server.
HRESULT SetUnixPermissions([in] BSTR name, [in] long permissions)
Sets the Unix permissions (mode) of a remote file or directory.
HRESULT ChangeDirectoryUp()
Changes the current working directory to the parent directory on the remote server.
long DataTransferSpeedLimit
Sets a maximum bandwidth limit for data transfers.
VARIANT_BOOL Aborted
Indicates whether the last operation was explicitly cancelled by the user.
long LastTransferBytesLo
Retrieves the lower 32 bits of the last transfer size.
HRESULT Continue()
Continues a pending operation.
HRESULT SetModifyTimeAsDate([in] BSTR file, [in] VARIANT date)
Sets the modification timestamp of a file using an OLE Automation Date.
HRESULT SetCreateTimeAsDate([in] BSTR file, [in] VARIANT date)
Sets the creation timestamp of a file using an OLE Automation Date.
HRESULT UploadFile([in] BSTR localFile, [in] BSTR remoteFile, [in] long startPositionLo, [in] long startPositionHi)
Uploads a local file to the current working directory on the remote server.
long LastTransferBytesHi
Retrieves the upper 32 bits of the last transfer size.
HRESULT ReadDirectory([out, retval] IFTPItems **retval)
Retrieves the contents of the current working directory on the server.
HRESULT SetModifyTime([in] BSTR file, [in] FILETIME time)
Sets the modification timestamp of a file on the remote server.
HRESULT UploadFileEx([in] VARIANT localFile, [in] BSTR remoteFile, [in] ULONGLONG startPosition, [in] ITransferProgressEvents *progress)
Uploads a file or stream to the remote server with extended options.
VARIANT_BOOL Login
Controls whether the component automatically performs the USER/PASS authentication sequence upon conn...
HRESULT DownloadFile([in] BSTR remoteFile, [in] BSTR localFile, [in] long startPositionLo, [in] long startPositionHi)
Downloads a file from the current working directory on the remote server.
VARIANT_BOOL PROTFallback
Controls whether the client falls back to an unencrypted data channel if encrypted data transfer (PRO...
VARIANT_BOOL LimitLocalPortRange
Enables the use of a specific pool of local ports for data connections.
HRESULT DownloadFromCommand([in] BSTR command, [in] VARIANT localFile, [in] long remoteStartPosLo, [in] long remoteStartPosHi)
HRESULT ClearCommandChannel()
Clears the command channel.
BSTR PassiveAddress
Specifies or retrieves the IP address used for Server-to-Server (FXP) data connections.
HRESULT LastDataConnectionError
Retrieves the specific error code encountered on the Data Channel socket.
long Port
Specifies the TCP port number to connect to.
FTPProtocol Protocol
Gets or sets the security protocol used for the connection.
HRESULT Abort()
Cancels the currently executing blocking operation.
HRESULT Connect()
Establishes a connection to the configured remote host and port.
ITlsSocket SSLSocketLayer
Retrieves the underlying TLS socket object used for secure communication.
HRESULT GetModifyTime([in] BSTR file, [out, retval] FILETIME *retval)
Retrieves the last modified time of a specified file on the server.
HRESULT SetFileLogger([out, retval] IFileLogger **fileLogger)
Creates a file logger sfFTPLib::FileLogger and attaches it to the Logger property.
HRESULT GetSpaceAvailable([in] BSTR path, [out, retval] ISFTPSpaceAvailable **retval)
Retrieves the available disk space information for a specified path on the server.
VARIANT_BOOL TransferKeepAlive
Enables the sending of NOOP commands on the Control Channel during active file transfers.
long KeepAliveInterval
Sets the time interval (in seconds) between automatic keep-alive packets.
HRESULT GetModifyTimeAsDate([in] BSTR file, [out, retval] VARIANT *retval)
Retrieves the last modified time of a specified file on the remote server.
HRESULT Disconnect()
Gracefully disconnects from the remote host.
long Timeout
Sets the maximum time (in seconds) to wait for a network operation to complete.
IFTPServerState ServerState
Retrieves the interface used to inspect the current state of the server session.
long LastReplyCode
Retrieves the numeric status code returned by the FTP server for the most recent command.
BSTR LastReply
Retrieves the raw text response received from the FTP server for the most recent command.
BSTR Username
Gets or sets the username used for authentication.
PortMode PortMode
Controls how the client determines the IP address sent in the PORT command (Active Mode).
VARIANT_BOOL SSCN
Enables or disables the sending of the SSCN command for secure FXP transfers.
ISpeedLimitSettings SpeedLimitSettings
Accesses the bandwidth throttling configuration for this specific connection.
HRESULT Stat([in] BSTR name, [out, retval] IFTPItems **retval)
Retrieves file status or a directory listing using the control connection.
DataTransferMode DataTransferMode
Gets or sets the transmission mode (Stream, Block, or Compressed) used for data transfer.
HRESULT GetFileSize32([in] BSTR file, [out, retval] long *retval)
Retrieves the size of a specified file on the server (for legacy applications).
long LastTransferTime
Retrieves the duration of the last FTP transfer in milliseconds.
HRESULT ChangeDirectory([in] BSTR directory)
Changes the current working directory on the server.
HRESULT ReadDirectoryFromCommand([in] BSTR command, [out, retval] IFTPItems **retval)
ConnectionStatus ConnectionStatus
Retrieves the current state of the SSH connection.
Definition sfFTPLib.idl:5531
HRESULT FXPFile([in] BSTR sourceFile, [in] BSTR destinationFile, [in] long startPositionLo, [in] long startPositionHi)
Transfers a file directly between two remote servers (FXP).
HRESULT FXPFileEx([in] LPCWSTR sourceFile, [in] LPCWSTR destinationFile, [in] ULONGLONG startPosition, [in] HANDLE cancelEvent)
IFTPConnection Source
Sets or retrieves the source connection object.
IFTPConnection Destination
Sets or retrieves the destination connection object.
The IFTPItem interface is a representation of a folder/file.
Definition sfFTPLib.idl:3061
long SizeHi
Retrieves the upper 32 bits of the file size.
VARIANT ModifyTimeAsDate
long ValidAttributeBits
Sets or retrieves the mask of valid file attributes.
VARIANT CTimeAsDate
long UnixFilePermissions
Sets or retrieves the Unix file permissions.
FILETIME CTime
Sets or retrieves the item's metadata change time (Unix ctime).
ItemType Type
Sets or retrieves the type of the item.
FILETIME CreateTime
Sets or retrieves the item's creation time (FILETIME format).
ULONGLONG AllocationSize
Sets or retrieves the number of bytes allocated for the item on the disk.
FILETIME ModifyTime
Sets or retrieves the item's last modification time (FILETIME format).
HRESULT IsValidAttribute([in] FTPItemAttribute attribute, [out, retval] VARIANT_BOOL *retval)
Checks if a specific attribute is available for this item.
long TimePrecision
HRESULT GetPropertyStore([out, retval] IPropertyStore **propertyStore)
Returns an owning reference to the item's separate property-store object.
BSTR LinkPoint
Sets or retrieves the target path of a symbolic link.
BSTR Unique
BSTR Group
Sets or retrieves the group of the item.
VARIANT AccessTimeAsDate
ULONGLONG Size
Sets or retrieves the size of the item in bytes.
FILETIME AccessTime
Sets or retrieves the item's last access time (FILETIME format).
BSTR MimeType
long SizeLo
Retrieves the lower 32 bits of the file size.
BSTR Owner
Sets or retrieves the owner of the item.
long AttributeBits
Sets or retrieves the file attribute flags.
VARIANT_BOOL UTC
Indicates whether the item's timestamps are in Coordinated Universal Time (UTC).
BSTR Name
Sets or retrieves the name of the item.
VARIANT CreateTimeAsDate
Definition sfFTPLib.idl:3455
IFTPItem Item([in] long index)
Retrieves the item at the specified index.
HRESULT GetAt([in] UINT index, [out, retval] IFTPItem **item)
long Count
Retrieves the total number of items in the collection.
IUnknown _NewEnum
Interface for parsing raw FTP directory listings.
Definition sfFTPLib.idl:5488
HRESULT ParseLine([in] BSTR line, [out, retval] IFTPItem **item)
Parses a single line of directory listing text into an item object.
HRESULT Initialize([in] ParserFormat format)
Configures the parser for a specific directory listing format.
Definition sfFTPLib.idl:5468
HRESULT Initialize([in] ParserFormat format)
HRESULT ParseLine([in] LPCWSTR line, [out, retval] IFTPItem **item)
Manages a specific range of local ports for Active FTP data connections.
Definition sfFTPLib.idl:1357
long MaxPort
Retrieves the upper bound of the allowed port range.
HRESULT SetPortRange([in] long minPort, [in] long maxPort)
Defines the range of local ports to use.
long MinPort
Retrieves the lower bound of the allowed port range.
HRESULT NextPort([out, retval] long *retval)
Retrieves the next available port from the configured pool.
Encapsulates the server identification and capability data returned in a CSID reply.
Definition sfFTPLib.idl:1725
BSTR Version
Retrieves the version string of the FTP server software.
BSTR Name
Retrieves the name of the FTP server software. This property identifies the specific server product.
CaseSensitivity CaseSensitivity
Retrieves the filesystem case-sensitivity rules reported by the server.
Definition sfFTPLib.idl:1766
long CodePage
Retrieves the Windows Code Page identifier used for filename encoding.
DataProtection DataProtection
Retrieves the current security level of the data channel.
BSTR WorkingDirectory
Retrieves the current remote working directory.
HRESULT GetCaseSensitivity([out, retval] CaseSensitivity *retval)
Determines if the remote file system distinguishes between uppercase and lowercase filenames.
ServerType ServerType
Retrieves the identified type or operating system of the remote server.
VARIANT_BOOL SSCN
Retrieves the status of the Set Secure Connection Negotiation (SSCN) mode.
HRESULT EvaluateParserFormat([out, retval] ParserFormat *retval)
BSTR FEATReply
Retrieves the raw server response to the FEAT command.
DataTransferType DataTransferType
Retrieves the currently active data transfer mode.
BSTR WelcomeMessage
Retrieves the initial greeting message sent by the server.
HRESULT LookupFeature([in] BSTR key, [out] BSTR *value, [out, retval] VARIANT_BOOL *retval)
Checks if a specific server feature is supported and retrieves its parameters.
HRESULT GetServerCapabilityState([in] ServerCapability capability, [out, retval] ServerCapabilityState *retval)
DataTransferMode DataTransferMode
Retrieves the currently active data transfer mode (Stream, Block, or Compressed).
DataProtection CommandProtection
Retrieves the security level of the Control (Command) channel.
VARIANT_BOOL PBSZ
Indicates whether the Protection Buffer Size (PBSZ) has been successfully negotiated.
IFTPServerId ServerId
Retrieves the server identification details obtained via the CSID command.
HRESULT IsHashAlgoAvailable([in] HashAlgo algo, [out, retval] VARIANT_BOOL *retval)
Checks if the server supports a specific hashing algorithm.
ServerSoftware ServerSoftware
Retrieves the specific server software family detected by the component.
OperatingSystem OperatingSystem
Retrieves the detected operating system family of the remote server.
BSTR HomeDirectory
Retrieves the initial login directory for the user.
BSTR SYSTReply
Retrieves the server's response to the SYST command.
Definition sfFTPLib.idl:3002
BSTR File
Full path to the log file.
HRESULT WriteLog([in] BSTR text)
LogFormat Format
Log file format.
Provides global configuration, statistics, and licensing management for the library.
Definition sfFTPLib.idl:1253
VARIANT_BOOL FIPS
Enables or disables FIPS 140-2 compliant mode.
BSTR ActivationUrl
Sets or retrieves the URL used for online activation.
ULONGLONG TotalBytesSent
Retrieves the total number of bytes sent by all instances of the library.
ULONGLONG TotalBytesReceived
Retrieves the total number of bytes received by all instances of the library.
BSTR Version
Retrieves the version of the library.
HRESULT LoadLicense([in] BSTR productKey)
Applies a product key to license the component.
Definition sfFTPLib.idl:1424
long UploadSpeedLimit
Sets or retrieves the maximum upload speed.
long DownloadSpeedLimit
Sets or retrieves the maximum download speed.
Definition sfFTPLib.idl:8463
HRESULT OnProgress(ULONGLONG chunk)
Encapsulates a cryptographic key pair, public key, or certificate.
Definition sfFTPLib.idl:2437
HRESULT SetProperty([in] LPCWSTR pszProperty, [in, size_is(cbInput)] byte *pbInput, [in] ULONG cbInput, [in] ULONG dwFlags)
Sets advanced or algorithm-specific properties.
CertificateType CertificateType
Indicates the format of the attached certificate.
KeyAlgo Algo
Identifies the cryptographic algorithm used by this key.
HRESULT ImportBlob([in] LPCWSTR pszBlobType, [in, size_is(cbInput)] byte *pbInput, [in] ULONG cbInput)
Loads a key or certificate from a memory buffer.
HRESULT Sign([in] HashAlgo hashAlgo, [in, size_is(cbInput)] byte *pbInput, [in] ULONG cbInput, [out, size_is(*pcbSignature)] byte *pbSignature, [in, out] ULONG *pcbSignature, [in] ULONG flags)
Generates a digital signature for a data blob.
long Bits
Retrieves the strength of the key in bits.
HRESULT Verify([in] HashAlgo hashAlgo, [in, size_is(cbSignature)] byte *pbSignature, [in] ULONG cbSignature, [in, size_is(cbInput)] byte *pbInput, [in] ULONG cbInput, [in] ULONG flags)
Verifies a digital signature against a data blob.
HRESULT ExportKey([in] LPCWSTR pszBlobType, [out, size_is(*pcbData)] byte *pbData, [in, out] ULONG *pcbData)
Serializes the key to a memory buffer.
VARIANT Certificate
Retrieves the raw certificate data associated with this key, if any.
KeyType Type
Retrieves the classification of the key (e.g., Private, Public, or None).
Definition sfFTPLib.idl:8351
HRESULT LoadFromCertificateStore([in] BSTR thumbprint, [out, retval] IKey **retval)
Loads a cryptographic key from the Windows "Personal" (My) Certificate Store.
HRESULT LoadFile([in] BSTR file, [in] BSTR password, [out, retval] IKey **retval)
Loads a cryptographic key from a local file.
HRESULT SaveFile([in] KeyFileFormat fileFormat, [in] IKey *key, [in] KeyType keyType, [in] BSTR file, [in] BSTR password)
Saves a key object to a file in a specified format.
Definition sfFTPLib.idl:2975
HRESULT Log([in] StatusEventType eventType, [in, size_is(textLength)] const WCHAR *text, [in] UINT textLength)
Definition sfFTPLib.idl:8622
HRESULT Initialize([in] void *certContext)
HRESULT GetHandle([out, retval] ULONG_PTR *retval)
Definition sfFTPLib.idl:8608
HRESULT Generate([in] long bits)
HRESULT Initialize([in] LPCWSTR provider)
HRESULT CreatePersistedKey([in] LPCWSTR algorithmName)
Definition sfFTPLib.idl:8325
HRESULT Generate([in] long nid, [in] long bits)
Definition sfFTPLib.idl:8500
ParserFormat Format
IProxySettings Interface.
Definition sfFTPLib.idl:2619
BSTR Host
Gets or sets the proxy host address.
long ProtocolFamily
Gets or sets the allowed protocol family.
BSTR Username
Gets or sets the username for proxy authentication.
VARIANT_BOOL Authentication
Gets or sets whether proxy authentication is enabled.
long ProtocolFamilyPreference
Gets or sets the protocol family preference.
ProxyType Type
Gets or sets the proxy protocol type.
BSTR Password
Gets or sets the password for proxy authentication.
long Port
Gets or sets the proxy server port.
Definition sfFTPLib.idl:7251
ILogger Logger
Attaches a logging mechanism to the SFTP session for debugging and auditing.
long LastTransferBytesHi
Retrieves the upper 32 bits of the last transfer size.
HRESULT StatVFS([in] BSTR path, [out, retval] ISFTPStatVFS **retval)
Retrieves information about the remote file system's capacity and limits.
HRESULT ReadDirectoryEx([in] BSTR directory, [in] ITransferProgressEvents *progress, [out, retval] IFTPItems **retval)
An advanced version of ReadDirectory that supports progress monitoring.
HRESULT SetStat([in] BSTR path, [in] IFTPItem *item)
Updates the attributes of a remote file or directory.
HRESULT RealPathEx([in] BSTR original, [in] long flags, [in] BSTR component, [out, retval] BSTR *retval)
An extended path resolution method supporting SFTP v6 control flags.
HRESULT NewFile([in] BSTR remoteFile)
Creates a new, empty file on the remote server.
ULONGLONG LastTransferBytes
Retrieves the total number of bytes transferred during the last SFTP transfer.
BSTR ServerLineTerminator
Specifies the line ending sequence used by the remote server for text-based operations.
long ProtocolVersion
Retrieves the SFTP protocol version currently in use for the active session.
BSTR SFTPServerCommand
Specifies the command or subsystem name used to initialize the SFTP session on the remote server.
HRESULT MakeDirectory([in] BSTR directory)
Creates a new directory on the remote server.
BSTR LastStatusMessage
Retrieves the human-readable error message returned by the SFTP server for the last operation.
HRESULT StatEx([in] BSTR path, [in] long flags, VARIANT_BOOL followLink, [out, retval] IFTPItem **retval)
An extended attribute retrieval method with explicit symbolic link control.
HRESULT CopyFile([in] BSTR sourceFile, [in] BSTR destinationFile, [in] VARIANT_BOOL overwrite)
Copies a file from one location to another directly on the remote server.
VARIANT_BOOL UseMessageLoop
Controls whether the component processes Windows messages during blocking operations.
HRESULT GetSpaceAvailable([in] BSTR path, [out, retval] ISFTPSpaceAvailable **retval)
Retrieves the available and total disk space for a specific path in bytes.
VARIANT_BOOL Busy
Indicates whether the connection is currently executing an operation.
HRESULT Rename([in] BSTR oldPath, [in] BSTR newPath, [in] long flags)
Renames or moves a file/directory on the remote server.
HRESULT UploadFile([in] VARIANT localFile, [in] BSTR remoteFile, [in] DataTransferType transferType, [in] long startPositionLo, [in] long startPositionHi)
Transfers a file or stream from the local system to the remote server.
long LastTransferTime
Retrieves the duration of the last SFTP transfer in milliseconds.
SFTPConnectionStatus Status
Retrieves the current operational state of the SFTP subsystem.
HRESULT Connect()
Initializes the SFTP subsystem over the existing SSH session.
HRESULT SetFileLogger([out, retval] IFileLogger **fileLogger)
Creates a file logger sfFTPLib::FileLogger and attaches it to the Logger property.
HRESULT Stat([in] BSTR path, [in] long flags, [out, retval] IFTPItem **retval)
Retrieves information and attributes for a file or directory.
HRESULT RemoveDirectory([in] BSTR directory)
Deletes an empty directory from the remote server.
long LastTransferBytesLo
Retrieves the lower 32 bits of the last transfer size.
long CodePage
Specifies the character encoding used to interpret filenames on the remote server.
HRESULT RealPath([in] BSTR original, [out, retval] BSTR *retval)
Resolves a relative or symbolic path into its canonical absolute equivalent on the server.
HRESULT GetFileHash([in] HashAlgo algo, [in] BSTR path, [in] ULONGLONG offset, [in] ULONGLONG length, [out, retval] ISFTPExtendedCheckFileResult **retval)
Calculates a cryptographic hash of a remote file or a specific byte range.
HRESULT DownloadFileEx([in] BSTR remoteFile, [in] VARIANT localFile, [in] DataTransferType transferType, [in] ULONGLONG startPosition, [in] ULONGLONG endPosition, [in] long flags, [in] ITransferProgressEvents *progress)
An advanced method to transfer a file (or file range) from the remote server with progress callbacks ...
HRESULT DownloadFile([in] BSTR remoteFile, [in] VARIANT localFile, [in] DataTransferType transferType, [in] long startPositionLo, [in] long startPositionHi)
Transfers a file from the remote server to the local system.
long Timeout
Sets the maximum time (in seconds) to wait for a network operation to complete.
HRESULT Link([in] BSTR path, [in] BSTR linkPoint, [in] VARIANT_BOOL symbolicLink)
Creates a link (symbolic or hard) on the remote server.
HRESULT RemoveFile([in] BSTR file)
Deletes a specific file from the remote server.
long LastTransferSpeed
Retrieves the average data transfer rate of the last SFTP transfer.
ISFTPVendorId VendorId
Configures the software identification data that the client sends to the server.
HRESULT Abort()
Cancels the currently executing blocking operation.
HRESULT UploadFileEx([in] VARIANT localFile, [in] BSTR remoteFile, [in] DataTransferType transferType, [in] ULONGLONG startPosition, [in] ITransferProgressEvents *progress)
An advanced method to upload data to the remote server with progress tracking.
HRESULT Close()
Closes the connection.
HRESULT ReadDirectory([in] BSTR directory, [out, retval] IFTPItems **retval)
Retrieves a collection of files and subdirectories from a remote directory.
ISSHConnection SSHConnection
Accesses the underlying Secure Shell (SSH) transport interface.
long ProtocolVersionPreference
Controls the preferred version of the SFTP protocol to negotiate with the server.
ISFTPServerState ServerState
Accesses the read-only object describing the capabilities and identity of the connected SFTP server.
SFTPStatus LastStatusCode
Retrieves the most recent protocol-level status code returned by the SFTP server.
HRESULT Disconnect()
Terminates the SFTP subsystem session.
HRESULT LStat([in] BSTR path, [in] long flags, [out, retval] IFTPItem **retval)
Retrieves information for a file, directory, or symbolic link (without following the link).
HRESULT ReadLink([in] BSTR path, [out, retval] BSTR *retval)
Reads the target path of a symbolic link.
Definition sfFTPLib.idl:2937
BSTR HashAsString
Retrieves the computed hash value as a hexadecimal string.
HashAlgo HashAlgo
Retrieves the hashing algorithm used by the server.
Definition sfFTPLib.idl:6069
HRESULT IsExtension([in] BSTR extension, [out, retval] VARIANT_BOOL *retval)
Checks if the connected server supports a specific SFTP protocol extension.
BSTR EOL
Retrieves the line ending sequence explicitly reported by the server's operating system.
ISFTPVendorId VendorId
Retrieves the software identification data reported by the remote SFTP server.
long MaxReadSize
Retrieves the maximum amount of data (in bytes) the SFTP server will return in a single read operatio...
Definition sfFTPLib.idl:6245
ULONGLONG BytesOnDevice
The total capacity of the physical storage device in bytes.
long BytesPerAllocationUnit
The size of a single allocation unit (cluster) in bytes.
ULONGLONG BytesAvailableToUser
The total storage quota or limit assigned to the current user in bytes.
ULONGLONG UnusedBytesOnDevice
The total amount of unused (free) space on the device in bytes.
ULONGLONG UnusedBytesAvailableToUser
The actual amount of space the current user can write to in bytes.
Definition sfFTPLib.idl:5922
ULONGLONG bavail
Number of free blocks available to non-privileged users.
ULONGLONG ffree
Total number of free file nodes.
ULONGLONG bfree
Total number of free blocks.
ULONGLONG flag
Bitmask of mount flags (e.g., ST_RDONLY, ST_NOSUID).
ULONGLONG frsize
Fragment size (the unit of allocation).
ULONGLONG fsid
File system ID.
ULONGLONG favail
Number of free file nodes available to non-privileged users.
ULONGLONG blocks
Total number of blocks on the file system (in units of frsize).
ULONGLONG files
Total number of file nodes (inodes) in the file system.
ULONGLONG namemax
Maximum length of a filename on this file system.
ULONGLONG bsize
File system block size (fundamental file system block size).
Encapsulates the software identification data exchanged during the SFTP version negotiation.
Definition sfFTPLib.idl:5980
BSTR ProductVersion
The display string for the software version.
ULONGLONG ProductBuild
The monotonic build number of the software.
BSTR ProductName
The specific name of the software product.
BSTR VendorName
The name of the software vendor.
Definition sfFTPLib.idl:8539
HRESULT OnDetach()
Definition sfFTPLib.idl:6398
ProtocolFamily ProtocolFamilyPreference
Controls the preference for IPv4 or IPv6 during hostname resolution.
BSTR Password
Specifies the password used for authentication.
VARIANT AgentKeyBlob
Specifies the specific public key from the SSH Agent to use for authentication.
VARIANT_BOOL UseMessageLoop
Controls whether the component processes Windows messages during blocking operations.
ILogger Logger
Attaches a logging mechanism to the SSH session for debugging and auditing.
BSTR Username
Specifies the user account name for authentication.
long KeepAliveInterval
Sets the interval (in seconds) between automatic keep-alive packets.
long CompressionLevel
Controls the aggressiveness of the zlib compression algorithm.
IProxySettings Proxy
Accesses the proxy configuration settings for the connection.
IKey ClientHostKey
Specifies the private host key used for Host-Based authentication.
ISSHServerState ServerState
Accesses the identification and environmental metadata of the connected SSH server.
IKey PrivateKey
Specifies the private key for public-key authentication.
HRESULT Abort()
Cancels the currently executing blocking operation.
IKey ServerHostKey
Retrieves the public host key presented by the remote server.
VARIANT Compressions
Specifies the ordered list of compression algorithms to propose during the handshake.
VARIANT Authentications
Specifies the ordered list of authentication methods to attempt.
BSTR Host
Specifies the destination server address.
GSSAPIMethod GSSAPIMethod
Selects the specific GSSAPI provider library used for Kerberos authentication.
VARIANT Languages
Gets or sets the preferred SSH language tags, such as "en-US".
ISpeedLimitSettings SpeedLimitSettings
Accesses the bandwidth throttling configuration for this specific connection.
HRESULT SetFileLogger([out, retval] IFileLogger **fileLogger)
Creates a file logger sfFTPLib::FileLogger and attaches it to the Logger property.
BSTR ClientId
Customizes the client identifier string sent during the SSH handshake.
long Timeout
Sets the maximum time (in seconds) to wait for a network operation to complete.
HRESULT SendPacket([in, size_is(length)] byte *data, [in] long length)
ProtocolFamily ProtocolFamily
Retrieves the network protocol family (IPv4 or IPv6) used for the active connection.
ISocketSettings SocketSettings
Accesses the low-level TCP socket configuration.
HRESULT Disconnect()
Gracefully terminates the SSH session and closes the connection.
BSTR ClientHostname
Specifies the client machine name sent during Host-Based authentication.
VARIANT Encryptions
Specifies the ordered list of symmetric encryption algorithms to propose to the server.
VARIANT_BOOL UsePasswordForKeyboardInteractive
Controls whether the Password property is automatically used to answer Keyboard-Interactive prompts.
VARIANT KeyExchanges
Specifies the ordered list of Key Exchange (KEX) algorithms to propose.
long Port
Specifies the TCP port number to connect to.
HRESULT Connect()
Establishes a secure connection to the remote SSH server.
ISSHConnectionInfo ConnectionInfo
Retrieves the cryptographic parameters negotiated for the current session.
VARIANT ServerHostKeyAlgorithms
Controls the prioritized list of Public Key algorithms accepted during the Server Host Key verificati...
VARIANT_BOOL Busy
Indicates whether the connection is currently executing an operation.
ConnectionStatus ConnectionStatus
Retrieves the current state of the SSH connection.
VARIANT MACs
Specifies the ordered list of Message Authentication Code (MAC) algorithms to propose.
HRESULT CreateSFTPConnection([out, retval] ISFTPConnection **retval)
Initializes the SFTP subsystem over the current SSH session.
HRESULT Close()
Closes the connection.
Provides detailed information about the cryptographic algorithms used in the active SSH session.
Definition sfFTPLib.idl:6286
SSHCompression ClientToServerCompression
Retrieves the compression method used for data sent TO the server.
SSHCompression ServerToClientCompression
Retrieves the compression method used for data received FROM the server.
Encryption ServerToClientEncryption
Retrieves the symmetric encryption algorithm used for data received FROM the server.
HMAC ServerToClientMAC
Retrieves the Message Authentication Code (MAC) algorithm for incoming data.
HMAC ClientToServerMAC
Retrieves the Message Authentication Code (MAC) algorithm for outgoing data.
KeyExchange KeyExchangeAlgorithm
Retrieves the Key Exchange algorithm used to establish the shared secret.
HashAlgo KeyExchangeHashAlgorithm
Retrieves the hashing algorithm used specifically during the Key Exchange.
Encryption ClientToServerEncryption
SSHPublicKeyAlgo HostKeyAlgorithm
Retrieves the algorithm used for the Server Host Key.
Utility interface for extracting the raw SSH public key blob from a key object.
Definition sfFTPLib.idl:8569
HRESULT GetPublicKeyBlob([in] IKey *key, [out, retval] VARIANT *retval)
serialized the public key into the standard SSH binary blob format.
Encapsulates information about the remote SSH server's identity and environment.
Definition sfFTPLib.idl:6350
BSTR RemoteId
Retrieves the raw identification string sent by the server.
OperatingSystem OperatingSystem
Estimates the operating system of the remote server.
SSHServerSoftware ServerSoftware
Identifies the specific SSH server software implementation.
Encapsulates the cryptographic parameters of an active TLS/SSL connection.
Definition sfFTPLib.idl:1566
long CipherStrength
Retrieves the strength (key length) of the cipher algorithm in bits.
long HashStrength
Retrieves the strength (bit length) of the hash algorithm.
long ExchangeStrength
Retrieves the strength of the Key Exchange algorithm in bits.
BSTR ExchangeAlgo
Retrieves the name of the Key Exchange algorithm used to establish the session keys.
long Protocol
Retrieves the specific security protocol used for the connection.
BSTR HashAlgo
Retrieves the name of the hashing algorithm used for message integrity.
BSTR CipherAlgo
Retrieves the name of the symmetric encryption algorithm used for data confidentiality.
Definition sfFTPLib.idl:2712
long SendBufferSize
The size of the send buffer in bytes.
long ReceiveBufferSize
The size of the receive buffer in bytes.
VARIANT_BOOL AutoTuneReceiveBufferSize
Enables or disables the application of the custom receive buffer size.
VARIANT_BOOL TcpNoDelay
Controls the TCP_NODELAY socket option (Nagle's algorithm).
VARIANT_BOOL AutoTuneSendBufferSize
Enables or disables the application of the custom send buffer size.
Definition sfFTPLib.idl:2813
long UploadSpeedLimit
The speed limit in bytes/second for uploads.
long DownloadSpeedLimit
The speed limit in bytes/second for downloads.
Definition sfFTPLib.idl:1637
HRESULT GetStream([out] IStream **stream)
HRESULT Initialize([in] IStream *stream)
HRESULT Uninitialize()
Definition sfFTPLib.idl:1652
Definition sfFTPLib.idl:2855
long ClientCertStoreLocation
The certificate store location where the client certificate can be found.
VARIANT RemoteCert
Contains a the encoded remote certificate.
long DisabledProtocols
A mask of disabled protocols.
VARIANT ClientCertThumbprint
The thumbprint of the client certificate to be used.
BSTR ClientCertStore
The certificate store name where the client certificate can be found.
VARIANT_BOOL Enabled
ISecurityConnectionInfo ConnectionInfo
Retrieves information about the negotiated security parameters of the active connection.
A callback interface for monitoring data transfer progress.
Definition sfFTPLib.idl:3507
HRESULT OnTransferProgress([in] ULONGLONG bytesTransferred)
Called periodically by the component to report transfer progress.
Definition sfFTPLib.idl:8517
HRESULT KeyExchangeToString([in] KeyExchange keyexchange, [out, retval] BSTR *retval)
HRESULT SSHCompressionToString([in] SSHCompression compression, [out, retval] BSTR *retval)
HRESULT VariantTimeToFileTime([in] DATE date, [out, retval] FILETIME *retval)
HRESULT FileTimeToVariantTime([in] FILETIME filetime, [out, retval] DATE *retval)
HRESULT EncryptionToString([in] Encryption encryption, [out, retval] BSTR *retval)
HRESULT ServerSoftwareToString([in] ServerSoftware software, [out, retval] BSTR *retval)
HRESULT UnixTimeToFileTime([in] ULONGLONG unixTime, [out, retval] FILETIME *retval)
HRESULT FileTimeToUnixTime([in] FILETIME filetime, [out, retval] ULONGLONG *retval)
HRESULT SSHPublicKeyAlgoToString([in] SSHPublicKeyAlgo keyalgo, [out, retval] BSTR *retval)
HRESULT HMACToString([in] HMAC mac, [out, retval] BSTR *retval)
HRESULT ProxyTypeToString([in] ProxyType proxytype, [out, retval] BSTR *retval)
HRESULT HashAlgoToString([in] HashAlgo hashalgo, [out, retval] BSTR *retval)
HRESULT MessageFromHRESULT([in] HRESULT result, [out, retval] BSTR *retval)
Definition sfFTPLib.idl:9078
void OnVerifyCert([in, out] VARIANT_BOOL *shouldContinue)
Defines the events fired by the SFTPConnection class.
Definition sfFTPLib.idl:9240
void OnClose()
Fired when the SFTP connection is closed.
Defines the events fired by the SSHConnection class during the session lifecycle.
Definition sfFTPLib.idl:9309
void OnDisconnect()
Fired when the SSH connection is closed or lost.
void OnLogin()
Fired immediately after the user has successfully authenticated.
void OnAuthentication([in] BSTR method)
Fired to notify the client which authentication method was just attempted.
void OnUserAuthBanner([in] BSTR message)
Fired when the server sends a banner message before authentication is complete.
void OnPasswordChangeRequest([in] BSTR prompt,[out] BSTR *newPassword,[in, out] VARIANT_BOOL *handled)
Fired when the server requires the user to change their expired password.
void OnLoginChallenge([in] BSTR challenge,[out] BSTR *response)
Fired when the server requires "Keyboard-Interactive" authentication input.
void OnHostKeys([in] VARIANT hostKeys)
Fired to provide a list of all host keys supported by the server.
void OnHostKey([in] VARIANT varHostKey,[in, out] VARIANT_BOOL *accept)
Fired during the handshake to verify the server's host key.
Definition sfFTPLib.idl:9092
HRESULT OnVerifyCert([in, out] VARIANT_BOOL *shouldContinue)
A callback interface for handling SFTP connection state changes.
Definition sfFTPLib.idl:9277
HRESULT OnClose()
Fired when the SFTP session is terminated.
Definition sfFTPLib.idl:9397
HRESULT OnPasswordChangeRequest([in] LPCWSTR prompt, [out] BSTR *newPassword, [in, out] VARIANT_BOOL *handled)
HRESULT OnLoginChallenge([in] LPCWSTR challenge, [out] BSTR *response)
HRESULT OnAuthentication([in] LPCWSTR method)
HRESULT OnHostKey([in] VARIANT varHostKey, [in, out] VARIANT_BOOL *accept)
HRESULT OnHostKeys([in, size_is(numberOfKeys)] const PROPVARIANT hostKeys[*], [in] UINT numberOfKeys)
HRESULT OnUserAuthBanner([in] LPCWSTR message)
Definition sfFTPLib.idl:8633
SFTPItemAttribute
Definition sfFTPLib.idl:8872
@ ftpSFTPItemAttributeBits
Definition sfFTPLib.idl:8882
@ ftpSFTPItemAttributeCTime
Definition sfFTPLib.idl:8888
@ ftpSFTPItemAttributeSize
Definition sfFTPLib.idl:8873
@ ftpSFTPItemAttributeAccessTime
Definition sfFTPLib.idl:8876
@ ftpSFTPItemAttributePermissions
Definition sfFTPLib.idl:8875
@ ftpSFTPItemAttributeAllocationSize
Definition sfFTPLib.idl:8883
@ ftpSFTPItemAttributeSubSecondTimes
Definition sfFTPLib.idl:8881
@ ftpSFTPItemAttributeLinkCount
Definition sfFTPLib.idl:8886
@ ftpSFTPItemAttributeModifyTime
Definition sfFTPLib.idl:8878
@ ftpSFTPItemAttributeOwnerGroup
Definition sfFTPLib.idl:8880
@ ftpSFTPItemAttributeMimeType
Definition sfFTPLib.idl:8885
@ ftpSFTPItemAttributeTextHint
Definition sfFTPLib.idl:8884
@ ftpSFTPItemAttributeUntranslatedName
Definition sfFTPLib.idl:8887
@ ftpSFTPItemAttributeExtended
Definition sfFTPLib.idl:8889
@ ftpSFTPItemAttributeACL
Definition sfFTPLib.idl:8879
@ ftpSFTPItemAttributeUIDGID
Definition sfFTPLib.idl:8874
@ ftpSFTPItemAttributeCreateTime
Definition sfFTPLib.idl:8877
importlib(STDOLE_TLB)
DownloadFlags
Flags that control the behavior of the ISFTPConnection::DownloadFileEx operation.
Definition sfFTPLib.idl:8952
@ ftpDownloadFlagReadBeyondEnd
Allows the read operation to complete successfully even if the requested range exceeds the file size.
Definition sfFTPLib.idl:8976
@ ftpDownloadFlagNone
Default behavior.
Definition sfFTPLib.idl:8961
SFTPItemAttributeBit
Definition sfFTPLib.idl:8855
@ ftpSFTPItemAttributeBitEncrypted
Definition sfFTPLib.idl:8861
@ ftpSFTPItemAttributeBitCompressed
Definition sfFTPLib.idl:8862
@ ftpSFTPItemAttributeBitSync
Definition sfFTPLib.idl:8866
@ ftpSFTPItemAttributeBitImmutable
Definition sfFTPLib.idl:8865
@ ftpSFTPItemAttributeBitArchive
Definition sfFTPLib.idl:8860
@ ftpSFTPItemAttributeBitHidden
Definition sfFTPLib.idl:8858
@ ftpSFTPItemAttributeBitTranslationErr
Definition sfFTPLib.idl:8867
@ ftpSFTPItemAttributeBitCaseInsensitive
Definition sfFTPLib.idl:8859
@ ftpSFTPItemAttributeBitSystem
Definition sfFTPLib.idl:8857
@ ftpSFTPItemAttributeBitAppendOnly
Definition sfFTPLib.idl:8864
@ ftpSFTPItemAttributeBitSparse
Definition sfFTPLib.idl:8863
@ ftpSFTPItemAttributeBitReadOnly
Definition sfFTPLib.idl:8856
_HRESULT
Definition sfFTPLib.idl:8637
@ FTPLIB_E_KEYFILE_UNSUPPORTED
Definition sfFTPLib.idl:8688
@ FTPLIB_E_NOTAREGULARFILE
Definition sfFTPLib.idl:8655
@ FTPLIB_E_TLSNOTSUPPORTED
Definition sfFTPLib.idl:8658
@ FTPLIB_E_PAUSED
Definition sfFTPLib.idl:8645
@ FTPLIB_E_LOCALPOLICYREQUIRESCCC
Definition sfFTPLib.idl:8666
@ FTPLIB_E_ACTIVATION_OPERATINGSYSTEMNOTSUPPORTED
Definition sfFTPLib.idl:8720
@ FTPLIB_E_ACTIVATION_LICENSEEXPIRED
Definition sfFTPLib.idl:8713
@ FTPLIB_E_PASVCOMMANDFAILED
Definition sfFTPLib.idl:8657
@ FTPLIB_E_SERVERPROTOCOLVIOLATION
Definition sfFTPLib.idl:8653
@ FTPLIB_E_TOOMANYUSERS
Definition sfFTPLib.idl:8668
@ FTPLIB_E_LICENSE_PRODUCTMISMATCH
Definition sfFTPLib.idl:8702
@ FTPLIB_E_TIMEOUT
Definition sfFTPLib.idl:8640
@ FTPLIB_E_LICENSE_FEATURENOTLICENSED
Definition sfFTPLib.idl:8701
@ FTPLIB_E_MOREDATA
Definition sfFTPLib.idl:8644
@ FTPLIB_E_SSH_KEYEXCHANGE
Definition sfFTPLib.idl:8680
@ FTPLIB_E_TLSDATASESSIONTOKENERROR
Definition sfFTPLib.idl:8669
@ FTPLIB_E_ACTIVATION_UNSUPPORTEDVERSION
Definition sfFTPLib.idl:8709
@ FTPLIB_E_SERVERPOLICYREQUIRESTLS
Definition sfFTPLib.idl:8660
@ FTPLIB_E_SSH_INVALIDMESSAGE
Definition sfFTPLib.idl:8677
@ FTPLIB_E_ACTIVATION_INVALIDSERIAL
Definition sfFTPLib.idl:8710
@ FTPLIB_E_ACTIVATION_PRODUCTVERSIONNOTSUPPORTED
Definition sfFTPLib.idl:8719
@ FTPLIB_E_ACTIVATION_SUBLICENSEDISABLED
Definition sfFTPLib.idl:8718
@ FTPLIB_E_NOTDISCONNECTED
Definition sfFTPLib.idl:8647
@ FTPLIB_E_ACTIVATION_LICENSEEXHAUSTED
Definition sfFTPLib.idl:8714
@ FTPLIB_E_SSH_HOSTKEYREJECTED
Definition sfFTPLib.idl:8683
@ FTPLIB_E_SSH_CHANNEL_EOF
Definition sfFTPLib.idl:8681
@ FTPLIB_E_LICENSE_MACHINEIDMISMATCH
Definition sfFTPLib.idl:8704
@ FTPLIB_E_SSH_INVALIDHOSTSIGNATURE
Definition sfFTPLib.idl:8682
@ FTPLIB_E_KEYFILE_INVALIDFORMAT
Definition sfFTPLib.idl:8686
@ FTPLIB_E_SSH_CHANNEL_OPENFAILURE
Definition sfFTPLib.idl:8679
@ FTPLIB_E_SSH_CHANNEL_REQUESTFAILURE
Definition sfFTPLib.idl:8678
@ FTPLIB_E_BOX_APPLICATIONBLOCKED
Definition sfFTPLib.idl:8664
@ FTPLIB_E_KEY_INVALID
Definition sfFTPLib.idl:8687
@ FTPLIB_E_BOX_CAPTCHAREQUIRED
Definition sfFTPLib.idl:8665
@ FTPLIB_E_TOOMANYCONNECTIONS
Definition sfFTPLib.idl:8656
@ FTPLIB_E_NOOPERATION
Definition sfFTPLib.idl:8641
@ FTPLIB_E_ACTIVATION_LICENSEINACTIVE
Definition sfFTPLib.idl:8712
@ FTPLIB_E_HOSTNAMEEXPECTED
Definition sfFTPLib.idl:8659
@ FTPLIB_E_IPBANNED
Definition sfFTPLib.idl:8661
@ FTPLIB_E_HOMEDIRECTORY
Definition sfFTPLib.idl:8662
@ FTPLIB_E_ACTIVATION_PRODUCTMISMATCH
Definition sfFTPLib.idl:8711
@ FTPLIB_E_CONNECTIONCLOSED
Definition sfFTPLib.idl:8648
@ FTPLIB_E_AUTHENTICATION
Definition sfFTPLib.idl:8650
@ FTPLIB_E_KEYFILE_PASSWORD
Definition sfFTPLib.idl:8685
@ FTPLIB_E_NOTCONNECTED
Definition sfFTPLib.idl:8639
@ FTPLIB_E_LICENSE_VERSIONMISMATCH
Definition sfFTPLib.idl:8703
@ FTPLIB_E_LICENSE_MAINTENANCEEXPIRED
Definition sfFTPLib.idl:8706
@ FTPLIB_E_ACTIVATION_MAINTENANCEEXPIRED
Definition sfFTPLib.idl:8717
@ FTPLIB_E_COULDNOTCREATEFILE
Definition sfFTPLib.idl:8670
@ FTPLIB_E_SSH_NEGOTIATION
Definition sfFTPLib.idl:8675
@ FTPLIB_E_LICENSE_EXPIRED
Definition sfFTPLib.idl:8705
@ FTPLIB_E_SFTP_INVALIDMESSAGE
Definition sfFTPLib.idl:8693
@ FTPLIB_E_SFTP_STATUSERROR
Definition sfFTPLib.idl:8692
@ FTPLIB_E_BUSY
Definition sfFTPLib.idl:8638
@ FTPLIB_E_COMMANDNOTIMPLEMENTED
Definition sfFTPLib.idl:8654
@ FTPLIB_E_SSH_HOSTAUTHENTICATION
Definition sfFTPLib.idl:8674
@ FTPLIB_E_SSH_INVALIDHOSTKEY
Definition sfFTPLib.idl:8676
@ FTPLIB_E_SSH_UNEXPECTEDREMOTEID
Definition sfFTPLib.idl:8673
@ FTPLIB_E_RESTARTNOTPERMITTED
Definition sfFTPLib.idl:8652
@ FTPLIB_E_NOTLOGGEDIN
Definition sfFTPLib.idl:8667
@ FTPLIB_E_NOTINIT
Definition sfFTPLib.idl:8642
@ FTPLIB_E_SFTP_UNEXPECTEDPACKETTYPE
Definition sfFTPLib.idl:8691
@ FTPLIB_E_CHARACTERCONVERSION
Definition sfFTPLib.idl:8697
@ FTPLIB_E_COMMANDNOTIMPLEMENTEDFORARGUMENT
Definition sfFTPLib.idl:8696
@ FTPLIB_E_WRONGREPLY
Definition sfFTPLib.idl:8643
@ FTPLIB_E_SSHSERVERDETECTED
Definition sfFTPLib.idl:8698
@ FTPLIB_E_PORTCOMMANDFAILED
Definition sfFTPLib.idl:8651
@ FTPLIB_E_SETTINGMISMATCH
Definition sfFTPLib.idl:8646
@ FTPLIB_E_BOX_ACCEPTTERMSOFSERVICE
Definition sfFTPLib.idl:8663
@ FTPLIB_E_ACTIVATION_INVALIDREQUEST
Definition sfFTPLib.idl:8715
@ FTPLIB_E_DATACONNECTION_CONNECT
Definition sfFTPLib.idl:8649
@ FTPLIB_E_ACTIVATION_SUBLICENSENOTFOUND
Definition sfFTPLib.idl:8716
UnixPermissions
Defines the access permissions for files and directories on Unix-like systems.
Definition sfFTPLib.idl:8740
@ ftpUnixPermissionUserExecute
User Execute (x).
Definition sfFTPLib.idl:8801
@ ftpUnixPermissionGroupExecute
Group Execute (x).
Definition sfFTPLib.idl:8775
@ ftpUnixPermissionGroupWrite
Group Write (w).
Definition sfFTPLib.idl:8783
@ ftpUnixPermissionSystemSetUID
Set User ID (SetUID) (s).
Definition sfFTPLib.idl:8849
@ ftpUnixPermissionPublicWrite
Public Write (w).
Definition sfFTPLib.idl:8757
@ ftpUnixPermissionSystemSetGID
Set Group ID (SetGID) (s).
Definition sfFTPLib.idl:8840
@ ftpUnixPermissionPublicExecute
Public Execute (x).
Definition sfFTPLib.idl:8748
@ ftpUnixPermissionSystemSticky
Sticky Bit (t).
Definition sfFTPLib.idl:8829
@ ftpUnixPermissionPublicRead
Public Read (r).
Definition sfFTPLib.idl:8765
@ ftpUnixPermissionUserRead
User Read (r).
Definition sfFTPLib.idl:8817
@ ftpUnixPermissionUserWrite
User Write (w).
Definition sfFTPLib.idl:8809
@ ftpUnixPermissionGroupRead
Group Read (r).
Definition sfFTPLib.idl:8791
LISTOption
Flags to control the behavior and output of the FTP LIST command.
Definition sfFTPLib.idl:8907
@ ftpLISTOptionLong
Formats the output in "Long" format (detailed).
Definition sfFTPLib.idl:8914
@ ftpLISTOptionT
Sorts by modification time.
Definition sfFTPLib.idl:8937
@ ftpLISTOptionRecursive
Lists subdirectories recursively.
Definition sfFTPLib.idl:8945
@ ftpLISTOptionLinks
Follows symbolic links.
Definition sfFTPLib.idl:8929
@ ftpLISTOptionAll
Includes hidden files in the listing.
Definition sfFTPLib.idl:8922
SSHAuthentication
Identifies the authentication methods defined in the SSH-2 protocol (RFC 4252).
Definition sfFTPLib.idl:8988
@ ftpSSHAuthenticationUnknown
Definition sfFTPLib.idl:8990
@ ftpSSHAuthenticationPublicKey
Public Key authentication.
Definition sfFTPLib.idl:9034
@ ftpSSHAuthenticationSecurID
Legacy RSA SecurID authentication.
Definition sfFTPLib.idl:9044
@ ftpSSHAuthenticationHostBased
Host-Based authentication.
Definition sfFTPLib.idl:9054
@ ftpSSHAuthenticationKeyboardInteractive
Keyboard-Interactive authentication (RFC 4256).
Definition sfFTPLib.idl:9023
@ ftpSSHAuthenticationNone
The "none" authentication method.
Definition sfFTPLib.idl:9002
@ ftpSSHAuthenticationGSSAPI
GSSAPI (Generic Security Services Application Program Interface).
Definition sfFTPLib.idl:9064
@ ftpSSHAuthenticationPassword
Standard password authentication.
Definition sfFTPLib.idl:9011
LogFormat
Definition sfFTPLib.idl:830
@ ftpLogFormatUTF8
UTF-8.
Definition sfFTPLib.idl:835
@ ftpLogFormatUnicode
UTF-16 (little endian).
Definition sfFTPLib.idl:832
DataProtection
Defines the security level of a communication channel (Control or Data).
Definition sfFTPLib.idl:300
@ ftpDataProtectionPrivate
Data protection is enabled (PROT P).
Definition sfFTPLib.idl:314
@ ftpDataProtectionClear
Data protection is disabled (PROT C).
Definition sfFTPLib.idl:308
@ ftpDataProtectionUnknown
Definition sfFTPLib.idl:302
ParserFormat
Definition sfFTPLib.idl:443
@ ftpParserFormatVM
Definition sfFTPLib.idl:460
@ ftpParserFormatGXSEnterprise
Definition sfFTPLib.idl:464
@ ftpParserFormatVMS
Definition sfFTPLib.idl:447
@ ftpParserFormatSimple
Definition sfFTPLib.idl:463
@ ftpParserFormatAS400
Definition sfFTPLib.idl:453
@ ftpParserFormatTandem
Definition sfFTPLib.idl:450
@ ftpParserFormatSecurePortal2000
Definition sfFTPLib.idl:466
@ ftpParserFormatMeditech
Definition sfFTPLib.idl:467
@ ftpParserFormatMD11
Definition sfFTPLib.idl:458
@ ftpParserFormatGrassValley
Definition sfFTPLib.idl:462
@ ftpParserFormatNetware
Definition sfFTPLib.idl:455
@ ftpParserFormatVOS
Definition sfFTPLib.idl:451
@ ftpParserFormatBS2000
Definition sfFTPLib.idl:459
@ ftpParserFormatGXSInformationExchangeFTPGateway
Definition sfFTPLib.idl:465
@ ftpParserFormatOS2
Definition sfFTPLib.idl:454
@ ftpParserFormatNT
Definition sfFTPLib.idl:457
@ ftpParserFormatConnectEnterprise
Definition sfFTPLib.idl:461
@ ftpParserFormatUnix
Definition sfFTPLib.idl:445
@ ftpParserFormatpSOSystem
Definition sfFTPLib.idl:456
@ ftpParserFormatMLST
Definition sfFTPLib.idl:446
@ ftpParserFormatMVS
Definition sfFTPLib.idl:452
@ ftpParserFormatUnknown
Definition sfFTPLib.idl:444
@ ftpParserFormatVxWorks
Definition sfFTPLib.idl:448
@ ftpParserFormatDOS
Definition sfFTPLib.idl:449
FTPProtocol
Specifies the security protocol and encryption mode for the connection.
Definition sfFTPLib.idl:31
@ ftpProtocolNormal
Standard unencrypted FTP.
Definition sfFTPLib.idl:38
@ ftpProtocolSSLImplicit
Legacy Implicit TLS.
Definition sfFTPLib.idl:47
@ ftpProtocolRequireTLS
Explicit TLS (Mandatory).
Definition sfFTPLib.idl:57
@ ftpProtocolPreferTLS
Explicit TLS (Opportunistic).
Definition sfFTPLib.idl:68
PassiveMode
Specifies how the client handles the IP address returned in the FTP server's PASV response.
Definition sfFTPLib.idl:158
@ ftpPassiveModeAuto
Intelligent automatic detection (Recommended).
Definition sfFTPLib.idl:188
@ ftpPassiveModeUseHostIP
Ignore the server's IP; use the Control Connection IP.
Definition sfFTPLib.idl:178
@ ftpPassiveModeUseIPFromReply
Trust the server's PASV response (Standard Protocol Behavior).
Definition sfFTPLib.idl:168
FeatureDiscoveryMode
Determines the timing of the FEAT (Feature Discovery) command.
Definition sfFTPLib.idl:1217
@ ftpFeatureDiscoveryModeAfterLogin
The FEAT command is issued only once, immediately after a successful login.
Definition sfFTPLib.idl:1224
@ ftpFeatureDiscoveryModeBeforeAndAfterLogin
The FEAT command is issued twice: once before login and once after.
Definition sfFTPLib.idl:1233
GSSAPIMethod
Definition sfFTPLib.idl:6197
@ ftpGSSAPIMethodMITKerberos
MIT Kerberos (GSSAPI).
Definition sfFTPLib.idl:6217
@ ftpGSSAPIMethodMicrosoftKerberos
Microsoft SSPI (Security Support Provider Interface) Kerberos.
Definition sfFTPLib.idl:6233
@ ftpGSSAPIMethodUnknown
Unknown or unspecified GSSAPI method.
Definition sfFTPLib.idl:6202
SSHPublicKeyAlgo
Defines the public key algorithms used for server host keys and client authentication.
Definition sfFTPLib.idl:2260
@ ftpSSHPublicKeyAlgox509v3RSA2048SHA256
RSA-2048 key with SHA-256 wrapped in an X.509 certificate.
Definition sfFTPLib.idl:2337
@ ftpSSHPublicKeyAlgoRSASHA2256
RSA with SHA-256 (RFC 8332). Recommended RSA variant.
Definition sfFTPLib.idl:2273
@ ftpSSHPublicKeyAlgox509v3ECDSA384
ECDSA P-384 key wrapped in an X.509 certificate.
Definition sfFTPLib.idl:2329
@ ftpSSHPublicKeyAlgoMlDsa65
NIST Post-Quantum standard. Increased security strength (Category 3).
Definition sfFTPLib.idl:2311
@ ftpSSHPublicKeyAlgoECDSA256CertOpenSSH
OpenSSH Certificate using ECDSA P-256 key.
Definition sfFTPLib.idl:2363
@ ftpSSHPublicKeyAlgoEd25519CertOpenSSH
OpenSSH Certificate using Ed25519 key. Modern, high-speed standard.
Definition sfFTPLib.idl:2351
@ ftpSSHPublicKeyAlgoRSACertOpenSSH
Legacy OpenSSH Certificate using RSA key (SHA-1). Deprecated.
Definition sfFTPLib.idl:2355
@ ftpSSHPublicKeyAlgoDSACertOpenSSH
Legacy OpenSSH Certificate using DSA key. Deprecated.
Definition sfFTPLib.idl:2359
@ ftpSSHPublicKeyAlgoECDSA384CertOpenSSH
OpenSSH Certificate using ECDSA P-384 key.
Definition sfFTPLib.idl:2367
@ ftpSSHPublicKeyAlgoECDSA256
NIST P-256 Curve. Standard balance of speed and security.
Definition sfFTPLib.idl:2283
@ ftpSSHPublicKeyAlgoECDSA521
NIST P-521 Curve. Maximum security strength among standard NIST curves.
Definition sfFTPLib.idl:2291
@ ftpSSHPublicKeyAlgoUnknown
Definition sfFTPLib.idl:2262
@ ftpSSHPublicKeyAlgoRSASHA2512CertOpenSSH
OpenSSH Certificate using RSA key with SHA-512 signature.
Definition sfFTPLib.idl:2347
@ ftpSSHPublicKeyAlgoECDSA521CertOpenSSH
OpenSSH Certificate using ECDSA P-521 key.
Definition sfFTPLib.idl:2371
@ ftpSSHPublicKeyAlgox509v3ECDSA256
ECDSA P-256 key wrapped in an X.509 certificate.
Definition sfFTPLib.idl:2325
@ ftpSSHPublicKeyAlgoDSA
Digital Signature Algorithm.
Definition sfFTPLib.idl:2378
@ ftpSSHPublicKeyAlgoMlDsa87
NIST Post-Quantum standard. Maximum security strength (Category 5).
Definition sfFTPLib.idl:2315
@ ftpSSHPublicKeyAlgoECDSA384
NIST P-384 Curve. Increased security strength over P-256.
Definition sfFTPLib.idl:2287
@ ftpSSHPublicKeyAlgoRSASHA2512
RSA with SHA-512 (RFC 8332). Strongest RSA variant.
Definition sfFTPLib.idl:2277
@ ftpSSHPublicKeyAlgox509v3RSA
RSA key wrapped in an X.509 certificate.
Definition sfFTPLib.idl:2321
@ ftpSSHPublicKeyAlgoMlDsa44
NIST Post-Quantum standard (Module-Lattice-Based Digital Signature). Designed to be secure against fu...
Definition sfFTPLib.idl:2307
@ ftpSSHPublicKeyAlgoRSASHA2256CertOpenSSH
OpenSSH Certificate using RSA key with SHA-256 signature.
Definition sfFTPLib.idl:2343
@ ftpSSHPublicKeyAlgoEd25519
Edwards-curve Digital Signature Algorithm (Curve25519). Highly recommended: Immune to many side-chann...
Definition sfFTPLib.idl:2296
@ ftpSSHPublicKeyAlgox509v3ECDSA521
ECDSA P-521 key wrapped in an X.509 certificate.
Definition sfFTPLib.idl:2333
@ ftpSSHPublicKeyAlgoEd448
Ed448 (Goldilocks curve). Higher security level than Ed25519.
Definition sfFTPLib.idl:2300
@ ftpSSHPublicKeyAlgoRSA
RSA with SHA-1.
Definition sfFTPLib.idl:2269
ServerType
Identifies the operating system or server software type of the remote host.
Definition sfFTPLib.idl:484
@ ftpServerTypeICS
Definition sfFTPLib.idl:611
@ ftpServerTypeMVS
IBM MVS (Multiple Virtual Storage) / z/OS.
Definition sfFTPLib.idl:544
@ ftpServerTypepSOSystem
pSOSystem (Real-time OS).
Definition sfFTPLib.idl:581
@ ftpServerTypeMD11
McDonnell Douglas MD-11 Avionics system.
Definition sfFTPLib.idl:575
@ ftpServerTypeNetware
Novell NetWare.
Definition sfFTPLib.idl:588
@ ftpServerTypeSecurePortal2000
Definition sfFTPLib.idl:620
@ ftpServerTypeMudOS
Multi-User Dungeon Object System (LPMud).
Definition sfFTPLib.idl:626
@ ftpServerTypeUnknown
The system type could not be determined or is not supported.
Definition sfFTPLib.idl:489
@ ftpServerTypeBS2000
Definition sfFTPLib.idl:596
@ ftpServerTypeGrassValley
Definition sfFTPLib.idl:614
@ ftpServerTypeAS400
IBM AS/400 (iSeries / OS/400).
Definition sfFTPLib.idl:551
@ ftpServerTypeGXSEnterprise
Definition sfFTPLib.idl:608
@ ftpServerTypeUnix
Standard Unix-like system (Linux, BSD, AIX, Solaris).
Definition sfFTPLib.idl:499
@ ftpServerTypeNT
Microsoft Windows NT/2000/XP/Server.
Definition sfFTPLib.idl:525
@ ftpServerTypeGXSInformationExchangeFTPGateway
Definition sfFTPLib.idl:617
@ ftpServerTypeMacOS
Legacy Classic Mac OS (pre-OS X).
Definition sfFTPLib.idl:537
@ ftpServerTypePeterLewis
Peter Lewis (Stairways Software) FTP Server.
Definition sfFTPLib.idl:506
@ ftpServerTypeVMS
OpenVMS (Virtual Memory System).
Definition sfFTPLib.idl:515
@ ftpServerTypeTNTEmbeddedToolSuite
Definition sfFTPLib.idl:593
@ ftpServerTypeOS2
IBM OS/2.
Definition sfFTPLib.idl:557
@ ftpServerTypeVxWorks
Definition sfFTPLib.idl:602
@ ftpServerTypeVM
Definition sfFTPLib.idl:599
@ ftpServerTypeWindowsCE
Definition sfFTPLib.idl:605
@ ftpServerTypeTandem
HP NonStop (Tandem).
Definition sfFTPLib.idl:563
@ ftpServerTypeVOS
Stratus VOS (Virtual Operating System).
Definition sfFTPLib.idl:569
@ ftpServerTypeAmiga
Commodore Amiga OS.
Definition sfFTPLib.idl:531
DataTransferMode
Defines the transmission mode for the data connection.
Definition sfFTPLib.idl:251
@ ftpDataTransferModeUnknown
The transfer mode is unknown or not yet negotiated.
Definition sfFTPLib.idl:256
@ ftpDataTransferModeZ
Compressed Mode (MODE Z).
Definition sfFTPLib.idl:287
@ ftpDataTransferModeStream
Standard Stream Mode (MODE S).
Definition sfFTPLib.idl:270
OperatingSystem
Definition sfFTPLib.idl:683
@ ftpOperatingSystemVMS
The server is running OpenVMS.
Definition sfFTPLib.idl:711
@ ftpOperatingSystemUnknown
The operating system is unknown.
Definition sfFTPLib.idl:691
@ ftpOperatingSystemUnix
The server is running a Unix-like OS (Linux, BSD, macOS, Solaris).
Definition sfFTPLib.idl:701
@ ftpOperatingSystemWindows
The server is running a Windows-based operating system.
Definition sfFTPLib.idl:696
ItemType
Categorizes the type of a filesystem object (file, directory, link, etc.).
Definition sfFTPLib.idl:1474
@ ftpItemTypeCharacterDevice
A Character Device.
Definition sfFTPLib.idl:1522
@ ftpItemTypeSpecial
A special system file not covered by other categories.
Definition sfFTPLib.idl:1499
@ ftpItemTypeUnknown
The type could not be determined.
Definition sfFTPLib.idl:1507
@ ftpItemTypeFIFO
A FIFO (First In, First Out) named pipe.
Definition sfFTPLib.idl:1514
@ ftpItemTypeSymbolicLink
A symbolic link (symlink).
Definition sfFTPLib.idl:1493
@ ftpItemTypeSocket
A Unix Domain Socket.
Definition sfFTPLib.idl:1537
@ ftpItemTypeRegularFile
A standard data file.
Definition sfFTPLib.idl:1480
@ ftpItemTypeBlockDevice
A Block Device.
Definition sfFTPLib.idl:1530
@ ftpItemTypeDirectory
A directory (folder) containing other items.
Definition sfFTPLib.idl:1486
KeyAlgo
Definition sfFTPLib.idl:2125
@ ftpKeyAlgoEd448
Ed448 (Edwards-curve Digital Signature Algorithm).
Definition sfFTPLib.idl:2207
@ ftpKeyAlgoRSA
RSA (Rivest–Shamir–Adleman).
Definition sfFTPLib.idl:2141
@ ftpKeyAlgoECDSAP521
ECDSA with NIST P-521 Curve.
Definition sfFTPLib.idl:2189
@ ftpKeyAlgoMlDsa87
ML-DSA-87 (Module-Lattice-Based Digital Signature Standard).
Definition sfFTPLib.idl:2249
@ ftpKeyAlgoEd25519
Ed25519 (Edwards-curve Digital Signature Algorithm).
Definition sfFTPLib.idl:2198
@ ftpKeyAlgoECDSAP256
ECDSA with NIST P-256 Curve.
Definition sfFTPLib.idl:2167
@ ftpKeyAlgoDSA
DSA (Digital Signature Algorithm).
Definition sfFTPLib.idl:2154
@ ftpKeyAlgoMlDsa44
ML-DSA-44 (Module-Lattice-Based Digital Signature Standard).
Definition sfFTPLib.idl:2221
@ ftpKeyAlgoECDSAP384
ECDSA with NIST P-384 Curve.
Definition sfFTPLib.idl:2178
@ ftpKeyAlgoUnknown
Unknown or uninitialized algorithm.
Definition sfFTPLib.idl:2130
@ ftpKeyAlgoMlDsa65
ML-DSA-65 (Module-Lattice-Based Digital Signature Standard).
Definition sfFTPLib.idl:2235
SFTPConnectionStatus
Definition sfFTPLib.idl:799
@ ftpSFTPConnectionStatusInit
The SFTP subsystem is initializing.
Definition sfFTPLib.idl:815
@ ftpSFTPConnectionStatusClosing
The SFTP subsystem is shutting down.
Definition sfFTPLib.idl:826
@ ftpSFTPConnectionStatusUnknown
The SFTP subsystem is not active or is in an indeterminate state.
Definition sfFTPLib.idl:804
FTPItemAttribute
Definition sfFTPLib.idl:3026
@ ftpFTPItemAttributeAccessTime
Definition sfFTPLib.idl:3029
@ ftpFTPItemAttributeCreateTime
Definition sfFTPLib.idl:3030
@ ftpFTPItemAttributeSubSecondTimes
Definition sfFTPLib.idl:3033
@ ftpFTPItemAttributeSize
Definition sfFTPLib.idl:3027
@ ftpFTPItemAttributeUntranslatedName
Definition sfFTPLib.idl:3039
@ ftpFTPItemAttributeTextHint
Definition sfFTPLib.idl:3036
@ ftpFTPItemAttributeBits
Definition sfFTPLib.idl:3034
@ ftpFTPItemAttributeOwner
Definition sfFTPLib.idl:3042
@ ftpFTPItemAttributePermissions
Definition sfFTPLib.idl:3028
@ ftpFTPItemAttributeUnixPermissions
Definition sfFTPLib.idl:3043
@ ftpFTPItemAttributeLinkCount
Definition sfFTPLib.idl:3038
@ ftpFTPItemAttributeWindowsAttributes
Definition sfFTPLib.idl:3044
@ ftpFTPItemAttributeExtended
Definition sfFTPLib.idl:3041
@ ftpFTPItemAttributeCTime
Definition sfFTPLib.idl:3040
@ ftpFTPItemAttributeAllocationSize
Definition sfFTPLib.idl:3035
@ ftpFTPItemAttributeModifyTime
Definition sfFTPLib.idl:3031
@ ftpFTPItemAttributeGroup
Definition sfFTPLib.idl:3045
@ ftpFTPItemAttributeMimeType
Definition sfFTPLib.idl:3037
@ ftpFTPItemAttributeACL
Definition sfFTPLib.idl:3032
ServerSoftware
server software running on the remote server
Definition sfFTPLib.idl:635
@ ftpServerSoftwareWebMethods
Definition sfFTPLib.idl:675
@ ftpServerSoftwareSurgeFTP
Definition sfFTPLib.idl:649
@ ftpServerSoftwareMOVEit
Definition sfFTPLib.idl:657
@ ftpServerSoftwareMultiNet
Definition sfFTPLib.idl:677
@ ftpServerSoftwareWFTPD
Definition sfFTPLib.idl:652
@ ftpServerSoftwarePureFTPd
Definition sfFTPLib.idl:641
@ ftpServerSoftwareConnectEnterprise
Definition sfFTPLib.idl:660
@ ftpServerSoftwareMacOSX
Definition sfFTPLib.idl:666
@ ftpServerSoftwareJustCloud
Definition sfFTPLib.idl:676
@ ftpServerSoftwareFastream
Definition sfFTPLib.idl:659
@ ftpServerSoftwareMeditech
Definition sfFTPLib.idl:673
@ ftpServerSoftwareProFTPD
Definition sfFTPLib.idl:664
@ ftpServerSoftwareCerberusFTPServer
Definition sfFTPLib.idl:668
@ ftpServerSoftwareNcFTPd
Definition sfFTPLib.idl:648
@ ftpServerSoftwareGSFTPS
Definition sfFTPLib.idl:639
@ ftpServerSoftwareRaidenFTPd
Definition sfFTPLib.idl:637
@ ftpServerSoftwareTitan
Definition sfFTPLib.idl:643
@ ftpServerSoftwarezOS
Definition sfFTPLib.idl:669
@ ftpServerSoftwareGuildFTPd
Definition sfFTPLib.idl:642
@ ftpServerSoftwareServU
Definition sfFTPLib.idl:638
@ ftpServerSoftwareSnapOS
Definition sfFTPLib.idl:665
@ ftpServerSoftwareWarFTPd
Definition sfFTPLib.idl:651
@ ftpServerSoftwareiNEWS
Definition sfFTPLib.idl:658
@ ftpServerSoftwareShareIt
Definition sfFTPLib.idl:653
@ ftpServerSoftwareDrFTPd
Definition sfFTPLib.idl:645
@ ftpServerSoftwareFileZilla
Definition sfFTPLib.idl:663
@ ftpServerSoftwareOrenosv
Definition sfFTPLib.idl:644
@ ftpServerSoftwareNoFeel
Definition sfFTPLib.idl:656
@ ftpServerSoftwareTransCore
Definition sfFTPLib.idl:678
@ ftpServerSoftwareHumaxiCord
Definition sfFTPLib.idl:670
@ ftpServerSoftwareglftpd
Definition sfFTPLib.idl:647
@ ftpServerSoftwarePs3
Definition sfFTPLib.idl:672
@ ftpServerSoftwareWSFTP
Definition sfFTPLib.idl:640
@ ftpServerSoftwarecuftpd
Definition sfFTPLib.idl:667
@ ftpServerSoftwareMicrosoftFTP
Definition sfFTPLib.idl:661
@ ftpServerSoftwareOracleXMLDB
Definition sfFTPLib.idl:662
@ ftpServerSoftwareCleoVLTrader
Definition sfFTPLib.idl:674
@ ftpServerSoftwareUnknown
Definition sfFTPLib.idl:636
@ ftpServerSoftwareTopfieldPVR
Definition sfFTPLib.idl:679
@ ftpServerSoftwareGene6
Definition sfFTPLib.idl:654
@ ftpServerSoftwareMtcp
Definition sfFTPLib.idl:671
@ ftpServerSoftwaremoftpd
Definition sfFTPLib.idl:646
@ ftpServerSoftwareBlackmoon
Definition sfFTPLib.idl:650
SSHServerSoftware
Definition sfFTPLib.idl:5604
@ ftpSSHServerSoftwareSun
Definition sfFTPLib.idl:5621
@ ftpSSHServerSoftwareGSFTPS
Definition sfFTPLib.idl:5610
@ ftpSSHServerSoftwareVShell
Definition sfFTPLib.idl:5606
@ ftpSSHServerSoftwareUnknown
Definition sfFTPLib.idl:5605
@ ftpSSHServerSoftwareOpenSSH
Definition sfFTPLib.idl:5608
@ ftpSSHServerSoftwareMaverick
Definition sfFTPLib.idl:5629
@ ftpSSHServerSoftwareSecureTransport
Definition sfFTPLib.idl:5630
@ ftpSSHServerSoftwareJSCAPE
Definition sfFTPLib.idl:5616
@ ftpSSHServerSoftwareReflectionForSecureIT
Definition sfFTPLib.idl:5624
@ ftpSSHServerSoftwareSSHcomOld
Definition sfFTPLib.idl:5620
@ ftpSSHServerSoftwareFSecure
Definition sfFTPLib.idl:5619
@ ftpSSHServerSoftwareCoreFTP
Definition sfFTPLib.idl:5617
@ ftpSSHServerSoftwareProFTPD
Definition sfFTPLib.idl:5627
@ ftpSSHServerSoftwareSSHTools
Definition sfFTPLib.idl:5625
@ ftpSSHServerSoftwareOpenVMS
Definition sfFTPLib.idl:5618
@ ftpSSHServerSoftwareFTPShell
Definition sfFTPLib.idl:5613
@ ftpSSHServerSoftwareSSHTectia
Definition sfFTPLib.idl:5607
@ ftpSSHServerSoftwarezFTPServer
Definition sfFTPLib.idl:5628
@ ftpSSHServerSoftwaredropbear
Definition sfFTPLib.idl:5623
@ ftpSSHServerSoftwareXlight
Definition sfFTPLib.idl:5631
@ ftpSSHServerSoftwareWinSSHD
Definition sfFTPLib.idl:5611
@ ftpSSHServerSoftwareTitan
Definition sfFTPLib.idl:5609
@ ftpSSHServerSoftwareWSFTP
Definition sfFTPLib.idl:5612
@ ftpSSHServerSoftwareGXSSSHD
Definition sfFTPLib.idl:5626
@ ftpSSHServerSoftwarePragmaFortressSSH
Definition sfFTPLib.idl:5615
@ ftpSSHServerSoftwareWeOnlyDo
Definition sfFTPLib.idl:5614
@ ftpSSHServerSoftwareServU
Definition sfFTPLib.idl:5622
HashAlgo
Definition sfFTPLib.idl:839
@ ftpHashAlgoCRC32
CRC32. Length: 32 bit.
Definition sfFTPLib.idl:841
@ ftpHashAlgoMicrosoftQuickXorHash
Microsoft QuickXorHash Reference: Code Snippets: QuickXorHash Algorithm.
Definition sfFTPLib.idl:847
@ ftpHashAlgoSHA384
SHA384.
Definition sfFTPLib.idl:845
@ ftpHashAlgoSHA512
SHA512.
Definition sfFTPLib.idl:846
@ ftpHashAlgoUnknown
Definition sfFTPLib.idl:840
@ ftpHashAlgoMD5
MD5. Length: 128 bit. Reference: RFC 1321.
Definition sfFTPLib.idl:842
@ ftpHashAlgoSHA1
SHA1. Length: 168 bit. Reference: RFC 3174.
Definition sfFTPLib.idl:843
@ ftpHashAlgoSHA256
SHA256.
Definition sfFTPLib.idl:844
ConnectionStatus
Definition sfFTPLib.idl:781
@ ftpConnectionStatusUnknown
Definition sfFTPLib.idl:783
@ ftpConnectionStatusConnecting
Connect() is in progress.
Definition sfFTPLib.idl:786
@ ftpConnectionStatusConnected
Connected.
Definition sfFTPLib.idl:789
@ ftpConnectionStatusDisconnected
Not connected.
Definition sfFTPLib.idl:795
@ ftpConnectionStatusDisconnecting
Disconnect() is in progress.
Definition sfFTPLib.idl:792
CertificateType
Definition sfFTPLib.idl:2382
@ CertificateTypeUnknown
Definition sfFTPLib.idl:2384
@ CertificateTypex509
Standard X.509 Public Key Infrastructure (PKI) certificate.
Definition sfFTPLib.idl:2395
@ CertificateTypeOpenSSH
OpenSSH proprietary certificate format.
Definition sfFTPLib.idl:2412
ServerCapability
Definition sfFTPLib.idl:339
@ ftpServerCapabilityCopyFile
Definition sfFTPLib.idl:356
@ ftpServerCapabilitySetUnixPermissions
Definition sfFTPLib.idl:368
@ ftpServerCapabilityGetFileSize
Definition sfFTPLib.idl:341
@ ftpServerCapabilityGetMLST
Definition sfFTPLib.idl:365
@ ftpServerCapabilitySetCreateTime
Definition sfFTPLib.idl:353
@ ftpServerCapabilitySetModifyTime
Definition sfFTPLib.idl:350
@ ftpServerCapabilityStat
Definition sfFTPLib.idl:362
@ ftpServerCapabilityMachineReadableList
Definition sfFTPLib.idl:383
@ ftpServerCapabilityRange
Definition sfFTPLib.idl:380
@ ftpServerCapabilityRestart
Definition sfFTPLib.idl:371
@ ftpServerCapabilityUTF8
Definition sfFTPLib.idl:374
@ ftpServerCapabilityFXPFile
Definition sfFTPLib.idl:359
@ ftpServerCapabilityCompression
Definition sfFTPLib.idl:377
@ ftpServerCapabilityGetCreateTime
Definition sfFTPLib.idl:347
@ ftpServerCapabilityGetModifyTime
Definition sfFTPLib.idl:344
CaseSensitivity
Defines how the server handles capitalization in filenames.
Definition sfFTPLib.idl:408
@ ftpCaseSensitivityNo
The server is case-insensitive (e.g., Windows/DOS).
Definition sfFTPLib.idl:439
@ ftpCaseSensitivityUnknown
The case sensitivity of the server is unknown.
Definition sfFTPLib.idl:415
@ ftpCaseSensitivityYes
The server is case-sensitive (e.g., Unix/Linux).
Definition sfFTPLib.idl:427
KeyType
Definition sfFTPLib.idl:2107
@ ftpKeyTypeUnknown
Definition sfFTPLib.idl:2109
@ ftpKeyTypePrivateKey
Public Key.
Definition sfFTPLib.idl:2121
@ ftpKeyTypePublicKey
Private Key.
Definition sfFTPLib.idl:2115
ProtocolFamily
Definition sfFTPLib.idl:318
@ ftpProtocolFamilyUNSPEC
The protocol family is unspecified (Default).
Definition sfFTPLib.idl:323
@ ftpProtocolFamilyINET4
Internet Protocol version 4 (IPv4).
Definition sfFTPLib.idl:329
@ ftpProtocolFamilyINET6
Internet Protocol version 6 (IPv6).
Definition sfFTPLib.idl:335
SFTPStatus
Definition sfFTPLib.idl:5635
@ ftpSFTPStatusNoSpaceOnFilesystem
No Space on Filesystem.
Definition sfFTPLib.idl:5825
@ ftpSFTPStatusLinkLoop
Link Loop.
Definition sfFTPLib.idl:5755
@ ftpSFTPStatusInvalidHandle
Invalid Handle.
Definition sfFTPLib.idl:5799
@ ftpSFTPStatusFileAlreadyExists
File Already Exists.
Definition sfFTPLib.idl:5721
@ ftpSFTPStatusPermissionDenied
Permission Denied.
Definition sfFTPLib.idl:5765
@ ftpSFTPStatusUnknownPrincipal
Unknown Principal.
Definition sfFTPLib.idl:5843
@ ftpSFTPStatusFailure
Generic Failure.
Definition sfFTPLib.idl:5661
@ ftpSFTPStatusFileCorrupt
File Corrupt.
Definition sfFTPLib.idl:5883
@ ftpSFTPStatusCannotDelete
Cannot Delete.
Definition sfFTPLib.idl:5781
@ ftpSFTPStatusOk
Success.
Definition sfFTPLib.idl:5643
@ ftpSFTPStatusEOF
End of File.
Definition sfFTPLib.idl:5652
@ ftpSFTPStatusNoMedia
No Media.
Definition sfFTPLib.idl:5817
@ ftpSFTPStatusByteRangeLockRefused
Byte Range Lock Refused.
Definition sfFTPLib.idl:5867
@ ftpSFTPStatusConnectionLost
Connection Lost.
Definition sfFTPLib.idl:5693
@ ftpSFTPStatusLocalConflict
Local Conflict.
Definition sfFTPLib.idl:5851
@ ftpSFTPStatusBadMessage
Bad Message.
Definition sfFTPLib.idl:5669
@ ftpSFTPStatusQuotaExceeded
Quota Exceeded.
Definition sfFTPLib.idl:5833
@ ftpSFTPStatusDirNotEmpty
Directory Not Empty.
Definition sfFTPLib.idl:5789
@ ftpSFTPStatusNoSuchPath
No Such Path (SFTP v4+).
Definition sfFTPLib.idl:5712
@ ftpSFTPStatusNoConnection
No Connection.
Definition sfFTPLib.idl:5686
@ ftpSFTPStatusNotADirectory
Not a Directory.
Definition sfFTPLib.idl:5730
@ ftpSFTPStatusNoSuchFile
No Such File.
Definition sfFTPLib.idl:5703
@ ftpSFTPStatusNoMatchingByteRangeLock
No Matching Byte Range Lock.
Definition sfFTPLib.idl:5907
@ ftpSFTPStatusDeletePending
Delete Pending.
Definition sfFTPLib.idl:5875
@ ftpSFTPStatusFileIsADirectory
File Is a Directory.
Definition sfFTPLib.idl:5739
@ ftpSFTPStatusInvalidParameter
Invalid Parameter.
Definition sfFTPLib.idl:5807
@ ftpSFTPStatusWriteProtect
Write Protect.
Definition sfFTPLib.idl:5773
@ ftpSFTPStatusInvalidFilename
Invalid Filename.
Definition sfFTPLib.idl:5747
@ ftpSFTPStatusOwnerInvalid
Owner Invalid.
Definition sfFTPLib.idl:5891
@ ftpSFTPStatusOpUnsupported
Operation Unsupported.
Definition sfFTPLib.idl:5677
@ ftpSFTPStatusByteRangeLockConflict
Byte Range Lock Conflict.
Definition sfFTPLib.idl:5859
@ ftpSFTPStatusGroupdInvalid
Group Invalid.
Definition sfFTPLib.idl:5899
ServerCapabilityState
Definition sfFTPLib.idl:387
@ ftpServerCapabilityStateUnavailable
Definition sfFTPLib.idl:389
@ ftpServerCapabilityStateAvailable
Definition sfFTPLib.idl:392
@ ftpServerCapabilityStateUnknown
Definition sfFTPLib.idl:395
KeyFileFormat
Definition sfFTPLib.idl:8330
@ ftpKeyFileFormatOpenSSL
Support: Load Private (Yes), Load Public (N/A), Save Private (No), Save Public (N/A).
Definition sfFTPLib.idl:8336
@ ftpKeyFileFormatOpenSSH
Support: Load Private (N/A), Load Public (Yes), Save Private (N/A), Save Public (Yes).
Definition sfFTPLib.idl:8338
@ ftpKeyFileFormatUnknown
Definition sfFTPLib.idl:8331
@ ftpKeyFileFormatPKCS8
Support: Load Private (Yes), Load Public (N/A), Save Private (No), Save Public (N/A).
Definition sfFTPLib.idl:8332
@ ftpKeyFileFormatVanDyke
Support: Load Private (Yes), Load Public (N/A), Save Private (No), Save Public (N/A).
Definition sfFTPLib.idl:8334
@ ftpKeyFileFormatSSH
Support: Load Private (Yes), Load Public (Yes), Save Private (Yes), Save Public (Yes).
Definition sfFTPLib.idl:8335
@ ftpKeyFileFormatPKCS12
Support: Load Private (Yes), Load Public (N/A), Save Private (Yes), Save Public (N/A).
Definition sfFTPLib.idl:8333
@ ftpKeyFileFormatPutty
Support: Load Private (Yes), Load Public (N/A), Save Private (No), Save Public (N/A).
Definition sfFTPLib.idl:8337
DataTransferType
Defines the format used for data transfer.
Definition sfFTPLib.idl:199
@ ftpDataTransferTypeUnknown
Definition sfFTPLib.idl:201
@ ftpDataTransferTypeImage
Data transfer type is Image (Binary).
Definition sfFTPLib.idl:225
@ ftpDataTransferTypeASCII
Data transfer type is ASCII (Text).
Definition sfFTPLib.idl:214
@ ftpDataTransferTypeEBCDIC
Data transfer type is EBCDIC.
Definition sfFTPLib.idl:236
PortMode
Specifies how the client determines the IP address sent in the PORT command (Active Mode).
Definition sfFTPLib.idl:131
@ ftpPortModeManual
Use the custom IP address defined in the IFTPConnection::PortIP property.
Definition sfFTPLib.idl:150
@ ftpPortModeDefault
Use the local machine's IP address.
Definition sfFTPLib.idl:140
HMAC
Defines the Message Authentication Code (HMAC) algorithms available for data integrity.
Definition sfFTPLib.idl:1131
@ ftpHMACNone
Null MAC (No integrity).
Definition sfFTPLib.idl:1147
@ ftpHMACSHA2512Etm
HMAC-SHA2-512 EtM.
Definition sfFTPLib.idl:1175
@ ftpHMACSHA2256Etm
HMAC-SHA2-256 EtM.
Definition sfFTPLib.idl:1168
@ ftpHMACUnknown
Definition sfFTPLib.idl:1133
@ ftpHMACSHA2256
HMAC-SHA2-256.
Definition sfFTPLib.idl:1154
@ ftpHMACSHA1
HMAC-SHA1 (160-bit).
Definition sfFTPLib.idl:1140
@ ftpHMACSHA2512
HMAC-SHA2-512.
Definition sfFTPLib.idl:1161
Encryption
Defines the symmetric encryption algorithms available for the SSH tunnel.
Definition sfFTPLib.idl:1007
@ ftpEncryption3DES
Triple-DES (3DES).
Definition sfFTPLib.idl:1026
@ ftpEncryptionAES128CBC
AES in Cipher Block Chaining (CBC) mode (128-bit).
Definition sfFTPLib.idl:1036
@ ftpEncryptionAES192CTR
AES in Counter (CTR) mode (192-bit).
Definition sfFTPLib.idl:1070
@ ftpEncryptionAES256CBC
AES in Cipher Block Chaining (CBC) mode (256-bit).
Definition sfFTPLib.idl:1050
@ ftpEncryptionUnknown
Unknown or invalid algorithm.
Definition sfFTPLib.idl:1012
@ ftpEncryptionAES192CBC
AES in Cipher Block Chaining (CBC) mode (192-bit).
Definition sfFTPLib.idl:1043
@ ftpEncryptionAES256GCM
AES in Galois/Counter Mode (GCM) (256-bit).
Definition sfFTPLib.idl:1100
@ ftpEncryptionAES256CTR
AES in Counter (CTR) mode (256-bit).
Definition sfFTPLib.idl:1076
@ ftpEncryptionAES128GCM
AES in Galois/Counter Mode (GCM) (128-bit).
Definition sfFTPLib.idl:1090
@ ftpEncryptionChacha20Poly1305
ChaCha20 with Poly1305 MAC (RFC 7539).
Definition sfFTPLib.idl:1111
@ ftpEncryptionAES128CTR
AES in Counter (CTR) mode (128-bit).
Definition sfFTPLib.idl:1064
StatusEventType
Definition sfFTPLib.idl:766
@ ftpStatusEventTypeLocalInfo
Local Info.
Definition sfFTPLib.idl:771
@ ftpStatusEventTypeLocalError
Local Error.
Definition sfFTPLib.idl:774
@ ftpStatusEventTypeLocalCommand
Local Command.
Definition sfFTPLib.idl:768
@ ftpStatusEventTypeRemote
Remote/Server reply.
Definition sfFTPLib.idl:777
SSHCompression
Identifies the compression algorithms available for the SSH connection.
Definition sfFTPLib.idl:1185
@ ftpSSHCompressionUnknown
Definition sfFTPLib.idl:1187
@ ftpSSHCompressionNone
No compression ("none").
Definition sfFTPLib.idl:1193
@ ftpSSHCompressionzlibopenssh
Delayed zlib compression ("zlib@openssh.com").
Definition sfFTPLib.idl:1206
KeyExchange
Identifies the Key Exchange (KEX) algorithms supported by the SSH client.
Definition sfFTPLib.idl:874
@ ftpKeyExchangeDiffieHellmanGroup16SHA512
Diffie-Hellman Group 16 (4096-bit) with SHA-512.
Definition sfFTPLib.idl:934
@ ftpKeyExchangeCurve25519
Curve25519 (X25519) with SHA-256.
Definition sfFTPLib.idl:973
@ ftpKeyExchangeDiffieHellmanGroupExchangeSHA1
Diffie-Hellman Group Exchange with SHA-1.
Definition sfFTPLib.idl:900
@ ftpKeyExchangeECDH256
Elliptic Curve Diffie-Hellman (NIST P-256).
Definition sfFTPLib.idl:944
@ ftpKeyExchangeCurve25519libssh
Legacy libssh-specific Curve25519 identifier.
Definition sfFTPLib.idl:983
@ ftpKeyExchangeECDH384
Elliptic Curve Diffie-Hellman (NIST P-384).
Definition sfFTPLib.idl:953
@ ftpKeyExchangeDiffieHellmanGroup14SHA256
Diffie-Hellman Group 14 (2048-bit) with SHA-256.
Definition sfFTPLib.idl:922
@ ftpKeyExchangeDiffieHellmanGroup14SHA1
Diffie-Hellman Group 14 (2048-bit) with SHA-1.
Definition sfFTPLib.idl:888
@ ftpKeyExchangeECDH521
Elliptic Curve Diffie-Hellman (NIST P-521).
Definition sfFTPLib.idl:962
@ ftpKeyExchangeUnknown
Definition sfFTPLib.idl:876
@ ftpKeyExchangeMlKem768x25519
Hybrid Post-Quantum Key Exchange (ML-KEM-768 + X25519).
Definition sfFTPLib.idl:995
@ ftpKeyExchangeDiffieHellmanGroupExchangeSHA256
Diffie-Hellman Group Exchange with SHA-256.
Definition sfFTPLib.idl:911
ProxyType
Definition sfFTPLib.idl:72
@ ftpProxyTypeHTTP
HTTP Tunneling (CONNECT method).
Definition sfFTPLib.idl:111
@ ftpProxyTypeSOCKS4
SOCKS4 Proxy.
Definition sfFTPLib.idl:94
@ ftpProxyTypeSOCKS5
SOCKS5 Proxy (RFC 1928).
Definition sfFTPLib.idl:86
@ ftpProxyTypeSOCKS4A
SOCKS4A Proxy (SOCKS4 + Domain Names).
Definition sfFTPLib.idl:102
@ ftpProxyTypeNone
Direct connection (No Proxy).
Definition sfFTPLib.idl:78