Free Busy Provider crashes
Hi All,
I am trying to implement the FreeBusy Provider for Outlook. Just to see if
things work as expected i partially implemeted the interfacese. I.e. didnt
fetched data from any valid source but just returned same data for every
user.
Outlook does loads the DLL instanciates the IFreeBusySupport object calls
LoadFreeBusyData in which i return it a IFreeBusyData interface. Later using
this interface it calls IFreeBusyData::EnumBlocks from which i return an
interface for IEnumFBBlock. At this point outlook calls EnumBlocks two times
and i retrun it the same interface for both the calls.
Then Outlook calls IEnumFBBlock::Next from this I just populate the first
FBBlock_1 and returns S_FALSE. And Outlook crashes just after the call
returns. It crashes every time at the same address for every profile. the
address is "0x3044747b" the call is from OUTLLIB.DLL, I know this is not of
any help but still..
Here is the implementation for the Next function.
HRESULT EnumFBBlock::Next(LONG celt, FBBlock_1 *pblk, LONG *pcfetch)
{
memset(pblk, 0, sizeof(FBBlock_1) * 32);
pblk[0].m_fbstatus = fbOutOfOffice;
SYSTEMTIME sysStTime = {0}, sysEdTime = {0};
FILETIME fileStTime = {0}, fileEdTime = {0};
//start time
GetSystemTime(&sysStTime);
sysStTime.wHour += 6;
SystemTimeToFileTime(&sysStTime, &fileStTime);
FileTimeToRTime(&fileStTime, &pblk[0].m_tmStart);
//end time
GetSystemTime(&sysEdTime);
sysEdTime.wHour += 7;
SystemTimeToFileTime(&sysEdTime, &fileEdTime);
FileTimeToRTime(&fileEdTime, &pblk[0].m_tmEnd);
*pcfetch = 1;
return S_FALSE;
}
Any idea what might be going wrong here.
Regards,
Huzaifa
date: Thu, 3 Jul 2008 10:22:20 +0530
author: huzaifa kagazwala