mirror of
https://github.com/doublecmd/doublecmd.git
synced 2026-06-21 09:58:13 +00:00
UPD: Revert WFX API changes, it is need to create new universal plugin type for such things
This commit is contained in:
parent
5162545583
commit
63b8a52f52
11 changed files with 28 additions and 260 deletions
|
|
@ -23,10 +23,12 @@ exports
|
|||
FsSetCryptCallback,
|
||||
FsGetDefRootName,
|
||||
FsSetDefaultParams,
|
||||
{
|
||||
FsNetworkGetSupportedProtocols,
|
||||
FsNetworkGetConnection,
|
||||
FsNetworkManageConnection,
|
||||
FsNetworkOpenConnection,
|
||||
}
|
||||
SetDlgProc;
|
||||
|
||||
{$IFDEF WINDOWS}{$R ftp.rc}{$ENDIF}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -1403,6 +1403,7 @@ object frmMain: TfrmMain
|
|||
end
|
||||
object mnuNetwork: TMenuItem
|
||||
Caption = 'Network'
|
||||
Visible = False
|
||||
object miNetworkConnect: TMenuItem
|
||||
Action = actNetworkConnect
|
||||
OnClick = actExecute
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue