ActiveXコントロールをレジストリに登録するにはコントロールの DllRegisterServer を呼び出すだけでOKです。
typedef HRESULT (__stdcall *PDllRegisterServer)(void);
typedef HRESULT (__stdcall *PDllUnregisterServer)(void);
//ActiveXコントロールをレジストリに登録する
BOOL MyDllRegisterServer(LPCTSTR lpszFileName)
{
PDllRegisterServer pDllRegisterServer;
BOOL bResult = FALSE;
HINSTANCE hLib = LoadLibrary(lpszFileName);
if(hLib != NULL) {
pDllRegisterServer = reinterpret_cast<PDllRegisterServer>(GetProcAddress(hLib, "DllRegisterServer"));
if(pDllRegisterServer != NULL) {
if(SUCCEEDED((*pDllRegisterServer)())) {
bResult = TRUE;
}
}
FreeLibrary(hLib);
}
return bResult;
}
//ActiveXコントロールをレジストリに登録解除する
BOOL MyDllUnregisterServer(LPCTSTR lpszFileName)
{
PDllUnregisterServer pDllUnregisterServer;
BOOL bResult = FALSE;
HINSTANCE hLib = LoadLibrary(lpszFileName);
if(hLib != NULL) {
pDllUnregisterServer = reinterpret_cast<PDllUnregisterServer>(GetProcAddress(hLib, "DllUnregisterServer"));
if(pDllUnregisterServer != NULL) {
if(SUCCEEDED((*pDllUnregisterServer)())) {
bResult = TRUE;
}
}
FreeLibrary(hLib);
}
return bResult;
}