Ignore:
Timestamp:
Mar 26, 2000, 6:34:57 PM (25 years ago)
Author:
cbratschi
Message:

merged with Corel WINE 20000324

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/shell32/shellole.cpp

    r1353 r3243  
    1 /* $Id: shellole.cpp,v 1.3 1999-10-19 10:23:27 phaller Exp $ */
     1/* $Id: shellole.cpp,v 1.4 2000-03-26 16:34:51 cbratschi Exp $ */
    22
    33/*
     
    1212 * Copyright 1998 Juergen Schmied  <juergen.schmied@metronet.de>
    1313 *
     14 * Corel WINE 20000324 level
    1415 */
    1516
     
    5657
    5758DWORD WINAPI SHCLSIDFromStringA (LPSTR clsid, CLSID *id);
     59extern IShellFolder * IShellFolder_Constructor(
     60        IShellFolder * psf,
     61        LPITEMIDLIST pidl);
     62extern HRESULT IFSFolder_Constructor(
     63        IUnknown * pUnkOuter,
     64        REFIID riid,
     65        LPVOID * ppv);
    5866
    5967/*************************************************************************
     
    7078                                           LPVOID*,   ppv)
    7179{
    72    char  xclsid[48], xiid[48], xuout[48];
     80   char  xclsid[48], xiid[48];
    7381   DWORD hres;
    7482   IID   iid;
     
    8694   WINE_StringFromCLSID(myclsid,xclsid);
    8795   WINE_StringFromCLSID(refiid,xiid);
    88    if (unknownouter)
    89       WINE_StringFromCLSID((const CLSID*)unknownouter,xuout);
    90 
    91    dprintf(("SHELL32:SHCoCreateInstance (%p,CLSID:%s UOUT:%s IID:%s,%p)\n",
     96
     97   dprintf(("SHELL32:SHCoCreateInstance (%p,CLSID:%s unk:%s IID:%s,%p)\n",
    9298            aclsid,
    9399            xclsid,
    94             unknownouter?xuout:"nil",xiid,ppv));
    95 
    96    hres = CoCreateInstance(myclsid, NULL, CLSCTX_INPROC_SERVER, refiid, ppv);
     100            unknownouter,xiid,ppv));
     101
     102   if IsEqualCLSID(myclsid, &CLSID_ShellFSFolder)
     103   {
     104     hres = IFSFolder_Constructor(unknownouter, refiid, ppv);
     105   }
     106   else
     107   {
     108     hres = CoCreateInstance(myclsid, unknownouter, CLSCTX_INPROC_SERVER, refiid, ppv);
     109   }
    97110
    98111   if(hres!=S_OK)
    99112   {
    100      dprintf(("SHELL32:SHCoCreateInstance failed (0x%08lx) to create CLSID:%s IID:%s\n",
     113     dprintf(("SHELL32: SHCoCreateInstance failed (0x%08lx) to create CLSID:%s IID:%s\n",
    101114              hres,
    102115              xclsid,
    103116              xiid));
    104      dprintf(("SHELL32:SHCoCreateInstance you might need to import the winedefault.reg\n"));
     117     dprintf(("SHELL32: SHCoCreateInstance: class not found in registry\n"));
     118     dprintf(("SHELL32: SHCoCreateInstance you might need to import the winedefault.reg\n"));
    105119   }
    106120
     
    128142   *ppv = NULL;
    129143
    130    if(IsEqualCLSID(rclsid, &CLSID_PaperBin))
    131    {
    132      dprintf(("SHELL32:SHELL32_DllGetClassObject paper bin not implemented\n"));
    133      return CLASS_E_CLASSNOTAVAILABLE;
    134    }
    135144   if(IsEqualCLSID(rclsid, &CLSID_ShellDesktop)||
    136145      IsEqualCLSID(rclsid, &CLSID_ShellLink))
Note: See TracChangeset for help on using the changeset viewer.