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.

126 lines
3.3 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
  4. // ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
  5. // THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
  6. // PARTICULAR PURPOSE.
  7. //
  8. // Copyright 1998-1999 Microsoft Corporation. All Rights Reserved.
  9. //
  10. // PROGRAM: htmlprop.hxx
  11. //
  12. // PURPOSE: Sits on the Indexing Service HTML filter to translate string
  13. // meta properties into specified data types.
  14. //
  15. // PLATFORM: Windows 2000
  16. //
  17. //--------------------------------------------------------------------------
  18. #pragma once
  19. //
  20. // Standard Ole exports
  21. //
  22. extern "C" SCODE STDMETHODCALLTYPE DllGetClassObject( REFCLSID cid,
  23. REFIID iid,
  24. void ** ppvObj );
  25. extern "C" SCODE STDMETHODCALLTYPE DllCanUnloadNow( void );
  26. const ULONG cwcMaxName = 80;
  27. class HtmlPropIFilter : public IFilter, public IPersistFile
  28. {
  29. public:
  30. //
  31. // From IUnknown
  32. //
  33. SCODE STDMETHODCALLTYPE QueryInterface(REFIID riid, void * * ppvObject);
  34. ULONG STDMETHODCALLTYPE AddRef();
  35. ULONG STDMETHODCALLTYPE Release();
  36. //
  37. // From IFilter
  38. //
  39. SCODE STDMETHODCALLTYPE Init( ULONG grfFlags,
  40. ULONG cAttributes,
  41. FULLPROPSPEC const * aAttributes,
  42. ULONG * pFlags );
  43. SCODE STDMETHODCALLTYPE GetChunk( STAT_CHUNK * pStat);
  44. SCODE STDMETHODCALLTYPE GetText( ULONG * pcwcBuffer,
  45. WCHAR * awcBuffer );
  46. SCODE STDMETHODCALLTYPE GetValue( PROPVARIANT * * ppPropValue );
  47. SCODE STDMETHODCALLTYPE BindRegion( FILTERREGION origPos,
  48. REFIID riid,
  49. void ** ppunk);
  50. //
  51. // From IPersistFile
  52. //
  53. SCODE STDMETHODCALLTYPE GetClassID( CLSID * pClassID );
  54. SCODE STDMETHODCALLTYPE IsDirty();
  55. SCODE STDMETHODCALLTYPE Load( LPCWSTR pszFileName,
  56. DWORD dwMode);
  57. SCODE STDMETHODCALLTYPE Save( LPCWSTR pszFileName,
  58. BOOL fRemember );
  59. SCODE STDMETHODCALLTYPE SaveCompleted( LPCWSTR pszFileName );
  60. SCODE STDMETHODCALLTYPE GetCurFile( LPWSTR * ppszFileName );
  61. protected:
  62. friend class HtmlPropIFilterCF;
  63. HtmlPropIFilter();
  64. ~HtmlPropIFilter();
  65. IFilter * _pHtmlFilter;
  66. IPersistFile * _pPersistFile;
  67. long _lRefs;
  68. BOOL _fMetaProperty;
  69. WCHAR _awcName[cwcMaxName];
  70. };
  71. class HtmlPropIFilterCF : public IClassFactory
  72. {
  73. public:
  74. HtmlPropIFilterCF();
  75. SCODE STDMETHODCALLTYPE QueryInterface( REFIID riid,
  76. void ** ppvObject);
  77. ULONG STDMETHODCALLTYPE AddRef();
  78. ULONG STDMETHODCALLTYPE Release();
  79. SCODE STDMETHODCALLTYPE CreateInstance( IUnknown * pUnkOuter,
  80. REFIID riid, void * * ppvObject );
  81. SCODE STDMETHODCALLTYPE LockServer( BOOL fLock );
  82. protected:
  83. friend SCODE STDMETHODCALLTYPE DllGetClassObject( REFCLSID cid,
  84. REFIID iid, void** ppvObj );
  85. ~HtmlPropIFilterCF();
  86. long _lRefs;
  87. };