Insertable ActiveX на .net/C#
От: lezah  
Дата: 27.06.12 08:33
Оценка:
Добрый день!

Пытаюсь создать на C# Insertable ActiveX, чтобы его можно было вставлять в программы MS Office через "Вставить->Объект". Долго искал, как это сделать, нашел, что за это отвечает параметр Insertable в реестре. Но мой объект все равно не появляется в списке.

В качестве примера привожу функцию регистрации, которую я на этом же форуме нашел в другой теме.

ActiveX действительно регистрируется в системе, но он не появляется в списке Insertable объектов.

Помогите, пожалуйста.

[ComRegisterFunction()]
public static void AxRegisterClass( String key )
{
// Strip off HKEY_CLASSES_ROOT\ from the passed key as I don't need it
StringBuilder sb = new StringBuilder(key);
sb.Replace("HKEY_CLASSES_ROOT\\", "");
// Open the CLSID\{guid} key for write access
RegistryKey rk = Registry.ClassesRoot.OpenSubKey(sb.ToString(),true);

// Next create the CodeBase entry — needed if not string named and GACced.
RegistryKey inprocServer32 = rk.OpenSubKey("InprocServer32", true);
inprocServer32.SetValue("", "C:\\WINDOWS\\system32\\mscoree.dll");
inprocServer32.Close() ;

// And create the 'Control' key — this allows it to show up in
// the ActiveX control container
rk.CreateSubKey("Control");
rk.CreateSubKey("Insertable");
rk.CreateSubKey("Programmable");
rk.CreateSubKey("TypeLib").SetValue("", "{09CC5676-60CB-41bf-B405-09F205845EC4}");
rk.CreateSubKey("Version").SetValue("", "1.0");

// Finally close the main key
rk.Close();
}
insertable activex c# .net
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.