코딩캣: 코딩하는 고양이.
Windows 쉘 익스텐션 개발 가이드 - (0) 목차
API/COM
2020. 12. 25. 09:00

입문자를 위한 Windows 쉘 익스텐션(Shell Extension) 개발 가이드

본 게시물은 ‘codeproject.com’에 게시된 “The Complete Idiot's Guide to Writing Shell Extensions” 시리즈를 우리말로 번역한 것입니다.

원문의 주소는 “https://www.codeproject.com/script/Articles/MemberArticles.aspx?amid=152”입니다. 원문은 2000년에 작성되었지만 네이티브 수준에서 Windows 운영체제가 근본적으로 바뀌지 않는 이상 현재에도 여전히 유효한 내용입니다. 다만 소스코드가 Visual C++ 6.0을 기준으로 작성되었기 때문에 현재 버전의 Visual Studio에서 자동으로 생성해주는 코드의 형태와는 다소 차이가 있을 수 있음을 감안하시기 바랍니다.

또한 본 게시물은 원문을 최대한 직역하는 것을 지향하고 있으나, 우리말로 읽었을 때 보다 매끄럽게 하기 위하여 부득이 의역, 어순 조정 및 어휘 조정이 있음을 양해 바랍니다.

 

Part 0. 목차(Index)

입문자 가이드 시리즈의 분량이 다소 많아진 관계로, 각 글에 대한 목차와 빠른 참조를 제공할 수 있는 인덱스 글을 별도로 게시하게 되었습니다. 헌신적인 분들이 필자의 글을 다음과 같이 번역 및 게재하여 주셨습니다.

 

파트 1. 쉘 익스텐션(Shell Extension)을 작성하기 위한 단계별 튜토리얼

[그림 1] - [파트 1]에서 다룰 쉘 익스텐션의 실행 결과.

파트 1은 쉘 익스텐션의 개요를 보고 이를 어떻게 디버그할 것인지에 대해 설명하고 있습니다. 예제 프로그램에는 컨텍스트 메뉴에 텍스트 파일에 대한 확장을 추가해보는 기능이 포함되어 있습니다.

파트 1로 바로가기

 

파트 2. 여러 파일 선택 시 작동되는 쉘 익스텐션(Shell Extension)

[그림 2] - [파트 2]에서 다룰 쉘 익스텐션의 실행 결과.

파트 2는 한 번에 여러 개의 파일을 선택하고 컨텍스트 메뉴를 열었을 때 작동되는 쉘 익스텐션을 작성하는 방법에 대해 설명하고 있습니다. 예제 프로그램에는 DLL 파일에 대해 레지스트리에 ‘등록(register)’ 및 ‘등록 해제(unregister)’하는 명령을 컨텍스트 메뉴에 추가하는 기능이 포함되어 있습니다.

파트 2로 바로가기

 

파트 3. 파일에 대한 ‘팝업’ 정보를 보여주는 쉘 익스텐션(Shell Extension)

[그림 3] - [파트 3]에서 다룰 쉘 익스텐션의 실행 결과.

파트 3은 텍스트 파일에 대한 ‘인포팁(infotip)’을 사용자화 하는 QueryInfo 확장에 대해 설명하고 있습니다. 또한 쉘 익스텐션에서 MFC를 사용하는 방법에 대해 설명하고 있습니다.

파트 3으로 바로가기

 

파트 4. 사용자 정의 드래그/드롭을 제공하는 쉘 익스텐션(Shell Extension)

[그림 4] - [파트 4]에서 다룰 쉘 익스텐션의 실행 결과.

파트 4는 Windows 탐색기에서 마우스 오른쪽 버튼을 누른 상태로 사용자가 드래그 앤 드롭을 하였을 때 컨텍스트 메뉴에 나타나는 항목을 추가하는 방법에 대해 설명하고 있습니다. 예제 프로그램은 해당 파일에 대한 하드 링크를 만드는 유틸리티입니다. (참고: 이 확장은 Windows 2000 이상에서만 작동됩니다. 하지만 컴파일과 실행하는 것까지는 이전 버전의 Windows에서도 가능합니다. 그 방법은 본문에 포함되어 있습니다.)

