Source code of Windows XP (NT5)
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.

138 lines
2.9 KiB

  1. /******************************************************************************
  2. *
  3. * (C) COPYRIGHT MICROSOFT CORP., 1999
  4. *
  5. * TITLE: wiamonk.h
  6. *
  7. * VERSION: 1.0
  8. *
  9. * DATE: 10 Nov, 1999
  10. *
  11. * DESCRIPTION:
  12. * This file describes the class used by WIA to imlement an instance moniker.
  13. *
  14. ******************************************************************************/
  15. class CWiaInstMonk : public IMoniker,
  16. public IROTData
  17. {
  18. public:
  19. //
  20. // Constructor, Destructor, Initialize
  21. //
  22. CWiaInstMonk();
  23. ~CWiaInstMonk();
  24. HRESULT _stdcall Initialize(LPOLESTR strName);
  25. //
  26. // IUnknown
  27. //
  28. HRESULT _stdcall QueryInterface(const IID& iid, void** ppv);
  29. ULONG _stdcall AddRef();
  30. ULONG _stdcall Release();
  31. //
  32. // IROTData
  33. //
  34. HRESULT _stdcall GetComparisonData(
  35. BYTE *pbData,
  36. ULONG cbMax,
  37. ULONG *pcbData);
  38. //
  39. // IMoniker
  40. //
  41. HRESULT _stdcall BindToObject(
  42. IBindCtx *pbc,
  43. IMoniker *pmkToLeft,
  44. REFIID riidResult,
  45. void **ppvResult);
  46. HRESULT _stdcall BindToStorage(
  47. IBindCtx *pbc,
  48. IMoniker *pmkToLeft,
  49. REFIID riid,
  50. void **ppvObj);
  51. HRESULT _stdcall Reduce(
  52. IBindCtx *pbc,
  53. DWORD dwReduceHowFar,
  54. IMoniker **ppmkToLeft,
  55. IMoniker **ppmkReduced);
  56. HRESULT _stdcall ComposeWith(
  57. IMoniker *pmkRight,
  58. BOOL fOnlyIfNotGeneric,
  59. IMoniker **ppmkComposite);
  60. HRESULT _stdcall Enum(
  61. BOOL fForward,
  62. IEnumMoniker **ppenumMoniker);
  63. HRESULT _stdcall IsEqual(
  64. IMoniker *pmkOtherMoniker);
  65. HRESULT _stdcall Hash(
  66. DWORD *pdwHash);
  67. HRESULT _stdcall IsRunning(
  68. IBindCtx *pbc,
  69. IMoniker *pmkToLeft,
  70. IMoniker *pmkNewlyRunning);
  71. HRESULT _stdcall GetTimeOfLastChange(
  72. IBindCtx *pbc,
  73. IMoniker *pmkToLeft,
  74. FILETIME *pFileTime);
  75. HRESULT _stdcall Inverse(
  76. IMoniker **ppmk);
  77. HRESULT _stdcall CommonPrefixWith(
  78. IMoniker *pmkOther,
  79. IMoniker **ppmkPrefix);
  80. HRESULT _stdcall RelativePathTo(
  81. IMoniker *pmkOther,
  82. IMoniker **ppmkRelPath);
  83. HRESULT _stdcall GetDisplayName(
  84. IBindCtx *pbc,
  85. IMoniker *pmkToLeft,
  86. LPOLESTR *ppszDisplayName);
  87. HRESULT _stdcall ParseDisplayName(
  88. IBindCtx *pbc,
  89. IMoniker *pmkToLeft,
  90. LPOLESTR pszDisplayName,
  91. ULONG *pchEaten,
  92. IMoniker **ppmkOut);
  93. HRESULT _stdcall IsSystemMoniker(
  94. DWORD *pdwMksys);
  95. //
  96. // IPersistStream
  97. //
  98. HRESULT _stdcall IsDirty();
  99. HRESULT _stdcall Load(IStream *pStm);
  100. HRESULT _stdcall Save(IStream *pStm, BOOL fClearDirty);
  101. HRESULT _stdcall GetSizeMax(ULARGE_INTEGER *pcbSize);
  102. //
  103. // IPersist
  104. //
  105. HRESULT _stdcall GetClassID(LPCLSID pClassID);
  106. private:
  107. LONG m_cRef;
  108. BSTR m_bstrName;
  109. IUnknown *m_pIUnknownInner;
  110. };