탐색기 구현 프로그램이다. 여기저기서 구해볼 수 있는 탐색기구현 소스들은 대부분 파일뷰 부분을 직접 리스트뷰컨트롤로 구현해놓은 것들이었다. Sod Explorer는 IShellView 인터페이스를 얻어와 사용한다. MS SDK의 예제를 기초로 수많은 구글링을 통해 개발해왔고 엄청난 삽질의 시간으로 쉘과 COM에 대해, 또 관련 인터페이스들에 대해 많이 배울 수 있었다. 실제 탐색기를 대체해 사용하기에는 당연히 부족하고, 간단하면서 꼭 필요한(내 입장으로서) 것들만은 구현시키고자 했는데 여기저기 한계에 다다른다.
이것은 standalone 어플로서 구현된 것이지만 최종목표는 데스크밴드에 사용되기 위함이다.
MFC나 ATL 사용없이 Windows API와 Shell 관련 COM 인터페이스들로만 작성되었다.
미구현 부분
- 메뉴와 툴바
- IShellBrowser에 관련 메서드들이 있는데 이것들 역시 구현하지 않았다.
- IDropTargetHelper
- 밑에 영상을 보면 알겠지만, 파일을 트리노드로 드래그시 파일 아이콘이 표시되지 않는다. IDropTargetHelper 구현시 선택된 트리노드에 하이라이트되지 않는 문제가 있어 일단 제외시켰다.
- 폴더 히스토리
- 탐색한 폴더들을 아직 기억하고 있지 못한다. 즉 파일뷰안에서 백스페이스 미지원
- 무조건 구현해야할 부분이다!
- 폴더 팝업메뉴
- 이름변경과 삭제관련 미구현
구현시 특이사항
- 파일리스트뷰에서 기본으로 팝업메뉴 띄울시 탐색기의 그것과 조금 다른 부분
- IContextMenu 구현으로 해결
- 팝업메뉴에 몇몇 안되는 메뉴 발생(무엇이었는지 기억 안남)
- IContextMenu 구현으로 해결
- '내 문서'나 zip 파일 실행시(더블클릭시) 열리지 않는 점
- IShellBrowser::OnDefaultCommand 구현으로 해결
그 외 몇 인터페이스와 메서드들의 사용과 관련해 아직 모르는 부분도 많고, 구현 중 이슈거리도 많았지만 당장 기억도 안나고 일단은 여기까지만 적겠다.
'유물 > SodExplorer' 카테고리의 다른 글
SodExplorer v0.9b (0) | 2010.05.02 |
---|