Hi,
i'm trying to add my custom menu in Call History on SP platform.
My code works as well on PPC but on SP 'DllGetClassObject' is never called! !
The dll is correctly registered and exports all functions.
The registry key that i'm using is: AppView\MSCLog
Any ideas
Thanks in advance ;)

Extend Call Log Menu
William Bartholomew
Could you please post the source code from your InvokeCommand
Best regard
Oystein
RobGiorgi
Thank you!
I have one problem....
The documentation says that CeMountDBVolEx is defined in Winbase.h and coredll.lib. I've included winbase.h and added codedll.lib but I still get this error:
Error 1 error C3861: 'CeMountDBVolEx': identifier not found
CeUnmountDBVol works like a charm...
Edit: #define EDB did it for me :)
twinsfather
have you registered your dll in the correct class key
Software\Microsoft\Shell\Extensions\ContextMenus\Phone\Log for PPC
Software\Microsoft\Shell\Extensions\ContextMenus\AppView\\MSClog for SP
bye
Leandro Rodrigues
code must be signed!
sorry...i always forget this on SP :-p
xshua
Hi!
I have been trying to make a menu extension to the call history in WM 5.0 for a long time and I'm stuck at one problem....
I'm trying to get the phone number of the selected item in the list......
It works as it should when the call history has less than 41 items...But when the number gets bigger the index of the call history item is "reset" and number 42 in the list becomes 1....
Have you got a simular problem
Best regard
Oystein
PIEBALD
JHarjung
Frank N White
you have all in my above post.
pRef returns the record's CEOID so you've to open clog.db database and readthe properties of this record.
barryt
Rashar
CEGUID m_ceguidInitDB;
CEOID oidDB;
//Get record's OIDCEOID oidCallLog = (CEOID) pItemArray->rgRefs[0].pRef;
//Mount the volumeBOOL a=CeMountDBVolEx(&m_ceguidInitDB, L
"\\pim.vol", 0, OPEN_EXISTING ); //Open clog.dbHANDLE m_hDBCLog = CeOpenDatabaseEx2( &m_ceguidInitDB, &oidDB, TEXT(
"clog.db"), 0, 0, NULL); //Go to recordCEOID ceOIDTemp = CeSeekDatabase(m_hDBCLog, CEDB_SEEK_CEOID, oidCallLog, NULL);
//Read the recordCEPROPID propLogName = MAKELONG(CEVT_LPWSTR, 7);
CEPROPID propLogNumber = MAKELONG(CEVT_LPWSTR, 6);
DWORD dwBuf = 0;
WORD wProps = 2;
CEPROPVAL *pPropVals = NULL;
CEPROPID propsToRead[2] = { propLogName, propLogNumber };
ceOIDTemp = CeReadRecordPropsEx( m_hDBCLog, CEDB_ALLOWREALLOC, &wProps, propsToRead,
reinterpret_cast<LPBYTE*>(&pPropVals), &dwBuf, NULL ); //BOOL b=::MessageBox(GetActiveWindow(),pPropVals[0].val.lpwstr,TEXT("test"),MB_OK); if (a==TRUE)::MessageBox(GetActiveWindow(),TEXT(
"ok database mounted"),TEXT("test"),MB_OK);BOOL c=CeUnmountDBVol(&m_ceguidInitDB);
if (c==TRUE)::MessageBox(GetActiveWindow(),TEXT(
"databse unmounted"),TEXT("test"),MB_OK);everything works fine,databse being mounted and unmounted.
but i still don know how to use this "commented line:
//BOOL b=::MessageBox(GetActiveWindow(),pPropVals[0].val.lpwstr,TEXT("test"),MB_OK);
for the message. it tried many different combinations with no luck
once i remove the //,it crash that i don even see any messages
thanx again and again for ur help
Dave Waterworth
Remeber: pRef returns the CEOID of record in clog.db and not the index for PhoneCallLog APIs
Uppy
dreameR.78
//Get record's OID
CEOID oidCallLog = (CEOID) ItemRefArray->rgRefs[0].pRef;
//Mount the volume
CeMountDBVolEx(&m_ceguidInitDB, L"\\pim.vol", 0, OPEN_EXISTING )
//Open clog.db
HANDLE m_hDBCLog = CeOpenDatabaseEx2( &m_ceguidInitDB, &oidDB, TEXT("clog.db"), 0, 0, NULL);
//Go to record
CEOID ceOIDTemp = CeSeekDatabase(m_hDBCLog, CEDB_SEEK_CEOID, oidCallLog, NULL);
//Read the record
CEPROPID propLogName = MAKELONG(CEVT_LPWSTR, 7);
CEPROPID propLogNumber = MAKELONG(CEVT_LPWSTR, 6);
DWORD dwBuf = 0;
WORD wProps = 2;
CEPROPVAL *pPropVals = NULL;
CEPROPID propsToRead[2] = { propLogName, propLogNumber };
ceOIDTemp = CeReadRecordPropsEx( m_hDBCLog, CEDB_ALLOWREALLOC, &wProps, propsToRead, reinterpret_cast<LPBYTE*>(&pPropVals), &dwBuf, NULL );
Then check values in pPropVals array ;)
Bye
sunny123
Yes....on WM5 you've to use #define EDB
;)