📄 uwinsockmgr.pas
字号:
unit uWinSockMgr;
interface
uses
Windows, WinSock2, uException, uWin32Const;
type
TDIWinSockMgr = class
protected
FWSAData: TWSAData;
FNeedUnload: Boolean;
public
constructor Create;
destructor Destroy; override;
end;
var
DIWinSockMgr: TDIWinSockMgr;
implementation
function CheckRunning2K: Boolean;
var
ver: Cardinal;
begin
ver := GetVersion;
Result := ((ver and $80000000) = 0) and ((ver and $FF) >= 4);
end;
constructor TDIWinSockMgr.Create;
begin
inherited Create;
if not CheckRunning2K then raise TException.Create(ErrRequiresWin2k, 0);
FNeedUnload := Winsock2.WSAStartup(MakeWord(2,2), FWSAData) = 0;
end;
destructor TDIWinSockMgr.Destroy;
begin
if FNeedUnload then Winsock2.WSACleanup();
inherited Destroy;
end;
initialization
DIWinSockMgr := TDIWinSockMgr.Create;
finalization
DIWinSockMgr.Free;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -