어셈블리 매니페스트

어셈블리 매니페스트는 병렬 어셈블리를 설명하는 XML 파일입니다. 어셈블리 매니페스트는 어셈블리의 병렬 어셈블리, 파일 및 리소스의 이름 및 버전뿐만 아니라 다른 병렬 어셈블리에 대한 어셈블리의 종속성을 설명합니다. 병렬 어셈블리의 올바른 설치, 활성화 및 실행을 위해서는 어셈블리 매니페스트가 항상 시스템의 어셈블리와 함께 제공되어야 합니다.

XML 스키마의 전체 목록은 매니페스트 파일 스키마를 참조하세요.

어셈블리 매니페스트에는 다음과 같은 요소와 특성이 있습니다.

요소 특성 필수
어셈블리
manifestVersion
noInheritable
assemblyIdentity
type
name
language
processorArchitecture 아니요
version
publicKeyToken 아니요
종속성 아니요
dependentAssembly 아니요
file 아니요
name
hashalg 아니요
hash 아니요
comClass No
description 아니요
Clsid
threadingModel 아니요
tlbid
Progid 아니요
miscStatus
miscStatusIcon 아니요
miscStatusContent 아니요
miscStatusDocPrint 아니요
miscStatusDocPrint 아니요
Typelib 아니요
tlbid
version
helpdir
Resourceid 아니요
flags
comInterfaceExternalProxyStub 아니요
Iid
baseInterface
numMethods 아니요
name
tlbid 아니요
proxyStubClsid32
comInterfaceProxyStub 아니요
Iid
name
tlbid 아니요
baseInterface
numMethods
proxyStubClsid32
threadingModel
windowClass
버전이

파일 위치

어셈블리 매니페스트는 다음 세 위치에 설치할 수 있습니다.

  • 공유 어셈블리와 함께 제공되는 매니페스트로서 어셈블리 매니페스트는 병렬 어셈블리 캐시에 별도의 파일로 설치되어야 합니다. 일반적으로 Windows 디렉터리의 WinSxS 폴더입니다.
  • 프라이빗 어셈블리와 함께 제공되는 매니페스트로서 어셈블리 매니페스트는 애플리케이션의 디렉터리 구조에 설치되어야 합니다. 일반적으로 애플리케이션의 실행 파일과 동일한 폴더에 있는 별도의 파일입니다.
  • DLL의 리소스로서 어셈블리는 DLL의 프라이빗 사용에 사용할 수 있습니다. 어셈블리 매니페스트는 EXE에서 리소스로 포함할 수 없습니다. EXE 파일에는 애플리케이션 매니페스트 가 리소스로 포함될 수 있습니다.

파일 이름 구문

어셈블리 매니페스트의 이름은 유효한 파일 이름 뒤에 .manifest입니다.

예를 들어 myassembly를 참조하는 어셈블리 매니페스트는 다음 파일 이름 구문을 사용합니다. 어셈블리 매니페스트가 < 별도의 파일로 설치되거나 리소스 ID>가 1인 경우 리소스 ID 필드를 생략할 수 있습니다.

myassembly.\

참고

프라이빗 어셈블리를 나란히 검색하는 방식 때문에 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" 네임스페이스에 있어야 합니다. 어셈블리의 자식 요소도 상속 또는 태그 지정을 통해 이 네임스페이스에 있어야 합니다.

어셈블리 요소에는 다음과 같은 특성이 있습니다.

attribute 설명
manifestVersion manifestVersion 특성은 1.0으로 설정해야 합니다.

noInheritable

어셈블리 매니페스트에 이 요소를 포함하면 어셈블리가 활성화 컨텍스트 및 해당 개체를 관리함을 나타냅니다. noInheritable 요소는 어셈블리 요소의 하위 요소여야 합니다. assemblyIdentity 요소는 noInheritable 요소 이후에 와야 합니다. noInherit 요소를 포함하는 애플리케이션 매니페스트에서 어셈블리를 사용하는 경우 어셈블리 매니페스트에 noInheritable 요소가 필요합니다. 애플리케이션 매니페스트의 noInheritable 요소는 영향을 주지 않습니다. noInheritable 요소에는 자식 요소가 없습니다.

