[PATCH v2] ole32: better match native behaviour in OLE init/uninit ole32/tests: check COM/OLE init state after mixed COM/OLE init/uninit
Paul Gofman
gofmanp at gmail.com
Fri Jan 15 04:18:23 CST 2016
On 01/15/2016 01:08 PM, Huw Davies wrote:
> On Wed, Jan 13, 2016 at 01:16:42PM +0300, Paul Gofman wrote:
>> Native OleUnitialize never uninits apartment inited by CoInitializeEx.
>> CoUnitialize after OleInitialize uninits apartment, but Ole is still considered
>> inited.
>>
>> Signed-off-by: Paul Gofman <gofmanp at gmail.com>
>> ---
>> dlls/ole32/compobj.c | 2 ++
>> dlls/ole32/ole2.c | 7 +++++
>> dlls/ole32/tests/compobj.c | 70 ++++++++++++++++++++++++++++++++++++++++++++++
>> 3 files changed, 79 insertions(+)
>>
>> diff --git a/dlls/ole32/compobj.c b/dlls/ole32/compobj.c
>> index 90b049a..78fc30d 100644
>> --- a/dlls/ole32/compobj.c
>> +++ b/dlls/ole32/compobj.c
>> @@ -1972,6 +1972,8 @@ void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
>>
>> if (!--info->inits)
>> {
>> + if (info->ole_inits)
>> + ERR("uninitializing apartment while Ole is still initialized\n");
> This should be a WARN since it's likely to be an application, not a
> Wine, error.
I intentionally put an ERR here as I thought that most likely the
behaviour in this case will be different from native. I also thought it
would be easier to catch the source of the problem if this case will be
encountered in the real application. I will change it to WARN now.
Thanks,
Paul.
More information about the wine-devel
mailing list