On 3/11/2013 16:36, Jeff Latimer wrote:
+    if (!ppv) return E_INVALIDARG;
You don't need this most likely.

+    IUnknown_AddRef((IUnknown*)*ppv);
A cleaner way is to AddRef original iface, but that's a matter of taste.

+static ULONG WINAPI WMCreateEditor_AddRef(IWMMetadataEditor *iface)
+{
+    FIXME("iface=%p\n", iface);
+    return 2;
+}
+
+static ULONG WINAPI WMCreateEditor_Release(IWMMetadataEditor *iface)
+{
+    FIXME("iface=%p\n", iface);
+    HeapFree(GetProcessHeap(), 0, iface);
+    return 1;
+}
What's this supposed to mean?

+HRESULT WINAPI WMCreateEditor_flush(IWMMetadataEditor *iface)
+{
+    FIXME("iface=%p\n", iface);
+    HeapFree(GetProcessHeap(), 0, iface);
+    return S_OK;
+}
+
+HRESULT WINAPI WMCreateEditor_close(IWMMetadataEditor *iface)
+{
+    FIXME("iface=%p\n", iface);
+    HeapFree(GetProcessHeap(), 0, iface);
+    return S_OK;
+}
I don't think so.

  HRESULT WINAPI WMCreateEditor(IWMMetadataEditor **editor)
  {
+    IWMMetadataEditor *This;
      FIXME("(%p): stub\n", editor);
- *editor = NULL;
+    This = HeapAlloc(GetProcessHeap(), 0, sizeof(IWMMetadataEditor));
+    if (!This) return E_OUTOFMEMORY;
- return E_NOTIMPL;
+    This->lpVtbl = &Editor_vtable;
+    *editor = This;
+
+    return S_OK;
  }
That's not how it's done, there's plenty of examples already.

-};
+}
That change is ok I think.




Reply via email to