Jacek Caban <jacek(a)codeweavers.com> wrote:
+ if(IsEqualGUID(&IID_IUnknown, riid) || IsEqualGUID(&IID_IDispatch, riid) || IsEqualGUID(&IID_ITrigger, riid) + || IsEqualGUID(&IID_IDailyTrigger, riid)) { + *ppv = &This->IDailyTrigger_iface; + }else {
Please try to follow the style of the existing code for placing braces, add space between if and (, } and else, and split the above line of comparisons.
@@ -144,8 +373,29 @@ static HRESULT WINAPI TriggerCollection_get__NewEnum(ITriggerCollection *iface, static HRESULT WINAPI TriggerCollection_Create(ITriggerCollection *iface, TASK_TRIGGER_TYPE2 type, ITrigger **trigger) { trigger_collection *This = impl_from_ITriggerCollection(iface); - FIXME("(%p)->(%d %p)\n", This, type, trigger); - return E_NOTIMPL; + + TRACE("(%p)->(%d %p)\n", This, type, trigger); + + switch(type) { + case TASK_TRIGGER_DAILY: { + DailyTrigger *daily_trigger; + + daily_trigger = heap_alloc(sizeof(*daily_trigger)); + if(!daily_trigger) + return E_OUTOFMEMORY; + + daily_trigger->IDailyTrigger_iface.lpVtbl = &DailyTrigger_vtbl; + daily_trigger->ref = 1; + + *trigger = (ITrigger*)&daily_trigger->IDailyTrigger_iface; + break; + } + default: + FIXME("Unimplemented type %d\n", type); + return E_NOTIMPL; + }
Please add a global constructor for the triggger, and use it here. -- Dmitry.