Ok, I've got it to compile and run but I am getting an unhandled exception when it calls lpfnMAPIResolveName. Can anyone see anything that might be wrong with my code?
Code:
prototypes...
typedef MediumInt (CALLBACK* LPFNMAPIRESOLVENAME)(LHANDLE lhSession, ULONG param, LPTSTR name, Flags16 options, ULONG reserved, MapiRecipDesc * lppRecip);
typedef MediumInt (CALLBACK* LPFNMAPIFREEBUFFER)(LPVOID pv);
code...
Bool Dynlink SmpCheckName( PSMP pSmp, PWND pWnd, PSTR pStr, MediumInt size )
{
HINSTANCE hMapi;
MediumInt rtn;
Flags16 options;
LPFNMAPIRESOLVENAME lpfnMAPIResolveName;
LPFNMAPIFREEBUFFER lpfnMAPIFreeBuffer;
SmpAssert( pSmp );
BitSet( options, MAPI_DIALOG );
BitSet( options, MAPI_NEW_SESSION );
hMapi = LoadLibrary( "MAPI32.DLL" );
if( hMapi == NULL )
return False;
lpfnMAPIResolveName = (LPFNMAPIRESOLVENAME)GetProcAddress( hMapi, "MAPIResolveName" );
lpfnMAPIFreeBuffer = (LPFNMAPIFREEBUFFER)GetProcAddress( hMapi, "MAPIFreeBuffer" );
rtn = lpfnMAPIResolveName( 0, (ULargeInt) WndAsHwnd( pWnd ), pStr, options, 0, pSmp->mapiDesc );
if( rtn != SUCCESS_SUCCESS )
{ FreeLibrary( hMapi );
return False;
}
StrCopy( pStr, size, pSmp->mapiDesc->lpszAddress );
lpfnMAPIFreeBuffer( pSmp->mapiDesc );
FreeLibrary( hMapi );
return True;
} /* End SmpCheckName */