2010-06-01 3 views
0

SHBrowseForFolder and folder shortcut browsing에 대한 조사가 끝날 때까지 제기 한 문제를 해결하려고합니다. IFolderFilter 님의 회원 기능 ShouldShow이 폴더 및 폴더 바로 가기를 제외하고 모든 항목을 필터링하는 방법을 알 수 없습니다.SHBrowseForFolder에서 폴더 바로 가기를 탐색 할 수 있습니까?

나는 이것에 많은 문서를 발견하지 않은 내 현재의 솔루션은 아래를 참조하십시오, 작동하지 않습니다

여기

내가 함수에있는 내용은 다음과 같습니다

HRESULT STDMETHODCALLTYPE ShouldShow(IShellFolder* sf, LPCITEMIDLIST pidlFolder, LPCITEMIDLIST pidlItem) 
{ 
    HRESULT resultCode = S_OK; 

    ULONG attributes = 0UL; 

    if (SUCCEEDED(sf->GetAttributesOf(1, &pidlItem, &attributes))) 
    { 
     if (attributes & SFGAO_FOLDER) 
     { 
      resultCode = S_OK; // Yes, I see the folders 
     } 
     else if (attributes & SFGAO_LINK) 
     { 
      // How do I determine if it is a folder AND let the end-user explore them? 
      // I ran the code with the resultCode = S_OK just to see what happens 
      // it displays the shortcut folders, but I cannot explore them. When I 
      // "expand" them (click on the plus-sign-box), nothing happens. 
     } 
    } 

    return resultCode; 
} 

이 사람이 나에게 무엇을 말할 수 코드 그러나 폴더 및 폴더 단축키를 필터링하려면 추가해야합니다 (폴더 단축키를 여전히 탐색 할 수 있어야합니까)?

미리 감사드립니다.

+1

귀하의 함수는 항상 S_OK를 반환합니다. 그게 당신의 의도인가요? – Bill

+0

아니, 그것은 궁극적 인 해결책이 아닙니다. 나는 내가 가지고있는 것이 바로 가기 폴더인지 아닌지를 결정할 방법을 찾지 못했기 때문에 S_OK를 올바르게 반환하는 방법을 찾을 때까지 모든 것을 S_OK로 반환한다. 나는'if (attributes & SFGAO_FOLDER)'부분이 맞지만'else if (attributes & SFGO_LINK)'가 불완전하다고 생각합니다. –

답변

0

방법이없는 것 같습니다.

관련 문제