;Dynamic Registry include file for NSIS
;Written by Vytautas Krivickas
;
;Test Release - WriteRegStr Function Only
;

!macro WriteRegStr ROOT SUB KEY VALUE
  !define Index "LINE-${__LINE__}"
  
  StrCmp ${ROOT} "HKCR" Index-HKCR-Start
  StrCmp ${ROOT} "HKEY_CLASSES_ROOT" Index-HKCR-Start Index-HKCR-End
  Index-HKCR-Start:
    WriteRegStr HKCR ${SUB} ${KEY} ${VALUE}
  Index-HKCR-End:

  StrCmp ${ROOT} "HKLM" Index-HKLM-Start
  StrCmp ${ROOT} "HKEY_LOCAL_MACHINE" Index-HKLM-Start Index-HKLM-End
  Index-HKLM-Start:
    WriteRegStr HKLM ${SUB} ${KEY} ${VALUE}
  Index-HKLM-End:

  StrCmp ${ROOT} "HKCU" Index-HKCU-Start
  StrCmp ${ROOT} "HKEY_CURRENT_USER" Index-HKCU-Start Index-HKCU-End
  Index-HKCU-Start:
    WriteRegStr HKCU ${SUB} ${KEY} ${VALUE}
  Index-HKCU-End:
  
  StrCmp ${ROOT} "HKU" Index-HKU-Start
  StrCmp ${ROOT} "HKEY_USERS" Index-HKU-Start Index-HKU-End
  Index-HKU-Start:
    WriteRegStr HKU ${SUB} ${KEY} ${VALUE}
  Index-HKU-End:
  
  StrCmp ${ROOT} "HKCC" Index-HKCC-Start
  StrCmp ${ROOT} "HKEY_CURRENT_CONFIG" Index-HKCC-Start Index-HKCC-End
  Index-HKCC-Start:
    WriteRegStr HKCC ${SUB} ${KEY} ${VALUE}
  Index-HKCC-End:

  StrCmp ${ROOT} "HKDD" Index-HKDD-Start
  StrCmp ${ROOT} "HKEY_DYN_DATA" Index-HKCC-Start Index-HKDD-End
  Index-HKDD-Start:
    WriteRegStr HKDD ${SUB} ${KEY} ${VALUE}
  Index-HKDD-End:

  StrCmp ${ROOT} "HKPD" Index-HKPD-Start
  StrCmp ${ROOT} "HKEY_PERFORMANCE_DATA" Index-HKPD-Start Index-HKPD-End
  Index-HKPD-Start:
    WriteRegStr HKPD ${SUB} ${KEY} ${VALUE}
  Index-HKPD-End:

  !undef Index
!macroend
