- implements OleCreate

---
> This gets Insert->Object in Word2000 as far as OleCreate.
Does it help???

Ciao

Juergen

---
[EMAIL PROTECTED]

... from sunny Berlin

Index: wine/dlls/ole32/ole2stubs.c
===================================================================
RCS file: /home/wine/wine/dlls/ole32/ole2stubs.c,v
retrieving revision 1.7
diff -u -r1.7 ole2stubs.c
--- wine/dlls/ole32/ole2stubs.c 2000/03/08 18:49:36     1.7
+++ wine/dlls/ole32/ole2stubs.c 2000/06/23 22:50:45
@@ -86,12 +86,49 @@
 
 /******************************************************************************
  *              OleCreate        [OLE32.80]
+ *
  */
-HRESULT WINAPI OleCreate(REFCLSID rclsid, REFIID riid, DWORD renderopt, LPFORMATETC 
pFormatEtc, LPOLECLIENTSITE pClientSite,
-                LPSTORAGE pStg, LPVOID* ppvObj)
+HRESULT WINAPI OleCreate(
+       REFCLSID rclsid,
+       REFIID riid,
+       DWORD renderopt,
+       LPFORMATETC pFormatEtc,
+       LPOLECLIENTSITE pClientSite,
+       LPSTORAGE pStg,
+       LPVOID* ppvObj)
 {
-  FIXME("(not shown), stub!\n");
-  return E_OUTOFMEMORY;
+  HRESULT hres, hres1;
+  IUnknown * pUnk = NULL;
+    
+  FIXME("\n\t%s\n\t%s stub!\n", debugstr_guid(rclsid), debugstr_guid(riid));
+
+  if (SUCCEEDED((hres = CoCreateInstance(rclsid, 0, CLSCTX_INPROC_SERVER, riid, 
+(LPVOID*)&pUnk))))
+  {
+    if (pClientSite)
+    {
+      IOleObject * pOE;
+      IPersistStorage * pPS;
+      if (SUCCEEDED((hres = IUnknown_QueryInterface( pUnk, &IID_IOleObject, 
+(LPVOID*)&pOE))))
+      {
+        TRACE("trying to set clientsite %p\n", pClientSite);
+        hres1 = IOleObject_SetClientSite(pOE, pClientSite);
+        TRACE("-- result 0x%08lx\n", hres1);
+       IOleObject_Release(pOE);
+      }
+      if (SUCCEEDED((hres = IUnknown_QueryInterface( pUnk, &IID_IPersistStorage, 
+(LPVOID*)&pPS))))
+      {
+        TRACE("trying to set stg %p\n", pStg);
+       hres1 = IPersistStorage_InitNew(pPS, pStg);
+        TRACE("-- result 0x%08lx\n", hres1);
+       IPersistStorage_Release(pPS);
+      }
+    }
+  }
+
+  *ppvObj = pUnk;
+
+  TRACE("-- %p \n", pUnk);
+  return hres;
 }
 
 /******************************************************************************

Reply via email to