Skip site navigation (1)Skip section navigation (2)
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>