client/extern/include/DShowIDL/Msvidctl.idl

588 lines
23 KiB
Plaintext

//------------------------------------------------------------------------------
// File: MSVidCtl.idl
//
// Desc: IDL source for MSVidCtl.dll.
//
// Copyright (c) 1999-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
// This file will be processed by the MIDL tool to
// produce the type library (MSVidCtl.tlb) and marshalling code.
cpp_quote("//+-------------------------------------------------------------------------")
cpp_quote("//")
cpp_quote("// Microsoft Windows")
cpp_quote("// Copyright (C) Microsoft Corporation, 1999-2001.")
cpp_quote("//")
cpp_quote("//--------------------------------------------------------------------------")
cpp_quote("#pragma once")
#include <olectl.h>
#ifndef DO_NO_IMPORTS
#ifndef TUNING_MODEL_ONLY
import "mshtml.idl";
import "mstve.idl";
import "mstvca.idl";
import "segment.idl";
#endif
#endif
#ifndef TUNING_MODEL_ONLY
typedef enum {
dispidInputs,
dispidOutputs,
dispid_Inputs,
dispid_Outputs,
dispidVideoRenderers,
dispidAudioRenderers,
dispidFeatures,
dispidInput,
dispidOutput,
dispidVideoRenderer,
dispidAudioRenderer,
dispidSelectedFeatures,
dispidView, // total graph control
dispidBuild,
dispidPause,
dispidRun,
dispidStop,
dispidDecompose,
dispidDisplaySize,
dispidMaintainAspectRatio,
dispidColorKey,
dispidStateChange,
dispidgetState,
dispidunbind,
dispidbind,
dispidDisableVideo,
dispidDisableAudio,
dispidViewNext,
} MSViddispidList;
typedef enum {
dslDefaultSize,
dslSourceSize = 0, // synonym
dslHalfSourceSize,
dslDoubleSourceSize,
dslFullScreen,
dslHalfScreen,
dslQuarterScreen,
dslSixteenthScreen
} DisplaySizeList;
typedef enum {
STATE_UNBUILT =-1,
STATE_STOP,
STATE_PAUSE,
STATE_PLAY,
} MSVidCtlStateList;
//*****************************************************************************
///////////////////////////////////////////////////////////////////////////////
//
// the full Viewer control
//
///////////////////////////////////////////////////////////////////////////////
//*****************************************************************************
///////////////////////////////////////////////////////////////////////////////////////
[
object,
uuid(B0EDF162-910A-11D2-B632-00C04F79498E),
dual,
hidden,
nonextensible,
helpstring("MS Video Control Interface"),
pointer_default(unique)
]
interface IMSVidCtl : IDispatch
{
// stock props
[propget, id(DISPID_AUTOSIZE)]
HRESULT AutoSize([out,retval]VARIANT_BOOL* pbool);
[propput, id(DISPID_AUTOSIZE)]
HRESULT AutoSize([in]VARIANT_BOOL vbool);
[propget, id(DISPID_BACKCOLOR)]
HRESULT BackColor([out,retval]OLE_COLOR* backcolor);
[propput, id(DISPID_BACKCOLOR)]
HRESULT BackColor([in]OLE_COLOR backcolor);
[propget, id(DISPID_ENABLED)]
HRESULT Enabled([out,retval]VARIANT_BOOL* pbool);
[propput, id(DISPID_ENABLED)]
HRESULT Enabled([in]VARIANT_BOOL vbool);
[propget, id(DISPID_TABSTOP)]
HRESULT TabStop([out, retval]VARIANT_BOOL* pbool);
[propput, id(DISPID_TABSTOP)]
HRESULT TabStop([in]VARIANT_BOOL vbool);
[propget, id(DISPID_HWND)]
HRESULT Window([out, retval]HWND* phwnd);
[id(DISPID_REFRESH)]
HRESULT Refresh();
// pseudo video renderer properties/methods that require access to ole container
[propget, id(dispidDisplaySize)]
HRESULT DisplaySize([out,retval]DisplaySizeList *CurrentValue);
[propput, id(dispidDisplaySize)]
HRESULT DisplaySize([in]DisplaySizeList NewValue);
[propget, id(dispidMaintainAspectRatio)]
HRESULT MaintainAspectRatio([out,retval]VARIANT_BOOL *CurrentValue);
[propput, id(dispidMaintainAspectRatio)]
HRESULT MaintainAspectRatio([in]VARIANT_BOOL NewValue);
// non-stock visual propertiies that require coordination/implementation with
// core ctl drawing/painting function
[propget, id(dispidColorKey)]
HRESULT ColorKey([out,retval]OLE_COLOR *CurrentValue);
[propput, id(dispidColorKey)]
HRESULT ColorKey([in]OLE_COLOR NewValue);
// available collections
[propget, id(dispidInputs), helpstring("Available Input Devices")] HRESULT InputsAvailable([in] BSTR CategoryGuid, [out, retval] IMSVidInputDevices * *pVal);
[propget, id(dispidOutputs), helpstring("Available Output Devices")] HRESULT OutputsAvailable([in] BSTR CategoryGuid, [out, retval] IMSVidOutputDevices * *pVal);
[propget, id(dispid_Inputs), hidden, restricted, helpstring("Available Input Devices")] HRESULT _InputsAvailable([in] LPCGUID CategoryGuid, [out, retval] IMSVidInputDevices * *pVal);
[propget, id(dispid_Outputs), hidden, restricted, helpstring("Available Output Devices")] HRESULT _OutputsAvailable([in] LPCGUID CategoryGuid, [out, retval] IMSVidOutputDevices * *pVal);
[propget, id(dispidVideoRenderers), helpstring("Available Video Renderers")] HRESULT VideoRenderersAvailable([out, retval] IMSVidVideoRendererDevices * *pVal);
[propget, id(dispidAudioRenderers), helpstring("Available Audio Renderers")] HRESULT AudioRenderersAvailable([out, retval] IMSVidAudioRendererDevices * *pVal);
[propget, id(dispidFeatures), helpstring("Available Features")] HRESULT FeaturesAvailable([out, retval] IMSVidFeatures * *pVal);
// current selections
[propget, id(dispidInput), helpstring("Currently Selected Input Device")] HRESULT InputActive([out, retval] IMSVidInputDevice **pVal);
[propput, id(dispidInput), helpstring("Currently Selected Input Device")] HRESULT InputActive([in] IMSVidInputDevice *pVal);
[propget, id(dispidOutput), helpstring("Currently Selected Output Devices")] HRESULT OutputsActive([out, retval] IMSVidOutputDevices **pVal);
[propput, id(dispidOutput), helpstring("Currently Selected Output Devices")] HRESULT OutputsActive([in] IMSVidOutputDevices *pVal);
[propget, id(dispidVideoRenderer), helpstring("Currently Selected Video Renderer")] HRESULT VideoRendererActive([out, retval] IMSVidVideoRenderer **pVal);
[propput, id(dispidVideoRenderer), helpstring("Currently Selected Video Renderer")] HRESULT VideoRendererActive([in] IMSVidVideoRenderer *pVal);
[propget, id(dispidAudioRenderer), helpstring("Currently Selected Audio Renderer")] HRESULT AudioRendererActive([out, retval] IMSVidAudioRenderer **pVal);
[propput, id(dispidAudioRenderer), helpstring("Currently Selected Audio Renderer")] HRESULT AudioRendererActive([in] IMSVidAudioRenderer *pVal);
[propget, id(dispidSelectedFeatures), helpstring("Currently Selected Features")] HRESULT FeaturesActive([out, retval] IMSVidFeatures **pVal);
[propput, id(dispidSelectedFeatures), helpstring("Currently Selected Features")] HRESULT FeaturesActive([in] IMSVidFeatures *pVal);
[propget, id(dispidgetState), helpstring("Check the current MSVidCtl state.")] HRESULT State([out, retval]MSVidCtlStateList* lState);
// methods
[id(dispidView), helpstring("Find an input device for viewing the specified item. This may be a string(VT_BSTR) or an object(VT_UNKNOWN).")] HRESULT View([in] VARIANT* v);
[id(dispidBuild), helpstring("Compose the graph")] HRESULT Build();
[id(dispidPause), helpstring("Stop the graph")] HRESULT Pause();
[id(dispidRun), helpstring("Compose the graph if necessary and start it running")] HRESULT Run();
[id(dispidStop), helpstring("Stop the graph")] HRESULT Stop();
[id(dispidDecompose), helpstring("Disassemble the graph(Inverse of Build)")] HRESULT Decompose();
[id(dispidDisableVideo), helpstring("set active video renderer to nothing")] HRESULT DisableVideo();
[id(dispidDisableAudio), helpstring("set active Audio renderer to nothing")] HRESULT DisableAudio();
[id(dispidViewNext), helpstring("Find another input device for viewing the specified item. Works like View except skips current input")] HRESULT ViewNext([in] VARIANT* v);
};
///Added for the mseventbinder
[
object,
dual,
oleautomation,
hidden,
nonextensible,
pointer_default(unique),
uuid(C3A9F406-2222-436D-86D5-BA3229279EFB),
helpstring("IMSEventBinder Interface"),
]
interface IMSEventBinder : IDispatch {
[id(dispidbind), helpstring("method Bind")] HRESULT Bind([in]LPDISPATCH pEventObject, [in]BSTR EventName, [in]BSTR EventHandler, [out, retval] LONG * CancelID);
[id(dispidunbind), helpstring("method Unbind")] HRESULT Unbind([in]DWORD CancelCookie);
};
////
#endif // TUNING_MODEL_ONLY
//*****************************************************************************
//*****************************************************************************
//////////////////////////////////////////////////////////////////////////////////////
// Type Library for MS Video Control
//////////////////////////////////////////////////////////////////////////////////////
//*****************************************************************************
//*****************************************************************************
[
uuid(B0EDF154-910A-11D2-B632-00C04F79498E),
version(1.0),
helpstring("MS Video Control 1.0 Type Library")
]
library MSVidCtlLib
{
importlib("stdole2.tlb");
#ifndef TUNING_MODEL_ONLY
///////////////////////////////////////////////////////////////////////////////////////
// event interfaces
///////////////////////////////////////////////////////////////////////////////////////
[
uuid(B0EDF164-910A-11D2-B632-00C04F79498E),
helpstring("MS Video Control Events Interface")
]
dispinterface _IMSVidCtlEvents
{
properties:
// Event interface has no properties
methods:
[id(DISPID_CLICK)] void Click();
[id(DISPID_DBLCLICK)] void DblClick();
[id(DISPID_KEYDOWN)] void KeyDown(short* KeyCode, short Shift);
[id(DISPID_KEYPRESS)] void KeyPress(short* KeyAscii);
[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);
[id(dispidStateChange)] void StateChange(MSVidCtlStateList PrevState, MSVidCtlStateList CurrState);
};
//*****************************************************************************
///////////////////////////////////////////////////////////////////////////////////////
// device classes
///////////////////////////////////////////////////////////////////////////////////////
//*****************************************************************************
// inputs
///////////////////////////////////////////////////////////////////////////////////////
[
uuid(1C15D484-911D-11d2-B632-00C04F79498E),
helpstring("MS Video Control Analog TV Tuner Device Class")
]
coclass MSVidAnalogTunerDevice
{
[default] interface IMSVidAnalogTuner;
[default, source] interface IMSVidAnalogTunerEvent;
interface IMSVidGraphSegment;
};
///////////////////////////////////////////////////////////////////////////////////////
[
uuid(A2E3074E-6C3D-11d3-B653-00C04F79498E),
helpstring("MS Video Control BDA Tuner Device Class")
]
coclass MSVidBDATunerDevice
{
[default] interface IMSVidTuner;
[default, source] interface IMSVidTunerEvent;
interface IMSVidGraphSegment;
};
///////////////////////////////////////////////////////////////////////////////////////
[
uuid(37B0353C-A4C8-11d2-B634-00C04F79498E),
helpstring("MS Video Control File Playback Device Class")
]
coclass MSVidFilePlaybackDevice
{
[default] interface IMSVidFilePlayback;
[default, source] interface IMSVidFilePlaybackEvent;
interface IMSVidGraphSegment;
};
[
uuid(011B3619-FE63-4814-8A84-15A194CE9CE3),
helpstring("MSVidWebDVD Class")
]
coclass MSVidWebDVD
{
[default] interface IMSVidWebDVD;
[default, source] interface IMSVidWebDVDEvent;
interface IMSVidGraphSegment;
};
[
uuid(FA7C375B-66A7-4280-879D-FD459C84BB02),
helpstring("MSVidWebDVDAdm Class")
]
coclass MSVidWebDVDAdm
{
[default] interface IMSVidWebDVDAdm;
};
// rendererers
///////////////////////////////////////////////////////////////////////////////////////
[
uuid(37B03543-A4C8-11d2-B634-00C04F79498E),
helpstring("MS Video Control Video Renderer Class")
]
coclass MSVidVideoRenderer
{
[default] interface IMSVidVideoRenderer2;
interface IMSVidVideoRenderer;
[default, source] interface IMSVidVideoRendererEvent;
//[default, source] interface IMSVidVideoRendererEvent2;
interface IMSVidGraphSegment;
};
///////////////////////////////////////////////////////////////////////////////////////
[
uuid(37B03544-A4C8-11d2-B634-00C04F79498E),
helpstring("MS Video Control Audio Renderer Class")
]
coclass MSVidAudioRenderer
{
[default] interface IMSVidAudioRenderer;
[default, source] interface IMSVidAudioRendererEvent;
interface IMSVidGraphSegment;
};
// features
[
uuid(334125C0-77E5-11d3-B653-00C04F79498E),
helpstring("MS Video Control Standard Data Services for Broadcast IP through NDIS stack")
]
coclass MSVidDataServices
{
interface IMSVidDataServices;
};
[
uuid(7F9CB14D-48E4-43b6-9346-1AEBC39C64D3),
helpstring("MS Video Control Standard Closed Captioning")
]
coclass MSVidClosedCaptioning
{
interface IMSVidClosedCaptioning;
};
[
uuid(1600F001-6666-4f66-B1E2-BF3C9FBB9BA6),
helpstring("MS Video Control TVE Feature Segment"),
]
coclass MSVidTVEGSeg
{
[default] interface IMSVidTVEGSeg;
interface ITVEFeature; // 'active' service, outgoing events
// interface IMSVidGraphSegment; // standard graph segment methods
};
[
uuid(1600F101-6666-4f66-B1E2-BF3C9FBB9BA6),
helpstring("MS Video Control CA Feature Segment"),
]
coclass MSVidCAGSeg
{
[default] interface IMSVidCAGSeg;
interface ICAManager; // aggregates with this..
// interface IMSVidGraphSegment; // standard graph segment methods
};
///////////////////////////////////////////////////////////////////////////////////////
// control classes
///////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////
[
uuid(B0EDF163-910A-11D2-B632-00C04F79498E),
control,
helpstring("MS Video Control Class")
]
coclass MSVidCtl
{
[default] interface IMSVidCtl;
[default, source] dispinterface _IMSVidCtlEvents;
};
///////////////////////////////////////////////////////////////////////////////////////
// device collections
///////////////////////////////////////////////////////////////////////////////////////
[
uuid(C5702CCC-9B79-11d3-B654-00C04F79498E),
helpstring("MS Video Control Input Device Collection Class")
]
coclass MSVidInputDevices
{
[default] interface IMSVidInputDevices;
};
[
uuid(C5702CCD-9B79-11d3-B654-00C04F79498E),
helpstring("MS Video Control Output Device Collection Class")
]
coclass MSVidOutputDevices
{
[default] interface IMSVidOutputDevices;
};
[
uuid(C5702CCE-9B79-11d3-B654-00C04F79498E),
helpstring("MS Video Control Video Renderer Device Collection Class")
]
coclass MSVidVideoRendererDevices
{
[default] interface IMSVidVideoRendererDevices;
};
[
uuid(C5702CCF-9B79-11d3-B654-00C04F79498E),
helpstring("MS Video Control Audio Renderer Device Collection Class")
]
coclass MSVidAudioRendererDevices
{
[default] interface IMSVidAudioRendererDevices;
};
[
uuid(C5702CD0-9B79-11d3-B654-00C04F79498E),
helpstring("MS Video Control Feature Collection Class")
]
coclass MSVidFeatures
{
[default] interface IMSVidFeatures;
};
///////////////////////////////////////////////////////////////////////////////////////
// composites
///////////////////////////////////////////////////////////////////////////////////////
[
uuid(2764BCE5-CC39-11D2-B639-00C04F79498E),
helpstring("MS Video Control Generic Composition Class")
]
coclass MSVidGenericComposite
{
interface IMSVidCompositionSegment;
};
[
uuid(E18AF75A-08AF-11d3-B64A-00C04F79498E),
helpstring("MS Video Control Custom Composition for Analog Capture to Overlay Mixer")
]
coclass MSVidAnalogCaptureToOverlayMixer
{
interface IMSVidCompositionSegment;
};
[
uuid(C5702CD6-9B79-11d3-B654-00C04F79498E),
helpstring("MS Video Control Custom Composition for Analog Capture to Data Services")
]
coclass MSVidAnalogCaptureToDataServices
{
interface IMSVidCompositionSegment;
};
[
uuid(267db0b3-55e3-4902-949b-df8f5cec0191),
helpstring("MS Video Control Custom Composition for WebDVD to Overlay Mixer")
]
coclass MSVidWebDVDToVideoRenderer
{
interface IMSVidCompositionSegment;
};
[
uuid(6AD28EE1-5002-4e71-AAF7-BD077907B1A4),
helpstring("MS Video Control Custom Composition for Mpeg2 Decoder to Closed Captioning")
]
coclass MSVidMPEG2DecoderToClosedCaptioning
{
interface IMSVidCompositionSegment;
};
///////////////////////////////////////////////////////////////////////////////////////
// Miscellaneous
///////////////////////////////////////////////////////////////////////////////////////
[
uuid(11973C25-3529-40e4-9AB1-DDC164CBEF49),
helpstring("MS Video Control Rendering Behavior Factory")
]
coclass MSVidRenderFactory
{
interface IElementBehaviorFactory;
};
// Events
[
uuid(577FAA18-4518-445E-8F70-1473F8CF4BA4),
helpstring("MSEventBinder Class")
]
coclass MSEventBinder
{
[default] interface IMSEventBinder;
};
// vidrect class
[
hidden, restricted,
uuid(CB4276E6-7D5F-4cf1-9727-629C5E6DB6AE),
helpstring("Automation compliant scalable rectangle Class")
]
coclass MSVidRect
{
[default] interface IMSVidRect;
};
// NOTE: there is no object factory for the following classes.
// the implementation for the underlying code is a c++ abstract base class.
// this coclass is only provided here to force vb to expose the base interface
// to enable polymorphic access to derived objects
[
hidden, restricted,
uuid(6E40476F-9C49-4c3e-8BB9-8587958EFF74),
helpstring("dummy class to expose base interface to VB")
]
coclass MSVidDevice
{
[default] interface IMSVidDevice;
};
[
hidden, restricted,
uuid(AC1972F2-138A-4ca3-90DA-AE51112EDA28),
helpstring("dummy class to expose base interface to VB")
]
coclass MSVidInputDevice
{
[default] interface IMSVidInputDevice;
};
[
hidden, restricted,
uuid(95F4820B-BB3A-4e2d-BC64-5B817BC2C30E),
helpstring("dummy class to expose base interface to VB")
]
coclass MSVidVideoInputDevice
{
[default] interface IMSVidVideoInputDevice;
};
[
hidden, restricted,
uuid(1990D634-1A5E-4071-A34A-53AAFFCE9F36),
helpstring("dummy class to expose base interface to VB")
]
coclass MSVidVideoPlaybackDevice
{
[default] interface IMSVidPlayback;
};
[
hidden, restricted,
uuid(7748530B-C08A-47ea-B24C-BE8695FF405F),
helpstring("dummy class to expose base interface to VB")
]
coclass MSVidFeature
{
[default] interface IMSVidFeature;
};
[
hidden, restricted,
uuid(87EB890D-03AD-4e9d-9866-376E5EC572ED),
helpstring("dummy class to expose base interface to VB")
]
coclass MSVidOutput
{
[default] interface IMSVidOutputDevice;
};
#endif //TUNING_MODEL_ONLY
};
// end of file msvidctl.idl