|
@@ -0,0 +1,73 @@
|
|
|
+program Test;
|
|
|
+
|
|
|
+{$IFDEF FPC}
|
|
|
+ {$MODE DELPHI}
|
|
|
+{$ENDIF}
|
|
|
+
|
|
|
+{$APPTYPE CONSOLE}
|
|
|
+
|
|
|
+type
|
|
|
+ TwbSignature = array[0..3] of AnsiChar;
|
|
|
+
|
|
|
+ TwbConflictPriority = (
|
|
|
+ cpIgnore,
|
|
|
+ cpBenign,
|
|
|
+ cpTranslate,
|
|
|
+ cpNormal,
|
|
|
+ cpCritical,
|
|
|
+ cpFormID
|
|
|
+ );
|
|
|
+
|
|
|
+ IwbElement = interface
|
|
|
+ ['{F4B4637D-C794-415F-B5C7-587EAA4095B3}']
|
|
|
+ end;
|
|
|
+
|
|
|
+ TwbDontShowCallback = function(const aElement: IwbElement): Boolean;
|
|
|
+
|
|
|
+ IwbSubRecordDef = interface
|
|
|
+ ['{D848E426-8768-45F4-B192-4DEFBE34D40A}']
|
|
|
+ end;
|
|
|
+
|
|
|
+ IwbByteArrayDef = interface
|
|
|
+ ['{3069E1AC-4307-421B-93E4-797E18075EF9}']
|
|
|
+ end;
|
|
|
+
|
|
|
+function wbByteArray(const aName : string = 'Unknown';
|
|
|
+ aSize : Cardinal = 0;
|
|
|
+ aPriority : TwbConflictPriority = cpNormal;
|
|
|
+ aRequired : Boolean = False;
|
|
|
+ aDontShow : TwbDontShowCallback = nil)
|
|
|
+ : IwbByteArrayDef; overload;
|
|
|
+begin
|
|
|
+ Result := nil;
|
|
|
+end;
|
|
|
+
|
|
|
+function wbByteArray(const aSignature : TwbSignature;
|
|
|
+ const aName : string = 'Unknown';
|
|
|
+ aSize : Cardinal = 0;
|
|
|
+ aPriority : TwbConflictPriority = cpNormal;
|
|
|
+ aRequired : Boolean = False;
|
|
|
+ aSizeMatch : Boolean = False;
|
|
|
+ aDontShow : TwbDontShowCallback = nil)
|
|
|
+ : IwbSubRecordDef; overload;
|
|
|
+begin
|
|
|
+ Result := nil;
|
|
|
+ halt(2);
|
|
|
+end;
|
|
|
+
|
|
|
+function wbUnknown(aPriority : TwbConflictPriority = cpNormal;
|
|
|
+ aRequired : Boolean = False;
|
|
|
+ aDontShow : TwbDontShowCallback = nil)
|
|
|
+ : IwbByteArrayDef;
|
|
|
+begin
|
|
|
+ Result := wbByteArray('Unknown', 0, aPriority, aRequired, aDontShow);
|
|
|
+end;
|
|
|
+
|
|
|
+function cb(const aElement: IwbElement): Boolean;
|
|
|
+begin
|
|
|
+ halt(1);
|
|
|
+end;
|
|
|
+
|
|
|
+begin
|
|
|
+ wbUnknown(cpNormal,False,cb);
|
|
|
+end.
|