请问INTRCPT.DLL & midas.dll的作用?
在delphi安装盘可以找到midas.dll,但没有INTRCPT.DLL文件。
在delphi安装盘可以找到midas.dll,但没有INTRCPT.DLL文件。
解决方案 »
- delphi5的程序怎么升级到delphi6
- 急!SOCKET莫名出错!
- 怎样动态创建控件
- 为什么出现乱码?
- 100分送高手:QUICKREPORT如何制作分组报表,提供实例立即送分!(超值还加100分)
- 菜鸟请问大侠个问题:在image控件里画线,每画一条,就存入数据库,以后再次打开这个程序时就从数据库读取信息来显示线的条数和位置,如
- 主从表删除的问题
- 我想发送这个列表的信息,跟这些时间点相同就执行
- 如何在程序里实现生成AVI文件的功能?
- delphi7 读取win7 64位注册表问题
- CSDN的调查怎么回事了,填了之后什么也看不到,晕
- 想做一个播放器,要把播放列表做成文本文件放到资源里?请问该怎么更新该文本文件??文本文件是不定长的,随便填加多少曲目都行!
interfaceuses
Windows, ActiveX, ComObj, SConnect,HCMngr; //****************************************************************type
TDataEncryptor = class(TComObject, IDataIntercept)
protected
FInHCMngr,FOutHCMngr : TCipherManager;
FInHashMngr,FOutHashMngr : THashManager;
protected
procedure DataIn(const Data: IDataBlock); stdcall;
procedure DataOut(const Data: IDataBlock); stdcall;
public
procedure Initialize;override;
destructor Destroy; override;
end; //****************************************************************
//测试过程
procedure TestInrcpt(const Data : IDataBlock;datain : Boolean);stdcall;const
Class_DataEncryptor : TGUID = '{638A8E1D-321E-4D68-9E01-A3E164E9CF48}'; //****************************************************************implementation
uses ComServ, SysUtils, Classes, MidConst; //****************************************************************
procedure TestInrcpt(const Data : IDataBlock;datain : Boolean);
var
TmpEncryptor : TDataEncryptor;
begin
TmpEncryptor := TDataEncryptor.Create;try
if datain then
TmpEncryptor.DataIn(Data)
else
TmpEncryptor.DataOut(Data);
finally TmpEncryptor.Free; end;
end;
//****************************************************************
{
IDataBlock接口由SConnect.pas中的类TDataBlock实现
其中流头部保留8个字节,前4个用于标志(表示这个包是干什么用的)
后4个字节用于保存这个数据块的大小
}
const CK_ENCRYPT_KEY : string = '是枯地仍加';
//****************************************************************procedure TDataEncryptor.DataIn(const Data: IDataBlock);
var
tmpIn : Pointer;
tmpSize : integer;
begin
tmpSize := Data.Size;
tmpIn := AllocMem(tmpSize);try
Move(Pointer(Integer(Data.Memory) + Data.BytesReserved)^,tmpIn^,tmpSize);
FInHCMngr.InitKey(CK_ENCRYPT_KEY,nil);
FInHCMngr.DecodeBuffer(tmpIn^,Pointer(Integer(Data.Memory) + Data.BytesReserved)^,tmpSize);
finally FreeMem(tmpIn,tmpSize);end;
end; //****************************************************************procedure TDataEncryptor.DataOut(const Data: IDataBlock);
var
tmpIn : Pointer;
tmpSize : integer;
begin
tmpSize := Data.Size;
tmpIn := AllocMem(tmpSize);try
Move(Pointer(Integer(Data.Memory) + Data.BytesReserved)^,tmpIn^,tmpSize);
FOutHCMngr.InitKey(CK_ENCRYPT_KEY,nil);
FOutHCMngr.EncodeBuffer(tmpIn^,Pointer(Integer(Data.Memory) + Data.BytesReserved)^,tmpSize);
finally FreeMem(tmpIn,tmpSize);end;
end; //****************************************************************destructor TDataEncryptor.Destroy;
begin
FInHCMngr.Free;
FOutHCMngr.Free;
FInHashMngr.Free;
FOutHashMngr.Free;
inherited;
end;procedure TDataEncryptor.Initialize;
begin
inherited;
FInHCMngr := TCipherManager.Create(nil);
FOutHCMngr := TCipherManager.Create(nil);
FInHashMngr := THashManager.Create(nil);
FOutHashMngr := THashManager.Create(nil); //加密算法
FInHCMngr.Algorithm := 'DESX';
FOutHCMngr.Algorithm := 'DESX';
//哈希算法
FInHashMngr.Algorithm := 'Ripe Message Digest 256';
FOutHashMngr.Algorithm := 'Ripe Message Digest 256'; FInHCMngr.HashManager := FInHashMngr;
FOutHCMngr.HashManager := FOutHashMngr;
end;initialization
TPacketInterceptFactory.Create(ComServer, TDataEncryptor, Class_DataEncryptor,
'stc_DataEncryptor', 'stc DataEncryptorInterceptor', ciMultiInstance, tmApartment);
end.
我在设置socket服务后,在socketConnection控件中设置了关于INTRCPT的属性,后就不能连接到服务器了,我该如何解决呢?
原来delphi的Demos有例子!
***
to PaPaCong(小勇):
regsvr32 INTRCPT.DLL