//==========================================================================;
//
//  THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
//  KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
//  IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
//  PURPOSE.
//
//  Copyright (c) 1992 - 1997  Microsoft Corporation.  All Rights Reserved.
//
//--------------------------------------------------------------------------;

/*
	This header file provides function prototypes for the functions
	exported from AM_ios.lib.  These functions are designed to enable
	developers to get information in text format regarding objects in
	the filter graph.

	The 'C' functions, DumpXXX, require "cout" to be valid in the environment
	in which you are working.
*/

#ifndef _SampIOS_h
#define _SampIOS_h

#ifdef __cplusplus

    // Just so you can write:   cout << piFilterGraph << endl;  etc.

    // Converts wide string to ANSI string and outputs it
    ostream & operator <<( ostream & out, LPCWSTR pwStr );
    // Builds and outputs a textual version of a GUID
    ostream & operator <<( ostream & out, const GUID & clsid );
    // Output filter information
    ostream & operator <<( ostream & out, const IBaseFilter *const pIFilter );
    // Output filter informations for all filters left in the enumerator
    ostream & operator <<( ostream & out, const IEnumFilters *const pIEnumFilters );
    // Output filter and connection details
    ostream & operator <<( ostream & out, const IFilterGraph *const piFilterGraph );
    // Output pin details (including connection info)
    ostream & operator <<( ostream & out, const IPin *const pIPin );
    // As above, for all pins left in the enumerator
    ostream & operator <<( ostream & out, const IEnumPins *const pIEnumPins );
    // Output the pin info for all pins on supplied filter
    ostream & WriteAllPins( ostream & out, const IBaseFilter *const pIFilter );

    extern "C" {
#endif

void DumpFilterInfo( const IBaseFilter * pIFilter );
void DumpPinInfo( const IPin * pIPin );
void DumpAllPins( const IBaseFilter * piFilter );
void DumpAllFilters( const IFilterGraph * piFilterGraph );
void DumpFilterGraph( const IFilterGraph * piFilterGraph );

#ifdef __cplusplus
    }
#endif

#endif /* _SampIOS_h */
