This file is indexed.

/usr/x86_64-w64-mingw32/include/mspstrm.h is in mingw-w64-x86-64-dev 2.0.3-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
/**
 * This file has no copyright assigned and is placed in the Public Domain.
 * This file is part of the w64 mingw-runtime package.
 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
 */
#ifndef _MSPSTRM_H_
#define _MSPSTRM_H_

#define STRM_INITIAL 0x00000000
#define STRM_TERMINALSELECTED 0x00000001
#define STRM_CONFIGURED 0x00000002
#define STRM_RUNNING 0x00000004
#define STRM_PAUSED 0x00000008
#define STRM_STOPPED 0x00000010

class CMSPStream;

class ATL_NO_VTABLE CPTEventSink : public CComObjectRootEx<CComMultiThreadModel>,public ITPluggableTerminalEventSink {
public:
  CPTEventSink();
  ~CPTEventSink();
  BEGIN_COM_MAP(CPTEventSink)
    COM_INTERFACE_ENTRY(ITPluggableTerminalEventSink)
  END_COM_MAP()
public:
  STDMETHOD(FireEvent)(const MSP_EVENT_INFO *pMspEventInfo);
public:
  HRESULT SetSinkStream(CMSPStream *pStream);
private:
  struct AsyncEventStruct {
    CMSPStream *pMSPStream;
    MSPEVENTITEM *pEventItem;
    AsyncEventStruct() : pMSPStream(NULL),pEventItem(NULL) {
      LOG((MSP_TRACE,"AsyncEventStruct::AsyncEventStruct[%p]",this));
    }
    ~AsyncEventStruct() {
      pMSPStream = NULL;
      pEventItem = NULL;
      LOG((MSP_TRACE,"AsyncEventStruct::~AsyncEventStruct[%p]",this));
    }
  };
  static DWORD WINAPI FireEventCallBack(LPVOID pEventStructure);
private:
  CMSPStream *m_pMSPStream;
};

class ATL_NO_VTABLE CMSPStream : public CComObjectRootEx<CComMultiThreadModelNoCS>,public IDispatchImpl<ITStream,&IID_ITStream,&LIBID_TAPI3Lib> {
public:
  BEGIN_COM_MAP(CMSPStream)
    COM_INTERFACE_ENTRY(IDispatch)
    COM_INTERFACE_ENTRY(ITStream)
    COM_INTERFACE_ENTRY_AGGREGATE(IID_IMarshal,m_pFTM)
  END_COM_MAP()
  DECLARE_GET_CONTROLLING_UNKNOWN()
  CMSPStream();
  ~CMSPStream();
  virtual void FinalRelease();
  STDMETHOD (get_MediaType) (long *plMediaType);
  STDMETHOD (get_Direction) (TERMINAL_DIRECTION *pTerminalDirection);
  STDMETHOD (get_Name) (BSTR *ppName) = 0;
  STDMETHOD (SelectTerminal) (ITTerminal *pTerminal);
  STDMETHOD (UnselectTerminal) (ITTerminal *pTerminal);
  STDMETHOD (EnumerateTerminals) (IEnumTerminal **ppEnumTerminal);
  STDMETHOD (get_Terminals) (VARIANT *pTerminals);
  STDMETHOD (StartStream) ();
  STDMETHOD (PauseStream) ();
  STDMETHOD (StopStream) ();
  virtual HRESULT Init(HANDLE hAddress,CMSPCallBase *pMSPCall,IMediaEvent *pGraph,DWORD dwMediaType,TERMINAL_DIRECTION Direction);
  virtual HRESULT ShutDown();
  virtual HRESULT GetState(DWORD *pdwStatus) { return E_NOTIMPL; }
  virtual HRESULT HandleTSPData(BYTE *pData,DWORD dwSize);
  virtual HRESULT ProcessGraphEvent(long lEventCode,LONG_PTR lParam1,LONG_PTR lParam2);
protected:
  HRESULT RegisterPluggableTerminalEventSink(ITTerminal *pTerminal);
  HRESULT UnregisterPluggableTerminalEventSink(ITTerminal *pTerminal);
  HRESULT ReleaseSink();
  ULONG InternalAddRef();
  ULONG InternalRelease();
public:
  HRESULT HandleSinkEvent(MSPEVENTITEM *pEventItem);
protected:
  IUnknown *m_pFTM;
  DWORD m_dwState;
  DWORD m_dwMediaType;
  TERMINAL_DIRECTION m_Direction;
  HANDLE m_hAddress;
  CMSPCallBase *m_pMSPCall;
  IGraphBuilder *m_pIGraphBuilder;
  IMediaControl *m_pIMediaControl;
  CMSPArray <ITTerminal *> m_Terminals;
  CMSPCritSection m_lock;
  CMSPCritSection m_lockRefCount;
  ITPluggableTerminalEventSink *m_pPTEventSink;
  long m_lMyPersonalRefcount;
  WINBOOL m_bFirstAddRef;
};

#endif