The code is very simple to use, you call a procedure passing a callback procedure as its argument (just like for example win32 api EnumChildWindows)
WepKeys.zip
Code:
unit uMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TFrmMain = class(TForm)
mmoLog: TMemo;
btnDump: TButton;
procedure btnDumpClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmMain: TFrmMain;
implementation
uses
uWEPUtils, uUtils;
{$R *.dfm}
//This is your callback function: we print the result on a TMemo named mmoLog
function GetDataCallBack(
DataType: Cardinal;
Data: Pointer;
DataSize: Cardinal
): Boolean;
begin
case DataType of
1: //WiFi Network Interface GUID
begin
FrmMain.mmoLog.Lines.Add(PAnsiChar(Data));
end;
2: //HOT-SPOT name
begin
FrmMain.mmoLog.Lines.Add(PAnsiChar(Data));
end;
3: //HOT-SPOT stored Wep Key: DumpData is a function defined in unit
//uUtils which dumps a buffer in Hex Editor style
begin
FrmMain.mmoLog.Lines.Add(DumpData(Data, DataSize));
end;
end;
end;
procedure TFrmMain.btnDumpClick(Sender: TObject);
begin
//
mmoLog.Lines.Clear;
//It is so simple ... we call GetWZCSVCData (defined in unit uWepUtils) //passing our callback function
GetWZCSVCData(@GetDataCallBack);
end;