/******************************************************************* * * DESCRIPTION: * Header for uploading file to server * * DATE:8/22/2002 * *******************************************************************/ #include #ifndef __UPLOAD_H_ #define __UPLOAD_H_ #define _USE_WINHTTP 1 #ifdef _USE_WINHTTP #include #include #else #include #endif class UploadFile : public IOcaUploadFile { public: UploadFile(); ~UploadFile(); // IUnknown. STDMETHOD(QueryInterface)( THIS_ IN REFIID InterfaceId, OUT PVOID* Interface ); STDMETHOD_(ULONG, AddRef)( THIS ); STDMETHOD_(ULONG, Release)( THIS ); STDMETHOD(InitializeSession)( THIS_ LPWSTR OptionCode, LPWSTR wszFileToSend ); STDMETHOD(SendFile)( THIS_ LPWSTR wszRemoteFileName, BOOL bSecureMode ); STDMETHOD(UnInitialize)( THIS_ ); STDMETHOD(Cancel)( THIS_ ); STDMETHOD(GetUrlPageData)( THIS_ LPWSTR wszUrl, LPWSTR wszUrlPage, ULONG cbUrlPage ); STDMETHOD_(ULONG, GetPercentComplete)( THIS_ ); STDMETHOD_(LPWSTR, GetServerName)( THIS_ ); STDMETHOD_(BOOL, IsUploadInProgress)( THIS_ ); STDMETHOD_(BOOL, GetUploadResult)( THIS_ LPTSTR Result, ULONG cbResult ); STDMETHOD(SetUploadResult)( THIS_ EnumUploadStatus Success, LPCTSTR Text ); private: HRESULT OpenSession(); HRESULT SetFileToSend(LPWSTR wszFileName); BOOL CheckCancelRequest(); HRESULT CreateCancelEventObject(); HRESULT GetSessionRedirUrl(LPWSTR SessionUrl, LPWSTR wszRedirUrl, ULONG SizeofRedirUrl); HRESULT OpenConnection(LPWSTR wszRemoteFileName, BOOL bSecureMode); HRESULT StartSend(); HRESULT CompleteSend(); HRESULT CloseConnection(); HRESULT CloseSession(); HRESULT GetProxySettings(LPWSTR wszServerName, ULONG ServerNameSIze, LPWSTR wszByPass, ULONG ByPassSize); BOOL FireCancelEvent(); BOOL GetRedirServerName(LPWSTR OptionCode, LPWSTR ConnectUrl, LPWSTR lpwszServerName, ULONG dwServerNameLength, LPWSTR lpwszUrl, ULONG UrlLength); ULONG m_Refs; BOOL m_fInitialized; LPCTSTR m_szFile; ULONG64 m_Sent; ULONG64 m_Size; HANDLE m_hCancelEvent; HANDLE m_hFile; HINTERNET m_hSession; HINTERNET m_hConnect; HINTERNET m_hRequest; ULONG m_NumTries; WCHAR m_wszServerName[MAX_PATH]; EnumUploadStatus m_fLastUploadStatus; ULONG m_dwConnectPercentage; WCHAR m_wszLastUploadResult[MAX_PATH]; }; #endif // __UPLOAD_H_