HKLM 
{
	NoRemove Software
	{
		NoRemove Microsoft
		{
			NoRemove MMC
			{
				NoRemove Snapins
				{
					ForceRemove {[!SnapInGUID]} =
						s '[!ShortName]' 
					{
						val NameString = s '[!ShortName]'
[!if=(ISnapinAbout, "TRUE")]
						val About = s '{[!SnapInAboutGUID]}'
[!endif]
[!if=(EXTENSIONSNAPIN, "FALSE)]
						NodeTypes
						{
							{[!SnapInNodeType]}
						}
						StandAlone
[!endif]
					}
				}
				NoRemove NodeTypes
				{
[!if=(EXTENSIONSNAPIN, "FALSE)]
					ForceRemove {[!SnapInNodeType]}
					{
					}
[!endif]
[!if=(EXTENSIONSNAPIN, "TRUE)]
					NoRemove {[!EXTENDSNODE]}
					{
						NoRemove Extensions
						{
[!if=(IComponentData, "TRUE")]
							NoRemove NameSpace
							{
								val {[!SnapInGUID]} =
								s '[!ShortName]'
							}
[!endif]
[!if=(IExtendContextMenu, "TRUE")]
							NoRemove ContextMenu
							{
								val {[!SnapInGUID]} =
								s '[!ShortName]'
							}
[!endif]
[!if=(IExtendPropertySheet, "TRUE")]
							NoRemove PropertySheet
							{
								val {[!SnapInGUID]} =
								s '[!ShortName]'
							}
[!endif]
[!if=(IExtendControlBar, "TRUE")]
							NoRemove ToolBar
							{
								val {[!SnapInGUID]} =
								s '[!ShortName]'
							}
[!endif]
						}
					}
[!endif]												
				}
			}
		}
	}
}


HKCR
{
	[!ProgID] = s '[!TypeName]'
	{
		CLSID = s '{[!SnapInGUID]}'
	}
	[!VersionIndependentProgID] = s '[!TypeName]'
	{
		CLSID = s '{[!SnapInGUID]}'
		CurVer = s '[!ProgID]'
	}
	NoRemove CLSID
	{
		ForceRemove {[!SnapInGUID]} = s '[!TypeName]'
		{
			ProgID = s '[!ProgID]'
			VersionIndependentProgID = s '[!VersionIndependentProgID]'
[!if=(Dual, "TRUE")]
			ForceRemove 'Programmable'
[!endif]
[!if=(ProjectType, "DLL")]
			InprocServer32 = s '%MODULE%'
			{
[!if=(ThreadingModel, "Single")]
[!else]
				val ThreadingModel = s '[!ThreadingModel]'
[!endif]
			}
[!else]
			LocalServer32 = s '%MODULE%'
			val AppID = s '{[!ProjectAppID]}'
[!endif]
			'TypeLib' = s '{[!LibGUID]}'
		}
	}
}
