UPD: Revert WFX API changes, it is need to create new universal plugin type for such things

This commit is contained in:
Alexander Koblov 2010-07-12 04:33:28 +00:00
commit 63b8a52f52
11 changed files with 28 additions and 260 deletions

View file

@ -23,10 +23,12 @@ exports
FsSetCryptCallback,
FsGetDefRootName,
FsSetDefaultParams,
{
FsNetworkGetSupportedProtocols,
FsNetworkGetConnection,
FsNetworkManageConnection,
FsNetworkOpenConnection,
}
SetDlgProc;
{$IFDEF WINDOWS}{$R ftp.rc}{$ENDIF}

View file

@ -95,10 +95,12 @@ procedure FsSetCryptCallback(pCryptProc: TCryptProc; CryptoNr, Flags: Integer);
procedure FsGetDefRootName(DefRootName: PAnsiChar; MaxLen: Integer); stdcall;
procedure FsSetDefaultParams(dps: pFsDefaultParamStruct); stdcall;
{ Network API }
{
procedure FsNetworkGetSupportedProtocols(Protocols: PAnsiChar; MaxLen: LongInt); stdcall;
function FsNetworkGetConnection(Index: LongInt; Connection: PAnsiChar; MaxLen: LongInt): LongBool; stdcall;
function FsNetworkManageConnection(MainWin: HWND; Connection: PAnsiChar; Action: LongInt; MaxLen: LongInt): LongBool; stdcall;
function FsNetworkOpenConnection(Connection: PAnsiChar; RootDir, RemotePath: PAnsiChar; MaxLen: LongInt): LongBool; stdcall;
}
{ Dialog API function }
procedure SetDlgProc(var SetDlgProcInfo: TSetDlgProcInfo); stdcall;
@ -816,6 +818,7 @@ begin
ReadConnectionList;
end;
{
procedure FsNetworkGetSupportedProtocols(Protocols: PAnsiChar; MaxLen: LongInt); stdcall;
begin
StrPLCopy(Protocols, ftpProtocol, MaxLen);
@ -899,6 +902,7 @@ begin
end;
end;
end;
}
procedure SetDlgProc(var SetDlgProcInfo: TSetDlgProcInfo);
var

View file

@ -25,12 +25,7 @@ and Procedures</a></td>
</table>
<a name="@Description"></a>
<h2 class="description">Description</h2>
<p>Double Commander uses <a href="http://www.ghisler.com/">Total
Commander</a>
WFX plugin API, so you can use <a
href="http://ghisler.fileburst.com/fsplugins/fspluginhelp2.0.zip">documentation</a>
from Total Commander for writing file system plugins. This document
contains Double Commander extensions to WFX plugin API.</p>
<p></p>
<a name="@FuncsProcs"></a>
<h3 class="summary">Functions
and Procedures</h3>

View file

@ -543,37 +543,6 @@ function FsContentGetDefaultViewW(ViewContents,ViewHeaders,ViewWidths,
}
{ Network API extension }
const
FS_NM_ACTION_ADD = 0;
FS_NM_ACTION_EDIT = 1;
FS_NM_ACTION_DELETE = 2;
{ Function prototypes: }
{
procedure FsNetworkGetSupportedProtocols(Protocols: PAnsiChar; MaxLen: LongInt); stdcall;
procedure FsNetworkGetSupportedProtocolsW(Protocols: PWideChar; MaxLen: LongInt); stdcall;
function FsNetworkGetConnection(Index: LongInt; Connection: PAnsiChar; MaxLen: LongInt): LongBool; stdcall;
function FsNetworkGetConnectionW(Index: LongInt; Connection: PWideChar; MaxLen: LongInt): LongBool; stdcall;
function FsNetworkManageConnection(MainWin: HWND; Connection: PAnsiChar; Action: LongInt; MaxLen: LongInt): LongBool; stdcall;
function FsNetworkManageConnectionW(MainWin: HWND; Connection: PWideChar; Action: LongInt; MaxLen: LongInt): LongBool; stdcall;
function FsNetworkOpenConnection(Connection: PAnsiChar; RootDir, RemotePath: PAnsiChar; MaxLen: LongInt): LongBool; stdcall;
function FsNetworkOpenConnectionW(Connection: PWideChar; RootDir, RemotePath: PWideChar; MaxLen: LongInt): LongBool; stdcall;
}
implementation
end.

View file

@ -83,6 +83,7 @@ var
WfxPluginFileSource: IWfxPluginFileSource;
Connection: UTF8String;
begin
{
WfxPluginFileSource:= PFileSourceRecord(tvConnections.Selected.Data)^.FileSource as IWfxPluginFileSource;
if Assigned(WfxPluginFileSource) then
begin
@ -92,6 +93,7 @@ begin
StateIndex:= 1;
end;
end;
}
end;
procedure TfrmConnectionManager.btnConnectClick(Sender: TObject);
@ -101,6 +103,7 @@ var
RemotePath,
RootPath: UTF8String;
begin
{
WfxPluginFileSource:= PFileSourceRecord(tvConnections.Selected.Parent.Data)^.FileSource as IWfxPluginFileSource;
if Assigned(WfxPluginFileSource) then
begin
@ -120,6 +123,7 @@ begin
msgError(Format(rsMsgErrCanNotConnect, [Connection]));
end;
end;
}
end;
procedure TfrmConnectionManager.btnDeleteClick(Sender: TObject);
@ -127,6 +131,7 @@ var
WfxPluginFileSource: IWfxPluginFileSource;
Connection: UTF8String;
begin
{
WfxPluginFileSource:= PFileSourceRecord(tvConnections.Selected.Parent.Data)^.FileSource as IWfxPluginFileSource;
if Assigned(WfxPluginFileSource) then
begin
@ -138,6 +143,7 @@ begin
tvConnections.Items.EndUpdate;
end;
end;
}
end;
procedure TfrmConnectionManager.btnEditClick(Sender: TObject);
@ -145,6 +151,7 @@ var
WfxPluginFileSource: IWfxPluginFileSource;
Connection: UTF8String;
begin
{
WfxPluginFileSource:= PFileSourceRecord(tvConnections.Selected.Parent.Data)^.FileSource as IWfxPluginFileSource;
if Assigned(WfxPluginFileSource) then
begin
@ -152,17 +159,20 @@ begin
if WfxPluginFileSource.WfxModule.WfxNetworkManageConnection(Handle, Connection, FS_NM_ACTION_EDIT) then
tvConnections.Selected.Text:= Connection;
end;
}
end;
procedure TfrmConnectionManager.FormDestroy(Sender: TObject);
var
I: Integer;
begin
{
for I:= 0 to tvConnections.Items.Count - 1 do
begin
if Assigned(tvConnections.Items.Item[I].Data) then
DisposeFileSourceRecord(tvConnections.Items.Item[I].Data);
end;
}
end;
constructor TfrmConnectionManager.Create(TheOwner: TComponent; FileView: TFileView);
@ -173,6 +183,7 @@ var
Connection: UTF8String;
Node, SubNode: TTreeNode;
begin
{
FFileView:= FileView;
inherited Create(TheOwner);
for I:= 0 to gWfxPlugins.Count - 1 do
@ -206,9 +217,9 @@ begin
except
WfxPluginFileSource:= nil;
end;
end;
end;
end;
}
end;
end.

View file

@ -1403,6 +1403,7 @@ object frmMain: TfrmMain
end
object mnuNetwork: TMenuItem
Caption = 'Network'
Visible = False
object miNetworkConnect: TMenuItem
Action = actNetworkConnect
OnClick = actExecute

View file

