Example #1
0
STDAPI DllRegisterServer(void)
{
	// registers object, typelib and all interfaces in typelib
	HRESULT hr = _Module.RegisterServer(TRUE);
	if (FAILED(hr)) return hr;

	ICatRegister   *pcr;

	hr = CoCreateInstance(CLSID_StdComponentCategoriesMgr, 
		NULL, 
		CLSCTX_INPROC_SERVER, 
		IID_ICatRegister, 
		(LPVOID*)&pcr);
	
	if(SUCCEEDED(hr))
	{
		{
			CATEGORYINFO catinfo[1];

			catinfo[0].catid = CATID_LXFrameworkPlugin;
			catinfo[0].lcid = 0;
			wcscpy(catinfo[0].szDescription, L"LXFramework Plugin");
		
			pcr->RegisterCategories(sizeof(catinfo)/sizeof(CATEGORYINFO), catinfo);
		}

		{
			CATID rgcatid[1];

			rgcatid[0] = CATID_LXFrameworkPlugin;

			hr = pcr->RegisterClassImplCategories(CLSID_LXImageApp, 1, rgcatid);
		}

		pcr->Release();
	}

	return hr;
}
Example #2
0
STDAPI DllRegisterServer(void)
{
	USES_CONVERSION;

    // registers object, typelib and all interfaces in typelib
	HRESULT hr = _Module.RegisterServer(TRUE);
	if (FAILED(hr)) return hr;

	ICatRegister   *pcr;

	hr = CoCreateInstance(CLSID_StdComponentCategoriesMgr, 
		NULL, 
		CLSCTX_INPROC_SERVER, 
		IID_ICatRegister, 
		(LPVOID*)&pcr);
	
	if(SUCCEEDED(hr))
	{
#if 0
		{
			CATEGORYINFO catinfo[1];

			catinfo[0].catid = CATID_LXMLPlugin;
			catinfo[0].lcid = 0;
			wcscpy(catinfo[0].szDescription, L"LXML Implementation");

			pcr->RegisterCategories(sizeof(catinfo)/sizeof(CATEGORYINFO), catinfo);
		}

		{
			CATID rgcatid[1];

			rgcatid[0] = CATID_LXMLPlugin;

			hr = pcr->RegisterClassImplCategories(CLSID_LXUIImplementation, 1, rgcatid);
		}
#endif

		pcr->Release();
	}

#if 0
	{
		LPOLESTR clsidString;
		StringFromCLSID(CLSID_ActiveXControl, &clsidString);

		{
			CRegKey key;
			key.Create(HKEY_CLASSES_ROOT, "lx3dfile\\CLSID");
			key.SetValue(W2A(clsidString));
		}

		{
			CRegKey key;
			key.Create(HKEY_CLASSES_ROOT, ".wrl");
			key.SetValue("lx3dfile");
			//key.SetValue("image/svg+xml", "Content Type");
		}
		{
			CRegKey key;
			key.Create(HKEY_CLASSES_ROOT, ".x3d");
			key.SetValue("lx3dfile");
			key.SetValue("model/x3d+xml", "Content Type");
		}
		{
			CRegKey key;
			key.Create(HKEY_CLASSES_ROOT, ".x3dv");
			key.SetValue("lx3dfile");
			//key.SetValue("image/svg+xml", "Content Type");
		}
		{
			CRegKey key;
			key.Create(HKEY_CLASSES_ROOT, ".3ds");
			key.SetValue("lx3dfile");
			//key.SetValue("image/svg+xml", "Content Type");
		}

		// Mime
		{
			{
				CRegKey key;
				key.Create(HKEY_CLASSES_ROOT, "mime\\Database\\Content Type\\model/x3d+xml");
				key.SetValue(".x3d", "Extension");
				key.SetValue(W2A(clsidString), "CLSID");
			}

			{
				CRegKey key;
				key.Create(HKEY_CLASSES_ROOT, "mime\\Database\\Content Type\\model/x3d-vrml");
				key.SetValue(".x3d", "Extension");
				key.SetValue(W2A(clsidString), "CLSID");
			}

			{
				CRegKey key;
				key.Create(HKEY_CLASSES_ROOT, "mime\\Database\\Content Type\\x-world/x-x3d");
				key.SetValue(".x3d", "Extension");
				key.SetValue(W2A(clsidString), "CLSID");
			}

			{
				CRegKey key;
				key.Create(HKEY_CLASSES_ROOT, "mime\\Database\\Content Type\\x-world/x-vrml");
				key.SetValue(".x3d", "Extension");
				key.SetValue(W2A(clsidString), "CLSID");
			}

			{
				CRegKey key;
				key.Create(HKEY_CLASSES_ROOT, "mime\\Database\\Content Type\\model/vrml");
				key.SetValue(".x3d", "Extension");
				key.SetValue(W2A(clsidString), "CLSID");
			}

			{
				CRegKey key;
				key.Create(HKEY_CLASSES_ROOT, "mime\\Database\\Content Type\\model/x3d");
				key.SetValue(".x3d", "Extension");
				key.SetValue(W2A(clsidString), "CLSID");
			}
		}
	}

	if (TRUE)
	{
		LPOLESTR clsidString = L"{5B90C952-8156-4ed2-9D76-BD9FDFC64436}";
		//StringFromCLSID(CLSID_LHTMLActiveDocument, &clsidString);


		_SetRegKey("LTesting.LTest.1", "LTest Class");
		_SetRegKey("LTesting.LTest.1\\CLSID", W2A(clsidString));
		_SetRegKey("LTesting.LTest.1\\Insertable", "0");
		if (TRUE)
		{
			_SetRegKey("LTesting.LTest.1\\DocObject", "0");
		}

		_SetRegKey("LTesting.LTest", "LTest Class");
		_SetRegKey("LTesting.LTest\\CLSID", W2A(clsidString));
		_SetRegKey("LTesting.LTest\\CurVer", "LTesting.LTest.1");

			//char* clsidString = "{06090DC5-EE21-4eca-B8AB-11FFA3F1A393}";

		_SetRegKey(CString("CLSID\\") + W2A(clsidString), "LTest Class");
		_SetRegKey(CString("CLSID\\") + W2A(clsidString) + "\\ProgID", "LTesting.LTest.1");
		_SetRegKey(CString("CLSID\\") + W2A(clsidString) + "\\VersionIndependentProgID", "LTesting.LTest");
		_SetRegKey(CString("CLSID\\") + W2A(clsidString) + "\\Programmable", NULL);
		_SetRegKey(CString("CLSID\\") + W2A(clsidString) + "\\InprocServer32", "C:\\WINNT\\System32\\LXUI.dll");
		_SetRegKey(CString("CLSID\\") + W2A(clsidString) + "\\InprocServer32", "Apartment", "ThreadingModel");
		_SetRegKey(CString("CLSID\\") + W2A(clsidString) + "\\Insertable", NULL);
		_SetRegKey(CString("CLSID\\") + W2A(clsidString) + "\\Control", NULL);
		if (TRUE)
		{
			_SetRegKey(CString("CLSID\\") + W2A(clsidString) + "\\DocObject", "0");
			_SetRegKey(CString("CLSID\\") + W2A(clsidString) + "\\DefaultExtension", ".xht, LHTML Documents (*.xht)");
		}

		_SetRegKey(CString("CLSID\\") + W2A(clsidString) + "\\TypeLib", "{907526D5-5F3A-469D-B3F5-71FCF58B9E10}");

		if (TRUE)
		{
			TCHAR filename[MAX_PATH];
			{
				CRegKey key;
				key.Open(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\IEXPLORE.EXE");

				DWORD dwCount = sizeof(filename);
				key.QueryValue(filename, NULL, &dwCount);
			}

	//	MessageBox(NULL, "7", "", MB_OK);

			{
				CRegKey key;
				key.Create(HKEY_CLASSES_ROOT, "svgfile\\CLSID");
				key.SetValue(W2A(clsidString));
			}

			{
				CRegKey key;
				key.Create(HKEY_CLASSES_ROOT, "svgfile\\DefaultIcon");
				key.SetValue("%SystemRoot%\\system32\\url.dll,0");
			}

	//	MessageBox(NULL, "8", "", MB_OK);

			{
				CRegKey key;
				key.Create(HKEY_CLASSES_ROOT, "svgfile\\shell\\open\\command");

				TCHAR value[512];
				sprintf(value, "%s -nohome %%1", filename);
				key.SetValue(value);
			}

			// File extension associations
			{
				CRegKey key;
				key.Create(HKEY_CLASSES_ROOT, ".svg");
				key.SetValue("svgfile");
				key.SetValue("image/svg+xml", "Content Type");
			}

			{
				CRegKey key;
				key.Create(HKEY_CLASSES_ROOT, ".svgz");
				key.SetValue("svgfile");
				key.SetValue("image/svg+xml", "Content Type");
			}

			{
				CRegKey key;
				key.Create(HKEY_CLASSES_ROOT, ".xht");
				key.SetValue("svgfile");
				key.SetValue("application/xhtml+xml", "Content Type");
			}

		// Mime associations
			{
				CRegKey key;
				key.Create(HKEY_CLASSES_ROOT, "mime\\Database\\Content Type\\image/svg+xml");
				key.SetValue(".svg", "Extension");
				key.SetValue(W2A(clsidString), "CLSID");
			}

			/*
			{
				CRegKey key;
				key.Create(HKEY_CLASSES_ROOT, "mime\\Database\\Content Type\\image/svg+xml");
				key.SetValue(".svgz", "Extension");
				key.SetValue(W2A(clsidString), "CLSID");
			}
			*/

			{
				CRegKey key;
				key.Create(HKEY_CLASSES_ROOT, "mime\\Database\\Content Type\\application/xhtml+xml");
				key.SetValue(".xht", "Extension");
				key.SetValue(W2A(clsidString), "CLSID");
			}

		///////////
			CoTaskMemFree(clsidString);

			SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, 0, 0);
		}
	}
#endif

	return hr;
}