I never get any further than the MAPILogopn function(returns MAPI_E_FAILURE), does anyone have a suggestion on what i'm doing wrong?
Code:
int DLLEXP CALLBACK getMail(unsigned long hWnd, char *achAdr, char *achAttPath){
MapiMessage *msg=new MapiMessage();
unsigned long lRes;
char achTitle[200];
HINSTANCE h1;
LPLHANDLE s1=0L;
// Link MAPI32
if((h1 = LoadLibrary("Mapi32"))==NULL)
return(-1);
if(!((FARPROC&)lpfnMAPIReadMail = GetProcAddress(h1, "MAPIReadMail")) ||
!((FARPROC&)lpfnMAPIFreeBuffer = GetProcAddress(h1, "MAPIFreeBuffer")) ||
!((FARPROC&)lpfnMAPILogon = GetProcAddress(h1, "MAPILogon")) ||
!((FARPROC&)lpfnMAPILogoff = GetProcAddress(h1, "MAPILogoff")) ||
!((FARPROC&)lpfnMAPIFindNext = GetProcAddress(h1, "MAPIFindNext"))){
FreeLibrary(h1);
return(-2);
}
if((lRes = lpfnMAPILogon(hWnd, NULL, NULL, MAPI_NEW_SESSION, 0, s1))==SUCCESS_SUCCESS){
memset(msg, 0, sizeof(*msg));
if(!(lRes=lpfnMAPIFindNext(NULL, hWnd, NULL, NULL, MAPI_LONG_MSGID|MAPI_UNREAD_ONLY,0, achTitle))){
b(achTitle);
lRes = lpfnMAPIReadMail(NULL, hWnd, achTitle, MAPI_ENVELOPE_ONLY, 0, &msg);
}else
b("!lpfnMAPIFindNext");
if(strcmp(achTitle, "eRetur-XML-V1.0")==0)
b(achTitle);
lpfnMAPIFreeBuffer(msg);
lpfnMAPILogoff(*s1, hWnd, 0, 0);
}else
b("!Logon");
delete msg;
FreeLibrary(h1);
return((int)lRes);
}