@ -1613,7 +1613,6 @@ var
I, J: Integer;
WfxModule : TWFXmodule;
sPluginName,
sProtocols,
sRootName: UTF8String;
begin
odOpenDialog.Filter := 'File system plugins (*.wfx)|*.wfx';
@ -1642,14 +1641,13 @@ begin
sPluginName := ExtractFileName(odOpenDialog.FileName) +'=' + SetCmdDirAsEnvVar(odOpenDialog.FileName);
end;
sProtocols:= WfxModule.WfxNetworkGetSupportedProtocols;
DebugLn('WFX sPluginName='+sPluginName);
I:= tmpWFXPlugins.AddObject(sPluginName, TObject(True));
stgPlugins.RowCount:= tmpWFXPlugins.Count + 1;
J:= stgPlugins.RowCount-1;
stgPlugins.Cells[0, J]:= '+';
stgPlugins.Cells[1, J]:= tmpWFXPlugins.Name[I];
stgPlugins.Cells[2, J]:= sProtocols;
stgPlugins.Cells[2, J]:= EmptyStr;
stgPlugins.Cells[3, J]:= tmpWFXPlugins.FileName[I];
DebugLn('WFX Item Added');
WFXModule.UnloadModule;

View file

@ -23,9 +23,6 @@ type
function WfxCopyMove(sSourceFile, sTargetFile: UTF8String; Flags: LongInt;
RemoteInfo: PRemoteInfo; Internal, CopyMoveIn: Boolean): LongInt;
procedure SetCurrentAddress(AValue: UTF8String);
procedure SetRootDir(AValue: UTF8String);
function GetPluginNumber: LongInt;
function GetWfxModule: TWfxModule;
@ -51,7 +48,6 @@ type
TWfxPluginFileSource = class(TFileSource, IWfxPluginFileSource)
private
FModuleFileName,
FRootPath,
FPluginRootName: UTF8String;
FWFXModule: TWFXModule;
FPluginNumber: LongInt;
@ -67,8 +63,6 @@ type
out NewFiles: TFiles; out FilesCount: Int64; out FilesSize: Int64);
function WfxCopyMove(sSourceFile, sTargetFile: UTF8String; Flags: LongInt;
RemoteInfo: PRemoteInfo; Internal, CopyMoveIn: Boolean): LongInt;
procedure SetCurrentAddress(AValue: UTF8String);
procedure SetRootDir(AValue: UTF8String);
public
constructor Create(aModuleFileName, aPluginRootName: UTF8String); reintroduce;
destructor Destroy; override;
@ -100,7 +94,6 @@ type
function CreateSetFilePropertyOperation(var theTargetFiles: TFiles;
var theNewProperties: TFileProperties): TFileSourceOperation; override;
function GetRootDir(sPath : String): String; override;
function GetLocalName(var aFile: TFile): Boolean; override;
class function CreateByRootName(aRootName: String): IWfxPluginFileSource;
@ -531,10 +524,7 @@ end;
function TWfxPluginFileSource.GetCurrentAddress: String;
begin
if FCurrentAddress <> EmptyStr then
Result:= FCurrentAddress
else
Result:= 'wfx://' + FPluginRootName;
Result:= 'wfx://' + FPluginRootName;
end;
function TWfxPluginFileSource.GetPluginNumber: LongInt;
@ -635,16 +625,6 @@ begin
end;
end;
procedure TWfxPluginFileSource.SetCurrentAddress(AValue: UTF8String);
begin
FCurrentAddress:= AValue;
end;
procedure TWfxPluginFileSource.SetRootDir(AValue: UTF8String);
begin
FRootPath:= AValue;
end;
function TWfxPluginFileSource.CreateListOperation(TargetPath: String): TFileSourceOperation;
var
TargetFileSource: IFileSource;
@ -734,14 +714,6 @@ begin
theNewProperties);
end;
function TWfxPluginFileSource.GetRootDir(sPath: String): String;
begin
if FRootPath <> EmptyStr then
Result:= FRootPath
else
Result:= inherited GetRootDir(sPath);
end;
function TWfxPluginFileSource.GetLocalName(var aFile: TFile): Boolean;
var
sFileName: UTF8String;
@ -788,4 +760,4 @@ finalization
if Assigned(WfxOperationList) then
FreeAndNil(WfxOperationList);
end.
end.

