Nikolay Sivov nsivov@codeweavers.com 于2018年9月11日周二 上午1:05写道:
On 09/10/2018 06:03 PM, Jactry Zeng wrote:
@@ -209,6 +210,7 @@ typedef struct IRichEditOleImpl { IUnknown IUnknown_inner; IRichEditOle IRichEditOle_iface; ITextDocument ITextDocument_iface;
- ITextDocument2 ITextDocument2_iface; IUnknown *outer_unk; LONG ref;
It's a bit of a mess, a simple test would show which one should be separate, ITextDocument2Old or ITextDocument2.
Of course it's possible all of them are separated.
I had some tests of riched20 and msftedit it showed that: - riched20 and msftedit both implemented their ITextDocument2Old. And ITextDocument2Old shared a same reference count with IRichEditOle; - Only msftedit from Windows 8 or later implemented ITextDocument2, and it didn't share reference count with IRichEditOle. So I think ITextDocument2 will be implemented in msftedit only.
Thanks.
+static HRESULT WINAPI ITextDocument2_fnGetTypeInfo(ITextDocument2 *iface, UINT info, LCID lcid,
ITypeInfo **type_info)
+{
- IRichEditOleImpl *This = impl_from_ITextDocument2(iface);
- return ITextDocument_GetTypeInfo(&This->ITextDocument_iface, info, lcid, type_info);
+}
Does that work though? Which typeinfo is returned in this case?