#ifndef _PROTO_INTERNET_HPP_ #define _PROTO_INTERNET_HPP_ #ifndef _COMMON_EXCEPTION_HPP_ #include #endif #ifndef _COMMON_WININET_HPP_ #include #endif class Internet { public: typedef enum AccessType{OpenDirect=INTERNET_OPEN_TYPE_DIRECT,PreConfig=INTERNET_OPEN_TYPE_PRECONFIG,AutoProxy= 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=AutoProxy,const String &strProxy=String(),const String &proxyBypass=String(),Flags flags=None); bool connect(); void close(); bool isOkay(void)const; HINTERNET getHANDLE(void)const; private: HINTERNET mhInternet; }; inline Internet::Internet() : mhInternet(0) { } inline Internet::~Internet() { close(); } inline bool Internet::open(AccessType accessType,const String &strProxy,const String &proxyByPass,Flags flags) { close(); mhInternet=::InternetOpen("Custom Agent",accessType,strProxy.str(),proxyByPass.str(),flags); 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; } #endif