home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / vc98 / include / vidtypes.h < prev    next >
C/C++ Source or Header  |  1998-04-25  |  37KB  |  946 lines

  1. /* This header file machine-generated by mktyplib.exe */
  2. /* Interface to type library: MSBPCVideo */
  3.  
  4. #ifndef _MSBPCVideo_H_
  5. #define _MSBPCVideo_H_
  6.  
  7. DEFINE_GUID(LIBID_MSBPCVideo,0x99D257C1L,0x97A9,0x11CF,0xA8,0x8F,0x44,0x45,0x53,0x54,0x00,0x00);
  8. #ifndef BEGIN_INTERFACE
  9. #define BEGIN_INTERFACE
  10. #endif
  11.  
  12. typedef enum PURCHASEACTION {
  13.     PAGETDETAILS,
  14.     PAPURCHASETOVIEW,
  15.     PAPURCHASETOTAPE,
  16.     PACANCELVIEW,
  17.     PACANCELTAPE,
  18.     PAPREVIEW
  19. } PURCHASEACTION;
  20.  
  21. typedef enum PURCHASESTATUS {
  22.     PSVIEWTAKEN = 0,
  23.     PSVIEWCANCELLED,
  24.     PSVIEWREPORTED,
  25.     PSPREVIEWTAKEN,
  26.     PSVIEWAUTHORIZED,
  27.     PSVIEWPURCHASED,
  28.     PSTAPEPURCHASED,
  29.     PSTAPEAUTHORIZED,
  30.     PSTAPETAKEN,
  31.     PSTAPECANCELLED,
  32.     PSTAPEREPORTED,
  33.     PSVIEWAVAILABLE,
  34.     PSTAPEAVAILABLE,
  35.     PSREVIEWAVAILABLE
  36. } PURCHASESTATUS;
  37.  
  38. typedef enum PURCHASEREASON {
  39.     PRSUCCESS = 0,
  40.     PRNOCALLBACK,
  41.     PRNOSUBSCRIBER,
  42.     PRRATING,
  43.     PRSPENDING,
  44.     PRCREDIT,
  45.     PRWRONGCARD,
  46.     PRCARDFULL,
  47.     PRBLOCKED,
  48.     PRBLACKOUT,
  49.     PRTOOLATE,
  50.     PRREDUNDANT,
  51.     PRPPVFAILURE,
  52.     PRBADDATA,
  53.     PRCONTENTION
  54. } PURCHASEREASON;
  55.  
  56. typedef enum BpcVidsvrProgIds {
  57.     BPC_IDS_VIDSVR_PROGID = 2100,
  58.     BPC_IDS_COABPCDETAILS_PROGID = 2101
  59. } BpcVidsvrProgIds;
  60.  
  61. typedef enum statustype {
  62.     STATUS_PLAY = 2,
  63.     STATUS_PAUSED = 8,
  64.     STATUS_ACTIVE = 128
  65. } STATUSTYPE;
  66.  
  67. typedef enum {
  68.     movieDefaultSize,
  69.     movieHalfSize,
  70.     movieDoubleSize,
  71.     movieMaximizeSize,
  72.     movieFullScreen,
  73.     moviePermitResizeWithAspect,
  74.     moviePermitResizeNoRestrict
  75. } MovieWindowSetting;
  76.  
  77. typedef enum {
  78.     stateStopped,
  79.     statePaused,
  80.     stateRunning
  81. } State;
  82.  
  83. typedef enum {
  84.     modeTime,
  85.     modeFrames
  86. } DisplayMode;
  87.  
  88. DEFINE_GUID(IID_IBPCPurchase,0x40CA1AC0L,0xD66D,0x11CF,0xA8,0x8F,0x44,0x45,0x53,0x54,0x00,0x00);
  89.  
  90. /* Definition of interface: IBPCPurchase */
  91. #undef INTERFACE
  92. #define INTERFACE IBPCPurchase
  93.  
  94. DECLARE_INTERFACE_(IBPCPurchase, IDispatch)
  95. {
  96. BEGIN_INTERFACE
  97. #ifndef NO_BASEINTERFACE_FUNCS
  98.  
  99.     /* IUnknown methods */
  100.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  101.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  102.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  103.  
  104.     /* IDispatch methods */
  105.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  106.  
  107.     STDMETHOD(GetTypeInfo)(
  108.       THIS_
  109.       UINT itinfo,
  110.       LCID lcid,
  111.       ITypeInfo FAR* FAR* pptinfo) PURE;
  112.  
  113.     STDMETHOD(GetIDsOfNames)(
  114.       THIS_
  115.       REFIID riid,
  116.       OLECHAR FAR* FAR* rgszNames,
  117.       UINT cNames,
  118.       LCID lcid,
  119.       DISPID FAR* rgdispid) PURE;
  120.  
  121.     STDMETHOD(Invoke)(
  122.       THIS_
  123.       DISPID dispidMember,
  124.       REFIID riid,
  125.       LCID lcid,
  126.       WORD wFlags,
  127.       DISPPARAMS FAR* pdispparams,
  128.       VARIANT FAR* pvarResult,
  129.       EXCEPINFO FAR* pexcepinfo,
  130.       UINT FAR* puArgErr) PURE;
  131. #endif
  132.  
  133.     /* IBPCPurchase methods */
  134.     STDMETHOD(get_Channel)(THIS_ short FAR* Channel) PURE;
  135.     STDMETHOD(put_Channel)(THIS_ short Channel) PURE;
  136.     STDMETHOD(get_StartTime)(THIS_ DATE FAR* StartTime) PURE;
  137.     STDMETHOD(put_StartTime)(THIS_ DATE StartTime) PURE;
  138.     STDMETHOD(get_Expiry)(THIS_ DATE FAR* Expiry) PURE;
  139.     STDMETHOD(put_Expiry)(THIS_ DATE Expiry) PURE;
  140.     STDMETHOD(get_Duration)(THIS_ long FAR* Duration) PURE;
  141.     STDMETHOD(put_Duration)(THIS_ long Duration) PURE;
  142.     STDMETHOD(get_ItemID)(THIS_ long FAR* ItemID) PURE;
  143.     STDMETHOD(put_ItemID)(THIS_ long ItemID) PURE;
  144.     STDMETHOD(get_Location)(THIS_ long FAR* Location) PURE;
  145.     STDMETHOD(put_Location)(THIS_ long Location) PURE;
  146.     STDMETHOD(get_UserId)(THIS_ long FAR* UserId) PURE;
  147.     STDMETHOD(put_UserId)(THIS_ long UserId) PURE;
  148.     STDMETHOD(get_StorageId)(THIS_ long FAR* StorageId) PURE;
  149.     STDMETHOD(put_StorageId)(THIS_ long StorageId) PURE;
  150.     STDMETHOD(get_Title)(THIS_ BSTR FAR* Title) PURE;
  151.     STDMETHOD(put_Title)(THIS_ BSTR Title) PURE;
  152.     STDMETHOD(get_Rating)(THIS_ long FAR* Rating) PURE;
  153.     STDMETHOD(put_Rating)(THIS_ long Rating) PURE;
  154.     STDMETHOD(get_Year)(THIS_ BSTR FAR* Year) PURE;
  155.     STDMETHOD(put_Year)(THIS_ BSTR Year) PURE;
  156.     STDMETHOD(get_Description)(THIS_ BSTR FAR* Description) PURE;
  157.     STDMETHOD(put_Description)(THIS_ BSTR Description) PURE;
  158.     STDMETHOD(get_ViewCost)(THIS_ CY FAR* ViewCost) PURE;
  159.     STDMETHOD(put_ViewCost)(THIS_ CY ViewCost) PURE;
  160.     STDMETHOD(get_TapeCost)(THIS_ CY FAR* TapeCost) PURE;
  161.     STDMETHOD(put_TapeCost)(THIS_ CY TapeCost) PURE;
  162.     STDMETHOD(get_Action)(THIS_ long FAR* Action) PURE;
  163.     STDMETHOD(put_Action)(THIS_ long Action) PURE;
  164.     STDMETHOD(get_Status)(THIS_ long FAR* Status) PURE;
  165.     STDMETHOD(put_Status)(THIS_ long Status) PURE;
  166.     STDMETHOD(get_Reason)(THIS_ long FAR* Reason) PURE;
  167.     STDMETHOD(put_Reason)(THIS_ long Reason) PURE;
  168.     STDMETHOD(get_ReasonDesc)(THIS_ BSTR FAR* ReasonDesc) PURE;
  169.     STDMETHOD(put_ReasonDesc)(THIS_ BSTR ReasonDesc) PURE;
  170.     STDMETHOD(get_ProviderBuffer)(THIS_ BSTR FAR* Buffer) PURE;
  171. };
  172.  
  173. DEFINE_GUID(CLSID_BPCPurchase,0x329301E1L,0xD0CA,0x11CF,0xA1,0x9E,0x00,0xAA,0x00,0xA2,0x86,0xA1);
  174.  
  175. #ifdef __cplusplus
  176. class BPCPurchase;
  177. #endif
  178.  
  179. DEFINE_GUID(IID_IBPCMessage,0xC043CF80L,0x6D5D,0x11D0,0xAB,0xCA,0x00,0xAA,0x00,0xB5,0x09,0x2C);
  180.  
  181. /* Definition of interface: IBPCMessage */
  182. #undef INTERFACE
  183. #define INTERFACE IBPCMessage
  184.  
  185. DECLARE_INTERFACE_(IBPCMessage, IDispatch)
  186. {
  187. BEGIN_INTERFACE
  188. #ifndef NO_BASEINTERFACE_FUNCS
  189.  
  190.     /* IUnknown methods */
  191.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  192.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  193.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  194.  
  195.     /* IDispatch methods */
  196.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  197.  
  198.     STDMETHOD(GetTypeInfo)(
  199.       THIS_
  200.       UINT itinfo,
  201.       LCID lcid,
  202.       ITypeInfo FAR* FAR* pptinfo) PURE;
  203.  
  204.     STDMETHOD(GetIDsOfNames)(
  205.       THIS_
  206.       REFIID riid,
  207.       OLECHAR FAR* FAR* rgszNames,
  208.       UINT cNames,
  209.       LCID lcid,
  210.       DISPID FAR* rgdispid) PURE;
  211.  
  212.     STDMETHOD(Invoke)(
  213.       THIS_
  214.       DISPID dispidMember,
  215.       REFIID riid,
  216.       LCID lcid,
  217.       WORD wFlags,
  218.       DISPPARAMS FAR* pdispparams,
  219.       VARIANT FAR* pvarResult,
  220.       EXCEPINFO FAR* pexcepinfo,
  221.       UINT FAR* puArgErr) PURE;
  222. #endif
  223.  
  224.     /* IBPCMessage methods */
  225.     STDMETHOD(get_Attributes)(THIS_ long FAR* Attrs) PURE;
  226.     STDMETHOD(get_Msg)(THIS_ BSTR FAR* Text) PURE;
  227. };
  228.  
  229. DEFINE_GUID(CLSID_BPCMessage,0xC043CF81L,0x6D5D,0x11D0,0xAB,0xCA,0x00,0xAA,0x00,0xB5,0x09,0x2C);
  230.  
  231. #ifdef __cplusplus
  232. class BPCMessage;
  233. #endif
  234.  
  235. DEFINE_GUID(IID_IBPCHistoryItemsCollection,0xFF93CA20L,0xD67F,0x11CF,0xA8,0x8F,0x44,0x45,0x53,0x54,0x00,0x00);
  236.  
  237. /* Definition of interface: IBPCHistoryItemsCollection */
  238. #undef INTERFACE
  239. #define INTERFACE IBPCHistoryItemsCollection
  240.  
  241. DECLARE_INTERFACE_(IBPCHistoryItemsCollection, IDispatch)
  242. {
  243. BEGIN_INTERFACE
  244. #ifndef NO_BASEINTERFACE_FUNCS
  245.  
  246.     /* IUnknown methods */
  247.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  248.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  249.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  250.  
  251.     /* IDispatch methods */
  252.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  253.  
  254.     STDMETHOD(GetTypeInfo)(
  255.       THIS_
  256.       UINT itinfo,
  257.       LCID lcid,
  258.       ITypeInfo FAR* FAR* pptinfo) PURE;
  259.  
  260.     STDMETHOD(GetIDsOfNames)(
  261.       THIS_
  262.       REFIID riid,
  263.       OLECHAR FAR* FAR* rgszNames,
  264.       UINT cNames,
  265.       LCID lcid,
  266.       DISPID FAR* rgdispid) PURE;
  267.  
  268.     STDMETHOD(Invoke)(
  269.       THIS_
  270.       DISPID dispidMember,
  271.       REFIID riid,
  272.       LCID lcid,
  273.       WORD wFlags,
  274.       DISPPARAMS FAR* pdispparams,
  275.       VARIANT FAR* pvarResult,
  276.       EXCEPINFO FAR* pexcepinfo,
  277.       UINT FAR* puArgErr) PURE;
  278. #endif
  279.  
  280.     /* IBPCHistoryItemsCollection methods */
  281.     STDMETHOD(get__NewEnum)(THIS_ IUnknown * FAR* pCollection) PURE;
  282.     STDMETHOD(get_Count)(THIS_ long FAR* Count) PURE;
  283.     STDMETHOD(Remove)(THIS_ VARIANT Index) PURE;
  284.     STDMETHOD(Item)(THIS_ VARIANT Index, IBPCPurchase FAR* FAR* pItem) PURE;
  285. };
  286.  
  287. DEFINE_GUID(CLSID_BPCHistoryItemsCollection,0x54F98D96L,0xCA2E,0x11CF,0xB0,0x8E,0x00,0xAA,0x00,0xB8,0xC3,0x2E);
  288.  
  289. #ifdef __cplusplus
  290. class BPCHistoryItemsCollection;
  291. #endif
  292.  
  293. DEFINE_GUID(IID_IBPCEmailMessage,0xD9BEE320L,0xC198,0x11D0,0x8D,0x13,0x00,0xAA,0x00,0xBD,0x83,0x39);
  294.  
  295. /* Definition of interface: IBPCEmailMessage */
  296. #undef INTERFACE
  297. #define INTERFACE IBPCEmailMessage
  298.  
  299. DECLARE_INTERFACE_(IBPCEmailMessage, IDispatch)
  300. {
  301. BEGIN_INTERFACE
  302. #ifndef NO_BASEINTERFACE_FUNCS
  303.  
  304.     /* IUnknown methods */
  305.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  306.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  307.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  308.  
  309.     /* IDispatch methods */
  310.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  311.  
  312.     STDMETHOD(GetTypeInfo)(
  313.       THIS_
  314.       UINT itinfo,
  315.       LCID lcid,
  316.       ITypeInfo FAR* FAR* pptinfo) PURE;
  317.  
  318.     STDMETHOD(GetIDsOfNames)(
  319.       THIS_
  320.       REFIID riid,
  321.       OLECHAR FAR* FAR* rgszNames,
  322.       UINT cNames,
  323.       LCID lcid,
  324.       DISPID FAR* rgdispid) PURE;
  325.  
  326.     STDMETHOD(Invoke)(
  327.       THIS_
  328.       DISPID dispidMember,
  329.       REFIID riid,
  330.       LCID lcid,
  331.       WORD wFlags,
  332.       DISPPARAMS FAR* pdispparams,
  333.       VARIANT FAR* pvarResult,
  334.       EXCEPINFO FAR* pexcepinfo,
  335.       UINT FAR* puArgErr) PURE;
  336. #endif
  337.  
  338.     /* IBPCEmailMessage methods */
  339.     STDMETHOD(get_MsgId)(THIS_ long FAR* MsgId) PURE;
  340.     STDMETHOD(get_UserId)(THIS_ long FAR* UserId) PURE;
  341.     STDMETHOD(get_IsRead)(THIS_ VARIANT_BOOL FAR* HasBeenRead) PURE;
  342.     STDMETHOD(get_Received)(THIS_ DATE FAR* Received) PURE;
  343.     STDMETHOD(get_Expires)(THIS_ DATE FAR* Expires) PURE;
  344.     STDMETHOD(get_Title)(THIS_ BSTR FAR* Text) PURE;
  345.     STDMETHOD(get_Msg)(THIS_ BSTR FAR* Text) PURE;
  346. };
  347.  
  348. DEFINE_GUID(IID_IBPCEmailMessagesCollection,0xF92F8500L,0xD681,0x11CF,0xA8,0x8F,0x44,0x45,0x53,0x54,0x00,0x00);
  349.  
  350. /* Definition of interface: IBPCEmailMessagesCollection */
  351. #undef INTERFACE
  352. #define INTERFACE IBPCEmailMessagesCollection
  353.  
  354. DECLARE_INTERFACE_(IBPCEmailMessagesCollection, IDispatch)
  355. {
  356. BEGIN_INTERFACE
  357. #ifndef NO_BASEINTERFACE_FUNCS
  358.  
  359.     /* IUnknown methods */
  360.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  361.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  362.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  363.  
  364.     /* IDispatch methods */
  365.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  366.  
  367.     STDMETHOD(GetTypeInfo)(
  368.       THIS_
  369.       UINT itinfo,
  370.       LCID lcid,
  371.       ITypeInfo FAR* FAR* pptinfo) PURE;
  372.  
  373.     STDMETHOD(GetIDsOfNames)(
  374.       THIS_
  375.       REFIID riid,
  376.       OLECHAR FAR* FAR* rgszNames,
  377.       UINT cNames,
  378.       LCID lcid,
  379.       DISPID FAR* rgdispid) PURE;
  380.  
  381.     STDMETHOD(Invoke)(
  382.       THIS_
  383.       DISPID dispidMember,
  384.       REFIID riid,
  385.       LCID lcid,
  386.       WORD wFlags,
  387.       DISPPARAMS FAR* pdispparams,
  388.       VARIANT FAR* pvarResult,
  389.       EXCEPINFO FAR* pexcepinfo,
  390.       UINT FAR* puArgErr) PURE;
  391. #endif
  392.  
  393.     /* IBPCEmailMessagesCollection methods */
  394.     STDMETHOD(get__NewEnum)(THIS_ IUnknown * FAR* pCollection) PURE;
  395.     STDMETHOD(get_Count)(THIS_ long FAR* Count) PURE;
  396.     STDMETHOD(Item)(THIS_ VARIANT Index, IBPCEmailMessage FAR* FAR* pItem) PURE;
  397.     STDMETHOD(Remove)(THIS_ VARIANT pMsg) PURE;
  398.     STDMETHOD(MarkAsRead)(THIS_ IBPCEmailMessage FAR* pMsg) PURE;
  399. };
  400.  
  401. DEFINE_GUID(CLSID_BPCEmailMessageItem,0xC26AAD80L,0xDDB3,0x11D0,0x8D,0x13,0x00,0xAA,0x00,0xBD,0x83,0x39);
  402.  
  403. #ifdef __cplusplus
  404. class BPCEmailMessageItem;
  405. #endif
  406.  
  407. DEFINE_GUID(CLSID_BPCEmailMessagesCollection,0x54F98D98L,0xCA2E,0x11CF,0xB0,0x8E,0x00,0xAA,0x00,0xB8,0xC3,0x2E);
  408.  
  409. #ifdef __cplusplus
  410. class BPCEmailMessagesCollection;
  411. #endif
  412.  
  413. interface IBPCDevices;
  414.  
  415. DEFINE_GUID(IID_IBPCDeviceBase,0x49224DE0L,0xB30F,0x11CF,0xA8,0x8F,0x44,0x45,0x53,0x54,0x00,0x00);
  416.  
  417. /* Definition of interface: IBPCDeviceBase */
  418. #undef INTERFACE
  419. #define INTERFACE IBPCDeviceBase
  420.  
  421. DECLARE_INTERFACE_(IBPCDeviceBase, IDispatch)
  422. {
  423. BEGIN_INTERFACE
  424. #ifndef NO_BASEINTERFACE_FUNCS
  425.  
  426.     /* IUnknown methods */
  427.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  428.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  429.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  430.  
  431.     /* IDispatch methods */
  432.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  433.  
  434.     STDMETHOD(GetTypeInfo)(
  435.       THIS_
  436.       UINT itinfo,
  437.       LCID lcid,
  438.       ITypeInfo FAR* FAR* pptinfo) PURE;
  439.  
  440.     STDMETHOD(GetIDsOfNames)(
  441.       THIS_
  442.       REFIID riid,
  443.       OLECHAR FAR* FAR* rgszNames,
  444.       UINT cNames,
  445.       LCID lcid,
  446.       DISPID FAR* rgdispid) PURE;
  447.  
  448.     STDMETHOD(Invoke)(
  449.       THIS_
  450.       DISPID dispidMember,
  451.       REFIID riid,
  452.       LCID lcid,
  453.       WORD wFlags,
  454.       DISPPARAMS FAR* pdispparams,
  455.       VARIANT FAR* pvarResult,
  456.       EXCEPINFO FAR* pexcepinfo,
  457.       UINT FAR* puArgErr) PURE;
  458. #endif
  459.  
  460.     /* IBPCDeviceBase methods */
  461.     STDMETHOD(get_Name)(THIS_ BSTR FAR* Name) PURE;
  462.     STDMETHOD(get_HasFilename)(THIS_ VARIANT_BOOL FAR* HasFilename) PURE;
  463.     STDMETHOD(get_HasCA)(THIS_ VARIANT_BOOL FAR* HasCA) PURE;
  464.     STDMETHOD(get_IsInput)(THIS_ VARIANT_BOOL FAR* IsInput) PURE;
  465.     STDMETHOD(get_IsOutput)(THIS_ VARIANT_BOOL FAR* IsOutput) PURE;
  466.     STDMETHOD(get_HasChannel)(THIS_ VARIANT_BOOL FAR* HasChannel) PURE;
  467.     STDMETHOD(get_Status)(THIS_ long FAR* Status) PURE;
  468.     STDMETHOD(get_ProdName)(THIS_ BSTR FAR* ProdName) PURE;
  469.     STDMETHOD(get_FileName)(THIS_ BSTR FAR* FileName) PURE;
  470.     STDMETHOD(put_FileName)(THIS_ BSTR FileName) PURE;
  471.     STDMETHOD(get_Channel)(THIS_ long FAR* Channel) PURE;
  472.     STDMETHOD(put_Channel)(THIS_ long Channel) PURE;
  473.     STDMETHOD(get_ImageSourceWidth)(THIS_ long FAR* x) PURE;
  474.     STDMETHOD(get_ImageSourceHeight)(THIS_ long FAR* y) PURE;
  475.     STDMETHOD(get_CurrentState)(THIS_ long FAR* CurrentState) PURE;
  476.     STDMETHOD(get_CurrentPosition)(THIS_ double FAR* dPos) PURE;
  477.     STDMETHOD(put_CurrentPosition)(THIS_ double dPos) PURE;
  478.     STDMETHOD(get_Duration)(THIS_ double FAR* dPos) PURE;
  479.     STDMETHOD(get_PrerollTime)(THIS_ double FAR* dPos) PURE;
  480.     STDMETHOD(put_PrerollTime)(THIS_ double dPos) PURE;
  481.     STDMETHOD(get_Rate)(THIS_ double FAR* dPos) PURE;
  482.     STDMETHOD(put_Rate)(THIS_ double dPos) PURE;
  483.     STDMETHOD(get_CountryCode)(THIS_ long FAR* lcc) PURE;
  484.     STDMETHOD(put_CountryCode)(THIS_ long lcc) PURE;
  485.     STDMETHOD(get_VideoFrequency)(THIS_ long FAR* lcc) PURE;
  486.     STDMETHOD(get_AudioFrequency)(THIS_ long FAR* lcc) PURE;
  487.     STDMETHOD(get_DefaultVideoType)(THIS_ long FAR* lcc) PURE;
  488.     STDMETHOD(put_DefaultVideoType)(THIS_ long lcc) PURE;
  489.     STDMETHOD(get_DefaultAudioType)(THIS_ long FAR* lcc) PURE;
  490.     STDMETHOD(put_DefaultAudioType)(THIS_ long lcc) PURE;
  491.     STDMETHOD(get_VideoSubchannel)(THIS_ long FAR* lcc) PURE;
  492.     STDMETHOD(put_VideoSubchannel)(THIS_ long lcc) PURE;
  493.     STDMETHOD(get_AudioSubchannel)(THIS_ long FAR* lcc) PURE;
  494.     STDMETHOD(put_AudioSubchannel)(THIS_ long lcc) PURE;
  495.     STDMETHOD(put_Volume)(THIS_ long lVol) PURE;
  496.     STDMETHOD(get_Volume)(THIS_ long FAR* lVol) PURE;
  497.     STDMETHOD(put_Balance)(THIS_ long lBal) PURE;
  498.     STDMETHOD(get_Balance)(THIS_ long FAR* lBal) PURE;
  499.     STDMETHOD(put_Power)(THIS_ VARIANT_BOOL bPower) PURE;
  500.     STDMETHOD(get_Power)(THIS_ VARIANT_BOOL FAR* bPower) PURE;
  501.     STDMETHOD(put_OverScan)(THIS_ long lPercent) PURE;
  502.     STDMETHOD(get_OverScan)(THIS_ long FAR* plPercent) PURE;
  503.     STDMETHOD(get_ProviderRating)(THIS_ long FAR* pRating) PURE;
  504.     STDMETHOD(get_ProviderStatus)(THIS_ VARIANT_BOOL FAR* pStatus) PURE;
  505.     STDMETHOD(get_ProviderEPGMask)(THIS_ long FAR* pMask) PURE;
  506.     STDMETHOD(get_HistoryItems)(THIS_ IBPCHistoryItemsCollection FAR* FAR* ppHistoryItem) PURE;
  507.     STDMETHOD(get_EmailMessages)(THIS_ IBPCEmailMessagesCollection FAR* FAR* ppEmailMsg) PURE;
  508.     STDMETHOD(get_UserName)(THIS_ BSTR FAR* pUserName) PURE;
  509.     STDMETHOD(put_UserName)(THIS_ BSTR UserName) PURE;
  510.     STDMETHOD(get_UserArea)(THIS_ BSTR FAR* pUserArea) PURE;
  511.     STDMETHOD(put_UserArea)(THIS_ BSTR UserArea) PURE;
  512.     STDMETHOD(get_ItemDetails)(THIS_ long Priority, IBPCPurchase FAR* pInDetails, IBPCPurchase FAR* FAR* ppOutDetails) PURE;
  513.     STDMETHOD(Run)(THIS) PURE;
  514.     STDMETHOD(Pause)(THIS) PURE;
  515.     STDMETHOD(Stop)(THIS) PURE;
  516.     STDMETHOD(Refresh)(THIS) PURE;
  517.     STDMETHOD(ChannelAvailable)(THIS_ long nChannel, long FAR* SignalStrength, VARIANT_BOOL FAR* fSignalPresent) PURE;
  518.     STDMETHOD(ResetProviderSystem)(THIS) PURE;
  519.     STDMETHOD(BuyItem)(THIS_ long Priority, IBPCPurchase FAR* pInDetails, IBPCPurchase FAR* FAR* ppOutDetails) PURE;
  520.     STDMETHOD(CancelItem)(THIS_ IBPCPurchase FAR* pInDetails, IBPCPurchase FAR* FAR* ppOutDetails) PURE;
  521.     STDMETHOD(DisplayConfigDialog)(THIS) PURE;
  522.     STDMETHOD(HandleCardChaining)(THIS_ VARIANT_BOOL fOK) PURE;
  523. };
  524.  
  525. DEFINE_GUID(IID_IBPCDeviceEvent,0xF4B33700L,0xBD9B,0x11CF,0xA8,0x8F,0x44,0x45,0x53,0x54,0x00,0x00);
  526.  
  527. /* Definition of interface: IBPCDeviceEvent */
  528. #undef INTERFACE
  529. #define INTERFACE IBPCDeviceEvent
  530.  
  531. DECLARE_INTERFACE_(IBPCDeviceEvent, IDispatch)
  532. {
  533. BEGIN_INTERFACE
  534. #ifndef NO_BASEINTERFACE_FUNCS
  535.  
  536.     /* IUnknown methods */
  537.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  538.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  539.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  540.  
  541.     /* IDispatch methods */
  542.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  543.  
  544.     STDMETHOD(GetTypeInfo)(
  545.       THIS_
  546.       UINT itinfo,
  547.       LCID lcid,
  548.       ITypeInfo FAR* FAR* pptinfo) PURE;
  549.  
  550.     STDMETHOD(GetIDsOfNames)(
  551.       THIS_
  552.       REFIID riid,
  553.       OLECHAR FAR* FAR* rgszNames,
  554.       UINT cNames,
  555.       LCID lcid,
  556.       DISPID FAR* rgdispid) PURE;
  557.  
  558.     STDMETHOD(Invoke)(
  559.       THIS_
  560.       DISPID dispidMember,
  561.       REFIID riid,
  562.       LCID lcid,
  563.       WORD wFlags,
  564.       DISPPARAMS FAR* pdispparams,
  565.       VARIANT FAR* pvarResult,
  566.       EXCEPINFO FAR* pexcepinfo,
  567.       UINT FAR* puArgErr) PURE;
  568. #endif
  569.  
  570.     /* IBPCDeviceEvent methods */
  571.     STDMETHOD(GotControl)(THIS) PURE;
  572.     STDMETHOD(LostControl)(THIS) PURE;
  573.     STDMETHOD(StateChange)(THIS_ IBPCDeviceBase FAR* lpd, long oldState, long newState) PURE;
  574.     STDMETHOD(ErrorMessage)(THIS_ long iMessage, BSTR Text) PURE;
  575.     STDMETHOD(CardMissing)(THIS_ IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority, IBPCMessage FAR* Message) PURE;
  576.     STDMETHOD(CardInvalid)(THIS_ IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority, IBPCMessage FAR* Message) PURE;
  577.     STDMETHOD(WrongCard)(THIS_ IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority, IBPCMessage FAR* Message) PURE;
  578.     STDMETHOD(BlackedOut)(THIS_ IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority, IBPCMessage FAR* Message) PURE;
  579.     STDMETHOD(RatingExceeded)(THIS_ IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority, IBPCMessage FAR* Message) PURE;
  580.     STDMETHOD(CostExceeded)(THIS_ IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority, IBPCMessage FAR* Message) PURE;
  581.     STDMETHOD(OSDRequest)(THIS_ IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority, IBPCMessage FAR* Message) PURE;
  582.     STDMETHOD(NoSubscriber)(THIS_ IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority, IBPCMessage FAR* Message) PURE;
  583.     STDMETHOD(CAFail)(THIS_ IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority, IBPCMessage FAR* Message) PURE;
  584.     STDMETHOD(CannotPurchase)(THIS_ IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority, IBPCMessage FAR* Message) PURE;
  585.     STDMETHOD(CASuccess)(THIS_ IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority, IBPCMessage FAR* Message) PURE;
  586.     STDMETHOD(Retry)(THIS_ IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority, IBPCMessage FAR* Message) PURE;
  587.     STDMETHOD(SignalLost)(THIS_ IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority) PURE;
  588.     STDMETHOD(NewEmail)(THIS_ IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority) PURE;
  589.     STDMETHOD(ColdStart)(THIS_ IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority) PURE;
  590.     STDMETHOD(Ready)(THIS_ IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority) PURE;
  591.     STDMETHOD(NotReady)(THIS_ IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority) PURE;
  592.     STDMETHOD(CAFault)(THIS_ IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority) PURE;
  593.     STDMETHOD(PasswordCleared)(THIS_ IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority) PURE;
  594.     STDMETHOD(TuningChanged)(THIS_ IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority) PURE;
  595.     STDMETHOD(HandlePurchaseOffer)(THIS_ IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority, IBPCPurchase FAR* pDetails) PURE;
  596.     STDMETHOD(RevokeEvent)(THIS_ IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority) PURE;
  597.     STDMETHOD(CopyCard)(THIS_ IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority) PURE;
  598.     STDMETHOD(EPGFilterChanged)(THIS_ IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority) PURE;
  599.     STDMETHOD(TapingControlChanged)(THIS_ IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority) PURE;
  600. };
  601.  
  602. DEFINE_GUID(IID_IBPCDevices,0xE323F120L,0xB484,0x11CF,0xA8,0x8F,0x44,0x45,0x53,0x54,0x00,0x00);
  603.  
  604. /* Definition of interface: IBPCDevices */
  605. #undef INTERFACE
  606. #define INTERFACE IBPCDevices
  607.  
  608. DECLARE_INTERFACE_(IBPCDevices, IDispatch)
  609. {
  610. BEGIN_INTERFACE
  611. #ifndef NO_BASEINTERFACE_FUNCS
  612.  
  613.     /* IUnknown methods */
  614.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  615.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  616.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  617.  
  618.     /* IDispatch methods */
  619.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  620.  
  621.     STDMETHOD(GetTypeInfo)(
  622.       THIS_
  623.       UINT itinfo,
  624.       LCID lcid,
  625.       ITypeInfo FAR* FAR* pptinfo) PURE;
  626.  
  627.     STDMETHOD(GetIDsOfNames)(
  628.       THIS_
  629.       REFIID riid,
  630.       OLECHAR FAR* FAR* rgszNames,
  631.       UINT cNames,
  632.       LCID lcid,
  633.       DISPID FAR* rgdispid) PURE;
  634.  
  635.     STDMETHOD(Invoke)(
  636.       THIS_
  637.       DISPID dispidMember,
  638.       REFIID riid,
  639.       LCID lcid,
  640.       WORD wFlags,
  641.       DISPPARAMS FAR* pdispparams,
  642.       VARIANT FAR* pvarResult,
  643.       EXCEPINFO FAR* pexcepinfo,
  644.       UINT FAR* puArgErr) PURE;
  645. #endif
  646.  
  647.     /* IBPCDevices methods */
  648.     STDMETHOD(get_Count)(THIS_ long FAR* lCount) PURE;
  649.     STDMETHOD(get__NewEnum)(THIS_ IUnknown * FAR* pD) PURE;
  650.     STDMETHOD(put_HWnd)(THIS_ long hwnd) PURE;
  651.     STDMETHOD(put_LCID)(THIS_ long lcid) PURE;
  652.     STDMETHOD(put_Notify)(THIS_ IBPCDeviceEvent FAR* pDeviceEvents) PURE;
  653.     STDMETHOD(get_ColorKey)(THIS_ long FAR* lcc) PURE;
  654.     STDMETHOD(put_ColorKey)(THIS_ long lcc) PURE;
  655.     STDMETHOD(get_Priority)(THIS_ long FAR* lcc) PURE;
  656.     STDMETHOD(put_Priority)(THIS_ long lcc) PURE;
  657.     STDMETHOD(get_Input)(THIS_ IBPCDeviceBase FAR* FAR* ppInput) PURE;
  658.     STDMETHOD(put_Input)(THIS_ IBPCDeviceBase FAR* pInput) PURE;
  659.     STDMETHOD(get_Output)(THIS_ IBPCDeviceBase FAR* FAR* ppOutput) PURE;
  660.     STDMETHOD(put_Output)(THIS_ IBPCDeviceBase FAR* pOutput) PURE;
  661.     STDMETHOD(get_VideoOn)(THIS_ VARIANT_BOOL FAR* VideoOn) PURE;
  662.     STDMETHOD(put_VideoOn)(THIS_ VARIANT_BOOL VideoOn) PURE;
  663.     STDMETHOD(Item)(THIS_ VARIANT v, IBPCDeviceBase FAR* FAR* pDB) PURE;
  664.     STDMETHOD(Tune)(THIS_ long lTuningSpace, long Channel, long VideoSubchannel, long AudioSubchannel) PURE;
  665.     STDMETHOD(Login)(THIS_ BSTR UserName, BSTR Password) PURE;
  666.     STDMETHOD(Logout)(THIS) PURE;
  667.     STDMETHOD(Open)(THIS_ BSTR FileName) PURE;
  668.     STDMETHOD(TSDeviceCount)(THIS_ long lTuningSpace, long FAR* count) PURE;
  669.     STDMETHOD(AutoScan)(THIS_ long FAR* SignalStrength) PURE;
  670. };
  671.  
  672. DEFINE_GUID(IID_IBPCVid,0x8AFAFD81L,0x31C3,0x11CF,0xA1,0xE9,0x00,0xAA,0x00,0x62,0xC7,0x97);
  673.  
  674. /* Definition of interface: IBPCVid */
  675. #undef INTERFACE
  676. #define INTERFACE IBPCVid
  677.  
  678. DECLARE_INTERFACE_(IBPCVid, IDispatch)
  679. {
  680. BEGIN_INTERFACE
  681. #ifndef NO_BASEINTERFACE_FUNCS
  682.  
  683.     /* IUnknown methods */
  684.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  685.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  686.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  687.  
  688.     /* IDispatch methods */
  689.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  690.  
  691.     STDMETHOD(GetTypeInfo)(
  692.       THIS_
  693.       UINT itinfo,
  694.       LCID lcid,
  695.       ITypeInfo FAR* FAR* pptinfo) PURE;
  696.  
  697.     STDMETHOD(GetIDsOfNames)(
  698.       THIS_
  699.       REFIID riid,
  700.       OLECHAR FAR* FAR* rgszNames,
  701.       UINT cNames,
  702.       LCID lcid,
  703.       DISPID FAR* rgdispid) PURE;
  704.  
  705.     STDMETHOD(Invoke)(
  706.       THIS_
  707.       DISPID dispidMember,
  708.       REFIID riid,
  709.       LCID lcid,
  710.       WORD wFlags,
  711.       DISPPARAMS FAR* pdispparams,
  712.       VARIANT FAR* pvarResult,
  713.       EXCEPINFO FAR* pexcepinfo,
  714.       UINT FAR* puArgErr) PURE;
  715. #endif
  716.  
  717.     /* IBPCVid methods */
  718.     STDMETHOD(get_Power)(THIS_ VARIANT_BOOL FAR* Power) PURE;
  719.     STDMETHOD(put_Power)(THIS_ VARIANT_BOOL Power) PURE;
  720.     STDMETHOD(get_StartTime)(THIS_ double FAR* StartTime) PURE;
  721.     STDMETHOD(put_StartTime)(THIS_ double StartTime) PURE;
  722.     STDMETHOD(get_StopTime)(THIS_ double FAR* StopTime) PURE;
  723.     STDMETHOD(put_StopTime)(THIS_ double StopTime) PURE;
  724.     STDMETHOD(get_VideoOn)(THIS_ VARIANT_BOOL FAR* VideoOn) PURE;
  725.     STDMETHOD(put_VideoOn)(THIS_ VARIANT_BOOL VideoOn) PURE;
  726.     STDMETHOD(get_ClosedCaption)(THIS_ VARIANT_BOOL FAR* ClosedCaption) PURE;
  727.     STDMETHOD(put_ClosedCaption)(THIS_ VARIANT_BOOL ClosedCaption) PURE;
  728.     STDMETHOD(get_Debug)(THIS_ VARIANT_BOOL FAR* Debug) PURE;
  729.     STDMETHOD(put_Debug)(THIS_ VARIANT_BOOL Debug) PURE;
  730.     STDMETHOD(get_DeviceCount)(THIS_ long FAR* DeviceCount) PURE;
  731.     STDMETHOD(get_Input)(THIS_ IBPCDeviceBase FAR* FAR* Input) PURE;
  732.     STDMETHOD(put_Input)(THIS_ IBPCDeviceBase FAR* Input) PURE;
  733.     STDMETHOD(get_Output)(THIS_ IBPCDeviceBase FAR* FAR* Output) PURE;
  734.     STDMETHOD(put_Output)(THIS_ IBPCDeviceBase FAR* Output) PURE;
  735.     STDMETHOD(get_ColorKey)(THIS_ long FAR* ColorKey) PURE;
  736.     STDMETHOD(put_ColorKey)(THIS_ long ColorKey) PURE;
  737.     STDMETHOD(get_FileName)(THIS_ BSTR FAR* FileName) PURE;
  738.     STDMETHOD(put_FileName)(THIS_ BSTR FileName) PURE;
  739.     STDMETHOD(get_Priority)(THIS_ long FAR* Priority) PURE;
  740.     STDMETHOD(put_Priority)(THIS_ long Priority) PURE;
  741.     STDMETHOD(get_Volume)(THIS_ long FAR* Volume) PURE;
  742.     STDMETHOD(put_Volume)(THIS_ long Volume) PURE;
  743.     STDMETHOD(get_Balance)(THIS_ long FAR* Balance) PURE;
  744.     STDMETHOD(put_Balance)(THIS_ long Balance) PURE;
  745.     STDMETHOD(get_ImageSourceHeight)(THIS_ long FAR* ImageSourceHeight) PURE;
  746.     STDMETHOD(get_ImageSourceWidth)(THIS_ long FAR* ImageSourceWidth) PURE;
  747.     STDMETHOD(get_MovieWindowSetting)(THIS_ short FAR* MovieWindowSetting) PURE;
  748.     STDMETHOD(put_MovieWindowSetting)(THIS_ short MovieWindowSetting) PURE;
  749.     STDMETHOD(get_CurrentState)(THIS_ long FAR* CurrentState) PURE;
  750.     STDMETHOD(get_CurrentPosition)(THIS_ double FAR* CurrentPosition) PURE;
  751.     STDMETHOD(put_CurrentPosition)(THIS_ double CurrentPosition) PURE;
  752.     STDMETHOD(get_Duration)(THIS_ double FAR* Duration) PURE;
  753.     STDMETHOD(get_PrerollTime)(THIS_ double FAR* PrerollTime) PURE;
  754.     STDMETHOD(put_PrerollTime)(THIS_ double PrerollTime) PURE;
  755.     STDMETHOD(get_Rate)(THIS_ double FAR* Rate) PURE;
  756.     STDMETHOD(put_Rate)(THIS_ double Rate) PURE;
  757.     STDMETHOD(get_LocaleID)(THIS_ long FAR* LocaleID) PURE;
  758.     STDMETHOD(put_LocaleID)(THIS_ long LocaleID) PURE;
  759.     STDMETHOD(get_Font)(THIS_ IFontDisp FAR* FAR* Font) PURE;
  760.     STDMETHOD(put_Font)(THIS_ IFontDisp FAR* Font) PURE;
  761.     STDMETHOD(get_DisplayMode)(THIS_ short FAR* DisplayMode) PURE;
  762.     STDMETHOD(put_DisplayMode)(THIS_ short DisplayMode) PURE;
  763.     STDMETHOD(get_HWnd)(THIS_ OLE_HANDLE FAR* HWnd) PURE;
  764.     STDMETHOD(get_Devices)(THIS_ IBPCDevices FAR* FAR* DeviceEnumerator) PURE;
  765.     STDMETHOD(Run)(THIS) PURE;
  766.     STDMETHOD(Pause)(THIS) PURE;
  767.     STDMETHOD(Stop)(THIS) PURE;
  768.     STDMETHOD(Close)(THIS) PURE;
  769.     STDMETHOD(Open)(THIS_ BSTR FileName) PURE;
  770.     STDMETHOD(Login)(THIS_ BSTR UserName, BSTR Password) PURE;
  771.     STDMETHOD(Logout)(THIS) PURE;
  772.     STDMETHOD(Tune)(THIS_ long lTuningSpace, long Channel, long VideoSubchannel, long AudioSubchannel) PURE;
  773.     STDMETHOD(TSDeviceCount)(THIS_ long lTuningSpace, long FAR* count) PURE;
  774.     STDMETHOD(Refresh)(THIS) PURE;
  775.     STDMETHOD(AutoScan)(THIS_ long FAR* SignalStrength) PURE;
  776.     STDMETHOD(AboutBox)(THIS) PURE;
  777. };
  778.  
  779. DEFINE_GUID(DIID_DBPCVidEvents,0x8AFAFD82L,0x31C3,0x11CF,0xA1,0xE9,0x00,0xAA,0x00,0x62,0xC7,0x97);
  780.  
  781. /* Definition of dispatch interface: DBPCVidEvents */
  782. #undef INTERFACE
  783. #define INTERFACE DBPCVidEvents
  784.  
  785. DECLARE_INTERFACE_(DBPCVidEvents, IDispatch)
  786. {
  787. BEGIN_INTERFACE
  788. #ifndef NO_BASEINTERFACE_FUNCS
  789.  
  790.     /* IUnknown methods */
  791.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  792.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  793.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  794.  
  795.     /* IDispatch methods */
  796.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  797.  
  798.     STDMETHOD(GetTypeInfo)(
  799.       THIS_
  800.       UINT itinfo,
  801.       LCID lcid,
  802.       ITypeInfo FAR* FAR* pptinfo) PURE;
  803.  
  804.     STDMETHOD(GetIDsOfNames)(
  805.       THIS_
  806.       REFIID riid,
  807.       OLECHAR FAR* FAR* rgszNames,
  808.       UINT cNames,
  809.       LCID lcid,
  810.       DISPID FAR* rgdispid) PURE;
  811.  
  812.     STDMETHOD(Invoke)(
  813.       THIS_
  814.       DISPID dispidMember,
  815.       REFIID riid,
  816.       LCID lcid,
  817.       WORD wFlags,
  818.       DISPPARAMS FAR* pdispparams,
  819.       VARIANT FAR* pvarResult,
  820.       EXCEPINFO FAR* pexcepinfo,
  821.       UINT FAR* puArgErr) PURE;
  822. #endif
  823.  
  824.     /* DBPCVidEvents methods:
  825.     void GotControl(void);
  826.     void LostControl(void);
  827.     void StateChange(IBPCDeviceBase FAR* lpdDevice, long oldState, long newState);
  828.     void ErrorMessage(long iMessage, BSTR Text);
  829.     void Click(void);
  830.     void DblClick(void);
  831.     void KeyDown(short FAR* KeyCode, short Shift);
  832.     void KeyPress(short FAR* KeyAscii);
  833.     void KeyUp(short FAR* KeyCode, short Shift);
  834.     void MouseDown(short Button, short Shift, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y);
  835.     void MouseMove(short Button, short Shift, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y);
  836.     void MouseUp(short Button, short Shift, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y);
  837.     void Error(short Number, BSTR FAR* Description, long Scode, BSTR Source, BSTR HelpFile, long HelpContext, VARIANT_BOOL FAR* CancelDisplay);
  838.     void CardMissing(IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority, IBPCMessage FAR* Message, long FAR* HresultRC);
  839.     void CardInvalid(IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority, IBPCMessage FAR* Message, long FAR* HresultRC);
  840.     void WrongCard(IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority, IBPCMessage FAR* Message, long FAR* HresultRC);
  841.     void BlackedOut(IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority, IBPCMessage FAR* Message, long FAR* HresultRC);
  842.     void RatingExceeded(IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority, IBPCMessage FAR* Message, long FAR* HresultRC);
  843.     void CostExceeded(IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority, IBPCMessage FAR* Message, long FAR* HresultRC);
  844.     void OSDRequest(IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority, IBPCMessage FAR* Message, long FAR* HresultRC);
  845.     void NoSubscriber(IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority, IBPCMessage FAR* Message, long FAR* HresultRC);
  846.     void CAFail(IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority, IBPCMessage FAR* Message, long FAR* HresultRC);
  847.     void CannotPurchase(IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority, IBPCMessage FAR* Message, long FAR* HresultRC);
  848.     void CASuccess(IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority, IBPCMessage FAR* Message, long FAR* HresultRC);
  849.     void Retry(IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority, IBPCMessage FAR* Message, long FAR* HresultRC);
  850.     void SignalLost(IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority);
  851.     void NewEmail(IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority);
  852.     void ColdStart(IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority);
  853.     void Ready(IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority);
  854.     void NotReady(IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority);
  855.     void CAFault(IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority);
  856.     void PasswordCleared(IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority);
  857.     void TuningChanged(IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority);
  858.     void HandlePurchaseOffer(IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority, IBPCPurchase FAR* pDetails, long FAR* HresultRC);
  859.     void RevokeEvent(IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority);
  860.     void CopyCard(IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority, long FAR* HresultRC);
  861.     void EPGFilterChanged(IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority);
  862.     void TapingControlChanged(IBPCDeviceBase FAR* lpdDevice, long SubEvent, long EventNumber, long ItemNumber, long Priority);
  863.     */
  864. };
  865.  
  866. DEFINE_GUID(CLSID_BPCVid,0x31263EC0L,0x2957,0x11CF,0xA1,0xE5,0x00,0xAA,0x9E,0xC7,0x97,0x00);
  867.  
  868. #ifdef __cplusplus
  869. class BPCVid;
  870. #endif
  871.  
  872. DEFINE_GUID(CLSID_BPCDeviceBase,0x833DE722L,0x31D5,0x11CF,0xA1,0xE9,0x00,0xAA,0x00,0x62,0xC7,0x97);
  873.  
  874. #ifdef __cplusplus
  875. class BPCDeviceBase;
  876. #endif
  877.  
  878. DEFINE_GUID(CLSID_BPCDevices,0xE323F121L,0xB484,0x11CF,0xA8,0x8F,0x44,0x45,0x53,0x54,0x00,0x00);
  879.  
  880. #ifdef __cplusplus
  881. class BPCDevices;
  882. #endif
  883.  
  884. DEFINE_GUID(IID_IBPCSuspend,0x887072E6L,0x45D6,0x11D1,0xB6,0xB0,0x00,0xC0,0x4F,0xBB,0xDE,0x6E);
  885.  
  886. /* Definition of interface: IBPCSuspend */
  887. #undef INTERFACE
  888. #define INTERFACE IBPCSuspend
  889.  
  890. DECLARE_INTERFACE_(IBPCSuspend, IDispatch)
  891. {
  892. BEGIN_INTERFACE
  893. #ifndef NO_BASEINTERFACE_FUNCS
  894.  
  895.     /* IUnknown methods */
  896.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  897.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  898.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  899.  
  900.     /* IDispatch methods */
  901.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  902.  
  903.     STDMETHOD(GetTypeInfo)(
  904.       THIS_
  905.       UINT itinfo,
  906.       LCID lcid,
  907.       ITypeInfo FAR* FAR* pptinfo) PURE;
  908.  
  909.     STDMETHOD(GetIDsOfNames)(
  910.       THIS_
  911.       REFIID riid,
  912.       OLECHAR FAR* FAR* rgszNames,
  913.       UINT cNames,
  914.       LCID lcid,
  915.       DISPID FAR* rgdispid) PURE;
  916.  
  917.     STDMETHOD(Invoke)(
  918.       THIS_
  919.       DISPID dispidMember,
  920.       REFIID riid,
  921.       LCID lcid,
  922.       WORD wFlags,
  923.       DISPPARAMS FAR* pdispparams,
  924.       VARIANT FAR* pvarResult,
  925.       EXCEPINFO FAR* pexcepinfo,
  926.       UINT FAR* puArgErr) PURE;
  927. #endif
  928.  
  929.     /* IBPCSuspend methods */
  930.     STDMETHOD(DeviceRelease)(THIS_ long priority, IDispatch * FAR* ppS) PURE;
  931. };
  932.  
  933. DEFINE_GUID(CLSID_BPCSuspend,0x887072E7L,0x45D6,0x11D1,0xB6,0xB0,0x00,0xC0,0x4F,0xBB,0xDE,0x6E);
  934.  
  935. #ifdef __cplusplus
  936. class BPCSuspend;
  937. #endif
  938.  
  939. DEFINE_GUID(CLSID_BPCSuspended,0x887072E8L,0x45D6,0x11D1,0xB6,0xB0,0x00,0xC0,0x4F,0xBB,0xDE,0x6E);
  940.  
  941. #ifdef __cplusplus
  942. class BPCSuspended;
  943. #endif
  944.  
  945. #endif
  946.