다음을 통해 공유


속성 시트 처리기

사용자가 Shell 개체를 마우스 오른쪽 단추로 클릭하면 일반적으로 표시되는 바로 가기 메뉴에 속성 항목이 포함됩니다. 해당 항목을 선택하면 사용자가 볼 수 있는 속성 시트가 시작되고 경우에 따라 개체의 속성을 수정할 수 있습니다. 속성 시트 처리기를 구현하고 등록하여 이 속성 시트를 사용자 지정할 수 있습니다.

셸 확장 처리기를 구현하고 등록하는 일반적인 절차는 셸 확장 처리기 만들기에서 설명합니다. 이 문서에서는 속성 시트 처리기와 관련된 구현의 측면에 중점을 둡니다.

속성 시트 처리기의 작동 방식

다음 그림에서는 Windows XP 텍스트 파일의 속성 속성 시트를 보여 줍니다.

속성 시트

이 그림에서는 모든 파일에 대해 표시되는 기본 속성 속성 시트를 보여 줍니다. 이러한 많은 속성 시트의 경우 속성 시트 처리기를 구현하고 등록하여 하나 이상의 페이지를 속성 시트에 추가할 수 있습니다.

속성 시트 처리기는 파일 형식에 대해 가장 일반적으로 등록됩니다. 각 처리기는 클래스의 Properties 속성 시트에 하나의 사용자 지정 페이지를 추가할 수 있습니다. 이러한 페이지는 일반적으로 특정 파일 형식과 관련된 속성에 대한 액세스 권한을 사용자에게 제공합니다. 텍스트 문서로 구성된 파일 형식은 instance 제목과 작성자가 나열된 페이지와 문서의 추상을 표시할 수 있습니다. 이러한 유형의 속성 시트 처리기의 특별한 경우는 탑재된 드라이브의 속성 속성 시트에 페이지를 추가하는 데 사용됩니다.

속성 시트 처리기의 다른 용도는 제어판 애플리케이션에서 표시하는 속성 시트의 페이지를 바꾸는 것입니다. 마우스 제조업체는 instance 속성 시트 처리기를 사용하여 제어판 마우스 속성 시트의 단추 페이지를 마우스 특성에 맞게 사용자 지정된 페이지로 바꿀 수 있습니다.

모든 셸 확장 처리기와 마찬가지로 속성 시트 처리기는 DLL로 구현된 COM(In process Component Object Model) 개체입니다. IUnknown 외에도 IShellExtInitIShellPropSheetExt라는 두 개의 인터페이스를 내보내야 합니다.

IShellExtInit 인터페이스는 셸에서 처리기를 초기화하는 데 사용됩니다. 셸이 IShellExtInit::Initialize를 호출하면 개체 이름이 인 데이터 개체와 파일이 포함된 폴더의 PIDL(항목 식별자 목록)에 대한 포인터를 전달합니다. hRegKey 매개 변수는 속성 시트 처리기와 함께 사용되지 않습니다. IShellExtInit::Initialize 메서드는 데이터 개체에서 파일 이름을 추출하고 나중에 사용할 수 있는 이름과 폴더의 PIDL을 저장해야 합니다. 자세한 내용은 셸 확장 처리기 만들기IShellExtInit 구현 섹션을 참조하세요.

나머지 작업은 처리기의 IShellPropSheetExt 인터페이스를 통해 수행됩니다. 속성 시트가 파일 형식과 연결된 경우 셸은 IShellPropSheetExt::AddPages 를 호출하여 처리기가 속성 시트에 페이지를 추가할 수 있도록 합니다. 속성 시트가 제어판 애플리케이션과 연결된 경우 셸은 IShellPropSheetExt::ReplacePage를 호출하여 처리기가 페이지를 바꿀 수 있도록 합니다.

탑재된 드라이브에 대한 속성 시트 처리기 등록 및 구현

탑재된 각 드라이브에는 사용자가 표시할 수 있는 속성 시트가 있습니다. 다음 그림에서는 CD-ROM 드라이브의 속성 속성 시트를 보여 줍니다.

cd-rom 속성 시트

드라이브로 탑재할 수 있는 다양한 디바이스가 있습니다. 디스크 드라이브용으로 설계된 기본 속성 시트는 일부 디바이스에 충분하지 않을 수 있으므로 탑재된 디바이스와 관련된 페이지를 추가하기 위해 속성 시트 처리기를 구현할 수 있습니다. 이 유형의 속성 시트 처리기의 기본 구현은 두 가지 예외를 제외하고 파일 형식에 대한 속성 시트 처리기를 등록하고 구현하는 방법에 설명된 것과 동일합니다.

  • 처리기의 IShellExtInit::Initialize 메서드에 전달된 데이터 개체에는 CF_HDROP 형식 대신 CFSTR_MOUNTEDVOLUME 형식의 드라이브 경로가 포함될 수 있습니다. CF_HDROP 형식은 디바이스가 드라이브 문자에 탑재될 때 사용됩니다. CFSTR_MOUNTEDVOLUME 형식은 원격 디바이스가 드라이브 문자가 아닌 폴더에 탑재될 때 NTFS 파일 시스템에서 사용됩니다.
  • 처리기의 GUID는 HKEY_CLASSES_ROOT\드라이브\셸ex\PropertySheetHandlers 키 아래에 등록됩니다.

파일 형식에 대한 속성 시트 처리기를 등록하고 구현하는 방법

제어판 애플리케이션에 대한 속성 시트 처리기를 등록하고 구현하는 방법