2017-01-30 27 views
1

네임 스페이스 확장을 처음 사용합니다. 네임 스페이스 확장에 대한 탐색 창을 사용하지 않으려 고합니다.GetFolder (IID_ExplorerPaneVisibility) 호출 방법

내 셸보기 구현 IShellFolder 개체를 반환하는 IFolderView :: GetFolder 구현합니다. Shell Folder 클래스는 IExplorerPaneVisibility :: GetPaneState 메서드를 구현하고 있습니다.

하지만 GetFolder (IID_ExplorerPaneVisibility) 호출이 발생하지 않습니다. 누군가 이걸로 나를 도울 수 있습니까?

STDMETHODIMP ShellFolderViewImpl::GetFolder(REFIID riid, VOID ** ppv) 
{ 
    if (riid == IID_IExplorerPaneVisibility) 
    { 
     this->QueryInterface(riid, (void**)ppv); 
    } 
    return S_OK; 
} 

STDMETHODIMP ShellFolderViewImpl::GetPaneState(REFEXPLORERPANE ep,EXPLORERPANESTATE * peps) 
{ 
    if (ep == EP_NavPane) 
     *peps = EPS_DEFAULT_OFF; 
    else if (ep == EP_Commands) 
     *peps = EPS_DEFAULT_OFF; 
    else if (ep == EP_DetailsPane) 
     *peps = EPS_DEFAULT_OFF; 
    else if (ep == EP_AdvQueryPane) 
     *peps = EPS_DEFAULT_OFF; 
    else if (ep == EP_QueryPane) 
     *peps = EPS_DEFAULT_OFF; 
    else 
     *peps = EPS_DONTCARE; 
    return S_OK; 
} 

답변

0

MSDN은 IExplorerPaneVisibility 구현 셸 폴더에서 검색

을 말한다. Shell 폴더는 뷰에서 검색됩니다.

나는 이것을 다음과 같이 해석한다; 그것은 당신의 IExplorerPaneVisibility 구현을 얻기 위해 당신의 IShellFolder를 QueryInterface로 갈 것입니다.

this newsgroup thread도 확인해야하며, 일부 창을 끄는 데 필요한 몇 가지 해결 방법을 보여줍니다.

여기 코드가 실제 구현이 아니길 바라며, 인식하지 못하는 것들에 대해 GetFolder에서 S_OK를 반환해서는 안됩니다!