View file

@ -2787,17 +2787,21 @@ end;
procedure TActs.cm_NetworkConnect(param: string);
begin
{
ShowConnectionManager(frmMain.ActiveFrame);
}
end;
procedure TActs.cm_NetworkDisconnect(param: string);
begin
{
if frmMain.ActiveFrame.FileSource.IsClass(TWfxPluginFileSource) then
with frmMain.ActiveFrame.FileSource as IWfxPluginFileSource do
begin
if param <> EmptyStr then
WfxModule.WfxNetworkCloseConnection(param);
end;
}
end;
end.

View file

@ -99,11 +99,6 @@ type
FsContentGetSupportedFieldFlags:TFsContentGetSupportedFieldFlags;
FsContentSetValue:TFsContentSetValue;
FsContentGetDefaultView:TFsContentGetDefaultView;
//---------------------
FsNetworkGetSupportedProtocols: TFsNetworkGetSupportedProtocols;
FsNetworkGetConnection: TFsNetworkGetConnection;
FsNetworkManageConnection: TFsNetworkManageConnection;
FsNetworkOpenConnection: TFsNetworkOpenConnection;
{ Unicode }
FsInitW: TFsInitW;
FsFindFirstW: TFsFindFirstW;
@ -129,11 +124,6 @@ type
FsContentStopGetValueW: TFsContentStopGetValueW;
FsContentSetValueW: TFsContentSetValueW;
FsContentGetDefaultViewW: TFsContentGetDefaultViewW;
//---------------------
FsNetworkGetSupportedProtocolsW: TFsNetworkGetSupportedProtocolsW;
FsNetworkGetConnectionW: TFsNetworkGetConnectionW;
FsNetworkManageConnectionW: TFsNetworkManageConnectionW;
FsNetworkOpenConnectionW: TFsNetworkOpenConnectionW;
{ Dialog API }
SetDlgProc: TSetDlgProc;
public
@ -153,11 +143,6 @@ type
function WfxRemoveDir(const sDirName: UTF8String): Boolean;
function WfxDeleteFile(const sFileName: UTF8String): Boolean;
function WfxGetLocalName(var sFileName: UTF8String): Boolean;
function WfxNetworkGetSupportedProtocols: UTF8String;
function WfxNetworkGetConnection(Index: LongInt; var Connection: UTF8String): Boolean;
function WfxNetworkManageConnection(MainWin: HWND; var Connection: UTF8String; Action: LongInt): Boolean;
function WfxNetworkOpenConnection(var Connection, RootDir, RemotePath: UTF8String): Boolean;
procedure WfxNetworkCloseConnection(const Connection: UTF8String);
public
constructor Create;
destructor Destroy; override;
@ -169,8 +154,6 @@ type
function VFSConfigure(Parent: THandle):Boolean;
function VFSRootName: UTF8String;
function VFSNetworkSupport: Boolean;
function IsLoaded: Boolean;
end;
@ -454,141 +437,6 @@ begin
end;
end;
function TWFXModule.WfxNetworkGetSupportedProtocols: UTF8String;
var
pacProtocols: PAnsiChar;
pwcProtocols: PWideChar;
begin
Result:= EmptyStr;
if Assigned(FsNetworkGetSupportedProtocolsW) then
begin
pwcProtocols:= GetMem(MAX_PATH * SizeOf(WideChar));
FsNetworkGetSupportedProtocolsW(pwcProtocols, MAX_PATH);
Result:= UTF8Encode(WideString(pwcProtocols));
FreeMem(pwcProtocols);
end
else if Assigned(FsNetworkGetSupportedProtocols) then
begin
pacProtocols:= GetMem(MAX_PATH);
FsNetworkGetSupportedProtocols(pacProtocols, MAX_PATH);
Result:= SysToUTF8(StrPas(pacProtocols));
FreeMem(pacProtocols);
end;
end;
function TWFXModule.WfxNetworkGetConnection(Index: LongInt; var Connection: UTF8String): Boolean;
var
pacConnection: PAnsiChar;
pwcConnection: PWideChar;
begin
Result:= False;
if Assigned(FsNetworkGetConnectionW) then
begin
pwcConnection:= GetMem(MAX_PATH * SizeOf(WideChar));
Result:= FsNetworkGetConnectionW(Index, pwcConnection, MAX_PATH);
if Result = True then
Connection:= UTF8Encode(WideString(pwcConnection));
FreeMem(pwcConnection);
end
else if Assigned(FsNetworkGetConnection) then
begin
pacConnection:= GetMem(MAX_PATH);
Result:= FsNetworkGetConnection(Index, pacConnection, MAX_PATH);
if Result = True then
Connection:= SysToUTF8(StrPas(pacConnection));
FreeMem(pacConnection);
end;
end;
function TWFXModule.WfxNetworkManageConnection(MainWin: HWND; var Connection: UTF8String;
Action: LongInt): Boolean;
var
pacConnection: PAnsiChar;
pwcConnection: PWideChar;
begin
Result:= False;
if Assigned(FsNetworkManageConnectionW) then
begin
pwcConnection:= GetMem(MAX_PATH * SizeOf(WideChar));
if Action <> FS_NM_ACTION_ADD then
StrPCopyW(pwcConnection, UTF8Decode(Connection));
Result:= FsNetworkManageConnectionW(MainWin, pwcConnection, Action, MAX_PATH);
if (Result = True) and (Action = FS_NM_ACTION_ADD) then
Connection:= UTF8Encode(WideString(pwcConnection));
FreeMem(pwcConnection);
end
else if Assigned(FsNetworkManageConnection) then
begin
pacConnection:= GetMem(MAX_PATH);
if Action <> FS_NM_ACTION_ADD then
StrPCopy(pacConnection, UTF8ToSys(Connection));
Result:= FsNetworkManageConnection(MainWin, pacConnection, Action, MAX_PATH);
if (Result = True) and (Action = FS_NM_ACTION_ADD) then
Connection:= SysToUTF8(StrPas(pacConnection));
FreeMem(pacConnection);
end;
end;
function TWFXModule.WfxNetworkOpenConnection(var Connection, RootDir, RemotePath: UTF8String): Boolean;
var
pacConnection: PAnsiChar;
pwcConnection: PWideChar;
pacRootDir: PAnsiChar;
pwcRootDir: PWideChar;
pacRemotePath: PAnsiChar;
pwcRemotePath: PWideChar;
begin
Result:= False;
if Assigned(FsNetworkOpenConnectionW) then
begin
pwcConnection:= GetMem(MAX_PATH * SizeOf(WideChar));
pwcRootDir:= GetMem(MAX_PATH * SizeOf(WideChar));
pwcRemotePath:= GetMem(MAX_PATH * SizeOf(WideChar));
if Connection = EmptyStr then
pwcConnection:= #0
else
StrPCopyW(pwcConnection, UTF8Decode(Connection));
Result:= FsNetworkOpenConnectionW(pwcConnection, pwcRootDir, pwcRemotePath, MAX_PATH);
if Result = True then
begin
Connection:= UTF8Encode(WideString(pwcConnection));
RootDir:= UTF8Encode(WideString(pwcRootDir));
RemotePath:= UTF8Encode(WideString(pwcRemotePath));
end;
FreeMem(pwcConnection);
FreeMem(pwcRootDir);
FreeMem(pwcRemotePath);
end
else if Assigned(FsNetworkOpenConnection) then
begin
pacConnection:= GetMem(MAX_PATH);
pacRootDir:= GetMem(MAX_PATH);
pacRemotePath:= GetMem(MAX_PATH);
if Connection = EmptyStr then
pacConnection:= #0
else
StrPCopy(pacConnection, UTF8ToSys(Connection));
Result:= FsNetworkOpenConnection(pacConnection, pacRootDir, pacRemotePath, MAX_PATH);
if Result = True then
begin
Connection:= SysToUTF8(StrPas(pacConnection));
RootDir:= SysToUTF8(StrPas(pacRootDir));
RemotePath:= SysToUTF8(StrPas(pacRemotePath));
end;
FreeMem(pacConnection);
FreeMem(pacRootDir);
FreeMem(pacRemotePath);
end;
end;
procedure TWFXModule.WfxNetworkCloseConnection(const Connection: UTF8String);
begin
if Assigned(FsDisconnectW) then
FsDisconnectW(PWideChar(UTF8Decode(Connection)))
else if Assigned(FsDisconnect) then
FsDisconnect(PAnsiChar(UTF8ToSys(Connection)));
end;
constructor TWFXModule.Create;
begin
@ -652,11 +500,6 @@ begin
FsContentGetSupportedFieldFlags := TFsContentGetSupportedFieldFlags (GetProcAddress(FModuleHandle,'FsContentGetSupportedFieldFlags'));
FsContentSetValue := TFsContentSetValue (GetProcAddress(FModuleHandle,'FsContentSetValue'));
FsContentGetDefaultView := TFsContentGetDefaultView (GetProcAddress(FModuleHandle,'FsContentGetDefaultView'));
//---------------------
FsNetworkGetSupportedProtocols:= TFsNetworkGetSupportedProtocols(GetProcAddress(FModuleHandle,'FsNetworkGetSupportedProtocols'));
FsNetworkGetConnection:= TFsNetworkGetConnection(GetProcAddress(FModuleHandle,'FsNetworkGetConnection'));
FsNetworkManageConnection:= TFsNetworkManageConnection(GetProcAddress(FModuleHandle,'FsNetworkManageConnection'));
FsNetworkOpenConnection:= TFsNetworkOpenConnection(GetProcAddress(FModuleHandle,'FsNetworkOpenConnection'));
{ Unicode }
FsInitW := TFsInitW(GetProcAddress(FModuleHandle,'FsInitW'));
FsFindFirstW := TFsFindFirstW(GetProcAddress(FModuleHandle,'FsFindFirstW'));
@ -676,11 +519,6 @@ begin
FsStatusInfoW := TFsStatusInfoW(GetProcAddress(FModuleHandle,'FsStatusInfoW'));
FsExtractCustomIconW := TFsExtractCustomIconW(GetProcAddress(FModuleHandle,'FsExtractCustomIconW'));
FsGetLocalNameW := TFsGetLocalNameW(GetProcAddress(FModuleHandle,'FsGetLocalNameW'));
//--------------------
FsNetworkGetSupportedProtocolsW:= TFsNetworkGetSupportedProtocolsW(GetProcAddress(FModuleHandle,'FsNetworkGetSupportedProtocolsW'));
FsNetworkGetConnectionW:= TFsNetworkGetConnectionW(GetProcAddress(FModuleHandle,'FsNetworkGetConnectionW'));
FsNetworkManageConnectionW:= TFsNetworkManageConnectionW(GetProcAddress(FModuleHandle,'FsNetworkManageConnectionW'));
FsNetworkOpenConnectionW:= TFsNetworkOpenConnectionW(GetProcAddress(FModuleHandle,'FsNetworkOpenConnectionW'));
{ Dialog API }
SetDlgProc:= TSetDlgProc(GetProcAddress(FModuleHandle,'SetDlgProc'));
end;
@ -726,11 +564,6 @@ begin
FsContentSetValue := nil;
FsContentGetDefaultView := nil;
FsContentPluginUnloading := nil;
//----------------------
FsNetworkGetSupportedProtocols:= nil;
FsNetworkGetConnection:= nil;
FsNetworkManageConnection:= nil;
FsNetworkOpenConnection:= nil;
{ Unicode }
FsInitW := nil;
FsFindFirstW := nil;
@ -750,11 +583,6 @@ begin
FsStatusInfoW := nil;
FsExtractCustomIconW := nil;
FsGetLocalNameW := nil;
//----------------------
FsNetworkGetSupportedProtocolsW:= nil;
FsNetworkGetConnectionW:= nil;
FsNetworkManageConnectionW:= nil;
FsNetworkOpenConnectionW:= nil;
{ Dialog API }
SetDlgProc:= nil;
end;
@ -835,12 +663,6 @@ begin
end;
end;
function TWFXModule.VFSNetworkSupport: Boolean;
begin
Result:= (Assigned(FsNetworkGetConnection) and Assigned(FsNetworkManageConnection) and Assigned(FsNetworkOpenConnection))
or (Assigned(FsNetworkGetConnectionW) and Assigned(FsNetworkManageConnectionW) and Assigned(FsNetworkOpenConnectionW));
end;
function TWFXModule.IsLoaded: Boolean;
begin
Result := (FModuleHandle <> 0);

