[SHELL32]
[reactos.git] / dll / win32 / shell32 / shellole.cpp
index 56e6562..be2ed6a 100644 (file)
@@ -25,12 +25,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(shell);
 
 static const WCHAR sShell32[12] = {'S','H','E','L','L','3','2','.','D','L','L','\0'};
 
-/**************************************************************************
- * Default ClassFactory types
- */
-typedef HRESULT (CALLBACK *LPFNCREATEINSTANCE)(IUnknown* pUnkOuter, REFIID riid, LPVOID* ppvObject);
-HRESULT IDefClF_fnConstructor(LPFNCREATEINSTANCE lpfnCI, PLONG pcRefDll, const IID *riidInst, IClassFactory **theFactory);
-
 /* FIXME: this should be SHLWAPI.24 since we can't yet import by ordinal */
 
 DWORD WINAPI __SHGUIDToStringW (REFGUID guid, LPWSTR str)
@@ -68,7 +62,7 @@ DWORD WINAPI __SHGUIDToStringW (REFGUID guid, LPWSTR str)
 HRESULT WINAPI SHCoCreateInstance(
     LPCWSTR aclsid,
     const CLSID *clsid,
-    LPUNKNOWN pUnkOuter,
+    IUnknown * pUnkOuter,
     REFIID refiid,
     LPVOID *ppv)
 {
@@ -274,155 +268,6 @@ void WINAPI SHFree(LPVOID pv)
     CoTaskMemFree(pv);
 }
 
-/*************************************************************************
- * SHGetDesktopFolder            [SHELL32.@]
- */
-HRESULT WINAPI SHGetDesktopFolder(IShellFolder **psf)
-{
-    HRESULT    hres = S_OK;
-    TRACE("\n");
-
-    if(!psf) return E_INVALIDARG;
-    *psf = NULL;
-    hres = CDesktopFolder::_CreatorClass::CreateInstance(NULL, IID_PPV_ARG(IShellFolder, psf));
-
-    TRACE("-- %p->(%p)\n",psf, *psf);
-    return hres;
-}
-/**************************************************************************
- * Default ClassFactory Implementation
- *
- * SHCreateDefClassObject
- *
- * NOTES
- *  Helper function for dlls without their own classfactory.
- *  A generic classfactory is returned.
- *  When the CreateInstance of the cf is called the callback is executed.
- */
-
-class IDefClFImpl :
-    public CComObjectRootEx<CComMultiThreadModelNoCS>,
-    public IClassFactory
-{
-private:
-    CLSID                    *rclsid;
-    LPFNCREATEINSTANCE        lpfnCI;
-    const IID                *riidInst;
-    LONG                    *pcRefDll;        /* pointer to refcounter in external dll (ugrrr...) */
-public:
-    IDefClFImpl();
-    HRESULT Initialize(LPFNCREATEINSTANCE lpfnCI, PLONG pcRefDll, const IID *riidInstx);
-
-    // IClassFactory
-    virtual HRESULT WINAPI CreateInstance(LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObject);
-    virtual HRESULT WINAPI LockServer(BOOL fLock);
-
-BEGIN_COM_MAP(IDefClFImpl)
-    COM_INTERFACE_ENTRY_IID(IID_IClassFactory, IClassFactory)
-END_COM_MAP()
-};
-
-IDefClFImpl::IDefClFImpl()
-{
-    lpfnCI = NULL;
-    riidInst = NULL;
-    pcRefDll = NULL;
-    rclsid = NULL;
-}
-
-HRESULT IDefClFImpl::Initialize(LPFNCREATEINSTANCE lpfnCIx, PLONG pcRefDllx, const IID *riidInstx)
-{
-    lpfnCI = lpfnCIx;
-    riidInst = riidInstx;
-    pcRefDll = pcRefDllx;
-
-    if (pcRefDll)
-        InterlockedIncrement(pcRefDll);
-
-    TRACE("(%p)%s\n", this, shdebugstr_guid(riidInst));
-    return S_OK;
-}
-
-/******************************************************************************
- * IDefClF_fnCreateInstance
- */
-HRESULT WINAPI IDefClFImpl::CreateInstance(LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObject)
-{
-    TRACE("%p->(%p,%s,%p)\n", this, pUnkOuter, shdebugstr_guid(&riid), ppvObject);
-
-    *ppvObject = NULL;
-
-    if (riidInst == NULL || IsEqualCLSID(riid, *riidInst) || IsEqualCLSID(riid, IID_IUnknown))
-    {
-        return lpfnCI(pUnkOuter, riid, ppvObject);
-    }
-
-    ERR("unknown IID requested %s\n", shdebugstr_guid(&riid));
-    return E_NOINTERFACE;
-}
-
-/******************************************************************************
- * IDefClF_fnLockServer
- */
-HRESULT WINAPI IDefClFImpl::LockServer(BOOL fLock)
-{
-    TRACE("%p->(0x%x), not implemented\n", this, fLock);
-    return E_NOTIMPL;
-}
-
-/**************************************************************************
- *  IDefClF_fnConstructor
- */
-
-HRESULT IDefClF_fnConstructor(LPFNCREATEINSTANCE lpfnCI, PLONG pcRefDll, const IID *riidInst, IClassFactory **theFactory)
-{
-    CComObject<IDefClFImpl>                    *theClassObject;
-    CComPtr<IClassFactory>                    result;
-    HRESULT                                    hResult;
-
-    if (theFactory == NULL)
-        return E_POINTER;
-    *theFactory = NULL;
-    ATLTRY (theClassObject = new CComObject<IDefClFImpl>);
-    if (theClassObject == NULL)
-        return E_OUTOFMEMORY;
-    hResult = theClassObject->QueryInterface (IID_PPV_ARG(IClassFactory, &result));
-    if (FAILED (hResult))
-    {
-        delete theClassObject;
-        return hResult;
-    }
-    hResult = theClassObject->Initialize (lpfnCI, pcRefDll, riidInst);
-    if (FAILED (hResult))
-        return hResult;
-    *theFactory = result.Detach ();
-    return S_OK;
-}
-
-/******************************************************************************
- * SHCreateDefClassObject            [SHELL32.70]
- */
-HRESULT WINAPI SHCreateDefClassObject(
-    REFIID    riid,
-    LPVOID*    ppv,
-    LPFNCREATEINSTANCE lpfnCI,    /* [in] create instance callback entry */
-    LPDWORD    pcRefDll,        /* [in/out] ref count of the dll */
-    REFIID    riidInst)        /* [in] optional interface to the instance */
-{
-    IClassFactory                *pcf;
-    HRESULT                        hResult;
-
-    TRACE("%s %p %p %p %s\n", shdebugstr_guid(&riid), ppv, lpfnCI, pcRefDll, shdebugstr_guid(&riidInst));
-
-    if (!IsEqualCLSID(riid, IID_IClassFactory))
-        return E_NOINTERFACE;
-    hResult = IDefClF_fnConstructor(lpfnCI, (PLONG)pcRefDll, &riidInst, &pcf);
-    if (FAILED(hResult))
-        return hResult;
-    *ppv = pcf;
-    return S_OK;
-}
-
 /*************************************************************************
  *  DragAcceptFiles        [SHELL32.@]
  */