파트 4로 바로가기

 

파트 5. 파일에 대한 등록 정보(속성) 대화상자에 페이지를 추가하는 쉘 익스텐션(Shell Extension)

[그림 5] - [파트 5]에서 다룰 쉘 익스텐션의 실행 결과.

파트 5는 Windows 탐색기의 등록 정보(또는 속성) 대화상자에 새로운 페이지를 추가하는 방법에 대해 설명하고 있습니다. 예제 프로그램에는 독자 여러분이 직접 파일의 생성된 날짜, 수정된 날짜 및 마지막으로 액세스된 날짜를 수정할 수 있는 페이지를 추가시키는 기능이 포함되어 있습니다.

파트 5로 바로가기

 

파트 6. ‘보내기’ 메뉴에서 사용될 수 있는 쉘 익스텐션(Shell Extension)

[그림 6] - [파트 6]에서 다룰 쉘 익스텐션의 실행 결과.

파트 6은 ‘보내기’ 메뉴에 추가될 수 있는 드롭 핸들러 확장에 대해 설명하고 있습니다. 예제 프로그램은 “Send To Any Folder” 도구의 클론입니다.

파트 6으로 바로가기

 

파트 7. 컨텍스트 메뉴에 그림 출력 및 디렉토리 여백에 마우스 우클릭 시 메뉴 확장

[그림 7] - [파트 7]에서 다룰 쉘 익스텐션의 실행 결과(1).
[그림 8] - [파트 7]에서 다룰 쉘 익스텐션의 실행 결과(2).

파트 7은 두 가지 주제에 대해 다루어 볼 것입니다. 하나는 컨텍스트 메뉴에 그림을 출력하는 것이고, 다른 하나는 Windows 탐색기에서 파일을 선택하지 않고 그 여백에 대해 마우스 오른쪽을 클릭하였을 때 나타나는 컨텍스트 메뉴를 확장하는 방법입니다. 예제 프로그램도 두 가지 기능을 포함하고 있습니다. 하나는 .bmp 파일을 선택 후 마우스 오른쪽 클릭을 하였을 때 컨텍스트 메뉴에 이미지 썸네일(thumbnail)을 출력하는 비트맵 뷰어이고, 다른 하나는 파일 또는 폴더를 선택하지 않고 탐색기의 여백을 마우스 오른쪽으로 클릭했을 때 나타나는 컨텍스트 메뉴에 간단한 항목을 하나 추가하는 쉘 익스텐션입니다.

파트 7로 바로가기

 

파트 8. 컨텍스트 메뉴에 그림 출력 및 디렉토리 여백에 마우스 우클릭 시 메뉴 확장

[그림 9] - [파트 8]에서 다룰 쉘 익스텐션의 실행 결과.

파트 8은 Windows 2000 이상의 운영체제에서 Windows 탐색기의 ‘자세히’ 보기 모드일 때 나타나는 열을 추가하는 방법에 대해 설명하고 있습니다. 예제 프로그램은 .mp3 파일에 대해 ID3v1 태그 데이터를 보여주는 열을 추가하는 기능을 포함하고 있습니다. (이 쉘 익스텐션은 Windows 2000 이상에서 작동합니다.)

파트 8로 바로가기

 

파트 9. 특정 파일에 대해 아이콘 표시를 사용자화 하기

[그림 10] - [파트 9]에서 다룰 쉘 익스텐션의 실행 결과.

파트 9는 파일에 따라 아이콘 표시를 사용자화하는 방법에 대해 설명하고 있습니다. 예제 프로그램은 텍스트 파일에 대해 그 용량에 따라 4가지 다른 아이콘으로 보여주는 기능을 포함하고 있습니다.

파트 9로 바로가기

 

'API/COM' 카테고리의 다른 글
더 보기...
태그 : 
댓글