⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 segment.idl

📁 vc6.0完整版
💻 IDL
📖 第 1 页 / 共 5 页
字号:

        ///////////////////////////////////////////////////////////////////////////////////////
        [object,
                uuid(DD47DE3F-9874-4f7b-8B22-7CB2688461E7),
                helpstring("DShow Video Renderer Graph Segment Builder Interface"),
                pointer_default(unique)
        ]
        interface IMSVidVRGraphSegment : IMSVidGraphSegment {
			// NOTE: because of the way ActiveX controls work there is a tight coupling
			// between the video control itself and the video renderer device segment
			// as a consequence there are important interfaces such as positioning that
			// come through the control via the various ole interfaces which we need to
			// pass to the video renderer but we don't want script to access directly
			// there are also stock properties such as refresh and autosize that must also be
			// implemented directly on the video control and passed through to the video renderer

			// from ole interfaces
            [hidden, restricted, propput] HRESULT _VMRendererMode([in] LONG dwMode);
            [hidden, restricted, propput] HRESULT Owner([in] HWND Window);
            [hidden, restricted, propget] HRESULT Owner([out, retval] HWND* Window);
			// from ole interfaces
            [hidden, restricted, propget] HRESULT UseOverlay([out, retval] VARIANT_BOOL *UseOverlayVal);
            [hidden, restricted, propput] HRESULT UseOverlay([in] VARIANT_BOOL UseOverlayVal);
			// from top-level control visibility state
            [hidden, restricted, propget] HRESULT Visible([out, retval] VARIANT_BOOL* Visible);
            [hidden, restricted, propput] HRESULT Visible([in] VARIANT_BOOL Visible);

	    // clients must go through top-level vidctl interfaces to access this.  since vidctl's ondraw
	    // actually paints this, it needs to know about it.
            [propget, hidden, restricted] HRESULT ColorKey([out, retval] OLE_COLOR* ColorKey);
            [propput, hidden, restricted] HRESULT ColorKey([in] OLE_COLOR ColorKey);
			// from ole interfaces and window msgs
            [propget, hidden, restricted] HRESULT Source([out, retval] LPRECT r);
            [propput, hidden, restricted] HRESULT Source([in] RECT r);
			// from ole interfaces and window msgs
            [propget, hidden, restricted] HRESULT Destination([out, retval] LPRECT r);
            [propput, hidden, restricted] HRESULT Destination([in] RECT r);
            [propget, hidden, restricted] HRESULT NativeSize([out] LPSIZE sizeval, [out] LPSIZE aspectratio);
			// letterboxing color if we're using 
            [propget, hidden, restricted] HRESULT BorderColor([out, retval] OLE_COLOR* color);
            [propput, hidden, restricted] HRESULT BorderColor([in] OLE_COLOR color);
			// letterbox or stretch
            [propget, hidden, restricted] HRESULT MaintainAspectRatio([out, retval] VARIANT_BOOL *fMaintain);
            [propput, hidden, restricted] HRESULT MaintainAspectRatio([in] VARIANT_BOOL fMaintain);

			// from top-level control refresh method
            [hidden, restricted] HRESULT Refresh();
            [hidden, restricted] HRESULT DisplayChange();
            [hidden, restricted] HRESULT RePaint([in] HDC hdc);

        };


//*****************************************************************************
///////////////////////////////////////////////////////////////////////////////
//
//  Automation compliant device object interfaces for bpc video control
//
///////////////////////////////////////////////////////////////////////////////
//*****************************************************************************


