티스토리 뷰

Software

UAC 오류 및 대책

2009. 12. 18. 10:16

▣ CoCreateInstanceAsAdmin() 에러 메세지

▷ 0x800704C7 사용자가 작업을 취소했습니다.
; 권한 상승 화면에서 "취소"한 경우 발생

▷ 0x80080017 클래스가 관리자 권한으로 활성화를 지원하도록 구성되지 않았습니다.
; 레지스트리 "Elevation\Enabled = 1" 값이 누락된 경우 발생
=> HKLM\Software\Classes\CLSID\{C.L.S.I.D}\Elevation 위치에 "Enabled = 1" 값 추가

▷ 0x80080015 활성화하려면 CLSID 키 아래에 표시 이름이 있어야 합니다.
; 레지스트리 "LocalizedString" 값이 누락된 경우 발생
=> HKLM\Software\Classes\CLSID\{C.L.S.I.D} 위치에 "LocalizedString=@파일명,-리소스아이디" 값 추가

0x80080015 오류에 대해 좀 더 상세히 기록한 것은 [
http://zzoouc.tistory.com/entry/비스타-64비트-ActiveX컨트롤-등록문제] 에 나와 있습니다.

이에 조금만 부연하면 키는 다음의 2 곳에 들어가 있을 수 있습니다.
64비트에 32비트 컨트롤이라면
HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{해당 클래스 아이디}
64비트에 64비트 컨트롤, 32비트에 32비트 컨트롤은
HKEY_CLASSES_ROOT\CLSID\{해당 클래스 아이디}

▷ 0x8007000D 데이터가 잘못 되었습니다.
; 레지스트리 LocalizedString 값의 형식이 잘못된 경우 발생
=> (@파일명,-리소스번호) 형식으로 입력
ex) "c:\windows\system32\ax_test.dll,-101"

▷ 0x80070490 요소가 없습니다.
; DLL 파일에 해당 리소스아이디의 문자열값이 없는 경우 발생
=> DLL에 문자열 리소스 추가

▷ 0x80080016 활성화하려면 응용 프로그램에 대한 RunAs 값이 Activate As Activator여야 합니다.
; 레지스트리 "AppID" 값이 누락된 경우 발생 (??)
=> HKLM\Software\Classes\CLSID\{C.L.S.I.D} 위치에 "AppID={C.L.S.I.D}" 값 추가

▷ 0x1AD 클래스가 등록되지 않았습니다.
; 레지스트리 "AppID" 값이 누락된 경우 발생
; 레지스트리 "DllSurrogate" 값이 누락된 경우 발생
=> HKCR\AppID\{C.L.S.I.D} 위치에 "DllSurrogate=" 값 추가

댓글