(************************************************************************
*    This File is Part of the AHM Triton Tools                          *
*    for Borland Delphi and C++ Builder.                                *
*************************************************************************
* Copyright © 1995-1999 Alexander H. Mehlhorn (AHM) and Tritontools.com *
* All Rights reserved.                                                  *
*                                                                       *
*    For more Information contact us at                                 *
*    E-Mail : support@tritontools.com                                   *
*    URL : http://www.tritontools.com                                   *
*                                                                       *
*    AHM is copyright by Alexander H. Mehlhorn                          *
*    All Parts of this Collection were developed,                       *
*    designed and implemented by AHM                                    *
*                                                                       *
*    Under no Circumstances may you distribute this file                *
*    in this or any other format. This File is supplied                 *
*    as Evaluation of Source only. No Delphi Components may be developed*
*    using extracts or subsets of this code without expressed permission*
*    by AHM.                                                            *
*                                                                       *
*************************************************************************)
unit AHMSystemReg;

interface
{$I AHM.INC}
uses Classes,DsgnIntf,Controls,
     AHMSystem,
     AHMSystemConst,
     AHMSystemClass,
     AHMTTimeTrigger,
     AHMTStoreData,
     AHMTLogFile,
     AHMTTextReplace,
     AHMTFileOperator,
     AHMTSystemDetails,
     AHMTFileCollector,
     AHMTFormExplode,
     AHMTAppManager,
     AHMTRASManager,
     AHMTDisplayManager,
     AHMTSystemManager,
     AHMTCollectionDsgn,
     AHMTControlMgrDsgn,
     AHMTFileHolderDsgn,
     AHMTShellLinksDsgn,
     AHMTWaveHolderDsgn,
     AHMTMsgBoxHolderDsgn,
     AHMTAppStarter,
     AHMTMultiThread,
     AHMTScheduler,
     AHMTShellLinks,
     AHMTDiskMonitor,
     AHMTControlManager,
     AHMTWaveHolder,
     AHMTMsgBoxHolder,
     AHMTMsgBoxes,
     AHMTMsgDlgHolder,
     AHMTFormManager,
     AHMTDriveDetails,
     AHMTResourceDetails,
     AHMTFileDetails,
     AHMTFileHolder,
     AHMTFontHolder,
     AHMTHotSpotManager,
     AHMTHotKeyHolder,
     AHMTMouseController,
     AHMTListHolder;

type TAHMAboutSystemComponent = class(TPropertyEditor)
     public
       procedure Edit; override;
       function GetValue: string; override;
       function GetAttributes: TPropertyAttributes; override;
     end;
     TAHMAssociationsEditor = class(TPropertyEditor)
     public
       procedure Edit; override;
       function GetValue: string; override;
       function GetAttributes: TPropertyAttributes; override;
     end;
     TAHMROStringProperty = class(TStringProperty)
     public
       function GetAttributes : TPropertyAttributes; Override;
     end;
     TAHMROIntegerProperty = class(TIntegerProperty)
     public
       function GetAttributes : TPropertyAttributes; Override;
     end;
     TAHMROBooleanproperty = class(TOrdinalProperty)
     public
       function GetAttributes : TPropertyAttributes; Override;
     end;
     TAHMExecSystemProperty = class(TStringProperty)
     public
       Procedure Edit; override;
       function GetValue: string; override;
       Function GetAttributes: TPropertyAttributes; override;
     end;
     TAHMRasConnectionProperty = class(TStringProperty)
     public
       procedure GetValues(Proc: TGetStrProc); override;
       function GetAttributes: TPropertyAttributes; override;
     end;
     TAHMHotSpotControlProperty = class(TComponentProperty)
     public
       procedure GetValues(Proc: TGetStrProc); override;
       function GetAttributes: TPropertyAttributes; override;
     end;
     TAHMHotSpotMgrWinControlProperty = class(TComponentProperty)
     public
       procedure GetValues(Proc: TGetStrProc); override;
       function GetAttributes: TPropertyAttributes; override;
     end;
     TAHMDrivesProperty = class(TStringProperty)
     public
       procedure GetValues(Proc: TGetStrProc); override;
       function GetAttributes: TPropertyAttributes; override;
     end;
     TAHMDisplayModeProperty = class(TStringProperty)
     public
       procedure GetValues(Proc: TGetStrProc); override;
       function GetAttributes: TPropertyAttributes; override;
     end;
     TAHMRASConfigure= class(TClassProperty)
     public
       Procedure Edit; override;
       function GetAttributes: TPropertyAttributes; override;
     end;
     TAHMRASProcedures=class(TDefaultEditor)
     public
       procedure ExecuteVerb(Index : Integer); override;
       function GetVerb(Index : Integer): string; override;
       function GetVerbCount : Integer; override;
     end;
     TAHMStoredFontProperty=class(TStringProperty)
     public
       function GetAttributes: TPropertyAttributes; override;
       procedure GetValues(Proc : TGetStrProc); override;
     end;
     {$IFDEF AHMINPRISE5}
     TAHMTritonToolsCategory = class(TPropertyCategory)
     public
       class function Name: string; override;
       class function Description: string; override;
     end;
     TAHMInstanceCategory = class(TPropertyCategory)
     public
       class function Name: string; override;
       class function Description: string; override;
     end;
     TAHMSharewareCategory = class(TPropertyCategory)
     public
       class function Name: string; override;
       class function Description: string; override;
     end;
     TAHMSystemTrayCategory = class(TPropertyCategory)
     public
       class function Name: string; override;
       class function Description: string; override;
     end;
     TAHMAssociationsCategory = class(TPropertyCategory)
     public
       class function Name: string; override;
       class function Description: string; override;
     end;
     TAHMApplicationCategory = class(TPropertyCategory)
     public
       class function Name: string; override;
       class function Description: string; override;
     end;
     TAHMAPMCategory = class(TPropertyCategory)
     public
       class function Name: string; override;
       class function Description: string; override;
     end;
     TAHMAppWindowsCategory = class(TPropertyCategory)
     public
       class function Name: string; override;
       class function Description: string; override;
     end;

     {$ENDIF}

