2017-01-30 6 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を返すべきではありません!

関連する問題