home *** CD-ROM | disk | FTP | other *** search
Text File | 1997-01-02 | 2.6 KB | 89 lines | [TEXT/????] |
- //
- // DOWNLOAD.H
- //
- // Copyright (C) Microsoft Corporation, 1996
- //
-
- class CXSite; // Forward reference
- class CContainer; // Forward reference
-
- typedef struct _QUEUED_DOWNLOAD {
- CXSite *SiteP;
- struct _QUEUED_DOWNLOAD *NextP;
- } QUEUED_DOWNLOAD;
-
- class CCodeDownload:
- public IBindStatusCallback
- {
- private:
- long mRefCount; // reference count of object
- LPVOID mEnumKeyP;
- CXSite * mSiteP;
- QUEUED_DOWNLOAD *mQueueP;
- ErrorCode mDownloadResult;
- unsigned char* mStreamDataP;
- unsigned long mStreamLength;
- Boolean mProcessINF;
- LPOLESTR mEnd;
- LPOLESTR mCurrent;
- LPOLESTR mLastSectionMatch;
-
- public:
- CCodeDownload();
- ~CCodeDownload();
- void QueueDownload(CXSite *inSiteP);
- void InfAvailable(BOOL fSuccess);
- void CodeAvailable(BOOL fSuccess);
-
- private:
- void StartNextDownload(void);
- BOOL StartDownload(CXSite *inSiteP);
- void ProcessNextSection(void);
- BOOL OpenStream(CXSite *inSiteP, Boolean IsINFFile, LPOLESTR URLString);
-
- // *** IUnknown methods ***
- STDMETHOD(QueryInterface)(REFIID RefID, void** Obj);
- STDMETHOD_(ULONG, AddRef)(void);
- STDMETHOD_(ULONG, Release)(void);
-
- // *** IBindStatusCallback methods ***
- STDMETHOD(OnStartBinding)(DWORD BSCOption, IBinding* Binding);
- STDMETHOD(GetPriority)(LONG* Priority);
- STDMETHOD(OnLowResource)(DWORD reserved);
- STDMETHOD(OnProgress)(ULONG Progress, ULONG ProgressMax, ULONG StatusCode, const char* StatusText);
- STDMETHOD(OnStopBinding)(HRESULT Result, const char* Error);
- STDMETHOD(GetBindInfo)(LPDWORD BINDF, BINDINFO* BindInfo);
- STDMETHOD(OnDataAvailable)(DWORD BSCF, DWORD Size, FORMATETC* FormatEtc, STGMEDIUM* StgMedium);
- STDMETHOD(OnObjectAvailable)(REFIID RefID, IUnknown* Unknown);
-
-
- public:
- BOOL GetProfileString(LPOLESTR pszSection, LPOLESTR pszKey, LPOLESTR
- pszBuffer, UINT BufferSize);
- BOOL GetFirstKey(LPOLESTR pszSection, LPVOID *pvEnumKey, LPOLESTR pszBuffer,
- UINT BufferSize);
- BOOL GetNextKey(LPVOID *pvEnumKey, LPOLESTR pszBuffer, UINT BufferSize);
-
- private:
- void SkipWhitespace(void);
- void SkipToNextLine(void);
- BOOL FindSection(LPOLESTR pszSection);
- BOOL GetKeyCommon(LPVOID *pvEnumKey, LPOLESTR pszBuffer, UINT BufferSize);
- };
-
-
- typedef enum {
- FILEXTN_NONE,
- FILEXTN_UNKNOWN,
- FILEXTN_HQX,
- FILEXTN_INF
- } FILEXTN;
-
- BOOL FindActiveXCacheFolder(short *foundvRefNum, long *foundDirID);
- BOOL FindDownloadFolder(short *foundvRefNum, long *foundDirID, BOOL
- fExtensionsFolder);
- FILEXTN GetFileTypeFromExtension(LPOLESTR pszURL);
- BOOL GetVersionFromFile(FSSpec *spec, LPDWORD pdwVersion);
- BOOL GetVersionFromURL(LPOLESTR pszURL, LPDWORD pdwVersion);
- BOOL CheckCLSIDVersion(REFCLSID rclsid, DWORD dwMinimumVersion);
-