this file provides a brief synopsis of the naming conventions, and purposes of other files in this directory. dirs: caman - conditional access manager cagseg - conditional access graph segment. eventually caman, cagseg should be the same object/project/dir. ask johnbrad for more details atl - private versions of atl headers(see readme in that dir) atlwin - copy of atlwin. this should eventually be replaced with public\sdk\inc\wtl msvidctl - the actual core vidctl auxcfg - utility objects to support configuration of analog auxiliary input devices for s-video or composite. this is incomplete(as of 8/00) , but intended to be UI-less helper objects based on the win98 webtv for windows config page and aux-in filter. files: w32extend.h this file provides a set of utility classes that make various win32 api's and structs easier to use from c++. fwdseq.h this file is a generic template for turning any sort of com object with a reasonably standard enumerator into an stl style container with an forward(restartable input) iterator. its so complicated because its working around a couple of compiler bugs and its flexible enough to handle most next method signatures and names. ksextend.h utility classes, templates for simplifying the use of ks from c++ client code. this supports easy access to ks medium structures. dsextend.h, .cpp these files provide a set of extension classes for core dshow objects. many of these utilize the services in the other *extend.h files. this includes a set of templates for making graphs look like an stl collection of filters, filters a collection of pins, pins a collection of media types, pins a collection of mediums, dshow device enumerators a collection of device monikers, and other utility functions. XXXimpl.h these files provide an atl style default implementation template for the interface IXXXX. scalingrect.h this files provides a utility class which auto scales rectangles via mapwindowpoints based on the associated hwnd. objreghelp.h replacement helper macros for atl object registration. this is still based on the underlying atl registration mechanics, but it shares a common __declspec(selectany) string copy of the common .rgs with many other macro substitutions besides %module%. this simplifies object registration and reduces executable size. odsstream.h standard library iostream backed by outputdebugstring so that tracing can use standard c++ io(esp. manipulators). filterenum.h standard ole collection on stl vector based list of filters stextend.h utlity classes to provide additonal global operators for certain stl objects. arity.h generalize of stl unary and binary functor objects. this allows(more or less)arbitrary function signatures to be use with stl function application templates such as std::for_each and std::find_if. this was done as an experiment with a more functional style programming paradigm. i'm in the process of pulling all this out as time allows. this seems to confuse people very badly and given the fact that the compiler doesn't deduce arguments correctly much of the time, forcing explicitly typed instantiation, empirical evidence suggests that this stuff negatively impacts readability. i'm in the process of converting all the std::find_if and std::for_each to explicit loops and then this won't be needed any more. devseq.h typedef def'd instantations of fwdseq for various type safe device collections mtype.* private copy of standard dshow base class. we statically link with the crt to avoid a dependency on msvcp60.dll strmbase.lib is built for use with msvcrt.dll instead of libc.lib. due to dllimport definition differences, this causes different name mangling for many imports, and is incompatible enough to be unlinkable. therefore, since we're a client and not a filter anway, we don't link with strmbase. we only link with strmiids.lib. errsupp.h inline helper for rich ISupportErrorInfo type error message from XXXXimpl files. seg.h standard type safe support for various kinds of collections of device segments. todo.txt notes about future ideas for improvements or bug fixes needed in the code. also, notes about commonly made mistakes that need to be frequently re-reviewed. throw.h internal exception hierarchy trace.h, trace.cpp internal tracing mechanism tstring.h internal string typedefs for providing independent tracing support that can be compile time switched between atlwin/wtl/mfc CString and c++ standard library std::basic_string. unfortunately, std::basic_string is broken badly enough that this isn't tenable. this file and its dependencies should eventually get removed. vidrect.h automation compliant com wrapper for scalingrect.h