You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
2.2 KiB
60 lines
2.2 KiB
#ifndef __LOGO3BSC_INCLUDED__
|
|
#define __LOGO3BSC_INCLUDED__
|
|
|
|
#define TIMEOUT_INTERVAL 1000 // milliseconds
|
|
|
|
void CALLBACK TimeOutProc(HWND hwnd, UINT msg, UINT idEvent, DWORD dwTime);
|
|
|
|
class Logo3CodeDLBSC : public IBindStatusCallback
|
|
{
|
|
public:
|
|
Logo3CodeDLBSC(CSoftDist *pSoftDist, IBindStatusCallback *pClientBSC,
|
|
LPSTR szCodeBase, LPWSTR wzDistUnit);
|
|
virtual ~Logo3CodeDLBSC();
|
|
|
|
// IUnknown methods
|
|
STDMETHODIMP QueryInterface( REFIID ridd, void **ppv );
|
|
STDMETHODIMP_( ULONG ) AddRef();
|
|
STDMETHODIMP_( ULONG ) Release();
|
|
|
|
// IBindStatusCallback methods
|
|
STDMETHODIMP GetBindInfo(DWORD *grfBINDINFOF, BINDINFO *pbindinfo);
|
|
STDMETHODIMP OnStartBinding(DWORD grfBSCOption, IBinding *pib);
|
|
STDMETHODIMP GetPriority(LONG *pnPriority);
|
|
STDMETHODIMP OnProgress(ULONG ulProgress, ULONG ulProgressMax,
|
|
ULONG ulStatusCode, LPCWSTR szStatusText);
|
|
STDMETHODIMP OnDataAvailable(DWORD grfBSCF, DWORD dwSize,
|
|
FORMATETC *pformatetc,
|
|
STGMEDIUM *pstgmed);
|
|
STDMETHODIMP OnObjectAvailable(REFIID riid, IUnknown *punk);
|
|
STDMETHODIMP OnLowResource(DWORD dwReserved);
|
|
STDMETHODIMP OnStopBinding(HRESULT hresult, LPCWSTR szError);
|
|
|
|
// Helper Functions
|
|
void SetBindCtx(IBindCtx *pbc);
|
|
|
|
#ifdef LOGO3_SUPPORT_AUTOINSTALL
|
|
void TimeOut();
|
|
#endif
|
|
|
|
private:
|
|
STDMETHODIMP RecordPrecacheValue(HRESULT hr);
|
|
|
|
protected:
|
|
IBinding *_pIBinding; // ibinding from code dl'er
|
|
IBindStatusCallback *_pClientBSC;
|
|
IBindCtx *_pbc;
|
|
CSoftDist *_pSoftDist;
|
|
DWORD _cRef;
|
|
LPSTR _szCodeBase;
|
|
LPSTR _szDistUnit;
|
|
BOOL _bPrecacheOnly;
|
|
Cwvt _wvt;
|
|
|
|
#ifdef LOGO3_SUPPORT_AUTOINSTALL
|
|
UINT _uiTimer;
|
|
HANDLE _hProc;
|
|
#endif
|
|
};
|
|
|
|
#endif
|