Here's an example of how to create a virtual registry entry:

// Create hKey_Classes to work well even under registry reflection
HKEY hKey_Classes;
RegOpenKey(HKEY_LOCAL_MACHINE, _T("SOFTWARE\\Classes"), &hKey_Classes);

HKEY hVirtualKey;
DWORD dwDisposition;

LONG lResult = 
	BoxedAppSDK_CreateVirtualRegKey(
		hKey_Classes, 
		_T("Typelib\\{D27CDB6B-AE6D-11CF-96B8-444553540000}"), 
		0, 
		NULL, 
		REG_OPTION_NON_VOLATILE, 
		KEY_ALL_ACCESS, 
		NULL, 
		&hVirtualKey, 
		&dwDisposition
	);

	HKEY hVirtualKey__10;

lResult = 
	BoxedAppSDK_CreateVirtualRegKey(
		hKey_Classes, 
		_T("Typelib\\{D27CDB6B-AE6D-11CF-96B8-444553540000}\\1.0"), 
		0, 
		NULL, 
		REG_OPTION_NON_VOLATILE, 
		KEY_ALL_ACCESS, 
		NULL, 
		&hVirtualKey__10, 
		&dwDisposition
	);

TCHAR buf[1024] = _T("Shockwave Flash");
RegSetValueEx(
    hVirtualKey__10, 
    _T(""), 
    0, 
    REG_SZ, 
    (CONST BYTE*)buf, 
    (lstrlen(buf) + 1) * sizeof(TCHAR));