View file

@ -47,11 +47,6 @@ type
{U} TFsContentGetSupportedFieldFlags = function (FieldIndex:integer):integer; stdcall;
{U} TFsContentSetValue = function (FileName:pchar;FieldIndex,UnitIndex,FieldType:integer; FieldValue:pbyte;flags:integer):integer; stdcall;
{U} TFsContentGetDefaultView = function (ViewContents,ViewHeaders,ViewWidths, ViewOptions:pchar;maxlen:integer):boolean; stdcall;
//------------------------------------------------------
TFsNetworkGetSupportedProtocols = procedure (Protocols: PAnsiChar; MaxLen: LongInt); stdcall;
TFsNetworkGetConnection = function (Index: LongInt; Connection: PAnsiChar; MaxLen: LongInt): LongBool; stdcall;
TFsNetworkManageConnection = function (MainWin: HWND; Connection: PAnsiChar; Action: LongInt; MaxLen: LongInt): LongBool; stdcall;
TFsNetworkOpenConnection = function (Connection: PAnsiChar; RootDir, RemotePath: PAnsiChar; MaxLen: LongInt): LongBool; stdcall;
{ Unicode }
TFsInitW = function(PluginNr:integer;pProgressProcW:tProgressProcW;pLogProcW:tLogProcW; pRequestProcW:tRequestProcW):integer; stdcall;
TFsFindFirstW = function(path :pwidechar;var FindData:tWIN32FINDDATAW):thandle; stdcall;
@ -78,11 +73,6 @@ type
TFsContentSetValueW = function(FileName:pwidechar;FieldIndex,UnitIndex,FieldType:integer; FieldValue:pbyte;flags:integer):integer; stdcall;
TFsContentGetDefaultViewW = function(ViewContents,ViewHeaders,ViewWidths, ViewOptions:pwidechar;maxlen:integer):bool; stdcall;
//------------------------------------------------------
TFsNetworkGetSupportedProtocolsW = procedure (Protocols: PWideChar; MaxLen: LongInt); stdcall;
TFsNetworkGetConnectionW = function (Index: LongInt; Connection: PWideChar; MaxLen: LongInt): LongBool; stdcall;
TFsNetworkManageConnectionW = function (MainWin: HWND; Connection: PWideChar; Action: LongInt; MaxLen: LongInt): LongBool; stdcall;
TFsNetworkOpenConnectionW = function (Connection: PWideChar; RootDir, RemotePath: PWideChar; MaxLen: LongInt): LongBool; stdcall;
//------------------------------------------------------
implementation