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);
}