Global.pas
上传用户:hylc_2004
上传日期:2014-01-23
资源大小:46800k
文件大小:11k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1. unit Global;
  2. interface
  3. uses
  4.   Classes,ComCtrls,Types,Windows,SysUtils,md5,IdTCPServer,MySocket;
  5. Const
  6.   FilePackSize=1280;
  7. var
  8.   skLogin             :Char=#1;     
  9.   skStateChanged      :Char=#2;     
  10.   skLoginResult       :Char=#3;     
  11.   skSendBranch        :Char=#4;     
  12.   skSendEmployee      :Char=#5;     
  13.   skOnlineCheck       :Char=#6;     
  14.   skMessage           :Char=#7;     
  15.   skReturnMessage     :Char=#8;     
  16.   skSendFileRequest   :Char=#9;     
  17.   skSendFileResponse  :Char=#10;    
  18.   skSendFilePackage   :Char=#11;    
  19.   skSendFileResult    :Char=#12;    
  20.   skSendFileCancle    :Char=#13;    
  21.   skSendFileStop      :Char=#14;    
  22.   skSendFileCompleted :Char=#15;    
  23.   skSendFileResume    :Char=#16;    
  24.   skAddUser           :Char=#17;    
  25.   skAudio             :Char=#18;    
  26.   skAudioRequest      :Char=#19;    
  27.   skAudioResponse     :Char=#20;    
  28.   skAudioCancel       :Char=#21;    
  29.   skAudioStop         :Char=#22;    
  30.   skVideoRequest      :Char=#23;    
  31.   skVideoCancel       :Char=#24;    
  32.   skVideoResponse     :Char=#25;    
  33.   skVideoStop         :Char=#26;    
  34.   skVideo             :Char=#27;    
  35.   skSetBitmapInfo     :Char=#28;    
  36.   skSetCompvars       :Char=#29;    
  37.   skInputing          :Char=#30;    
  38.   skGetMyIPAndPort    :Char=#31;
  39.   skPleaseCallMe      :Char=#32;
  40.   skCallSomeone       :Char=#33;
  41.   skCalled            :char=#34;
  42.   skP2PResponse       :char=#35;
  43.   skBeginTalk         :char=#36;
  44.   skPleaseUseTCP      :char=#37;
  45.   skChangeNameAndPassword:char=#38;
  46.   skNameAndPasswordChanged:char=#39;
  47. type
  48.   TCBChangeNameAndPassword = record
  49.     ID:Integer;
  50.     Name:String[40];
  51.     Password:String[20];
  52.   end;
  53.   TCBNameAndPasswordChanged = record
  54.     ID:Integer;
  55.     Name:String[40];
  56.   end;
  57.   TCBPleaseUseTCP = record
  58.     Receiver,
  59.     Sender    :Integer;
  60.     ForAudioAudio,           
  61.     ForVideoAudio,           
  62.     ForVideoVideo:Boolean;
  63.   end;
  64.   TCBBeginTalk = record
  65.     Receiver,
  66.     Sender    :Integer;
  67.     LocalIP     :String[15]; 
  68.     LocalPort   :Integer;    
  69.     IP          :String[15]; 
  70.     Port        :Integer;
  71.   end;
  72.   TCBCalled = record
  73.     Receiver,
  74.     Sender    :Integer;
  75.     IP        :String[15];  
  76.     Port      :Integer;     
  77.   end;
  78.   TCBP2PResponse = record
  79.     Receiver,
  80.     Sender    :Integer;
  81.     IP        :String[15];  
  82.     Port      :Integer;     
  83.     PeerIP    :String[15];  
  84.     PeerPort  :Integer;     
  85.     UseIP     :String[15];  
  86.     UsePort   :Integer;
  87.   end;
  88.   TCBCallSomeone = record
  89.     Receiver,
  90.     Sender    :Integer;
  91.     IP        :String[15];  
  92.     Port      :Integer;
  93.   end;
  94.   TCBGetMyIPAndPort = record
  95.     Sender    :Integer;
  96.     LocalIP   :String[15]; 
  97.     LocalPort :Integer;    
  98.     IP        :String[15]; 
  99.     Port      :Integer;
  100.   end;
  101.   TCBPleaseCallMe = record
  102.     Receiver,
  103.     Sender    :Integer;
  104.     IP        :String[15]; 
  105.     Port      :Integer;
  106.     MyLocalIP   :String[15];
  107.     MyLocalPort :Integer;   
  108.     MyIP        :String[15];
  109.     MyPort      :Integer;   
  110.     UseIP     :String[15];  
  111.     UsePort   :Integer;
  112.   end;
  113.   TCBSetBitmapInfo = record
  114.     Receiver  :Integer;
  115.     Buf       :array [0..255] of byte;
  116.   end;
  117.   TCBSetCompvars = record
  118.     Receiver  :Integer;
  119.     Buf       :array [0..255] of byte;
  120.   end;
  121.   ChatRoom = record
  122.       UserCount :Integer;
  123.       Users     :Array [1..16] of Integer;
  124.   end;
  125.   TCBAddUser = record
  126.     Receiver:Integer;
  127.     AddRoom :ChatRoom;
  128.     Room    :ChatRoom;
  129.   end;
  130.   TCBInputing = record
  131.     Receiver    :Integer;
  132.     Sender      :Integer;
  133.     Inputing    :Boolean;
  134.     Room        :ChatRoom;
  135.   end;
  136.   TCBVideo = record
  137.     Receiver    :Integer;
  138.     Sender      :Integer;
  139.     PackCount   :Integer;
  140.     PackNO      :Integer;
  141.     BufLength   :Integer;
  142.     Buf         :array [1..460] of byte;
  143.     bKeyFrame   :Boolean;
  144.     nSampleNum  :DWORD;
  145.     nAllSize    :DWORD;
  146.   end;
  147.   TCBVideoStop = record
  148.     Receiver    :Integer;
  149.     Sender      :Integer;
  150.   end;
  151.   TCBVideoResponse = record
  152.     Receiver    :Integer;
  153.     Sender      :Integer;
  154.     isAcepted   :Boolean;
  155.     ALocalIP     :String[15]; 
  156.     ALocalPort   :Integer;    
  157.     AIP          :String[15]; 
  158.     APort        :Integer;    
  159.     VLocalIP     :String[15]; 
  160.     VLocalPort   :Integer;    
  161.     VIP          :String[15]; 
  162.     VPort        :Integer;
  163.   end;
  164.   TCBVideoRequest = record
  165.     Receiver    :Integer;
  166.     Sender      :Integer;
  167.     Room        :ChatRoom;
  168.     ALocalIP     :String[15]; 
  169.     ALocalPort   :Integer;    
  170.     AIP          :String[15]; 
  171.     APort        :Integer;    
  172.     VLocalIP     :String[15]; 
  173.     VLocalPort   :Integer;    
  174.     VIP          :String[15]; 
  175.     VPort        :Integer;
  176.   end;
  177.   TCBVideoCancel = record
  178.     Receiver    :Integer;
  179.     Sender      :Integer;
  180.   end;
  181.   
  182.   TCBAudio = record
  183.     Receiver,
  184.     Sender      :Integer;
  185.     lpData      :Array [1..260] of char;
  186.     dwBufferLength,
  187.     MMLevelValue:Cardinal;
  188.   end;
  189.   TCBAudioCancel = record
  190.     Receiver    :Integer;
  191.     Sender      :Integer;
  192.   end;
  193.   TCBAudioStop = record
  194.     Receiver    :Integer;
  195.     Sender      :Integer;
  196.   end;
  197.   TCBAudioRequest = record
  198.     Receiver    :Integer;
  199.     Sender      :Integer;
  200.     Room        :ChatRoom;
  201.     LocalIP     :String[15]; 
  202.     LocalPort   :Integer;    
  203.     IP          :String[15]; 
  204.     Port        :Integer;
  205.   end;
  206.   TCBAudioResponse = record
  207.     Receiver    :Integer;
  208.     Sender      :Integer;
  209.     isAcepted   :Boolean;
  210.     LocalIP     :String[15]; 
  211.     LocalPort   :Integer;    
  212.     IP          :String[15]; 
  213.     Port        :Integer;
  214.   end;
  215.   TCBSendFilePackage = record
  216.     Receiver    :Integer;
  217.     BaseID      :String[80];
  218.     Position    :Int64;
  219.     Length      :Integer;
  220.     Package     :Array[1..FilePackSize] of char;
  221.     MD5Code     :MD5Digest;
  222.     SendTicket  :Int64;
  223.   end;
  224.   TCBSendFileReportPoint = record
  225.     Position:Integer;
  226.     IsAccepted:char;
  227.   end;
  228.   
  229.   TCBSendFileResult  = record
  230.     Receiver    :Integer;
  231.     BaseID      :String[80];
  232.     CurentSize  :Int64;
  233.     SendTicket  :Int64;
  234.   end;
  235.   TCBSendFileRequest = record
  236.     Receiver    :Integer;
  237.     Sender      :Integer;
  238.     FileID      :String[32];
  239.     BaseID      :String[80];
  240.     FileName    :String[100];
  241.     FileSize    :Int64;
  242.     IsScreen    :Boolean;
  243.     Room        :ChatRoom;
  244.     LocalIP     :String[15]; 
  245.     LocalPort   :Integer;    
  246.     IP          :String[15]; 
  247.     Port        :Integer;
  248.   end;
  249.   TCBSendFileResponse = record
  250.     Receiver    :Integer;
  251.     IsAccept    :Boolean;
  252.     BaseID      :String[80];
  253.     LocalIP     :String[15]; 
  254.     LocalPort   :Integer;    
  255.     IP          :String[15]; 
  256.     Port        :Integer;
  257.   end;
  258.   TCBSendFileCancle = record
  259.     Receiver    :Integer;
  260.     BaseID      :String[80];
  261.   end;
  262.   TCBSendFileStop = record
  263.     Receiver    :Integer;
  264.     Sender      :Integer;
  265.     BaseID      :String[80];
  266.   end;
  267.   TCBSendFileCompleted = record
  268.     Receiver    :Integer;
  269.     Sender      :Integer;
  270.     BaseID      :String[80];
  271.   end;
  272.   TCBSendFileResume = record
  273.     Receiver    :Integer;
  274.     Sender      :Integer;
  275.     BaseID      :String[80];
  276.     Start       :Integer;
  277.     BufferLength:Integer;
  278.     ResumBuffer :array[1..400] of Char;
  279.   end;
  280.   TCBLogin = record
  281.       LoginName,
  282.       Password        :String[20];
  283.       State           :String[20];
  284.       LocalIP         :String[15]; 
  285.       LocalPort       :Integer;    
  286.       MACNO           :String[30]; 
  287.       HaveAudioDevice,             
  288.       HaveVideoDevice :Boolean;    
  289.       Version         :Integer;
  290.   end;
  291.   TCBLoginResult = record
  292.       IsLogin           :Boolean;   
  293.       Result            :String[80];
  294.   end;
  295.   TCBStateChanged = record
  296.       ID          :Integer;    
  297.       State       :String[20]; 
  298.       HaveAudioDevice,         
  299.       HaveVideoDevice,         
  300.       IsAutoState :Boolean;
  301.   end;
  302.   PCBMessage = ^TCBMessage;
  303.   TCBMessage = record
  304.       Receiver      :Integer;
  305.       Sender        :Integer;
  306.       Length        :Integer;
  307.       SendDateTime  :TDateTime;
  308.       SendTicket    :Cardinal;
  309.       Name          :string[20];
  310.       Color,
  311.       Size          :Integer;
  312.       fsBold,
  313.       fsItalic,
  314.       fsUnderline,
  315.       fsStrikeOut   :Boolean;
  316.       Content       :array[1..370] of Char;
  317.       Room          :ChatRoom;
  318.   end;
  319.   TCBReturnMessage = record
  320.       Receiver      :Integer;
  321.       Sender        :Integer;
  322.       Length        :Integer;
  323.       SendTicket    :Cardinal;
  324.   end;
  325.   PBranch = ^Branch;
  326.   Branch = record
  327.       ID,
  328.       ParentID        :Integer;     
  329.       Name            :String[60];  
  330.       Position        :Integer;
  331.       Node            :TTreeNode;
  332.   end;
  333.   PEmployee = ^Employee;
  334.   Employee = record
  335.       ID,                          
  336.       BranchID        :Integer;    
  337.       LoginName,                   
  338.       Password        :String[20]; 
  339.       Name            :String[40]; 
  340.       Sex             :String[1];  
  341.       State           :String[20]; 
  342.       ToolTips        :String[100];
  343.       IsMe            :Boolean;    
  344.       LocalIP         :String[15]; 
  345.       LocalPort       :Integer;    
  346.       IP              :String[15]; 
  347.       Port            :Integer;    
  348.       MACNO           :String[30]; 
  349.       HaveAudioDevice,             
  350.       HaveVideoDevice :Boolean;    
  351.       LastActive      :Cardinal;   
  352.       Position        :Integer;    
  353.       Node            :TTreeNode;
  354.       AThread         :TIdPeerThread;
  355.       MySocket        :TMySocket;
  356.   end;
  357.   TCBSendBranch = record
  358.     Current,
  359.     Count     :Integer;
  360.     BranchData:Branch;
  361.   end;
  362.   TCBSendEmployee = record
  363.     Current,
  364.     Count       :Integer;
  365.     EmployeeData:Employee;
  366.   end;
  367. Const
  368.   ServerStopped='服务器已停止!';
  369.   PasswordError='请检查用户名和密码!';
  370.   SameUserJustLogin='相同的用户在其它位置刚刚登录!';
  371.   UserIsDeleted='您所使用的帐号已被删除!';
  372.   NeedNewVersion='请从imp2p.Net下载最新版程序!';
  373. function GetFileVersion(FileName: string;var Major1, Major2, Minor1, Minor2: Integer):String;
  374. implementation
  375. function GetFileVersion(FileName: string;var Major1, Major2, Minor1, Minor2: Integer):String;
  376. var
  377.   Info: Pointer;
  378.   InfoSize: DWORD;
  379.   FileInfo: PVSFixedFileInfo;
  380.   FileInfoSize: DWORD;
  381.   Tmp: DWORD;
  382. begin
  383.   Result:='';
  384.   InfoSize := GetFileVersionInfoSize(PChar(FileName), Tmp);
  385.   Major1 := 0; Major2 := 0; Minor1 := 0; Minor2 := 0;
  386.   if InfoSize = 0 then
  387.   else
  388.   begin
  389.     GetMem(Info, InfoSize);
  390.     try
  391.       GetFileVersionInfo(PChar(FileName), 0, InfoSize, Info);
  392.       VerQueryValue(Info, '', Pointer(FileInfo), FileInfoSize);
  393.       Major1 := FileInfo.dwFileVersionMS shr 16;
  394.       Major2 := FileInfo.dwFileVersionMS and $FFFF;
  395.       Minor1 := FileInfo.dwFileVersionLS shr 16;
  396.       Minor2 := FileInfo.dwFileVersionLS and $FFFF;
  397.       Result:=IntToStr(Major1)+'.'+IntToStr(Major2)+'.'+IntToStr(Minor1)+'.'+IntToStr(Minor2);
  398.     finally
  399.       FreeMem(Info, FileInfoSize);
  400.     end;
  401.   end;
  402. end;
  403. end.