/[tivodecode]/tivocom/trunk/CTivoFile.h
ViewVC logotype

Diff of /tivocom/trunk/CTivoFile.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 253 by jeremyd2019, Wed Aug 15 06:53:07 2007 UTC revision 254 by jeremyd2019, Sun Sep 9 23:26:20 2007 UTC
# Line 17  Line 17 
17    
18  class ATL_NO_VTABLE CTivoFile :  class ATL_NO_VTABLE CTivoFile :
19          public CComObjectRootEx<CComSingleThreadModel>,          public CComObjectRootEx<CComSingleThreadModel>,
20  //      public CComCoClass<CTivoFile, &CLSID_TivoFile>,          public CComCoClass<CTivoFile, &CLSID_TivoFile>,
21          public IConnectionPointContainerImpl<CTivoFile>,          public IConnectionPointContainerImpl<CTivoFile>,
22          public CProxy_DTivoFileEvents<CTivoFile>,          public CProxy_DTivoFileEvents<CTivoFile>,
23          public IDispatchImpl<ITivoFile, &IID_ITivoFile, &LIBID_tivocomLib, /*wMajor =*/ 1, /*wMinor =*/ 0>          public ISupportErrorInfoImpl<&IID_ITivoFile>,
24            public IProvideClassInfo2Impl<&CLSID_TivoFile, &DIID_DTivoFileEvents, &LIBID_tivocomLib, /*wMajor =*/ 1, /*wMinor =*/ 1>,
25            public IDispatchImpl<ITivoFile, &IID_ITivoFile, &LIBID_tivocomLib, /*wMajor =*/ 1, /*wMinor =*/ 1>
26  {  {
27          std::string m_fname;          CComPtr<IStream> m_pStm;
28          std::string m_mak;          std::string m_mak;
29          tivo_stream_header m_fileheader;          tivo_stream_header m_fileheader;
30          FILE* m_fh;          turing_state m_mpeg_turing;
31          off_t m_endoffileheader;          bool m_mpeg_turing_inited;
32            ULARGE_INTEGER m_endoffileheader;
33            CComPtr<IChunkCollection> m_chunkcoll;
34  public:  public:
35          CTivoFile()          CTivoFile()
36                    : m_mpeg_turing_inited(false)
37          {          {
38                    memset(&m_mpeg_turing, 0, sizeof(turing_state));
39          }          }
40    
41  //DECLARE_REGISTRY_RESOURCEID(IDR_TIVOFILE)  DECLARE_REGISTRY_RESOURCEID(IDR_TIVOFILE)
42    
43    
44  BEGIN_COM_MAP(CTivoFile)  BEGIN_COM_MAP(CTivoFile)
45          COM_INTERFACE_ENTRY(ITivoFile)          COM_INTERFACE_ENTRY(ITivoFile)
46            COM_INTERFACE_ENTRY(IProvideClassInfo)
47            COM_INTERFACE_ENTRY(IProvideClassInfo2)
48            COM_INTERFACE_ENTRY(ISupportErrorInfo)
49          COM_INTERFACE_ENTRY(IDispatch)          COM_INTERFACE_ENTRY(IDispatch)
50          COM_INTERFACE_ENTRY(IConnectionPointContainer)          COM_INTERFACE_ENTRY(IConnectionPointContainer)
51  END_COM_MAP()  END_COM_MAP()
# Line 53  END_CONNECTION_POINT_MAP() Line 62  END_CONNECTION_POINT_MAP()
62                  return S_OK;                  return S_OK;
63          }          }
64    
65          void FinalRelease()          void FinalRelease();
         {  
                 if (m_fh)  
                         fclose(m_fh);  
         }  
66    
67          STDMETHOD(Init)(const std::string & mak, BSTR filename);          STDMETHOD(Init)(BSTR mak, IStream* stream);
68          STDMETHOD(get_fh)(FILE** fh)          STDMETHOD(get_stream)(IStream** stream)
69          {          {
70                  if (!fh)                  return m_pStm.CopyTo(stream);
                         return E_POINTER;  
                 *fh = m_fh;  
                 return S_OK;  
71          }          }
72    
73  public:  public:
# Line 80  END_CONNECTION_POINT_MAP() Line 82  END_CONNECTION_POINT_MAP()
82          STDMETHOD(get_chunks)(IChunkCollection** pVal);          STDMETHOD(get_chunks)(IChunkCollection** pVal);
83          STDMETHOD(get_mak)(BSTR* pVal);          STDMETHOD(get_mak)(BSTR* pVal);
84          STDMETHOD(put_mak)(BSTR newVal);          STDMETHOD(put_mak)(BSTR newVal);
85            STDMETHOD(DecryptMPEGToFile)(BSTR bstrFileName);
86            STDMETHOD(DecryptMPEGToStream)(IStream* pStm);
87  };  };
88    
89  //OBJECT_ENTRY_AUTO(__uuidof(TivoFile), CTivoFile)  OBJECT_ENTRY_AUTO(__uuidof(TivoFile), CTivoFile)

Legend:
Removed from v.253  
changed lines
  Added in v.254

cvs@jdrake.com
ViewVC Help
Powered by ViewVC 1.1.13