Leaked source code of windows server 2003
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.

68 lines
2.0 KiB

  1. #ifndef __SILENT_BINDSTATUS__
  2. #define __SILENT_BINDSTATUS__
  3. #include <urlmki.h>
  4. class CSilentCodeDLSink : public IBindStatusCallback,
  5. public ICodeInstall
  6. {
  7. public:
  8. CSilentCodeDLSink();
  9. ~CSilentCodeDLSink();
  10. // Helper function
  11. HRESULT WaitTillNotified();
  12. VOID Abort();
  13. // IUnknown methods
  14. STDMETHODIMP QueryInterface(REFIID riid, void **ppv);
  15. STDMETHODIMP_(ULONG) AddRef();
  16. STDMETHODIMP_(ULONG) Release();
  17. // IBindStatusCallback
  18. STDMETHODIMP OnStartBinding(
  19. /* [in] */ DWORD grfBSCOption,
  20. /* [in] */ IBinding *pib);
  21. STDMETHODIMP GetPriority(
  22. /* [out] */ LONG *pnPriority);
  23. STDMETHODIMP OnLowResource(
  24. /* [in] */ DWORD reserved);
  25. STDMETHODIMP OnProgress(
  26. /* [in] */ ULONG ulProgress,
  27. /* [in] */ ULONG ulProgressMax,
  28. /* [in] */ ULONG ulStatusCode,
  29. /* [in] */ LPCWSTR szStatusText);
  30. STDMETHODIMP OnStopBinding(
  31. /* [in] */ HRESULT hresult,
  32. /* [in] */ LPCWSTR szError);
  33. STDMETHODIMP GetBindInfo(
  34. /* [out] */ DWORD *grfBINDINFOF,
  35. /* [unique][out][in] */ BINDINFO *pbindinfo);
  36. STDMETHODIMP OnDataAvailable(
  37. /* [in] */ DWORD grfBSCF,
  38. /* [in] */ DWORD dwSize,
  39. /* [in] */ FORMATETC *pformatetc,
  40. /* [in] */ STGMEDIUM *pstgmed);
  41. STDMETHODIMP OnObjectAvailable(
  42. /* [in] */ REFIID riid,
  43. /* [iid_is][in] */ IUnknown *punk);
  44. // ICodeInstall methods
  45. STDMETHODIMP GetWindow(
  46. REFGUID rguidReason,
  47. /* [out] */ HWND *phwnd);
  48. STDMETHODIMP OnCodeInstallProblem(
  49. ULONG ulStatusCode,
  50. LPCWSTR szDestination,
  51. LPCWSTR szSource,
  52. DWORD dwReserved);
  53. protected:
  54. BOOL m_fAbort;
  55. DWORD m_cRef;
  56. IBinding* m_pBinding;
  57. HANDLE m_hOnStopBindingEvt; // Handle to manual reset events
  58. };
  59. #endif