mirror of
https://github.com/doublecmd/doublecmd.git
synced 2026-06-21 09:58:13 +00:00
338 lines
No EOL
9.8 KiB
C
338 lines
No EOL
9.8 KiB
C
#include "common.h"
|
|
|
|
// contents of fsplugin.h version 2.0 (30.Jan.2009)
|
|
|
|
// ids for FsGetFile
|
|
|
|
#define FS_FILE_OK 0
|
|
|
|
#define FS_FILE_EXISTS 1
|
|
|
|
#define FS_FILE_NOTFOUND 2
|
|
|
|
#define FS_FILE_READERROR 3
|
|
|
|
#define FS_FILE_WRITEERROR 4
|
|
|
|
#define FS_FILE_USERABORT 5
|
|
|
|
#define FS_FILE_NOTSUPPORTED 6
|
|
|
|
#define FS_FILE_EXISTSRESUMEALLOWED 7
|
|
|
|
#define FS_EXEC_OK 0
|
|
|
|
#define FS_EXEC_ERROR 1
|
|
|
|
#define FS_EXEC_YOURSELF -1
|
|
|
|
#define FS_EXEC_SYMLINK -2
|
|
|
|
#define FS_COPYFLAGS_OVERWRITE 1
|
|
|
|
#define FS_COPYFLAGS_RESUME 2
|
|
|
|
#define FS_COPYFLAGS_MOVE 4
|
|
|
|
#define FS_COPYFLAGS_EXISTS_SAMECASE 8
|
|
|
|
#define FS_COPYFLAGS_EXISTS_DIFFERENTCASE 16
|
|
|
|
|
|
|
|
// flags for tRequestProc
|
|
|
|
#define RT_Other 0
|
|
|
|
#define RT_UserName 1
|
|
|
|
#define RT_Password 2
|
|
|
|
#define RT_Account 3
|
|
|
|
#define RT_UserNameFirewall 4
|
|
|
|
#define RT_PasswordFirewall 5
|
|
|
|
#define RT_TargetDir 6
|
|
|
|
#define RT_URL 7
|
|
|
|
#define RT_MsgOK 8
|
|
|
|
#define RT_MsgYesNo 9
|
|
|
|
#define RT_MsgOKCancel 10
|
|
|
|
// flags for tLogProc
|
|
|
|
#define MSGTYPE_CONNECT 1
|
|
|
|
#define MSGTYPE_DISCONNECT 2
|
|
|
|
#define MSGTYPE_DETAILS 3
|
|
|
|
#define MSGTYPE_TRANSFERCOMPLETE 4
|
|
|
|
#define MSGTYPE_CONNECTCOMPLETE 5
|
|
|
|
#define MSGTYPE_IMPORTANTERROR 6
|
|
|
|
#define MSGTYPE_OPERATIONCOMPLETE 7
|
|
|
|
// flags for FsStatusInfo
|
|
|
|
#define FS_STATUS_START 0
|
|
|
|
#define FS_STATUS_END 1
|
|
|
|
#define FS_STATUS_OP_LIST 1
|
|
|
|
#define FS_STATUS_OP_GET_SINGLE 2
|
|
|
|
#define FS_STATUS_OP_GET_MULTI 3
|
|
|
|
#define FS_STATUS_OP_PUT_SINGLE 4
|
|
|
|
#define FS_STATUS_OP_PUT_MULTI 5
|
|
|
|
#define FS_STATUS_OP_RENMOV_SINGLE 6
|
|
|
|
#define FS_STATUS_OP_RENMOV_MULTI 7
|
|
|
|
#define FS_STATUS_OP_DELETE 8
|
|
|
|
#define FS_STATUS_OP_ATTRIB 9
|
|
|
|
#define FS_STATUS_OP_MKDIR 10
|
|
|
|
#define FS_STATUS_OP_EXEC 11
|
|
|
|
#define FS_STATUS_OP_CALCSIZE 12
|
|
|
|
#define FS_STATUS_OP_SEARCH 13
|
|
|
|
#define FS_STATUS_OP_SEARCH_TEXT 14
|
|
|
|
#define FS_STATUS_OP_SYNC_SEARCH 15
|
|
|
|
#define FS_STATUS_OP_SYNC_GET 16
|
|
|
|
#define FS_STATUS_OP_SYNC_PUT 17
|
|
|
|
#define FS_STATUS_OP_SYNC_DELETE 18
|
|
|
|
#define FS_ICONFLAG_SMALL 1
|
|
|
|
#define FS_ICONFLAG_BACKGROUND 2
|
|
|
|
#define FS_ICON_USEDEFAULT 0
|
|
|
|
#define FS_ICON_EXTRACTED 1
|
|
|
|
#define FS_ICON_EXTRACTED_DESTROY 2
|
|
|
|
#define FS_ICON_DELAYED 3
|
|
|
|
#define FS_BITMAP_NONE 0
|
|
|
|
#define FS_BITMAP_EXTRACTED 1
|
|
|
|
#define FS_BITMAP_EXTRACT_YOURSELF 2
|
|
|
|
#define FS_BITMAP_EXTRACT_YOURSELF_ANDDELETE 3
|
|
|
|
#define FS_BITMAP_CACHE 256
|
|
|
|
#define FS_CRYPT_SAVE_PASSWORD 1
|
|
|
|
#define FS_CRYPT_LOAD_PASSWORD 2
|
|
|
|
#define FS_CRYPT_LOAD_PASSWORD_NO_UI 3 // Load password only if master password has already been entered!
|
|
|
|
#define FS_CRYPT_COPY_PASSWORD 4 // Copy encrypted password to new connection name
|
|
|
|
#define FS_CRYPT_MOVE_PASSWORD 5 // Move password when renaming a connection
|
|
|
|
#define FS_CRYPT_DELETE_PASSWORD 6 // Delete password
|
|
|
|
#define FS_CRYPTOPT_MASTERPASS_SET 1 // The user already has a master password defined
|
|
|
|
// flags for FsFindFirst/FsFindNext
|
|
|
|
#define FILE_ATTRIBUTE_DIRECTORY 16
|
|
|
|
#define FILE_ATTRIBUTE_REPARSE_POINT 0x00000400
|
|
|
|
#define FILE_ATTRIBUTE_UNIX_MODE 0x80000000
|
|
|
|
typedef struct {
|
|
|
|
DWORD SizeLow,SizeHigh;
|
|
|
|
FILETIME LastWriteTime;
|
|
|
|
int Attr;
|
|
|
|
} RemoteInfoStruct;
|
|
|
|
typedef struct {
|
|
|
|
int size;
|
|
DWORD PluginInterfaceVersionLow;
|
|
DWORD PluginInterfaceVersionHi;
|
|
char DefaultIniName[MAX_PATH];
|
|
} FsDefaultParamStruct;
|
|
|
|
// callback functions
|
|
typedef int (DCPCALL *tProgressProc)(int PluginNr,char* SourceName,
|
|
char* TargetName,int PercentDone);
|
|
typedef int (DCPCALL *tProgressProcW)(int PluginNr,WCHAR* SourceName,
|
|
WCHAR* TargetName,int PercentDone);
|
|
typedef void (DCPCALL *tLogProc)(int PluginNr,int MsgType,char* LogString);
|
|
typedef void (DCPCALL *tLogProcW)(int PluginNr,int MsgType,WCHAR* LogString);
|
|
|
|
typedef BOOL (DCPCALL *tRequestProc)(int PluginNr,int RequestType,char* CustomTitle,
|
|
char* CustomText,char* ReturnedText,int maxlen);
|
|
typedef BOOL (DCPCALL *tRequestProcW)(int PluginNr,int RequestType,WCHAR* CustomTitle,
|
|
WCHAR* CustomText,WCHAR* ReturnedText,int maxlen);
|
|
typedef int (DCPCALL *tCryptProc)(int PluginNr,int CryptoNr,int Mode,
|
|
char* ConnectionName,char* Password,int maxlen);
|
|
typedef int (DCPCALL *tCryptProcW)(int PluginNr,int CryptoNr,int Mode,
|
|
WCHAR* ConnectionName,WCHAR* Password,int maxlen);
|
|
|
|
// Function prototypes
|
|
int DCPCALL FsInit(int PluginNr,tProgressProc pProgressProc,
|
|
tLogProc pLogProc,tRequestProc pRequestProc);
|
|
int DCPCALL FsInitW(int PluginNr,tProgressProcW pProgressProcW,
|
|
tLogProcW pLogProcW,tRequestProcW pRequestProcW);
|
|
void DCPCALL FsSetCryptCallback(tCryptProc pCryptProc,int CryptoNr,int Flags);
|
|
void DCPCALL FsSetCryptCallbackW(tCryptProcW pCryptProcW,int CryptoNr,int Flags);
|
|
HANDLE DCPCALL FsFindFirst(char* Path,WIN32_FIND_DATAA *FindData);
|
|
HANDLE DCPCALL FsFindFirstW(WCHAR* Path,WIN32_FIND_DATAW *FindData);
|
|
|
|
BOOL DCPCALL FsFindNext(HANDLE Hdl,WIN32_FIND_DATAA *FindData);
|
|
BOOL DCPCALL FsFindNextW(HANDLE Hdl,WIN32_FIND_DATAW *FindData);
|
|
int DCPCALL FsFindClose(HANDLE Hdl);
|
|
BOOL DCPCALL FsMkDir(char* Path);
|
|
BOOL DCPCALL FsMkDirW(WCHAR* Path);
|
|
int DCPCALL FsExecuteFile(HWND MainWin,char* RemoteName,char* Verb);
|
|
int DCPCALL FsExecuteFileW(HWND MainWin,WCHAR* RemoteName,WCHAR* Verb);
|
|
int DCPCALL FsRenMovFile(char* OldName,char* NewName,BOOL Move,
|
|
BOOL OverWrite,RemoteInfoStruct* ri);
|
|
int DCPCALL FsRenMovFileW(WCHAR* OldName,WCHAR* NewName,BOOL Move,
|
|
BOOL OverWrite,RemoteInfoStruct* ri);
|
|
int DCPCALL FsGetFile(char* RemoteName,char* LocalName,int CopyFlags,
|
|
RemoteInfoStruct* ri);
|
|
|
|
int DCPCALL FsGetFileW(WCHAR* RemoteName,WCHAR* LocalName,int CopyFlags,
|
|
RemoteInfoStruct* ri);
|
|
int DCPCALL FsPutFile(char* LocalName,char* RemoteName,int CopyFlags);
|
|
int DCPCALL FsPutFileW(WCHAR* LocalName,WCHAR* RemoteName,int CopyFlags);
|
|
BOOL DCPCALL FsDeleteFile(char* RemoteName);
|
|
BOOL DCPCALL FsDeleteFileW(WCHAR* RemoteName);
|
|
BOOL DCPCALL FsRemoveDir(char* RemoteName);
|
|
BOOL DCPCALL FsRemoveDirW(WCHAR* RemoteName);
|
|
BOOL DCPCALL FsDisconnect(char* DisconnectRoot);
|
|
BOOL DCPCALL FsDisconnectW(WCHAR* DisconnectRoot);
|
|
BOOL DCPCALL FsSetAttr(char* RemoteName,int NewAttr);
|
|
BOOL DCPCALL FsSetAttrW(WCHAR* RemoteName,int NewAttr);
|
|
BOOL DCPCALL FsSetTime(char* RemoteName,FILETIME *CreationTime,
|
|
|
|
FILETIME *LastAccessTime,FILETIME *LastWriteTime);
|
|
BOOL DCPCALL FsSetTimeW(WCHAR* RemoteName,FILETIME *CreationTime,
|
|
FILETIME *LastAccessTime,FILETIME *LastWriteTime);
|
|
void DCPCALL FsStatusInfo(char* RemoteDir,int InfoStartEnd,int InfoOperation);
|
|
void DCPCALL FsStatusInfoW(WCHAR* RemoteDir,int InfoStartEnd,int InfoOperation);
|
|
void DCPCALL FsGetDefRootName(char* DefRootName,int maxlen);
|
|
int DCPCALL FsExtractCustomIcon(char* RemoteName,int ExtractFlags,HICON* TheIcon);
|
|
int DCPCALL FsExtractCustomIconW(WCHAR* RemoteName,int ExtractFlags,HICON* TheIcon);
|
|
void DCPCALL FsSetDefaultParams(FsDefaultParamStruct* dps);
|
|
|
|
int DCPCALL FsGetPreviewBitmap(char* RemoteName,int width,int height,HBITMAP* ReturnedBitmap);
|
|
int DCPCALL FsGetPreviewBitmapW(WCHAR* RemoteName,int width,int height,HBITMAP* ReturnedBitmap);
|
|
BOOL DCPCALL FsLinksToLocalFiles(void);
|
|
BOOL DCPCALL FsGetLocalName(char* RemoteName,int maxlen);
|
|
BOOL DCPCALL FsGetLocalNameW(WCHAR* RemoteName,int maxlen);
|
|
|
|
// ************************** content plugin extension ****************************
|
|
|
|
//
|
|
#define ft_nomorefields 0
|
|
|
|
#define ft_numeric_32 1
|
|
#define ft_numeric_64 2
|
|
#define ft_numeric_floating 3
|
|
#define ft_date 4
|
|
#define ft_time 5
|
|
#define ft_boolean 6
|
|
#define ft_multiplechoice 7
|
|
#define ft_string 8
|
|
#define ft_fulltext 9
|
|
#define ft_datetime 10
|
|
#define ft_stringw 11 // Should only be returned by Unicode function
|
|
|
|
// for FsContentGetValue
|
|
#define ft_nosuchfield -1 // error, invalid field number given
|
|
#define ft_fileerror -2 // file i/o error
|
|
#define ft_fieldempty -3 // field valid, but empty
|
|
|
|
#define ft_ondemand -4 // field will be retrieved only when user presses <SPACEBAR>
|
|
#define ft_delayed 0 // field takes a long time to extract -> try again in background
|
|
|
|
// for FsContentSetValue
|
|
#define ft_setsuccess 0 // setting of the attribute succeeded
|
|
|
|
// for FsContentGetSupportedFieldFlags
|
|
#define contflags_edit 1
|
|
#define contflags_substsize 2
|
|
#define contflags_substdatetime 4
|
|
#define contflags_substdate 6
|
|
#define contflags_substtime 8
|
|
#define contflags_substattributes 10
|
|
|
|
#define contflags_substattributestr 12
|
|
#define contflags_substmask 14
|
|
|
|
// for FsContentSetValue
|
|
#define setflags_first_attribute 1 // First attribute of this file
|
|
#define setflags_last_attribute 2 // Last attribute of this file
|
|
#define setflags_only_date 4 // Only set the date of the datetime value!
|
|
|
|
|
|
#define CONTENT_DELAYIFSLOW 1 // ContentGetValue called in foreground
|
|
|
|
typedef struct {
|
|
int size;
|
|
DWORD PluginInterfaceVersionLow;
|
|
DWORD PluginInterfaceVersionHi;
|
|
|
|
char DefaultIniName[MAX_PATH];
|
|
} ContentDefaultParamStruct;
|
|
|
|
typedef struct {
|
|
WORD wYear;
|
|
WORD wMonth;
|
|
WORD wDay;
|
|
} tdateformat,*pdateformat;
|
|
|
|
typedef struct {
|
|
WORD wHour;
|
|
WORD wMinute;
|
|
WORD wSecond;
|
|
} ttimeformat,*ptimeformat;
|
|
|
|
int DCPCALL FsContentGetSupportedField(int FieldIndex,char* FieldName,char* Units,int maxlen);
|
|
int DCPCALL FsContentGetValue(char* FileName,int FieldIndex,int UnitIndex,void* FieldValue,int maxlen,int flags);
|
|
int DCPCALL FsContentGetValueW(WCHAR* FileName,int FieldIndex,int UnitIndex,void* FieldValue,int maxlen,int flags);
|
|
|
|
void DCPCALL FsContentStopGetValue(char* FileName);
|
|
void DCPCALL FsContentStopGetValueW(WCHAR* FileName);
|
|
int DCPCALL FsContentGetDefaultSortOrder(int FieldIndex);
|
|
void DCPCALL FsContentPluginUnloading(void);
|
|
int DCPCALL FsContentGetSupportedFieldFlags(int FieldIndex);
|
|
int DCPCALL FsContentSetValue(char* FileName,int FieldIndex,int UnitIndex,int FieldType,void* FieldValue,int flags);
|
|
int DCPCALL FsContentSetValueW(WCHAR* FileName,int FieldIndex,int UnitIndex,int FieldType,void* FieldValue,int flags);
|
|
|
|
BOOL DCPCALL FsContentGetDefaultView(char* ViewContents,char* ViewHeaders,char* ViewWidths,char* ViewOptions,int maxlen);
|
|
BOOL DCPCALL FsContentGetDefaultViewW(WCHAR* ViewContents,WCHAR* ViewHeaders,WCHAR* ViewWidths,WCHAR* ViewOptions,int maxlen); |