procedure Register;
implementation
uses Forms,Dialogs,SysUtils;
{$R AHMTSystem.res}
Const SystemTab1='AHM System 1';
      SystemTab2='AHM System 2';
      CopyRight='© 1995-1999 AHM';

procedure Register;
begin
  {Anchestors}
  RegisterPropertyEditor(TypeInfo(TAHMAboutStr),TAHMSystemsComponent,'About',TAHMAboutSystemComponent);
  RegisterPropertyEditor(Typeinfo(TAHMExecSysStr),TAHMExecuteComponent,'DesignExecute',TAHMExecSystemProperty);
  {TAHMAppManager}
  RegisterComponents(SystemTab1,[TAHMAppManager]);
  RegisterPropertyEditor(TypeInfo(String),TAHMAssociations,'Extensions',TAHMAssociationsEditor);
  {TAHMFormManager}
  RegisterComponents(SystemTab1,[TAHMFormManager]);
  RegisterPropertyEditor(TypeInfo(TCollection),TAHMFormManager,'Buttons',TAHMCollectionProperty);
  RegisterComponentEditor(TAHMFormManager,TAHMCaptionButtonsComponentEditor);
  {TAHMSystemManager}
  RegisterComponents(SystemTab1,[TAHMSystemManager]);
  {TAHMControlManager}
  RegisterComponents(SystemTab1,[TAHMControlManager]);
  RegisterPropertyEditor(TypeInfo(TCollection),TAHMControlManager,'Controls',TAHMControlMgrProperty);
  RegisterComponentEditor(TAHMControlManager,TAHMControlMgrComponentEditor);
  {TAHMDisplayManager}
  RegisterComponents(SystemTab1,[TAHMDisplayManager]);
  RegisterPropertyEditor(TypeInfo(String),TAHMDisplayManager,'Mode',TAHMDisplayModeProperty);
  {TAHMRASManager}
  RegisterClasses([TAHMRASProperties]);
  RegisterComponents(SystemTab1,[TAHMRASManager]);
  RegisterPropertyEditor(TypeInfo(String),TAHMRASManager,'Connection',TAHMRasConnectionProperty);
  RegisterPropertyEditor(TypeInfo(TAHMRASProperties),TAHMRASManager,'Properties',TAHMRasConfigure);
  RegisterComponentEditor(TAHMRASManager,TAHMRASProcedures);
  {TAHMHotSpotManager}
  RegisterComponents(SystemTab1,[TAHMHotSpotManager]);
  RegisterPropertyEditor(TypeInfo(TGraphicControl),TAHMHotSpot,'GraphicControl',TAHMHotSpotControlProperty);
  RegisterPropertyEditor(TypeInfo(TWinControl),TAHMHotSpotManager,'WinControl',TAHMHotSpotMgrWinControlProperty);
  RegisterPropertyEditor(TypeInfo(TCollection),TAHMHotSpotManager,'HotSpots',TAHMCollectionProperty);
  RegisterComponentEditor(TAHMHotSpotManager,TAHMHotSpotManagerComponentEditor);
  {TAHMListHolder}
  RegisterComponents(SystemTab1,[TAHMListHolder]);
  RegisterPropertyEditor(TypeInfo(TCollection),TAHMListHolder,'Lists',TAHMCollectionProperty);
  RegisterComponentEditor(TAHMListHolder,TAHMListHolderComponentEditor);
  {TAHMFileHolder}
  RegisterComponents(SystemTab1,[TAHMFileHolder]);
  RegisterPropertyEditor(TypeInfo(TCollection),TAHMFileHolder,'Files',TAHMFileHolderProperty);
  RegisterComponentEditor(TAHMFileHolder,TAHMFileHolderComponentEditor);
  {TAHMWaveHolder}
  RegisterComponents(SystemTab1,[TAHMWaveHolder]);
  RegisterPropertyEditor(TypeInfo(TCollection),TAHMWaveHolder,'Internals',TAHMInternalWaveHolderProperty);
  RegisterPropertyEditor(TypeInfo(TCollection),TAHMWaveHolder,'Externals',TAHMExternalWaveHolderProperty);
  RegisterComponentEditor(TAHMWaveHolder,TAHMWaveHolderComponentEditor);
  {TAHMFontHolder}
  RegisterComponents(SystemTab1,[TAHMFontHolder]);
  RegisterPropertyEditor(TypeInfo(TCollection),TAHMFontHolder,'Fonts',TAHMCollectionProperty);
  RegisterPropertyEditor(TypeInfo(String),TAHMStoredFont,'Font',TAHMStoredFontProperty);
  RegisterComponentEditor(TAHMFontHolder,TAHMFontHolderComponentEditor);
  {TAHMAppStarter}
  RegisterComponents(SystemTab1,[TAHMAppStarter]);
  RegisterPropertyEditor(TypeInfo(TCollection),TAHMAppStarter,'Programs',TAHMCollectionProperty);
  RegisterComponentEditor(TAHMAppStarter,TAHMAppStarterComponentEditor);
  {TAHMMsgBoxes}
  RegisterComponents(SystemTab1,[TAHMMsgBoxes]);
  RegisterPropertyEditor(TypeInfo(TCollection),TAHMMsgBoxes,'Messages',TAHMMsgBoxHolderProperty);
  RegisterComponentEditor(TAHMMsgBoxes,TAHMMsgBoxHolderComponentEditor);
  {TAHMMsgBoxesEx}
  RegisterComponents(SystemTab1,[TAHMMsgBoxHolder]);
  RegisterPropertyEditor(TypeInfo(TCollection),TAHMMsgBoxHolder,'Messages',TAHMMsgBoxHolderProperty);
  RegisterComponentEditor(TAHMMsgBoxHolder,TAHMMsgBoxHolderComponentEditor);
  {TAHMMsgDlgHolder}
  RegisterComponents(SystemTab1,[TAHMMsgDlgHolder]);
  RegisterPropertyEditor(TypeInfo(TCollection),TAHMMsgDlgHolder,'Messages',TAHMMsgBoxHolderProperty);
  RegisterComponentEditor(TAHMMsgDlgHolder,TAHMMsgDlgHolderComponentEditor);
  {TAHMMultiThreader}
  RegisterComponents(SystemTab1,[TAHMMultiThreader]);
  RegisterPropertyEditor(TypeInfo(TCollection),TAHMMultiThreader,'Threads',TAHMCollectionProperty);
  RegisterComponentEditor(TAHMMultiThreader,TAHMMultiThreaderComponentEditor);
  {TAHMScheduler}
  RegisterComponents(SystemTab1,[TAHMScheduler]);
  RegisterPropertyEditor(TypeInfo(TCollection),TAHMScheduler,'Schedules',TAHMCollectionProperty);
  RegisterComponentEditor(TAHMScheduler,TAHMSchedulerComponentEditor);
  {TAHMShellLinks}
  RegisterComponents(SystemTab1,[TAHMShellLinks]);
  RegisterPropertyEditor(TypeInfo(TCollection),TAHMShellLinks,'ShortCuts',TAHMShellLinksProperty);
  RegisterComponentEditor(TAHMShellLinks,TAHMShellLinksComponentEditor);
  {TAHMDiskMonitor}
  RegisterComponents(SystemTab1,[TAHMDiskMonitor]);
  RegisterPropertyEditor(TypeInfo(TCollection),TAHMDiskMonitor,'Locations',TAHMCollectionProperty);
  RegisterComponentEditor(TAHMDiskMonitor,TAHMDiskMonitorComponentEditor);
  {TAHMStoreData}
  RegisterClasses([TAHMDataStore]);
  RegisterComponents(SystemTab1,[TAHMStoreData]);
  { ***************************** System Tab 2 ***************************** }
  {TAHMHotKeyHolder}
  RegisterComponents(SystemTab2,[TAHMHotKeyHolder]);
  RegisterPropertyEditor(TypeInfo(TCollection),TAHMHotKeyHolder,'GlobalKeys',TAHMCollectionProperty);
  RegisterComponentEditor(TAHMHotKeyHolder,TAHMHotKeyHolderComponentEditor);
  {TAHMDriveDetails}
  RegisterComponents(SystemTab2,[TAHMDriveDetails]);
  RegisterPropertyEditor(TypeInfo(String),TAHMDriveDetails,'Drive',TAHMDrivesProperty);
  {TAHMFileDetails}
  RegisterComponents(SystemTab2,[TAHMFileDetails]);
  {TAHMSystemDetails}
  RegisterComponents(SystemTab2,[TAHMSystemDetails]);
  {TAHMResourceDetails}
  RegisterComponents(SystemTab2,[TAHMResourceDetails]);
  {TAHMFileCollector}
  RegisterComponents(SystemTab2,[TAHMFileCollector]);
  {TAHMLogFile}
  RegisterComponents(SystemTab2,[TAHMLogFile]);
  {TAHMMouseController}
  RegisterComponents(SystemTab2,[TAHMMouseController]);
  {TAHMTextReplace}
  RegisterComponents(SystemTab2,[TAHMTextReplace]);
  {TAHMTimeTrigger}
  RegisterComponents(SystemTab2,[TAHMTimeTrigger]);
  {TAHMFileOperator}
  RegisterComponents(SystemTab2,[TAHMFileOperator]);
  RegisterComponents(SystemTab2,[TAHMFormExplode]);
  {$IFDEF AHMINPRISE5} //Category Stuff
  RegisterPropertiesInCategory(TAHMInstanceCategory,TAHMAppManager,['*Instance*']);
  RegisterPropertiesInCategory(TAHMSharewareCategory,TAHMAppManager,['*Share*']);
  RegisterPropertiesInCategory(TAHMSystemTrayCategory,TAHMAppManager,['*Tray*','OnTaskbar']);
  RegisterPropertiesInCategory(TAHMAssociationsCategory,TAHMAppManager,['*Association*','OnFileOpen']);
  RegisterPropertiesInCategory(TAHMTritonToolsCategory,TAHMSystemsComponent,['About']);
  RegisterPropertiesInCategory(TAHMApplicationCategory,TAHMAppManager,['UpdateFormatSettings',
          'ParamStore','OnStartParam','OnIllegalAbort',
          'UpdateMetricSettings','SysShort*','SysLong*','ShowMain*','ApplicationTitle','FlashInterval',
          'AsService95','OnException','OnIdle','OnMessage','OnMinimize','OnRestore','OnIconChange','AutoStart']);
  RegisterPropertiesInCategory(TAHMAPMCategory,TAHMAppManager,['*APM*']);
  RegisterPropertiesInCategory(TAHMAppWindowsCategory,TAHMAppManager,['*OnUser*','OnSysMemLow','OnEndWindows','OnDisplayChange','OnDDE*','OnCD*']);

  {$ENDIF}
