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; }
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; }