Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
bindcb.h
Package: shell.rar [view]
Upload User: xhy777
Upload Date: 2007-02-14
Package Size: 24088k
Code Size: 5k
Category:
Windows Kernel
Development Platform:
Visual C++
- //*********************************************************************
- //* Microsoft Windows **
- //* Copyright(c) Microsoft Corp., 1996 **
- //*********************************************************************
- #ifndef _BINDCB_H_
- // the CStubBindStatusCallback implements IBindStatusCallback and
- // IHttpNegotiate. We use it to make a "fake" bind status callback
- // object when we have headers and post data we would like to apply
- // to a navigation. We supply this IBindStatusCallback object, and
- // the URL moniker asks us for headers and post data and use those in
- // the transaction.
- class CStubBindStatusCallback : public IBindStatusCallback,
- IHttpNegotiate,
- IMarshal
- {
- private:
- UINT _cRef; // ref count on this COM object
- LPCSTR _pszHeaders; // headers to use
- HGLOBAL _hszPostData; // post data to use
- DWORD _cbPostData; // size of post data
- BOOL _bFrameIsOffline : 1; // Indicates if Offline property is set
- BOOL _bFrameIsSilent : 1; // Indicates if Silent property is set
- BOOL _bHyperlink : 1; // This is a hyperlink or top level request
- DWORD _grBindFlags; // optional additional bindinfo flags
- public:
- CStubBindStatusCallback(LPCWSTR pwzHeaders,LPCBYTE pPostData,DWORD cbPostData,
- VARIANT_BOOL bFrameIsOffline, VARIANT_BOOL bFrameIsSilent, BOOL bHyperlink, DWORD grBindFlags);
- ~CStubBindStatusCallback();
- // *** IUnknown methods ***
- virtual STDMETHODIMP QueryInterface(REFIID riid, LPVOID * ppvObj);
- virtual STDMETHODIMP_(ULONG) AddRef(void) ;
- virtual STDMETHODIMP_(ULONG) Release(void);
- // *** IBindStatusCallback ***
- virtual STDMETHODIMP OnStartBinding(
- /* [in] */ DWORD grfBSCOption,
- /* [in] */ IBinding *pib);
- virtual STDMETHODIMP GetPriority(
- /* [out] */ LONG *pnPriority);
- virtual STDMETHODIMP OnLowResource(
- /* [in] */ DWORD reserved);
- virtual STDMETHODIMP OnProgress(
- /* [in] */ ULONG ulProgress,
- /* [in] */ ULONG ulProgressMax,
- /* [in] */ ULONG ulStatusCode,
- /* [in] */ LPCWSTR szStatusText);
- virtual STDMETHODIMP OnStopBinding(
- /* [in] */ HRESULT hresult,
- /* [in] */ LPCWSTR szError);
- virtual STDMETHODIMP GetBindInfo(
- /* [out] */ DWORD *grfBINDINFOF,
- /* [unique][out][in] */ BINDINFO *pbindinfo);
- virtual STDMETHODIMP OnDataAvailable(
- /* [in] */ DWORD grfBSCF,
- /* [in] */ DWORD dwSize,
- /* [in] */ FORMATETC *pformatetc,
- /* [in] */ STGMEDIUM *pstgmed);
- virtual STDMETHODIMP OnObjectAvailable(
- /* [in] */ REFIID riid,
- /* [iid_is][in] */ IUnknown *punk);
- /* *** IHttpNegotiate *** */
- virtual STDMETHODIMP BeginningTransaction(LPCWSTR szURL, LPCWSTR szHeaders,
- DWORD dwReserved, LPWSTR __RPC_FAR *pszAdditionalHeaders);
- virtual STDMETHODIMP OnResponse(DWORD dwResponseCode, LPCWSTR szResponseHeaders,
- LPCWSTR szRequestHeaders, LPWSTR *pszAdditionalRequestHeaders);
- // IMarshal methods
- STDMETHODIMP GetUnmarshalClass(REFIID riid,void *pvInterface,
- DWORD dwDestContext,void *pvDestContext,DWORD mshlflags,CLSID *pCid);
- STDMETHODIMP GetMarshalSizeMax(REFIID riid,void *pvInterface,
- DWORD dwDestContext,void *pvDestContext,DWORD mshlflags,DWORD *pSize);
- STDMETHODIMP MarshalInterface(IStream *pistm,REFIID riid,
- void *pvInterface,DWORD dwDestContext,
- void *pvDestContext,DWORD mshlflags);
- STDMETHODIMP UnmarshalInterface(IStream *pistm,REFIID riid,void ** ppvObj);
- STDMETHODIMP ReleaseMarshalData(IStream *pStm);
- STDMETHODIMP DisconnectObject(DWORD dwReserved);
- // helper methods
- STDMETHODIMP _FreeHeadersAndPostData();
- BOOL _CanMarshalIID(REFIID riid);
- HRESULT _ValidateMarshalParams(REFIID riid,void *pvInterface,
- DWORD dwDestContext,void *pvDestContext,DWORD mshlflags);
- };
- // BUGBUG:
- // private flags between shdocvw and mshtml
- // -> should be done via bind context
- //
- #define BINDF_INLINESGETNEWESTVERSION 0x10000000
- #define BINDF_INLINESRESYNCHRONIZE 0x20000000
- #define BINDF_CONTAINER_NOWRITECACHE 0x40000000
- // global helper functions
- BOOL fOnProxy();
- HRESULT BuildBindInfo(DWORD *grfBINDF,BINDINFO *pbindinfo,HGLOBAL hszPostData,
- DWORD cbPostData, BOOL bFrameIsOffline, BOOL bFrameIsSilent, BOOL bHyperlink, LPUNKNOWN pUnkForRelease);
- HRESULT BuildAdditionalHeaders(LPCSTR pszOurExtraHeaders,LPCWSTR * ppwzCombinedHeadersOut);
- HRESULT CStubBindStatusCallback_Create(LPCWSTR pwzHeaders, LPCBYTE pPostData,
- DWORD cbPostData, VARIANT_BOOL bFrameIsOffline, VARIANT_BOOL bFrameIsSilent,BOOL bHyperlink,
- DWORD grBindFlags,
- CStubBindStatusCallback ** ppBindStatusCallback);
- HRESULT GetHeadersAndPostData(IBindStatusCallback * pBindStatusCallback,
- LPSTR * ppszHeaders, STGMEDIUM * pstgPostData, DWORD * pdwPostData, BOOL * pfUseCache);
- HRESULT GetTopLevelBindStatusCallback(IServiceProvider * psp,
- IBindStatusCallback ** ppBindStatusCallback);
- HRESULT GetTopLevelPendingBindStatusCallback(IServiceProvider * psp,
- IBindStatusCallback ** ppBindStatusCallback);
- #endif // _BINDCB_H_