Date: Mon, 3 Feb 1997 20:01:21 -0800 From: "Daniel Keller" <dkeller@psln.com> To: "FreeBSD Questions Mailing List" <freebsd-questions@FreeBSD.ORG>, "Chris Becke" <chris@dbn.lia.net> Subject: Re: Namespace Extension Never Calls DllGetClassObject Message-ID: <199702040320.TAA16942@psln1.psln.com>
next in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format. ------=_NextPart_000_01BC120D.06BA9FE0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Hi, Sorry to bother you, but you are the only person I know who knows much about namespace extensions and it can takes a long time to get an answer off newsgroups. I never did find anything similar to dumpbin with Watcom, but I have now switched to MSVC anyway, dumpbin did show that only DllMain was being exported. Anyway my problem is: I am trying to make a namespace extension, so far it is basically the same as the Cabview sample from Microsoft with much stuff removed. My first problem was that when CreateViewWindow was called all would go well until I tried to create the Dialog, CreateDialog) would just return a HWND of 0 and I would get a message from explorer that there was not enough storage to continue. Because I had not yet implemented EnumIDs I decided to do that. Now whenever I run the app it just loops through GetDisplayNameOf and Compare IDs. I have included a file with there functions in the with this message. I would greatly Appreciate any help! Thanks, Daniel Keller ------------------------------ dkeller@psln.com ------------------------------ ------=_NextPart_000_01BC120D.06BA9FE0 Content-Type: application/octet-stream; name="Problems.cpp" Content-Transfer-Encoding: quoted-printable Content-Description: Problems.cpp (C++ Source) Content-Disposition: attachment; filename="Problems.cpp" STDMETHODIMP ShellFolder::CompareIDs(LPARAM lParam,LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) { ODS("ShellFolder:CompareIDs"); return ((LPITEMID)pidl1)->id - ((LPITEMID)pidl2)->id; } STDMETHODIMP ShellFolder::GetDisplayNameOf( LPCITEMIDLIST pidl, //[in ] complex pidl to item DWORD dwFlags, //[in ] SHGNO formatting flags LPSTRRET lpName) //[out] Returned display name { ODS("ShellFolder:GetDisplayNameOf"); wsprintf(lpName->cStr,"FromShellExt - %d",((LPITEMID)pidl)->id); lpName->uType =3D STRRET_CSTR; return NOERROR; } STDMETHODIMP ShellFolderView::CreateViewWindow(IShellView *lpPrevView, LPCFOLDERSETTINGS lpfs,IShellBrowser *psb,RECT *prcView, HWND = *phWnd) { ODS("ShellFolderView:CreateViewWindow"); *phWnd=3DNULL; if(m_hwndView)return(E_UNEXPECTED); m_fs=3D*lpfs; m_psb=3Dpsb; // get the main window handle from shell browser m_psb->GetWindow(&m_hwndMain); // bring up the contents pane = m_hwndView=3DCreateDialog(g_hinstDll,MAKEINTRESOURCE(IDD_VIEW),m_hwndMain= ,DlgProc); if(!m_hwndView)return(E_OUTOFMEMORY); *phWnd=3Dm_hwndView; SetWindowPos(m_hwndView,NULL,prcView->left,prcView->top, = prcView->right-prcView->left,prcView->bottom-prcView->top, SWP_NOZORDER|SWP_SHOWWINDOW); return(NOERROR); } ------=_NextPart_000_01BC120D.06BA9FE0--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199702040320.TAA16942>