class CMaaDrvApi { int m_IsLoadSuccessfully; #ifndef __unix__ HANDLE m_hVxD; OVERLAPPED m_ovlp; // = {0,0,0,0,0}; public: bool m_IsWinNT; private: #endif //!__unix__ public: DWORD m_SizeRet; CMaaDrvApi ( const char * pszFileName ); // = "VCOMMMAA" public: //// Dynamically Load driver virtual ~CMaaDrvApi (); virtual BOOL IsLoadSuccessfully (); virtual BOOL VxdIoControl ( DWORD dwService, const void * BuffIn, int SizeIn, void * BuffOut, int SizeOut, int * SizeRet ); //DWORD OpenVxDHandle ( HANDLE hWin32Source ); }; class CRusRouteApi : public CMaaDrvApi { public: enum eEventType { eAdapterListChangedEvent = 0, ePacketInterceptedEvent = 1, eConnectedEvent = 2 }; CRusRouteApi(); ~CRusRouteApi(); BOOL GetVersion(int *VersionHigh, int *VersionLow, int *Build = NULL, char *Str = NULL, BOOL *bIsDebug = NULL); int GetAdapters(DWORD *pAdapterNumbers, int MaxNumbers); BOOL GetAdapterInfo(DWORD Number, CRusRoute_AdapterInfo *Info); int GetLineWanUpLinks(DWORD Number, RR_NDIS_WAN_LINE_UP_LINK * l, int n); // returns number of elements, <= n BOOL GetPacket(CRusRoute_Packet *p); BOOL PutPacket(CRusRoute_Packet &p, int StatusEx); BOOL SetEventHandle(eEventType Type, HANDLE hEvent, int AdapterId = -1); BOOL TcpOptimize(int iAdd = -1, CTcpOptimization *o = NULL); // -1 - remove(init) all, 1 - add, 0 - remove // int GetTcpSentOffset(CTcpOptimization &o, bool bConnected_NotAccepted); BOOL LoginLogout(_IP Ip, int Id); // Id == -1 -- logout BOOL GetJournalRecs(sOptJournalRecs * r); //CMaaString GetLog(bool bFirst); // bool GetUserFriendlyAdapterName ( const char * pOsSpecificName, char * pOutName, int Size ); const char * GetDriverName() const; BOOL IsLoadSuccessfully(); BOOL Test1(); BOOL Test2(); static void SetAdaptersStartupMode(int IsTunnel); };