1 // MatchFinders/IMatchFinder.h
3 #ifndef __IMATCHFINDER_H
4 #define __IMATCHFINDER_H
6 // {23170F69-40C1-278A-0000-000200010000}
7 DEFINE_GUID(IID_IInWindowStream
,
8 0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00);
9 MIDL_INTERFACE("23170F69-40C1-278A-0000-000200010000")
10 IInWindowStream
: public IUnknown
12 STDMETHOD(Init
)(ISequentialInStream
*inStream
) PURE
;
13 STDMETHOD_(void, ReleaseStream
)() PURE
;
14 STDMETHOD(MovePos
)() PURE
;
15 STDMETHOD_(Byte
, GetIndexByte
)(Int32 index
) PURE
;
16 STDMETHOD_(UInt32
, GetMatchLen
)(Int32 index
, UInt32 distance
, UInt32 limit
) PURE
;
17 STDMETHOD_(UInt32
, GetNumAvailableBytes
)() PURE
;
18 STDMETHOD_(const Byte
*, GetPointerToCurrentPos
)() PURE
;
21 // {23170F69-40C1-278A-0000-000200020000}
22 DEFINE_GUID(IID_IMatchFinder
,
23 0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00);
24 MIDL_INTERFACE("23170F69-40C1-278A-0000-000200020000")
25 IMatchFinder
: public IInWindowStream
27 STDMETHOD(Create
)(UInt32 historySize
, UInt32 keepAddBufferBefore
,
28 UInt32 matchMaxLen
, UInt32 keepAddBufferAfter
) PURE
;
29 STDMETHOD_(UInt32
, GetLongestMatch
)(UInt32
*distances
) PURE
;
30 STDMETHOD_(void, DummyLongestMatch
)() PURE
;
33 // {23170F69-40C1-278A-0000-000200020100}
34 DEFINE_GUID(IID_IMatchFinderCallback
,
35 0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x01, 0x00);
36 MIDL_INTERFACE("23170F69-40C1-278A-0000-000200020100")
37 IMatchFinderCallback
: public IUnknown
39 STDMETHOD(BeforeChangingBufferPos
)() PURE
;
40 STDMETHOD(AfterChangingBufferPos
)() PURE
;
43 // {23170F69-40C1-278A-0000-000200020200}
44 DEFINE_GUID(IID_IMatchFinderSetCallback
,
45 0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x02, 0x00);
46 MIDL_INTERFACE("23170F69-40C1-278A-0000-000200020200")
47 IMatchFinderSetCallback
: public IUnknown
49 STDMETHOD(SetCallback
)(IMatchFinderCallback
*callback
) PURE
;
53 // {23170F69-40C1-278A-0000-000200030000}
54 DEFINE_GUID(IID_IInitMatchFinder,
55 0x23170F69, 0x40C1, 0x278A, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00);
56 MIDL_INTERFACE("23170F69-40C1-278A-0000-000200030000")
57 IMatchFinderInit: public IUnknown
59 STDMETHOD(InitMatchFinder)(IMatchFinder *matchFinder) PURE;