///////////////////////////////////////////////////////////////////////////////
//
//  input devices
//
///////////////////////////////////////////////////////////////////////////////

        ///////////////////////////////////////////////////////////////////////////////////////
        [object, dual, oleautomation,
                uuid(1C15D47C-911D-11d2-B632-00C04F79498E),
                helpstring("MS Video Control Device Interface"),
                pointer_default(unique)
        ]
        interface IMSVidDevice : IDispatch {
                // base device properties
                [propget, id(dispidName)] HRESULT Name([out, retval] BSTR *Name);
                [propget, id(dispidStatus)] HRESULT Status([out, retval] long *Status);
                [propput, id(dispidDevPower)] HRESULT Power([in] VARIANT_BOOL Power);
                [propget, id(dispidDevPower)] HRESULT Power([retval, out] VARIANT_BOOL *Power);
                // DShow Associated properties
                // note: filter can be retrieved by QIing for IMSVidGraphSegment and enumerating
                [propget, id(dispidKSCat)] HRESULT Category([out, retval] BSTR *Guid);
                [propget, id(dispidCLSID)] HRESULT ClassID([out, retval] BSTR *Clsid);
                [propget, id(dispid_KSCat), hidden, restricted] HRESULT _Category([out, retval] GUID* Guid);
                [propget, id(dispid_CLSID), hidden, restricted] HRESULT _ClassID([out, retval] GUID* Clsid);
                [id(dispid_IsEqualDevice), helpstring("does the passed in device represent the same underlying hardware")] HRESULT IsEqualDevice([in] IMSVidDevice* Device, [out, retval] VARIANT_BOOL* IsEqual);
        };

        ///////////////////////////////////////////////////////////////////////////////////////
        [object, dual, oleautomation,
                uuid(37B0353D-A4C8-11d2-B634-00C04F79498E),
                helpstring("MS Video Control Input Device Interface"),
                pointer_default(unique)
        ]
        interface IMSVidInputDevice : IMSVidDevice {
                [id(dispidViewable)]HRESULT IsViewable([in] VARIANT* v, [out, retval] VARIANT_BOOL *pfViewable);  // can this device view this item?
                [id(dispidDevView)]HRESULT View([in] VARIANT* v);  // set this device to view this item
        };

        ///////////////////////////////////////////////////////////////////////////////////////
        [object, oleautomation,
                uuid(1C15D480-911D-11d2-B632-00C04F79498E),
                helpstring("MS Video Control Device Event Interface"),
                pointer_default(unique)
        ]
        interface IMSVidDeviceEvent : IDispatch {
                [id(eventidStateChange)]    HRESULT StateChange([in] IMSVidDevice *lpd, [in] long oldState, [in] long newState);
        };

        ///////////////////////////////////////////////////////////////////////////////////////
        [object, oleautomation,
                uuid(37B0353E-A4C8-11d2-B634-00C04F79498E),
                helpstring("MS Video Control Input Device Event Interface"),
                pointer_default(unique)
        ]
        interface IMSVidInputDeviceEvent : IDispatch {
        };

        ///////////////////////////////////////////////////////////////////////////////////////
        [object, dual, oleautomation,
                uuid(1C15D47F-911D-11d2-B632-00C04F79498E),
                helpstring("MS Video Control Video Device Interface"),
                pointer_default(unique)
        ]
        interface IMSVidVideoInputDevice : IMSVidInputDevice {
        };

        ///////////////////////////////////////////////////////////////////////////////////////

        [object, dual, oleautomation,
                uuid(37B03538-A4C8-11d2-B634-00C04F79498E),
                helpstring("MS Video Control Playback Device Interface"),
                pointer_default(unique)
        ]
        interface IMSVidPlayback : IMSVidInputDevice {
                // note: the following methods control the playback device *NOT* the graph.
                // if the underlying source filter only supports these functions via
                // imediacontrol on the graph then this device segment object should return E_NOTIMPL.
                [propget, id(dispid_EnableResetOnStop), helpstring("EnableResetOnStop")] HRESULT EnableResetOnStop([out, retval] VARIANT_BOOL *pVal);
                [propput, id(dispid_EnableResetOnStop), helpstring("EnableResetOnStop")] HRESULT EnableResetOnStop([in] VARIANT_BOOL newVal);
                [id(dispidDevRun)] HRESULT Run();
                [id(dispidDevPause)] HRESULT Pause();
                [id(dispidDevStop)] HRESULT Stop();
				[propget, id(dispidDevCanStep)] HRESULT CanStep([in] VARIANT_BOOL fBackwards, [out,retval] VARIANT_BOOL *pfCan);
				[id(dispidDevStep)] HRESULT Step([in] long lStep);
                [propput, id(dispidrate), helpstring("Rate")] HRESULT Rate([in] double plRate);
                [propget, id(dispidrate), helpstring("Rate")] HRESULT Rate([out,retval]double *plRate);
                [propput, id(dispidposition), helpstring("Position")] HRESULT CurrentPosition([in] long lPosition);
                [propget, id(dispidposition), helpstring("Position")] HRESULT CurrentPosition([out, retval] long* lPosition);  
                [propput, id(dispidpositionmode), helpstring("PositionMode")] HRESULT PositionMode([in] PositionModeList lPositionMode);
                [propget, id(dispidpositionmode), helpstring("PositionMode")] HRESULT PositionMode([out, retval] PositionModeList* lPositionMode); 
                [propget, id(dispidlength), helpstring("Length")] HRESULT Length([out, retval] long *lLength);
        };

        ///////////////////////////////////////////////////////////////////////////////////////
        [object, oleautomation,
                uuid(37B0353B-A4C8-11d2-B634-00C04F79498E),
                helpstring("MS Video Control Playback Device Event Interface"),
                pointer_default(unique)
        ]
        interface IMSVidPlaybackEvent : IMSVidInputDeviceEvent {
                [id(eventidEndOfMedia)]    HRESULT EndOfMedia([in] IMSVidPlayback *lpd);
        };


        ///////////////////////////////////////////////////////////////////////////////////////
        [object, dual, oleautomation, hidden,
                uuid(1C15D47D-911D-11d2-B632-00C04F79498E),
                helpstring("MS Video Tuner Interface"),
                pointer_default(unique)
        ]
        interface IMSVidTuner : IMSVidVideoInputDevice {    
                [propget, id(dispidTune)] HRESULT Tune([out, retval] ITuneRequest **ppTR);
                [propput, id(dispidTune)] HRESULT Tune([in] ITuneRequest *pTR);
                [propget, id(dispidTS)] HRESULT TuningSpace([out, retval] ITuningSpace **plTS);
                [hidden, restricted, propput, id(dispidTS)] HRESULT TuningSpace([in] ITuningSpace* plTS);
        };

        ///////////////////////////////////////////////////////////////////////////////////////
        [object, oleautomation, hidden,
                uuid(1C15D485-911D-11d2-B632-00C04F79498E),
                helpstring("MS Video Control Tuner Device Event Interface"),
                pointer_default(unique)
        ]
        interface IMSVidTunerEvent : IMSVidInputDeviceEvent {
                [id(eventidOnTuneChanged)]    HRESULT TuneChanged([in] IMSVidTuner *lpd);
        };

        ///////////////////////////////////////////////////////////////////////////////////////
        [object, dual, oleautomation, hidden,
                uuid(1C15D47E-911D-11d2-B632-00C04F79498E),
                helpstring("MS Video TV Tuner Interface"),
                pointer_default(unique)
        ]
        interface IMSVidAnalogTuner : IMSVidTuner {
                [propget, id(dispidTuneChan)] HRESULT Channel([out, retval] long *Channel);
                [propput, id(dispidTuneChan)] HRESULT Channel([in] long Channel);
                [propget, id(dispidDevVideoFrequency)] HRESULT VideoFrequency([retval, out] long *lcc);
                [propget, id(dispidDevAudioFrequency)] HRESULT AudioFrequency([retval, out] long *lcc);
                // note: this is not LCID, this is physical location of device using
                // international dialing code value
                [propget, id(dispidDevCountryCode)] HRESULT CountryCode([retval, out] long *lcc);
                [propput, id(dispidDevCountryCode)] HRESULT CountryCode([in] long lcc);
				// analog specific shortcut to enabling a different audio component
                [propget, id(dispidDevSAP)] HRESULT SAP([out, retval] VARIANT_BOOL *pfSapOn);
                [propput, id(dispidDevSAP)] HRESULT SAP([in] VARIANT_BOOL fSapOn);
                // methods
                [id(dispidChannelAvailable)] HRESULT ChannelAvailable([in] long nChannel, [out] long *SignalStrength, [retval, out] VARIANT_BOOL *fSignalPresent);
        };

        ///////////////////////////////////////////////////////////////////////////////////////
        [object, oleautomation,
                uuid(1C15D486-911D-11d2-B632-00C04F79498E),
                helpstring("MS Video Control TV Tuner Device Event Interface"),
                pointer_default(unique)
        ]
        interface IMSVidAnalogTunerEvent : IMSVidTunerEvent {

        };

        ///////////////////////////////////////////////////////////////////////////////////////
        [object, dual, oleautomation, hidden,
                uuid(37B03539-A4C8-11d2-B634-00C04F79498E),
                helpstring("MS Video Control File Playback Device Interface"),
                pointer_default(unique)
        ]
        interface IMSVidFilePlayback : IMSVidPlayback {
                [propget, id(dispidDevFileName)] HRESULT FileName([out, retval] BSTR *FileName);
                [propput, id(dispidDevFileName)] HRESULT FileName([in] BSTR FileName);
        };

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -