2010-11-20 4 views
4

블리자드 게임에서 많이 사용되는 확장자가 .mpq 인 보관 파일 형식의 브라우저 프로그램을 만들었습니다.
이것은 탐색기와 비슷하지만 MPQ 아카이브 내의 파일 만 탐색합니다.
이제 우리는 Windows Explorer가 .zip 아카이브를 탐색하는 방법을 알고 있으며 다양한 기능을 갖춘 .MPQ 파일을 열어보고 싶습니다..zip과 같은 파일을 탐색하려면 .NET Windows 탐색기 확장?

이것도 가능합니까? 그럼 가능합니다 ...
그렇다면 어떻게됩니까? 셸 폴더 ...

예를 들어 설명해 주실 수 있습니까? (C#) C++을 C#으로 변환 할 수 없습니다 ...

답변

5

이것은 쉘 클래스를 확장하여 수행됩니다. 이를 수행하려면 Basic Folder Object Interfaces을 구현해야합니다.

+0

고맙습니다! 나는 바로 그 링크를 보게 될 것이다! 편집 :이 예제는 C++로 매우 숙련되지 않았습니다. 예제 나 COM 인터페이스 라이브러리를 주시겠습니까? – Vercas

+0

@Vercas : 아니요. 불행하게도이 인터페이스는 구현해야 할 매우 복잡한 COM 인터페이스 집합입니다. C++에서 .NET 4를 사용하기 전에 .NET을 사용하는 것은 매우 나쁜 생각이었습니다 (in-proc 셸 확장이기 때문에). –

+0

그럼 나는 그것을 사용할 수 없다 ... – Vercas

2

비록 C++ 프레임 워크이지만 원하는 파일을 구현하는 프레임 워크가 있으며 비슷한 파일 형식 인 TarFolder (GMail 드라이브를 개발 한 사람이 작성한 것)과 비슷한 방식으로 성공에 적응했습니다.

확장 기반 루팅을 지원하지 않는 경우에도 EZNamespaceExtension.Net에 관심이있을 수 있습니다 (해결 방법은 특정 프로토콜을 사용하는 것입니다).

마지막으로 WindowsShell을 확인하십시오. 정확히 찾고있는 내용 일 수 있습니다!

폭풍 후 너무 늦어서 죄송합니다 ...

+0

오 마이 가드. 프로그램에 감사드립니다! 나는 그런 것을 필요로했다! 나는 소스 코드를 해부하고 자체 TAR 함수 대신에 C# 라이브러리를 사용하도록 노력할 것이다! – Vercas

+0

@Vercas 그게 효과가있다 :). 그러나 .NET 4.0을 사용해야한다고 생각합니다. DLL이 유일하게 관리되는 것이 확실한 경우가 아니면 다른 버전을 동일한 프로세스 내에서 동시에 사용할 수있는 유일한 버전입니다. –

+0

@Vercas 그러나 매우 자주 호출되는 경향이 있으므로 함수 (특히 파일을 나열하고 설명하는 함수)가 매우 빠르다는 것을 확인하십시오. 작동하는 C# 버전을 사용하는 즉시 C++로 다시 작성하십시오. –

관련 문제