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
13#include <WinError.h> // MAKE_HRESULT
14
16// warning MIDL2362 : too many methods in the interface, requires Windows NT 4.0 SP3 or greater.
17midl_pragma warning( disable: 2362 )
19
29typedef [v1_enum] enum FTPProtocol
30{
36 [helpstring("Standard unencrypted FTP")]
38
45 [helpstring("Legacy Implicit TLS")]
47
55 [helpstring("Explicit TLS (Mandatory)")]
57
66 [helpstring("Explicit TLS (Opportunistic)")]
69
70typedef [v1_enum] enum ProxyType
71{
76 [helpstring("Direct connection (No Proxy)")]
78
84 [helpstring("SOCKS5 Proxy")]
86
92 [helpstring("SOCKS4 Proxy")]
94
100 [helpstring("SOCKS4A Proxy")]
102
109 [helpstring("HTTP Tunneling (CONNECT method)")]
112
128// TODO: rename to FTPPortMode
129typedef [v1_enum] enum PortMode
130{
138 [helpstring("PortMode ftpPortMode Default")]
140
148 [helpstring("PortMode ftpPortMode Manual")]
151
155// TODO: rename to FTPPassiveIPMode
156typedef [v1_enum] enum PassiveMode
157{
166 [helpstring("PassiveMode ftpPassiveMode UseIPFromReply")]
168
176 [helpstring("PassiveMode ftpPassiveMode UseHostIP")]
178
186 [helpstring("PassiveMode ftpPassiveMode Auto")]
189
196// TODO: rename to FTPDataTransferType
197typedef [v1_enum] enum DataTransferType
198{
199 [helpstring("Unknown data transfer type")]
201
212 [helpstring("ASCII data transfer type")]
214
223 [helpstring("Image (Binary) data transfer type")]
225
234 [helpstring("EBCDIC data transfer type")]
237
248 // TODO: rename to FTPDataTransferMode
249typedef [v1_enum] enum DataTransferMode
250{
254 [helpstring("Unknown transfer mode")]
256
268 [helpstring("Standard Stream transfer mode")]
270
285 [helpstring("Compressed transfer mode")]
288
297// TODO: rename to FTPDataProtection
298typedef [v1_enum] enum DataProtection
299{
300 [helpstring("DataProtection ftpDataProtection Unknown")]
302
306 [helpstring("Clear (disabled)")]
308
312 [helpstring("Private (enabled)")]
315
316typedef [v1_enum] enum ProtocolFamily
317{
321 [helpstring("Unspecified")]
323
327 [helpstring("IPv4")]
329
333 [helpstring("IPv6")]
336
337typedef [v1_enum] enum ServerCapability
338{
339 [helpstring("ServerCapability ftpServerCapability GetFileSize")]
341
342 [helpstring("ServerCapability ftpServerCapability GetModifyTime")]
344
345 [helpstring("ServerCapability ftpServerCapability GetCreateTime")]
347
348 [helpstring("ServerCapability ftpServerCapability SetModifyTime")]
350
351 [helpstring("ServerCapability ftpServerCapability SetCreateTime")]
353
354 [helpstring("ServerCapability ftpServerCapability CopyFile")]
356
357 [helpstring("ServerCapability ftpServerCapability FXPFile")]
359
360 [helpstring("ServerCapability ftpServerCapability Stat")]
362
363 [helpstring("ServerCapability ftpServerCapability MLST")]
365
366 [helpstring("ServerCapability ftpServerCapability SetUnixPermissions")]
368
369 [helpstring("ServerCapability ftpServerCapability Restart")]
371
372 [helpstring("ServerCapability ftpServerCapability UTF8")]
374
375 [helpstring("ServerCapability ftpServerCapability Compression")]
377
378 [helpstring("ServerCapability ftpServerCapability Range")]
380
381 [helpstring("ServerCapability ftpServerCapability MachineReadableList")]
384
385typedef [v1_enum] enum ServerCapabilityState
386{
387 [helpstring("Unavailable")]
389
390 [helpstring("Available")]
392
393 [helpstring("Unknown")]
396
406typedef [v1_enum] enum CaseSensitivity
407{
413 [helpstring("Unknown")]
415
425 [helpstring("Case-sensitive")]
427
437 [helpstring("Case-insensitive")]
440
441typedef [v1_enum] enum ParserFormat
442{
443 [helpstring("Unknown")] ftpParserFormatUnknown = 0,
444 [helpstring("Unix")] ftpParserFormatUnix = 1,
445 [helpstring("MLST")] ftpParserFormatMLST = 2,
446 [helpstring("VMS")] ftpParserFormatVMS = 3,
447 [helpstring("VxWorks")] ftpParserFormatVxWorks = 4,
448 [helpstring("DOS")] ftpParserFormatDOS = 5,
449 [helpstring("Tandem")] ftpParserFormatTandem = 6,
450 [helpstring("VOS")] ftpParserFormatVOS = 7,
451 [helpstring("MVS")] ftpParserFormatMVS = 8,
452 [helpstring("AS400")] ftpParserFormatAS400 = 9,
453 [helpstring("OS2")] ftpParserFormatOS2 = 10,
454 [helpstring("Netware")] ftpParserFormatNetware = 11,
455 [helpstring("pSOSystem")] ftpParserFormatpSOSystem = 12,
456 [helpstring("NT")] ftpParserFormatNT = 13,
457 [helpstring("MD11")] ftpParserFormatMD11 = 14,
458 [helpstring("BS2000")] ftpParserFormatBS2000 = 15,
459 [helpstring("VM")] ftpParserFormatVM = 16,
460 [helpstring("ConnectEnterprise")] ftpParserFormatConnectEnterprise = 17,
461 [helpstring("GrassValley")] ftpParserFormatGrassValley = 18,
462 [helpstring("Simple")] ftpParserFormatSimple = 19,
463 [helpstring("GXSEnterprise")] ftpParserFormatGXSEnterprise = 20,
464 [helpstring("GXSInformationExchangeFTPGateway")] ftpParserFormatGXSInformationExchangeFTPGateway = 21,
465 [helpstring("SecurePortal2000")] ftpParserFormatSecurePortal2000 = 22,
466 [helpstring("Meditech")] ftpParserFormatMeditech = 23,
468
483typedef [v1_enum] enum ServerType {
487 [helpstring("Unknown")]
489
497 [helpstring("Unix")]
499
504 [helpstring("Peter Lewis")]
506
513 [helpstring("VMS")]
515
523 [helpstring("Windows NT")]
525
529 [helpstring("Amiga")]
531
535 [helpstring("Legacy Classic Mac OS")]
537
542 [helpstring("IBM MVS")]
544
549 [helpstring("IBM AS/400")]
551
555 [helpstring("OS/2")]
557
561 [helpstring("HP NonStop (Tandem)")]
563
567 [helpstring("Stratus VOS")]
569
573 [helpstring("McDonnell Douglas MD-11 Avionics system")]
575
579 [helpstring("pSOSystem")]
581
586 [helpstring("Novell Netware")]
588
589 // --- Specialized / Embedded Systems ---
590
591 [helpstring("TNTEmbeddedToolSuite")]
593
594 [helpstring("BS2000")]
595 ftpServerTypeBS2000 = 16, // Siemens Mainframe
596
597 [helpstring("VM")]
598 ftpServerTypeVM = 17, // IBM VM/CMS
599
600 [helpstring("VxWorks")]
601 ftpServerTypeVxWorks = 18, // Wind River RTOS
602
603 [helpstring("Windows CE")]
604 ftpServerTypeWindowsCE = 19, // Embedded Windows
605
606 [helpstring("GXS Enterprise")]
607 ftpServerTypeGXSEnterprise = 20, // GXS Enterprise
608
609 [helpstring("Interchange Services")]
610 ftpServerTypeICS = 21, // Interchange Services Batch FTP server
611
612 [helpstring("GrassValley")]
613 ftpServerTypeGrassValley = 22, // Broadcast media servers
614
615 [helpstring("GXS Information Exchange")]
616 ftpServerTypeGXSInformationExchangeFTPGateway = 23, // GXS Information Exchange FTP Gateway
617
618 [helpstring("SecurePortal2000")]
620
624 [helpstring("Multi-User Dungeon Object System (LPMud)")]
626
628
633typedef [v1_enum] enum ServerSoftware
634{
635 [helpstring("Unknown")] ftpServerSoftwareUnknown = 0,
636 [helpstring("RaidenFTPd")] ftpServerSoftwareRaidenFTPd = 1,
637 [helpstring("ServU")] ftpServerSoftwareServU = 2,
638 [helpstring("GSFTPS")] ftpServerSoftwareGSFTPS = 3,
639 [helpstring("WSFTP")] ftpServerSoftwareWSFTP = 4,
640 [helpstring("PureFTPd")] ftpServerSoftwarePureFTPd = 5,
641 [helpstring("GuildFTPd")] ftpServerSoftwareGuildFTPd = 6,
642 [helpstring("Titan")] ftpServerSoftwareTitan = 7,
643 [helpstring("Orenosv")] ftpServerSoftwareOrenosv = 8,
644 [helpstring("DrFTPd")] ftpServerSoftwareDrFTPd = 9,
645 [helpstring("moftpd")] ftpServerSoftwaremoftpd = 10,
646 [helpstring("glftpd")] ftpServerSoftwareglftpd = 11,
647 [helpstring("NcFTPd")] ftpServerSoftwareNcFTPd = 12,
648 [helpstring("SurgeFTP")] ftpServerSoftwareSurgeFTP = 13,
649 [helpstring("Blackmoon")] ftpServerSoftwareBlackmoon = 14,
650 [helpstring("WarFTPd")] ftpServerSoftwareWarFTPd = 15,
651 [helpstring("WFTPD")] ftpServerSoftwareWFTPD = 16,
652 [helpstring("ShareIt")] ftpServerSoftwareShareIt = 17,
653 [helpstring("Gene6")] ftpServerSoftwareGene6 = 18,
654// [helpstring("VxWorks")] ftpServerSoftwareVxWorks = 19,
655 [helpstring("NoFeel")] ftpServerSoftwareNoFeel = 20,
656 [helpstring("MOVEit")] ftpServerSoftwareMOVEit = 21,
657 [helpstring("iNEWS")] ftpServerSoftwareiNEWS = 22,
658 [helpstring("Fastream")] ftpServerSoftwareFastream = 23,
659 [helpstring("ConnectEnterprise")] ftpServerSoftwareConnectEnterprise = 24,
660 [helpstring("MicrosoftFTP")] ftpServerSoftwareMicrosoftFTP = 25,
661 [helpstring("OracleXMLDB")] ftpServerSoftwareOracleXMLDB = 26,
662 [helpstring("FileZilla")] ftpServerSoftwareFileZilla = 27,
663 [helpstring("ProFTPD")] ftpServerSoftwareProFTPD = 28,
664 [helpstring("SnapOS")] ftpServerSoftwareSnapOS = 29,
665 [helpstring("MacOSX")] ftpServerSoftwareMacOSX = 30,
666 [helpstring("cuftpd")] ftpServerSoftwarecuftpd = 31,
667 [helpstring("CerberusFTPServer")] ftpServerSoftwareCerberusFTPServer = 32,
668 [helpstring("zOS")] ftpServerSoftwarezOS = 33,
669 [helpstring("HumaxiCord")] ftpServerSoftwareHumaxiCord = 34,
670 [helpstring("Mtcp")] ftpServerSoftwareMtcp = 35,
671 [helpstring("Ps3")] ftpServerSoftwarePs3 = 36,
672 [helpstring("Meditech")] ftpServerSoftwareMeditech = 37,
673 [helpstring("CleoVLTrader")] ftpServerSoftwareCleoVLTrader = 38,
674 [helpstring("WebMethods")] ftpServerSoftwareWebMethods = 39,
675 [helpstring("JustCloud")] ftpServerSoftwareJustCloud = 40,
676 [helpstring("MultiNet")] ftpServerSoftwareMultiNet = 41,
677 [helpstring("TransCore")] ftpServerSoftwareTransCore = 42,
678 [helpstring("TopfieldPVR")] ftpServerSoftwareTopfieldPVR = 43
680
681typedef [v1_enum] enum OperatingSystem
682{
690 [helpstring("Unknown")] ftpOperatingSystemUnknown = 0,
691
695 [helpstring("Windows")] ftpOperatingSystemWindows = 1,
696
700 [helpstring("Unix")] ftpOperatingSystemUnix = 2,
701
710 [helpstring("VMS")] ftpOperatingSystemVMS = 3
712
714
721// TODO: property missing in IFTPConnection
722// Used by FTP::OperationSetModifyTime
723typedef [v1_enum] enum FTPSetFileTimeCommand
724{
728 [helpstring("Unknown")]
729 ftpSetFileTimeCommandUnknown = 0,
730
736 [helpstring("Auto")]
737 ftpSetFileTimeCommandAuto = 1,
738
743 [helpstring("MFMT")]
744 ftpSetFileTimeCommandMFMT = 2,
745
752 [helpstring("MDTM")]
753 ftpSetFileTimeCommandMDTM = 3,
754
759 [helpstring("MFF")]
760 ftpSetFileTimeCommandMFF = 6
761} SetFileTimeCommand;
763
764typedef [v1_enum] enum StatusEventType
765{
766 [helpstring("LocalCommand")]
768
769 [helpstring("LocalInfo")]
771
772 [helpstring("LocalError")]
774
775 [helpstring("Remote")]
778
779typedef [v1_enum] enum ConnectionStatus
780{
781 [helpstring("Unknown")]
783
784 [helpstring("Connecting")]
786
787 [helpstring("Connected")]
789
790 [helpstring("Disconnecting")]
792
793 [helpstring("Disconnected")]
796
797typedef [v1_enum] enum SFTPConnectionStatus
798{
802 [helpstring("Unknown")]
804
813 [helpstring("Init")]
815
824 [helpstring("Closing")]
827
828typedef [v1_enum] enum LogFormat
829{
830 [helpstring("Unicode")]
832
833 [helpstring("UTF8")]
836
837typedef [v1_enum] enum HashAlgo
838{
839 [helpstring("Unknown")] ftpHashAlgoUnknown = 0,
840 [helpstring("CRC32")] ftpHashAlgoCRC32 = 1,
841 [helpstring("MD5")] ftpHashAlgoMD5= 2,
842 [helpstring("SHA1")] ftpHashAlgoSHA1 = 3,
843 [helpstring("SHA256")] ftpHashAlgoSHA256 = 4,
844 [helpstring("SHA384")] ftpHashAlgoSHA384 = 5,
845 [helpstring("SHA512")] ftpHashAlgoSHA512 = 6,
846 [helpstring("Microsoft QuickXorHash")] ftpHashAlgoMicrosoftQuickXorHash = 7
848
850// Internal use only: FTP::OperationTransfer
851typedef [v1_enum] enum FTPDataMethod
852{
853 [helpstring("Unknown")]
854 ftpDataMethodUnknown = 0,
855
856 [helpstring("Active")]
857 ftpDataMethodActive = 1,
858
859 [helpstring("Passive")]
860 ftpDataMethodPassive = 2
861} FTPDataMethod;
863
872typedef [v1_enum] enum KeyExchange
873{
874 [helpstring("KeyExchange Unknown")]
876
886 [helpstring("KeyExchange DiffieHellmanGroup14SHA1")]
888
898 [helpstring("KeyExchange DiffieHellmanGroupExchangeSHA1")]
900
909 [helpstring("KeyExchange DiffieHellmanGroupExchangeSHA256")]
911
920 [helpstring("KeyExchange DiffieHellmanGroup14SHA256")]
922
932 [helpstring("KeyExchange DiffieHellmanGroup16SHA512")]
934
942 [helpstring("KeyExchange ECDH256")]
944
951 [helpstring("KeyExchange ECDH384")]
953
960 [helpstring("KeyExchange ECDH521")]
962
971 [helpstring("KeyExchange Curve25519")]
973
981 [helpstring("KeyExchange Curve25519libssh")]
983
993 [helpstring("KeyExchange MlKem768x25519")]
996
1005typedef [v1_enum] enum Encryption
1006{
1010 [helpstring("Unknown")]
1012
1013 // -------------------------------------------------------------------------
1014 // Legacy / Deprecated (Avoid)
1015 // -------------------------------------------------------------------------
1016
1024 [helpstring("Triple-DES (3DES)")]
1026
1034 [helpstring("AES in Cipher Block Chaining (CBC) mode (128-bit)")]
1036
1041 [helpstring("AES in Cipher Block Chaining (CBC) mode (192-bit)")]
1043
1048 [helpstring("AES in Cipher Block Chaining (CBC) mode (256-bit)")]
1050
1051 // -------------------------------------------------------------------------
1052 // Standard (Safe)
1053 // -------------------------------------------------------------------------
1054
1062 [helpstring("AES in Counter (CTR) mode (128-bit)")]
1064
1068 [helpstring("AES in Counter (CTR) mode (192-bit)")]
1070
1074 [helpstring("AES in Counter (CTR) mode (256-bit)")]
1076
1077 // -------------------------------------------------------------------------
1078 // Modern / High Performance (Recommended)
1079 // -------------------------------------------------------------------------
1080
1088 [helpstring("AES in Galois/Counter Mode (GCM) (128-bit)")]
1090
1098 [helpstring("AES in Galois/Counter Mode (GCM) (256-bit)")]
1100
1104// [helpstring("ChaCha20 Stream Cipher")]
1105// ftpEncryptionChacha20 = 21,
1106
1115// [helpstring("ChaCha20 with Poly1305 MAC")]
1116// ftpEncryptionChaCha20Poly1305 = 22,
1118
1135typedef [v1_enum] enum HMAC
1136{
1137 [helpstring("Unknown")]
1139
1144 [helpstring("hmac-sha1: HMAC SHA1")]
1146
1151 [helpstring("none: HMAC None")]
1153
1158 [helpstring("hmac-sha2-256: HMAC SHA2-256")]
1160
1165 [helpstring("hmac-sha2-512: HMAC SHA2-512")]
1167
1172 [helpstring("hmac-sha2-256-etm@openssh.com: HMAC SHA2-256 EtM")]
1174
1179 [helpstring("hmac-sha2-512-etm@openssh.com: HMAC SHA2-512 EtM")]
1182
1189typedef [v1_enum] enum SSHCompression
1190{
1191 [helpstring("Unknown: Unspecified or invalid compression method.")]
1193
1197 [helpstring("none: No compression.")]
1199
1210 [helpstring("zlib@openssh.com: Delayed zlib compression.")]
1213
1221typedef [v1_enum] enum FeatureDiscoveryMode
1222{
1228 [helpstring("FeatureDiscoveryMode ftpFeatureDiscoveryMode AfterLogin")]
1230
1237 [helpstring("FeatureDiscoveryMode ftpFeatureDiscoveryMode BeforeAndAfterLogin")]
1240
1248[
1249 object,
1250 uuid(05692BAF-A61B-4692-AB93-58108D48994D),
1251 dual,
1252 oleautomation,
1253 nonextensible,
1254 helpstring("IGlobal Interface"),
1255 pointer_default(unique)
1256]
1257interface IGlobal : IDispatch
1258{
1267 [propget, id(1), helpstring("property Version")] HRESULT Version([out, retval] BSTR* retval);
1268
1280 [propput, id(4), helpstring("property FIPS")] HRESULT FIPS([in] VARIANT_BOOL newValue);
1281 [propget, id(4), helpstring("property FIPS")] HRESULT FIPS([out, retval] VARIANT_BOOL* retval);
1282
1291 [propget, id(7), helpstring("property TotalBytesReceived")] HRESULT TotalBytesReceived([out, retval] ULONGLONG *retval);
1292
1301 [propget, id(8), helpstring("property TotalBytesSent")] HRESULT TotalBytesSent([out, retval] ULONGLONG *retval);
1302
1315 [propput, id(9), helpstring("property ActivationUrl")] HRESULT ActivationUrl([in] BSTR newVal);
1316 [propget, id(9), helpstring("property ActivationUrl")] HRESULT ActivationUrl([out, retval] BSTR *retval);
1317
1333 [id(12), helpstring("method LoadLicense")] HRESULT LoadLicense([in] BSTR productKey);
1334
1336// [id(13), helpstring("method GetActivationRequest")] GetActivationRequest([out] BSTR* activationRequest);
1337// [id(14), helpstring("method HandleActivationResponse")] HandleActivationResponse([in] BSTR activationResponse);
1339};
1340
1353[ uuid(2F818839-9A89-4821-BBFA-DCB242646EF2),
1354 object,
1355 oleautomation,
1356 dual,
1357 nonextensible,
1358 helpstring("IFTPPortPool Interface"),
1359 pointer_default(unique)
1360]
1361interface IFTPPortPool : IDispatch
1362{
1371 [propget, id(1), helpstring("property MinPort")]
1372 HRESULT MinPort([out, retval] long* retval);
1373
1382 [propget, id(2), helpstring("property MaxPort")]
1383 HRESULT MaxPort([out, retval] long* retval);
1384
1397 [id(100), helpstring("method NextPort")]
1398 HRESULT NextPort([out, retval] long* retval);
1399
1415 [id(101), helpstring("method SetPortRange")]
1416 HRESULT SetPortRange([in] long minPort, [in] long maxPort);
1417};
1418
1419[
1420 object,
1421 uuid(00EF4F3A-9300-4FB7-BC27-7F13D6E1D9BD),
1422 dual,
1423 oleautomation,
1424 nonextensible,
1425 helpstring("IGlobalSpeedLimit Interface"),
1426 pointer_default(unique)
1427]
1428interface IGlobalSpeedLimit : IDispatch
1429{
1443 [propget, id(1), helpstring("property UploadSpeedLimit")]
1444 HRESULT UploadSpeedLimit([out, retval] long* retval);
1445 [propput, id(1), helpstring("property UploadSpeedLimit")]
1446 HRESULT UploadSpeedLimit([in] long newValue);
1447
1461 [propget, id(2), helpstring("property DownloadSpeedLimit")]
1462 HRESULT DownloadSpeedLimit([out, retval] long* retval);
1463 [propput, id(2), helpstring("property DownloadSpeedLimit")]
1464 HRESULT DownloadSpeedLimit([in] long newValue);
1465};
1466
1479typedef [v1_enum] enum ItemType {
1484 [helpstring("ItemType ftpItemType RegularFile")]
1486
1490 [helpstring("ItemType ftpItemType Directory")]
1492
1497 [helpstring("ItemType ftpItemType SymbolicLink")]
1499
1503 [helpstring("ItemType ftpItemType Special")]
1505
1511 [helpstring("ItemType ftpItemType Unknown")]
1513
1518 [helpstring("ItemType ftpItemType FIFO")]
1520
1526 [helpstring("ItemType ftpItemType CharacterDevice")]
1528
1534 [helpstring("ItemType ftpItemType BlockDevice")]
1536
1541 [helpstring("ItemType ftpItemType Socket")]
1543
1545
1561[
1562 object,
1563 uuid(6E66C7AD-703F-410F-92E6-BB98A702D073),
1564 oleautomation,
1565 dual,
1566 nonextensible,
1567 helpstring("ISecurityConnectionInfo Interface"),
1568 pointer_default(unique)
1569]
1570interface ISecurityConnectionInfo : IDispatch
1571{
1579 [propget, id(1), helpstring("property Protocol")]
1580 HRESULT Protocol([out, retval] long* retval);
1581
1587 [propget, id(2), helpstring("property CipherAlgo")]
1588 HRESULT CipherAlgo([out, retval] BSTR* retval);
1589
1598 [propget, id(3), helpstring("property CipherStrength")]
1599 HRESULT CipherStrength([out, retval] long* retval);
1600
1606 [propget, id(4), helpstring("property HashAlgo")]
1607 HRESULT HashAlgo([out, retval] BSTR* retval);
1608
1614 [propget, id(5), helpstring("property HashStrength")]
1615 HRESULT HashStrength([out, retval] long* retval);
1616
1622 [propget, id(6), helpstring("property ExchangeAlgo")]
1623 HRESULT ExchangeAlgo([out, retval] BSTR* retval);
1624
1631 [propget, id(7), helpstring("property ExchangeStrength")]
1632 HRESULT ExchangeStrength([out, retval] long* retval);
1633};
1634
1635[
1636 object,
1637 uuid(B11A9B35-27A7-4387-B089-B1B632A8059F),
1638 nonextensible,
1639 pointer_default(unique)
1640]
1641interface IStreamFilter : IUnknown
1642{
1643 // Do not use a IStream as argument otherwise the proxy stubs for IStream and ISequentialStream are generated which is not what we want
1644 // This is the case because the manifest adds <comInterfaceExternalProxyStub > for IStream
1645 HRESULT Initialize([in] IStream* stream);
1646 HRESULT Uninitialize();
1647 HRESULT GetStream([out] IStream** stream);
1648};
1649
1650[
1651 object,
1652 uuid(411899B9-5F68-40EF-BE59-044A393C34A2),
1653 nonextensible,
1654 pointer_default(unique)
1655]
1656interface IStreamFilterInfo : IUnknown
1657{
1658 [propget] HRESULT AlignSize([out, retval] long* retval);
1659};
1660
1665[
1666 object,
1667 uuid(44875A47-88B4-4310-A777-5A63261355EE),
1668 oleautomation,
1669 dual,
1670 nonextensible,
1671 helpstring("IFTPClientId Interface"),
1672 pointer_default(unique)
1673]
1674interface IFTPClientId : IDispatch
1675{
1688 [propput, id(1), helpstring("property Name")]
1689 HRESULT Name([in] BSTR newValue);
1690 [propget, id(1), helpstring("property Name")]
1691 HRESULT Name([out, retval] BSTR* retval);
1692
1705 [propput, id(2), helpstring("property Version")]
1706 HRESULT Version([in] BSTR newValue);
1707 [propget, id(2), helpstring("property Version")]
1708 HRESULT Version([out, retval] BSTR* retval);
1709};
1710
1720[
1721 object,
1722 uuid(CDEE9011-5363-455A-BD11-E3C49CECDB3F),
1723 oleautomation,
1724 dual,
1725 nonextensible,
1726 helpstring("IFTPServerId Interface"),
1727 pointer_default(unique)
1728]
1729interface IFTPServerId : IDispatch
1730{
1738 [propget, id(1), helpstring("property Name")]
1739 HRESULT Name([out, retval] BSTR* retval);
1740
1747 [propget, id(2), helpstring("property Version")]
1748 HRESULT Version([out, retval] BSTR* retval);
1749
1757 [propget, id(3), helpstring("property CaseSensitivity")]
1758 HRESULT CaseSensitivity([out, retval] CaseSensitivity* retval);
1759};
1760
1761[
1762 object,
1763 uuid(19D50DD2-F381-4DA0-923D-DA672ABA7824),
1764 oleautomation,
1765 dual,
1766 nonextensible,
1767 helpstring("IFTPServerState Interface"),
1768 pointer_default(unique)
1769]
1770interface IFTPServerState : IDispatch
1771{
1792 [propget, id(1), helpstring("property CodePage")]
1793 HRESULT CodePage([out, retval] long* retval);
1794
1813 [propget, id(2), helpstring("property DataProtection")]
1814 HRESULT DataProtection([out, retval] DataProtection* retval);
1815
1832 [propget, id(15), helpstring("property CommandProtection")]
1833 HRESULT CommandProtection([out, retval] DataProtection* retval);
1834
1843 [propget, id(3), helpstring("property DataTransferType")]
1844 HRESULT DataTransferType([out, retval] DataTransferType* retval);
1845
1857 [propget, id(4), helpstring("property DataTransferMode")]
1858 HRESULT DataTransferMode([out, retval] DataTransferMode* retval);
1859
1870 [propget, id(6), helpstring("property ServerType")]
1871 HRESULT ServerType([out, retval] ServerType* retval);
1872
1887 [propget, id(7), helpstring("property ServerSoftware")]
1888 HRESULT ServerSoftware([out, retval] ServerSoftware* retval);
1889
1900 [propget, id(8), helpstring("property PBSZ")]
1901 HRESULT PBSZ([out, retval] VARIANT_BOOL* retval);
1902
1924 [propget, id(9), helpstring("property SSCN")]
1925 HRESULT SSCN([out, retval] VARIANT_BOOL* retval);
1935 [propget, id(10), helpstring("property WorkingDirectory")]
1936 HRESULT WorkingDirectory([out, retval] BSTR* retval);
1937
1950 [propget, id(16), helpstring("property HomeDirectory")]
1951 HRESULT HomeDirectory([out, retval] BSTR* retval);
1952
1973 [propget, id(11), helpstring("property SYSTReply")]
1974 HRESULT SYSTReply([out, retval] BSTR* retval);
1975
1995 [propget, id(12), helpstring("property FEATReply")]
1996 HRESULT FEATReply([out, retval] BSTR* retval);
1997
2006 [propget, id(13), helpstring("property WelcomeMessage")]
2007 HRESULT WelcomeMessage([out, retval] BSTR* retval);
2008
2033 [propget, id(14), helpstring("property ServerId")]
2034 HRESULT ServerId([out, retval] IFTPServerId ** retval);
2035
2045 [propget, id(103), helpstring("property OperatingSystem")]
2046 HRESULT OperatingSystem([out, retval] OperatingSystem *retval);
2047
2048 [id(101), helpstring("method EvaluateParserFormat")]
2049 HRESULT EvaluateParserFormat([out, retval] ParserFormat *retval);
2065 [id(105), helpstring("method GetCaseSensitivity")]
2066 HRESULT GetCaseSensitivity([out, retval] CaseSensitivity* retval);
2067
2068 [id(108), helpstring("method GetServerCapabilityState")]
2069 HRESULT GetServerCapabilityState([in] ServerCapability capability, [out, retval] ServerCapabilityState* retval);
2085 [id(104), helpstring("method IsHashAlgoAvailable")]
2086 HRESULT IsHashAlgoAvailable([in] HashAlgo algo, [out, retval] VARIANT_BOOL* retval);
2087
2107 [id(106), helpstring("method LookupFeature")]
2108 HRESULT LookupFeature([in] BSTR key, [out] BSTR *value, [out, retval] VARIANT_BOOL *retval);
2109};
2110
2111typedef [v1_enum] enum KeyType
2112{
2113 [helpstring("KeyType ftpKeyType Unknown")]
2115
2119 [helpstring("KeyType ftpKeyType PrivateKey")]
2121
2125 [helpstring("KeyType ftpKeyType PublicKey")]
2128
2129typedef [v1_enum] enum KeyAlgo
2130{
2134 [helpstring("KeyAlgo ftpKeyAlgo Unknown")]
2136
2145 [helpstring("KeyAlgo ftpKeyAlgo RSA")]
2147
2158 [helpstring("KeyAlgo ftpKeyAlgo DSA")]
2160
2171 [helpstring("KeyAlgo ftpKeyAlgo ECDSAP256")]
2173
2182 [helpstring("KeyAlgo ftpKeyAlgo ECDSAP384")]
2184
2193 [helpstring("KeyAlgo ftpKeyAlgo ECDSAP521")]
2195
2202 [helpstring("KeyAlgo ftpKeyAlgo Ed25519")]
2204
2211 [helpstring("KeyAlgo ftpKeyAlgo Ed448")]
2213
2225 [helpstring("KeyAlgo ftpKeyAlgo MlDsa44")]
2227
2239 [helpstring("KeyAlgo ftpKeyAlgo MlDsa65")]
2241
2253 [helpstring("KeyAlgo ftpKeyAlgo MlDsa87")]
2256
2264typedef [v1_enum] enum SSHPublicKeyAlgo
2265{
2266 [helpstring("Unknown: Unspecified or invalid algorithm.")]
2268
2269 // --- RSA Family (Classic) ---
2270
2273 [helpstring("ssh-rsa: Legacy RSA with SHA-1. Deprecated; use SHA-2 variants instead.")]
2275
2277 [helpstring("rsa-sha2-256: RSA with SHA-256.")]
2279
2281 [helpstring("rsa-sha2-512: RSA with SHA-512.")]
2283
2284 // --- Elliptic Curve Family (ECDSA / EdDSA) ---
2285
2287 [helpstring("ecdsa-sha2-nistp256: NIST P-256 Curve. Standard ECDSA variant.")]
2289
2291 [helpstring("ecdsa-sha2-nistp384: NIST P-384 Curve.")]
2293
2295 [helpstring("ecdsa-sha2-nistp521: NIST P-521 Curve.")]
2297
2300 [helpstring("ssh-ed25519: Curve25519 signature.")]
2302
2304 [helpstring("ssh-ed448: EdDSA using the Goldilocks curve.")]
2306
2307 // --- Post-Quantum (ML-DSA / Crystals-Dilithium) ---
2308
2311 [helpstring("ml-dsa-44: NIST Post-Quantum signature.")]
2313
2315 [helpstring("ml-dsa-65: NIST Post-Quantum signature.")]
2317
2319 [helpstring("ml-dsa-87: NIST Post-Quantum signature.")]
2321
2322 // --- X.509 Certificate Variants ---
2323
2325 [helpstring("x509v3-sign-rsa: RSA signatures using X.509v3 certificates.")]
2327
2329 [helpstring("x509v3-ecdsa-sha2-nistp256: ECDSA signatures using X.509v3 certificates.")]
2331
2333 [helpstring("x509v3-ecdsa-sha2-nistp384: ECDSA P-384 signatures using X.509v3 certificates.")]
2335
2337 [helpstring("x509v3-ecdsa-sha2-nistp521: ECDSA P-521 signatures using X.509v3 certificates.")]
2339
2341 [helpstring("x509v3-rsa2048-sha256: RSA-2048 with SHA-256 using X.509v3 certificates.")]
2343
2344 // --- OpenSSH Certificate Variants ---
2345
2347 [helpstring("rsa-sha2-256-cert-v01@openssh.com: OpenSSH Certificate based on RSA SHA-256.")]
2349
2351 [helpstring("rsa-sha2-512-cert-v01@openssh.com: OpenSSH Certificate based on RSA SHA-512.")]
2353
2355 [helpstring("ssh-ed25519-cert-v01@openssh.com: OpenSSH Certificate based on Ed25519.")]
2357
2359 [helpstring("ssh-rsa-cert-v01@openssh.com: Legacy OpenSSH RSA Certificate (SHA-1).")]
2361
2363 [helpstring("ssh-dss-cert-v01@openssh.com: Legacy OpenSSH DSA Certificate.")]
2365
2367 [helpstring("ecdsa-sha2-nistp256-cert-v01@openssh.com: OpenSSH Certificate based on ECDSA P-256.")]
2369
2371 [helpstring("ecdsa-sha2-nistp384-cert-v01@openssh.com: OpenSSH Certificate based on ECDSA P-384.")]
2373
2375 [helpstring("ecdsa-sha2-nistp521-cert-v01@openssh.com: OpenSSH Certificate based on ECDSA P-521.")]
2377
2378 // --- Legacy / Insecure ---
2379
2382 [helpstring("ssh-dss: Legacy Digital Signature Algorithm. Deprecated and insecure.")]
2385
2386typedef [v1_enum] enum CertificateType
2387{
2388 [helpstring("Unknown")]
2390
2399 [helpstring("X.509: Standard Public Key Infrastructure")]
2401
2416 [helpstring("OpenSSH: SSH Proprietary Certificate")]
2419
2432[
2433 uuid(DEA6D5FC-1CA3-4d58-876C-5D0C4C02F835), // IID_IKey
2434 object,
2435 oleautomation,
2436 dual,
2437 nonextensible,
2438 helpstring("IKey Interface"),
2439 pointer_default(unique)
2440]
2441interface IKey : IDispatch
2442{
2452 [propget, id(1), helpstring("property Type")]
2453 HRESULT Type([out, retval] KeyType* retval);
2454
2464 [propget, id(2), helpstring("property Bits")]
2465 HRESULT Bits([out, retval] long* retval);
2466
2477 [propget, id(3), helpstring("property Algo")]
2478 HRESULT Algo([out, retval] KeyAlgo* retval);
2479
2488 [propget, id(4), helpstring("property Certificate")]
2489 HRESULT Certificate([out, retval] VARIANT* retval);
2490
2497 [propget, id(5), helpstring("property CertificateType")]
2498 HRESULT CertificateType([out, retval] CertificateType* retval);
2499
2507 [id(22), helpstring("method ImportBlob")]
2508 HRESULT ImportBlob(
2509 [in] LPCWSTR pszBlobType,
2510 [in, size_is(cbInput)] byte* pbInput,
2511 [in] ULONG cbInput
2512 );
2513
2528 [id(23), helpstring("method Verify")]
2529 HRESULT Verify(
2530 [in] HashAlgo hashAlgo,
2531 [in, size_is(cbSignature)] byte* pbSignature,
2532 [in] ULONG cbSignature,
2533 [in, size_is(cbInput)] byte* pbInput,
2534 [in] ULONG cbInput,
2535 [in] ULONG flags
2536 );
2537
2552 [id(24), helpstring("method ExportKey")]
2553 HRESULT ExportKey(
2554 [in] LPCWSTR pszBlobType,
2555 [out, size_is(*pcbData)] byte* pbData,
2556 [in,out] ULONG *pcbData
2557 );
2558
2577 [id(25), helpstring("method Sign")]
2578 HRESULT Sign(
2579 [in] HashAlgo hashAlgo,
2580 [in, size_is(cbInput)] byte* pbInput,
2581 [in] ULONG cbInput,
2582 [out, size_is(*pcbSignature)] byte* pbSignature,
2583 [in,out] ULONG *pcbSignature,
2584 [in] ULONG flags
2585 );
2586
2599 [id(26), helpstring("method SetProperty")]
2600 HRESULT SetProperty(
2601 [in] LPCWSTR pszProperty,
2602 [in, size_is(cbInput)] byte* pbInput,
2603 [in] ULONG cbInput,
2604 [in] ULONG dwFlags
2605 );
2606};
2607
2614[
2615 object,
2616 uuid(67888DE9-428E-4CCE-B0A5-97D0883142A6),
2617 oleautomation,
2618 dual,
2619 nonextensible,
2620 helpstring("IProxySettings Interface"),
2621 pointer_default(unique)
2622]
2623interface IProxySettings : IDispatch
2624{
2630 [propput, id(1), helpstring("property Host")]
2631 HRESULT Host([in] BSTR newValue);
2632 [propget, id(1), helpstring("property Host")]
2633 HRESULT Host([out, retval] BSTR* retval);
2634
2640 [propput, id(2), helpstring("property Port")]
2641 HRESULT Port([in] long newValue);
2642 [propget, id(2), helpstring("property Port")]
2643 HRESULT Port([out, retval] long* retval);
2644
2651 [propput, id(3), helpstring("property Type")]
2652 HRESULT Type([in] ProxyType newValue);
2653 [propget, id(3), helpstring("property Type")]
2654 HRESULT Type([out, retval] ProxyType* retval);
2661 [propput, id(4), helpstring("property Authentication")]
2662 HRESULT Authentication([in] VARIANT_BOOL newValue);
2663 [propget, id(4), helpstring("property Authentication")]
2664 HRESULT Authentication([out, retval] VARIANT_BOOL* retval);
2665
2671 [propput, id(5), helpstring("property Username")]
2672 HRESULT Username([in] BSTR newValue);
2673 [propget, id(5), helpstring("property Username")]
2674 HRESULT Username([out, retval] BSTR* retval);
2675
2681 [propput, id(6), helpstring("property Password")]
2682 HRESULT Password([in] BSTR newValue);
2683 [propget, id(6), helpstring("property Password")]
2684 HRESULT Password([out, retval] BSTR* retval);
2685
2691 [propput, id(8), helpstring("property ProtocolFamily")]
2692 HRESULT ProtocolFamily([in] long newValue);
2693 [propget, id(8), helpstring("property ProtocolFamily")]
2694 HRESULT ProtocolFamily([out, retval] long* retval);
2695
2701 [propput, id(9), helpstring("property ProtocolFamilyPreference")]
2702 HRESULT ProtocolFamilyPreference([in] long newValue);
2703 [propget, id(9), helpstring("property ProtocolFamilyPreference")]
2704 HRESULT ProtocolFamilyPreference([out, retval] long* retval);
2705};
2706
2707[
2708 object,
2709 uuid(2A36B23A-4D39-47E6-A659-FF457D19AEC1),
2710 oleautomation,
2711 dual,
2712 nonextensible,
2713 helpstring("ISocketSettings Interface"),
2714 pointer_default(unique)
2715]
2716interface ISocketSettings : IDispatch
2717{
2725 [propput, id(114), helpstring("property SendBufferSize")]
2726 HRESULT SendBufferSize([in] long newValue);
2727 [propget, id(114), helpstring("property SendBufferSize")]
2728 HRESULT SendBufferSize([out, retval] long* retval);
2729
2738 [propput, id(115), helpstring("property ReceiveBufferSize")]
2739 HRESULT ReceiveBufferSize([in] long newValue);
2740 [propget, id(115), helpstring("property ReceiveBufferSize")]
2741 HRESULT ReceiveBufferSize([out, retval] long* retval);
2742
2758 [propput, id(164), helpstring("property AutoTuneSendBufferSize")]
2759 HRESULT AutoTuneSendBufferSize([in] VARIANT_BOOL newValue);
2760 [propget, id(164), helpstring("property AutoTuneSendBufferSize")]
2761 HRESULT AutoTuneSendBufferSize([out, retval] VARIANT_BOOL* retval);
2762
2778 [propput, id(163), helpstring("property AutoTuneReceiveBufferSize")]
2779 HRESULT AutoTuneReceiveBufferSize([in] VARIANT_BOOL newValue);
2780 [propget, id(163), helpstring("property AutoTuneReceiveBufferSize")]
2781 HRESULT AutoTuneReceiveBufferSize([out, retval] VARIANT_BOOL* retval);
2782
2802 [propput, id(9), helpstring("property TcpNoDelay")]
2803 HRESULT TcpNoDelay([in] VARIANT_BOOL newValue);
2804 [propget, id(9), helpstring("property TcpNoDelay")]
2805 HRESULT TcpNoDelay([out, retval] VARIANT_BOOL* retval);
2806};
2807
2808[
2809 object,
2810 uuid(43F64D39-D795-43E7-AD13-4AC58A16706E),
2811 oleautomation,
2812 dual,
2813 nonextensible,
2814 helpstring("ISpeedLimitSettings Interface"),
2815 pointer_default(unique)
2816]
2817interface ISpeedLimitSettings : IDispatch
2818{
2824 [propget, id(1), helpstring("property UploadSpeedLimit")]
2825 HRESULT UploadSpeedLimit([out, retval] long* retval);
2826 [propput, id(1), helpstring("property UploadSpeedLimit")]
2827 HRESULT UploadSpeedLimit([in] long newValue);
2828
2834 [propget, id(2), helpstring("property DownloadSpeedLimit")]
2835 HRESULT DownloadSpeedLimit([out, retval] long* retval);
2836 [propput, id(2), helpstring("property DownloadSpeedLimit")]
2837 HRESULT DownloadSpeedLimit([in] long newValue);
2838};
2839
2840[
2841 object,
2842 uuid(E73FB5C8-7B36-49D0-B491-C5C0E34640E3),
2843 pointer_default(unique)
2844]
2845interface ICompletionHandler : IUnknown
2846{
2847 HRESULT OnComplete([in] HRESULT error);
2848}
2849
2850[
2851 object,
2852 uuid(294F6B85-F0F9-4A29-8125-609C20BC4226),
2853 oleautomation,
2854 dual,
2855 nonextensible,
2856 helpstring("ITlsSocket Interface"),
2857 pointer_default(unique)
2858]
2859interface ITlsSocket : IDispatch
2860{
2861 [propget, id(13), helpstring("property Enabled")]
2862 HRESULT Enabled([out, retval] VARIANT_BOOL* retval);
2863
2872 [propput, id(14), helpstring("property ClientCertThumbprint")]
2873 HRESULT ClientCertThumbprint([in] VARIANT thumbprint);
2874 [propget, id(14), helpstring("property ClientCertThumbprint")]
2875 HRESULT ClientCertThumbprint([out, retval] VARIANT* retval);
2876
2884 [propput, id(15), helpstring("property ClientCertStore")]
2885 HRESULT ClientCertStore([in] BSTR newValue);
2886 [propget, id(15), helpstring("property ClientCertStore")]
2887 HRESULT ClientCertStore([out, retval] BSTR* retval);
2888
2897 [propput, id(16), helpstring("property ClientCertStoreLocation")]
2898 HRESULT ClientCertStoreLocation([in] long newValue);
2899 [propget, id(16), helpstring("property ClientCertStoreLocation")]
2900 HRESULT ClientCertStoreLocation([out, retval] long* retval);
2901
2912 [propget, id(20), helpstring("property ConnectionInfo")]
2913 HRESULT ConnectionInfo([out, retval] ISecurityConnectionInfo **retval);
2914
2920 [propget, id(17), helpstring("property RemoteCert")]
2921 HRESULT RemoteCert([out,retval] VARIANT* retval);
2922
2927 [propput, id(21), helpstring("property DisabledProtocols")]
2928 HRESULT DisabledProtocols([in] long newValue);
2929 [propget, id(21), helpstring("property DisabledProtocols")]
2930 HRESULT DisabledProtocols([out, retval] long* retval);
2931};
2932
2933[
2934 object,
2935 uuid(58B37E37-9F86-4348-8698-A3D7A0A81EF5),
2936 dual,
2937 nonextensible,
2938 helpstring("ISFTPExtendedCheckFileResult Interface"),
2939 pointer_default(unique)
2940]
2941interface ISFTPExtendedCheckFileResult : IDispatch
2942{
2952 [propget, id(1), helpstring("property HashAlgo")]
2953 HRESULT HashAlgo([out, retval] HashAlgo* retval);
2954
2970 [propget, id(2), helpstring("property HashAsString")]
2971 HRESULT HashAsString([out, retval] BSTR* retval);
2972};
2973
2974[
2975 object,
2976 uuid(BB665147-7336-47C5-AFF4-DB5819BD29CE),
2977 pointer_default(unique)
2978]
2979interface ILogger : IUnknown
2980{
2981 // midl doesn't support 64-bit SIZE_T for size_is()
2982 HRESULT Log([in] StatusEventType eventType, [in, size_is(textLength)] LPCWSTR text, [in] UINT textLength);
2983};
2984
2985[
2986 object,
2987 uuid(8ABB3C80-5D7E-4C5F-9B9E-41161B498114),
2988 pointer_default(unique)
2989]
2990interface IConnectionWithLogger : IUnknown
2991{
2992 HRESULT SetLogger([in, unique] ILogger* logger);
2993 HRESULT GetLogger([out] ILogger** logger);
2994};
2995
2996[
2997 object,
2998 uuid(BC45DF1A-883F-4CEB-B6EA-9DFC2F0E83B4),
2999 oleautomation,
3000 dual,
3001 nonextensible,
3002 helpstring("IFileLogger Interface"),
3003 pointer_default(unique)
3004]
3005interface IFileLogger : IDispatch
3006{
3011 [propput, id(1), helpstring("property File")]
3012 HRESULT File([in] BSTR newValue);
3013 [propget, id(1), helpstring("property File")]
3014 HRESULT File([out, retval] BSTR* retval);
3015
3020 [propput, id(2), helpstring("property Format")]
3021 HRESULT Format([in] LogFormat newValue);
3022 [propget, id(2), helpstring("property Format")]
3023 HRESULT Format([out, retval] LogFormat* retval);
3024
3025 [id(100), helpstring("method WriteLog")]
3026 HRESULT WriteLog([in] BSTR text);
3027};
3028
3029typedef [v1_enum] enum FTPItemAttribute
3030{
3031 [helpstring("ItemAttribute ftpFTPItemAttribute Size")] ftpFTPItemAttributeSize = 0x1,
3032 [helpstring("ItemAttribute ftpFTPItemAttribute Permissions")] ftpFTPItemAttributePermissions = 0x4,
3033 [helpstring("ItemAttribute ftpFTPItemAttribute AccessTime")] ftpFTPItemAttributeAccessTime = 0x8,
3034 [helpstring("ItemAttribute ftpFTPItemAttribute CreateTime")] ftpFTPItemAttributeCreateTime = 0x10,
3035 [helpstring("ItemAttribute ftpFTPItemAttribute ModifyTime")] ftpFTPItemAttributeModifyTime = 0x20,
3036 [helpstring("ItemAttribute ftpFTPItemAttribute ACL")] ftpFTPItemAttributeACL = 0x40,
3037 [helpstring("ItemAttribute ftpFTPItemAttribute SubSecondTimes")] ftpFTPItemAttributeSubSecondTimes = 0x100,
3038 [helpstring("ItemAttribute ftpFTPItemAttribute Bits")] ftpFTPItemAttributeBits = 0x200,
3039 [helpstring("ItemAttribute ftpFTPItemAttribute AllocationSize")] ftpFTPItemAttributeAllocationSize = 0x400,
3040 [helpstring("ItemAttribute ftpFTPItemAttribute TextHint")] ftpFTPItemAttributeTextHint = 0x800,
3041 [helpstring("ItemAttribute ftpFTPItemAttribute MimeType")] ftpFTPItemAttributeMimeType = 0x1000,
3042 [helpstring("ItemAttribute ftpFTPItemAttribute LinkCount")] ftpFTPItemAttributeLinkCount = 0x2000,
3043 [helpstring("ItemAttribute ftpFTPItemAttribute UntranslatedName")] ftpFTPItemAttributeUntranslatedName = 0x4000,
3044 [helpstring("ItemAttribute ftpFTPItemAttribute CTime")] ftpFTPItemAttributeCTime = 0x8000,
3045 [helpstring("ItemAttribute ftpFTPItemAttribute Extended")] ftpFTPItemAttributeExtended = 0x80000000,
3046 [helpstring("ItemAttribute ftpFTPItemAttribute Owner")] ftpFTPItemAttributeOwner = 0x10000,
3047 [helpstring("ItemAttribute ftpFTPItemAttribute UnixPermissions")] ftpFTPItemAttributeUnixPermissions = 0x20000,
3048 [helpstring("ItemAttribute ftpFTPItemAttribute WindowsAttributes")] ftpFTPItemAttributeWindowsAttributes = 0x40000,
3049 [helpstring("ItemAttribute ftpFTPItemAttribute Group")] ftpFTPItemAttributeGroup = 0x80000,
3051
3055[
3056 object,
3057 uuid(36CE9B15-1CF2-4E76-9D1B-069DDB0E7C9D),
3058 oleautomation,
3059 dual,
3060 nonextensible,
3061 helpstring("IFTPItem Interface"),
3062 pointer_default(unique)
3063]
3064interface IFTPItem : IDispatch
3065{
3069 [propput, id(1), helpstring("property Name")]
3070 HRESULT Name([in] BSTR newValue);
3071 [propget, id(1), helpstring("property Name")]
3072 HRESULT Name([out, retval] BSTR* retval);
3073
3077 [propput, id(2), helpstring("property Type")]
3078 HRESULT Type([in] ItemType newType);
3079 [propget, id(2), helpstring("property Type")]
3080 HRESULT Type([out, retval] ItemType* retval);
3085 [propput, id(3), helpstring("property Owner")]
3086 HRESULT Owner([in] BSTR newValue);
3087 [propget, id(3), helpstring("property Owner")]
3088 HRESULT Owner([out, retval] BSTR* retval);
3089
3093 [propput, id(4), helpstring("property Group")]
3094 HRESULT Group([in] BSTR newValue);
3095 [propget, id(4), helpstring("property Group")]
3096 HRESULT Group([out, retval] BSTR* retval);
3097
3118 [propput, id(5), helpstring("property Size")]
3119 HRESULT Size([in] ULONGLONG newValue);
3120 [propget, id(5), helpstring("property Size")]
3121 HRESULT Size([out, retval] ULONGLONG* retval);
3122
3141 [propget, id(6), helpstring("property SizeLo")]
3142 HRESULT SizeLo([out, retval] long* retval);
3143
3157 [propget, id(7), helpstring("property SizeHi")]
3158 HRESULT SizeHi([out, retval] long* retval);
3159
3176 [propput, id(10), helpstring("property ModifyTime")]
3177 HRESULT ModifyTime([in] FILETIME newValue);
3178 [propget, id(10), helpstring("property ModifyTime")]
3179 HRESULT ModifyTime([out, retval] FILETIME* retval);
3180
3181 [propput, id(9), helpstring("property ModifyTimeAsDate")]
3182 HRESULT ModifyTimeAsDate([in] VARIANT newValue);
3183 [propget, id(9), helpstring("property ModifyTimeAsDate")]
3184 HRESULT ModifyTimeAsDate([out, retval] VARIANT* retval);
3185
3202 [propput, id(16), helpstring("property AccessTime")]
3203 HRESULT AccessTime([in] FILETIME newValue);
3204 [propget, id(16), helpstring("property AccessTime")]
3205 HRESULT AccessTime([out, retval] FILETIME* retval);
3206
3223 [propput, id(17), helpstring("property CreateTime")]
3224 HRESULT CreateTime([in] FILETIME newValue);
3225 [propget, id(17), helpstring("property CreateTime")]
3226 HRESULT CreateTime([out, retval] FILETIME* retval);
3227
3249 [propput, id(28), helpstring("property CTime")]
3250 HRESULT CTime([in] FILETIME newValue);
3251 [propget, id(28), helpstring("property CTime")]
3252 HRESULT CTime([out, retval] FILETIME* retval);
3253
3254 [propput, id(12), helpstring("property CreateTimeAsDate")]
3255 HRESULT CreateTimeAsDate([in] VARIANT newValue);
3256 [propget, id(12), helpstring("property CreateTimeAsDate")]
3257 HRESULT CreateTimeAsDate([out, retval] VARIANT* retval);
3258
3259 [propput, id(15), helpstring("property AccessTimeAsDate")]
3260 HRESULT AccessTimeAsDate([in] VARIANT newValue);
3261 [propget, id(15), helpstring("property AccessTimeAsDate")]
3262 HRESULT AccessTimeAsDate([out, retval] VARIANT* retval);
3263
3264 [propput, id(27), helpstring("property CTimeAsDate")]
3265 HRESULT CTimeAsDate([in] VARIANT newValue);
3266 [propget, id(27), helpstring("property CTimeAsDate")]
3267 HRESULT CTimeAsDate([out, retval] VARIANT* retval);
3268
3285 [propput, id(20), helpstring("property AttributeBits")]
3286 HRESULT AttributeBits([in] long newValue);
3287 [propget, id(20), helpstring("property AttributeBits")]
3288 HRESULT AttributeBits([out, retval] long* retval);
3289
3310 [propput, id(21), helpstring("property ValidAttributeBits")]
3311 HRESULT ValidAttributeBits([in] long newValue);
3312 [propget, id(21), helpstring("property ValidAttributeBits")]
3313 HRESULT ValidAttributeBits([out, retval] long* retval);
3314
3339 [propput, id(22), helpstring("property UnixFilePermissions")]
3340 HRESULT UnixFilePermissions([in] long newValue);
3341 [propget, id(22), helpstring("property UnixFilePermissions")]
3342 HRESULT UnixFilePermissions([out, retval] long* retval);
3343
3364 [propput, id(23), helpstring("property AllocationSize")]
3365 HRESULT AllocationSize([in] ULONGLONG newValue);
3366 [propget, id(23), helpstring("property AllocationSize")]
3367 HRESULT AllocationSize([out, retval] ULONGLONG* retval);
3368
3369 [propput, id(24), helpstring("property MimeType")]
3370 HRESULT MimeType([in] BSTR newValue);
3371 [propget, id(24), helpstring("property MimeType")]
3372 HRESULT MimeType([out, retval] BSTR* retval);
3392 [propput, id(25), helpstring("property LinkPoint")]
3393 HRESULT LinkPoint([in] BSTR newValue);
3394 [propget, id(25), helpstring("property LinkPoint")]
3395 HRESULT LinkPoint([out, retval] BSTR* retval);
3396
3397 [propput, id(26), helpstring("property Unique")]
3398 HRESULT Unique([in] BSTR newValue);
3399 [propget, id(26), helpstring("property Unique")]
3400 HRESULT Unique([out, retval] BSTR* retval);
3401
3415 [propput, id(29), helpstring("property UTC")]
3416 HRESULT UTC([in] VARIANT_BOOL newValue);
3417 [propget, id(29), helpstring("property UTC")]
3418 HRESULT UTC([out, retval] VARIANT_BOOL* retval);
3419
3420 [propput, id(30), helpstring("property TimePrecision")]
3421 HRESULT TimePrecision([in] long newValue);
3422 [propget, id(30), helpstring("property TimePrecision")]
3423 HRESULT TimePrecision([out, retval] long * retval);
3424
3437 [id(101), helpstring("method IsValidAttribute")]
3438 HRESULT IsValidAttribute([in] FTPItemAttribute attribute, [out, retval] VARIANT_BOOL* retval);
3439};
3440
3441[
3442 object,
3443 uuid(9055CECB-7F8F-4B16-AA4D-4D21CC6485E9),
3444 dual,
3445 oleautomation,
3446 nonextensible,
3447 helpstring("IFTPItems Interface"),
3448 pointer_default(unique)
3449]
3450interface IFTPItems : IDispatch
3451{
3460 [propget, id(DISPID_VALUE), helpstring("method Item")]
3461 HRESULT Item( [in] long index, [out,retval] IFTPItem** item);
3463 [propget, id(DISPID_NEWENUM), restricted, helpstring("method _NewEnum")]
3464 HRESULT _NewEnum([out, retval] IUnknown** retval);
3465
3478 [propget, id(1), helpstring("property Count")]
3479 HRESULT Count([out, retval] long* retval);
3480
3481 HRESULT GetAt([in] UINT index, [out,retval] IFTPItem** item);
3482 [propget] HRESULT Size([out, retval] UINT* size);
3483};
3484
3495[
3496 object,
3497 uuid(8C1FDFC9-14A3-478F-88A2-EFF54CA87662),
3498 pointer_default(unique)
3499]
3500interface ITransferProgressEvents : IUnknown
3501{
3517 HRESULT OnTransferProgress([in] ULONGLONG bytesTransferred);
3518};
3519
3520interface ISFTPSpaceAvailable;
3521
3522[ uuid(65D75061-6343-4124-9D64-64F1EABB34C2), // IID_IFTPConnection
3523 object,
3524 oleautomation,
3525 dual,
3526 nonextensible,
3527 helpstring("IFTPConnection Interface"),
3528 pointer_default(unique)
3529]
3530interface IFTPConnection : IDispatch
3531{
3532 // OperationHandler
3536 [propget, id(2), helpstring("property Busy")]
3537 HRESULT Busy([out, retval] VARIANT_BOOL* retval);
3538
3559 [propget, id(119), helpstring("property Aborted")]
3560 HRESULT Aborted([out, retval] VARIANT_BOOL* retval);
3561
3588 [propput, id(117), helpstring("property UseMessageLoop")]
3589 HRESULT UseMessageLoop([in] VARIANT_BOOL newValue);
3590 [propget, id(117), helpstring("property UseMessageLoop")]
3591 HRESULT UseMessageLoop([out, retval] VARIANT_BOOL* retval);
3592
3609 [propput, id(19), helpstring("property Timeout")]
3610 HRESULT Timeout([in] long newValue);
3611 [propget, id(19), helpstring("property Timeout")]
3612 HRESULT Timeout([out, retval] long* retval);
3613
3614 // IConnection
3615
3625 [propget, id(3), helpstring("property ConnectionStatus")]
3626 HRESULT ConnectionStatus([out, retval] ConnectionStatus* retval);
3627
3636 [propput, id(4), helpstring("property Host")]
3637 HRESULT Host([in] BSTR newValue);
3638 [propget, id(4), helpstring("property Host")]
3639 HRESULT Host([out, retval] BSTR* retval);
3640
3655 [propput, id(5), helpstring("property Port")]
3656 HRESULT Port([in] long newValue);
3657 [propget, id(5), helpstring("property Port")]
3658 HRESULT Port([out, retval] long* retval);
3659
3672 [propput, id(22), helpstring("property ProtocolFamilyPreference")]
3673 HRESULT ProtocolFamilyPreference([in] ProtocolFamily newValue);
3674 [propget, id(22), helpstring("property ProtocolFamilyPreference")]
3675 HRESULT ProtocolFamilyPreference([out, retval] ProtocolFamily* retval);
3676
3687 [propget, id(91), helpstring("property ProtocolFamily")]
3688 HRESULT ProtocolFamily([out, retval] ProtocolFamily* retval);
3689
3690 // IFTPConnection
3691
3712 // TODO: rename to EnableLogin/EnableAuthentication
3713 [propput, id(122), helpstring("property Login")]
3714 HRESULT Login([in] VARIANT_BOOL newValue);
3715 [propget, id(122), helpstring("property Login")]
3716 HRESULT Login([out, retval] VARIANT_BOOL * retval);
3717
3741 [propput, id(6), helpstring("property Username")]
3742 HRESULT Username([in] BSTR newValue);
3743 [propget, id(6), helpstring("property Username")]
3744 HRESULT Username([out, retval] BSTR* retval);
3745
3766 [propput, id(7), helpstring("property Password")]
3767 HRESULT Password([in] BSTR newValue);
3768 [propget, id(7), helpstring("property Password")]
3769 HRESULT Password([out, retval] BSTR* retval);
3770
3788 [propput, id(8), helpstring("property Protocol")]
3789 HRESULT Protocol([in] FTPProtocol newValue);
3790 [propget, id(8), helpstring("property Protocol")]
3791 HRESULT Protocol([out, retval] FTPProtocol* retval);
3792
3820 [propput, id(9), helpstring("property PortMode")]
3821 HRESULT PortMode([in] PortMode newValue);
3822 [propget, id(9), helpstring("property PortMode")]
3823 HRESULT PortMode([out, retval] PortMode* retval);
3824
3847 [propput, id(10), helpstring("property PortIP")]
3848 HRESULT PortIP([in] BSTR newValue);
3849 [propget, id(10), helpstring("property PortIP")]
3850 HRESULT PortIP([out, retval] BSTR* retval);
3851
3878 // TODO: rename to UsePassiveMode
3879 [propput, id(11), helpstring("property Passive")]
3880 HRESULT Passive([in] VARIANT_BOOL newValue);
3881 [propget, id(11), helpstring("property Passive")]
3882 HRESULT Passive([out, retval] VARIANT_BOOL* retval);
3883
3896 [propput, id(12), helpstring("property DataTransferType")]
3897 HRESULT DataTransferType([in] DataTransferType newValue);
3898 [propget, id(12), helpstring("property DataTransferType")]
3899 HRESULT DataTransferType([out, retval] DataTransferType* retval);
3900
3901 [propput, id(13), helpstring("property DataProtection")]
3902 HRESULT DataProtection([in] DataProtection newValue);
3903 [propget, id(13), helpstring("property DataProtection")]
3904 HRESULT DataProtection([out, retval] DataProtection* retval);
3905
3906 [propput, id(165), helpstring("property CommandProtection")]
3907 HRESULT CommandProtection([in] DataProtection newValue);
3908 [propget, id(165), helpstring("property CommandProtection")]
3909 HRESULT CommandProtection([out, retval] DataProtection* retval);
3910
3942 [propput, id(106), helpstring("property PROTFallback")]
3943 HRESULT PROTFallback([in] VARIANT_BOOL newValue);
3944 [propget, id(106), helpstring("property PROTFallback")]
3945 HRESULT PROTFallback([out, retval] VARIANT_BOOL* retval);
3946
3947 [propput, id(20), helpstring("property CodePage")]
3948 HRESULT CodePage([in] long newValue);
3949 [propget, id(20), helpstring("property CodePage")]
3950 HRESULT CodePage([out, retval] long* retval);
3951
3979 [propput, id(21), helpstring("property PassiveMode")]
3980 HRESULT PassiveMode([in] PassiveMode newValue);
3981 [propget, id(21), helpstring("property PassiveMode")]
3982 HRESULT PassiveMode([out, retval] PassiveMode* retval);
3983
4012 [propput, id(23), helpstring("property LimitLocalPortRange")]
4013 HRESULT LimitLocalPortRange([in] VARIANT_BOOL newValue);
4014 [propget, id(23), helpstring("property LimitLocalPortRange")]
4015 HRESULT LimitLocalPortRange([out, retval] VARIANT_BOOL* retval);
4016
4048 [propput, id(24), helpstring("property UseMLSD")]
4049 HRESULT UseMLSD([in] VARIANT_BOOL newValue);
4050 [propget, id(24), helpstring("property UseMLSD")]
4051 HRESULT UseMLSD([out, retval] VARIANT_BOOL* retval);
4052
4066 [propput, id(25), helpstring("property DataTransferMode")]
4067 HRESULT DataTransferMode([in] DataTransferMode newValue);
4068 [propget, id(25), helpstring("property DataTransferMode")]
4069 HRESULT DataTransferMode([out, retval] DataTransferMode* retval);
4070
4101 [propput, id(26), helpstring("property LISTOption")]
4102 HRESULT LISTOption([in] long newValue);
4103 [propget, id(26), helpstring("property LISTOption")]
4104 HRESULT LISTOption([out, retval] long* retval);
4105
4125 [propput, id(27), helpstring("property DataTransferSpeedLimit")]
4126 HRESULT DataTransferSpeedLimit([in] long newValue);
4127 [propget, id(27), helpstring("property DataTransferSpeedLimit")]
4128 HRESULT DataTransferSpeedLimit([out, retval] long* retval);
4129
4153 [propput, id(89), helpstring("property SSCN")]
4154 HRESULT SSCN([in] VARIANT_BOOL newValue);
4155 [propget, id(89), helpstring("property SSCN")]
4156 HRESULT SSCN([out, retval] VARIANT_BOOL* retval);
4157
4189 [propput, id(101), helpstring("property FeatureDiscovery")]
4190 HRESULT FeatureDiscovery([in] FeatureDiscoveryMode newValue);
4191 [propget, id(101), helpstring("property FeatureDiscovery")]
4192 HRESULT FeatureDiscovery([out, retval] FeatureDiscoveryMode* retval);
4193
4222 [propput, id(116), helpstring("property FileBufferSize")]
4223 HRESULT FileBufferSize([in] long newValue);
4224 [propget, id(116), helpstring("property FileBufferSize")]
4225 HRESULT FileBufferSize([out, retval] long* retval);
4251 [propget, id(136), helpstring("property IdleKeepAlive")]
4252 HRESULT IdleKeepAlive([out, retval] VARIANT_BOOL* retval);
4253 [propput, id(136), helpstring("property IdleKeepAlive")]
4254 HRESULT IdleKeepAlive([in] VARIANT_BOOL newValue);
4255
4284 [propget, id(137), helpstring("property TransferKeepAlive")]
4285 HRESULT TransferKeepAlive([out, retval] VARIANT_BOOL* retval);
4286 [propput, id(137), helpstring("property TransferKeepAlive")]
4287 HRESULT TransferKeepAlive([in] VARIANT_BOOL newValue);
4288
4314 [propput, id(133), helpstring("property KeepAliveInterval")]
4315 HRESULT KeepAliveInterval([in] long newValue);
4316 [propget, id(133), helpstring("property KeepAliveInterval")]
4317 HRESULT KeepAliveInterval([out, retval] long *retval);
4318
4344 [propput, id(162), helpstring("property ClientId")]
4345 HRESULT ClientId([in] IFTPClientId* newValue);
4346 [propget, id(162), helpstring("property ClientId")]
4347 HRESULT ClientId([out, retval] IFTPClientId** retval);
4348
4376 [propput, id(98), helpstring("property HidePassword")]
4377 HRESULT HidePassword([in] VARIANT_BOOL newValue);
4378 [propget, id(98), helpstring("property HidePassword")]
4379 HRESULT HidePassword([out, retval] VARIANT_BOOL* retval);
4380
4389 [propget, id(43), helpstring("property WorkingDirectory")]
4390 HRESULT WorkingDirectory([out, retval] BSTR* retval);
4391
4413 [propget, id(102), helpstring("property PeerName")]
4414 HRESULT PeerName([out, retval] BSTR* retval);
4415
4427 [propget, id(134), helpstring("property ServerState")]
4428 HRESULT ServerState([out, retval] IFTPServerState **retval);
4429
4440 [propget, id(138), helpstring("property Proxy")]
4441 HRESULT Proxy([out, retval] IProxySettings** retval);
4442
4454 // TODO: rename to ITlsSocket
4455 [propget, id(14), helpstring("property SSLSocketLayer")]
4456 HRESULT SSLSocketLayer([out, retval] ITlsSocket** retval);
4457
4468 [propget, id(15), helpstring("property SocketSettings")]
4469 HRESULT SocketSettings([out, retval] ISocketSettings** retval);
4470
4481 [propget, id(16), helpstring("property SpeedLimitSettings")]
4482 HRESULT SpeedLimitSettings([out, retval] ISpeedLimitSettings** retval);
4483
4497 [propput, id(18), helpstring("property Logger")]
4498 HRESULT Logger([in] ILogger* logger);
4499
4515 [propput, id(139), helpstring("property CompressionLevel")]
4516 HRESULT CompressionLevel([in] long newValue);
4517 [propget, id(139), helpstring("property CompressionLevel")]
4518 HRESULT CompressionLevel([out, retval] long* retval);
4519
4544 [propget, id(47), helpstring("property LastReply")] HRESULT
4545 LastReply([out, retval] BSTR* retval);
4546
4561 [propget, id(48), helpstring("property LastReplyCode")]
4562 HRESULT LastReplyCode([out, retval] long *retval);
4578 [propget, id(112), helpstring("property LastCommand")]
4579 HRESULT LastCommand([out, retval] BSTR* retval);
4580
4601 [propget, id(51), helpstring("property LastError")]
4602 HRESULT LastError([out, retval] HRESULT* retval);
4603
4629 [propget, id(160), helpstring("property LastDataConnectionError")]
4630 HRESULT LastDataConnectionError([out, retval] HRESULT* retval);
4631
4644 [propget, id(55), helpstring("property LastTransferBytes")]
4645 HRESULT LastTransferBytes([out, retval] ULONGLONG *retval);
4646
4658 [propget, id(56), helpstring("property LastTransferBytesLo")]
4659 HRESULT LastTransferBytesLo([out, retval] long *retval);
4660
4675 [propget, id(108), helpstring("property LastTransferBytesHi")]
4676 HRESULT LastTransferBytesHi([out, retval] long *retval);
4677
4690 [propget, id(57), helpstring("property LastTransferTime")]
4691 HRESULT LastTransferTime([out, retval] long *retval);
4692
4710 [propget, id(58), helpstring("property LastTransferSpeed")]
4711 HRESULT LastTransferSpeed([out, retval] long *retval);
4712
4737 [propput, id(93), helpstring("property PassiveAddress")]
4738 HRESULT PassiveAddress([in] BSTR newValue);
4739 [propget, id(93), helpstring("property PassiveAddress")]
4740 HRESULT PassiveAddress([out, retval] BSTR* retval);
4741
4767 [propput, id(110), helpstring("property Account")]
4768 HRESULT Account([in] BSTR newValue);
4769 [propget, id(110), helpstring("property Account")]
4770 HRESULT Account([out, retval] BSTR* retval);
4771
4775 [id(62), helpstring("method Abort")]
4776 HRESULT Abort();
4777
4782 [id(92), helpstring("method Continue")]
4783 HRESULT Continue();
4784
4785 // IFTPConnection
4791 [id(61), helpstring("method Close")]
4792 HRESULT Close();
4793
4797 [id(63), helpstring("method Connect")]
4798 HRESULT Connect();
4799
4810 [id(64), helpstring("method Disconnect")]
4811 HRESULT Disconnect();
4812
4818 [id(65), helpstring("method ChangeDirectory")]
4819 HRESULT ChangeDirectory([in] BSTR directory);
4820
4835 [id(147), helpstring("method UpdateWorkingDirectory")]
4836 HRESULT UpdateWorkingDirectory();
4837
4848 [id(66), helpstring("method DownloadFile")]
4849 HRESULT DownloadFile([in] BSTR remoteFile, [in] BSTR localFile, [in] long startPositionLo, [in] long startPositionHi);
4851 [id(150), helpstring("method DownloadFromCommand")]
4852 HRESULT DownloadFromCommand([in] BSTR command, [in] VARIANT localFile, [in] long remoteStartPosLo, [in] long remoteStartPosHi);
4853
4885 [id(123), helpstring("method DownloadFileEx")]
4886 HRESULT DownloadFileEx([in] BSTR remoteFile, [in] VARIANT localFile, [in] ULONGLONG startPosition, [in] ULONGLONG endPosition, [in] ITransferProgressEvents* progress);
4887
4908 [id(68), helpstring("method UploadFile")]
4909 HRESULT UploadFile([in] BSTR localFile, [in] BSTR remoteFile, [in] long startPositionLo, [in] long startPositionHi);
4910
4939 [id(124), helpstring("method UploadFileEx")]
4940 HRESULT UploadFileEx([in] VARIANT localFile, [in] BSTR remoteFile, [in] ULONGLONG startPosition, [in] ITransferProgressEvents* progress);
4941
4957 [id(121), helpstring("method NewFile")]
4958 HRESULT NewFile([in] BSTR file);
4959
4968 [id(69), helpstring("method ChangeDirectoryUp")]
4969 HRESULT ChangeDirectoryUp();
4970
4987 [id(70), helpstring("method RenameFile")]
4988 HRESULT RenameFile([in] BSTR fileFrom, [in] BSTR fileTo);
4989
4996 [id(71), helpstring("method DeleteFile")]
4997 HRESULT DeleteFile([in] BSTR file);
4998
5015 [id(72), helpstring("method RenameDirectory")]
5016 HRESULT RenameDirectory([in] BSTR directoryFrom, [in] BSTR directoryTo);
5033 [id(73), helpstring("method RemoveDirectory")]
5034 HRESULT RemoveDirectory([in] BSTR directory);
5035
5041 [id(74), helpstring("method Command")]
5042 HRESULT Command([in] BSTR command);
5043
5053 [id(75), helpstring("method MakeDirectory")]
5054 HRESULT MakeDirectory([in] BSTR directory);
5073 [id(76), helpstring("method GetFileSize")]
5074 HRESULT GetFileSize([in] BSTR file, [out, retval] ULONGLONG* retval);
5075
5082 [id(78), helpstring("method GetFileSize32")]
5083 HRESULT GetFileSize32([in] BSTR file, [out, retval] long* retval);
5084
5100 [id(77), helpstring("method ReadDirectory")]
5101 HRESULT ReadDirectory([out, retval] IFTPItems** retval);
5102
5103 [id(153), helpstring("method ReadDirectoryEx")]
5104 HRESULT ReadDirectoryEx([in] ITransferProgressEvents* progress, [out, retval] IFTPItems** retval);
5105
5106 [id(118), helpstring("method ReadDirectoryFromCommand")]
5107 HRESULT ReadDirectoryFromCommand([in] BSTR command, [out, retval] IFTPItems** retval);
5108
5126 [id(79), helpstring("method ReadDirectoryRaw")]
5127 HRESULT ReadDirectoryRaw([in] VARIANT localFile);
5128
5144 [id(80), helpstring("method GetModifyTime")]
5145 HRESULT GetModifyTime([in] BSTR file, [out, retval] FILETIME* retval);
5146
5157 [id(81), helpstring("method GetModifyTimeAsDate")]
5158 HRESULT GetModifyTimeAsDate([in] BSTR file, [out, retval] VARIANT* retval);
5159
5160// [id(139), helpstring("method GetItem")]
5161// HRESULT GetItem([in] BSTR name, [out, retval] IFTPItem** retval);\
5162
5163 [id(140), helpstring("method GetMLST")]
5164 HRESULT GetMLST([in] BSTR name, [out, retval] IFTPItem** retval);
5165
5176 [id(141), helpstring("method Stat")]
5177 HRESULT Stat([in] BSTR name, [out, retval] IFTPItems** retval);
5178
5199 [id(83), helpstring("method SetModifyTime")]
5200 HRESULT SetModifyTime([in] BSTR file, [in] FILETIME time);
5201
5218 [id(85), helpstring("method SetModifyTimeAsDate")]
5219 HRESULT SetModifyTimeAsDate([in] BSTR file, [in] VARIANT date);
5220
5241 [id(170), helpstring("method SetCreateTime")]
5242 HRESULT SetCreateTime([in] BSTR file, [in] FILETIME time);
5243
5260 [id(171), helpstring("method SetCreateTimeAsDate")]
5261 HRESULT SetCreateTimeAsDate([in] BSTR file, [in] VARIANT date);
5262
5286 [id(84), helpstring("method SetUnixPermissions")]
5287 HRESULT SetUnixPermissions([in] BSTR name, [in] long permissions);
5288
5301 [id(86), helpstring("method GetFileHash")]
5302 HRESULT GetFileHash([in] HashAlgo algo, [in] BSTR file, [in] ULONGLONG start, [in] ULONGLONG length, [out, retval] BSTR* retval);
5303
5310 [id(88), helpstring("method ClearCommandChannel")]
5311 HRESULT ClearCommandChannel();
5312
5327 [id(90), helpstring("method InitializeTransfer")]
5328 HRESULT InitializeTransfer();
5329
5369 [id(94), helpstring("method FXPDownloadFile")]
5370 HRESULT FXPDownloadFile([in] BSTR remoteFile, [in] ULONGLONG startPosition);
5371
5411 [id(95), helpstring("method FXPUploadFile")]
5412 HRESULT FXPUploadFile([in] BSTR remoteFile, [in] ULONGLONG startPosition);
5413
5428 [id(174), helpstring("method GetSpaceAvailable")]
5429 HRESULT GetSpaceAvailable([in] BSTR path, [out, retval] ISFTPSpaceAvailable** retval);
5430
5431 [id(176), helpstring("method CopyFile")]
5432 HRESULT CopyFile([in] BSTR sourceFile, [in] BSTR destinationFile);
5433
5449 [id(177), helpstring("method SetFileLogger")]
5450 HRESULT SetFileLogger([out, retval] IFileLogger** fileLogger);
5451};
5452
5453[ object,
5454 uuid(DB80022E-14E3-4af0-B075-46C3889E15EB), // IID_IFTPParser
5455 nonextensible,
5456 pointer_default(unique)
5457]
5458interface IFTPParser : IUnknown
5459{
5460 HRESULT Initialize([in] ParserFormat format);
5461 HRESULT ParseLine([in] LPCWSTR line, [out, retval] IFTPItem** item);
5462};
5463
5471[ object,
5472 uuid(B1798D9B-1282-4A31-BCF3-75609768B745), // IID_IFTPParserD
5473 oleautomation,
5474 nonextensible,
5475 helpstring("IFTPParserD Interface"),
5476 pointer_default(unique)
5477]
5478interface IFTPParserD : IDispatch
5479{
5488 [id(10), helpstring("method Initialize")]
5489 HRESULT Initialize([in] ParserFormat format);
5490
5508 [id(11), helpstring("method ParseLine")]
5509 HRESULT ParseLine([in] BSTR line, [out, retval] IFTPItem** item);
5510};
5511
5512[
5513 object,
5514 uuid(44ABDFAD-4F53-4CB3-8B68-3F70AB7943FB),
5515 oleautomation,
5516 dual,
5517 nonextensible,
5518 helpstring("IFTPFXP Interface"),
5519 pointer_default(unique)
5520]
5521interface IFTPFXP : IDispatch
5522{
5535 [propput, id(3), helpstring("property Source")]
5536 HRESULT Source([in] IFTPConnection *newValue);
5537 [propget, id(3), helpstring("property Source")]
5538 HRESULT Source([out, retval] IFTPConnection** retval);
5539
5552 [propput, id(4), helpstring("property Destination")]
5553 HRESULT Destination([in] IFTPConnection *newValue);
5554 [propget, id(4), helpstring("property Destination")]
5555 HRESULT Destination([out, retval] IFTPConnection** retval);
5556
5588 [id(10), helpstring("method FXPFile")]
5589 HRESULT FXPFile([in] BSTR sourceFile, [in] BSTR destinationFile, [in] long startPositionLo, [in] long startPositionHi);
5590
5591 [local] HRESULT FXPFileEx([in] LPCWSTR sourceFile, [in] LPCWSTR destinationFile, [in] ULONGLONG startPosition, [in] HANDLE cancelEvent);
5592};
5593
5594typedef [v1_enum] enum SSHServerSoftware
5595{
5596 [helpstring("SSHServerSoftware ftpSSHServerSoftware Unknown")] ftpSSHServerSoftwareUnknown = 0,
5597 [helpstring("SSHServerSoftware ftpSSHServerSoftware VShell")] ftpSSHServerSoftwareVShell = 1,
5598 [helpstring("SSHServerSoftware ftpSSHServerSoftware SSHTectia")] ftpSSHServerSoftwareSSHTectia = 2,
5599 [helpstring("SSHServerSoftware ftpSSHServerSoftware OpenSSH")] ftpSSHServerSoftwareOpenSSH = 3,
5600 [helpstring("SSHServerSoftware ftpSSHServerSoftware Titan")] ftpSSHServerSoftwareTitan = 4,
5601 [helpstring("SSHServerSoftware ftpSSHServerSoftware GSFTPS")] ftpSSHServerSoftwareGSFTPS = 5,
5602 [helpstring("SSHServerSoftware ftpSSHServerSoftware WinSSHD")] ftpSSHServerSoftwareWinSSHD = 6,
5603 [helpstring("SSHServerSoftware ftpSSHServerSoftware WSFTP")] ftpSSHServerSoftwareWSFTP = 7,
5604 [helpstring("SSHServerSoftware ftpSSHServerSoftware FTPShell")] ftpSSHServerSoftwareFTPShell = 8,
5605 [helpstring("SSHServerSoftware ftpSSHServerSoftware WeOnlyDo")] ftpSSHServerSoftwareWeOnlyDo = 9,
5606 [helpstring("SSHServerSoftware ftpSSHServerSoftware PragmaFortressSSH")] ftpSSHServerSoftwarePragmaFortressSSH = 10,
5607 [helpstring("SSHServerSoftware ftpSSHServerSoftware JSCAPE")] ftpSSHServerSoftwareJSCAPE = 11,
5608 [helpstring("SSHServerSoftware ftpSSHServerSoftware CoreFTP")] ftpSSHServerSoftwareCoreFTP = 12,
5609 [helpstring("SSHServerSoftware ftpSSHServerSoftware OpenVMS")] ftpSSHServerSoftwareOpenVMS = 13,
5610 [helpstring("SSHServerSoftware ftpSSHServerSoftware FSecure")] ftpSSHServerSoftwareFSecure = 14,
5611 [helpstring("SSHServerSoftware ftpSSHServerSoftware SSHcomOld")] ftpSSHServerSoftwareSSHcomOld = 15,
5612 [helpstring("SSHServerSoftware ftpSSHServerSoftware Sun")] ftpSSHServerSoftwareSun = 16,
5613 [helpstring("SSHServerSoftware ftpSSHServerSoftware ServU")] ftpSSHServerSoftwareServU = 17,
5614 [helpstring("SSHServerSoftware ftpSSHServerSoftware dropbear")] ftpSSHServerSoftwaredropbear = 18,
5615 [helpstring("SSHServerSoftware ftpSSHServerSoftware ReflectionForSecureIT")] ftpSSHServerSoftwareReflectionForSecureIT = 19,
5616 [helpstring("SSHServerSoftware ftpSSHServerSoftware SSHTools")] ftpSSHServerSoftwareSSHTools = 20,
5617 [helpstring("SSHServerSoftware ftpSSHServerSoftware GXSSSHD")] ftpSSHServerSoftwareGXSSSHD = 21,
5618 [helpstring("SSHServerSoftware ftpSSHServerSoftware ProFTPD")] ftpSSHServerSoftwareProFTPD = 22,
5619 [helpstring("SSHServerSoftware ftpSSHServerSoftware zFTPServer")] ftpSSHServerSoftwarezFTPServer = 23,
5620 [helpstring("SSHServerSoftware ftpSSHServerSoftware Maverick")] ftpSSHServerSoftwareMaverick = 24,
5621 [helpstring("SSHServerSoftware ftpSSHServerSoftware SecureTransport")] ftpSSHServerSoftwareSecureTransport = 25,
5622 [helpstring("SSHServerSoftware ftpSSHServerSoftware Xlight")] ftpSSHServerSoftwareXlight = 26
5624
5625typedef [v1_enum] enum SFTPStatus
5626{
5627// --- General Status ---
5628
5633 [helpstring("SFTPStatus ftpSFTPStatus Ok")]
5635
5642 [helpstring("SFTPStatus ftpSFTPStatus EOF")]
5644
5651 [helpstring("SFTPStatus ftpSFTPStatus Failure")]
5653
5659 [helpstring("SFTPStatus ftpSFTPStatus BadMessage")]
5661
5667 [helpstring("SFTPStatus ftpSFTPStatus OpUnsupported")]
5669
5670 // --- Connection State (Client Side) ---
5671
5676 [helpstring("SFTPStatus ftpSFTPStatus NoConnection")]
5678
5683 [helpstring("SFTPStatus ftpSFTPStatus ConnectionLost")]
5685
5686 // --- File & Path Existence ---
5687
5693 [helpstring("SFTPStatus ftpSFTPStatus NoSuchFile")]
5695
5702 [helpstring("SFTPStatus ftpSFTPStatus NoSuchPath")]
5704
5711 [helpstring("SFTPStatus ftpSFTPStatus FileAlreadyExists")]
5713
5720 [helpstring("SFTPStatus ftpSFTPStatus NotADirectory")]
5722
5729 [helpstring("SFTPStatus ftpSFTPStatus FileIsADirectory")]
5731
5737 [helpstring("SFTPStatus ftpSFTPStatus InvalidFilename")]
5739
5745 [helpstring("SFTPStatus ftpSFTPStatus LinkLoop")]
5747
5748 // --- Permissions & Access ---
5749
5755 [helpstring("SFTPStatus ftpSFTPStatus PermissionDenied")]
5757
5763 [helpstring("SFTPStatus ftpSFTPStatus WriteProtect")]
5765
5771 [helpstring("SFTPStatus ftpSFTPStatus CannotDelete")]
5773
5779 [helpstring("SFTPStatus ftpSFTPStatus DirNotEmpty")]
5781
5782 // --- Handles & Parameters ---
5783
5789 [helpstring("SFTPStatus ftpSFTPStatus InvalidHandle")]
5791
5797 [helpstring("SFTPStatus ftpSFTPStatus InvalidParameter")]
5799
5800 // --- Storage & Quotas (SFTP v6) ---
5801
5807 [helpstring("SFTPStatus ftpSFTPStatus NoMedia")]
5809
5815 [helpstring("SFTPStatus ftpSFTPStatus NoSpaceOnFilesystem")]
5817
5823 [helpstring("SFTPStatus ftpSFTPStatus QuotaExceeded")]
5825
5826 // --- Advanced Locking & Principals (SFTP v6) ---
5827
5833 [helpstring("SFTPStatus ftpSFTPStatus UnknownPrincipal")]
5835
5841 [helpstring("SFTPStatus ftpSFTPStatus LocalConflict")]
5843
5849 [helpstring("SFTPStatus ftpSFTPStatus ByteRangeLockConflict")]
5851
5857 [helpstring("SFTPStatus ftpSFTPStatus ByteRangeLockRefused")]
5859
5865 [helpstring("SFTPStatus ftpSFTPStatus DeletePending")]
5867
5873 [helpstring("SFTPStatus ftpSFTPStatus FileCorrupt")]
5875
5881 [helpstring("SFTPStatus ftpSFTPStatus OwnerInvalid")]
5883
5889 [helpstring("SFTPStatus ftpSFTPStatus GroupInvalid")]
5891
5897 [helpstring("SFTPStatus ftpSFTPStatus NoMatchingByteRangeLock")]
5900
5901// Forward declaration
5902interface IKey;
5903
5904[
5905 object,
5906 uuid(6807C542-6AE2-4E14-AF12-84C2E1A39E46),
5907 dual,
5908 nonextensible,
5909 helpstring("ISFTPStatVFS Interface"),
5910 pointer_default(unique)
5911]
5912interface ISFTPStatVFS : IDispatch
5913{
5915 [propget, id(1), helpstring("property bsize")] HRESULT bsize([out, retval] ULONGLONG* retval);
5916
5918 [propget, id(2), helpstring("property frsize")] HRESULT frsize([out, retval] ULONGLONG* retval);
5919
5921 [propget, id(3), helpstring("property blocks")] HRESULT blocks([out, retval] ULONGLONG* retval);
5922
5924 [propget, id(4), helpstring("property bfree")] HRESULT bfree([out, retval] ULONGLONG* retval);
5925
5927 [propget, id(5), helpstring("property bavail")] HRESULT bavail([out, retval] ULONGLONG* retval);
5928
5930 [propget, id(6), helpstring("property files")] HRESULT files([out, retval] ULONGLONG* retval);
5931
5933 [propget, id(7), helpstring("property ffree")] HRESULT ffree([out, retval] ULONGLONG* retval);
5934
5936 [propget, id(8), helpstring("property favail")] HRESULT favail([out, retval] ULONGLONG* retval);
5937
5939 [propget, id(9), helpstring("property fsid")] HRESULT fsid([out, retval] ULONGLONG* retval);
5940
5942 [propget, id(10), helpstring("property flag")] HRESULT flag([out, retval] ULONGLONG* retval);
5943
5945 [propget, id(11), helpstring("property namemax")] HRESULT namemax([out, retval] ULONGLONG* retval);
5946};
5947
5962[
5963 object,
5964 uuid(D117CF34-177D-49AB-BD19-46DC87857947),
5965 dual,
5966 nonextensible,
5967 helpstring("ISFTPVendorId Interface"),
5968 pointer_default(unique)
5969]
5970interface ISFTPVendorId : IDispatch
5971{
5987 [propput, id(1), helpstring("property VendorName")]
5988 HRESULT VendorName([in] BSTR newValue);
5989 [propget, id(1), helpstring("property VendorName")]
5990 HRESULT VendorName([out, retval] BSTR *retval);
5991
6006 [propput, id(2), helpstring("property ProductName")]
6007 HRESULT ProductName([in] BSTR newValue);
6008 [propget, id(2), helpstring("property ProductName")]
6009 HRESULT ProductName([out, retval] BSTR *retval);
6010
6025 [propput, id(3), helpstring("property ProductVersion")]
6026 HRESULT ProductVersion([in] BSTR newValue);
6027 [propget, id(3), helpstring("property ProductVersion")]
6028 HRESULT ProductVersion([out, retval] BSTR *retval);
6029
6045 [propput, id(4), helpstring("property ProductBuild")]
6046 HRESULT ProductBuild([in] ULONGLONG newValue);
6047 [propget, id(4), helpstring("property ProductBuild")]
6048 HRESULT ProductBuild([out, retval] ULONGLONG *retval);
6049};
6050
6051[
6052 object,
6053 uuid(F8D2F36D-B32D-45EF-965E-2DA153B3D523),
6054 dual,
6055 nonextensible,
6056 helpstring("ISFTPServerState Interface"),
6057 pointer_default(unique)
6058]
6059interface ISFTPServerState : IDispatch
6060{
6083 [propget, id(1), helpstring("property EOL")]
6084 HRESULT EOL([out, retval] BSTR *retval);
6085
6108 [propget, id(3), helpstring("property VendorId")]
6109 HRESULT VendorId([out, retval] ISFTPVendorId **retval);
6110
6131 [propget, id(4), helpstring("property MaxReadSize")]
6132 HRESULT MaxReadSize([out, retval] long* retval);
6133
6155 [propput, id(4), helpstring("property MaxReadSize")]
6156 HRESULT MaxReadSize([in] long newValue);
6157
6183 [id(100), helpstring("method IsExtension")]
6184 HRESULT IsExtension([in] BSTR extension, [out, retval] VARIANT_BOOL *retval);
6185};
6186
6187typedef [v1_enum] enum GSSAPIMethod
6188{
6192 [helpstring("GSSAPIMethod Unknown")]
6194
6207 [helpstring("GSSAPIMethod MITKerberos")]
6209
6223 [helpstring("GSSAPIMethod MicrosoftKerberos")]
6226
6227[
6228 object,
6229 uuid(B79FF913-446B-442B-A541-049178F39605),
6230 dual,
6231 nonextensible,
6232 helpstring("ISFTPSpaceAvailable Interface"),
6233 pointer_default(unique)
6234]
6235interface ISFTPSpaceAvailable : IDispatch
6236{
6238 [propget, id(1), helpstring("property BytesOnDevice")]
6239 HRESULT BytesOnDevice([out, retval] ULONGLONG* retval);
6240
6242 [propget, id(2), helpstring("property UnusedBytesOnDevice")]
6243 HRESULT UnusedBytesOnDevice([out, retval] ULONGLONG* retval);
6246 [propget, id(3), helpstring("property BytesAvailableToUser")]
6247 HRESULT BytesAvailableToUser([out, retval] ULONGLONG* retval);
6248
6253 [propget, id(4), helpstring("property UnusedBytesAvailableToUser")]
6254 HRESULT UnusedBytesAvailableToUser([out, retval] ULONGLONG* retval);
6255
6257 [propget, id(5), helpstring("property BytesPerAllocationUnit")]
6258 HRESULT BytesPerAllocationUnit([out, retval] long* retval);
6259};
6260
6268[
6269 object,
6270 uuid(DEE0FBC7-4879-4CA5-83D9-8BF827D6A1D7),
6271 dual,
6272 nonextensible,
6273 helpstring("ISSHConnectionInfo Interface"),
6274 pointer_default(unique)
6275]
6276interface ISSHConnectionInfo : IDispatch
6277{
6281 [propget, id(1), helpstring("property KeyExchangeAlgorithm")] HRESULT KeyExchangeAlgorithm([out, retval] KeyExchange* retval);
6282
6286 [propget, id(2), helpstring("property KeyExchangeHashAlgorithm")] HRESULT KeyExchangeHashAlgorithm([out, retval] HashAlgo* retval);
6287
6288 [propget, id(3), helpstring("property ClientToServerEncryption")] HRESULT ClientToServerEncryption([out, retval] Encryption* retval);
6289
6293 [propget, id(4), helpstring("property ServerToClientEncryption")] HRESULT ServerToClientEncryption([out, retval] Encryption* retval);
6294
6298 [propget, id(5), helpstring("property ClientToServerCompression")] HRESULT ClientToServerCompression([out, retval] SSHCompression* retval);
6299
6303 [propget, id(6), helpstring("property ServerToClientCompression")] HRESULT ServerToClientCompression([out, retval] SSHCompression* retval);
6304
6312 [propget, id(7), helpstring("property ClientToServerMAC")] HRESULT ClientToServerMAC([out, retval] HMAC* retval);
6313
6321 [propget, id(8), helpstring("property ServerToClientMAC")] HRESULT ServerToClientMAC([out, retval] HMAC* retval);
6322
6326 [propget, id(9), helpstring("property HostKeyAlgorithm")] HRESULT HostKeyAlgorithm([out, retval] SSHPublicKeyAlgo* retval);
6327};
6328
6332[
6333 object,
6334 uuid(F63AF79B-4567-40B2-84A9-07F823750AC6),
6335 dual,
6336 nonextensible,
6337 helpstring("ISSHServerState Interface"),
6338 pointer_default(unique)
6339]
6340interface ISSHServerState : IDispatch
6341{
6348 [propget, id(26), helpstring("property ServerSoftware")] HRESULT ServerSoftware([out, retval] SSHServerSoftware* retval);
6349
6360 [propget, id(59), helpstring("property OperatingSystem")] HRESULT OperatingSystem([out, retval] OperatingSystem *retval);
6361
6375 [propget, id(27), helpstring("property RemoteId")] HRESULT RemoteId([out, retval] BSTR* retval);
6376};
6377
6378interface ISFTPConnection;
6379
6380[
6381 object,
6382 uuid(EAFA9ED3-6D11-44F6-B28D-EEA199508903),
6383 dual,
6384 nonextensible,
6385 helpstring("ISSHConnection Interface"),
6386 pointer_default(unique)
6387]
6388interface ISSHConnection : IDispatch
6389{
6390 // OperationHandler
6394 [propget, id(2), helpstring("property Busy")]
6395 HRESULT Busy([out, retval] VARIANT_BOOL* retval);
6396
6407 [propget, id(3), helpstring("property ConnectionInfo")]
6408 HRESULT ConnectionInfo([out, retval] ISSHConnectionInfo** retval);
6409
6419 [propget, id(14), helpstring("property ConnectionStatus")]
6420 HRESULT ConnectionStatus([out, retval] ConnectionStatus* retval);
6421
6448 [propput, id(117), helpstring("property UseMessageLoop")]
6449 HRESULT UseMessageLoop([in] VARIANT_BOOL newValue);
6450 [propget, id(117), helpstring("property UseMessageLoop")]
6451 HRESULT UseMessageLoop([out, retval] VARIANT_BOOL* retval);
6452
6461 [propput, id(4), helpstring("property Host")]
6462 HRESULT Host([in] BSTR newValue);
6463 [propget, id(4), helpstring("property Host")]
6464 HRESULT Host([out, retval] BSTR* retval);
6465
6480 [propput, id(5), helpstring("property Port")]
6481 HRESULT Port([in] long newValue);
6482 [propget, id(5), helpstring("property Port")]
6483 HRESULT Port([out, retval] long* retval);
6484
6495 [propget, id(20), helpstring("property ProtocolFamily")]
6496 HRESULT ProtocolFamily([out, retval] ProtocolFamily* retval);
6497
6510 [propput, id(22), helpstring("property ProtocolFamilyPreference")]
6511 HRESULT ProtocolFamilyPreference([in] ProtocolFamily newValue);
6512 [propget, id(22), helpstring("property ProtocolFamilyPreference")]
6513 HRESULT ProtocolFamilyPreference([out, retval] ProtocolFamily* retval);
6514
6515 // ISSHConnection
6516
6529 [propput, id(6), helpstring("property Username")]
6530 HRESULT Username([in] BSTR newValue);
6531 [propget, id(6), helpstring("property Username")]
6532 HRESULT Username([out, retval] BSTR* retval);
6533
6551 [propput, id(7), helpstring("property Password")]
6552 HRESULT Password([in] BSTR newValue);
6553 [propget, id(7), helpstring("property Password")]
6554 HRESULT Password([out, retval] BSTR* retval);
6555
6573 [propput, id(8), helpstring("property ClientId")]
6574 HRESULT ClientId([in] BSTR newValue);
6575 [propget, id(8), helpstring("property ClientId")]
6576 HRESULT ClientId([out, retval] BSTR* retval);
6577
6594 [propput, id(19), helpstring("property Timeout")]
6595 HRESULT Timeout([in] long newValue);
6596 [propget, id(19), helpstring("property Timeout")]
6597 HRESULT Timeout([out, retval] long* retval);
6598
6614 [propput, id(32), helpstring("property CompressionLevel")]
6615 HRESULT CompressionLevel([in] long newValue);
6616 [propget, id(32), helpstring("property CompressionLevel")]
6617 HRESULT CompressionLevel([out, retval] long* retval);
6618
6631 [propput, id(10), helpstring("property PrivateKey")]
6632 HRESULT PrivateKey([in] IKey *newValue);
6633 [propget, id(10), helpstring("property PrivateKey")]
6634 HRESULT PrivateKey([out, retval] IKey** retval);
6635
6661 [propput, id(40), helpstring("property AgentKeyBlob")]
6662 HRESULT AgentKeyBlob([in] VARIANT* newValue);
6663 [propget, id(40), helpstring("property AgentKeyBlob")]
6664 HRESULT AgentKeyBlob([out, retval] VARIANT* retval);
6691 [propput, id(11), helpstring("property Authentications")]
6692 HRESULT Authentications([in] VARIANT* newValue);
6693 [propget, id(11), helpstring("property Authentications")]
6694 HRESULT Authentications([out, retval] VARIANT* retval);
6695
6731 [propput, id(12), helpstring("property Encryptions")]
6732 HRESULT Encryptions([in] VARIANT* newValue);
6733 [propget, id(12), helpstring("property Encryptions")]
6734 HRESULT Encryptions([out, retval] VARIANT* retval);
6735
6772 [propput, id(13), helpstring("property MACs")]
6773 HRESULT MACs([in] VARIANT* newValue);
6774 [propget, id(13), helpstring("property MACs")]
6775 HRESULT MACs([out, retval] VARIANT* retval);
6776
6806 [propput, id(9), helpstring("property Compressions")]
6807 HRESULT Compressions([in] VARIANT* newValue);
6808 [propget, id(9), helpstring("property Compressions")]
6809 HRESULT Compressions([out, retval] VARIANT* retval);
6810
6848 [propput, id(25), helpstring("property KeyExchanges")]
6849 HRESULT KeyExchanges([in] VARIANT* newValue);
6850 [propget, id(25), helpstring("property KeyExchanges")]
6851 HRESULT KeyExchanges([out, retval] VARIANT* retval);
6852
6879 [propput, id(28), helpstring("property ClientHostKey")]
6880 HRESULT ClientHostKey([in] IKey *newValue);
6881 [propget, id(28), helpstring("property ClientHostKey")]
6882 HRESULT ClientHostKey([out, retval] IKey** retval);
6883
6902 [propput, id(29), helpstring("property ClientHostname")]
6903 HRESULT ClientHostname([in] BSTR newValue);
6904 [propget, id(29), helpstring("property ClientHostname")]
6905 HRESULT ClientHostname([out, retval] BSTR* retval);
6913 [propget, id(30), helpstring("property ServerHostKey")]
6914 HRESULT ServerHostKey([out, retval] IKey** retval);
6915
6947 [propput, id(33), helpstring("property KeepAliveInterval")]
6948 HRESULT KeepAliveInterval([in] long newValue);
6949 [propget, id(33), helpstring("property KeepAliveInterval")]
6950 HRESULT KeepAliveInterval([out, retval] long* retval);
6951
6962 [propget, id(31), helpstring("property Proxy")]
6963 HRESULT Proxy([out, retval] IProxySettings** retval);
6964
6978 [propput, id(18), helpstring("property Logger")]
6979 HRESULT Logger([in] ILogger* logger);
6980
7001 [propput, id(171), helpstring("property Languages")]
7002 HRESULT Languages([in] VARIANT* newValue);
7003 [propget, id(171), helpstring("property Languages")]
7004 HRESULT Languages([out, retval] VARIANT* retval);
7005
7055 [propput, id(172), helpstring("property ServerHostKeyAlgorithms")]
7056 HRESULT ServerHostKeyAlgorithms([in] VARIANT* newValue);
7057 [propget, id(172), helpstring("property ServerHostKeyAlgorithms")]
7058 HRESULT ServerHostKeyAlgorithms([out, retval] VARIANT* retval);
7078 [propput, id(173), helpstring("property GSSAPIMethod")]
7079 HRESULT GSSAPIMethod([in] GSSAPIMethod newValue);
7080 [propget, id(173), helpstring("property GSSAPIMethod")]
7081 HRESULT GSSAPIMethod([out, retval] GSSAPIMethod* retval);
7082
7110 [propput, id(175), helpstring("property UsePasswordForKeyboardInteractive")]
7111 HRESULT UsePasswordForKeyboardInteractive([in] VARIANT_BOOL newValue);
7112 [propget, id(175), helpstring("property UsePasswordForKeyboardInteractive")]
7113 HRESULT UsePasswordForKeyboardInteractive([out, retval] VARIANT_BOOL* retval);
7114
7121 [propget, id(174), helpstring("property ServerState")]
7122 HRESULT ServerState([out, retval] ISSHServerState** retval);
7123
7134 [propget, id(15), helpstring("property SocketSettings")]
7135 HRESULT SocketSettings([out, retval] ISocketSettings** retval);
7136
7147 [propget, id(16), helpstring("property SpeedLimitSettings")]
7148 HRESULT SpeedLimitSettings([out, retval] ISpeedLimitSettings** retval);
7149
7155 [id(61), helpstring("method Close")]
7156 HRESULT Close();
7157
7161 [id(62), helpstring("method Abort")]
7162 HRESULT Abort();
7163
7177 [id(63), helpstring("method Connect")]
7178 HRESULT Connect();
7179
7203 [id(64), helpstring("method Disconnect")]
7204 HRESULT Disconnect();
7205
7220 [id(65), helpstring("method CreateSFTPConnection")]
7221 HRESULT CreateSFTPConnection([out, retval] ISFTPConnection **retval);
7222
7223 HRESULT SendPacket([in, size_is(length)] byte* data, [in] long length);
7224
7240 [id(177), helpstring("method SetFileLogger")]
7241 HRESULT SetFileLogger([out, retval] IFileLogger** fileLogger);
7242};
7243
7244[
7245 object,
7246 uuid(AA8FBBFD-22DF-41EF-83D0-5ECDB6BD47E6),
7247 oleautomation,
7248 dual,
7249 nonextensible,
7250 helpstring("ISFTPConnection Interface"),
7251 pointer_default(unique)
7252]
7253interface ISFTPConnection : IDispatch
7254{
7255 // Connection
7259 [propget, id(2), helpstring("property Busy")]
7260 HRESULT Busy([out, retval] VARIANT_BOOL* retval);
7261
7288 [propput, id(117), helpstring("property UseMessageLoop")]
7289 HRESULT UseMessageLoop([in] VARIANT_BOOL newValue);
7290 [propget, id(117), helpstring("property UseMessageLoop")]
7291 HRESULT UseMessageLoop([out, retval] VARIANT_BOOL* retval);
7292
7309 [propput, id(19), helpstring("property Timeout")]
7310 HRESULT Timeout([in] long newValue);
7311 [propget, id(19), helpstring("property Timeout")]
7312 HRESULT Timeout([out, retval] long* retval);
7313
7314 // SFTP
7315
7322 [propget, id(1), helpstring("property SSHConnection")]
7323 HRESULT SSHConnection([out, retval] ISSHConnection** retval);
7324
7353 [propput, id(24), helpstring("property ProtocolVersionPreference")]
7354 HRESULT ProtocolVersionPreference([in] long newValue);
7355 [propget, id(24), helpstring("property ProtocolVersionPreference")]
7356 HRESULT ProtocolVersionPreference([out, retval] long* retval);
7357
7385 [propput, id(182), helpstring("property SFTPServerCommand")]
7386 HRESULT SFTPServerCommand([in] BSTR newValue);
7387 [propget, id(182), helpstring("property SFTPServerCommand")]
7388 HRESULT SFTPServerCommand([out, retval] BSTR* retval);
7389
7418 [propput, id(183), helpstring("property ServerLineTerminator")]
7419 HRESULT ServerLineTerminator([in] BSTR newValue);
7420 [propget, id(183), helpstring("property ServerLineTerminator")]
7421 HRESULT ServerLineTerminator([out, retval] BSTR* retval);
7422
7435 [propget, id(4), helpstring("property ProtocolVersion")]
7436 HRESULT ProtocolVersion([out, retval] long* retval);
7437
7449 [propget, id(3), helpstring("property Status")]
7450 HRESULT Status([out, retval] SFTPConnectionStatus* retval);
7451
7469 [propget, id(181), helpstring("property VendorId")]
7470 HRESULT VendorId([out, retval] ISFTPVendorId **retval);
7471 [propput, id(181), helpstring("property VendorId")]
7472 HRESULT VendorId([in] ISFTPVendorId *newValue);
7473
7487 [propput, id(53), helpstring("property Logger")]
7488 HRESULT Logger([in] ILogger* logger);
7489
7505 [propget, id(54), helpstring("property LastStatusCode")]
7506 HRESULT LastStatusCode([out, retval] SFTPStatus* retval);
7507
7528 [propget, id(50), helpstring("property LastStatusMessage")]
7529 HRESULT LastStatusMessage([out, retval] BSTR* retval);
7530
7543 [propget, id(14), helpstring("property LastTransferBytes")]
7544 HRESULT LastTransferBytes([out, retval] ULONGLONG* retval);
7545
7557 [propget, id(15), helpstring("property LastTransferBytesLo")]
7558 HRESULT LastTransferBytesLo([out, retval] long* retval);
7559
7574 [propget, id(16), helpstring("property LastTransferBytesHi")]
7575 HRESULT LastTransferBytesHi([out, retval] long* retval);
7576
7589 [propget, id(17), helpstring("property LastTransferTime")]
7590 HRESULT LastTransferTime([out, retval] long *retval);
7591
7609 [propget, id(18), helpstring("property LastTransferSpeed")]
7610 HRESULT LastTransferSpeed([out, retval] long *retval);
7611
7648 [propput, id(37), helpstring("property CodePage")]
7649 HRESULT CodePage([in] long newValue);
7650 [propget, id(37), helpstring("property CodePage")]
7651 HRESULT CodePage([out, retval] long* retval);
7652
7663 [propget, id(170), helpstring("property ServerState")]
7664 HRESULT ServerState([out, retval] ISFTPServerState **retval);
7665
7670 [id(61), helpstring("method Close")]
7671 HRESULT Close();
7672
7676 [id(62), helpstring("method Abort")]
7677 HRESULT Abort();
7678
7689 [id(63), helpstring("method Connect")]
7690 HRESULT Connect();
7691
7706 [id(64), helpstring("method Disconnect")]
7707 HRESULT Disconnect();
7708
7724 [id(81), helpstring("method NewFile")]
7725 HRESULT NewFile([in] BSTR remoteFile);
7726
7761 [id(123), helpstring("method DownloadFile")]
7762 HRESULT DownloadFile([in] BSTR remoteFile, [in] VARIANT localFile, [in] DataTransferType transferType, [in] long startPositionLo, [in] long startPositionHi);
7763
7801 [id(146), helpstring("method DownloadFileEx")]
7802 HRESULT DownloadFileEx([in] BSTR remoteFile, [in] VARIANT localFile, [in] DataTransferType transferType, [in] ULONGLONG startPosition, [in] ULONGLONG endPosition, [in] long flags, [in] ITransferProgressEvents* progress);
7803
7837 [id(124), helpstring("method UploadFile")]
7838 HRESULT UploadFile([in] VARIANT localFile, [in] BSTR remoteFile, [in] DataTransferType transferType, [in] long startPositionLo, [in] long startPositionHi);
7839
7868 [id(125), helpstring("method UploadFileEx")]
7869 HRESULT UploadFileEx([in] VARIANT localFile, [in] BSTR remoteFile, [in] DataTransferType transferType, [in] ULONGLONG startPosition, [in] ITransferProgressEvents* progress);
7870
7906 [id(70), helpstring("method Rename")]
7907 HRESULT Rename([in] BSTR oldPath, [in] BSTR newPath, [in] long flags);
7908
7920 [id(71), helpstring("method RemoveFile")]
7921 HRESULT RemoveFile([in] BSTR file);
7922
7943 [id(73), helpstring("method RemoveDirectory")]
7944 HRESULT RemoveDirectory([in] BSTR directory);
7945
7962 [id(75), helpstring("method MakeDirectory")]
7963 HRESULT MakeDirectory([in] BSTR directory);
7964
7984 [id(77), helpstring("method ReadDirectory")]
7985 HRESULT ReadDirectory([in] BSTR directory, [out, retval] IFTPItems** retval);
7986
8007 [id(78), helpstring("method ReadDirectoryEx")]
8008 HRESULT ReadDirectoryEx([in] BSTR directory, [in] ITransferProgressEvents* progress, [out, retval] IFTPItems** retval);
8009
8029 [id(120), helpstring("method RealPath")]
8030 HRESULT RealPath([in] BSTR original, [out, retval] BSTR* retval);
8031
8065 [id(121), helpstring("method RealPathEx")]
8066 HRESULT RealPathEx([in] BSTR original, [in] long flags, [in] BSTR component, [out, retval] BSTR* retval);
8067
8084 [id(133), helpstring("method Stat")]
8085 HRESULT Stat([in] BSTR path, [in] long flags, [out, retval] IFTPItem** retval);
8086
8106 [id(135), helpstring("method LStat")]
8107 HRESULT LStat([in] BSTR path, [in] long flags, [out, retval] IFTPItem** retval);
8108
8125 [id(134), helpstring("method StatEx")]
8126 HRESULT StatEx([in] BSTR path, [in] long flags, VARIANT_BOOL followLink, [out, retval] IFTPItem** retval);
8127
8148 [id(136), helpstring("method SetStat")]
8149 HRESULT SetStat([in] BSTR path, [in] IFTPItem* item);
8150
8170 [id(140), helpstring("method ReadLink")]
8171 HRESULT ReadLink([in] BSTR path, [out, retval] BSTR* retval);
8172
8205 [id(141), helpstring("method Link")]
8206 HRESULT Link([in] BSTR path, [in] BSTR linkPoint, [in] VARIANT_BOOL symbolicLink);
8207
8225 [id(142), helpstring("method StatVFS")]
8226 HRESULT StatVFS([in] BSTR path, [out,retval] ISFTPStatVFS** retval);
8227
8257 [id(168), helpstring("method GetFileHash")]
8258 HRESULT GetFileHash([in] HashAlgo algo, [in] BSTR path, [in] ULONGLONG offset, [in] ULONGLONG length, [out, retval] ISFTPExtendedCheckFileResult** retval);
8259
8273 [id(174), helpstring("method GetSpaceAvailable")]
8274 HRESULT GetSpaceAvailable([in] BSTR path, [out, retval] ISFTPSpaceAvailable** retval);
8275
8296 [id(176), helpstring("method CopyFile")]
8297 HRESULT CopyFile([in] BSTR sourceFile, [in] BSTR destinationFile, [in] VARIANT_BOOL overwrite);
8298
8314 [id(177), helpstring("method SetFileLogger")]
8315 HRESULT SetFileLogger([out, retval] IFileLogger** fileLogger);
8316};
8317
8318[
8319 object,
8320 uuid(F15D7259-E281-4F1B-8AA0-492AA3BDB7D5),
8321 oleautomation,
8322 dual,
8323 nonextensible,
8324 helpstring("IOpenSSLKey Interface"),
8325 pointer_default(unique)
8326]
8328{
8329 [id(110), helpstring("method Generate")] HRESULT Generate([in] long nid, [in] long bits);
8330};
8331
8332typedef [v1_enum] enum KeyFileFormat
8333{
8334 [helpstring("KeyFileFormat ftpKeyFileFormat Unknown")] ftpKeyFileFormatUnknown = 0,
8335 [helpstring("KeyFileFormat ftpKeyFileFormat PKCS8")] ftpKeyFileFormatPKCS8 = 1,
8336 [helpstring("KeyFileFormat ftpKeyFileFormat PKCS12")] ftpKeyFileFormatPKCS12 = 2,
8337 [helpstring("KeyFileFormat ftpKeyFileFormat VanDyke")] ftpKeyFileFormatVanDyke = 3,
8338 [helpstring("KeyFileFormat ftpKeyFileFormat SSH")] ftpKeyFileFormatSSH = 4,
8339 [helpstring("KeyFileFormat ftpKeyFileFormat OpenSSL")] ftpKeyFileFormatOpenSSL = 5,
8340 [helpstring("KeyFileFormat ftpKeyFileFormat Putty")] ftpKeyFileFormatPutty = 6,
8341 [helpstring("KeyFileFormat ftpKeyFileFormat OpenSSH")] ftpKeyFileFormatOpenSSH = 7
8343
8344[
8345 object,
8346 uuid(9B3D1FFA-EFBD-408B-AA81-B9B186138E24),
8347 oleautomation,
8348 dual,
8349 nonextensible,
8350 helpstring("IKeyManager Interface"),
8351 pointer_default(unique)
8352]
8353interface IKeyManager : IDispatch
8354{
8370 [id(1), helpstring("method LoadFile")] HRESULT LoadFile([in] BSTR file, [in] BSTR password, [out, retval] IKey** retval);
8371
8390 [id(2), helpstring("method SaveFile")] HRESULT SaveFile([in] KeyFileFormat fileFormat, [in] IKey* key, [in] KeyType keyType, [in] BSTR file, [in] BSTR password);
8391
8425 [id(3), helpstring("method LoadFromCertificateStore")] HRESULT LoadFromCertificateStore([in] BSTR thumbprint, [out, retval] IKey** retval);
8426};
8427
8428[
8429 uuid(1975424E-6927-40b2-A479-DE92310E8944), // IID_IConnection
8430 pointer_default(unique)
8431]
8432interface IConnection : IUnknown
8433{
8434 [propget] HRESULT ConnectionStatus([out, retval] ConnectionStatus* retval);
8435}
8436
8437[
8438 object,
8439 uuid(2314C692-2C8A-4168-BB4B-DC26D525A1AE),
8440 nonextensible,
8441 pointer_default(unique)
8442]
8443interface IAES128CTRWriteStream : IUnknown
8444{
8445 HRESULT SetKey([in, size_is(keyLength)] byte* key, [in] ULONG keyLength);
8446};
8447
8448[
8449 object,
8450 uuid(324D5D60-31E1-4D59-887F-96B93BAC3B2B),
8451 nonextensible,
8452 pointer_default(unique)
8453]
8454interface IAES128CTRReadStream : IUnknown
8455{
8456 HRESULT SetKey([in, size_is(keyLength)] byte* key, [in] ULONG keyLength);
8457};
8458
8459[
8460 object,
8461 uuid(14FCCC7F-E60D-4E08-A0D8-B4E01823223D),
8462 nonextensible,
8463 pointer_default(unique)
8464]
8465interface IHashProgress : IUnknown
8466{
8467 HRESULT OnProgress(ULONGLONG chunk);
8468};
8469
8470[
8471 object,
8472 uuid(AC19E8BE-AFFB-4AD4-954E-EDED75F2379E),
8473 dual,
8474 oleautomation,
8475 nonextensible,
8476 helpstring("ICryptoHash Interface"),
8477 pointer_default(unique)
8478]
8479interface ICryptoHash : IDispatch
8480{
8481 [propget, id(1), helpstring("property Type")] HRESULT Type([out, retval] HashAlgo* retval);
8482
8483 [id(10), helpstring("method Initialize")] HRESULT Initialize(HashAlgo hashtype);
8484 [id(12), helpstring("method ReInitialize")] HRESULT ReInitialize();
8485 [id(13), helpstring("method GetSize")] HRESULT GetSize([out, retval] long *retval);
8486 [id(14), helpstring("method AddBSTR")] HRESULT AddBSTR([in] BSTR bstr);
8487 [id(22), helpstring("method AddBlob")] HRESULT AddBlob([in, size_is(cbBlob)] const byte* pbBlob, UINT cbBlob);
8488 [id(15), helpstring("method AddFile")] HRESULT AddFile([in] VARIANT var);
8489 [id(11), helpstring("method AddStream")] HRESULT AddStream([in] IStream* stream, [in] ULONGLONG length, [in] IHashProgress* progress);
8490 [id(16), helpstring("method GetValue")] HRESULT GetValue([out, retval] VARIANT *retval);
8491 [id(17), helpstring("method CompareStringValue")] HRESULT CompareStringValue([in] BSTR value1, [in] BSTR value2, [out, retval] long *retval);
8492 [id(19), helpstring("method GetValueAsString")] HRESULT GetValueAsString([out, retval] BSTR *retval);
8493 HRESULT GetValueEx([out, size_is(*valueLength)] byte* value, [in, out] ULONG* valueLength);
8494};
8495
8496[
8497 object,
8498 uuid(9E58A1EB-F70E-4FA4-A6FD-F6DB4F19EE5F),
8499 nonextensible,
8500 pointer_default(unique)
8501]
8502interface IParserWriteStream : IUnknown
8503{
8504 [propput] HRESULT Format([in] ParserFormat newValue);
8505 [propget] HRESULT Format([out, retval] ParserFormat* retval);
8506 [propput] HRESULT Codepage([in] UINT newValue);
8507 [propget] HRESULT Codepage([out, retval] UINT* retval);
8508 [propget] HRESULT FTPItems([out, retval] IFTPItems** retval);
8509};
8510
8511[
8512 object,
8513 uuid(3FCDE1F6-BB49-490C-B422-B3937D7B7F16),
8514 dual,
8515 nonextensible,
8516 helpstring("IUtils Interface"),
8517 pointer_default(unique)
8518]
8519interface IUtils : IDispatch
8520{
8521 [id(100), helpstring("method HashAlgoToString")] HRESULT HashAlgoToString([in] HashAlgo hashalgo, [out,retval] BSTR *retval);
8522 [id(101), helpstring("method KeyExchangeToString")] HRESULT KeyExchangeToString([in] KeyExchange keyexchange, [out,retval] BSTR *retval);
8523 [id(102), helpstring("method EncryptionToString")] HRESULT EncryptionToString([in] Encryption encryption, [out,retval] BSTR *retval);
8524 [id(103), helpstring("method HMACToString")] HRESULT HMACToString([in] HMAC mac, [out,retval] BSTR *retval);
8525 [id(104), helpstring("method SSHPublicKeyAlgoToString")] HRESULT SSHPublicKeyAlgoToString([in] SSHPublicKeyAlgo keyalgo, [out,retval] BSTR *retval);
8526 [id(105), helpstring("method SSHCompressionToString")] HRESULT SSHCompressionToString([in] SSHCompression compression, [out,retval] BSTR *retval);
8527 [id(106), helpstring("method ProxyTypeToString")] HRESULT ProxyTypeToString([in] ProxyType proxytype, [out,retval] BSTR *retval);
8528 [id(107), helpstring("method ServerSoftwareToString")] HRESULT ServerSoftwareToString([in] ServerSoftware software, [out,retval] BSTR *retval);
8529 [id(108), helpstring("method FileTimeToUnixTime")] HRESULT FileTimeToUnixTime([in] FILETIME filetime, [out, retval] ULONGLONG *retval);
8530 [id(109), helpstring("method UnixTimeToFileTime")] HRESULT UnixTimeToFileTime([in] ULONGLONG unixTime, [out, retval] FILETIME *retval);
8531 [id(110), helpstring("method FileTimeToVariantTime")] HRESULT FileTimeToVariantTime([in] FILETIME filetime, [out, retval] DATE *retval);
8532 [id(111), helpstring("method VariantTimeToFileTime")] HRESULT VariantTimeToFileTime([in] DATE date, [out, retval] FILETIME *retval);
8533 [id(112), helpstring("method MessageFromHRESULT")] HRESULT MessageFromHRESULT([in] HRESULT result, [out, retval] BSTR* retval);
8534};
8535
8536[
8537 object,
8538 uuid(A53A8E57-41F6-49d5-9495-2FF849A06F03),
8539 pointer_default(unique)
8540]
8541interface ISSHChannelClient : IUnknown
8542{
8543 HRESULT OnDetach();
8544 HRESULT OnClose();
8545 HRESULT OnData();
8546 HRESULT OnSend();
8547 HRESULT OnEof();
8548};
8549
8566[
8567 object,
8568 uuid(49D66525-9192-43C3-A767-C047A8168DDB),
8569 pointer_default(unique)
8570]
8571interface ISSHKeyBlobHelper : IUnknown
8572{
8590 HRESULT GetPublicKeyBlob([in] IKey* key, [out, retval] VARIANT* retval);
8591};
8592
8593[
8594 object,
8595 uuid(306E71BD-B532-4F21-9036-41FBBB0DE83B),
8596 pointer_default(unique)
8597]
8598interface IBCryptKey : IKey
8599{
8600 HRESULT Initialize([in] LPCWSTR algorithmName);
8601 HRESULT InitializeEx([in] LPCWSTR algorithmName, [in] LPCWSTR curveName);
8602 HRESULT Generate([in] long bits);
8603};
8604
8605[
8606 object,
8607 uuid(4B53484C-3C6F-4430-BB2B-B16CC220489B),
8608 pointer_default(unique)
8609]
8610interface INCryptKey : IKey
8611{
8612 HRESULT Initialize([in] LPCWSTR provider);
8613 HRESULT CreatePersistedKey([in] LPCWSTR algorithmName);
8614 HRESULT Generate([in] long bits);
8615};
8616
8617[
8618 object,
8619 uuid(EF6EF546-4063-443B-98D7-E360CB31F124),
8620 nonextensible,
8621 pointer_default(unique),
8622 local
8623]
8624interface INCryptKeyCustom : IUnknown
8625{
8626 HRESULT Initialize([in] /*PCCERT_CONTEXT*/void* certContext);
8627 HRESULT GetHandle([out,retval] /*NCRYPT_KEY_HANDLE*/ULONG_PTR *retval);
8628};
8629
8630[
8631 uuid(7A3A786C-EB8C-43b3-BC10-8D09ACF5D195),
8632 version(4.0),
8633 helpstring("SmartFTP FTP Library 4.0 Type Library")
8634]
8636{
8637 importlib(STDOLE_TLB);
8638
8639 typedef [v1_enum] enum _HRESULT
8640 {
8641 [helpstring("Operation pending")] FTPLIB_E_BUSY = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3101),
8642 [helpstring("Not connected")] FTPLIB_E_NOTCONNECTED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3102),
8643 [helpstring("Timeout")] FTPLIB_E_TIMEOUT = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3103),
8644 [helpstring("No operation to abort")] FTPLIB_E_NOOPERATION = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3104),
8645 [helpstring("Not initialized")] FTPLIB_E_NOTINIT = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3105),
8646 [helpstring("Wrong reply")] FTPLIB_E_WRONGREPLY = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3106),
8647 [helpstring("More data is required to continue")] FTPLIB_E_MOREDATA = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3108),
8648 [helpstring("Paused")] FTPLIB_E_PAUSED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3109),
8649 [helpstring("Connection setting mismatch")] FTPLIB_E_SETTINGMISMATCH = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x310a),
8650 [helpstring("Connection not disconnected")] FTPLIB_E_NOTDISCONNECTED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x310b),
8651 [helpstring("Connection is closed")] FTPLIB_E_CONNECTIONCLOSED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x310c),
8652 [helpstring("Data connection failure")] FTPLIB_E_DATACONNECTION_CONNECT = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x310d),
8653 [helpstring("Authentication failed")] FTPLIB_E_AUTHENTICATION = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x310e),
8654 [helpstring("PORT command failed")] FTPLIB_E_PORTCOMMANDFAILED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x310f),
8655 [helpstring("Restart not permitted")] FTPLIB_E_RESTARTNOTPERMITTED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3110),
8656 [helpstring("Server protocol violation")] FTPLIB_E_SERVERPROTOCOLVIOLATION = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3111),
8657 [helpstring("Command not implemented")] FTPLIB_E_COMMANDNOTIMPLEMENTED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3112),
8658 [helpstring("Not a regular file")] FTPLIB_E_NOTAREGULARFILE = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3113),
8659 [helpstring("Too many connections")] FTPLIB_E_TOOMANYCONNECTIONS = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3114),
8660 [helpstring("PASV command failed")] FTPLIB_E_PASVCOMMANDFAILED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3115),
8661 [helpstring("TLS not supported")] FTPLIB_E_TLSNOTSUPPORTED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3116),
8662 [helpstring("Host name expected")] FTPLIB_E_HOSTNAMEEXPECTED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3117),
8663 [helpstring("Server policy requires TLS")] FTPLIB_E_SERVERPOLICYREQUIRESTLS = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3118),
8664 [helpstring("The IP is banned")] FTPLIB_E_IPBANNED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3119),
8665 [helpstring("Home directory")] FTPLIB_E_HOMEDIRECTORY = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x311a),
8666 [helpstring("Box: User needs to accept terms of service")] FTPLIB_E_BOX_ACCEPTTERMSOFSERVICE = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x311b),
8667 [helpstring("Box: The application is blocked by your administrator")] FTPLIB_E_BOX_APPLICATIONBLOCKED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x311c),
8668 [helpstring("Box: Captcha is required")] FTPLIB_E_BOX_CAPTCHAREQUIRED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x311d),
8669 [helpstring("Local policy requires CCC")] FTPLIB_E_LOCALPOLICYREQUIRESCCC = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x311e),
8670 [helpstring("Not logged in")] FTPLIB_E_NOTLOGGEDIN = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x311f),
8671 [helpstring("The server's user limit has been reached")] FTPLIB_E_TOOMANYUSERS = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3129),
8672 [helpstring("TLS data session token error")] FTPLIB_E_TLSDATASESSIONTOKENERROR = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x312B),
8673 [helpstring("Could not create file")] FTPLIB_E_COULDNOTCREATEFILE = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x312C),
8674
8675 // SSH specific
8676 [helpstring("Unexpected remote id")] FTPLIB_E_SSH_UNEXPECTEDREMOTEID = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3120),
8677 [helpstring("Host authentication failed")] FTPLIB_E_SSH_HOSTAUTHENTICATION = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3121),
8678 [helpstring("Algorithm negotiation failed")] FTPLIB_E_SSH_NEGOTIATION = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3122),
8679 [helpstring("Invalid host key")] FTPLIB_E_SSH_INVALIDHOSTKEY = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3123),
8680 [helpstring("Invalid message")] FTPLIB_E_SSH_INVALIDMESSAGE = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3124),
8681 [helpstring("Failed to request channel")] FTPLIB_E_SSH_CHANNEL_REQUESTFAILURE = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3125),
8682 [helpstring("Failed to open channel")] FTPLIB_E_SSH_CHANNEL_OPENFAILURE = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3126),
8683 [helpstring("Key exchange failed")] FTPLIB_E_SSH_KEYEXCHANGE = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3127),
8684 [helpstring("Channel eof")] FTPLIB_E_SSH_CHANNEL_EOF = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3128),
8685 [helpstring("Invalid host signature")] FTPLIB_E_SSH_INVALIDHOSTSIGNATURE = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x312A),
8686 [helpstring("Host key rejected")] FTPLIB_E_SSH_HOSTKEYREJECTED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x312D),
8687
8688 [helpstring("Wrong password")] FTPLIB_E_KEYFILE_PASSWORD = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3130),
8689 [helpstring("Invalid format")] FTPLIB_E_KEYFILE_INVALIDFORMAT = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3131),
8690 [helpstring("Key is invalid")] FTPLIB_E_KEY_INVALID = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3132),
8691 [helpstring("Unsupported algorithm")] FTPLIB_E_KEYFILE_UNSUPPORTED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3133),
8692
8693 // SFTP
8694 [helpstring("Unexpected SFTP packet type")] FTPLIB_E_SFTP_UNEXPECTEDPACKETTYPE = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3140),
8695 [helpstring("SFTP status error")] FTPLIB_E_SFTP_STATUSERROR = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3141),
8696 [helpstring("Invalid message")] FTPLIB_E_SFTP_INVALIDMESSAGE = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3142),
8697
8698 // FTP more
8699 [helpstring("Command not implemented for argument")] FTPLIB_E_COMMANDNOTIMPLEMENTEDFORARGUMENT = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3150),
8700 [helpstring("Character conversion failed")] FTPLIB_E_CHARACTERCONVERSION = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3151),
8701 [helpstring("SSH server detected")] FTPLIB_E_SSHSERVERDETECTED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3152),
8702
8703 // License
8704 [helpstring("License: Feature not licensed")] FTPLIB_E_LICENSE_FEATURENOTLICENSED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3200),
8705 [helpstring("License: Product mismatch")] FTPLIB_E_LICENSE_PRODUCTMISMATCH = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3201),
8706 [helpstring("License: Version mismatch")] FTPLIB_E_LICENSE_VERSIONMISMATCH = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3202),
8707 [helpstring("License: MachineId mismatch")] FTPLIB_E_LICENSE_MACHINEIDMISMATCH = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3203),
8708 [helpstring("License: License expired")] FTPLIB_E_LICENSE_EXPIRED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3204),
8709 [helpstring("License: Maintenance expired")] FTPLIB_E_LICENSE_MAINTENANCEEXPIRED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3205),
8710
8711 // License activation error codes
8712 [helpstring("Activation: Unsupported version")] FTPLIB_E_ACTIVATION_UNSUPPORTEDVERSION = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x5500),
8713 [helpstring("Activation: Invalid serial")] FTPLIB_E_ACTIVATION_INVALIDSERIAL = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x5501),
8714 [helpstring("Activation: Product mismatch")] FTPLIB_E_ACTIVATION_PRODUCTMISMATCH = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x5502),
8715 [helpstring("Activation: License inactive")] FTPLIB_E_ACTIVATION_LICENSEINACTIVE = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x5503),
8716 [helpstring("Activation: License expired")] FTPLIB_E_ACTIVATION_LICENSEEXPIRED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x5504),
8717 [helpstring("Activation: License exhausted")] FTPLIB_E_ACTIVATION_LICENSEEXHAUSTED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x5505),
8718 [helpstring("Activation: Invalid request")] FTPLIB_E_ACTIVATION_INVALIDREQUEST = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x5506),
8719 [helpstring("Activation: SubLicense not found")] FTPLIB_E_ACTIVATION_SUBLICENSENOTFOUND = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x5507),
8720 [helpstring("Activation: Maintenance expired")] FTPLIB_E_ACTIVATION_MAINTENANCEEXPIRED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x5508),
8721 [helpstring("Activation: SubLicense disabled")] FTPLIB_E_ACTIVATION_SUBLICENSEDISABLED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x5509),
8722 [helpstring("Activation: Product version not supported")] FTPLIB_E_ACTIVATION_PRODUCTVERSIONNOTSUPPORTED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x550A),
8723 [helpstring("Activation: Operating system not supported")] FTPLIB_E_ACTIVATION_OPERATINGSYSTEMNOTSUPPORTED = MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x550B)
8724 } _HRESULT;
8725
8742 typedef [v1_enum] enum UnixPermissions
8743 {
8744 // --- Public (World/Other) Permissions ---
8750 [helpstring("UnixPermission ftpUnixPermission PublicExecute")]
8752
8759 [helpstring("UnixPermission ftpUnixPermission PublicWrite")]
8761
8767 [helpstring("UnixPermission ftpUnixPermission PublicRead")]
8769
8770
8771 // --- Group Permissions ---
8777 [helpstring("UnixPermission ftpUnixPermission GroupExecute")]
8779
8785 [helpstring("UnixPermission ftpUnixPermission GroupWrite")]
8787
8793 [helpstring("UnixPermission ftpUnixPermission GroupRead")]
8795
8796
8797 // --- User (Owner) Permissions ---
8803 [helpstring("UnixPermission ftpUnixPermission UserExecute")]
8805
8811 [helpstring("UnixPermission ftpUnixPermission UserWrite")]
8813
8819 [helpstring("UnixPermission ftpUnixPermission UserRead")]
8821
8822
8823 // --- Special Bits ---
8831 [helpstring("UnixPermission ftpUnixPermission SystemSticky")]
8833
8842 [helpstring("UnixPermission ftpUnixPermission SetGID")]
8844
8851 [helpstring("UnixPermission ftpUnixPermission SetUID")]
8853
8854 } UnixPermissions;
8855
8856 // mapped from SSH_FILEXFER_ATTR_FLAGS_
8857 typedef [v1_enum] enum SFTPItemAttributeBit
8858 {
8859 [helpstring("SFTPItemAttributeBit ftpSFTPItemAttributeBit ReadOnly")] ftpSFTPItemAttributeBitReadOnly = 0x1,
8860 [helpstring("SFTPItemAttributeBit ftpSFTPItemAttributeBit System")] ftpSFTPItemAttributeBitSystem = 0x2,
8861 [helpstring("SFTPItemAttributeBit ftpSFTPItemAttributeBit Hidden")] ftpSFTPItemAttributeBitHidden = 0x4,
8862 [helpstring("SFTPItemAttributeBit ftpSFTPItemAttributeBit CaseInsensitive")] ftpSFTPItemAttributeBitCaseInsensitive = 0x8,
8863 [helpstring("SFTPItemAttributeBit ftpSFTPItemAttributeBit Archive")] ftpSFTPItemAttributeBitArchive = 0x10,
8864 [helpstring("SFTPItemAttributeBit ftpSFTPItemAttributeBit Encrypted")] ftpSFTPItemAttributeBitEncrypted = 0x20,
8865 [helpstring("SFTPItemAttributeBit ftpSFTPItemAttributeBit Compressed")] ftpSFTPItemAttributeBitCompressed = 0x40,
8866 [helpstring("SFTPItemAttributeBit ftpSFTPItemAttributeBit Sparse")] ftpSFTPItemAttributeBitSparse = 0x80,
8867 [helpstring("SFTPItemAttributeBit ftpSFTPItemAttributeBit AppendOnly")] ftpSFTPItemAttributeBitAppendOnly = 0x100,
8868 [helpstring("SFTPItemAttributeBit ftpSFTPItemAttributeBit Immutable")] ftpSFTPItemAttributeBitImmutable = 0x200,
8869 [helpstring("SFTPItemAttributeBit ftpSFTPItemAttributeBit Sync")] ftpSFTPItemAttributeBitSync = 0x400,
8870 [helpstring("SFTPItemAttributeBit ftpSFTPItemAttributeBit TranslationErr")] ftpSFTPItemAttributeBitTranslationErr = 0x800
8871 } SFTPItemAttributeBit;
8872
8873 // mapped from SSH_FILEXFER_ATTR_
8874 typedef [v1_enum] enum SFTPItemAttribute
8875 {
8876 [helpstring("SFTPItemAttribute ftpSFTPItemAttribute Size")] ftpSFTPItemAttributeSize = 0x1,
8877 [helpstring("SFTPItemAttribute ftpSFTPItemAttribute UIDGID")] ftpSFTPItemAttributeUIDGID = 0x2,
8878 [helpstring("SFTPItemAttribute ftpSFTPItemAttribute Permissions")] ftpSFTPItemAttributePermissions = 0x4,
8879 [helpstring("SFTPItemAttribute ftpSFTPItemAttribute AccessTime")] ftpSFTPItemAttributeAccessTime = 0x8,
8880 [helpstring("SFTPItemAttribute ftpSFTPItemAttribute CreateTime")] ftpSFTPItemAttributeCreateTime = 0x10,
8881 [helpstring("SFTPItemAttribute ftpSFTPItemAttribute ModifyTime")] ftpSFTPItemAttributeModifyTime = 0x20,
8882 [helpstring("SFTPItemAttribute ftpSFTPItemAttribute ACL")] ftpSFTPItemAttributeACL = 0x40,
8883 [helpstring("SFTPItemAttribute ftpSFTPItemAttribute OwnerGroup")] ftpSFTPItemAttributeOwnerGroup = 0x80,
8884 [helpstring("SFTPItemAttribute ftpSFTPItemAttribute SubSecondTimes")] ftpSFTPItemAttributeSubSecondTimes = 0x100,
8885 [helpstring("SFTPItemAttribute ftpSFTPItemAttribute Bits")] ftpSFTPItemAttributeBits = 0x200,
8886 [helpstring("SFTPItemAttribute ftpSFTPItemAttribute AllocationSize")] ftpSFTPItemAttributeAllocationSize = 0x400,
8887 [helpstring("SFTPItemAttribute ftpSFTPItemAttribute TextHint")] ftpSFTPItemAttributeTextHint = 0x800,
8888 [helpstring("SFTPItemAttribute ftpSFTPItemAttribute MimeType")] ftpSFTPItemAttributeMimeType = 0x1000,
8889 [helpstring("SFTPItemAttribute ftpSFTPItemAttribute LinkCount")] ftpSFTPItemAttributeLinkCount = 0x2000,
8890 [helpstring("SFTPItemAttribute ftpSFTPItemAttribute UntranslatedName")] ftpSFTPItemAttributeUntranslatedName = 0x4000,
8891 [helpstring("SFTPItemAttribute ftpSFTPItemAttribute CTime")] ftpSFTPItemAttributeCTime = 0x8000,
8892 [helpstring("SFTPItemAttribute ftpSFTPItemAttribute Extended")] ftpSFTPItemAttributeExtended = 0x80000000
8893 } SFTPItemAttribute;
8894
8909 typedef [v1_enum] enum LISTOption
8910 {
8916 [helpstring("LISTOption ftpLISTOption Long")]
8918
8924 [helpstring("LISTOption ftpLISTOption All")]
8926
8931 [helpstring("LISTOption ftpLISTOption Links")]
8933
8939 [helpstring("LISTOption ftpLISTOption T")]
8941
8947 [helpstring("LISTOption ftpLISTOption Recursive")]
8949 } LISTOption;
8950
8954 typedef [v1_enum] enum DownloadFlags
8955 {
8963 [helpstring("DownloadFlags ftpDownloadFlag None")]
8965
8978 [helpstring("DownloadFlags ftpDownloadFlag ReadBeyondEnd")]
8980
8981 } DownloadFlags;
8982
8990 typedef [v1_enum] enum SSHAuthentication
8991 {
8992 [helpstring("SSHAuthentication Unknown")]
8994
9004 [helpstring("SSHAuthentication None")]
9006
9013 [helpstring("SSHAuthentication Password")]
9015
9025 [helpstring("SSHAuthentication KeyboardInteractive")]
9027
9036 [helpstring("SSHAuthentication PublicKey")]
9038
9046 [helpstring("SSHAuthentication SecurID")]
9048
9056 [helpstring("SSHAuthentication HostBased")]
9058
9066 [helpstring("SSHAuthentication GSSAPI")]
9068 } SSHAuthentication;
9069
9075 [
9076 uuid(D216FD3A-DAC1-4692-AAE1-EB5551128990),
9077 nonextensible,
9078 helpstring("Event interface for FTPConnection")
9079 ]
9081 {
9082 properties:
9083
9084 methods:
9085 [id(1), helpstring("method OnDisconnect")] void OnDisconnect();
9086 [id(2), helpstring("method OnLogin")] void OnLogin();
9087 [id(3), helpstring("method OnVerifyCert")] void OnVerifyCert([in,out] VARIANT_BOOL* shouldContinue);
9088 };
9089
9090 [
9091 object,
9092 uuid(0B79DE64-B5EB-430E-90F9-291F20ECDC3A),
9093 pointer_default(unique)
9094 ]
9095 interface IFTPConnectionEvents : IUnknown
9096 {
9097 HRESULT OnDisconnect();
9098 HRESULT OnLogin();
9099 HRESULT OnVerifyCert([in,out] VARIANT_BOOL* shouldContinue);
9100 };
9101
9115 [
9116 uuid(50177264-39E2-43EC-8377-E1A97AB63ED2),
9117 helpstring("FTPConnectionSTA Class"),
9118 ]
9120 {
9121 [default] interface IFTPConnection;
9122 [default, source] dispinterface _IFTPConnectionEvents;
9123 };
9124
9140 [
9141 uuid(B32243B2-7D9E-464D-A2A4-4117540E0F70),
9142 helpstring("FTPConnectionMTA Class"),
9143 ]
9145 {
9146 [default] interface IFTPConnection;
9147 [default, source] dispinterface _IFTPConnectionEvents;
9148 [source] interface IFTPConnectionEvents;
9149 interface IConnection;
9150 interface IConnectionWithLogger;
9151 };
9152
9159 [
9160 uuid(614D8CE6-3583-49af-BACE-4B92EB4C4A73),
9161 helpstring("FTPParser Class"),
9162 ]
9164 {
9165 interface IFTPParser;
9166 [default] dispinterface IFTPParserD;
9167 };
9168
9175 [
9176 uuid(D7A7E08A-31B5-4b7b-8908-2F4530349C50),
9177 helpstring("FTPPortPool Class"),
9178 ]
9180 {
9181 [default] interface IFTPPortPool;
9182 };
9183
9189 [
9190 uuid(0BBB9B85-DE7A-4DE5-90C1-82ACF2AE6FA2),
9191 helpstring("FTPFXP Class"),
9192 ]
9193 coclass FTPFXP
9194 {
9195 [default] interface IFTPFXP;
9196 };
9197
9205 [
9206 uuid(B46A15B8-9AA5-41A4-897D-B58A809B2D5B),
9207 helpstring("GlobalSpeedLimit Class"),
9208 ]
9210 {
9211 [default] interface IGlobalSpeedLimit;
9212 };
9213
9220 [
9221 uuid(52D6E699-9256-414F-8FCD-F38FDF6AC8EE),
9222 helpstring("Global Class"),
9223 ]
9224 coclass Global
9225 {
9226 [default] interface IGlobal;
9227 };
9228
9239 [
9240 uuid(2A49E162-7159-4F6F-BA7D-FC110DC0C603),
9241 nonextensible,
9242 helpstring("_ISFTPConnectionEvents Interface")
9243 ]
9245 {
9246 properties:
9247 methods:
9248
9259 [id(3), helpstring("method OnClose")]
9260 void OnClose();
9261 };
9262
9276 [
9277 object,
9278 uuid(1FFFC239-2D50-4049-BF97-F98671CB7EB7),
9279 pointer_default(unique)
9280 ]
9281 interface ISFTPConnectionEvents : IUnknown
9282 {
9293 HRESULT OnClose();
9294 };
9295
9308 [
9309 uuid(066D6AC8-34D6-450b-B92F-17C8F6CC5E44),
9310 nonextensible,
9311 helpstring("_ISSHConnectionEvents Interface")
9312 ]
9314 {
9315 properties:
9316 methods:
9321 [id(3), helpstring("method OnDisconnect")]
9323
9328 [id(11), helpstring("method OnLogin")]
9329 void OnLogin();
9330
9344 [id(13), helpstring("method OnHostKey")]
9345 void OnHostKey([in] VARIANT varHostKey,[in, out] VARIANT_BOOL* accept);
9346
9357 [id(14), helpstring("method OnLoginChallenge")]
9358 void OnLoginChallenge([in] BSTR challenge,[out] BSTR* response);
9359
9365 [id(15), helpstring("method OnUserAuthBanner")]
9366 void OnUserAuthBanner([in] BSTR message);
9367
9375 [id(16), helpstring("method OnPasswordChangeRequest")]
9376 void OnPasswordChangeRequest([in] BSTR prompt,[out] BSTR* newPassword,[in, out] VARIANT_BOOL* handled);
9377
9383 [id(19), helpstring("method OnAuthentication")]
9384 void OnAuthentication([in] BSTR method);
9385
9392 [id(20), helpstring("method OnHostKeys")]
9393 void OnHostKeys([in] VARIANT hostKeys);
9394 };
9395
9396 [
9397 object,
9398 uuid(75B7A9CA-430E-49E7-A5D3-EA371143DA8C),
9399 pointer_default(unique)
9400 ]
9401 interface ISSHConnectionEvents : IUnknown
9402 {
9403 HRESULT OnDisconnect();
9404 HRESULT OnLogin();
9405 HRESULT OnHostKey([in] VARIANT varHostKey, [in, out] VARIANT_BOOL* accept);
9406 HRESULT OnLoginChallenge([in] LPCWSTR challenge, [out] BSTR *response);
9407 HRESULT OnUserAuthBanner([in] LPCWSTR message);
9408 HRESULT OnPasswordChangeRequest([in] LPCWSTR prompt, [out] BSTR *newPassword, [in, out] VARIANT_BOOL* handled);
9409 HRESULT OnAuthentication([in] LPCWSTR method);
9410 HRESULT OnHostKeys([in, size_is(numberOfKeys)] const PROPVARIANT hostKeys[*], [in] UINT numberOfKeys);
9411 };
9412
9433 [
9434 uuid(08E560E0-86E2-4DDE-A397-E7C82DE9CD94),
9435 helpstring("SFTPConnection Class")
9436 ]
9438 {
9442 [default] interface ISFTPConnection;
9443
9447 [default, source] dispinterface _ISFTPConnectionEvents;
9448
9452 [source] interface ISFTPConnectionEvents;
9453 };
9454
9471 [
9472 uuid(DCA42CB3-D61B-4B82-888D-E3D893E28EE8),
9473 helpstring("FTPItem Class")
9474 ]
9475 coclass FTPItem
9476 {
9477 [default] interface IFTPItem;
9478 };
9479
9480 [
9481 uuid(F0B71643-5FE6-4FCA-89F5-525F06F580DD),
9482 helpstring("OpenSSLKey Class")
9483 ]
9485 {
9486 [default] interface IOpenSSLKey;
9487 };
9488
9507 [
9508 uuid(A9A48E15-6303-491D-9E6E-96F0E2418A1E),
9509 helpstring("KeyManager Class")
9510 ]
9512 {
9516 [default] interface IKeyManager;
9517 };
9518
9519 [
9520 uuid(AAC5FE7F-3615-4D42-B913-C22EACEF1363),
9521 helpstring("AES128CTRWriteStream Class")
9522 ]
9524 {
9525 [default] interface IAES128CTRWriteStream;
9526 interface IStreamFilter;
9527 interface IStreamFilterInfo;
9528 };
9529
9530 [
9531 uuid(026F6EBB-0A23-4585-B2E5-E167B0C34D17),
9532 helpstring("AES128CTRReadStream Class")
9533 ]
9535 {
9536 [default] interface IAES128CTRReadStream;
9537 interface IStreamFilter;
9538 interface IStreamFilterInfo;
9539 };
9540
9541 [
9542 uuid(2D7B4FA9-1507-4EE1-9CFD-12159C91EB9C),
9543 helpstring("CryptoHash Class")
9544 ]
9546 {
9547 [default] interface ICryptoHash;
9548 };
9549
9553 [
9554 uuid(1679D561-2D4C-453D-B11A-52BED2E29B12),
9555 helpstring("FTPClientId Class")
9556 ]
9558 {
9562 [default] interface IFTPClientId;
9563 };
9564
9565 [
9566 uuid(B6DFA153-8930-4FB4-8FE3-2D0D76422764),
9567 helpstring("ParserWriteStream Class")
9568 ]
9570 {
9571 [default] interface IParserWriteStream;
9572 };
9573
9574 [
9575 uuid(2AF42C62-29E4-4B68-8EB2-F63B6B5701F3),
9576 helpstring("SFTPVendorId Class")
9577 ]
9579 {
9580 [default] interface ISFTPVendorId;
9581 };
9582
9595 [
9596 uuid(A1B47E91-51FC-42AC-A661-31C78534DF7D),
9597 helpstring("SSHConnection Class")
9598 ]
9600 {
9604 [default] interface ISSHConnection;
9605
9609 [default, source] dispinterface _ISSHConnectionEvents;
9610
9614 [source] interface ISSHConnectionEvents;
9615 };
9616
9617 [
9618 uuid(2D9B03D3-392A-42DB-96F2-37F58A4E98D3),
9619 helpstring("Utils Class")
9620 ]
9621 coclass Utils
9622 {
9623 [default] interface IUtils;
9624 };
9625
9626 [
9627 uuid(21BA1BBB-59C8-4D94-9C59-5F5A73115310),
9628 helpstring("SSHKeyBlobHelper Class")
9629 ]
9631 {
9632 [default] interface ISSHKeyBlobHelper;
9633 };
9634
9635 [
9636 uuid(8640D9C2-8B88-41D6-BA21-414A1561EA59),
9637 helpstring("BCryptKey Class")
9638 ]
9640 {
9641 [default] interface IBCryptKey;
9642 };
9643
9644 [
9645 uuid(06099E23-684A-4D60-8D2C-83D666C75123),
9646 helpstring("NCryptKey Class")
9647 ]
9649 {
9650 [default] interface INCryptKey;
9651 interface INCryptKeyCustom;
9652 };
9653
9654 [
9655 uuid(7AC02032-BBB0-4A4F-BB4F-E92C5A225A28),
9656 helpstring("FileLogger Class")
9657 ]
9659 {
9660 [default] interface IFileLogger;
9661 };
9662};
Definition sfFTPLib.idl:9535
Definition sfFTPLib.idl:9524
Definition sfFTPLib.idl:9640
Definition sfFTPLib.idl:9546
Encapsulates the client application identity sent to the server.
Definition sfFTPLib.idl:9558
Definition sfFTPLib.idl:9145
Definition sfFTPLib.idl:9120
The implementation class for Server-to-Server (FXP) transfers.
Definition sfFTPLib.idl:9194
Represents a single file, directory, or symbolic link within a file system.
Definition sfFTPLib.idl:9476
Definition sfFTPLib.idl:9164
The concrete implementation of the port pool manager.
Definition sfFTPLib.idl:9180
Definition sfFTPLib.idl:9659
The central configuration and licensing manager for the library.
Definition sfFTPLib.idl:9225
The component class responsible for managing global bandwidth usage.
Definition sfFTPLib.idl:9210
Provides a centralized toolkit for creating, loading, and managing SSH user identity keys.
Definition sfFTPLib.idl:9512
Definition sfFTPLib.idl:9649
Definition sfFTPLib.idl:9485
Definition sfFTPLib.idl:9570
The main class for establishing SFTP (SSH File Transfer Protocol) connections.
Definition sfFTPLib.idl:9438
Definition sfFTPLib.idl:9579
The main class for establishing SSH (Secure Shell) sessions for command execution.
Definition sfFTPLib.idl:9600
Definition sfFTPLib.idl:9631
Definition sfFTPLib.idl:9622
Definition sfFTPLib.idl:8455
HRESULT SetKey([in, size_is(keyLength)] byte *key, [in] ULONG keyLength)
Definition sfFTPLib.idl:8444
HRESULT SetKey([in, size_is(keyLength)] byte *key, [in] ULONG keyLength)
Definition sfFTPLib.idl:8599
HRESULT Generate([in] long bits)
HRESULT Initialize([in] LPCWSTR algorithmName)
HRESULT InitializeEx([in] LPCWSTR algorithmName, [in] LPCWSTR curveName)
Definition sfFTPLib.idl:2846
HRESULT OnComplete([in] HRESULT error)
Definition sfFTPLib.idl:8433
ConnectionStatus ConnectionStatus
Definition sfFTPLib.idl:2991
HRESULT GetLogger([out] ILogger **logger)
HRESULT SetLogger([in, unique] ILogger *logger)
Definition sfFTPLib.idl:8480
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:1675
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:3531
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:5522
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:3065
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
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:3451
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:5479
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:5459
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:1362
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:1730
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:1771
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:3006
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:1258
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:1429
long UploadSpeedLimit
Sets or retrieves the maximum upload speed.
long DownloadSpeedLimit
Sets or retrieves the maximum download speed.
Definition sfFTPLib.idl:8466
HRESULT OnProgress(ULONGLONG chunk)
Encapsulates a cryptographic key pair, public key, or certificate.
Definition sfFTPLib.idl:2442
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:8354
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:2980
HRESULT Log([in] StatusEventType eventType, [in, size_is(textLength)] LPCWSTR text, [in] UINT textLength)
Definition sfFTPLib.idl:8625
HRESULT Initialize([in] void *certContext)
HRESULT GetHandle([out, retval] ULONG_PTR *retval)
Definition sfFTPLib.idl:8611
HRESULT Generate([in] long bits)
HRESULT Initialize([in] LPCWSTR provider)
HRESULT CreatePersistedKey([in] LPCWSTR algorithmName)
Definition sfFTPLib.idl:8328
HRESULT Generate([in] long nid, [in] long bits)
Definition sfFTPLib.idl:8503
ParserFormat Format
IProxySettings Interface.
Definition sfFTPLib.idl:2624
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:7254
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:2942
BSTR HashAsString
Retrieves the computed hash value as a hexadecimal string.
HashAlgo HashAlgo
Retrieves the hashing algorithm used by the server.
Definition sfFTPLib.idl:6060
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:6236
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:5913
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:5971
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:8542
HRESULT OnDetach()
Definition sfFTPLib.idl:6389
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
Specifies the ordered list of preferred languages for server messages.
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:6277
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:8572
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:6341
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:1571
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:2717
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:2818
long UploadSpeedLimit
The speed limit in bytes/second for uploads.
long DownloadSpeedLimit
The speed limit in bytes/second for downloads.
Definition sfFTPLib.idl:1642
HRESULT GetStream([out] IStream **stream)
HRESULT Initialize([in] IStream *stream)
HRESULT Uninitialize()
Definition sfFTPLib.idl:1657
Definition sfFTPLib.idl:2860
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:3501
HRESULT OnTransferProgress([in] ULONGLONG bytesTransferred)
Called periodically by the component to report transfer progress.
Definition sfFTPLib.idl:8520
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:9081
void OnVerifyCert([in, out] VARIANT_BOOL *shouldContinue)
Defines the events fired by the SFTPConnection class.
Definition sfFTPLib.idl:9245
void OnClose()
Fired when the SFTP connection is closed.
Defines the events fired by the SSHConnection class during the session lifecycle.
Definition sfFTPLib.idl:9314
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:9096
HRESULT OnVerifyCert([in, out] VARIANT_BOOL *shouldContinue)
A callback interface for handling SFTP connection state changes.
Definition sfFTPLib.idl:9282
HRESULT OnClose()
Fired when the SFTP session is terminated.
Definition sfFTPLib.idl:9402
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:8636
SFTPItemAttribute
Definition sfFTPLib.idl:8875
@ ftpSFTPItemAttributeBits
Definition sfFTPLib.idl:8885
@ ftpSFTPItemAttributeCTime
Definition sfFTPLib.idl:8891
@ ftpSFTPItemAttributeSize
Definition sfFTPLib.idl:8876
@ ftpSFTPItemAttributeAccessTime
Definition sfFTPLib.idl:8879
@ ftpSFTPItemAttributePermissions
Definition sfFTPLib.idl:8878
@ ftpSFTPItemAttributeAllocationSize
Definition sfFTPLib.idl:8886
@ ftpSFTPItemAttributeSubSecondTimes
Definition sfFTPLib.idl:8884
@ ftpSFTPItemAttributeLinkCount
Definition sfFTPLib.idl:8889
@ ftpSFTPItemAttributeModifyTime
Definition sfFTPLib.idl:8881
@ ftpSFTPItemAttributeOwnerGroup
Definition sfFTPLib.idl:8883
@ ftpSFTPItemAttributeMimeType
Definition sfFTPLib.idl:8888
@ ftpSFTPItemAttributeTextHint
Definition sfFTPLib.idl:8887
@ ftpSFTPItemAttributeUntranslatedName
Definition sfFTPLib.idl:8890
@ ftpSFTPItemAttributeExtended
Definition sfFTPLib.idl:8892
@ ftpSFTPItemAttributeACL
Definition sfFTPLib.idl:8882
@ ftpSFTPItemAttributeUIDGID
Definition sfFTPLib.idl:8877
@ ftpSFTPItemAttributeCreateTime
Definition sfFTPLib.idl:8880
importlib(STDOLE_TLB)
DownloadFlags
Flags that control the behavior of the ISFTPConnection::DownloadFileEx operation.
Definition sfFTPLib.idl:8955
@ ftpDownloadFlagReadBeyondEnd
Allows the read operation to complete successfully even if the requested range exceeds the file size.
Definition sfFTPLib.idl:8979
@ ftpDownloadFlagNone
Default behavior.
Definition sfFTPLib.idl:8964
SFTPItemAttributeBit
Definition sfFTPLib.idl:8858
@ ftpSFTPItemAttributeBitEncrypted
Definition sfFTPLib.idl:8864
@ ftpSFTPItemAttributeBitCompressed
Definition sfFTPLib.idl:8865
@ ftpSFTPItemAttributeBitSync
Definition sfFTPLib.idl:8869
@ ftpSFTPItemAttributeBitImmutable
Definition sfFTPLib.idl:8868
@ ftpSFTPItemAttributeBitArchive
Definition sfFTPLib.idl:8863
@ ftpSFTPItemAttributeBitHidden
Definition sfFTPLib.idl:8861
@ ftpSFTPItemAttributeBitTranslationErr
Definition sfFTPLib.idl:8870
@ ftpSFTPItemAttributeBitCaseInsensitive
Definition sfFTPLib.idl:8862
@ ftpSFTPItemAttributeBitSystem
Definition sfFTPLib.idl:8860
@ ftpSFTPItemAttributeBitAppendOnly
Definition sfFTPLib.idl:8867
@ ftpSFTPItemAttributeBitSparse
Definition sfFTPLib.idl:8866
@ ftpSFTPItemAttributeBitReadOnly
Definition sfFTPLib.idl:8859
_HRESULT
Definition sfFTPLib.idl:8640
@ FTPLIB_E_KEYFILE_UNSUPPORTED
Definition sfFTPLib.idl:8691
@ FTPLIB_E_NOTAREGULARFILE
Definition sfFTPLib.idl:8658
@ FTPLIB_E_TLSNOTSUPPORTED
Definition sfFTPLib.idl:8661
@ FTPLIB_E_PAUSED
Definition sfFTPLib.idl:8648
@ FTPLIB_E_LOCALPOLICYREQUIRESCCC
Definition sfFTPLib.idl:8669
@ FTPLIB_E_ACTIVATION_OPERATINGSYSTEMNOTSUPPORTED
Definition sfFTPLib.idl:8723
@ FTPLIB_E_ACTIVATION_LICENSEEXPIRED
Definition sfFTPLib.idl:8716
@ FTPLIB_E_PASVCOMMANDFAILED
Definition sfFTPLib.idl:8660
@ FTPLIB_E_SERVERPROTOCOLVIOLATION
Definition sfFTPLib.idl:8656
@ FTPLIB_E_TOOMANYUSERS
Definition sfFTPLib.idl:8671
@ FTPLIB_E_LICENSE_PRODUCTMISMATCH
Definition sfFTPLib.idl:8705
@ FTPLIB_E_TIMEOUT
Definition sfFTPLib.idl:8643
@ FTPLIB_E_LICENSE_FEATURENOTLICENSED
Definition sfFTPLib.idl:8704
@ FTPLIB_E_MOREDATA
Definition sfFTPLib.idl:8647
@ FTPLIB_E_SSH_KEYEXCHANGE
Definition sfFTPLib.idl:8683
@ FTPLIB_E_TLSDATASESSIONTOKENERROR
Definition sfFTPLib.idl:8672
@ FTPLIB_E_ACTIVATION_UNSUPPORTEDVERSION
Definition sfFTPLib.idl:8712
@ FTPLIB_E_SERVERPOLICYREQUIRESTLS
Definition sfFTPLib.idl:8663
@ FTPLIB_E_SSH_INVALIDMESSAGE
Definition sfFTPLib.idl:8680
@ FTPLIB_E_ACTIVATION_INVALIDSERIAL
Definition sfFTPLib.idl:8713
@ FTPLIB_E_ACTIVATION_PRODUCTVERSIONNOTSUPPORTED
Definition sfFTPLib.idl:8722
@ FTPLIB_E_ACTIVATION_SUBLICENSEDISABLED
Definition sfFTPLib.idl:8721
@ FTPLIB_E_NOTDISCONNECTED
Definition sfFTPLib.idl:8650
@ FTPLIB_E_ACTIVATION_LICENSEEXHAUSTED
Definition sfFTPLib.idl:8717
@ FTPLIB_E_SSH_HOSTKEYREJECTED
Definition sfFTPLib.idl:8686
@ FTPLIB_E_SSH_CHANNEL_EOF
Definition sfFTPLib.idl:8684
@ FTPLIB_E_LICENSE_MACHINEIDMISMATCH
Definition sfFTPLib.idl:8707
@ FTPLIB_E_SSH_INVALIDHOSTSIGNATURE
Definition sfFTPLib.idl:8685
@ FTPLIB_E_KEYFILE_INVALIDFORMAT
Definition sfFTPLib.idl:8689
@ FTPLIB_E_SSH_CHANNEL_OPENFAILURE
Definition sfFTPLib.idl:8682
@ FTPLIB_E_SSH_CHANNEL_REQUESTFAILURE
Definition sfFTPLib.idl:8681
@ FTPLIB_E_BOX_APPLICATIONBLOCKED
Definition sfFTPLib.idl:8667
@ FTPLIB_E_KEY_INVALID
Definition sfFTPLib.idl:8690
@ FTPLIB_E_BOX_CAPTCHAREQUIRED
Definition sfFTPLib.idl:8668
@ FTPLIB_E_TOOMANYCONNECTIONS
Definition sfFTPLib.idl:8659
@ FTPLIB_E_NOOPERATION
Definition sfFTPLib.idl:8644
@ FTPLIB_E_ACTIVATION_LICENSEINACTIVE
Definition sfFTPLib.idl:8715
@ FTPLIB_E_HOSTNAMEEXPECTED
Definition sfFTPLib.idl:8662
@ FTPLIB_E_IPBANNED
Definition sfFTPLib.idl:8664
@ FTPLIB_E_HOMEDIRECTORY
Definition sfFTPLib.idl:8665
@ FTPLIB_E_ACTIVATION_PRODUCTMISMATCH
Definition sfFTPLib.idl:8714
@ FTPLIB_E_CONNECTIONCLOSED
Definition sfFTPLib.idl:8651
@ FTPLIB_E_AUTHENTICATION
Definition sfFTPLib.idl:8653
@ FTPLIB_E_KEYFILE_PASSWORD
Definition sfFTPLib.idl:8688
@ FTPLIB_E_NOTCONNECTED
Definition sfFTPLib.idl:8642
@ FTPLIB_E_LICENSE_VERSIONMISMATCH
Definition sfFTPLib.idl:8706
@ FTPLIB_E_LICENSE_MAINTENANCEEXPIRED
Definition sfFTPLib.idl:8709
@ FTPLIB_E_ACTIVATION_MAINTENANCEEXPIRED
Definition sfFTPLib.idl:8720
@ FTPLIB_E_COULDNOTCREATEFILE
Definition sfFTPLib.idl:8673
@ FTPLIB_E_SSH_NEGOTIATION
Definition sfFTPLib.idl:8678
@ FTPLIB_E_LICENSE_EXPIRED
Definition sfFTPLib.idl:8708
@ FTPLIB_E_SFTP_INVALIDMESSAGE
Definition sfFTPLib.idl:8696
@ FTPLIB_E_SFTP_STATUSERROR
Definition sfFTPLib.idl:8695
@ FTPLIB_E_BUSY
Definition sfFTPLib.idl:8641
@ FTPLIB_E_COMMANDNOTIMPLEMENTED
Definition sfFTPLib.idl:8657
@ FTPLIB_E_SSH_HOSTAUTHENTICATION
Definition sfFTPLib.idl:8677
@ FTPLIB_E_SSH_INVALIDHOSTKEY
Definition sfFTPLib.idl:8679
@ FTPLIB_E_SSH_UNEXPECTEDREMOTEID
Definition sfFTPLib.idl:8676
@ FTPLIB_E_RESTARTNOTPERMITTED
Definition sfFTPLib.idl:8655
@ FTPLIB_E_NOTLOGGEDIN
Definition sfFTPLib.idl:8670
@ FTPLIB_E_NOTINIT
Definition sfFTPLib.idl:8645
@ FTPLIB_E_SFTP_UNEXPECTEDPACKETTYPE
Definition sfFTPLib.idl:8694
@ FTPLIB_E_CHARACTERCONVERSION
Definition sfFTPLib.idl:8700
@ FTPLIB_E_COMMANDNOTIMPLEMENTEDFORARGUMENT
Definition sfFTPLib.idl:8699
@ FTPLIB_E_WRONGREPLY
Definition sfFTPLib.idl:8646
@ FTPLIB_E_SSHSERVERDETECTED
Definition sfFTPLib.idl:8701
@ FTPLIB_E_PORTCOMMANDFAILED
Definition sfFTPLib.idl:8654
@ FTPLIB_E_SETTINGMISMATCH
Definition sfFTPLib.idl:8649
@ FTPLIB_E_BOX_ACCEPTTERMSOFSERVICE
Definition sfFTPLib.idl:8666
@ FTPLIB_E_ACTIVATION_INVALIDREQUEST
Definition sfFTPLib.idl:8718
@ FTPLIB_E_DATACONNECTION_CONNECT
Definition sfFTPLib.idl:8652
@ FTPLIB_E_ACTIVATION_SUBLICENSENOTFOUND
Definition sfFTPLib.idl:8719
UnixPermissions
Defines the access permissions for files and directories on Unix-like systems.
Definition sfFTPLib.idl:8743
@ ftpUnixPermissionUserExecute
User Execute (x).
Definition sfFTPLib.idl:8804
@ ftpUnixPermissionGroupExecute
Group Execute (x).
Definition sfFTPLib.idl:8778
@ ftpUnixPermissionGroupWrite
Group Write (w).
Definition sfFTPLib.idl:8786
@ ftpUnixPermissionSystemSetUID
Set User ID (SetUID) (s).
Definition sfFTPLib.idl:8852
@ ftpUnixPermissionPublicWrite
Public Write (w).
Definition sfFTPLib.idl:8760
@ ftpUnixPermissionSystemSetGID
Set Group ID (SetGID) (s).
Definition sfFTPLib.idl:8843
@ ftpUnixPermissionPublicExecute
Public Execute (x).
Definition sfFTPLib.idl:8751
@ ftpUnixPermissionSystemSticky
Sticky Bit (t).
Definition sfFTPLib.idl:8832
@ ftpUnixPermissionPublicRead
Public Read (r).
Definition sfFTPLib.idl:8768
@ ftpUnixPermissionUserRead
User Read (r).
Definition sfFTPLib.idl:8820
@ ftpUnixPermissionUserWrite
User Write (w).
Definition sfFTPLib.idl:8812
@ ftpUnixPermissionGroupRead
Group Read (r).
Definition sfFTPLib.idl:8794
LISTOption
Flags to control the behavior and output of the FTP LIST command.
Definition sfFTPLib.idl:8910
@ ftpLISTOptionLong
Formats the output in "Long" format (detailed).
Definition sfFTPLib.idl:8917
@ ftpLISTOptionT
Sorts by modification time.
Definition sfFTPLib.idl:8940
@ ftpLISTOptionRecursive
Lists subdirectories recursively.
Definition sfFTPLib.idl:8948
@ ftpLISTOptionLinks
Follows symbolic links.
Definition sfFTPLib.idl:8932
@ ftpLISTOptionAll
Includes hidden files in the listing.
Definition sfFTPLib.idl:8925
SSHAuthentication
Identifies the authentication methods defined in the SSH-2 protocol (RFC 4252).
Definition sfFTPLib.idl:8991
@ ftpSSHAuthenticationUnknown
Definition sfFTPLib.idl:8993
@ ftpSSHAuthenticationPublicKey
Public Key authentication.
Definition sfFTPLib.idl:9037
@ ftpSSHAuthenticationSecurID
Legacy RSA SecurID authentication.
Definition sfFTPLib.idl:9047
@ ftpSSHAuthenticationHostBased
Host-Based authentication.
Definition sfFTPLib.idl:9057
@ ftpSSHAuthenticationKeyboardInteractive
Keyboard-Interactive authentication (RFC 4256).
Definition sfFTPLib.idl:9026
@ ftpSSHAuthenticationNone
The "none" authentication method.
Definition sfFTPLib.idl:9005
@ ftpSSHAuthenticationGSSAPI
GSSAPI (Generic Security Services Application Program Interface).
Definition sfFTPLib.idl:9067
@ ftpSSHAuthenticationPassword
Standard password authentication.
Definition sfFTPLib.idl:9014
LogFormat
Definition sfFTPLib.idl:829
@ ftpLogFormatUTF8
UTF-8.
Definition sfFTPLib.idl:834
@ ftpLogFormatUnicode
UTF-16 (little endian).
Definition sfFTPLib.idl:831
DataProtection
Defines the security level of a communication channel (Control or Data).
Definition sfFTPLib.idl:299
@ ftpDataProtectionPrivate
Data protection is enabled (PROT P).
Definition sfFTPLib.idl:313
@ ftpDataProtectionClear
Data protection is disabled (PROT C).
Definition sfFTPLib.idl:307
@ ftpDataProtectionUnknown
Definition sfFTPLib.idl:301
ParserFormat
Definition sfFTPLib.idl:442
@ ftpParserFormatVM
Definition sfFTPLib.idl:459
@ ftpParserFormatGXSEnterprise
Definition sfFTPLib.idl:463
@ ftpParserFormatVMS
Definition sfFTPLib.idl:446
@ ftpParserFormatSimple
Definition sfFTPLib.idl:462
@ ftpParserFormatAS400
Definition sfFTPLib.idl:452
@ ftpParserFormatTandem
Definition sfFTPLib.idl:449
@ ftpParserFormatSecurePortal2000
Definition sfFTPLib.idl:465
@ ftpParserFormatMeditech
Definition sfFTPLib.idl:466
@ ftpParserFormatMD11
Definition sfFTPLib.idl:457
@ ftpParserFormatGrassValley
Definition sfFTPLib.idl:461
@ ftpParserFormatNetware
Definition sfFTPLib.idl:454
@ ftpParserFormatVOS
Definition sfFTPLib.idl:450
@ ftpParserFormatBS2000
Definition sfFTPLib.idl:458
@ ftpParserFormatGXSInformationExchangeFTPGateway
Definition sfFTPLib.idl:464
@ ftpParserFormatOS2
Definition sfFTPLib.idl:453
@ ftpParserFormatNT
Definition sfFTPLib.idl:456
@ ftpParserFormatConnectEnterprise
Definition sfFTPLib.idl:460
@ ftpParserFormatUnix
Definition sfFTPLib.idl:444
@ ftpParserFormatpSOSystem
Definition sfFTPLib.idl:455
@ ftpParserFormatMLST
Definition sfFTPLib.idl:445
@ ftpParserFormatMVS
Definition sfFTPLib.idl:451
@ ftpParserFormatUnknown
Definition sfFTPLib.idl:443
@ ftpParserFormatVxWorks
Definition sfFTPLib.idl:447
@ ftpParserFormatDOS
Definition sfFTPLib.idl:448
FTPProtocol
Specifies the security protocol and encryption mode for the connection.
Definition sfFTPLib.idl:30
@ ftpProtocolNormal
Standard unencrypted FTP.
Definition sfFTPLib.idl:37
@ ftpProtocolSSLImplicit
Legacy Implicit TLS.
Definition sfFTPLib.idl:46
@ ftpProtocolRequireTLS
Explicit TLS (Mandatory).
Definition sfFTPLib.idl:56
@ ftpProtocolPreferTLS
Explicit TLS (Opportunistic).
Definition sfFTPLib.idl:67
PassiveMode
Specifies how the client handles the IP address returned in the FTP server's PASV response.
Definition sfFTPLib.idl:157
@ ftpPassiveModeAuto
Intelligent automatic detection (Recommended).
Definition sfFTPLib.idl:187
@ ftpPassiveModeUseHostIP
Ignore the server's IP; use the Control Connection IP.
Definition sfFTPLib.idl:177
@ ftpPassiveModeUseIPFromReply
Trust the server's PASV response (Standard Protocol Behavior).
Definition sfFTPLib.idl:167
FeatureDiscoveryMode
Determines the timing of the FEAT (Feature Discovery) command.
Definition sfFTPLib.idl:1222
@ ftpFeatureDiscoveryModeAfterLogin
The FEAT command is issued only once, immediately after a successful login.
Definition sfFTPLib.idl:1229
@ ftpFeatureDiscoveryModeBeforeAndAfterLogin
The FEAT command is issued twice: once before login and once after.
Definition sfFTPLib.idl:1238
GSSAPIMethod
Definition sfFTPLib.idl:6188
@ ftpGSSAPIMethodMITKerberos
MIT Kerberos (GSSAPI).
Definition sfFTPLib.idl:6208
@ ftpGSSAPIMethodMicrosoftKerberos
Microsoft SSPI (Security Support Provider Interface) Kerberos.
Definition sfFTPLib.idl:6224
@ ftpGSSAPIMethodUnknown
Unknown or unspecified GSSAPI method.
Definition sfFTPLib.idl:6193
SSHPublicKeyAlgo
Defines the public key algorithms used for server host keys and client authentication.
Definition sfFTPLib.idl:2265
@ ftpSSHPublicKeyAlgox509v3RSA2048SHA256
RSA-2048 key with SHA-256 wrapped in an X.509 certificate.
Definition sfFTPLib.idl:2342
@ ftpSSHPublicKeyAlgoRSASHA2256
RSA with SHA-256 (RFC 8332). Recommended RSA variant.
Definition sfFTPLib.idl:2278
@ ftpSSHPublicKeyAlgox509v3ECDSA384
ECDSA P-384 key wrapped in an X.509 certificate.
Definition sfFTPLib.idl:2334
@ ftpSSHPublicKeyAlgoMlDsa65
NIST Post-Quantum standard. Increased security strength (Category 3).
Definition sfFTPLib.idl:2316
@ ftpSSHPublicKeyAlgoECDSA256CertOpenSSH
OpenSSH Certificate using ECDSA P-256 key.
Definition sfFTPLib.idl:2368
@ ftpSSHPublicKeyAlgoEd25519CertOpenSSH
OpenSSH Certificate using Ed25519 key. Modern, high-speed standard.
Definition sfFTPLib.idl:2356
@ ftpSSHPublicKeyAlgoRSACertOpenSSH
Legacy OpenSSH Certificate using RSA key (SHA-1). Deprecated.
Definition sfFTPLib.idl:2360
@ ftpSSHPublicKeyAlgoDSACertOpenSSH
Legacy OpenSSH Certificate using DSA key. Deprecated.
Definition sfFTPLib.idl:2364
@ ftpSSHPublicKeyAlgoECDSA384CertOpenSSH
OpenSSH Certificate using ECDSA P-384 key.
Definition sfFTPLib.idl:2372
@ ftpSSHPublicKeyAlgoECDSA256
NIST P-256 Curve. Standard balance of speed and security.
Definition sfFTPLib.idl:2288
@ ftpSSHPublicKeyAlgoECDSA521
NIST P-521 Curve. Maximum security strength among standard NIST curves.
Definition sfFTPLib.idl:2296
@ ftpSSHPublicKeyAlgoUnknown
Definition sfFTPLib.idl:2267
@ ftpSSHPublicKeyAlgoRSASHA2512CertOpenSSH
OpenSSH Certificate using RSA key with SHA-512 signature.
Definition sfFTPLib.idl:2352
@ ftpSSHPublicKeyAlgoECDSA521CertOpenSSH
OpenSSH Certificate using ECDSA P-521 key.
Definition sfFTPLib.idl:2376
@ ftpSSHPublicKeyAlgox509v3ECDSA256
ECDSA P-256 key wrapped in an X.509 certificate.
Definition sfFTPLib.idl:2330
@ ftpSSHPublicKeyAlgoDSA
Digital Signature Algorithm.
Definition sfFTPLib.idl:2383
@ ftpSSHPublicKeyAlgoMlDsa87
NIST Post-Quantum standard. Maximum security strength (Category 5).
Definition sfFTPLib.idl:2320
@ ftpSSHPublicKeyAlgoECDSA384
NIST P-384 Curve. Increased security strength over P-256.
Definition sfFTPLib.idl:2292
@ ftpSSHPublicKeyAlgoRSASHA2512
RSA with SHA-512 (RFC 8332). Strongest RSA variant.
Definition sfFTPLib.idl:2282
@ ftpSSHPublicKeyAlgox509v3RSA
RSA key wrapped in an X.509 certificate.
Definition sfFTPLib.idl:2326
@ ftpSSHPublicKeyAlgoMlDsa44
NIST Post-Quantum standard (Module-Lattice-Based Digital Signature). Designed to be secure against fu...
Definition sfFTPLib.idl:2312
@ ftpSSHPublicKeyAlgoRSASHA2256CertOpenSSH
OpenSSH Certificate using RSA key with SHA-256 signature.
Definition sfFTPLib.idl:2348
@ ftpSSHPublicKeyAlgoEd25519
Edwards-curve Digital Signature Algorithm (Curve25519). Highly recommended: Immune to many side-chann...
Definition sfFTPLib.idl:2301
@ ftpSSHPublicKeyAlgox509v3ECDSA521
ECDSA P-521 key wrapped in an X.509 certificate.
Definition sfFTPLib.idl:2338
@ ftpSSHPublicKeyAlgoEd448
Ed448 (Goldilocks curve). Higher security level than Ed25519.
Definition sfFTPLib.idl:2305
@ ftpSSHPublicKeyAlgoRSA
RSA with SHA-1.
Definition sfFTPLib.idl:2274
ServerType
Identifies the operating system or server software type of the remote host.
Definition sfFTPLib.idl:483
@ ftpServerTypeICS
Definition sfFTPLib.idl:610
@ ftpServerTypeMVS
IBM MVS (Multiple Virtual Storage) / z/OS.
Definition sfFTPLib.idl:543
@ ftpServerTypepSOSystem
pSOSystem (Real-time OS).
Definition sfFTPLib.idl:580
@ ftpServerTypeMD11
McDonnell Douglas MD-11 Avionics system.
Definition sfFTPLib.idl:574
@ ftpServerTypeNetware
Novell NetWare.
Definition sfFTPLib.idl:587
@ ftpServerTypeSecurePortal2000
Definition sfFTPLib.idl:619
@ ftpServerTypeMudOS
Multi-User Dungeon Object System (LPMud).
Definition sfFTPLib.idl:625
@ ftpServerTypeUnknown
The system type could not be determined or is not supported.
Definition sfFTPLib.idl:488
@ ftpServerTypeBS2000
Definition sfFTPLib.idl:595
@ ftpServerTypeGrassValley
Definition sfFTPLib.idl:613
@ ftpServerTypeAS400
IBM AS/400 (iSeries / OS/400).
Definition sfFTPLib.idl:550
@ ftpServerTypeGXSEnterprise
Definition sfFTPLib.idl:607
@ ftpServerTypeUnix
Standard Unix-like system (Linux, BSD, AIX, Solaris).
Definition sfFTPLib.idl:498
@ ftpServerTypeNT
Microsoft Windows NT/2000/XP/Server.
Definition sfFTPLib.idl:524
@ ftpServerTypeGXSInformationExchangeFTPGateway
Definition sfFTPLib.idl:616
@ ftpServerTypeMacOS
Legacy Classic Mac OS (pre-OS X).
Definition sfFTPLib.idl:536
@ ftpServerTypePeterLewis
Peter Lewis (Stairways Software) FTP Server.
Definition sfFTPLib.idl:505
@ ftpServerTypeVMS
OpenVMS (Virtual Memory System).
Definition sfFTPLib.idl:514
@ ftpServerTypeTNTEmbeddedToolSuite
Definition sfFTPLib.idl:592
@ ftpServerTypeOS2
IBM OS/2.
Definition sfFTPLib.idl:556
@ ftpServerTypeVxWorks
Definition sfFTPLib.idl:601
@ ftpServerTypeVM
Definition sfFTPLib.idl:598
@ ftpServerTypeWindowsCE
Definition sfFTPLib.idl:604
@ ftpServerTypeTandem
HP NonStop (Tandem).
Definition sfFTPLib.idl:562
@ ftpServerTypeVOS
Stratus VOS (Virtual Operating System).
Definition sfFTPLib.idl:568
@ ftpServerTypeAmiga
Commodore Amiga OS.
Definition sfFTPLib.idl:530
DataTransferMode
Defines the transmission mode for the data connection.
Definition sfFTPLib.idl:250
@ ftpDataTransferModeUnknown
The transfer mode is unknown or not yet negotiated.
Definition sfFTPLib.idl:255
@ ftpDataTransferModeZ
Compressed Mode (MODE Z).
Definition sfFTPLib.idl:286
@ ftpDataTransferModeStream
Standard Stream Mode (MODE S).
Definition sfFTPLib.idl:269
OperatingSystem
Definition sfFTPLib.idl:682
@ ftpOperatingSystemVMS
The server is running OpenVMS.
Definition sfFTPLib.idl:710
@ ftpOperatingSystemUnknown
The operating system is unknown.
Definition sfFTPLib.idl:690
@ ftpOperatingSystemUnix
The server is running a Unix-like OS (Linux, BSD, macOS, Solaris).
Definition sfFTPLib.idl:700
@ ftpOperatingSystemWindows
The server is running a Windows-based operating system.
Definition sfFTPLib.idl:695
ItemType
Categorizes the type of a filesystem object (file, directory, link, etc.).
Definition sfFTPLib.idl:1479
@ ftpItemTypeCharacterDevice
A Character Device.
Definition sfFTPLib.idl:1527
@ ftpItemTypeSpecial
A special system file not covered by other categories.
Definition sfFTPLib.idl:1504
@ ftpItemTypeUnknown
The type could not be determined.
Definition sfFTPLib.idl:1512
@ ftpItemTypeFIFO
A FIFO (First In, First Out) named pipe.
Definition sfFTPLib.idl:1519
@ ftpItemTypeSymbolicLink
A symbolic link (symlink).
Definition sfFTPLib.idl:1498
@ ftpItemTypeSocket
A Unix Domain Socket.
Definition sfFTPLib.idl:1542
@ ftpItemTypeRegularFile
A standard data file.
Definition sfFTPLib.idl:1485
@ ftpItemTypeBlockDevice
A Block Device.
Definition sfFTPLib.idl:1535
@ ftpItemTypeDirectory
A directory (folder) containing other items.
Definition sfFTPLib.idl:1491
KeyAlgo
Definition sfFTPLib.idl:2130
@ ftpKeyAlgoEd448
Ed448 (Edwards-curve Digital Signature Algorithm).
Definition sfFTPLib.idl:2212
@ ftpKeyAlgoRSA
RSA (Rivest–Shamir–Adleman).
Definition sfFTPLib.idl:2146
@ ftpKeyAlgoECDSAP521
ECDSA with NIST P-521 Curve.
Definition sfFTPLib.idl:2194
@ ftpKeyAlgoMlDsa87
ML-DSA-87 (Module-Lattice-Based Digital Signature Standard).
Definition sfFTPLib.idl:2254
@ ftpKeyAlgoEd25519
Ed25519 (Edwards-curve Digital Signature Algorithm).
Definition sfFTPLib.idl:2203
@ ftpKeyAlgoECDSAP256
ECDSA with NIST P-256 Curve.
Definition sfFTPLib.idl:2172
@ ftpKeyAlgoDSA
DSA (Digital Signature Algorithm).
Definition sfFTPLib.idl:2159
@ ftpKeyAlgoMlDsa44
ML-DSA-44 (Module-Lattice-Based Digital Signature Standard).
Definition sfFTPLib.idl:2226
@ ftpKeyAlgoECDSAP384
ECDSA with NIST P-384 Curve.
Definition sfFTPLib.idl:2183
@ ftpKeyAlgoUnknown
Unknown or uninitialized algorithm.
Definition sfFTPLib.idl:2135
@ ftpKeyAlgoMlDsa65
ML-DSA-65 (Module-Lattice-Based Digital Signature Standard).
Definition sfFTPLib.idl:2240
SFTPConnectionStatus
Definition sfFTPLib.idl:798
@ ftpSFTPConnectionStatusInit
The SFTP subsystem is initializing.
Definition sfFTPLib.idl:814
@ ftpSFTPConnectionStatusClosing
The SFTP subsystem is shutting down.
Definition sfFTPLib.idl:825
@ ftpSFTPConnectionStatusUnknown
The SFTP subsystem is not active or is in an indeterminate state.
Definition sfFTPLib.idl:803
FTPItemAttribute
Definition sfFTPLib.idl:3030
@ ftpFTPItemAttributeAccessTime
Definition sfFTPLib.idl:3033
@ ftpFTPItemAttributeCreateTime
Definition sfFTPLib.idl:3034
@ ftpFTPItemAttributeSubSecondTimes
Definition sfFTPLib.idl:3037
@ ftpFTPItemAttributeSize
Definition sfFTPLib.idl:3031
@ ftpFTPItemAttributeUntranslatedName
Definition sfFTPLib.idl:3043
@ ftpFTPItemAttributeTextHint
Definition sfFTPLib.idl:3040
@ ftpFTPItemAttributeBits
Definition sfFTPLib.idl:3038
@ ftpFTPItemAttributeOwner
Definition sfFTPLib.idl:3046
@ ftpFTPItemAttributePermissions
Definition sfFTPLib.idl:3032
@ ftpFTPItemAttributeUnixPermissions
Definition sfFTPLib.idl:3047
@ ftpFTPItemAttributeLinkCount
Definition sfFTPLib.idl:3042
@ ftpFTPItemAttributeWindowsAttributes
Definition sfFTPLib.idl:3048
@ ftpFTPItemAttributeExtended
Definition sfFTPLib.idl:3045
@ ftpFTPItemAttributeCTime
Definition sfFTPLib.idl:3044
@ ftpFTPItemAttributeAllocationSize
Definition sfFTPLib.idl:3039
@ ftpFTPItemAttributeModifyTime
Definition sfFTPLib.idl:3035
@ ftpFTPItemAttributeGroup
Definition sfFTPLib.idl:3049
@ ftpFTPItemAttributeMimeType
Definition sfFTPLib.idl:3041
@ ftpFTPItemAttributeACL
Definition sfFTPLib.idl:3036
ServerSoftware
server software running on the remote server
Definition sfFTPLib.idl:634
@ ftpServerSoftwareWebMethods
Definition sfFTPLib.idl:674
@ ftpServerSoftwareSurgeFTP
Definition sfFTPLib.idl:648
@ ftpServerSoftwareMOVEit
Definition sfFTPLib.idl:656
@ ftpServerSoftwareMultiNet
Definition sfFTPLib.idl:676
@ ftpServerSoftwareWFTPD
Definition sfFTPLib.idl:651
@ ftpServerSoftwarePureFTPd
Definition sfFTPLib.idl:640
@ ftpServerSoftwareConnectEnterprise
Definition sfFTPLib.idl:659
@ ftpServerSoftwareMacOSX
Definition sfFTPLib.idl:665
@ ftpServerSoftwareJustCloud
Definition sfFTPLib.idl:675
@ ftpServerSoftwareFastream
Definition sfFTPLib.idl:658
@ ftpServerSoftwareMeditech
Definition sfFTPLib.idl:672
@ ftpServerSoftwareProFTPD
Definition sfFTPLib.idl:663
@ ftpServerSoftwareCerberusFTPServer
Definition sfFTPLib.idl:667
@ ftpServerSoftwareNcFTPd
Definition sfFTPLib.idl:647
@ ftpServerSoftwareGSFTPS
Definition sfFTPLib.idl:638
@ ftpServerSoftwareRaidenFTPd
Definition sfFTPLib.idl:636
@ ftpServerSoftwareTitan
Definition sfFTPLib.idl:642
@ ftpServerSoftwarezOS
Definition sfFTPLib.idl:668
@ ftpServerSoftwareGuildFTPd
Definition sfFTPLib.idl:641
@ ftpServerSoftwareServU
Definition sfFTPLib.idl:637
@ ftpServerSoftwareSnapOS
Definition sfFTPLib.idl:664
@ ftpServerSoftwareWarFTPd
Definition sfFTPLib.idl:650
@ ftpServerSoftwareiNEWS
Definition sfFTPLib.idl:657
@ ftpServerSoftwareShareIt
Definition sfFTPLib.idl:652
@ ftpServerSoftwareDrFTPd
Definition sfFTPLib.idl:644
@ ftpServerSoftwareFileZilla
Definition sfFTPLib.idl:662
@ ftpServerSoftwareOrenosv
Definition sfFTPLib.idl:643
@ ftpServerSoftwareNoFeel
Definition sfFTPLib.idl:655
@ ftpServerSoftwareTransCore
Definition sfFTPLib.idl:677
@ ftpServerSoftwareHumaxiCord
Definition sfFTPLib.idl:669
@ ftpServerSoftwareglftpd
Definition sfFTPLib.idl:646
@ ftpServerSoftwarePs3
Definition sfFTPLib.idl:671
@ ftpServerSoftwareWSFTP
Definition sfFTPLib.idl:639
@ ftpServerSoftwarecuftpd
Definition sfFTPLib.idl:666
@ ftpServerSoftwareMicrosoftFTP
Definition sfFTPLib.idl:660
@ ftpServerSoftwareOracleXMLDB
Definition sfFTPLib.idl:661
@ ftpServerSoftwareCleoVLTrader
Definition sfFTPLib.idl:673
@ ftpServerSoftwareUnknown
Definition sfFTPLib.idl:635
@ ftpServerSoftwareTopfieldPVR
Definition sfFTPLib.idl:678
@ ftpServerSoftwareGene6
Definition sfFTPLib.idl:653
@ ftpServerSoftwareMtcp
Definition sfFTPLib.idl:670
@ ftpServerSoftwaremoftpd
Definition sfFTPLib.idl:645
@ ftpServerSoftwareBlackmoon
Definition sfFTPLib.idl:649
SSHServerSoftware
Definition sfFTPLib.idl:5595
@ ftpSSHServerSoftwareSun
Definition sfFTPLib.idl:5612
@ ftpSSHServerSoftwareGSFTPS
Definition sfFTPLib.idl:5601
@ ftpSSHServerSoftwareVShell
Definition sfFTPLib.idl:5597
@ ftpSSHServerSoftwareUnknown
Definition sfFTPLib.idl:5596
@ ftpSSHServerSoftwareOpenSSH
Definition sfFTPLib.idl:5599
@ ftpSSHServerSoftwareMaverick
Definition sfFTPLib.idl:5620
@ ftpSSHServerSoftwareSecureTransport
Definition sfFTPLib.idl:5621
@ ftpSSHServerSoftwareJSCAPE
Definition sfFTPLib.idl:5607
@ ftpSSHServerSoftwareReflectionForSecureIT
Definition sfFTPLib.idl:5615
@ ftpSSHServerSoftwareSSHcomOld
Definition sfFTPLib.idl:5611
@ ftpSSHServerSoftwareFSecure
Definition sfFTPLib.idl:5610
@ ftpSSHServerSoftwareCoreFTP
Definition sfFTPLib.idl:5608
@ ftpSSHServerSoftwareProFTPD
Definition sfFTPLib.idl:5618
@ ftpSSHServerSoftwareSSHTools
Definition sfFTPLib.idl:5616
@ ftpSSHServerSoftwareOpenVMS
Definition sfFTPLib.idl:5609
@ ftpSSHServerSoftwareFTPShell
Definition sfFTPLib.idl:5604
@ ftpSSHServerSoftwareSSHTectia
Definition sfFTPLib.idl:5598
@ ftpSSHServerSoftwarezFTPServer
Definition sfFTPLib.idl:5619
@ ftpSSHServerSoftwaredropbear
Definition sfFTPLib.idl:5614
@ ftpSSHServerSoftwareXlight
Definition sfFTPLib.idl:5622
@ ftpSSHServerSoftwareWinSSHD
Definition sfFTPLib.idl:5602
@ ftpSSHServerSoftwareTitan
Definition sfFTPLib.idl:5600
@ ftpSSHServerSoftwareWSFTP
Definition sfFTPLib.idl:5603
@ ftpSSHServerSoftwareGXSSSHD
Definition sfFTPLib.idl:5617
@ ftpSSHServerSoftwarePragmaFortressSSH
Definition sfFTPLib.idl:5606
@ ftpSSHServerSoftwareWeOnlyDo
Definition sfFTPLib.idl:5605
@ ftpSSHServerSoftwareServU
Definition sfFTPLib.idl:5613
HashAlgo
Definition sfFTPLib.idl:838
@ ftpHashAlgoCRC32
CRC32. Length: 32 bit.
Definition sfFTPLib.idl:840
@ ftpHashAlgoMicrosoftQuickXorHash
Microsoft QuickXorHash Reference: Code Snippets: QuickXorHash Algorithm.
Definition sfFTPLib.idl:846
@ ftpHashAlgoSHA384
SHA384.
Definition sfFTPLib.idl:844
@ ftpHashAlgoSHA512
SHA512.
Definition sfFTPLib.idl:845
@ ftpHashAlgoUnknown
Definition sfFTPLib.idl:839
@ ftpHashAlgoMD5
MD5. Length: 128 bit. Reference: RFC 1321.
Definition sfFTPLib.idl:841
@ ftpHashAlgoSHA1
SHA1. Length: 168 bit. Reference: RFC 3174.
Definition sfFTPLib.idl:842
@ ftpHashAlgoSHA256
SHA256.
Definition sfFTPLib.idl:843
ConnectionStatus
Definition sfFTPLib.idl:780
@ ftpConnectionStatusUnknown
Definition sfFTPLib.idl:782
@ ftpConnectionStatusConnecting
Connect() is in progress.
Definition sfFTPLib.idl:785
@ ftpConnectionStatusConnected
Connected.
Definition sfFTPLib.idl:788
@ ftpConnectionStatusDisconnected
Not connected.
Definition sfFTPLib.idl:794
@ ftpConnectionStatusDisconnecting
Disconnect() is in progress.
Definition sfFTPLib.idl:791
CertificateType
Definition sfFTPLib.idl:2387
@ CertificateTypeUnknown
Definition sfFTPLib.idl:2389
@ CertificateTypex509
Standard X.509 Public Key Infrastructure (PKI) certificate.
Definition sfFTPLib.idl:2400
@ CertificateTypeOpenSSH
OpenSSH proprietary certificate format.
Definition sfFTPLib.idl:2417
ServerCapability
Definition sfFTPLib.idl:338
@ ftpServerCapabilityCopyFile
Definition sfFTPLib.idl:355
@ ftpServerCapabilitySetUnixPermissions
Definition sfFTPLib.idl:367
@ ftpServerCapabilityGetFileSize
Definition sfFTPLib.idl:340
@ ftpServerCapabilityGetMLST
Definition sfFTPLib.idl:364
@ ftpServerCapabilitySetCreateTime
Definition sfFTPLib.idl:352
@ ftpServerCapabilitySetModifyTime
Definition sfFTPLib.idl:349
@ ftpServerCapabilityStat
Definition sfFTPLib.idl:361
@ ftpServerCapabilityMachineReadableList
Definition sfFTPLib.idl:382
@ ftpServerCapabilityRange
Definition sfFTPLib.idl:379
@ ftpServerCapabilityRestart
Definition sfFTPLib.idl:370
@ ftpServerCapabilityUTF8
Definition sfFTPLib.idl:373
@ ftpServerCapabilityFXPFile
Definition sfFTPLib.idl:358
@ ftpServerCapabilityCompression
Definition sfFTPLib.idl:376
@ ftpServerCapabilityGetCreateTime
Definition sfFTPLib.idl:346
@ ftpServerCapabilityGetModifyTime
Definition sfFTPLib.idl:343
CaseSensitivity
Defines how the server handles capitalization in filenames.
Definition sfFTPLib.idl:407
@ ftpCaseSensitivityNo
The server is case-insensitive (e.g., Windows/DOS).
Definition sfFTPLib.idl:438
@ ftpCaseSensitivityUnknown
The case sensitivity of the server is unknown.
Definition sfFTPLib.idl:414
@ ftpCaseSensitivityYes
The server is case-sensitive (e.g., Unix/Linux).
Definition sfFTPLib.idl:426
KeyType
Definition sfFTPLib.idl:2112
@ ftpKeyTypeUnknown
Definition sfFTPLib.idl:2114
@ ftpKeyTypePrivateKey
Public Key.
Definition sfFTPLib.idl:2126
@ ftpKeyTypePublicKey
Private Key.
Definition sfFTPLib.idl:2120
ProtocolFamily
Definition sfFTPLib.idl:317
@ ftpProtocolFamilyUNSPEC
The protocol family is unspecified (Default).
Definition sfFTPLib.idl:322
@ ftpProtocolFamilyINET4
Internet Protocol version 4 (IPv4).
Definition sfFTPLib.idl:328
@ ftpProtocolFamilyINET6
Internet Protocol version 6 (IPv6).
Definition sfFTPLib.idl:334
SFTPStatus
Definition sfFTPLib.idl:5626
@ ftpSFTPStatusNoSpaceOnFilesystem
No Space on Filesystem.
Definition sfFTPLib.idl:5816
@ ftpSFTPStatusLinkLoop
Link Loop.
Definition sfFTPLib.idl:5746
@ ftpSFTPStatusInvalidHandle
Invalid Handle.
Definition sfFTPLib.idl:5790
@ ftpSFTPStatusFileAlreadyExists
File Already Exists.
Definition sfFTPLib.idl:5712
@ ftpSFTPStatusPermissionDenied
Permission Denied.
Definition sfFTPLib.idl:5756
@ ftpSFTPStatusUnknownPrincipal
Unknown Principal.
Definition sfFTPLib.idl:5834
@ ftpSFTPStatusFailure
Generic Failure.
Definition sfFTPLib.idl:5652
@ ftpSFTPStatusFileCorrupt
File Corrupt.
Definition sfFTPLib.idl:5874
@ ftpSFTPStatusCannotDelete
Cannot Delete.
Definition sfFTPLib.idl:5772
@ ftpSFTPStatusOk
Success.
Definition sfFTPLib.idl:5634
@ ftpSFTPStatusEOF
End of File.
Definition sfFTPLib.idl:5643
@ ftpSFTPStatusNoMedia
No Media.
Definition sfFTPLib.idl:5808
@ ftpSFTPStatusByteRangeLockRefused
Byte Range Lock Refused.
Definition sfFTPLib.idl:5858
@ ftpSFTPStatusConnectionLost
Connection Lost.
Definition sfFTPLib.idl:5684
@ ftpSFTPStatusLocalConflict
Local Conflict.
Definition sfFTPLib.idl:5842
@ ftpSFTPStatusBadMessage
Bad Message.
Definition sfFTPLib.idl:5660
@ ftpSFTPStatusQuotaExceeded
Quota Exceeded.
Definition sfFTPLib.idl:5824
@ ftpSFTPStatusDirNotEmpty
Directory Not Empty.
Definition sfFTPLib.idl:5780
@ ftpSFTPStatusNoSuchPath
No Such Path (SFTP v4+).
Definition sfFTPLib.idl:5703
@ ftpSFTPStatusNoConnection
No Connection.
Definition sfFTPLib.idl:5677
@ ftpSFTPStatusNotADirectory
Not a Directory.
Definition sfFTPLib.idl:5721
@ ftpSFTPStatusNoSuchFile
No Such File.
Definition sfFTPLib.idl:5694
@ ftpSFTPStatusNoMatchingByteRangeLock
No Matching Byte Range Lock.
Definition sfFTPLib.idl:5898
@ ftpSFTPStatusDeletePending
Delete Pending.
Definition sfFTPLib.idl:5866
@ ftpSFTPStatusFileIsADirectory
File Is a Directory.
Definition sfFTPLib.idl:5730
@ ftpSFTPStatusInvalidParameter
Invalid Parameter.
Definition sfFTPLib.idl:5798
@ ftpSFTPStatusWriteProtect
Write Protect.
Definition sfFTPLib.idl:5764
@ ftpSFTPStatusInvalidFilename
Invalid Filename.
Definition sfFTPLib.idl:5738
@ ftpSFTPStatusOwnerInvalid
Owner Invalid.
Definition sfFTPLib.idl:5882
@ ftpSFTPStatusOpUnsupported
Operation Unsupported.
Definition sfFTPLib.idl:5668
@ ftpSFTPStatusByteRangeLockConflict
Byte Range Lock Conflict.
Definition sfFTPLib.idl:5850
@ ftpSFTPStatusGroupdInvalid
Group Invalid.
Definition sfFTPLib.idl:5890
ServerCapabilityState
Definition sfFTPLib.idl:386
@ ftpServerCapabilityStateUnavailable
Definition sfFTPLib.idl:388
@ ftpServerCapabilityStateAvailable
Definition sfFTPLib.idl:391
@ ftpServerCapabilityStateUnknown
Definition sfFTPLib.idl:394
KeyFileFormat
Definition sfFTPLib.idl:8333
@ ftpKeyFileFormatOpenSSL
Support: Load Private (Yes), Load Public (N/A), Save Private (No), Save Public (N/A).
Definition sfFTPLib.idl:8339
@ ftpKeyFileFormatOpenSSH
Support: Load Private (N/A), Load Public (Yes), Save Private (N/A), Save Public (Yes).
Definition sfFTPLib.idl:8341
@ ftpKeyFileFormatUnknown
Definition sfFTPLib.idl:8334
@ ftpKeyFileFormatPKCS8
Support: Load Private (Yes), Load Public (N/A), Save Private (No), Save Public (N/A).
Definition sfFTPLib.idl:8335
@ ftpKeyFileFormatVanDyke
Support: Load Private (Yes), Load Public (N/A), Save Private (No), Save Public (N/A).
Definition sfFTPLib.idl:8337
@ ftpKeyFileFormatSSH
Support: Load Private (Yes), Load Public (Yes), Save Private (Yes), Save Public (Yes).
Definition sfFTPLib.idl:8338
@ ftpKeyFileFormatPKCS12
Support: Load Private (Yes), Load Public (N/A), Save Private (Yes), Save Public (N/A).
Definition sfFTPLib.idl:8336
@ ftpKeyFileFormatPutty
Support: Load Private (Yes), Load Public (N/A), Save Private (No), Save Public (N/A).
Definition sfFTPLib.idl:8340
DataTransferType
Defines the format used for data transfer.
Definition sfFTPLib.idl:198
@ ftpDataTransferTypeUnknown
Definition sfFTPLib.idl:200
@ ftpDataTransferTypeImage
Data transfer type is Image (Binary).
Definition sfFTPLib.idl:224
@ ftpDataTransferTypeASCII
Data transfer type is ASCII (Text).
Definition sfFTPLib.idl:213
@ ftpDataTransferTypeEBCDIC
Data transfer type is EBCDIC.
Definition sfFTPLib.idl:235
PortMode
Specifies how the client determines the IP address sent in the PORT command (Active Mode).
Definition sfFTPLib.idl:130
@ ftpPortModeManual
Use the custom IP address defined in the IFTPConnection::PortIP property.
Definition sfFTPLib.idl:149
@ ftpPortModeDefault
Use the local machine's IP address.
Definition sfFTPLib.idl:139
HMAC
Defines the Message Authentication Code (HMAC) algorithms available for data integrity.
Definition sfFTPLib.idl:1136
@ ftpHMACNone
Null MAC (No integrity).
Definition sfFTPLib.idl:1152
@ ftpHMACSHA2512Etm
HMAC-SHA2-512 EtM.
Definition sfFTPLib.idl:1180
@ ftpHMACSHA2256Etm
HMAC-SHA2-256 EtM.
Definition sfFTPLib.idl:1173
@ ftpHMACUnknown
Definition sfFTPLib.idl:1138
@ ftpHMACSHA2256
HMAC-SHA2-256.
Definition sfFTPLib.idl:1159
@ ftpHMACSHA1
HMAC-SHA1 (160-bit).
Definition sfFTPLib.idl:1145
@ ftpHMACSHA2512
HMAC-SHA2-512.
Definition sfFTPLib.idl:1166
Encryption
Defines the symmetric encryption algorithms available for the SSH tunnel.
Definition sfFTPLib.idl:1006
@ ftpEncryption3DES
Triple-DES (3DES).
Definition sfFTPLib.idl:1025
@ ftpEncryptionAES128CBC
AES in Cipher Block Chaining (CBC) mode (128-bit).
Definition sfFTPLib.idl:1035
@ ftpEncryptionAES192CTR
AES in Counter (CTR) mode (192-bit).
Definition sfFTPLib.idl:1069
@ ftpEncryptionAES256CBC
AES in Cipher Block Chaining (CBC) mode (256-bit).
Definition sfFTPLib.idl:1049
@ ftpEncryptionUnknown
Unknown or invalid algorithm.
Definition sfFTPLib.idl:1011
@ ftpEncryptionAES192CBC
AES in Cipher Block Chaining (CBC) mode (192-bit).
Definition sfFTPLib.idl:1042
@ ftpEncryptionAES256GCM
AES in Galois/Counter Mode (GCM) (256-bit).
Definition sfFTPLib.idl:1099
@ ftpEncryptionAES256CTR
AES in Counter (CTR) mode (256-bit).
Definition sfFTPLib.idl:1075
@ ftpEncryptionAES128GCM
AES in Galois/Counter Mode (GCM) (128-bit).
Definition sfFTPLib.idl:1089
@ ftpEncryptionAES128CTR
AES in Counter (CTR) mode (128-bit).
Definition sfFTPLib.idl:1063
StatusEventType
Definition sfFTPLib.idl:765
@ ftpStatusEventTypeLocalInfo
Local Info.
Definition sfFTPLib.idl:770
@ ftpStatusEventTypeLocalError
Local Error.
Definition sfFTPLib.idl:773
@ ftpStatusEventTypeLocalCommand
Local Command.
Definition sfFTPLib.idl:767
@ ftpStatusEventTypeRemote
Remote/Server reply.
Definition sfFTPLib.idl:776
SSHCompression
Identifies the compression algorithms available for the SSH connection.
Definition sfFTPLib.idl:1190
@ ftpSSHCompressionUnknown
Definition sfFTPLib.idl:1192
@ ftpSSHCompressionNone
No compression ("none").
Definition sfFTPLib.idl:1198
@ ftpSSHCompressionzlibopenssh
Delayed zlib compression ("zlib@openssh.com").
Definition sfFTPLib.idl:1211
KeyExchange
Identifies the Key Exchange (KEX) algorithms supported by the SSH client.
Definition sfFTPLib.idl:873
@ ftpKeyExchangeDiffieHellmanGroup16SHA512
Diffie-Hellman Group 16 (4096-bit) with SHA-512.
Definition sfFTPLib.idl:933
@ ftpKeyExchangeCurve25519
Curve25519 (X25519) with SHA-256.
Definition sfFTPLib.idl:972
@ ftpKeyExchangeDiffieHellmanGroupExchangeSHA1
Diffie-Hellman Group Exchange with SHA-1.
Definition sfFTPLib.idl:899
@ ftpKeyExchangeECDH256
Elliptic Curve Diffie-Hellman (NIST P-256).
Definition sfFTPLib.idl:943
@ ftpKeyExchangeCurve25519libssh
Legacy libssh-specific Curve25519 identifier.
Definition sfFTPLib.idl:982
@ ftpKeyExchangeECDH384
Elliptic Curve Diffie-Hellman (NIST P-384).
Definition sfFTPLib.idl:952
@ ftpKeyExchangeDiffieHellmanGroup14SHA256
Diffie-Hellman Group 14 (2048-bit) with SHA-256.
Definition sfFTPLib.idl:921
@ ftpKeyExchangeDiffieHellmanGroup14SHA1
Diffie-Hellman Group 14 (2048-bit) with SHA-1.
Definition sfFTPLib.idl:887
@ ftpKeyExchangeECDH521
Elliptic Curve Diffie-Hellman (NIST P-521).
Definition sfFTPLib.idl:961
@ ftpKeyExchangeUnknown
Definition sfFTPLib.idl:875
@ ftpKeyExchangeMlKem768x25519
Hybrid Post-Quantum Key Exchange (ML-KEM-768 + X25519).
Definition sfFTPLib.idl:994
@ ftpKeyExchangeDiffieHellmanGroupExchangeSHA256
Diffie-Hellman Group Exchange with SHA-256.
Definition sfFTPLib.idl:910
ProxyType
Definition sfFTPLib.idl:71
@ ftpProxyTypeHTTP
HTTP Tunneling (CONNECT method).
Definition sfFTPLib.idl:110
@ ftpProxyTypeSOCKS4
SOCKS4 Proxy.
Definition sfFTPLib.idl:93
@ ftpProxyTypeSOCKS5
SOCKS5 Proxy (RFC 1928).
Definition sfFTPLib.idl:85
@ ftpProxyTypeSOCKS4A
SOCKS4A Proxy (SOCKS4 + Domain Names).
Definition sfFTPLib.idl:101
@ ftpProxyTypeNone
Direct connection (No Proxy).
Definition sfFTPLib.idl:77