2009-10-20 4 views
1

Visual C++를 사용하고 있습니다. 사용자가 관리자 인 경우에도 현재 사용자에 대해 등록 된 DLL 만 갖고 싶습니다.DLL 자체 등록 : 현재 사용자 만 등록하는 방법?

그런 이유로 나는 project.rgs의 모든 참조를 HKCR로 변경했습니다. 그러나 regsvr32을 사용하여 프로세스 모니터를 사용하여 DLL을 등록하면 여전히 HKCR\TypeLib\{ ... }을 만들려고합니다. CComModule::RegisterServer()로 전화하면이 문제가 발생합니다.

이것은 내재적으로 CComModule입니까? Visual C++의 구성면에서 제가 빠진 것이 있습니까? 내가 RegOverridePredefKey을 사용할 수 있다는 것을 알고 있지만, 더 많은 DLL을로드하고 싶지 않고 매우 우아한 솔루션이 아닙니다.

답변

2

CComModule::RegisterServer()에는 형식 라이브러리를 등록해야하는지 여부를 나타내는 첫 번째 매개 변수 인 BOOL이 있습니다. FALSE으로 설정하면 시도하지 않습니다.

+0

RegisterServer (..)의 BOOL 매개 변수는 사용자 별 제어가 아닌 typelib를 등록 할 것인지 여부입니다. –

+0

네, 그렇습니다. 이 매개 변수는 typeplib을 등록하는 코드를 호출할지 여부를 제어합니다. OP의 문제는 그의 .rgs 파일이 레지스트리에 롤인 된 후 typlib 등록 코드가 호출되어 "HKCR \ TypeLib \ {Something} 키에 롤백됩니다." – sharptooth

+0

글쎄, 등록하지 않으려 고합니다. 그것은 단지'HKCU \ Software \ Classes \ TypeLib'에 등록되도록하고 싶습니다. – known

0

HKCR 대신 로컬 사용자가 HKEY_CURRENT_USER\Software\Classes을 사용하도록 서버를 등록하려면 HKCR이 현재 사용자 레지스트리 하이브에 매핑되어 있지 않습니다.

관련 문제