assemblyIdentity

병렬 어셈블리를 설명하고 고유하게 식별합니다.

어셈블리 요소의 첫 번째 하위 요소인 assemblyIdentity는 이 어셈블리 매니페스트를 소유하는 병렬 어셈블리를 설명하고 고유하게 식별합니다. 이를 어셈블리 매니페스트의 DEF 컨텍스트 assemblyIdentity 라고 합니다.

dependentAssembly 요소의 첫 번째 하위 요소인 assemblyIdentity는 DEF 컨텍스트 assemblyIdentity에서 사용되는 병렬 어셈블리를 설명하고 고유하게 식별합니다. 이를 어셈블리 매니페스트의 REF 컨텍스트 assemblyIdentity 라고 합니다. DEF 컨텍스트 어셈블리를 사용하려면 REF 컨텍스트 어셈블리가 올바르게 작동해야 합니다. 모든 REF 컨텍스트 assemblyIdentity는 참조된 어셈블리 의 자체 어셈블리 매니페스트에 있는 해당 DEF 컨텍스트 assemblyIdentity 와 정확히 일치해야 합니다.

이 요소에는 하위 요소가 없습니다. assemblyIdentity 요소에는 다음과 같은 특성이 있습니다.

attribute 설명
type 어셈블리 형식을 지정합니다. 값은 win32이고 소문자여야 합니다. 필수 사항입니다.
name 어셈블리의 이름을 고유하게 지정합니다. 어셈블리 이름에 다음 형식을 사용합니다. Organization.Division.Name. 예를 들어 Microsoft입니다. Windows.mysampleAsm. 필수 사항입니다. 별도의 매니페스트 파일이 있는 프라이빗 어셈블리로 패키지된 DLL의 경우 어셈블리의 이름은 DLL 및 매니페스트의 이름과 달라야 합니다.
language 어셈블리의 언어를 식별합니다. (선택 사항) 어셈블리가 언어별인 경우 DHTML 언어 코드를 지정합니다. 전 세계적으로 사용하기 위한 어셈블리 매니페스트의 DEF 컨텍스트 assemblyIdentity (언어 중립)에서 언어 특성을 생략합니다.
전 세계 사용(언어 중립)을 위한 어셈블리 매니페스트의 REF 컨텍스트 assemblyIdentity 에서 언어 값을 "*"로 설정합니다.
processorArchitecture 프로세서를 지정합니다. 유효한 값은 32비트 Windows x86이고 64비트 Windows 경우 ia64입니다. (선택 사항)
version 어셈블리 버전을 지정합니다. 4부로 구성된 버전 형식인 mmmmm.nnnnn.ooooo.ppppp를 사용합니다. 마침표로 구분된 각 파트는 0-65535(포함)일 수 있습니다. 자세한 내용은 어셈블리 버전을 참조하세요. 필수 사항입니다.
publicKeyToken 어셈블리가 서명된 공개 키의 SHA-1 해시의 마지막 8바트를 나타내는 16자 16자 문자열입니다. 카탈로그에 서명하는 데 사용되는 공개 키는 2048비트 이상이어야 합니다. 공유 병렬 어셈블리에 필요합니다.

종속성

하나 이상의 dependentAssembly를 포함하는 컨테이너 요소입니다. 첫 번째 하위 요소는 dependentAssembly 요소여야 합니다. 종속성에는 특성이 없습니다. (선택 사항)

dependentAssembly

첫 번째 하위 요소는 이 어셈블리 매니페스트를 소유하는 side-by-side 어셈블리에서 사용되는 side-by-side 어셈블리를 설명하고 고유하게 식별하는 assemblyIdentity 요소여야 합니다. 모든 dependentAssembly는 정확히 하나의 종속성 내에 있어야 합니다. (선택 사항)

파일

병렬 어셈블리에서 사용하는 파일을 포함합니다. comClass, typelib, windowClass, comInterfaceProxyStub 하위 요소 포함 (선택 사항)

파일 요소에는 다음과 같은 특성이 있습니다.

attribute 설명
name 파일의 이름(예: Conctl32.dll).
hashalg 파일의 해시를 만드는 데 사용되는 알고리즘입니다. 이 값은 SHA1이어야 합니다.
hash 이름으로 참조되는 파일의 해시입니다. 해시 알고리즘에 따라 길이가 16진수 문자열입니다.

comClass

파일 요소의 하위 요소입니다. (선택 사항)

comClass 요소에는 다음과 같은 특성이 있습니다.

attribute 설명
description 클래스 이름입니다.
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를 나열하는 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 클래스인 경우 어셈블리 매니페스트에서 이 정보를 복제하여 개체를 사용하도록 설정할 수 있습니다. comClass 요소의 miscStatus, miscStatusIcon, miscStatusContent, miscStatusDocprintmiscStatusThumbnail 특성을 사용하여 개체의 특성을 지정합니다. 다음 표에서 이러한 특성을 쉼표로 구분된 특성 값 목록으로 설정합니다. 이러한 특성은 DVASPECT 열거형에서 제공하는 정보를 복제합니다. miscStatusIcon, miscStatusContent, miscStatusDocprint 또는 miscStatusThumbnail에 대한 값을 찾을 수 없는 경우 miscStatus에 지정된 기본값이 사용됩니다. 다음 표의 특성 값을 사용합니다. OLEMISC 열거형의 비트 플래그에 해당합니다.

특성 값 OLEMISC 상수
recomposeonresize OLEMISC_RECOMPOSEONRESIZE
onlyiconic OLEMISC_ONLYICONIC
insertnotreplace OLEMISC_INSERTNOTREPLACE
static 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
맞춤 가능 OLEMISC_ALIGNABLE
simpleframe OLEMISC_SIMPLEFRAME
setclientsitefirst OLEMISC_SETCLIENTSITEFIRST
Imemode TOLEMISC_IMEMODE
ignoreativatewhenvisible OLEMISC_IGNOREACTIVATEWHENVISIBLE
wantstomenumerge OLEMISC_WANTSTOMENUMERGE
supportsmultilevelundo OLEMISC_SUPPORTSMULTILEVELUNDO

Typelib

파일 요소의 하위 요소입니다. (선택 사항)

typelib 요소에는 다음 표에 표시된 특성이 있습니다.

attribute 설명
tlbid 형식 라이브러리의 고유 ID입니다. 필수 사항입니다.
version 형식 라이브러리의 두 부분으로 구성된 버전 번호입니다. 부 버전 번호만 증가하는 경우 이전 형식 라이브러리의 모든 기능이 호환되는 방식으로 지원됩니다. 주 버전 번호가 변경되면 형식 라이브러리에 대해 컴파일된 코드를 다시 컴파일해야 합니다. 형식 라이브러리의 버전 번호는 애플리케이션의 버전 번호와 다를 수 있습니다. 필수 사항입니다.
helpdir 형식 라이브러리의 형식에 대한 도움말 파일이 있는 디렉터리입니다. 애플리케이션이 여러 언어에 대한 형식 라이브러리를 지원하는 경우 라이브러리는 도움말 파일 디렉터리의 다른 파일 이름을 참조할 수 있습니다. 값이 없으면 ""를 지정합니다. 필수 사항입니다.
Resourceid LCID(로캘 식별자)의 16진수 문자열 표현입니다. 0x 접두사 및 선행 0이 없는 1~4자리 16진수입니다. LCID에는 중립 하위 언어 식별자가 있을 수 있습니다. 자세한 내용은 로캘 식별자를 참조하세요. (선택 사항)
flags 이 형식 라이브러리에 대한 형식 라이브러리 플래그의 문자열 표현입니다. 구체적으로는 "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 요소에는 다음 표에 표시된 특성이 있습니다.

