IShellBrowser :: BrowseObject nie jest wywoływany

Próbuję zaimplementować ramkę typu Explorer w mojej aplikacji. To również musi działać pod WinXP.

ZaimplementowałemIShellBrowser w mojej klasie okna + zaimplementowałemIUnknown berło.

Moja klasa atrybuje:

<code>IShellViewPtr m_shView;
HWND m_wndHolder;
CListViewCtrl  view;
</code>

Oto kodWM_CREATE treser

<code>m_hWndClient = view.Create(m_hWnd, rcDefault, NULL, 
            WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS |
            WS_CLIPCHILDREN, WS_EX_CLIENTEDGE); // view isn't null after it

CMessageLoop* pLoop = _Module.GetMessageLoop();
        pLoop->AddMessageFilter(this);
        pLoop->AddIdleHandler(this);

IShellFolderPtr pParentFolder;
ATLVERIFY(SHGetDesktopFolder(&pParentFolder) == S_OK); // OK

FOLDERSETTINGS fs;
fs.fFlags = FVM_DETAILS;
fs.ViewMode = FVM_LIST;

ATLVERIFY(pParentFolder->CreateViewObject(view, IID_IShellView, (void**)&m_shView) == S_OK); // OK

RECT r; 
GetClientRect(&r);

ATLVERIFY(m_shView->CreateViewWindow(NULL, &fs, static_cast<IShellBrowser*>(this), &r, &m_wndHolder) == S_OK); // OK
ATLVERIFY(m_shView->UIActivate(SVUIA_ACTIVATE_NOFOCUS) == S_OK); // OK
</code>

Po uruchomieniu aplikacji mam ramkę podobną do eksploratora. Chcę obsługiwać zdarzenie podwójnego kliknięcia, aby poruszać się po folderach w ramce. Spodziewam się, że po dwukrotnym kliknięciu mojej implementacjiBrowseObject zostanie wywołany, ale tak się nie stało. Zamiast tego foldery są otwierane w eksploratorze systemu.

Proszę pomóż. Dziękuję Ci.

questionAnswers(1)

yourAnswerToTheQuestion