end;


function TAHMStoredFontProperty.GetAttributes: TPropertyAttributes;
begin
  Result := [paValueList, paSortList, paReadOnly];
end;

procedure TAHMStoredFontProperty.GetValues(Proc : TGetStrProc);
var I : Integer;
begin
  for I:=0 to TAHMFontHolder(TAHMStoredFont(GetComponent(0)).Owner).TTFFonts.Count-1 do Proc(TAHMFontHolder(TAHMStoredFont(GetComponent(0)).Owner).TTFFonts[I]);
end;


procedure TAHMAboutSystemComponent.Edit;
begin
 ShowSysAbout;
end;

function TAHMAboutSystemComponent.GetValue: string;
begin
  FmtStr(Result, '(%s)', ['AHM System Components']);
end;

function TAHMAboutSystemComponent.GetAttributes: TPropertyAttributes;
begin
  Result := [paMultiSelect,paDialog,paReadOnly];
end;

procedure TAHMAssociationsEditor.Edit;
begin
  TAHMAppManager(TAHMAssociations(Getcomponent(0)).Owner).ShowAssociations;
end;

function TAHMAssociationsEditor.GetValue: string;
begin
  FmtStr(Result, '%s', [GetStrValue]);
end;

function TAHMAssociationsEditor.GetAttributes: TPropertyAttributes;
begin
  Result := [paDialog,paAutoUpdate,paReadOnly];
