어셈블리 매니페스트
어셈블리 매니페스트는 병렬 어셈블리를 설명하는 XML 파일입니다. 어셈블리 매니페스트는 어셈블리의 병렬 어셈블리, 파일 및 리소스의 이름과 버전뿐만 아니라 다른 병렬 어셈블리에 대한 어셈블리의 의존도를 설명합니다. 병렬 어셈블리의 올바른 설치, 활성화 및 실행을 위해서는 어셈블리 매니페스트가 항상 시스템의 어셈블리와 함께 제공되어야 합니다.
XML 스키마의 전체 목록은 매니페스트 파일 스키마참조하세요.
어셈블리 매니페스트에는 다음과 같은 요소와 특성이 있습니다.
요소 | 특성 | 필수 |
---|---|---|
어셈블리 | 예 | |
manifestVersion | 예 | |
없음 | 아니요 | |
assemblyIdentity | 예 | |
형식 | 예 | |
이름 | 예 | |
언어 | 아니요 | |
processorArchitecture | 아니요 | |
버전 | 예 | |
publicKeyToken | 아니요 | |
종속성 | 아니요 | |
dependentAssembly | 아니요 | |
파일 | 아니요 | |
이름 | 예 | |
해시 | 아니요 | |
해시 | 아니요 | |
comClass | 아니요 | |
설명 | 아니요 | |
clsid | 예 | |
threadingModel | 아니요 | |
tlbid | 아니요 | |
progid | 아니요 | |
miscStatus | 아니요 | |
miscStatusIcon | 아니요 | |
miscStatusContent | 아니요 | |
miscStatusDocPrint | 아니요 | |
miscStatusThumbnail | 아니요 | |
typelib | 아니요 | |
tlbid | 예 | |
버전 | 예 | |
helpdir | 예 | |
resourceid | 아니요 | |
플래그 | 아니요 | |
comInterfaceExternalProxyStub | 아니요 | |
iid | 예 | |
baseInterface | 아니요 | |
numMethods | 아니요 | |
이름 | 아니요 | |
tlbid | 아니요 | |
proxyStubClsid32 | 아니요 | |
comInterfaceProxyStub | 아니요 | |
iid | 예 | |
이름 | 예 | |
tlbid | 아니요 | |
baseInterface | 아니요 | |
numMethods | 아니요 | |
proxyStubClsid32 | 아니요 | |
threadingModel | 아니요 | |
windowClass | 아니요 | |
버전이 지정된 | 아니요 |
파일 위치
어셈블리 매니페스트는 다음 세 위치에 설치할 수 있습니다.
- 공유 어셈블리와 함께 제공되는 매니페스트가어셈블리 매니페스트는 side-by-side 어셈블리 캐시에 별도의 파일로 설치되어야 합니다. 일반적으로 Windows 디렉터리의 WinSxS 폴더입니다.
- 프라이빗 어셈블리와 함께 제공되는 매니페스트가어셈블리 매니페스트는 애플리케이션의 디렉터리 구조에 설치되어야 합니다. 일반적으로 애플리케이션의 실행 파일과 동일한 폴더에 있는 별도의 파일입니다.
- DLL의 리소스인 어셈블리는 DLL의 프라이빗 용도로 사용할 수 있습니다. 어셈블리 매니페스트는 EXE의 리소스로 포함할 수 없습니다. EXE 파일에는 리소스로 애플리케이션 매니페스트가 포함될 수 있습니다.
파일 이름 구문
어셈블리 매니페스트의 이름은 유효한 파일 이름 뒤에 .manifest
.
예를 들어 myassembly를 참조하는 어셈블리 매니페스트는 myassembly.<resource ID>.manifest
파일 이름 구문을 사용합니다.
어셈블리 매니페스트가 별도의 파일로 설치되거나 리소스 ID가 1인 경우 <resource ID>
필드를 생략할 수 있습니다.
메모
프라이빗 어셈블리를 나란히 검색하는 방식으로 인해 DLL을 프라이빗 어셈블리로 패키징할 때 다음과 같은 명명 제한이 적용됩니다. 이 작업을 수행하는 권장 방법은 DLL에 어셈블리 매니페스트를 리소스로 배치하는 것입니다. 이 경우 리소스 ID는 1이어야 하며 프라이빗 어셈블리의 이름은 DLL의 이름과 같을 수 있습니다. 예를 들어 DLL 이름이 Microsoft.Windows.mysample.dll경우 매니페스트의 assemblyIdentity 요소에 사용되는 이름 특성 값도 Microsoft.Windows.mysample일 수 있습니다. 다른 방법은 어셈블리 매니페스트를 별도의 파일에 배치하는 것입니다. 이 경우 어셈블리의 이름과 해당 매니페스트는 DLL의 이름과 달라야 합니다. 예를 들어 Microsoft.Windows.mysampleAsm, Microsoft.Windows.mysampleAsm.manifest 및 Microsoft.Windows.Mysample.dll. 프라이빗 어셈블리를 나란히 검색하는 방법에 대한 자세한 내용은 어셈블리 검색 시퀀스참조하세요.
요소
요소 및 특성의 이름은 대/소문자를 구분합니다. 요소 및 특성의 값은 형식 특성의 값을 제외하고 대/소문자를 구분하지 않습니다.
-
어셈블리
-
컨테이너 요소입니다. 첫 번째 하위 요소는 assemblyIdentity 또는 noInheritable 요소여야 합니다. 어셈블리 매니페스트는 assemblyIdentity의해 식별되는 병렬 어셈블리를 고유하게 설명합니다. 필수.
어셈블리 요소는 "urn:schemas-microsoft-com:asm.v1" 네임스페이스에 있어야 합니다. 어셈블리의 자식 요소도 상속 또는 태그 지정을 통해 이 네임스페이스에 있어야 합니다.
어셈블리 요소에는 다음 특성이 있습니다.
속성 묘사 manifestVersion manifestVersion 특성은 1.0으로 설정해야 합니다. -
noInheritable
-
어셈블리 매니페스트에 이 요소를 포함하여 어셈블리가 활성화 컨텍스트 및 해당 개체를 관리함을 나타냅니다. noInheritable 요소는 어셈블리 요소의 하위 요소여야 합니다. assemblyIdentity 요소는 noInheritable 요소 후에 와야 합니다. 어셈블리가 noInherit 요소를 포함하는 애플리케이션 매니페스트에서 사용되는 경우 어셈블리 매니페스트에 noInheritable 요소가 필요합니다. 애플리케이션 매니페스트의 noInheritable 요소는 영향을 주지 않습니다. noInheritable 요소에는 자식 요소가 없습니다.
-
assemblyIdentity
-
병렬 어셈블리를 설명하고 고유하게 식별합니다.
어셈블리 요소의 첫 번째 하위 요소인 assemblyIdentity 이 어셈블리 매니페스트를 소유하는 병렬 어셈블리를 설명하고 고유하게 식별합니다. 이를 어셈블리 매니페스트의 DEF 컨텍스트 assemblyIdentity 호출합니다.
dependentAssembly 요소의 첫 번째 하위 요소인 assemblyIdentity DEF 컨텍스트 assemblyIdentity사용되는 side-by-side 어셈블리를 설명하고 고유하게 식별합니다. 이를 어셈블리 매니페스트의 ref-context assemblyIdentity 호출합니다. DEF 컨텍스트 어셈블리를 사용하려면 REF 컨텍스트 어셈블리가 올바르게 작동해야 합니다. 모든 REF 컨텍스트 assemblyIdentity 참조된 어셈블리의 자체 어셈블리 매니페스트에 있는 해당 DEF 컨텍스트 assemblyIdentity 정확히 일치해야 합니다.
이 요소에는 하위 요소가 없습니다. assemblyIdentity 요소에는 다음 특성이 있습니다.
속성 묘사 형식 어셈블리 형식을 지정합니다. 값은 win32이고 소문자는 win32여야 합니다. 필수. 이름 어셈블리의 이름을 고유하게 지정합니다. 어셈블리 이름에 다음 형식을 사용합니다. Organization.Division.Name. 예를 들어 Microsoft.Windows.mysampleAsm입니다. 필수. 별도의 매니페스트 파일을 사용하여 프라이빗 어셈블리로 패키지된 DLL의 경우 어셈블리 이름은 DLL 및 매니페스트의 이름과 달라야 합니다. 언어 어셈블리의 언어를 식별합니다. 선택적. 어셈블리가 언어별인 경우 DHTML 언어 코드를 지정합니다. DEF 컨텍스트 전 세계 사용(언어 중립)을 위한 어셈블리 매니페스트의 assemblyIdentity 언어 특성을 생략합니다.
전 세계적으로 사용하기 위한 어셈블리 매니페스트의 ref-context assemblyIdentity 언어 값을 "*"로 설정합니다.processorArchitecture 프로세서를 지정합니다. 유효한 값은 32비트 Windows의 경우 x86, 64비트 Windows의 경우 ia64입니다. 선택적. 버전 어셈블리 버전을 지정합니다. 네 부분으로 구성된 버전 형식인 mmmmm.nnnnn.ooooo.ppppp를 사용합니다. 마침표로 구분된 각 파트는 0-65535를 포함할 수 있습니다. 자세한 내용은 어셈블리 버전참조하세요. 필수. publicKeyToken 어셈블리가 서명된 공개 키의 SHA-1 해시의 마지막 8바이트를 나타내는 16자 16자 문자열입니다. 카탈로그에 서명하는 데 사용되는 공개 키는 2048비트 이상이어야 합니다. 공유 병렬 어셈블리에 필요합니다. -
종속성
-
하나 이상의 dependentAssembly포함하는 컨테이너 요소입니다. 첫 번째 하위 요소는 dependentAssembly 요소여야 합니다. 종속성 특성이 없습니다. 선택적.
-
dependentAssembly
-
첫 번째 하위 요소는 이 어셈블리 매니페스트를 소유하는 side-by-side 어셈블리에서 사용되는 side-by-side 어셈블리를 설명하고 고유하게 식별하는 assemblyIdentity 요소여야 합니다. 모든 dependentAssembly 정확히 하나의 종속성내에 있어야 합니다. 선택적.
-
파일
-
side-by-side 어셈블리에서 사용하는 파일을 포함합니다. comClass, typelib, windowClass, comInterfaceProxyStub 하위 항목을 포함합니다. 선택적.
파일 요소에는 다음과 같은 특성이 있습니다.
속성 묘사 이름 파일의 이름(예: Conctl32.dll. 해시 파일의 해시를 만드는 데 사용되는 알고리즘입니다. 이 값은 SHA1이어야 합니다. 해시 이름으로 참조되는 파일의 해시입니다. 해시 알고리즘에 따라 길이가 16진수인 문자열입니다. -
comClass
-
파일 요소의 하위 요소입니다. 선택적.
comClass 요소에는 다음과 같은 특성이 있습니다.
속성 묘사 설명 클래스 이름입니다. clsid 클래스를 고유하게 식별하는 GUID입니다. 필수. 값은 유효한 GUID 형식이어야 합니다. threadingModel In-process COM 클래스에서 사용하는 스레딩 모델입니다. 이 속성이 null이면 스레딩 모델이 사용되지 않습니다. 구성 요소는 클라이언트의 주 스레드에 만들어지고 다른 스레드의 호출은 이 스레드로 마샬링됩니다. 선택적. 유효한 값은 "Apartment", "Free", "Both" 및 "Neutral"입니다. tlbid 이 COM 구성 요소의 형식 라이브러리에 대한 GUID입니다. 값은 GUID 형식이어야 합니다. 선택적. progid COM 구성 요소와 연결된 버전 종속 프로그래밍 식별자입니다. ProgID의 형식은 공급업체><. 구성 요소><.<버전>. miscStatus 어셈블리의 중복은 MiscStatus 레지스트리 키에서 제공하는 정보를 매니페스트합니다. miscStatusIcon, miscStatusContent, miscStatusDocprint또는 miscStatusThumbnail 특성에 대한 값을 찾을 수 없는 경우 miscStatus 나열된 해당 기본값이 누락된 특성에 사용됩니다. 값은 아래 표에서 쉼표로 구분된 특성 값 목록일 수 있습니다. COM 클래스가 Miscstatus 레지스트리 키 값이 필요한 OCX 클래스인 경우 이 특성을 사용할 수 있습니다. miscStatusIcon 어셈블리의 중복은 DVASPECT_ICON 제공된 정보를 매니페스트합니다. 개체의 아이콘을 제공할 수 있습니다. 값은 아래 표에서 쉼표로 구분된 특성 값 목록일 수 있습니다. COM 클래스가 Miscstatus 레지스트리 키 값이 필요한 OCX 클래스인 경우 이 특성을 사용할 수 있습니다. miscStatusContent 어셈블리의 중복은 DVASPECT_CONTENT 제공된 정보를 매니페스트합니다. 화면이나 프린터에 표시할 수 있는 복합 문서를 제공할 수 있습니다. 값은 아래 표에서 쉼표로 구분된 특성 값 목록일 수 있습니다. COM 클래스가 Miscstatus 레지스트리 키 값이 필요한 OCX 클래스인 경우 이 특성을 사용할 수 있습니다. miscStatusDocprint 어셈블리의 중복은 DVASPECT_DOCPRINT 제공된 정보를 매니페스트합니다. 프린터에 인쇄된 것처럼 화면에 표시할 수 있는 개체 표현을 제공할 수 있습니다. 값은 아래 표에서 쉼표로 구분된 특성 값 목록일 수 있습니다. COM 클래스가 Miscstatus 레지스트리 키 값이 필요한 OCX 클래스인 경우 이 특성을 사용할 수 있습니다. miscStatusThumbnail 어셈블리의 중복은 DVASPECT_THUMBNAIL 제공한 정보를 매니페스트합니다. 검색 도구에 표시할 수 있는 개체의 썸네일을 제공할 수 있습니다. 값은 아래 표에서 쉼표로 구분된 특성 값 목록일 수 있습니다. COM 클래스가 Miscstatus 레지스트리 키 값이 필요한 OCX 클래스인 경우 이 특성을 사용할 수 있습니다. comClass 요소는 버전 종속 progid를 나열하는 자식 요소로 요소><가질 수 있습니다.
다음 예제에서는 파일 요소에 포함된 comClass 요소를 보여줍니다.
<file name="sampleu.dll"> <comClass description="Font Property Page" clsid="{0BE35200-8F91-11CE-9DE3-00AA004BB851}" threadingModel = "Both" tlbid = "{44EC0535-400F-11D0-9DCD-00A0C90391D3}"/> <comClass description="Color Property Page" clsid="{0BE35201-8F91-11CE-9DE3-00AA004BB851}" progid="ABC.Registrar"/> </file>
COM 클래스가 개체를 만들고 표시하는 방법을 지정하기 위해 MiscStatus 레지스트리 하위 키가 필요한 OCX 클래스인 경우 어셈블리 매니페스트에서 이 정보를 복제하여 개체를 사용하도록 설정할 수 있습니다. miscStatus, miscStatusIcon, miscStatusContent, miscStatusDocprint 및 comClass 요소의 miscStatusThumbnail 특성을 사용하여 개체의 특성을 지정합니다. 이러한 특성을 다음 표에서 쉼표로 구분된 특성 값 목록으로 설정합니다. 이러한 특성은 DVASPECT 열거형에서 제공하는 정보를 복제합니다. miscStatusIcon, miscStatusContent, miscStatusDocprint또는 miscStatusThumbnail대한 값이 없는 경우 miscStatus 지정된 기본값이 사용됩니다. 다음 표의 특성 값을 사용합니다. 이는 OLEMISC 열거형의 비트 플래그에 해당합니다.
특성 값 OLEMISC 상수 recomposeonresize OLEMISC_RECOMPOSEONRESIZE onlyiconic OLEMISC_ONLYICONIC insertnotreplace OLEMISC_INSERTNOTREPLACE 정적인 OLEMISC_STATIC cantlinkinside OLEMISC_CANTLINKINSIDE canlinkbyole1 OLEMISC_CANLINKBYOLE1 islinkobject OLEMISC_ISLINKOBJECT insideout OLEMISC_INSIDEOUT activatewhenvisible OLEMISC_ACTIVATEWHENVISIBLE renderingisdeviceindependent OLEMISC_RENDERINGISDEVICEINDEPENDENT invisibleatruntime OLEMISC_INVISIBLEATRUNTIME alwaysrun OLEMISC_ALWAYSRUN actslikebutton OLEMISC_ACTSLIKEBUTTON actslikelabel OLEMISC_ACTSLIKELABEL nouiactivate OLEMISC_NOUIACTIVATE alignable OLEMISC_ALIGNABLE simpleframe OLEMISC_SIMPLEFRAME setclientsitefirst OLEMISC_SETCLIENTSITEFIRST imemode TOLEMISC_IMEMODE ignoreativatewhenvisible OLEMISC_IGNOREACTIVATEWHENVISIBLE wantstomenumerge OLEMISC_WANTSTOMENUMERGE supportsmultilevelundo OLEMISC_SUPPORTSMULTILEVELUNDO -
typelib
-
파일 요소의 하위 요소입니다. 선택적.
typelib 요소에는 다음 표에 표시된 특성이 있습니다.
속성 묘사 tlbid 형식 라이브러리의 고유 ID입니다. 필수. 버전 형식 라이브러리의 두 부분으로 구성된 버전 번호입니다. 부 버전 번호만 증가하는 경우 이전 형식 라이브러리의 모든 기능이 호환되는 방식으로 지원됩니다. 주 버전 번호가 변경되면 형식 라이브러리에 대해 컴파일된 코드를 다시 컴파일해야 합니다. 형식 라이브러리의 버전 번호는 애플리케이션의 버전 번호와 다를 수 있습니다. 필수. helpdir 형식 라이브러리의 형식에 대한 도움말 파일이 있는 디렉터리입니다. 애플리케이션에서 여러 언어에 대한 형식 라이브러리를 지원하는 경우 라이브러리는 도움말 파일 디렉터리의 다른 파일 이름을 참조할 수 있습니다. 값이 없으면 ""를 지정합니다. 필수. resourceid 로캘 식별자(LCID)의 16진수 문자열 표현입니다. 0x 접두사 및 선행 0이 없는 1~4개의 16진수 숫자입니다. LCID에는 중립 하위 언어 식별자가 있을 수 있습니다. 자세한 내용은 로캘 식별자참조하세요. 선택적. 플래그 이 형식 라이브러리에 대한 형식 라이브러리 플래그의 문자열 표현입니다. 특히 "RESTRICTED", "CONTROL", "HIDDEN" 및 "HASDISKIMAGE" 중 하나여야 합니다. 다음은 LIBFLAGS 열거형의 값이며, ICreateTypeLib::SetLibFlags 메서드의 uLibFlags 매개 변수에 지정된 것과 동일한 플래그입니다. 선택적. 다음 예제에서는 파일 요소에 포함된 typelib 요소를 보여줍니다.
<file name="sampleu.dll"> <typelib tlbid="{44EC0535-400F-11D0-9DCD-00A0C90391D3}" version="1.0" helpdir=""/> </file>
-
comInterfaceExternalProxyStub
-
comInterfaceExternalProxyStub어셈블리 요소의 하위 요소이며 자동화 인터페이스에 사용됩니다. 예를 들어 IDispatch및 파생 인터페이스를. 선택적.
기본 프록시 스텁 구현은 IDispatch파생된 인터페이스와 같은 대부분의 자동화 인터페이스에 적합합니다. 인터페이스 프록시 스텁 및 기타 모든 외부 프록시 스텁 인터페이스 구현은 comInterfaceExternalProxyStub나열되어야 합니다. comInterfaceExternalProxyStub 요소에는 다음 표에 표시된 특성이 있습니다.
속성 묘사 iid 프록시가 선언되는 인터페이스의 IID입니다. 필수. 값은 "{iid}" 형식이어야 합니다. baseInterface iid 특성에 의해 설명된 인터페이스의 IID가 파생됩니다. 이 특성은 선택 사항입니다. 값은 "{iid}" 형식이어야 합니다. numMethods 인터페이스에서 구현하는 메서드의 수입니다. 이 특성은 선택 사항입니다. 값은 "n" 형식이어야 합니다. 이름 코드에 표시되는 인터페이스의 이름입니다. 예를 들어 "IViewObject"입니다. 설명 문자열이 아니어야 합니다. 이 특성은 선택 사항입니다. 값은 "name" 형식이어야 합니다. tlbid iid 특성으로 지정된 인터페이스에 대한 설명을 포함하는 형식 라이브러리입니다. 이 특성은 선택 사항입니다. 값은 "{tlbid}" 형식이어야 합니다. proxyStubClsid32 32비트 프록시 DLL의 CLSID에 IID를 매핑합니다. 다음 예제에서는 comInterfaceExternalProxyStub 요소를 보여줍니다.
<comInterfaceExternalProxyStub name="IAxWinAmbientDispatch" iid="{B6EA2051-048A-11D1-82B9-00C04FB9942E}" numMethods="35" baseInterface="{00000000-0000-0000-C000-000000000046}"/>
-
comInterfaceProxyStub
-
파일 요소의 하위 요소입니다. 선택적.
어셈블리의 파일이 프록시 스텁을 구현하는 경우 해당 파일 태그는 comInterfaceProxyStub 요소와 동일한 특성을 갖는 comInterfaceProxyStub 하위 요소를 포함해야 합니다. 구성 요소에 대한 comInterfaceProxyStub 종속성을 생략하면 프로세스와 스레드 간의 인터페이스 마샬링이 예상대로 작동하지 않을 수 있습니다.
comInterfaceProxyStub 요소에는 다음과 같은 특성이 있습니다.
속성 묘사 iid 입니다. 프록시가 선언되는 인터페이스의 IID입니다. 필수. 값은 "{iid}" 형식이어야 합니다. 이름 코드에 표시되는 인터페이스의 이름입니다. 예를 들어 "IViewObject"입니다. 설명 문자열이 아니어야 합니다. 이 특성은 선택 사항입니다. 값은 "name" 형식이어야 합니다. tlbid iid 특성으로 지정된 인터페이스에 대한 설명을 포함하는 형식 라이브러리입니다. 이 특성은 선택 사항입니다. 값은 "{tlbid}" 형식이어야 합니다. baseInterface iid 특성에 의해 설명된 인터페이스의 IID가 파생됩니다. 이 특성은 선택 사항입니다. 값은 "{iid}" 형식이어야 합니다. numMethods 인터페이스에서 구현하는 메서드의 수입니다. 이 특성은 선택 사항입니다. 값은 "n" 형식이어야 합니다. proxyStubClsid32 32비트 프록시 DLL의 CLSID에 IID를 매핑합니다. threadingModel In-process COM 클래스에서 사용하는 스레딩 모델입니다. 이 속성이 null이면 스레딩 모델이 사용되지 않습니다. 구성 요소는 클라이언트의 주 스레드에 만들어지고 다른 스레드의 호출은 이 스레드로 마샬링됩니다. 선택적. 유효한 값은 "Apartment", "Free", "Both" 및 "Neutral"입니다. -
windowclass
-
버전이 지정될 Windows 클래스의 이름입니다. windowclass 요소에는 다음 특성이 있습니다.
속성 묘사 버전이 지정된 이 특성은 등록에 사용된 내부 창 클래스 이름에 창 클래스가 포함된 어셈블리 버전이 포함되어 있는지 여부를 제어합니다. 이 특성의 값은 "yes" 또는 "no"일 수 있습니다. 기본값은 "예"입니다. "no" 값은 동일한 창 클래스가 side-by-side 구성 요소와 동등한 비-side-by-side 구성 요소에 의해 정의되고 동일한 창 클래스로 처리하려는 경우에만 사용해야 합니다. 창 클래스 등록에 대한 일반적인 규칙은 버전이 지정되지 않았으므로 창 클래스를 등록하는 첫 번째 구성 요소만 적용됩니다. 다음 예제에서는 파일 요소에 포함된 windowclass 요소를 보여줍니다.
<file name="comctl32.dll"> <windowClass versioned="no">ToolbarWindow32</windowClass> </file>
본보기
다음은 어셈블리 매니페스트의 예입니다.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0">
<assemblyIdentity type="win32" name="Microsoft.Tools.SampleAssembly" version="6.0.0.0" processorArchitecture="x86" publicKeyToken="0000000000000000"/>
<file name="sampleu.dll" hash="3eab067f82504bf271ed38112a4ccdf46094eb5a" hashalg="SHA1">
<comClass description="Font Property Page" clsid="{0BE35200-8F91-11CE-9DE3-00AA004BB851}"/>
<comClass description="Color Property Page" clsid="{0BE35201-8F91-11CE-9DE3-00AA004BB851}"/>
<comClass description="Picture Property Page" clsid="{0BE35202-8F91-11CE-9DE3-00AA004BB851}"/>
</file>
<file name="bar.dll" hash="ac72753e5bb20446d88a48c8f0aaae769a962338" hashalg="SHA1"/>
<file name="foo.dll" hash="a7312a1f6cfb46433001e0540458de60adcd5ec5" hashalg="SHA1">
<comClass description="Registrar Class" clsid="{44EC053A-400F-11D0-9DCD-00A0C90391D3}" progid="ATL.Registrar"/>
<comInterfaceProxyStub iid="{B6EA2051-048A-11D1-82B9-00C04FB9942E}" name=" IAxWinAmbientDispatch " tlbid="{34EC053A-400F-11D0-9DCD-00A0C90391D3}"/>
<typelib tlbid="{44EC0535-400F-11D0-9DCD-00A0C90391D3}" version="1.0" helpdir=""/>
</file>
<file name="sampledll.dll" hash="ba62960ceb15073d2598379307aad84f3a73dfcb" hashalg="SHA1"/>
<windowClass>ToolbarWindow32</windowClass>
<windowClass>ComboBoxEx32</windowClass>
<windowClass>sample_trackbar32</windowClass>
<windowClass>sample_updown32</windowClass>
</assembly>