//***************************************************************************** 
// 
// Microsoft Windows Media 
// Copyright (C) Microsoft Corporation. All rights reserved. 
//
// FileName:            nsscore.idl
//
// Abstract:
//
//*****************************************************************************

cpp_quote("//*****************************************************************************") 
cpp_quote("//") 
cpp_quote("// Microsoft Windows Media") 
cpp_quote("// Copyright (C) Microsoft Corporation. All rights reserved.") 
cpp_quote("//")
cpp_quote("// Automatically generated by Midl from nsscore.idl" )
cpp_quote("//")
cpp_quote("// DO NOT EDIT THIS FILE.")
cpp_quote("//")
cpp_quote("//*****************************************************************************") 

cpp_quote("#if _MSC_VER > 1000")
cpp_quote("#pragma once")
cpp_quote("#endif // _MSC_VER > 1000")

import "oaidl.idl";
import "wmscontext.idl";


cpp_quote( "EXTERN_GUID( IID_IWMSClassObject, 0xF54E23A4,0x1B1A,0x11d1,0x9E,0x90,0x00,0x60,0x97,0xD2,0xD7,0xCF );" )


//////////////////////////////////////////////////////////////////////////////
//
// This allow plugins to pool-allocate commonly used data structures. 
//
//////////////////////////////////////////////////////////////////////////////
[
    uuid(F54E23A4-1B1A-11d1-9E90-006097D2D7CF),
    version(9.0),
    helpstring("Provides methods to allocate data structures commonly used by plug-ins.")
]
interface IWMSClassObject : IUnknown
{
    [helpstring("Allocates the object identified by the REFIID.")] HRESULT 
    CreateInstance( 
        [in]                   REFIID riid,
        [out,iid_is(riid)]     void **ppunk 
        );
    
    [helpstring("Allocates an IWMSPacket interface.")] HRESULT 
    AllocIWMSPacket( 
        [in]                   REFIID riid,
        [out,iid_is(riid)]     void **ppunk 
        );
        
    [helpstring("Allocates an IWMSPacketList object.")] HRESULT 
    AllocIWMSPacketList( 
        [in]                    REFIID riid,
        [out,iid_is(riid)]     void **ppunk 
        );
        
    [helpstring("Allocates an IWMSContext object.")] HRESULT 
    AllocIWMSContext( 
        [in]                 REFIID riid, 
        [in]                 WMS_CONTEXT_TYPE ContextType,
        [in]                 IUnknown *pRelatedContext,
        [out,iid_is(riid)]   void **ppunk 
        );
       
    [helpstring("Allocates an IWMSCommandContext object.")] HRESULT 
    AllocIWMSCommandContext( 
        [in]                 REFIID riid, 
        [in]                 IUnknown *pRelatedContext, 
        [out,iid_is(riid)]   void **ppunk 
        );
};