end;

function TAHMROStringProperty.GetAttributes : TPropertyAttributes;
begin
  Result := inherited GetAttributes + [paReadonly];
end;

function TAHMROBooleanProperty.GetAttributes : TPropertyAttributes;
begin
  Result := inherited GetAttributes + [paReadonly];
end;

function TAHMROIntegerProperty.GetAttributes : TPropertyAttributes;
begin
  Result := inherited GetAttributes + [paReadonly];
end;

Procedure TAHMExecSystemProperty.Edit;
begin
  TAHMExecuteComponent(GetComponent(0)).Execute
end;

function TAHMExecSystemProperty.GetValue: string;
begin
  FmtStr(Result, '(%s)', ['Execute Test']);
end;


Function TAHMExecSystemProperty.GetAttributes: TPropertyAttributes;
begin
  Result := [paDialog, paReadonly];
end;



{ TAHMRasConnectionProperty }

function TAHMRasConnectionProperty.GetAttributes: TPropertyAttributes;
begin
  result:=[paMultiSelect, paValueList, paSortList, paRevertable];
end;

procedure TAHMRasConnectionProperty.GetValues(Proc: TGetStrProc);
Var I : Integer;
begin
  TAHMRASManager(GetComponent(0)).UpdateRAS;
  for I := 0 to TAHMRASManager(GetComponent(0)).Connections.Count - 1 do Proc(TAHMRASManager(GetComponent(0)).Connections[I]);
