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