Jeg prøver lige igen...
Jeg vil gerne lave en ny klasse ud fra MFC klassen CInternetSession, da
jeg gerne vil bruge OnStatusCallBack og har prøvet mig frem med lidt
forskelligt.
Jeg har en knap som aktiveres (test) med følgende kode:
void CBff2Dlg::OnButton1()
{
CMyInternetSession myInternetSession;
myInternetSession.OpenURL("
http://www.wol.dk");
}
(Koden til klassen kan ses nedenunder)
Når jeg kører programmet og trykker på knappen smider den en ASSERT failure
op, der ser ud som følger:
Debug Assertion Failed!
File: inet.cpp
Line 646
Og når jeg kører en debug stopper den ved linien:
ASSERT(!m_bCallbackEnabled);
Jeg har også været ude for at den stopper ved denne linie:
ASSERT(m_bCallbackEnabled != NULL);
Der står vist i hjælpen at man skal sætte EnableStatusCallback(true) og det
har jeg også gjort, men hvad er der så galt??
Er der nogen her i gruppen som kan give et hint??
På forhånd tak....
//Class CMyInternetSession:
#include "afxinet.h" // til CInternetSession
class CMyInternetSession : public CInternetSession
{
public:
CMyInternetSession( LPCTSTR pstrAgent = NULL,
DWORD dwContext = 1,
DWORD dwAccessType = PRE_CONFIG_INTERNET_ACCESS,
LPCTSTR pstrProxyName = NULL,
LPCTSTR pstrProxyBypass = NULL,
DWORD dwFlags = INTERNET_FLAG_ASYNC );
protected:
virtual void OnStatusCallback( DWORD dwContext,
DWORD dwInternetStatus,
LPVOID lpvStatusInformation,
DWORD dwStatusInformationLength);
};
//Implementation
#include "stdafx.h"
#include "bff2.h"
#include "MyInternetSession.h"
CMyInternetSession::CMyInternetSession( LPCTSTR pstrAgent,
DWORD dwContext,
DWORD dwAccessType,
LPCTSTR pstrProxyName,
LPCTSTR pstrProxyBypass,
DWORD dwFlags)
{
try
{
EnableStatusCallback(true);
}
catch(CInternetException e)
{
e.ReportError();
}
}
void CMyInternetSession::OnStatusCallback(DWORD dwContext,
DWORD dwInternetStatus,
LPVOID lpvStatusInformation,
DWORD dwStatusInformationLength)
{
//....noget
}
--
Mvh Benny