end;

{ TAHMDrivesProperty }

function TAHMDrivesProperty.GetAttributes: TPropertyAttributes;
begin
  result:=[paMultiSelect, paValueList, paSortList, paRevertable];
end;

procedure TAHMDrivesProperty.GetValues(Proc: TGetStrProc);
Var I : Integer;
begin
  for I := 0 to TAHMDriveDetails(GetComponent(0)).Drives.Count - 1 do Proc(TAHMDriveDetails(GetComponent(0)).Drives[I]);
end;

{ TAHMRASConfigure }

procedure TAHMRASConfigure.Edit;
begin
  if not(TAHMRASManager(GetComponent(0)).ConfigureEntry(TAHMRASManager(GetComponent(0)).Connection)) then
  if not(TAHMRASManager(GetComponent(0)).CreateEntry) then Showmessage(ahmscCanNotConfigure);
  inherited;
end;

function TAHMRASConfigure.GetAttributes: TPropertyAttributes;
begin
  Result := inherited GetAttributes + [paDialog];
end;

procedure TAHMRASProcedures.ExecuteVerb(Index: Integer);
begin
  if (Index< 0) and (Index>3) then Exit;
  if index=0 then TAHMRASManager(Component).CreateEntry;
  if index=1 then TAHMRASManager(Component).ConfigureEntry(TAHMRasManager(Component).Connection);
  if index=2 then TAHMRASManager(Component).DeleteEntry(TAHMRasManager(Component).Connection);
  if index=3 then ShowSysAbout;
  TAHMRASManager(Component).UpdateRAS;
  if index=2 then
  begin
    if TAHMRASManager(Component).Connections.Count>0 then
       TAHMRASManager(Component).Connection:=TAHMRASManager(Component).Connections[0] else
       TAHMRASManager(Component).Connection:='';
  end;
end;

function TAHMRASProcedures.GetVerb(Index: Integer): String;
begin
  if index=0 then  Result := ahmscCreatePhonebookEntry;
  if index=1 then  Result := ahmscConfigurePhonebookEntry;
  if index=2 then  Result := ahmscDeletePhonebookEntry;
  if index=3 then  Result := Copyright;
