2013-10-04 5 views
0

배경 : 서버의 폴더 및 파일 (독점적 API를 통해 가져온 파일)을 나열하도록 네임 스페이스 확장이 구현되었습니다. "내 컴퓨터"아래에 표시되며 폴더 및 하위 폴더를 탐색 할 수 있습니다.내 이름 공간 확장이 파일 열기 대화 상자에 표시되지 않습니다.

문제 : 네임 스페이스를 만들기 위해 수행 할 작업을 : 나는 모든 응용 프로그램에서 파일 대화 상자를 열 때 가 내 네임 스페이스 확장 노드가 나열되지 않은 등 비주얼 스튜디오, 또는 메모장을 말할

질문 확장자는 파일 대화 상자에서 사용할 수 있습니다. 관련 레지스트리 키는 무엇이며 구현할 특별한 인터페이스가 있습니까?

덕분에, Madhusudhana

+0

WTH는 '_ 네임 스페이스 확장'을 의미합니까? 오히려 ** 파일 이름 확장자 **를 사용 했습니까? –

+1

@ g-makulik 그는 쉘 네임 스페이스 확장을 의미합니다. 그것이 존재하는 것입니다. – Medinoc

+1

이미 비트 문제가 없는지 확인 했습니까? 또한, * Dependency Walker *의 프로파일 링 모드로 이러한 프로그램 중 하나를 점검해야합니다. 클라이언트 코드가 실제로 DLL을로드하는지 또는로드하려고하는지 여부 만 확인하는 경우입니다. – Medinoc

답변

2

당신은 SFGAO_FILESYSANCESTOR로 확장을 표시해야합니다. 셸이 폴더에 실제 파일/폴더가 있다고 생각하지 않으면 사용자가 문서를 저장 /로드 할 대상으로 사용할 수 없으므로 공용 파일 대화 상자에서 해당 파일을 사용자에게 표시하지 않습니다.

+0

사용중인 대화 상자에 따라 다릅니다. 이전의'GetOpenFileName()'대화 상자는 파일 시스템 경로로 표현되는 항목 (가상 또는 기타) 만 표시 할 수 있습니다. 새로운'IFileOpenDialog' 대화 상자는'IShellItem' (이는 PIDL을 나타 내기 위해 사용될 수 있습니다)에 의해 표현되는 항목을 표시 할 수 있습니다. –

+0

레지스트리 값 ShellFolder \ Attributes를 설정하는 동안 SFGAO_FILESYSANCESTOR 플래그를 설정하려고했습니다. (다른 인터페이스 호출에이 플래그를 지정 했습니까? 구현할 특수 인터페이스는 무엇입니까? –

+0

@MadhusudanNarayan : IShellFolder :: GetAttributesOf()가 반환해야합니다. –