attribute 설명
Iid 프록시가 선언되는 인터페이스의 IID입니다. 필수 사항입니다. 값은 "{iid}" 형식이어야 합니다.
baseInterface iid 특성에 의해 설명된 인터페이스가 파생되는 인터페이스의 IID 입니다. 이 특성은 선택 사항입니다. 값은 "{iid}" 형식이어야 합니다.
numMethods 인터페이스에 의해 구현된 메서드의 수입니다. 이 특성은 선택 사항입니다. 값은 "n" 형식이어야 합니다.
name 코드에 표시되는 인터페이스의 이름입니다. 예를 들어 "IViewObject"입니다. 설명 문자열이 아니어야 합니다. 이 특성은 선택 사항입니다. 값은 "name" 형식이어야 합니다.
tlbid iid 특성으로 지정된 인터페이스에 대한 설명을 포함하는 형식 라이브러리입니다. 이 특성은 선택 사항입니다. 값은 "{tlbid}" 형식이어야 합니다.
proxyStubClsid32 32비트 프록시 DLL에서 IID를 CLSID에 매핑합니다.

다음 예제에서는 comInterfaceExternalProxyStub 요소를 보여줍니다.

<comInterfaceExternalProxyStub 
  name="IAxWinAmbientDispatch" 
    iid="{B6EA2051-048A-11D1-82B9-00C04FB9942E}" 
    numMethods="35" 
  baseInterface="{00000000-0000-0000-C000-000000000046}"/>

comInterfaceProxyStub

파일 요소의 하위 요소입니다. (선택 사항)

어셈블리의 파일이 프록시 스텁을 구현하는 경우 해당 파일 태그는 comInterfaceProxyStub 요소와 동일한 특성을 갖는 comInterfaceProxyStub 하위 요소를 포함해야 합니다. 구성 요소에 대한 comInterfaceProxyStub 종속성 중 일부를 생략하면 프로세스와 스레드 간의 인터페이스 마샬링이 예상대로 작동하지 않을 수 있습니다.

comInterfaceProxyStub 요소에는 다음과 같은 특성이 있습니다.

attribute 설명
Iid Tthe. 프록시가 선언되는 인터페이스의 IID입니다. 필수 사항입니다. 값은 "{iid}" 형식이어야 합니다.
name 코드에 표시되는 인터페이스의 이름입니다. 예를 들어 "IViewObject"입니다. 설명 문자열이 아니어야 합니다. 이 특성은 선택 사항입니다. 값은 "name" 형식이어야 합니다.
tlbid iid 특성으로 지정된 인터페이스에 대한 설명을 포함하는 형식 라이브러리입니다. 이 특성은 선택 사항입니다. 값은 "{tlbid}" 형식이어야 합니다.
baseInterface iid 특성에 의해 설명된 인터페이스가 파생되는 인터페이스의 IID 입니다. 이 특성은 선택 사항입니다. 값은 "{iid}" 형식이어야 합니다.
numMethods 인터페이스에 의해 구현된 메서드의 수입니다. 이 특성은 선택 사항입니다. 값은 "n" 형식이어야 합니다.
proxyStubClsid32 32비트 프록시 DLL에서 IID를 CLSID에 매핑합니다.
threadingModel In Process COM 클래스에서 사용하는 스레딩 모델입니다. 이 속성이 null이면 스레딩 모델이 사용되지 않습니다. 구성 요소가 클라이언트의 주 스레드에 만들어지고 다른 스레드로부터의 호출이 이 스레드로 마샬링됩니다. (선택 사항) 유효한 값은 "Apartment", "Free", "Both" 및 "Neutral"입니다.

windowclass

버전이 지정될 windows 클래스의 이름입니다. windowclass 요소에는 다음 특성이 있습니다.

attribute 설명
버전이 이 특성은 등록에 사용된 내부 창 클래스 이름에 창 클래스가 포함된 어셈블리 버전이 포함되어 있는지 여부를 제어합니다. 이 특성의 값은 "예" 또는 "아니요"일 수 있습니다. 기본값은 "yes"입니다. "no" 값은 동일한 창 클래스가 병렬 구성 요소와 동등한 비-나란히 구성 요소에 의해 정의되고 동일한 창 클래스로 처리하려는 경우에만 사용해야 합니다. 창 클래스 등록에 대한 일반적인 규칙은 버전이 지정되지 않았으므로 창 클래스를 등록하는 첫 번째 구성 요소만 적용됩니다.

다음 예제에서는 파일 요소에 포함된 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>