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.