I am certainly not the only person crying over the DirectMedia documentation.
The content has a lot of raw catalogs of interfaces and IDs, which don’t help
us in understanding the mechanisms behind it. To design and implement your own
filters and so on, you need in fact to know a lot.
What follows is not the revisited DirectShow documentation !!
It is the exhaustive list of COM objects installed and registered by the DirectMedia
SDK release 6. What for ? Did you know that the IFilterMapper interface was
an interface of a general FilterMapper object, object that you have to create
using CoCreateInstance. That is IFilterMapper is not obtained through the IFilterGraph
interface though it is referred like this in the official documentation as "…an
interface at filter-graph level…" ? What the DirectShow engineers probably
meant is that this interface is sort of interface at this level. Strictly speaking,
it should have meant that pFilterGraph->QueryInterface(IID_IFilterMapper,
…) is an allowed operation. But it’s not…
Knowing that an object referenced by CLSID_FilterMapper is defined in the headers
and libraries, it means that you can use the following construction code :
IFilterMapper *pFm=NULL;HRESULT hr=CoCreateInstance(CLSID_FilterMapper, NULL,
CLSCTX_INPROC_SERVER, IID_IFilterMapper,
(void **)&pFm);
if (SUCCEEDED(hr)
{
…
}
Thus a filter mapper object is instanciated, and an interface to it is already
available. Then proceed with the IFilterMapper interface using the “DirectShow
documentation / C/C++ reference / DirectShow COM interfaces”.
Interfaces obtained through general DirectMedia objects are specifically documented
: for example, to know all interfaces you can query when you have the top IFilterGraph
interface, just look into the “DirectShow documentation / C/C++ reference /
DirectShow COM interfaces / Summary of DirectShow com interfaces”.
List of DirectMedia COM Objects
——————————-
(involved parts are DirectShow, DirectAnimation, DirectTransform, and DirectDraw).
extracted from the whole DirectMedia SDK
amstream.h, control.h, uuids.h, ddrawex.h, danim.h, dxtmsft.h, dxtrans.h,
CLSID_ACMWrapper ACM Wrapper |
CLSID_ActiveMovieCategories |
CLSID_AMAudioData |
CLSID_AMAudioStream |
CLSID_AMDirectDrawStream |
CLSID_AMMediaTypeStream |
CLSID_AMMultiMediaStream (MultimediaStream) |
CLSID_AMovie (IAMovie plug-in distributor) |
CLSID_AnalogVideoDecoderPropertyPage |
CLSID_AsfMux (ASF mux filter) |
CLSID_AsyncReader (Async File Reader) |
CLSID_AudioCompressorCategory |
CLSID_AudioFileClip |
CLSID_AudioInputDeviceCategory (Audio source cateogry) |
CLSID_AudioProperties (Audio Renderer Property Page) |
CLSID_AudioRecord (Wavein audio recorder) |
CLSID_AudioRender (Waveout audio renderer) |
CLSID_AudioRendererCategory (Audio renderer category) |
CLSID_AVICo |
CLSID_AVIDec (AVI Decoder) |
CLSID_AviDest (AVI mux filter) |
CLSID_AVIDoc (AVIFile-based reader) |
CLSID_AVIDocWriter (AVIFile-based writer) |
CLSID_AVIDraw (AVI ICDraw* wrapper) |
CLSID_AVIMIDIRender |
CLSID_AviMuxProptyPage1 |
CLSID_AviMuxProptyPage |
CLSID_AviReader (Avi File Reader) |
CLSID_AviSplitter (Avi Stream Splitter) |
CLSID_BasicImageEffectsPP |
CLSID_BasicImageEffects |
CLSID_CAcmCoClassManager |
CLSID_CameraControlPropertyPage |
CLSID_CaptureGraphBuilder (Capture graph building) |
CLSID_CaptureProperties |
CLSID_CDeviceMoniker |
CLSID_CIcmCoClassManager |
CLSID_CMidiOutClassManager |
CLSID_CMpegAudioCodec (MPEG audio decoder) |
CLSID_CMpegVideoCodec (MPEG video decoder) |
CLSID_Colour (Colour space convertor) |
CLSID_CompositePP |
CLSID_ConvolvePP |
CLSID_CQzFilterClassManager |
CLSID_CrBlurPP |
CLSID_CrBlur |
CLSID_CrEmboss |
CLSID_CrEngrave |
CLSID_CrossbarFilterPropertyPage |
CLSID_CutListCacheMemory |
CLSID_CutListGraphBuilder |
CLSID_CutListSource |
CLSID_CVidCapClassManager |
CLSID_CWaveinClassManager |
CLSID_CWaveOutClassManager |
CLSID_DAArray |
CLSID_DABbox2 |
CLSID_DABbox3 |
CLSID_DABehavior |
CLSID_DABoolean |
CLSID_DACamera |
CLSID_DAColor |
CLSID_DADashStyle |
CLSID_DAEndStyle |
CLSID_DAEvent |
CLSID_DAFontStyle |
CLSID_DAGeometry |
CLSID_DAImage |
CLSID_DAImportationResult |
CLSID_DAJoinStyle |
CLSID_DALineStyle |
CLSID_DAMatte |
CLSID_DAMicrophone |
CLSID_DAMontage |
CLSID_DANumber |
CLSID_DAPair |
CLSID_DAPath2 |
CLSID_DAPickableResult |
CLSID_DAPoint2 |
CLSID_DAPoint3 |
CLSID_DASound |
CLSID_DAStatics |
CLSID_DAString |
CLSID_DATransform2 |
CLSID_DATransform3 |
CLSID_DATuple |
CLSID_DAUserData |
CLSID_DAVector2 |
CLSID_DAVector3 |
CLSID_DAView |
CLSID_DAViewerControlWindowed |
CLSID_DAViewerControl |
CLSID_DeviceControlCategory (Device Control Filters) |
CLSID_DirectDraw |
CLSID_DirectDrawClipper |
CLSID_DirectDrawFactory |
CLSID_DirectDrawProperties |
CLSID_Disslvpp |
CLSID_Dissolve |
CLSID_Dither (VGA 16 color ditherer) |
CLSID_DSoundRender (DSound audio renderer) |
CLSID_DVDecPropertiesPage (DV decoder property) |
CLSID_DvdGraphBuilder |
CLSID_DVDHWDecodersCategory |
CLSID_DVDNavigator |
CLSID_DVEncPropertiesPage (DV encoder property) |
CLSID_DVMux DV muxer |
CLSID_DVMuxPropertyPage (DV Muxer property) |
CLSID_DVSplitter (DV splitter) |
CLSID_DVVideoCodec (DV video decoder) |
CLSID_DVVideoEnc (DV video encoder) |
CLSID_DX2D |
CLSID_DXBufferCache |
CLSID_DXBufferCache |
CLSID_DXFade |
CLSID_DXGradient |
CLSID_DXLUTBuilder |
CLSID_DXRasterizer |
CLSID_DXSurfaceModifier |
CLSID_DXSurface |
CLSID_DXTaskManager |
CLSID_DXTComposite |
CLSID_DXTConvolution |
CLSID_DXTGradientD |
CLSID_DXTLabel |
CLSID_DXTransformFactory |
CLSID_DXTResampler |
CLSID_DXTScale |
CLSID_DXTWipePP |
CLSID_DXTWipe |
CLSID_Explode |
CLSID_ExplodeProp |
CLSID_FadePP |
CLSID_FGControl (Control Distributor) |
CLSID_FileSource (MPEG file reader) |
CLSID_FileWriter |
CLSID_FilgraphManager |
CLSID_FilterGraph (Filter Graph) |
CLSID_FilterGraphNoThread (Filter Graph no thread) |
CLSID_FilterMapper (Filter Mapper) |
CLSID_FilterMapper2 |
CLSID_FlipProp |
CLSID_Flip |
CLSID_GradientPP |
CLSID_HeightField |
CLSID_HtFieldProp |
CLSID_InfTee |
CLSID_LegacyAmFilterCategory (Filter category) |
CLSID_Line21Decoder (Line21 (CC) Decoder) |
CLSID_LUTBuilderPP |
CLSID_MediaPropertyBag |
CLSID_MemoryAllocator |
CLSID_MidiRendererCategory (Midi renderer category) |
CLSID_ModexProperties |
CLSID_ModexRenderer (Modex video renderer) |
CLSID_MOVReader (.MOV reader (old)) |
CLSID_MPEG1Doc (MPEG System stream) |
CLSID_MPEG1PacketPlayer (Takes MPEG1 packets as input) |
CLSID_MPEG1Splitter (MPEG splitter) |
CLSID_OverlayMixer |
CLSID_PerformanceProperties |
CLSID_PersistMonikerPID (IPersistMoniker PID) |
CLSID_PixelatePP |
CLSID_Pixelate |
CLSID_ProtoFilterGraph (Prototype filtergraph) |
CLSID_QTDec QT Decoder |
CLSID_QualityProperties |
CLSID_QuickTimeParser (QT Splitter) |
CLSID_ResamplePP |
CLSID_Ripple |
CLSID_RipProp |
CLSID_RuffleProp |
CLSID_Ruffle |
CLSID_SeekingPassThru |
CLSID_SimpleCutList |
CLSID_SmartTee |
CLSID_SystemClock (Reference clock) |
CLSID_SystemDeviceEnum (ICreateDevEnum) |
CLSID_TextRender (Text renderer) |
CLSID_TransmitCategory (External Renderers Category) |
CLSID_TVAudioFilterPropertyPage |
CLSID_TVTunerFilterPropertyPage |
CLSID_URLReader (Async URL Reader) |
CLSID_VBISurfaces |
CLSID_VfwCapture (Vfw 2.0 Capture Driver) |
CLSID_VideoCompressorCategory |
CLSID_VideoFileClip |
CLSID_VideoInputDeviceCategory (Video capture category) |
CLSID_VideoProcAmpPropertyPage |
CLSID_VideoRenderer (Video renderer) |
CLSID_VideoStreamConfigPropertyPage |
CLSID_VPObject |
CLSID_VPVBIObject |
Date Last Updated: February 8, 1999