Nikolay Sivov : ole32: Simplify CreateClassMoniker().

Alexandre Julliard julliard at winehq.org
Tue Sep 14 16:00:11 CDT 2021


Module: wine
Branch: master
Commit: 5e1a8ada72c55d5b4243ad16b843edc4730ad8e0
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=5e1a8ada72c55d5b4243ad16b843edc4730ad8e0

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Tue Sep 14 11:47:52 2021 +0300

ole32: Simplify CreateClassMoniker().

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/ole32/classmoniker.c | 44 +++++++++++---------------------------------
 1 file changed, 11 insertions(+), 33 deletions(-)

diff --git a/dlls/ole32/classmoniker.c b/dlls/ole32/classmoniker.c
index 5f303be037c..c52aaa9fbcf 100644
--- a/dlls/ole32/classmoniker.c
+++ b/dlls/ole32/classmoniker.c
@@ -656,48 +656,26 @@ static const IROTDataVtbl ROTDataVtbl =
     ClassMonikerROTData_GetComparisonData
 };
 
-/******************************************************************************
- *         ClassMoniker_Construct (local function)
- *******************************************************************************/
-static HRESULT ClassMoniker_Construct(ClassMoniker* This, REFCLSID rclsid)
-{
-    TRACE("(%p,%s)\n",This,debugstr_guid(rclsid));
-
-    /* Initialize the virtual function table. */
-    This->IMoniker_iface.lpVtbl = &ClassMonikerVtbl;
-    This->IROTData_iface.lpVtbl = &ROTDataVtbl;
-    This->ref           = 0;
-    This->clsid         = *rclsid;
-    This->pMarshal      = NULL;
-
-    return S_OK;
-}
-
 /******************************************************************************
  *        CreateClassMoniker	[OLE32.@]
  ******************************************************************************/
-HRESULT WINAPI CreateClassMoniker(REFCLSID rclsid, IMoniker **ppmk)
+HRESULT WINAPI CreateClassMoniker(REFCLSID rclsid, IMoniker **moniker)
 {
-    ClassMoniker* newClassMoniker;
-    HRESULT       hr;
+    ClassMoniker *object;
 
-    TRACE("(%s,%p)\n", debugstr_guid(rclsid), ppmk);
+    TRACE("%s, %p\n", debugstr_guid(rclsid), moniker);
 
-    newClassMoniker = HeapAlloc(GetProcessHeap(), 0, sizeof(ClassMoniker));
+    if (!(object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*object))))
+        return E_OUTOFMEMORY;
 
-    if (!newClassMoniker)
-        return STG_E_INSUFFICIENTMEMORY;
+    object->IMoniker_iface.lpVtbl = &ClassMonikerVtbl;
+    object->IROTData_iface.lpVtbl = &ROTDataVtbl;
+    object->ref = 1;
+    object->clsid = *rclsid;
 
-    hr = ClassMoniker_Construct(newClassMoniker, rclsid);
+    *moniker = &object->IMoniker_iface;
 
-    if (FAILED(hr))
-    {
-        HeapFree(GetProcessHeap(), 0, newClassMoniker);
-        return hr;
-    }
-
-    return ClassMoniker_QueryInterface(&newClassMoniker->IMoniker_iface, &IID_IMoniker,
-                                       (void**)ppmk);
+    return S_OK;
 }
 
 HRESULT ClassMoniker_CreateFromDisplayName(LPBC pbc, LPCOLESTR szDisplayName, LPDWORD pchEaten,




More information about the wine-cvs mailing list