ole32: add a test for OleInitialize

Paul Vriens paul.vriens.wine at gmail.com
Tue Jan 13 03:13:16 CST 2009


Paul Vriens wrote:
> Austin English wrote:
>> On Tue, Jan 13, 2009 at 2:20 AM, Paul Vriens 
>> <paul.vriens.wine at gmail.com> wrote:
>>> Austin English wrote:
>>>> On Tue, Jan 13, 2009 at 1:28 AM, Paul Vriens 
>>>> <paul.vriens.wine at gmail.com>
>>>> wrote:
>>>>> Austin English wrote:
>>>>>> Pointed out by Anastasius in bug 13011. Tested on XP SP2 & 2K SP4 
>>>>>> (and
>>>>>> Wine, of course).
>>>>>>
>>>>>>
>>>>>>
>>>>>> ------------------------------------------------------------------------ 
>>>>>>
>>>>>>
>>>>>>
>>>>> Hi Austin,
>>>>>
>>>>> The test case that is pointed out in bug 13011 is different though:
>>>>>
>>>>> hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
>>>>> ok(hr == S_OK, "CoInitializeEx failed with error 0x%08x\n", hr);
>>>>> hr = OleInitialize(NULL);
>>>>> ok(hr == S_OK, "OleInitialize failed with error 0x%08x\n", hr);
>>>>>
>>>>> The above succeeds on W2K3 but fails on Wine.
>>>>>
>>>>> -- 
>>>>> Cheers,
>>>>>
>>>>> Paul.
>>>>>
>>>> I was referring to this comment:
>>>> "Calling OleInitialize() for the first time should yield S_OK - even 
>>>> with
>>>> apartment already initialized by previous CoInitialize(Ex) calls.
>>>> Calling OleInitialize() more than once yields S_FALSE for the second 
>>>> and
>>>> following calls."
>>>>
>>>> Though that testcase should probably be added as well, in a 
>>>> todo_wine of
>>>> course.
>>>>
>>>>
>>>>
>>> So maybe we should do
>>>
>>> hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
>>> ok(hr == S_OK, "CoInitializeEx failed with error 0x%08x\n", hr);
>>> hr = OleInitialize(NULL);
>>> todo_wine
>>> ok(hr == S_OK, "OleInitialize failed with error 0x%08x\n", hr);
>>> hr = OleInitialize(NULL);
>>> ok(hr == S_FALSE, "Expected S_FALSE, hr = 0x%08x\n", hr);
>>>
>>> and move that to a separate test function? (Maybe in compobj.c?) I 
>>> mean it's
>>> a ole32 basic thing that's wrong, not something that should be in a 
>>> specific
>>> test I guess?
>>>
>>> -- 
>>> Cheers,
>>>
>>> Paul.
>>>
>>
>> How's this?
>>
>>
> Looks great :). Two (minor) things though:
> 
> - you should maybe use pCoInitializeEx? (there is some remark in that 
> file about it not being present on all platforms, current 
> test.winehq.org doesn't show this though)
> - do some uninitialize to clean things up?
> 
I see that moniker.c also uses CoInitializeEx directly and no errors on 
test.winehq.org for that ('not run' would be shown if that was the case).

So maybe we should get rid of the GetProcAddress for CoInitializeEx in all 
files, but that would be another patch(set).

-- 
Cheers,

Paul.



More information about the wine-devel mailing list