wfxplugin.h 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282
  1. #include "common.h"
  2. // contents of fsplugin.h version 2.1 (27.April.2010)
  3. // ids for FsGetFile
  4. #define FS_FILE_OK 0
  5. #define FS_FILE_EXISTS 1
  6. #define FS_FILE_NOTFOUND 2
  7. #define FS_FILE_READERROR 3
  8. #define FS_FILE_WRITEERROR 4
  9. #define FS_FILE_USERABORT 5
  10. #define FS_FILE_NOTSUPPORTED 6
  11. #define FS_FILE_EXISTSRESUMEALLOWED 7
  12. #define FS_EXEC_OK 0
  13. #define FS_EXEC_ERROR 1
  14. #define FS_EXEC_YOURSELF -1
  15. #define FS_EXEC_SYMLINK -2
  16. #define FS_COPYFLAGS_OVERWRITE 1
  17. #define FS_COPYFLAGS_RESUME 2
  18. #define FS_COPYFLAGS_MOVE 4
  19. #define FS_COPYFLAGS_EXISTS_SAMECASE 8
  20. #define FS_COPYFLAGS_EXISTS_DIFFERENTCASE 16
  21. // flags for tRequestProc
  22. #define RT_Other 0
  23. #define RT_UserName 1
  24. #define RT_Password 2
  25. #define RT_Account 3
  26. #define RT_UserNameFirewall 4
  27. #define RT_PasswordFirewall 5
  28. #define RT_TargetDir 6
  29. #define RT_URL 7
  30. #define RT_MsgOK 8
  31. #define RT_MsgYesNo 9
  32. #define RT_MsgOKCancel 10
  33. // flags for tLogProc
  34. #define MSGTYPE_CONNECT 1
  35. #define MSGTYPE_DISCONNECT 2
  36. #define MSGTYPE_DETAILS 3
  37. #define MSGTYPE_TRANSFERCOMPLETE 4
  38. #define MSGTYPE_CONNECTCOMPLETE 5
  39. #define MSGTYPE_IMPORTANTERROR 6
  40. #define MSGTYPE_OPERATIONCOMPLETE 7
  41. // flags for FsStatusInfo
  42. #define FS_STATUS_START 0
  43. #define FS_STATUS_END 1
  44. #define FS_STATUS_OP_LIST 1
  45. #define FS_STATUS_OP_GET_SINGLE 2
  46. #define FS_STATUS_OP_GET_MULTI 3
  47. #define FS_STATUS_OP_PUT_SINGLE 4
  48. #define FS_STATUS_OP_PUT_MULTI 5
  49. #define FS_STATUS_OP_RENMOV_SINGLE 6
  50. #define FS_STATUS_OP_RENMOV_MULTI 7
  51. #define FS_STATUS_OP_DELETE 8
  52. #define FS_STATUS_OP_ATTRIB 9
  53. #define FS_STATUS_OP_MKDIR 10
  54. #define FS_STATUS_OP_EXEC 11
  55. #define FS_STATUS_OP_CALCSIZE 12
  56. #define FS_STATUS_OP_SEARCH 13
  57. #define FS_STATUS_OP_SEARCH_TEXT 14
  58. #define FS_STATUS_OP_SYNC_SEARCH 15
  59. #define FS_STATUS_OP_SYNC_GET 16
  60. #define FS_STATUS_OP_SYNC_PUT 17
  61. #define FS_STATUS_OP_SYNC_DELETE 18
  62. #define FS_STATUS_OP_GET_MULTI_THREAD 19
  63. #define FS_STATUS_OP_PUT_MULTI_THREAD 20
  64. #define FS_ICONFLAG_SMALL 1
  65. #define FS_ICONFLAG_BACKGROUND 2
  66. #define FS_ICON_USEDEFAULT 0
  67. #define FS_ICON_EXTRACTED 1
  68. #define FS_ICON_EXTRACTED_DESTROY 2
  69. #define FS_ICON_DELAYED 3
  70. #define FS_BITMAP_NONE 0
  71. #define FS_BITMAP_EXTRACTED 1
  72. #define FS_BITMAP_EXTRACT_YOURSELF 2
  73. #define FS_BITMAP_EXTRACT_YOURSELF_ANDDELETE 3
  74. #define FS_BITMAP_CACHE 256
  75. #define FS_CRYPT_SAVE_PASSWORD 1
  76. #define FS_CRYPT_LOAD_PASSWORD 2
  77. #define FS_CRYPT_LOAD_PASSWORD_NO_UI 3 // Load password only if master password has already been entered!
  78. #define FS_CRYPT_COPY_PASSWORD 4 // Copy encrypted password to new connection name
  79. #define FS_CRYPT_MOVE_PASSWORD 5 // Move password when renaming a connection
  80. #define FS_CRYPT_DELETE_PASSWORD 6 // Delete password
  81. #define FS_CRYPTOPT_MASTERPASS_SET 1 // The user already has a master password defined
  82. #define BG_DOWNLOAD 1 // Plugin supports downloads in background
  83. #define BG_UPLOAD 2 // Plugin supports uploads in background
  84. #define BG_ASK_USER 4 // Plugin requires separate connection for background transfers -> ask user first
  85. // flags for FsFindFirst/FsFindNext
  86. #define FILE_ATTRIBUTE_DIRECTORY 16
  87. #define FILE_ATTRIBUTE_REPARSE_POINT 0x00000400
  88. #define FILE_ATTRIBUTE_UNIX_MODE 0x80000000
  89. // custom icons
  90. #define FS_ICON_FORMAT_HICON 0 // Load icon from HICON (Windows only)
  91. #define FS_ICON_FORMAT_FILE 1 // Load icon from file name returned by plugin in the RemoteName
  92. #define FS_ICON_FORMAT_BINARY 2 // Load icon from Data byte array (PNG or ICO), destroy data using Free if FS_ICON_EXTRACTED_DESTROY returned
  93. typedef void (DCPCALL *tFreeProc)(void* Pointer);
  94. typedef struct {
  95. void* Pointer;
  96. uintptr_t Size;
  97. uintptr_t Format;
  98. tFreeProc Free;
  99. } TWfxIcon,*PWfxIcon;
  100. typedef struct {
  101. DWORD SizeLow,SizeHigh;
  102. FILETIME LastWriteTime;
  103. int Attr;
  104. } RemoteInfoStruct;
  105. typedef struct {
  106. int size;
  107. DWORD PluginInterfaceVersionLow;
  108. DWORD PluginInterfaceVersionHi;
  109. char DefaultIniName[MAX_PATH];
  110. } FsDefaultParamStruct;
  111. // callback functions
  112. typedef int (DCPCALL *tProgressProc)(int PluginNr,char* SourceName,
  113. char* TargetName,int PercentDone);
  114. typedef int (DCPCALL *tProgressProcW)(int PluginNr,WCHAR* SourceName,
  115. WCHAR* TargetName,int PercentDone);
  116. typedef void (DCPCALL *tLogProc)(int PluginNr,int MsgType,char* LogString);
  117. typedef void (DCPCALL *tLogProcW)(int PluginNr,int MsgType,WCHAR* LogString);
  118. typedef BOOL (DCPCALL *tRequestProc)(int PluginNr,int RequestType,char* CustomTitle,
  119. char* CustomText,char* ReturnedText,int maxlen);
  120. typedef BOOL (DCPCALL *tRequestProcW)(int PluginNr,int RequestType,WCHAR* CustomTitle,
  121. WCHAR* CustomText,WCHAR* ReturnedText,int maxlen);
  122. typedef int (DCPCALL *tCryptProc)(int PluginNr,int CryptoNr,int Mode,
  123. char* ConnectionName,char* Password,int maxlen);
  124. typedef int (DCPCALL *tCryptProcW)(int PluginNr,int CryptoNr,int Mode,
  125. WCHAR* ConnectionName,WCHAR* Password,int maxlen);
  126. // Function prototypes
  127. int DCPCALL FsInit(int PluginNr,tProgressProc pProgressProc,
  128. tLogProc pLogProc,tRequestProc pRequestProc);
  129. int DCPCALL FsInitW(int PluginNr,tProgressProcW pProgressProcW,
  130. tLogProcW pLogProcW,tRequestProcW pRequestProcW);
  131. void DCPCALL FsSetCryptCallback(tCryptProc pCryptProc,int CryptoNr,int Flags);
  132. void DCPCALL FsSetCryptCallbackW(tCryptProcW pCryptProcW,int CryptoNr,int Flags);
  133. HANDLE DCPCALL FsFindFirst(char* Path,WIN32_FIND_DATAA *FindData);
  134. HANDLE DCPCALL FsFindFirstW(WCHAR* Path,WIN32_FIND_DATAW *FindData);
  135. BOOL DCPCALL FsFindNext(HANDLE Hdl,WIN32_FIND_DATAA *FindData);
  136. BOOL DCPCALL FsFindNextW(HANDLE Hdl,WIN32_FIND_DATAW *FindData);
  137. int DCPCALL FsFindClose(HANDLE Hdl);
  138. BOOL DCPCALL FsMkDir(char* Path);
  139. BOOL DCPCALL FsMkDirW(WCHAR* Path);
  140. int DCPCALL FsExecuteFile(HWND MainWin,char* RemoteName,char* Verb);
  141. int DCPCALL FsExecuteFileW(HWND MainWin,WCHAR* RemoteName,WCHAR* Verb);
  142. int DCPCALL FsRenMovFile(char* OldName,char* NewName,BOOL Move,
  143. BOOL OverWrite,RemoteInfoStruct* ri);
  144. int DCPCALL FsRenMovFileW(WCHAR* OldName,WCHAR* NewName,BOOL Move,
  145. BOOL OverWrite,RemoteInfoStruct* ri);
  146. int DCPCALL FsGetFile(char* RemoteName,char* LocalName,int CopyFlags,
  147. RemoteInfoStruct* ri);
  148. int DCPCALL FsGetFileW(WCHAR* RemoteName,WCHAR* LocalName,int CopyFlags,
  149. RemoteInfoStruct* ri);
  150. int DCPCALL FsPutFile(char* LocalName,char* RemoteName,int CopyFlags);
  151. int DCPCALL FsPutFileW(WCHAR* LocalName,WCHAR* RemoteName,int CopyFlags);
  152. BOOL DCPCALL FsDeleteFile(char* RemoteName);
  153. BOOL DCPCALL FsDeleteFileW(WCHAR* RemoteName);
  154. BOOL DCPCALL FsRemoveDir(char* RemoteName);
  155. BOOL DCPCALL FsRemoveDirW(WCHAR* RemoteName);
  156. BOOL DCPCALL FsDisconnect(char* DisconnectRoot);
  157. BOOL DCPCALL FsDisconnectW(WCHAR* DisconnectRoot);
  158. BOOL DCPCALL FsSetAttr(char* RemoteName,int NewAttr);
  159. BOOL DCPCALL FsSetAttrW(WCHAR* RemoteName,int NewAttr);
  160. BOOL DCPCALL FsSetTime(char* RemoteName,FILETIME *CreationTime,
  161. FILETIME *LastAccessTime,FILETIME *LastWriteTime);
  162. BOOL DCPCALL FsSetTimeW(WCHAR* RemoteName,FILETIME *CreationTime,
  163. FILETIME *LastAccessTime,FILETIME *LastWriteTime);
  164. void DCPCALL FsStatusInfo(char* RemoteDir,int InfoStartEnd,int InfoOperation);
  165. void DCPCALL FsStatusInfoW(WCHAR* RemoteDir,int InfoStartEnd,int InfoOperation);
  166. void DCPCALL FsGetDefRootName(char* DefRootName,int maxlen);
  167. int DCPCALL FsExtractCustomIcon(char* RemoteName,int ExtractFlags,PWfxIcon TheIcon);
  168. int DCPCALL FsExtractCustomIconW(WCHAR* RemoteName,int ExtractFlags,PWfxIcon TheIcon);
  169. void DCPCALL FsSetDefaultParams(FsDefaultParamStruct* dps);
  170. int DCPCALL FsGetPreviewBitmap(char* RemoteName,int width,int height,HBITMAP* ReturnedBitmap);
  171. int DCPCALL FsGetPreviewBitmapW(WCHAR* RemoteName,int width,int height,HBITMAP* ReturnedBitmap);
  172. BOOL DCPCALL FsLinksToLocalFiles(void);
  173. BOOL DCPCALL FsGetLocalName(char* RemoteName,int maxlen);
  174. BOOL DCPCALL FsGetLocalNameW(WCHAR* RemoteName,int maxlen);
  175. // ************************** content plugin extension ****************************
  176. //
  177. #define ft_nomorefields 0
  178. #define ft_numeric_32 1
  179. #define ft_numeric_64 2
  180. #define ft_numeric_floating 3
  181. #define ft_date 4
  182. #define ft_time 5
  183. #define ft_boolean 6
  184. #define ft_multiplechoice 7
  185. #define ft_string 8
  186. #define ft_fulltext 9
  187. #define ft_datetime 10
  188. #define ft_stringw 11 // Should only be returned by Unicode function
  189. // for FsContentGetValue
  190. #define ft_nosuchfield -1 // error, invalid field number given
  191. #define ft_fileerror -2 // file i/o error
  192. #define ft_fieldempty -3 // field valid, but empty
  193. #define ft_ondemand -4 // field will be retrieved only when user presses <SPACEBAR>
  194. #define ft_delayed 0 // field takes a long time to extract -> try again in background
  195. // for FsContentSetValue
  196. #define ft_setsuccess 0 // setting of the attribute succeeded
  197. // for FsContentGetSupportedFieldFlags
  198. #define contflags_edit 1
  199. #define contflags_substsize 2
  200. #define contflags_substdatetime 4
  201. #define contflags_substdate 6
  202. #define contflags_substtime 8
  203. #define contflags_substattributes 10
  204. #define contflags_substattributestr 12
  205. #define contflags_substmask 14
  206. // for FsContentSetValue
  207. #define setflags_first_attribute 1 // First attribute of this file
  208. #define setflags_last_attribute 2 // Last attribute of this file
  209. #define setflags_only_date 4 // Only set the date of the datetime value!
  210. #define CONTENT_DELAYIFSLOW 1 // ContentGetValue called in foreground
  211. typedef struct {
  212. int size;
  213. DWORD PluginInterfaceVersionLow;
  214. DWORD PluginInterfaceVersionHi;
  215. char DefaultIniName[MAX_PATH];
  216. } ContentDefaultParamStruct;
  217. typedef struct {
  218. WORD wYear;
  219. WORD wMonth;
  220. WORD wDay;
  221. } tdateformat,*pdateformat;
  222. typedef struct {
  223. WORD wHour;
  224. WORD wMinute;
  225. WORD wSecond;
  226. } ttimeformat,*ptimeformat;
  227. int DCPCALL FsContentGetSupportedField(int FieldIndex,char* FieldName,char* Units,int maxlen);
  228. int DCPCALL FsContentGetValue(char* FileName,int FieldIndex,int UnitIndex,void* FieldValue,int maxlen,int flags);
  229. int DCPCALL FsContentGetValueW(WCHAR* FileName,int FieldIndex,int UnitIndex,void* FieldValue,int maxlen,int flags);
  230. void DCPCALL FsContentStopGetValue(char* FileName);
  231. void DCPCALL FsContentStopGetValueW(WCHAR* FileName);
  232. int DCPCALL FsContentGetDefaultSortOrder(int FieldIndex);
  233. void DCPCALL FsContentPluginUnloading(void);
  234. int DCPCALL FsContentGetSupportedFieldFlags(int FieldIndex);
  235. int DCPCALL FsContentSetValue(char* FileName,int FieldIndex,int UnitIndex,int FieldType,void* FieldValue,int flags);
  236. int DCPCALL FsContentSetValueW(WCHAR* FileName,int FieldIndex,int UnitIndex,int FieldType,void* FieldValue,int flags);
  237. BOOL DCPCALL FsContentGetDefaultView(char* ViewContents,char* ViewHeaders,char* ViewWidths,char* ViewOptions,int maxlen);
  238. BOOL DCPCALL FsContentGetDefaultViewW(WCHAR* ViewContents,WCHAR* ViewHeaders,WCHAR* ViewWidths,WCHAR* ViewOptions,int maxlen);