filter.idl 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. /**
  2. * This file is part of the mingw-w64 runtime package.
  3. * No warranty is given; refer to the file DISCLAIMER within this package.
  4. */
  5. import "unknwn.idl";
  6. import "objidl.idl";
  7. import "propidl.idl";
  8. interface IFilter;
  9. cpp_quote("#include <winapifamily.h>")
  10. cpp_quote("")
  11. cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
  12. cpp_quote("#ifndef _TAGFULLPROPSPEC_DEFINED_")
  13. cpp_quote("#define _TAGFULLPROPSPEC_DEFINED_")
  14. typedef struct tagFULLPROPSPEC {
  15. GUID guidPropSet;
  16. PROPSPEC psProperty;
  17. } FULLPROPSPEC;
  18. cpp_quote("#endif")
  19. cpp_quote("#ifndef _tagIFILTER_INIT_DEFINED")
  20. cpp_quote("#define _tagIFILTER_INIT_DEFINED")
  21. typedef enum tagIFILTER_INIT {
  22. IFILTER_INIT_CANON_PARAGRAPHS = 0x1,
  23. IFILTER_INIT_HARD_LINE_BREAKS = 0x2,
  24. IFILTER_INIT_CANON_HYPHENS = 0x4,
  25. IFILTER_INIT_CANON_SPACES = 0x8,
  26. IFILTER_INIT_APPLY_INDEX_ATTRIBUTES = 0x10,
  27. IFILTER_INIT_APPLY_OTHER_ATTRIBUTES = 0x20,
  28. IFILTER_INIT_INDEXING_ONLY = 0x40,
  29. IFILTER_INIT_SEARCH_LINKS = 0x80,
  30. IFILTER_INIT_APPLY_CRAWL_ATTRIBUTES = 0x100,
  31. IFILTER_INIT_FILTER_OWNED_VALUE_OK = 0x200,
  32. IFILTER_INIT_FILTER_AGGRESSIVE_BREAK = 0x400,
  33. IFILTER_INIT_DISABLE_EMBEDDED = 0x800,
  34. IFILTER_INIT_EMIT_FORMATTING = 0x1000
  35. } IFILTER_INIT;
  36. cpp_quote("#define _IFILTER_INIT_DEFINED")
  37. cpp_quote("#endif")
  38. cpp_quote("#ifndef _tagIFILTER_FLAGS_DEFINED")
  39. cpp_quote("#define _tagIFILTER_FLAGS_DEFINED")
  40. typedef enum tagIFILTER_FLAGS {
  41. IFILTER_FLAGS_OLE_PROPERTIES = 1
  42. } IFILTER_FLAGS;
  43. cpp_quote("#define _IFILTER_FLAGS_DEFINED")
  44. cpp_quote("#endif")
  45. cpp_quote("#ifndef _tagCHUNKSTATE_DEFINED")
  46. cpp_quote("#define _tagCHUNKSTATE_DEFINED")
  47. typedef enum tagCHUNKSTATE {
  48. CHUNK_TEXT = 0x1,
  49. CHUNK_VALUE = 0x2,
  50. CHUNK_FILTER_OWNED_VALUE = 0x4
  51. } CHUNKSTATE;
  52. cpp_quote("#define _CHUNKSTATE_DEFINED")
  53. cpp_quote("#endif")
  54. cpp_quote("#ifndef _tagCHUNK_BREAKTYPE_DEFINED")
  55. cpp_quote("#define _tagCHUNK_BREAKTYPE_DEFINED")
  56. typedef enum tagCHUNK_BREAKTYPE {
  57. CHUNK_NO_BREAK = 0,
  58. CHUNK_EOW = 1,
  59. CHUNK_EOS = 2,
  60. CHUNK_EOP = 3,
  61. CHUNK_EOC = 4
  62. } CHUNK_BREAKTYPE;
  63. cpp_quote("#define _CHUNK_BREAKTYPE_DEFINED")
  64. cpp_quote("#endif")
  65. cpp_quote("#ifndef _tagFILTERREGION_DEFINED")
  66. cpp_quote("#define _tagFILTERREGION_DEFINED")
  67. typedef struct tagFILTERREGION {
  68. ULONG idChunk;
  69. ULONG cwcStart;
  70. ULONG cwcExtent;
  71. } FILTERREGION;
  72. cpp_quote("#define _FILTERREGION_DEFINED")
  73. cpp_quote("#endif")
  74. cpp_quote("#ifndef _tagSTAT_CHUNK_DEFINED")
  75. cpp_quote("#define _tagSTAT_CHUNK_DEFINED")
  76. typedef struct tagSTAT_CHUNK {
  77. ULONG idChunk;
  78. CHUNK_BREAKTYPE breakType;
  79. CHUNKSTATE flags;
  80. LCID locale;
  81. FULLPROPSPEC attribute;
  82. ULONG idChunkSource;
  83. ULONG cwcStartSource;
  84. ULONG cwcLenSource;
  85. } STAT_CHUNK;
  86. cpp_quote("#define _STAT_CHUNK_DEFINED")
  87. cpp_quote("#endif")
  88. [object, uuid (89bcb740-6119-101a-BCB7-00dd010655af), pointer_default (unique)]
  89. interface IFilter : IUnknown {
  90. SCODE Init ([in] ULONG grfFlags,[in] ULONG cAttributes,[in, size_is (cAttributes), unique] FULLPROPSPEC const *aAttributes,[out] ULONG *pFlags);
  91. SCODE GetChunk ([out] STAT_CHUNK *pStat);
  92. SCODE GetText ([in, out] ULONG *pcwcBuffer,[out, size_is (*pcwcBuffer)] WCHAR *awcBuffer);
  93. SCODE GetValue ([out] PROPVARIANT **ppPropValue);
  94. [local] SCODE BindRegion ([in] FILTERREGION origPos,[in] REFIID riid,[out] void **ppunk);
  95. }
  96. cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */")