Initial
This commit is contained in:
92
wininet/Internet.hpp
Normal file
92
wininet/Internet.hpp
Normal file
@@ -0,0 +1,92 @@
|
||||
#ifndef _WININET_INTERNET_HPP_
|
||||
#define _WININET_INTERNET_HPP_
|
||||
#ifndef _COMMON_EXCEPTION_HPP_
|
||||
#include <common/except.hpp>
|
||||
#endif
|
||||
#ifndef _COMMON_REGKEY_HPP_
|
||||
#include <common/regkey.hpp>
|
||||
#endif
|
||||
#ifndef _COMMON_WININET_HPP_
|
||||
#include <common/wininet.hpp>
|
||||
#endif
|
||||
|
||||
class Internet
|
||||
{
|
||||
public:
|
||||
typedef enum AccessType{OpenDirect=INTERNET_OPEN_TYPE_DIRECT,PreConfig=INTERNET_OPEN_TYPE_PRECONFIG,NoAutoProxy=
|
||||
INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY,Proxy=INTERNET_OPEN_TYPE_PROXY};
|
||||
typedef enum Flags{Async=INTERNET_FLAG_ASYNC,FromCache=INTERNET_FLAG_FROM_CACHE,
|
||||
Offline=INTERNET_FLAG_OFFLINE,InvalidPort=INTERNET_INVALID_PORT_NUMBER,None=0};
|
||||
Internet();
|
||||
virtual ~Internet();
|
||||
bool open(AccessType accessType=NoAutoProxy,const String &strProxyServer=String(),const String &proxyBypass=String(),Flags flags=None,const String &agent="Microsoft Internet Explorer");
|
||||
bool open(const String &strProxyServer,const String &agent="Microsoft Internet Explorer");
|
||||
bool connect();
|
||||
void close();
|
||||
bool isOkay(void)const;
|
||||
HINTERNET getHANDLE(void)const;
|
||||
static String getProxyServer(void);
|
||||
private:
|
||||
HINTERNET mhInternet;
|
||||
};
|
||||
|
||||
inline
|
||||
Internet::Internet()
|
||||
: mhInternet(0)
|
||||
{
|
||||
}
|
||||
|
||||
inline
|
||||
Internet::~Internet()
|
||||
{
|
||||
close();
|
||||
}
|
||||
|
||||
inline
|
||||
bool Internet::open(AccessType accessType,const String &strProxyServer,const String &proxyByPass,Flags flags,const String &agent)
|
||||
{
|
||||
close();
|
||||
mhInternet=::InternetOpen(agent.str(),accessType,strProxyServer.str(),proxyByPass.str(),flags);
|
||||
return isOkay();
|
||||
}
|
||||
|
||||
inline
|
||||
bool Internet::open(const String &strProxyServer,const String &agent)
|
||||
{
|
||||
close();
|
||||
mhInternet=::InternetOpen(agent.str(),Proxy,strProxyServer.str(),0,None);
|
||||
return isOkay();
|
||||
}
|
||||
|
||||
|
||||
inline
|
||||
void Internet::close()
|
||||
{
|
||||
if(!isOkay())return;
|
||||
::InternetCloseHandle(mhInternet);
|
||||
mhInternet=0;
|
||||
}
|
||||
|
||||
inline
|
||||
HINTERNET Internet::getHANDLE(void)const
|
||||
{
|
||||
return mhInternet;
|
||||
}
|
||||
|
||||
inline
|
||||
bool Internet::isOkay()const
|
||||
{
|
||||
return mhInternet?true:false;
|
||||
}
|
||||
|
||||
inline
|
||||
String Internet::getProxyServer(void)
|
||||
{
|
||||
String strProxyServer;
|
||||
|
||||
RegKey regKey(RegKey::CurrentUser);
|
||||
if(!regKey.openKey("Comm\\Wininet"))return strProxyServer;
|
||||
if(!regKey.queryValue("ProxyServer",strProxyServer))return strProxyServer;
|
||||
return strProxyServer;
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user