//NOTE: IBPCDeviceEvent methods should match the non-stock events
// in DBPCVidEvents
// NOTE: this interface must match the midl version above the
// library statement or the marshalling won't work right.
[uuid(F4B33700-BD9B-11cf-A88F-444553540000),
hidden, oleautomation, dual,
helpstring("Private Interface for Device Events between vidsvr and ocx")
]
interface IBPCDeviceEvent : IDispatch
{
[id(eventidGotControl)] HRESULT GotControl();
[id(eventidLostControl)] HRESULT LostControl();
[id(eventidStateChange)] HRESULT StateChange([in] IBPCDeviceBase *lpd, [in] long oldState, [in] long newState);
[id(eventidErrorMessage)] HRESULT ErrorMessage([in] long iMessage, [in] BSTR Text);
// MESSAGE EVENTS
[id(CAEVENTID_CardMissing)] HRESULT CardMissing([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority, [in] IBPCMessage *Message);
[id(CAEVENTID_CardInvalid)] HRESULT CardInvalid([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority, [in] IBPCMessage *Message);
[id(CAEVENTID_WrongCard)] HRESULT WrongCard([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority, [in] IBPCMessage *Message);
[id(CAEVENTID_BlackedOut)] HRESULT BlackedOut([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority, [in] IBPCMessage *Message);
[id(CAEVENTID_RatingExceeded)] HRESULT RatingExceeded([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority, [in] IBPCMessage *Message);
[id(CAEVENTID_CostExceeded)] HRESULT CostExceeded([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority, [in] IBPCMessage *Message);
[id(CAEVENTID_OSDRequest)] HRESULT OSDRequest([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority, [in] IBPCMessage *Message);
[id(CAEVENTID_NoSubscriber)] HRESULT NoSubscriber([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority, [in] IBPCMessage *Message);
[id(CAEVENTID_CAFail)] HRESULT CAFail([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority, [in] IBPCMessage *Message);
[id(CAEVENTID_CannotPurchase)] HRESULT CannotPurchase([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority, [in] IBPCMessage *Message);
[id(CAEVENTID_CASuccess)] HRESULT CASuccess([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority, [in] IBPCMessage *Message);
[id(CAEVENTID_Retry)] HRESULT Retry([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority, [in] IBPCMessage *Message);
// NOTIFICATION EVENTS
[id(CAEVENTID_SignalLost)] HRESULT SignalLost([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority);
[id(CAEVENTID_NewEmail)] HRESULT NewEmail([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority);
[id(CAEVENTID_ColdStart)] HRESULT ColdStart([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority);
[id(CAEVENTID_Ready)] HRESULT Ready([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority);
[id(CAEVENTID_NotReady)] HRESULT NotReady([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority);
[id(CAEVENTID_CAFault)] HRESULT CAFault([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority);
[id(CAEVENTID_PasswordCleared)] HRESULT PasswordCleared([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority);
[id(CAEVENTID_TuningChanged)] HRESULT TuningChanged([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority);
// SPECIAL EVENT
[id(CAEVENTID_HandlePurchaseOffer)] HRESULT HandlePurchaseOffer([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority, [in] IBPCPurchase *pDetails);
[id(CAEVENTID_RevokeEvent)] HRESULT RevokeEvent([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority);
[id(CAEVENTID_CopyCard)] HRESULT CopyCard([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority);
[id(CAEVENTID_EPGFilterChanged)] HRESULT EPGFilterChanged([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority);
[id(CAEVENTID_TapingControlChanged)] HRESULT TapingControlChanged([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority);
};
[uuid(E323F120-B484-11cf-A88F-444553540000),
dual, oleautomation, hidden,
helpstring("Dispatch Dual Interface for Devices Collection"),
]
interface IBPCDevices : IDispatch
{
// properties
[propget, id(dispidCount)] HRESULT Count([out, retval] long *lCount);
[id(DISPID_KEYUP)] void KeyUp(short* KeyCode, short Shift);
[id(DISPID_MOUSEDOWN)] void MouseDown(short Button, short Shift, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y);
[id(DISPID_MOUSEMOVE)] void MouseMove(short Button, short Shift, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y);
[id(DISPID_MOUSEUP)] void MouseUp(short Button, short Shift, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y);
[id(DISPID_ERROREVENT)] void Error(short Number, BSTR* Description, long Scode, BSTR Source, BSTR HelpFile, long HelpContext, boolean* CancelDisplay);
// MESSAGE EVENTS
[id(CAEVENTID_CardMissing)] void CardMissing([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority, [in] IBPCMessage *Message, [out] long *HresultRC);
[id(CAEVENTID_CardInvalid)] void CardInvalid([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority, [in] IBPCMessage *Message, [out] long *HresultRC);
[id(CAEVENTID_WrongCard)] void WrongCard([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority, [in] IBPCMessage *Message, [out] long *HresultRC);
[id(CAEVENTID_BlackedOut)] void BlackedOut([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority, [in] IBPCMessage *Message, [out] long *HresultRC);
[id(CAEVENTID_RatingExceeded)] void RatingExceeded([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority, [in] IBPCMessage *Message, [out] long *HresultRC);
[id(CAEVENTID_CostExceeded)] void CostExceeded([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority, [in] IBPCMessage *Message, [out] long *HresultRC);
[id(CAEVENTID_OSDRequest)] void OSDRequest([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority, [in] IBPCMessage *Message, [out] long *HresultRC);
[id(CAEVENTID_NoSubscriber)] void NoSubscriber([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority, [in] IBPCMessage *Message, [out] long *HresultRC);
[id(CAEVENTID_CAFail)] void CAFail([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority, [in] IBPCMessage *Message, [out] long *HresultRC);
[id(CAEVENTID_CannotPurchase)] void CannotPurchase([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority, [in] IBPCMessage *Message, [out] long *HresultRC);
[id(CAEVENTID_CASuccess)] void CASuccess([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority, [in] IBPCMessage *Message, [out] long *HresultRC);
[id(CAEVENTID_Retry)] void Retry([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority, [in] IBPCMessage *Message, [out] long *HresultRC);
// NOTIFICATION EVENTS
[id(CAEVENTID_SignalLost)] void SignalLost([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority);
[id(CAEVENTID_NewEmail)] void NewEmail([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority);
[id(CAEVENTID_ColdStart)] void ColdStart([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority);
[id(CAEVENTID_Ready)] void Ready([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority);
[id(CAEVENTID_NotReady)] void NotReady([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority);
[id(CAEVENTID_CAFault)] void CAFault([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority);
[id(CAEVENTID_PasswordCleared)] void PasswordCleared([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority);
[id(CAEVENTID_TuningChanged)] void TuningChanged([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority);
// SPECIAL EVENT
[id(CAEVENTID_HandlePurchaseOffer)] void HandlePurchaseOffer([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority, [in] IBPCPurchase *pDetails, [out] long *HresultRC);
[id(CAEVENTID_RevokeEvent)] void RevokeEvent([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority);
[id(CAEVENTID_CopyCard)] void CopyCard([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority, [out] long *HresultRC);
[id(CAEVENTID_EPGFilterChanged)] void EPGFilterChanged([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority);
[id(CAEVENTID_TapingControlChanged)] void TapingControlChanged([in] IBPCDeviceBase *lpdDevice, [in] long SubEvent, [in] long EventNumber, [in] long ItemNumber, [in] long Priority);
};
// Class information for CVidCtrl
[ uuid(31263EC0-2957-11CF-A1E5-00AA9EC79700),
helpstring("MS BPC Video Control"), control ]
coclass BPCVid
{
[default] interface IBPCVid;
[default, source] dispinterface DBPCVidEvents;
};
// Class information for CDeviceBase
[ uuid(833DE722-31D5-11CF-A1E9-00AA0062C797),
helpstring("MS BPC Video Server Device Class") ]
coclass BPCDeviceBase
{
[default] interface IBPCDeviceBase;
};
[ uuid(E323F121-B484-11cf-A88F-444553540000),
helpstring("MS BPC Video Server Device Collection Class") ]
coclass BPCDevices
{
[default] interface IBPCDevices;
[source] interface IBPCDeviceEvent;
};
#if 0
[ uuid(EE50972F-1E8C-11d1-B6AD-00C04FBBDE6E),
oleautomation, dual
]
interface IBPCVidsvrControl : IDispatch
{
// NOTE: all operations on this interface must be atomic since we have no event
// mechanism in this interface for returning gotcontrol/lostcontrol
// methods
[id(VCTL_VBITune)] HRESULT VBITune([in] long lTuningSpace, [in] long channel, [in] long priority);
[id(VCTL_VBIStatus)] HRESULT VBIStatus([in] long lTuningSpace, [in] long channel, [in] long priority, [out] long *SignalStrength, [retval, out] boolean *fSignalPresent);
};
[ uuid(EE50972E-1E8C-11d1-B6AD-00C04FBBDE6E),
helpstring("MS BPC Video Server Control Class") ]
coclass BPCVidsvrControl
{
[default] interface IBPCVidsvrControl;
};
#endif
[ uuid(887072E6-45D6-11d1-B6B0-00C04FBBDE6E),
oleautomation, dual
]
interface IBPCSuspend : IDispatch {
// priority reserved, set to 0
[id(SUSPEND_DeviceRelease)] HRESULT DeviceRelease([in] long priority, [out] IDispatch **ppS);
};
[ uuid(887072E7-45D6-11d1-B6B0-00C04FBBDE6E),
helpstring("MS BPC Video Server Suspendor Class") ]
coclass BPCSuspend
{
[default] interface IBPCSuspend;
};
[ uuid(887072E8-45D6-11d1-B6B0-00C04FBBDE6E),
helpstring("MS BPC Video Server Suspended Class") ]