end;

function TAHMRASProcedures.GetVerbCount: Integer;
begin
  Result:=4;
end;

{ TAHMDisplayModeProperty }

function TAHMDisplayModeProperty.GetAttributes: TPropertyAttributes;
begin
  result:=[paMultiSelect, paValueList, paRevertable];
end;

procedure TAHMDisplayModeProperty.GetValues(Proc: TGetStrProc);
Var I : Integer;
begin
  for I := 0 to TAHMDisplayManager(GetComponent(0)).Modes.Count - 1 do Proc(TAHMDisplayManager(GetComponent(0)).Modes[I]);
end;

{ TAHMHotSpotControlProperty }

function TAHMHotSpotControlProperty.GetAttributes: TPropertyAttributes;
begin
  result:=[paMultiSelect,paValueList, paRevertable,paSortList];
end;

procedure TAHMHotSpotControlProperty.GetValues(Proc: TGetStrProc);
Var I : Integer;
begin
  for I := 0 to TAHMHotSpotManager(TAHMHotSpot(GetComponent(0)).Owner).WinControl.ControlCount - 1 do
   if (TAHMHotSpotManager(TAHMHotSpot(GetComponent(0)).Owner).WinControl.Controls[I] is TGraphicControl)
   then Proc(TAHMHotSpotManager(TAHMHotSpot(GetComponent(0)).Owner).WinControl.Controls[I].Name);
end;


{ TAHMHotSpotMgrWinControlProperty }

function TAHMHotSpotMgrWinControlProperty.GetAttributes: TPropertyAttributes;
begin
  result:=[paMultiSelect,paValueList, paRevertable,paSortList];
end;

procedure TAHMHotSpotMgrWinControlProperty.GetValues(Proc: TGetStrProc);
Var I : Integer;
begin
  Proc(TCustomForm(TAHMHotSpotManager(GetComponent(0)).Owner).Name);
  for I := 0 to TCustomForm(TAHMHotSpotManager(GetComponent(0)).Owner).ControlCount - 1 do
   if (TCustomForm(TAHMHotSpotManager(GetComponent(0)).Owner).Controls[I] is TWinControl)
   then Proc(TCustomForm(TAHMHotSpotManager(GetComponent(0)).Owner).Controls[I].Name);
end;

{$IFDEF AHMINPRISE5}
{ TAHMInstanceCategory }
  { TODO : Add the resource text }
class function TAHMInstanceCategory.Description: string;
begin
  result:='Instance Management';
end;

class function TAHMInstanceCategory.Name: string;
begin
  result:='Instance Management';
end;

{ TAHMSharewareCategory }

class function TAHMSharewareCategory.Description: string;
begin
  result:='Shareware Specific';
end;

class function TAHMSharewareCategory.Name: string;
begin
  result:='Shareware Specific';
end;

{ TAHMSystemTrayCategory }

class function TAHMSystemTrayCategory.Description: string;
begin
  result:='System Tray';
end;

class function TAHMSystemTrayCategory.Name: string;
begin
  result:='System Tray';
end;

{ TAHMAssociationsCategory }

class function TAHMAssociationsCategory.Description: string;
begin
  result:='File Associations';
end;

class function TAHMAssociationsCategory.Name: string;
begin
  result:='File Associations';
end;

{ TAHMTritonToolsCategory }

class function TAHMTritonToolsCategory.Description: string;
begin
  result:='AHM Triton Tools 2000';
end;

class function TAHMTritonToolsCategory.Name: string;
begin
  result:='AHM Triton Tools 2000';
end;

{ TAHMApplicationCategory }

class function TAHMApplicationCategory.Description: string;
begin
  result:='Application Specific';
end;

class function TAHMApplicationCategory.Name: string;
begin
  result:='Application Specific';
end;

{ TAHMAppWindowsCategory }

class function TAHMAppWindowsCategory.Description: string;
begin
  result:='Operating System';
end;

class function TAHMAppWindowsCategory.Name: string;
begin
  result:='Operating System';
end;

{ TAHMAPMCategory }

class function TAHMAPMCategory.Description: string;
begin
  result:='Advanced Power Management';
end;

class function TAHMAPMCategory.Name: string;
begin
  result:='Advanced Power Management';
end;
{$ENDIF}

end.


