이걸 VC++ 로 걍 등록해서 써 봅시다.
그냥 실행만 하면 되니 등록이 되던 말던 신경 안써도 되것죠...
BOOL RegSvrOcx( CString strDllName, BOOL bReg )
{
	HINSTANCE hLib = LoadLibraryEx( strDllName, NULL, LOAD_WITH_ALTERED_SEARCH_PATH );
	if ( hLib == 0 )
	{
		CLogFile::LogE( _T("RegSvrOcx - hLib == 0") );
		FreeLibrary( hLib );
		return FALSE;
	}
	CString strFlag;
	if ( bReg )
	{
		strFlag = _T("DllRegisterServer");
	}
	else
	{
		strFlag = _T("DllUnregisterServer");
	}
	FARPROC lpEntryPoint;
	(FARPROC&)lpEntryPoint = GetProcAddress( hLib, strFlag );
	if ( lpEntryPoint == NULL )
	{
		OleUninitialize( );
		return FALSE;
	}
	HRESULT hr = ( *lpEntryPoint )( );
	if ( FAILED(hr) )
	{
		OleUninitialize( );
		return FALSE;		
	}
	return TRUE;
}